资源描述:
《龙贝格积分算法实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验题目2Romberg积分法摘要考虑积分欲求其近似值,可以采用如下公式:(复化)梯形公式(复化)辛卜生公式(复化)柯特斯公式这里,梯形公式显得算法简单,具有如下递推关系因此,很容易实现从低阶的计算结果推算出高阶的近似值,而只需要花费较少的附加函数计算。但是,由于梯形公式收敛阶较低,收敛速度缓慢。所以,如何提高收敛速度,自然是人们极为关心的课题。为此,记为将区间进行等份的复化梯形积分结果,为将区间进行等份的复化辛卜生积分结果,为将区间进行等份的复化柯特斯积分结果。根据李查逊(Richardson)外推加速方法,可得到可以证明,如果充分光
2、滑,则有(固定)这是一个收敛速度更快的一个数值求积公式,我们称为龙贝格积分法。该方法的计算可按下表进行……………很明显,龙贝格计算过程在计算机上实现时,只需开辟一个一维数组,即每次计算的结果,可存放在位置上,其最终结果是存放在位置上。前言利用龙贝格积分法计算积分程序设计流程:1.准备初值,计算且(为等份次数)2.按梯形公式的递推关系,计算3.按龙贝格公式计算加速值4.精度控制。对给定的精度,若则终止计算,并取作为所求结果;否则,重复2~4步,直到满足精度为止。问题1(1)程序运行如下:I=Romberginterg(inline('x.
3、^2.*exp(x)'),0,1,25,1e-6)I=0.7183(2)程序运行如下:I=Romberginterg(inline('exp(x).*sin(x)'),1,3,25,1e-6)I=10.9502(3)程序运行如下:I=Romberginterg(inline('4./(1+x.^2)'),0,1,25,1e-6)I=3.1416(4)程序运行如下:I=Romberginterg(inline('1./(1+x)'),0,1,25,1e-6)I=0.6931问题2(1)程序运行如下:I=Romberginterg(inli
4、ne('cos(x)./sqrt(1-x)'),0,1,25,1e-6)I=NaN因为函数在x=0处出现了0/0的情况,极限为1,所以Matlab的结果显示为NaN非数,解决方法是把下限0改为一个小数eps。I=Romberginterg(inline('sin(x)./x'),eps,1,25,1e-6)I=0.9461(2)程序运行如下:I=Romberginterg(inline('cos(x)./sqrt(1-x)'),0,1,25,1e-6)I=NaN与(1)的原因相同,函数在x=1处出现了0/0的情况,结果为无穷,此时应选择
5、变换,将积分变为,再进行变换,将积分变为,变换后输入命令:I=RombergInterg(inline('2*sin(x).*cos((sin(x)).^2)'),0,pi/2,25,1e-6)I=1.4996(3)程序运行如下:I=Romberginterg(inline('cos(x)./sqrt(x)'),0,1,25,1e-6)I=NaN函数在x=0处出现了1/0的情况,结果为无穷。先将积分变为,再做变换,I=2*Romberginterg(inline('cos(x.^2)'),0,1,25,1e-6)I=1.8090(1)程
6、序运行如下:I=Romberginterg(inline('x.*sin(x)./(1-x.^2)'),-1,1,25,1e-6)I=NaN函数在x=1,-1处出现了sin1/0的情况,结果为无穷。被积函数为偶函数,做变换,积分变为I=2*Romberginterg(inline('sin(x).*sin(sin(x))'),0,pi/2,25,1e-6)I=1.3825或者使用Gauss-Chebyshev求积公式:I=GaussInterg(inline('x.*sin(x)'),'Chebyshev',-1,1,1e-6)I=1.
7、3825由于Gauss-Chebyshev求积公式求的是在的积分因此此处的为。问题3(1)程序运行如下:I=Romberginterg(inline('exp(-x.^2)'),-10,10,25,1e-6)I=1.7725由于积分区间无限,而函数在[-10,10]外很小,可以用函数在[-10,10]上的积分近似这个无穷积分。或者使用Gauss-Hermite求积公式:I=GaussInterg(inline('x+1-x'),'Hermite',0,0,1e-6)I=1.7725由于Gauss-Hermite求积公式求的是在的积分因此
8、此处的为1。(2)程序运行如下:先做变换,则原积分变为I=2*Romberginterg(inline('1./(1+x.^2)'),0,1,25,1e-6)I=1.5708(3)程序运行如下:使用Gaus