Matlab 的 小 错误 ,帮忙 找 下

来源:百度知道 编辑:UC知道 时间:2024/07/04 06:15:49
function dy = rigid(t,y)
dy = zeros(5,1);
dy(1)=3*y(4)*y(5);
dy(2)=-1*y(1)*y(2);
dy(3)=6*y(1)*y(4);
dy(4)=-8* y(2)*y(3);
dy(5)=7*y(3)*y(4);
tspan = [0 10];
y0 = [5 4 3 2 1];
[t,y] = ode45('rigid',tspan,y0);
plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.',t,y(:,4),'-..',t,y(:,5),'.-.')
legend('yi','y2','y3')

是 关于解五元一阶常微分方程组的 ,
老是运行不 了 ,提示 错误 是
Error in ==> D:\wangjunxian\rigid.m
On line 3 ==> dy(1)=3*y(4)*y(5);
怎么 回事啊

在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function dy = rigid(t,y)
dy = zeros(5,1);
dy(1)=3*y(4)*y(5);
dy(2)=-1*y(1)*y(2);
dy(3)=6*y(1)*y(4);
dy(4)=-8*y(2)*y(3);
dy(5)=7*y(3)*y(4);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

在Matlab下面输入:
tspan = [0 1]; %帮你改了一下终值,你的这个好像是发散的,你可以调到1.5试试
y0 = [5 4 3 2 1];
[t,y] = ode45('rigid',tspan,y0);
plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.',t,y(:,4),'-..',t,y(:,5),'.-.')
legend('y1','y2','y3','y4','y5') %这个帮你补全

%%以上通过

y的值呢?