数值分析实验报告 龙贝格算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)。调用函数解题如下: 四、实验小结 在学习龙贝格算法之前,我们学习了梯形公式,辛普森公式,科茨公式。我们知道函数变化有急有缓,我们希望能够用很短的时间和很少的步数来求得积分函数的数值,由此 所以龙贝格算法比其他的几种公式有很大的优势,我在写龙贝格算法时经常忘记定义变量或者写错语句,后来参考了别人的程序后自己进行了一下改进。最后得到了结果。