声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3830|回复: 5

[综合讨论] Undefined function or variable 'x'求助

[复制链接]
发表于 2010-11-13 11:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我们数值分析老师给的一个关于龙贝格求积分的MATLAB程序,可我老是整不明白啊,向大侠求助。
具体是: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);
我把上述代码以m文件的的格式保存到MATLAB程序下的work文件夹里了,然后我又在command window向调用它,输入了f=x/(4+x^2);a=0;b=1;eps=10^(-4);[quad R]=Romberg(f,a,b,eps);然后回车,结果就出现了Undefined function or variable 'x'.哪位大侠能告诉我这到底是怎么回事啊,我初学MATLAB啊

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2010-11-13 11:17 | 显示全部楼层
回复 1 # lonmel 的帖子

初学, 建议楼主看下
常见的程序出错问题整理 (eight), 2F
http://forum.vibunion.com/forum/thread-46001-1-1.html
发表于 2010-11-13 11:20 | 显示全部楼层
f=x/(4+x^2)直接运行显然其x是没有定义的
看样子楼主没有用过matlab
你可以参考帮助文件中ode45之类的函数的用法调用这个函数
发表于 2010-11-13 13:38 | 显示全部楼层
  1. >> f=@(x)x/(4+x^2);a=0;b=1;eps=10^(-4);[quad R]=Romberg(f,a,b,eps);
  2. ??? Attempted to access R(3,3); index out of bounds because size(R)=[3,2].

  3. Error in ==> Romberg at 18
  4. err=abs(R(j+1,j)-R(j+1,j+1));
复制代码
这是我运行的结果,建议你好好看看算法,学学程序,说实话,这个程序里面的一些东西我也看不太明白,尤其是这逗号表达式,在matlab里面用的不多

评分

1

查看全部评分

发表于 2010-11-13 14:09 | 显示全部楼层
楼主初学吧,建议狠抓基础啊!
发表于 2010-11-13 21:04 | 显示全部楼层
本帖最后由 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

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 13:58 , Processed in 0.055640 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表