预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第PAGE\*MERGEFORMAT5页 实验报告 一、实验名称 复合梯形求积公式、复合辛普森求积公式、龙贝格求积公式及自适应辛普森积分。 二、实验目的及要求 1.掌握复合梯形求积计算积分、复合辛普森求积计算积分、龙贝格求积计算积分和自适应辛普森积分的基本思路和步骤. 2.培养Matlab编程与上机调试能力. 三、实验环境 计算机,MATLAB软件 实验内容 1.用不同数值方法计算积分。 取不同的步长h。分别用复合梯形及复合辛普森求积计算积分,给出误差中关于h的函数,并与积分精确指比较两个公式的精度,是否存在一个最小的h,使得精度不能再被改善。 用龙贝格求积计算完成问题(1)。 (3)用自适应辛普森积分,使其精度达到10-4。 五、算法描述及实验步骤 复合梯形公式 将区间[a,b]划分为n等份,分点xk=a+ah,h=(b-a)/h,k=0,1,...,n,在每个子区间[xk,xk+1](k=0,1,...,n-1)上采用梯形公式(1.1),得 (1.1) (1.2) (1.3) 其中Tn称为复合梯形公式,Rn为复合梯形公式的余项。 复合辛普森求积公式 将区间[a,b]划分为n等份,在每个子区间[xk,xk+1](k=0,1,...,n-1)上采用辛普森公式(1.4),得 (1.4) (1.5) (1.6) 其中Sn称为复合辛普森求积公式,Rn为复合辛普森求积公式的余项。 龙贝格算法 统一的公式: (1.7) 经过m(m=1,2...)次加速后,余项便取下列形式: (1.8) 上述处理方法通常称为理查森外推加速法。 设以表示二分k次后求得的梯形值,且以表示序列{}的m次加速值,则依递推公式(1.7)可得 (1.9) 公式(1.9)也称为龙贝格求积算法,计算过程如下: 取k=0,h=b-a,求。令(k记区间[a,b]的二分次数)。 求梯形值T0((b-a)/2k),即按递推公式(1.10)计算。 (1.10) 求加速值,按公式(1.9)逐个求出T值。 若(预先给定的精度),则终止计算,并取;否则令转(2)继续计算。 自适应积分方法 设给定精度要求,计算积分的近似值。先取步长h=b-a,应用辛普森公式有 (1.11) 表区间[a,b]对分,步长h2=h/2=(b-a)/2,在每个小区间上用辛普森公式,得 (1.12) 上式即为 (1.13) 将(1.12)与(1.13)比较得 (1.14) 则期望得到 (1.15) 此时可取S2(a,b)作为的近视,则可达到给定的误差精度。如果不行,则细分区间,进行计算。 六、调试过程及实验结果 取不同的步长,得到的不同结果如下表: 方法 步长数n8163264复合梯形-0.4081752659412-0.4300526451254-0.4384455545521-0.4420384567157复合辛普森-0.4366254599415-0.4413577845643-0.4485764578412-0.4440567812461龙贝格公式-0.4440466483230-0.444046683231-0.440466472144-0.4440466483231自适应辛普森-0.4432496512462-0.4439840234457-0.44426854611233-0.4443774893458 七、总结 通过本次学习Matlab,掌握了复合梯形求积公式、复合辛普森求积公式、龙贝格求积公式及自适应辛普森积分的程序和算法,为以后处理数据提供一种更加简便,准确的方法。 八、附录(源程序清单) 1.复合梯形 functions=fuhetixing(f,a,b,n) %f为被积分函数 %a,b是积分上下限 %n是子区间个数 %s是积分值 h=(b-a)/n; s=0; fork=1:(n-1) x=a+h*k; s=s+feval('f',x); end formatlong s=h*(feval('f',a)+feval('f',b))/2+h*s; 2.复合辛普森 functionS=Comsimpson(f,a,b,n) %f为被积分函数 %a,b是积分上下限 %n是子区间个数 %s是积分值 h=(b-a)/(2*n); s1=0;s2=0; fork=1:n x=a+h*(2*k-1); s1=s1+feval('f',x); end fork=1:(n-1) x=a+h*2*k; s2=s2+feval('f',x); end formatlong S=h*(feval('f',a)+feval('f',b)+4*s1+2*s2)/3; 3.龙贝格 function[T,quad,err,h]=Romberg(f,a,b,n,delta) %f为被积分函数 %a,b是