我论文需要用MATLAB求解微分方程,

1个回答

  • 用dsolve求不出解析解,用数值解法吧,最好能提供初始条件,这里假设t=0时,x0=1,y0=2,z0=3.

    function hh

    [t,x]=ode23t(@fun,0:1,[1 2 3])

    plot(t,x)

    function yhat=fun(t,x)

    dxdt=-0.85*x(1)+0.25*x(2)+0.35*x(3)-0.8*x(1)^2*x(2);

    dydt=0.8*x(1)^2*x(2)-1.2*x(2);

    dzdt=0.9*x(1)+0.8*x(2)-0.3*x(3);

    yhat=[dxdt;dydt;dzdt];

    结果:

    t =

    0

    0.0145

    0.0435

    0.0726

    0.1120

    0.1730

    0.2341

    0.2951

    0.3718

    0.4485

    0.5435

    0.6386

    0.7337

    0.8287

    0.9238

    1.0000

    x =

    1.0000 2.0000 3.0000

    0.9879 1.9879 3.0228

    0.9653 1.9629 3.0677

    0.9459 1.9363 3.1110

    0.9239 1.8985 3.1675

    0.8979 1.8374 3.2500

    0.8799 1.7748 3.3269

    0.8680 1.7121 3.3984

    0.8595 1.6348 3.4816

    0.8565 1.5599 3.5578

    0.8583 1.4717 3.6437

    0.8645 1.3893 3.7212

    0.8738 1.3127 3.7912

    0.8852 1.2421 3.8546

    0.8980 1.1772 3.9121

    0.9090 1.1291 3.9544