数值分析 实验报告 第七章复化梯形公式

更新时间:2023-09-02 01:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数值分析 实验报告 第七章复化辛普森公式 一,题目:用复化梯形公式计算 4dx

1 x2,试用误差余项表达式进行分析,欲保证误差不 4

超过指定的 ,须至少将区间[-4,4]多少等分?将此结果与实际计算结果进行比较。 二,源程序

1. 用逐次分半技术

# include<stdio.h>

# define e 0.1

/*定义函数*/

double f(double x)

{

double y;

y=1.0/(1.0+x*x);

return(y);

}

void main()

{

int n,j,k;

double T,m,t,H,E;

for(n=2;;n++)

{

m=0;

t=0;

for(j=1;j<=n-1;j++)

m=m+f(-4.0+8.0/n*j);

T=(8.0/(double)(2*n))*(f(-4)+f(4)+2.0*m);/*复化梯形n次公式*/ for(k=1;k<=n;k++)

t=t+f(-4.0+(2.0*k-1.0)*4.0/3.0);

H=8.0*t/(double)n; /*分半后的节点的矩形的面积和*/

E=((T+H)/2-T)/3.0;/*误差*/

if(E<=e&&E>=-e)

break;

else continue;

}

printf("%d\n",n-1);

printf("%1.10f\n",E);

printf("%1.10f\n",T/3.0+2.0*H/3.0);

}

2. 用误差余项分析

# include<stdio.h>

# include<math.h>

# define e 0.1

double der(double x)

{

double y;

y=((-2.0)*x)/((1.0+x*x)*(1.0+x*x));

return (y);

}

void main()

{

double h,m,E;

int n=2;

m=der(4)-der(-4);

do

{

h=8.0/(double)n;

E=-h*h*m/12;

n++;

}

while(E>e||E<-e);

printf("%d\n",n-1);

printf("%f\n",E);

}

三,实验结果

1. 用逐次分段技术

当 >=0.05时,n=1,I=4.4071984958

当 <0.05时,n不存在

2. 用误差余项分析

当 =0.01时,n=6

当 =0.001时,n=18

四,误差

1. 用逐次分段技术

当 >=0.05时,E=0.0429760945

当 <0.05时,n不存在

2. 用误差余项分析

当 =0.01时,E=0.08202

当 =0.001时,E=0.000911

五,采用逐次分半技术所得的结果笔算与计算机的结果一致

但此方法与例题中直接计算误差所得的结果不一致

本文来源:https://www.bwwdw.com/article/v5bi.html

Top