(完整版)计算物理实验报告数值求积

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

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

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

资源描述

数值求积一、实验目的1.掌握基本数学运算,学会利用梯形法则、Simpson法则等求积方法,包括了解这些公式得到的结果的精度和误差2.熟练运用fortran来解决实际问题3.比较梯形法则和Simpson法则的精度二、实验问题写一个程序,用梯形法则和Simpson法则求积分并且考察它对不同h值的精度三、实验方法1.梯形法则梯形法则是采用梯形来估计曲线下方面积,这等同将被积函数近似为直线函数,被积的部分近似为梯形,要求得较准确的数值,可以将要求积的区间分成多个小区间。2.Simpson法则用过三点f-1,f0,f1的抛物线逼近f(x),对f(x)作泰勒展开113/21/33200(1)33dxttdtxxx3.变量代换令1/31xt,则积分形式作以下变换四、实验程序1.梯形法则programtx1implicitnoneinteger::ireal(8)::h,d,s,f,result1real(8)::sum1,p,n,l,exact,diff1!准备基本的变量n=10000000.0h=1.0/n!取n值,确定格子间隔hp=hs=3/(p**3-3*p**2+3*p)**(1.0/3.0)!将习题的积分进行变量替换,并得到f(h)l=ssum1=0f=2*h*s!得到从0到h的积分,2hf(h)s=0i=0exact=2*3.1415926586/1.7320508!得到标准值doi=2,n-1p=i*hs=3/(p**3-3*p**2+3*p)**(1.0/3.0)sum1=sum1+2*s!对除了首尾两项的函数值部分,迭代求和enddop=1s=3/(p**3-3*p**2+3*p)**(1.0/3.0)sum1=sum1+s+l!加上首尾两项系数为1的函数值result1=sum1*h/2+f!得到从h到1的积分值,再加上从0到h的积分diff1=result1-exact!算误差write(*,*)result1,diff1endprogram2.Simpson法则programSimpsonimplicitnoneinteger::ireal(8)::h,d,s,f,result1real(8)::sum1,p,n,l,g,exact,diff1!准备基本的变量n=10000000.0h=1.0/n!取n值,确定格子间隔hp=hs=3/(p**3-3*p**2+3*p)**(1.0/3.0)!将习题的积分进行变量替换,并得到f(h)sum1=0f=2*h*s!得到从0到h的积分2hf(h)result1=0l=ssum1=0s=0i=0g=(1.0-h)/n!重新划分h到1区间的h值,即是gexact=2*3.1415926586/1.7320508!得到标准值doi=1,n-1if(mod(i,2)==0)thenp=i*g+hs=3/(p**3-3*p**2+3*p)**(1.0/3.0)sum1=sum1+2*selseif(mod(i,2)==1)thenp=i*g+hs=3/(p**3-3*p**2+3*p)**(1.0/3.0)sum1=sum1+4*s!对除了首尾两项的函数值部分,根据奇偶乘上对应的系数,再迭代求和endifenddop=1s=3/(p**3-3*p**2+3*p)**(1.0/3.0)sum1=sum1+s+l!得到从h到1的积分值,再加上从0到h的积分result1=sum1*h/3+f!得到从h到1的积分值,再加上从0到h的积分diff1=result1-exact!算误差write(*,*)result1,diff1endprogram四、实验结果nh梯形法则Simpson法则梯形法则误差Simpson法则误差1001*10^(-2)3.678879658971443.711760089978825.128065*10^(-2)8.4161089*10^(-2)10001*10^(-3)3.638562631418953.641665374582281.0963631*10^(-2)1.4066373*10^(-2)100001*10^(-4)3.62995904203103.63021398691592.360041*10^(-3)2.6149859*10^(-3)1000001*10^(-5)3.62810722461293.62812039440575.082236*10^(-4)5.2139347*10^(-4)10000001*10^(-6)3.62770830075783.62770695298621.092998*10^(-4)1.0795205*10^(-4)100000001*10^(-7)3.62762235603453.62762164694332.335510*10^(-5)2.2640125*10^(-5)1000000001*10^(-8)3.62760383918103.62760364515794.838879*10^(-6)4.6442271*10^(-6)五、实验结果分析利用梯形法则和Simpson法则,皆可以得到与标准值近似的值。对于误差的分析,我们可以看到在n值较小,h值较大时,梯形法则的误差较小;当n值较大,h值较小的时候,Simpson法则的误差较小。若我们所需要的值特别精确时,无疑应选择Simpson,此时的n值应尽可能地大,h尽可能小。六、实验结论讨论对于在h值较大时,Simpson法则所得误差较梯形法则大的原因,笔者认为有两点。第一种可能是在x从0至h处的积分由于取的是近似的2hf(h),或许会有影响。但考虑到两种算法都是如此,其对误差的影响程度应是相同的。第二种可能是在x趋于h处时,由于h很小,趋于0,这使得函数值较大,且计算机的计算本身便有误差。而在梯形法则和Simpson法则的计算过程中,在最终得到的结果里,f(x)的系数在Simpson的算法里大于在梯形法则的算法(4/3>1),这导致此时Simpson的误差略大。而随着h值的减小,该点所导致的误差在整个计算过程中的影响逐渐降低,逐渐体现出了Simpson的精度要更高。

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

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

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

×
保存成功