chenyland 发表于 2006-5-22 13:59

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

<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=;<br>=ode45('lorenzq',,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编辑过]

happy 发表于 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=;<BR>=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=;<BR>=ode45('lorenzeq',,x0);plot(t,x),<BR>figure;<BR>plot(x(:,1),x(:,2),x(:,3));<BR>在命令窗口运行或者也写成m文件并运行</P>

chenyland 发表于 2006-6-4 13:49

谢谢这位大侠,你说的先保存为m文件我也试过,可能还是lorenzq那里的问题,最近上不了振动论坛!今天才行

zhxllhy 发表于 2008-3-11 23:08

请教高手

clear
global a b c
a=16;b=4;c=45;
=ode45('Lorenz',,);
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=;


??? Error: Function definitions are not permitted at the prompt or in scripts.
请问怎么修改?谢谢!!!!

sogooda 发表于 2008-3-12 08:19

原帖由 zhxllhy 于 2008-3-11 23:08 发表 http://www.chinavib.com/forum/images/common/back.gif
clear
global a b c
a=16;b=4;c=45;
=ode45('Lorenz',,);
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]
查看完整版本: 急!请问为什么这个lorenz方程的matlab程序一运行就出现如下问题