作业帮 > 综合 > 作业

matlab解微分方程组时的错误.

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/23 07:54:20
matlab解微分方程组时的错误.
编程如下:
function xdot=shier(t,x)
r=1;n=100;s1=0.5;s2=2;
xdot=zeros(2,1);
xdot=diag([1-x(1)/n-s1*x(2)/n,1-s2*x(1)/n-x(2)/n])*x
ts=0:0.1:15;
x0=[10,10];
[t,x]=ode45(@shier,ts,x0)
[t,x]
plot(t,x),grid,
gtext('x(t)','y(t)'),
pause;
plot(x(:,1),x(:,2)),grid,
xlable('x1');ylable('x2')
MATLAB这样说:
function xdot=shier(t,x)
|
Error:Function definitions are not permitted at the prompt or in scripts.
matlab解微分方程组时的错误.
我改了你的一些内容,不知道有没有被我改错.
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function xdot=shier(t,x)
r=1;n=100;s1=0.5;s2=2;
xdot=zeros(2,1);
xdot=diag([1-x(1)/n-s1*x(2)/n,1-s2*x(1)/n-x(2)/n])*x; %我加了个分号,要不然全是数据
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
在Matlab下面输入:
ts=0:0.1:15;
x0=[10,10];
[t,x]=ode45(@shier,ts,x0); %既然有下面那句,这句我用了分号
[t,x]
plot(t,x),grid,
legend('x','y') %可能你想要的也是这个,你的gtext语法不对
figure %你那个pause,我直接换成了在新图上做图
plot(x(:,1),x(:,2)),grid,
xlabel('x1');ylabel('x2')