24小时热门版块排行榜    

查看: 3746  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

shirleyran

捐助贵宾 (小有名气)

[求助] 小白求助一个matlab初级问题“??? Undefined function or variable”

运行一个模型,偶尔能出结果图形,但多数情况下总是出现??? Undefined function or variable “t”或“y”。这应该是个初级问题,但本人纯粹新手,不知如何解决,抑郁了两天,向各位大侠求助!程序如下:

function dy=ODE45_fun(t,y)
a=5;b=4.5;c=3;d=3;e=4.9;f=4;g=3.5;h=5;
dy(1)=y(1).*(1-y(1)).*((f-e+g-h).*y(2)-(g-h));
dy(2)=y(2).*(1-y(2)).*((a-c)-(a-c+d-b).*y(1));
dy=[dy(1);dy(2)];

ODE45_fun(t,y)
%ODE45主函数,用以计算yh方程
%tspan为时间区间
tspan=[0,50];
%y0为初始值
y0=[0.45;0.76];
%调用函数进行计算
[t,y]=ode45('ODE45_fun',tspan,y0);
%其他设置为缺省默认
data=[t,y];
save ODE45_data.txt data -ascii
%数据太大,以ASCII文件保存
plot(t,y(:,1),'-',t,y(:,2),'m')
grid on
title('yh方程')
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
1592203609: 金币+1, 谢谢回帖 2013-06-07 11:59:34
shirleyran: 金币+10, ★★★★★最佳答案, 你后面帮我修正的程序一下就运算出来了,激动得真的快掉眼泪了!金币有限,难以表达感激之情,谢谢!!! 2013-06-07 15:48:38
估计你的ODE45_fun没有存m文件吧,你也可以这样写

a=5;b=4.5;c=3;d=3;e=4.9;f=4;g=3.5;h=5;
ODE45_fun=@(t,y)[y(1).*(1-y(1)).*((f-e+g-h).*y(2)-(g-h));y(2).*(1-y(2)).*((a-c)-(a-c+d-b).*y(1))];
%ODE45主函数,用以计算yh方程
%tspan为时间区间
tspan=[0,50];
%y0为初始值
y0=[0.45;0.76];
%调用函数进行计算
[t,y]=ode45(ODE45_fun,tspan,y0);
%其他设置为缺省默认
data=[t,y];
save ODE45_data.txt data -ascii
%数据太大,以ASCII文件保存
plot(t,y(:,1),'-',t,y(:,2),'m')
grid on
title('yh方程')
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
3楼2013-06-07 11:23:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

1592203609

荣誉版主 (知名作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
shirleyran: 金币+10, ★★★很有帮助, 非常感谢!又学到了一招,可能是我的文件存得有问题,又出现别的没定义的变量。不过还是非常感谢! 2013-06-07 15:46:55
xiegangmai: 金币+1, 谢谢参与! 2013-06-07 20:51:33
t或y未定义,在开头加入syms t,y
就可以了
2楼2013-06-07 09:16:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见