实验五:龙贝格积分法
程序:龙贝格积分:
syms f x;
f=input('请输入积分函数
f=');
A=input('请输入积分区间
[a,b]=');
e=input('请输入误差限e=');
x=A(1); fa=eval(f); x=A(2); fb=eval(f);
T(1)=(A(2)-A(1))*(fa+fb)/2;
m=1; x=(A(1)+A(2));
t=T(1)/2+(A(2)-A(1))*eval(f
)/2;
while abs(t-T(1))>e
t=T(1);
new=0; for i=1:(2^m)
x=A(1)+(2*i-1)*(A(2)-A(1))/
(2^(m+1));
new=new+eval(f);
end
T(m+1)=T(m)/2+(A(2)-A(1))*n
ew/(2^(m+1)); for i=m:(-1):1 L(m,i)=T(i);
end for p=m:(-1):1
T(p)=((4^(m+1-p))*T(p+1)-T(
p))/(4^(m+1-p)-1);
end
m=m+1;
end
fprintf('数值积分结果为T(1)=%.8f\\n',T(1)); fprintf('经过了%d次迭代
\\n',m);
用龙贝格积分法计算积分的近
似值:
1.1请输入积分函数f=x^3
请输入积分区间[a,b]=[6,100] 请输入误差限e=1000 数值积分结果为T(1)=250002.75465907
经过了15次迭代 1.2请输入积分函数f=x^3
请输入积分区间[a,b]=[6,100]
请输入误差限e=500 数值积分结果为T(1)=24999982.87732918
经过了16次迭代
2.1请输入积分函数f=sin(x)/x
请输入积分区间[a,b]=[0.1e-010,1] 请输入误差限e=0.1e-004
数值积分结果为T(1)=0.94607740 经过了12次迭代
2.2请输入积分函数f=sin(x)/x
请输入积分区间[a,b]=[0.1e-010,1] 请输入误差限e=0.1e-005
数值积分结果为T(1)=0.94608236 经过了15次迭代
3.1请输入积分函数f=sin(x^2)
请输入积分区间[a,b]=[0 1] 请输入积分区间[a,b]=[0,1] 请输入误差限e=0.0001
数值积分结果为T(1)=0.31031986 经过了11次迭代
3.2请输入积分函数f=sin(x^2)
请输入误差限e=0.1e-005
数值积分结果为T(1)=0.31026911 经过了17次迭代