Undefined function or variable 'x'求助
我们数值分析老师给的一个关于龙贝格求积分的MATLAB程序,可我老是整不明白啊,向大侠求助。具体是:function =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);
我把上述代码以m文件的的格式保存到MATLAB程序下的work文件夹里了,然后我又在command window向调用它,输入了f=x/(4+x^2);a=0;b=1;eps=10^(-4);=Romberg(f,a,b,eps);然后回车,结果就出现了Undefined function or variable 'x'.哪位大侠能告诉我这到底是怎么回事啊,我初学MATLAB啊 回复 1 # lonmel 的帖子
初学, 建议楼主看下
常见的程序出错问题整理 (eight), 2F
http://forum.vibunion.com/forum/thread-46001-1-1.html
f=x/(4+x^2)直接运行显然其x是没有定义的
看样子楼主没有用过matlab
你可以参考帮助文件中ode45之类的函数的用法调用这个函数 >> f=@(x)x/(4+x^2);a=0;b=1;eps=10^(-4);=Romberg(f,a,b,eps);
??? Attempted to access R(3,3); index out of bounds because size(R)=.
Error in ==> Romberg at 18
err=abs(R(j+1,j)-R(j+1,j+1));这是我运行的结果,建议你好好看看算法,学学程序,说实话,这个程序里面的一些东西我也看不太明白,尤其是这逗号表达式,在matlab里面用的不多 楼主初学吧,建议狠抓基础啊! 本帖最后由 Happy99 于 2010-11-14 00:38 编辑
建议先看下
建议提问的网友分清 编程问题 和 专业问题
http://forum.vibunion.com/forum/vi ... 36746&extra=&page=1
提问的智慧!!!!(发帖前请认真阅读)
http://forum.vibunion.com/forum/viewthread.php?tid=21991
还有看看fortran的版本 http://forum.vibunion.com/thread-31497-1-1.html
页:
[1]