这个程序的错误怎么改啊?matlab

来源:百度知道 编辑:UC知道 时间:2024/06/03 00:40:15
这个程序错的怎么改啊???
.m文件:
function f1=fun(x,t)
f1=[10*x(2)-10*x(1)
40*x(1)-x(1)*x(2)
-2.5*x(3)+4*x(1)^2];

function f2=f(y,t)
f2=[10*y(2)-10*y(1)
40*y(1)-y(1)*y(3)
-2.5*y(3)+4*y(1)^2];

在命令窗口中输入:
tspan=0:0.1:10;
x0=[0 1 0];%请在这里赋初值
y0=[3 8 0];%请在这里赋初值
[t,x]=ode45(fun1,[0,1],x0);
[t,y]=ode45(funy2,[0,1],y0);
i=sin(2*pi*0.5*t);
z=i(:,[1 1 1])+x-y;%x(1)和y(1)对应,其他同理
plot(t,z)
??? Input argument 'x' is undefined.

Error in ==> f:\MATLAB6p5\work\fun1.m
On line 2 ==> f1=[10*x(2)-10*x(1)
大家看下这个错误怎么改啊??
1楼说的~那我该怎么改呢?

[t,x]=ode45(fun1,[0,1],x0);
[t,y]=ode45(funy2,[0,1],y0);
首先这两个东西的格式有问题,fun1、fun2是m文件名称,就必须加单引号'fun1'

改过来以后还是不能运行,我找了很久原因,最后把fun1、fun2两个m文件重新敲了一遍,程序就能运行了,应该是拼写错误,但是我找不到原来的文字有什么错误。

最后z=那一行有问题,不知道什么意思,i是个一维向量,取它的前三个元素,又怎么能和x y相加呢?维数不对呀。

我已经在matlabsky给你回复了。

http://www.matlabsky.cn/viewthread.php?tid=2625

函数调用时的错误,没搞懂你的[t,x]=ode45(fun1,[0,1],x0)干嘛了

注意参数传递