《2022年数值分析实验报告2》由会员分享,可在线阅读,更多相关《2022年数值分析实验报告2(5页珍藏版)》请在金锄头文库上搜索。
1、第1页实验报告一、实验名称复合梯形求积公式、复合辛普森求积公式、龙贝格求积公式及自适应辛普森积分。二、实验目的及要求 1.掌握复合梯形求积计算积分、复合辛普森求积计算积分、龙贝格求积计算积分和自适应辛普森积分的基本思路和步骤. 2. 培养 Matlab 编程与上机调试能力 .三、实验环境计算机, MATLAB 软件四、实验内容 1. 用不同数值方法计算积分94ln10xdxx。(1)取不同的步长h。分别用复合梯形及复合辛普森求积计算积分,给出误差中关于 h 的函数,并与积分精确指比较两个公式的精度, 是否存在一个最小的h,使得精度不能再被改善。(2)用龙贝格求积计算完成问题(1) 。(3)用自
2、适应辛普森积分,使其精度达到10-4。五、算法描述及实验步骤1. 复合梯形公式将区间 a,b 划分为 n 等份,分点 xk=a+ah,h=(b-a)/h,k=0,1,.,n,在每个子区间 xk,xk+1(k=0,1,.,n-1)上采用梯形公式( 1.1 ),得)()(2)(bfafabdxxfba(1.1 ))()(2)(2)()(211110bfxfbfhxfxfhTnkkknkkn(1.2 )),(),(12)( 2bafhabfRn(1.3 )其中 Tn称为复合梯形公式, Rn为复合梯形公式的余项。2. 复合辛普森求积公式将区间 a,b 划分为 n 等份,在每个子区间 xk,xk+1(k
3、=0,1,.,n-1)上采用辛普森公式( 1.4 ),得精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 5 页第2页)()2(4)(6bfbafafabS(1.4 ))()(2)(4)(6)()()(611102/112/110bfxfxfbfhxfxfxfhSnkknkkkknkkn(1.5 )),(),()2(180)()4(4bafhabfRn(1.6 )其中 Sn称为复合辛普森求积公式,Rn为复合辛普森求积公式的余项。3. 龙贝格算法统一的公式:)(141)2(144)(11hThThTmmmmmm(1.7 )经过 m (m=1
4、,2. )次加速后,余项便取下列形式:.)()2(22)1(21mmmhhIhT(1.8 )上述处理方法通常称为理查森外推加速法。设以)(0kT表示二分 k 次后求得的梯形值,且以)( kmT表示序列)(0kT的 m次加速值,则依递推公式( 1.7 )可得,.2,1,141144)()(1)1(1)(kTThTkmmkmmmkm(1.9 )公式( 1.9 )也称为龙贝格求积算法,计算过程如下:(1)取 k=0,h=b-a, 求)()(2)0(0bfafhT。令k1(k 记区间 a,b 的二分次数)。(2)求梯形值 T0(b-a)/2k), 即按递推公式( 1.10 )计算)(0kT。102/1
5、2)(221nkknnxfhTT(1.10 )(3)求加速值,按公式( 1.9 )逐个求出 T值。(4)若)0(1)0(kkTT(预先给定的精度),则终止计算,并取ITk)0(;否则令kk1转(2)继续计算。4. 自适应积分方法设给定精度要求0,计算积分dxxffIba)()(的近似值。先取步长h=b-a,应用辛普森公式有精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 5 页第3页),(),()2(180),()()(44bafhabbaSdxxffIba(1.11 )表区间 a,b 对分,步长 h2=h/2=(b-a)/2,在每个小区
6、间上用辛普森公式,得),(),()2(180),()(4422bafhabbaSfI(1.12 )上式即为),(),()4(180),()(442bafhabbaSfI(1.13 )将(1.12 )与( 1.13)比较得2122151),(),(151),()(SSbaSbaSbaSfI (1.14) 则期望得到),()(2baSfI(1.15 )此时可取 S2(a,b) 作为dxxffIba)()(的近视,则可达到给定的误差精度。如果不行,则细分区间,进行计算。六、调试过程及实验结果取不同的步长,得到的不同结果如下表:方法步长数 n8 16 32 64 复合梯形-0.408175265941
7、2 -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 ,掌握了复合梯形求积
8、公式、复合辛普森求积公式、龙贝格求积公式及自适应辛普森积分的程序和算法,为以后处理数据提供一种更加简便,准确的方法。八、附录(源程序清单)1.复合梯形function s=fuhetixing(f,a,b,n)%f 为被积分函数%a,b 是积分上下限%n 是子区间个数%s 是积分值h=(b-a)/n;s=0;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 5 页第4页for k=1:(n-1) x=a+h*k; s=s+feval(f,x);endformat longs=h*(feval(f,a)+feval(f,b)/2+h*s;2
9、.复合辛普森function S=Comsimpson(f,a,b,n)%f 为被积分函数%a,b 是积分上下限%n 是子区间个数%s 是积分值h=(b-a)/(2*n);s1=0;s2=0;for k=1:n x=a+h*(2*k-1); s1=s1+feval(f,x);endfor k=1:(n-1) x=a+h*2*k; s2=s2+feval(f,x);end format long 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,
10、b 是积分上下限%n+1 是 T 数表的列数%T 表示 T 数表%quad 是所求积分值%delta是设定的允许误差限m=1;h=b-a;err=1;J=0;T=zeros(n,n);%定义 T 表初始值T(1,1)=h*(feval(f,a)+feval(f,b)/2;while (errdelta)&(J=err) % 循环直到totol为止 j=j+1; e=(abs(simpson(x,y,2j)-simpson(x,y,1)/10;% 精度测试式ends=s+simpson(x,y,2j);end精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 5 页