数值积分实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析实验报告
实验四数值积分
一、用复合辛普森和龙贝格算法计算:
复合辛普森主函数xps:
function xps(a,b,eps)
n=0;Sd=0;
S=(f(a)+f(b))*(b-a)/2;
while abs(Sd-S)>eps
Sd=S;
n=n+1;
h=(b-a)/n;
for i=1:n+1
x(i)=a+(i-1)*h;
end
S1=f(x(1))+f(x(n+1));
S2=0;
S3=0;
for i=2:n
S2=S2+f(x(i));
end
S2=2*S2;
for i=1:n
S3=S3+f((x(i)+x(i+1))/2);
end
S3=4*S3;
S=(S1+S2+S3)*h/6;
end
fprintf('%.15f\n',S);
龙贝格主函数romberg2:
function romberg2 (a,b,eps) %a,b为区间,eps为精度
Rd=0;
R=(b-a)/2*(f(a)+f(b));
N=0;
while abs(Rd-R)>eps
Rd=R;
N=N+1;
for k=1:2
if k==1
n=N*2;
else;
n=N;
end
h=(b-a)/n;
for i=1:n+1
x(i)=a+(i-1)*h;
end
C=0;
for i=1:n
C1=7*f(x(i))+32*f(x(i)+1/4*h)+12*f(x(i)+2/4*h)+32*f(x(i)+3/4*h)+7*f(x(i+1));
C=C+C1*h/90;
end
if k==1
R=C*64/63;
else
R=R-C/63;
end
end
end
fprintf('结果为:%.15f',R);
1、建立被积函数文件f.m
function y=f(x)
y=exp(-x^2);
2、调用xps.m、romberg2.m求定积分.
>> xps(0,0.5,0.0000001)
0.461281071728228
>>romberg2 (0,0.5,0.0000001)
结果为: 0.461281006413932