数值分析实验报告-C语言编程-龙贝格

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

班级:*****学号:******姓名:成绩:________数值分析实验报告实验3数值积分3.1实验目的通过本实验理解数值积分与微分的基本原理。掌握数值积分中常见的复合求积公式的编程实现。掌握龙贝格算法的基本思路和迭代步骤;培养编程与上机调试能力。3.2算法描述3.2.1龙贝格算法基本思路先算出他T0(0),从而计算T0(1)以此类推,在判断|Tn(0)-Tn-1(0)|e即可利用加速递推公式算出结果3.2.2龙贝格算法计算步骤步骤1:输入区间端点,ab,精度控制值e,循环次数M,定义函数()fx,取1n,;hba1,1()()/2Rhfafb步骤2:for2ktoM22,11,1111,,1,11,1,1,1{21/22/41}kkkkkijkjkjkjkjkkkkRRhfaihforjtokRRRRifRRe退出循环步骤3:数据积分近似值,kkR。利用Romberg方法计算函数10sinxIdxx3.3实验内容用龙贝格算法计算:10sinxIdxx3.4实验步骤3.4.1代码#includeiostream.h#includemath.h#definee0.00000000000001doublef(doublex){doubley;if(x==0){returny=1.0;}elsey=sin(x)/x;returny;}voidromberg(doublea,doubleb){intn=1,k=0;doubleh,T2,S2=0,C2=0,R2=0,T1,C1,S1,R1;h=(b-a)/2;T2=h*(f(a)+f(b));while(fabs((R2-R1))e){R1=R2;T1=T2;S1=S2;C1=C2;doublesum=0;inti;for(i=1;i=n;i++){sum=sum+f(a+(2*i-1)*h);}T2=T1/2+sum*h;S2=(4*T2-T1)/3;C2=(16*S2-S1)/15;R2=(64*C2-C1)/63;n=n*2;k++;h=h/2;}cout*****最后结果为:I=R2endl;}voidmain(){doublea,b;cout***输入上下限a,b的值用空格隔开***endl;cinab;cout***下限a=aendl;cout***上限b=bendl;cout***被积函数为:y=sin(x)/xendl;cout*********************结果如下*********************endl;romberg(a,b);}3.4.2实验结果3.5实验体会*************************************************************************************************************************************

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功