声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2400|回复: 4

[综合讨论] 急!请问为什么这个lorenz方程的matlab程序一运行就出现如下问题

[复制链接]
发表于 2006-5-22 13:59 | 显示全部楼层 |阅读模式

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

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

x
<P>程序如下:<br>function xdot=lorenzeq(t,x)<br>xdot=[-8/3*x(1)+x(2)*x(3);-8620*x(2)+8620*x(3);-x(1)*x(2)+144*10^7*x(2)-x(3)];<br>t_final=100;x0=[0;0;1e-10];<br>[t,x]=ode45('lorenzq',[o,t_final],x0);plot(t,x),<br>figure;<br>plot(x(:,1),x(:,2),x(:,3));<br>一运行就出现如下提示:<br>??? Input argument 'x' is undefined.</P>
<P>Error in ==&gt; C:\MATLAB6p5\work\lorenzeq1.m<br>On line 2  ==&gt; xdot=[-8/3*x(1)+x(2)*x(3);-8620*x(2)+8620*x(3);-x(1)*x(2)+144*10^9*x(2)-x(3)];<br><br>感觉应该没有问题啊,怎么老是这样呢??请高手赐教</P>
[此贴子已经被VibInfo于2006-5-22 14:40:06编辑过]

回复
分享到:

使用道具 举报

发表于 2006-5-22 14:39 | 显示全部楼层

回复:(chenyland)急!请问为什么这个lorenz方程的m...

<DIV class=quote><B>以下是引用<I>chenyland</I>在2006-5-22 13:59:36的发言:</B><BR>
<P>程序如下:<BR>function xdot=lorenzeq(t,x)<BR>xdot=[-8/3*x(1)+x(2)*x(3);-8620*x(2)+8620*x(3);-x(1)*x(2)+144*10^7*x(2)-x(3)];<BR>t_final=100;x0=[0;0;1e-10];<BR>[t,x]=ode45('<FONT color=#ff0000>lorenzq</FONT>',[<FONT color=#ff0000>o</FONT>,t_final],x0);plot(t,x),<BR>figure;<BR>plot(x(:,1),x(:,2),x(:,3));<BR>一运行就出现如下提示:<BR>??? Input argument 'x' is undefined.</P>
<P>Error in ==&gt; C:\MATLAB6p5\work\lorenzeq1.m<BR>On line 2  ==&gt; xdot=[-8/3*x(1)+x(2)*x(3);-8620*x(2)+8620*x(3);-x(1)*x(2)+144*10^9*x(2)-x(3)];<BR><BR>感觉应该没有问题啊,怎么老是这样呢??请高手赐教</P></DIV>
<P>红色标记部分明显错误,这种错误自己看看就应该发现的<BR>别出了点问题就问,第一时间应该自己检查<BR><BR>第二<BR>function xdot=lorenzeq(t,x)<BR>xdot=[-8/3*x(1)+x(2)*x(3);-8620*x(2)+8620*x(3);-x(1)*x(2)+144*10^7*x(2)-x(3)];<BR>这一部分保存成lorenzeq.m<BR><BR>t_final=100;x0=[0;0;1e-10];<BR>[t,x]=ode45('lorenzeq',[0,t_final],x0);plot(t,x),<BR>figure;<BR>plot(x(:,1),x(:,2),x(:,3));<BR>在命令窗口运行或者也写成m文件并运行</P>
 楼主| 发表于 2006-6-4 13:49 | 显示全部楼层
谢谢这位大侠,你说的先保存为m文件我也试过,可能还是lorenzq那里的问题,最近上不了振动论坛!今天才行
发表于 2008-3-11 23:08 | 显示全部楼层

请教高手

clear
global a b c
a=16;b=4;c=45;
[T,X]=ode45('Lorenz',[0,30],[12;4;0]);
hold on
plot3(X(:,1),X(:,2),X(:,3))
view(-20,60);
xlabel('x');ylabel('y');zlabel('z');
hold off
function dx=Lorenz(t,x)
global a b c
dx=[a*(x(2)-x(1));c*x(1)-x(1)*x(3)-x(2);x(1)*x(2)-b*x(3)];
  

??? Error: Function definitions are not permitted at the prompt or in scripts.  
请问怎么修改?谢谢!!!!
发表于 2008-3-12 08:19 | 显示全部楼层
原帖由 zhxllhy 于 2008-3-11 23:08 发表
clear
global a b c
a=16;b=4;c=45;
[T,X]=ode45('Lorenz',[0,30],[12;4;0]);
hold on
plot3(X(:,1),X(:,2),X(:,3))
view(-20,60);
xlabel('x');ylabel('y');zlabel('z');
hold off
function dx=Lorenz(t,x ...

这个问题比较基础了,function 后面的部分应该另存为一个m文件,并且名字应该是Lorenz.m

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-11 11:15 , Processed in 0.067713 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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