数值积分与数值微分实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 数值积分与数值微分
【实验内容】
选用复合梯形公式,复合Simpson 公式,Romberg 算法高斯算法计算
(1) )5343916.1(sin 44102≈-=⎰
I dx x I (2) )9460831.0,1)0((sin 10≈==⎰I f dx x
x I (3) dx x e I x
⎰+=1024 ;(4) dx x
x I ⎰++=1021)1ln( 【实验前的预备知识】
1、 深刻认识数值积分法的意义;
2、 明确数值积分精度与步长的关系;
3、 根据定积分的计算方法,可以考虑二重积分的计算问题。
4、 比较各种积分方法复杂度及收敛速度。
【实验方法或步骤】
1、 编制数值积分算法的程序;
2、 分别用两种算法计算同一个积分,并比较其结果;
3、 分别取不同步长n a b h /)(-=,试比较计算结果(如20,10=n 等);
4、 给定精度要求ε,试用变步长算法,确定最佳步长。 程序:
复合梯形公式求函数f 在区间【a ,b 】上的定积分代码
function [I,step]=CombineTraprl(f,a,b,eps)
if(nargin==3)
eps=1.0e-4;
end
n=1;
h=(b-a)/2;
I1=0;
I2=(subs(sym(f),findsym(sym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>eps
n=n+1;
h=(b-a)/n;
I1=I2;
I2=0;
for i=0:n-1
x=a+h*i;
x1=x+h;
I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1)); end
end
I=I2;step=n;
用该方法计算)5343916.1(sin 44
102≈-=⎰I dx x I 的程序为
[q,s]=CombineTraprl('sqrt(4-(sinx)^2)',0,0.25,1.5343916)
得结果为q =0.4986 s =3即结果为0.4986积分区间为3个
辛普森公式求函数f 在区间【a ,b 】上的定积分代码
function [I,step]=IntSimpson(f,a,b,type,eps)
%type 分别为1,2,3时分别为辛普森公式,3/8公式,复合辛普森
if(type==3&&nargin==4)
eps=1.0e-4;
end
I=0;
switch type
case 1,
I=((b-a)/6)*(subs(sym(f),findsym(sym(f)),a)+...
4*subs(sym(f),findsym(sym(f)),(a+b)/2)+...
subs(sym(f),findsym(sym(f)),b));
step=1;
case 2,
I=((b-a)/8)*(subs(sym(f),findsym(sym(f)),a)+...
3*subs(sym(f),findsym(sym(f)),(2*a+b)/3)+...
3*subs(sym(f),findsym(sym(f)),(a+2*b)/3)+subs(sym(f),findsym(sym(f)),b)); step=1;
case 3,
n=2;
h=(b-a)/2;
I1=0;
I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>eps
n=n+1;
h=(b-a)/n;
I1=I2;
I2=0;
for i=0:n-1
x=a+h*i;
x1=x+h;
I2=I2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+...
4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+...
subs(sym(f),findsym(sym(f)),x1));
end
end
I=I2;
step=n;
end 用该方法计算)5343916.1(sin 44
102≈-=⎰I dx x I 的程序为
[q,s]=IntSimpson('sqrt(4-(sinx)^2)',0,0.25,1)
得结果为q =0.4987 s =1即结果为0.4987 积分区间为一个