作业帮 > 综合 > 作业

用matlab 龙贝格求积分

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/08/06 04:47:21
用matlab 龙贝格求积分
令f=1/(x+1),a=0,b=1,eps=10^-4
运行下面算法是总是出错,请问该怎么运行?
function[quad,R]=Romberg(f,a,b,eps)
h=b-a;
R(1,1)=h*(feval(f,a)+feval(f,b))/2;
M=1;J=0;err=1;
while err>eps
J=J+1;
h=h/2;
S=0;
for p=1:M
x=a+h*(2*p-1);
S=S+feval(f,x);
end
R(J+1,1)=R(J,1)/2+h*s;
M=2*M;
for k=1:J
R(J+1,k+1)=R(J+1,k)+(R(J+1,k)-R(J,k))/(4^k-1);
end
err=abs(R(J+1,J)-R(J+1,J+1));
end
quad=R(J+1,J+1);
用matlab 龙贝格求积分
我试了下 把你的程序保存为Romberg.m
在工作区输入f=@(x) 1/(x+1)
a=0
b=1
eps=10^(-4)
Romberg(f,a,b,eps)
错误提示是你程序第13行的变量 s没有定义 应该是大写吧