计算方法--龙贝格积分法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结论:从运行结果可见, 当设定误差 eps=1e-5 时, 为了满足误差要求, 运行 n=14 时才能满足, 这样精度比较高,但是代价就是运行的时候速度有点慢。
按照题目要求, 要求尽可能的使结果精确一些, 因此我这里采用的是根据误差要求进行的计 算,计算程序如下: function [R,T,n]=Romberg3(myfunc,a,b,eps) %This function uses Romberg to calculate integration %myfunc is the integrand,a is integral lower bound %b is integral upperbound %eps is tolerance format long; n=5; while 1 T(n,:)=0; T(1,1)=(b-a)*(myfunc(a)+myfunc(b))/2; for k=1:n-1 sum=0; for i=1:2^k sum=sum+myfunc(a+(2*i-1)*(b-a)/(2^(k+1))); end T(k+1,1)=0.5*T(k,1)+(b-a)*sum/(2^(k+1)); end for i=2:n T(i,2)=T(i,1)+1/3*(T(i,1)-T(i-1,1)); end for i=3:n T(i,3)=T(i,2)+1/15*(T(i,2)-T(i-1,2)); end for i=4:n T(i,4)=T(i,3)+1/(4^3-1)*(T(i,3)-T(i-1,3)); end if abs(T(n,4)-T(n-1,4))<eps break; else n=n+1; end end R=T(n,4); 以上便是这次编写的龙贝格积分的程序。 在matlab的command window运行如下: >> myfuc=inline('log(1+x)/(1+x^2)','x'); >> eps=1e-5;
6.2 计算实习 我所做的题目是:利用龙贝格积分法计算积分 1 (1 ln + ������������ ) ������������������������ � 1 + ������������ 2 0
>> a=0;b=Biblioteka Baidu; >> [R,T]=Romberg3(myfuc,a,b,eps) 运行结果截图如图所示(注:运行结果截图一张放不下,截了两张):