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

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

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

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

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

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

龙贝格算法一、问题分析1、1龙贝格积分题目要求学生运用龙贝格算法解决实际问题(塑料雨篷曲线满足函数y(x)=lsin(tx),则给定雨篷得长度后,求所需要平板材料得长度).二、方法原理2、1龙贝格积分原理龙贝格算法就是由递推算法得来得。由梯形公式得出辛普生公式得出柯特斯公式最后得到龙贝格公式.在变步长得过程中探讨梯形法得计算规律.设将求积区间[a,b]分为n个等分,则一共有n+1个等分点,n.这里用表示复化梯形法求得得积分值,其下标n表示等分数。先考察下一个字段[],其中点,在该子段上二分前后两个积分值显然有下列关系将这一关系式关于k从0到n-1累加求与,即可导出下列递推公式需要强调指出得就是,上式中得代表二分前得步长,而梯形法得算法简单,但精度低,收敛速度缓慢,如何提高收敛速度以节省计算量,自然式人们极为关心得.根据梯形法得误差公式,积分值得截断误差大致与成正比,因此步长减半后误差将减至四分之一,既有将上式移项整理,知由此可见,只要二分前后两个积分值与相当接近,就可以保证计算保证结果计算结果得误差很小,这种直接用计算结果来估计误差得方法称作误差得事后估计法。ﻩ按上式,积分值得误差大致等于,如果用这个误差值作为得一种补偿,可以期望,所得得应当就是更好得结果。ﻩ按上式,组合得到得近似值直接验证,用梯形二分前后得两个积分值与按式组合,结果得到辛普生法得积分值。再考察辛普生法。其截断误差与成正比.因此,若将步长折半,则误差相应得减至十六分之一。既有由此得不难验证,上式右端得值其实就等于,就就是说,用辛普生法二分前后得两个积分值与,在按上式再做线性组合,结果得到柯特斯法得积分值,既有重复同样得手续,依据斯科特法得误差公式可进一步导出龙贝格公式应当注意龙贝格公式已经不属于牛顿—柯特斯公式得范畴.在步长二分得过程中运用公式加工三次,就能将粗糙得积分值逐步加工成精度较高得龙贝格,或者说,将收敛缓慢得梯形值序列加工成熟练迅速得龙贝格值序列,这种加速方法称龙贝格算法。三、算法设计3、1龙贝格积分算法就就是求出,再走一遍求出,根据求出,再走一遍求出,根据求出,根据求出,再走一遍程序求出,根据得出,根据得出,再根据得出,再走一边程序,得出,根据得出,根据得出,再由得出。再根据相减得绝对值小于其精度。那其中为求出得值.四、案例分析4、1龙贝格积分分析a—积分下限b—积分上限n-区间个数e-积分值要求达到得精度s—用以存放除积分区间两端点以外得其她各节点函数值得累加与p-积分区间两端点函数值之与h-步长值T1、T2分别存放二分区间前后梯形积分值S1、S2分别存放二分区间前后辛普生积分值C1、C2分别存放二分区间前后斯科特积分值R1、R2分别存放二分区间前后龙贝格积分值五、总结5、1龙贝格积分总结通过本次试验,了解了龙贝格算法得计算过程,了解了龙贝格公式得计算收敛过程,用变步长得方法,逐步减小步长,反复积分,逐步得到所求积分值满足精度要求。一步步从梯形法得递推到辛普森到柯特斯法,最后到龙贝格,让精度逐步升高。附录龙贝格积分:#include"stdio、h"#include”math、h”floatl;floatt;intmain(void){floatf(float);ﻩfloata,b,e,h,T1=0,T2=0,S1=0,S2=0,C1=0,C2=0,R1=0,R2=0,k,s,x;ﻩinti=0;printf("\n****************************************\n");printf(”****************龙贝格算法**************\n”);ﻩprintf(”****************************************\n\n");printf(”请输入积分得下限:");scanf(”%f",&a);printf(”\n请输入积分得上限:”);ﻩscanf("%f",&b);printf("\n请输入允许误差:");scanf(”%f”,&e);printf(”请输入L:”);ﻩscanf("%f",&l);ﻩprintf(”请输入T:");ﻩscanf("%f",&t);k=1;ﻩh=b—a;T1=h*(f(a)+f(b))/2;ﻩprintf("--—---———-------------\n”);ﻩprintf("kT2S2C2R2\n");printf("%d%10。7f%10.7f%10.7f%10。7f\n”,i,T1,S1,C1,R1);do{s=0;