关于matlab的常微分方程组的数值求解时建立M文件的dy=zeros(2,1)是什么意思,题目如下

l 求方程组在初始条件下的数值解,自变量。
首先建立方程组的函数文件,如下所示
function dy=FODE(t,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=2*(1-y(1)^2)*y(2)-y(1);
% or dy=[y(2);2*(1-y(1)^2)*y(2)-y(1)];
end
再利用如下代码运行即可
clc;
clear
close all
tspan=[0 20];
y0=[2;0]
[t,y]=ode45(@FODE,tspan,y0)
plot(t,y(:,1),'r');
hold on
plot(t,y(:,2),'b');
legend('y1','y2');
xlabel('time')
figure
plot(y(:,1),y(:,2),'r')
legend('相轨迹');
就是程序的第二行那个语句dy=zeros(2,1),为何要建立这个零矩阵,原方程又没有等于零,这是为何

dy=zeros(2,1)这句是先给函数定一个空间,表明函数有几个值。

若不用这个句子,就要用第二种格式,就是:dy=[y(2);2*(1-y(1)^2)*y(2)-y(1)];
温馨提示:答案为网友推荐,仅供参考
相似回答