- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Matlab实现Rmberg数值积分算法系统建模与仿真结课作业.doc
利用Mat I ab实现Romberg数值积分算法
一、 内容
针对于來些多项式稅分,利用Newton—Leibniz积分公式求解时有困难,口J* 以采用数值积分的方法,求解指定精度的近似解,木文利用Matlab屮的.m文件 编写了复化梯形公式与Romberg的数值积分算法的程序,求解多项式的数值积分, 比较两者的收敛速度。
二、 数值积分公式
复化梯形公式求解数值积分的基础是将区间一等分吋的Newton-Cotes 求积公式:
/ = P /⑻也=—-^[f(a) + f(b)]
其几何意义是,利用区间端点的函数值、与端点构成的梯形而积来近似/(x) 在区问[a, b]上的积分值,截断误差为:
(a,b)? a)3
(a,b)
具冇一次的代数精度,很明显,这样的近似求解精度很难满足计算的要求, 因而,可以采用将积分区间不停地对分,当区间足够小的吋候,利用梯形公式求 解每一个小区问的积分近似值,然后将所有的区问加起来,作为被求函数的积分,
可以根据计算精度的要求,划分对分的区间个数,得到复化梯形公式:
々(b - a)
々(b - a))]
(b - a)2n
[f(a) + f(b) + 2^/(a+
k=\
K截断误差为:
_(b_ a)
_(b_ a)12
7 e (a,b)
Romberg数值识分算法
使用复化的梯形公式计算的数值积分,其收敛速度比减慢,为此,采用 Romberg数值积分。其思想主要是,根裾/的近似值7;加上/与7;的近似误差,
伽 伽
作为新的/的近视,反复迭代,求出满足计算精度的近似解。
用r2?近似/所产生的误差可用K式进行估算:
新的/的近似值:
+ 尸(0 1 2 …?)
Romberg数值釈分算法计算顺序
TOC \o 1-5 \h \z i=0 (1) 7;o
i二1 (2) G (3) 7;*
i=2 (4) g (5) $ (6)
(10)(14)i=3 (7) (8) $ (9)
(10)
(14)
i=4 (11) g (12) $ (13)
其中,第一列是二阶收敛的,第二列是四阶收敛的,第三列是六阶收敛的,
第四列是八阶收敛的,即Romberg序列。
三、复化梯形法以及Romberg算法程序流程!
输入被枳函数、积分区间、收敛条件
计算Ti+10
输出结果
1复化梯形法程序流程
12 Romberg算法程序流程
四、计算实例
依据上文所述的流程图,编写复化梯形程序以及Romberg算法程序,并且利 用实例验证程序的正确性,示例如下(计算精度):
71-
表2
计算结果
计算精度
0. 5X1CT-5
0. 5Xl(f-7
0. 5Xl(T-9
复化梯形
时间
0.069826394633
0.216635802304
3.459824945493
算法
近似值
3.141590110458
3.141592613853
3.141592653434
Romberg
时间
0.045687329710
0.043361726357
0.044913907518
算法
近似值
3.141592502458
3.141592651224
3.141592653552
从上表屮可以看出,当要求的计算精度不高时,复化梯形算法与Romberg 算法计算时问和差不太大,但是Romberg算法是要快于复化梯形算法的;当要求 的计算精度更高的时候,Romberg算法是明显快于S化梯形算法。
木文所编写的程序适用于多项式的数值积分,且对子积分区间内,被积函数
在每一点必须有定义,在以后的学习中进一步改进。
附录:
复化梯形算法程序
function []=sf(a,b,m,M,d)
tic
dispG请输入分子多项式a,分母多项式b,积分卜限m,积分上限M,以及计算精度d* f=poly2sym(a)/poly2sym(b) %用于给用户显示被积函数的形式
%利用梯形公式计算此数值积分
disp(*利用梯形公式计算数值积分的结果*)
kk=zeros(); %用于存放姑果
kkUJhlAIM-mVlIsubsW^rrO+subsa/xM))% 先存储首项
for i=l:l:2八30 t=0;
forj=0:l:2 八(i-l)-l
v=m+(2*j+l)*(M-m/(2 八 i)
vv=polyval(a,v)/polyval(b/v);
t=t+(M-m)/(2Ai)*vv
end
y=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;
end
end
time=toc
fprintf(The result is %f\n, kk(
原创力文档


文档评论(0)