关于matlab,龙贝格法求积分,求高手看一下错在哪里函数定义function y=f(x)y=2*exp(-1*x^2)/sqrt(pi);digits(7)%龙贝格求解过程a=0; %积分上限b=1; %积分下限h=b-a;d=10^(-5) %精度T1=vpa(h/2*(f(a)+f(b))); %梯形公

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 16:29:06
关于matlab,龙贝格法求积分,求高手看一下错在哪里函数定义function y=f(x)y=2*exp(-1*x^2)/sqrt(pi);digits(7)%龙贝格求解过程a=0;   %积分上限b=1;   %积分下限h=b-a;d=10^(-5)   %精度T1=vpa(h/2*(f(a)+f(b)));   %梯形公

关于matlab,龙贝格法求积分,求高手看一下错在哪里函数定义function y=f(x)y=2*exp(-1*x^2)/sqrt(pi);digits(7)%龙贝格求解过程a=0; %积分上限b=1; %积分下限h=b-a;d=10^(-5) %精度T1=vpa(h/2*(f(a)+f(b))); %梯形公
关于matlab,龙贝格法求积分,求高手看一下错在哪里
函数定义
function y=f(x)
y=2*exp(-1*x^2)/sqrt(pi);digits(7)
%龙贝格求解过程
a=0; %积分上限
b=1; %积分下限
h=b-a;
d=10^(-5) %精度
T1=vpa(h/2*(f(a)+f(b))); %梯形公式计算积分近似值
for n=0:20
if n==0
T2=vpa(1/2*T1+h/2*f(1/2)); %区间二等分梯形公式计算积分近似值
T4=1/2*T2+h/4*(f(1/4)+f(3/4)); %区间四等分梯形公式计算积分近似值
T8=1/2*T4+h/8*(f(1/8)+f(3/8)+f(5/8)+f(7/8)); %区间八等分梯形公式计算积分近似值
%区间十六等分梯形公式计算积分近似值
T16=1/2*T8+h/16*(f(1/16)+f(3/16)+f(5/16)+f(7/16)+f(9/16)+f(11/16)+f(13/16)+f(15/16));
end
S1=T2+1/3*(T2-T1); %梯形加速公式
S2=T4+1/3*(T4-T2);
S4=T8+1/3*(T8-T4);
S8=T16+1/3*(T16-T8);
C1=S2+1/15*(S2-S1); %抛物线型加速公式
C2=S4+1/15*(S4-S2);
C4=S8+15/1*(S8-S4);
R1=C2+1/63*(C2-C1); %龙贝格求积公式
R2=C4+1/63*(C4-C2);

%循环结束控制

if abs(R2)

关于matlab,龙贝格法求积分,求高手看一下错在哪里函数定义function y=f(x)y=2*exp(-1*x^2)/sqrt(pi);digits(7)%龙贝格求解过程a=0; %积分上限b=1; %积分下限h=b-a;d=10^(-5) %精度T1=vpa(h/2*(f(a)+f(b))); %梯形公
%正解地
function y=Romberg(a,b,e)
n=10;%初始量,大致设一下
h=b-a;
t=zeros(n+1,n+1);
t(1,1)=h/4*(f(a)+2*f((a+b)/2)+f(b));
for i=1:n
t(1,i+1)=1/2*t(1,i);
for x=a+h/(2^i):h/2^(i-1):b-h/(2^i)
t(1,i+1)=t(1,i+1)+h/(2^i)*f(x);
end
end
for i=1:2
t(2,i)=4/3*t(1,i+1)-1/3*t(1,i);
end
i=3;
while(abs(t(2,i-1)-t(2,i-2))>e)
t(2,i)=4/3*t(1,i+1)-1/3*t(1,i);
y=t(2,i);
i=i+1;
if i>n break;
end
end
for i=1:2
t(3,i)=16/15*t(2,i+1)-1/15*t(2,i);
end
i=3;
while(abs(t(3,i-1)-t(3,i-2))>e)
t(3,i)=16/15*t(2,i+1)-1/15*t(2,i);
y=t(3,i);
i=i+1;
if i>n-1 break;
end
end