用MATLAB求解微分方程组

dy(1)=y(3)*c-y(1)*d
dy(2)=-a*y(3)*e-b*y(3)*f+y(1)*d
dy(3)=y(2)y(3)*e*a+y(2)y(3)*f*b-y(3)*c
a,b,c,d,e,f都为参数
谢谢了

第1个回答  2020-11-21

题主给出的微分方程组,可以这样求解:

1、根据题意,该微分方程组可以使用ode45函数来求解

2、完善自定义微分方程组的函数,即

function dy = odefun(t,y)

%a,b,c,d,e,f都为参数

a=5.985;b=4.709;c=6.959;d=6.998;e=6.385;f=0.336; %为解题而设定

dy(1)=y(3)*c-y(1)*d;

dy(2)=-a*y(3)*e-b*y(3)*f+y(1)*d;

dy(3)=y(2)*y(3)*e*a+y(2)*y(3)*f*b-y(3)*c;

3、确定边界条件,即y0=[0,0,0];

4、确定时间区间,即tspan=[0 1];

5、使用ode45函数,得到其数值解。即

[t,y]=ode45(@odefun,tspan,y0)

6、使用plot函数,显示t-y1,y2,y3的函数曲线关系。即

plot(t,y)

xlabel('t');ylabel('x(t),y(t),z(t)');

legend('x(t)','y(t)','z(t)')

7、运行结果