一、实验名称
Newton-cotes型求积公式
二、实验目的
学会Newton-cotes型求积公式,并应用该算法于实际问题。
三、实验内容
求定积分⎰π
cos xdx e x
四、实验要求
选择等分份数n,用复化Simpson求积公式求上述定积分的误差不超过8
10-的近似值,用MATLAB中的内部函数int求此定积分的准确值,与利用复化Simpson求积公式计算的近似值进行比较。
五、实验程序与输出结果
在MATALAB的Editor窗口中输入以下程序:
function y=comsimpson(fun,a,b,n)
z1=feval (fun,a)+ feval (fun,b);m=n/2;
h=(b-a)/(2*m); x=a;
z2=0; z3=0; x2=0; x3=0;
for k=2:2:2*m
x2=x+k*h; z2= z2+2*feval (fun,x2);
end
for k=3:2:2*m
x3=x+k*h; z3= z3+4*feval (fun,x3);
end
y=(z1+z2+z3)*h/3;
然后保存为然后保存为comsimpson.m的文件
在MATALAB工作窗口命令窗口中输入:
Q2 =comsimpson (@fun,0,pi,1000000000)
syms x
fi=int(exp(x).*cos(x),x,0,pi);
Fs= double (fi)
wQ2= double (abs(fi-Q2) )
运行后结果:
Q2=-12.0703,Fs=-12.0703,
wQ2=5.2654e-08
六、实验结果分析
利用复化simpson求积公式计算运行后其结果为Q2=-12.0703,利用内部函数求解的结果为Fs=-12.0703,两者的误差为wQ2=5.2654e-08。
从中可以看出误差结果达到了1E-8级数,而相对应的N已经取到了10亿次,再增大N对结果已经没有太大变化。
可见复化simpson要得到比较准确的结果需要运算的次数比较大。