利用matlab实现romberg数值积分算法----系统建模与仿真结课作业

利用matlab实现romberg数值积分算法----系统建模与仿真结课作业

ID:21870123

大小:241.41 KB

页数:9页

时间:2018-10-25

利用matlab实现romberg数值积分算法----系统建模与仿真结课作业_第1页
利用matlab实现romberg数值积分算法----系统建模与仿真结课作业_第2页
利用matlab实现romberg数值积分算法----系统建模与仿真结课作业_第3页
利用matlab实现romberg数值积分算法----系统建模与仿真结课作业_第4页
利用matlab实现romberg数值积分算法----系统建模与仿真结课作业_第5页
资源描述:

《利用matlab实现romberg数值积分算法----系统建模与仿真结课作业》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、利用MatIab实现Romberg数值积分算法一、内容摘要针对于來些多项式稅分,利用Newton—Leibniz积分公式求解时有困难,口J*以采用数值积分的方法,求解指定精度的近似解,木文利用Matlab屮的.m文件编写了复化梯形公式与Romberg的数值积分算法的程序,求解多项式的数值积分,比较两者的收敛速度。二、数值积分公式1.复化梯形公式求解数值积分的基础是将区间一等分吋的Newton-Cotes求积公式:/=P/⑻也=—-^[f(a)+f(b)]其几何意义是,利用区间端点的函数值、与端点构成的梯形而积来近似/(x)在区问[a,b]上的积分值,截断误差为:(a,b)♦a)312具冇一次的

2、代数精度,很明显,这样的近似求解精度很难满足计算的要求,因而,可以采用将积分区间不停地对分,当区间足够小的吋候,利用梯形公式求解每一个小区问的积分近似值,然后将所有的区问加起来,作为被求函数的积分,可以根据计算精度的要求,划分对分的区间个数,得到复化梯形公式:々(b-a))](b-a)2n,卜i[f(a)+f(b)+2^/(a+k=K截断误差为:_(b_a)127e(a,b)1.Romberg数值识分算法使用复化的梯形公式计算的数值积分,其收敛速度比减慢,为此,采用Romberg数值积分。其思想主要是,根裾/的近似值7;加上/与7;的近似误差,伽伽作为新的/的近视,反复迭代,求出满足计算精度

3、的近似解。用r2„近似/所产生的误差可用K式进行估算:新的/的近似值:+尸(012…•)Romberg数值釈分算法计算顺序i=0(1)7;oi二1(2)G(3)7;*i=2(4)g(5)$(6)(10)(14)i=3(7)(8)$(9)i=4(11)g(12)$(13)其中,第一列是二阶收敛的,第二列是四阶收敛的,第三列是六阶收敛的,第四列是八阶收敛的,即Romberg序列。三、复化梯形法以及Romberg算法程序流程!输入被枳函数、积分区间、收敛条件计算Ti+10输出结果1复化梯形法程序流程12Romberg算法程序流程四、计算实例依据上文所述的流程图,编写复化梯形程序以及Romberg算法

4、程序,并且利用实例验证程序的正确性,示例如下(计算精度):71-表2计算结果计算精度0.5X1CT-50.5Xl(f-70.5Xl(T-9复化梯形时间0.0698263946330.2166358023043.459824945493算法近似值3.1415901104583.1415926138533.141592653434Romberg时间0.0456873297100.0433617263570.044913907518算法近似值3.1415925024583.1415926512243.141592653552从上表屮可以看出,当要求的计算精度不高时,复化梯形算法与Romberg算法计

5、算时问和差不太大,但是Romberg算法是要快于复化梯形算法的;当要求的计算精度更高的时候,Romberg算法是明显快于S化梯形算法。木文所编写的程序适用于多项式的数值积分,且对子积分区间内,被积函数在每一点必须有定义,在以后的学习中进一步改进。附录:1.复化梯形算法程序function[]=sf(a,b,m,M,d)ticdispG请输入分子多项式a,分母多项式b,积分卜'限m,积分上限M,以及计算精度d*>f=poly2sym(a)/poly2sym(b)%用于给用户显示被积函数的形式%利用梯形公式计算此数值积分disp(*利用梯形公式计算数值积分的结果*)kk=zeros();%用于存放

6、姑果kkUJhlAIM-mVlIsubsW^rrO+subsa/x'M))%先存储首项fori=l:l:2八30t=0;forj=0:l:2八(i-l)-lv=m+(2*j+l)*(M-m>/(2八i)vv=polyval(a,v)/polyval(b/v);t=t+(M-m)/(2Ai)*vvendy=l/2*kk(i,l)+t%通项公式计算各项值kk(i+l/l)=y%存储其他项f=i+l;%记录符合条件的值的下标if(l/3*(kk(i+l/l)-kk(izl))<=d)break;endendtime=tocfprintf('Theresultis%f',kk(fzl))2.Rom

7、berg算法程序function[]=romberg(a,b,m/M/d)ticdispC请输入分子多项式a,分母多项式b,和分下限m,积分上限M,以及汁算精度d'>f=poly2sym(a)/poly2sym(b)%用于给用户显示被积函数的形式dispf利用梯形公式计算数值积分的结果"Jkk=zeros();%用于存放结果kk{l,l}=l/2*(M-m)/l*(subs(f/xi,m)+sub

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。