数值分析实验报告 龙贝格算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数值分析》课程实验报告

一、实验目的

利用MATLAB编写龙贝格算法,并测试。

二、实验内容

1龙贝格求积算法Matlab主程序

2调用函数解题

三、实验步骤

1写出龙贝格求积算法Matlab的程序

function[t]=rbg(f,a,b,c)

t=zeros(15,4);

t(1,1)=(b-a)/2*(f(a)+f(b));

for k=2:4

sum=0;

for i=1:2^(k-2)

sum=sum+f(a+(2*i-1)*(b-a)/2^(k-1));

end

t(k,1)=0.5*t(k-1,1)+(b-a)/2^(k-1)*sum;

for i=2:k

t(k,i)=(4^(i-1)*t(k,i-1)-t(k-1,i-1))/(4^(i-1)-1);

end

end

for k=5:15

sum=0;

for i=1:2^(k-2)

sum=sum+f(a+(2*i-1)*(b-a)/2^(k-1));

end

t(k,1)=0.5*t(k-1,1)+(b-a)/2^(k-1)*sum;

for i=2:4

t(k,i)=(4^(i-1)*t(k,i-1)-t(k-1,i-1))/(4^(i-1)-1);

end

if k>6 ;

if abs(t(k,4)-t(k-1,4))

disp(['答案',num2str(t(k,4))]);

break;

end

end

end

if k>=15

disp(['不收敛']);

end

2调用函数解题

由于被积函数sin(x)/x在积分下限0时函数值难定,故取积分下限为10^(-60)。调用函数解题如下:

四、实验小结

在学习龙贝格算法之前,我们学习了梯形公式,辛普森公式,科茨公式。我们知道函数变化有急有缓,我们希望能够用很短的时间和很少的步数来求得积分函数的数值,由此

所以龙贝格算法比其他的几种公式有很大的优势,我在写龙贝格算法时经常忘记定义变量或者写错语句,后来参考了别人的程序后自己进行了一下改进。最后得到了结果。

相关文档
最新文档