MATLAB求解微分方程

来源:百度知道 编辑:UC知道 时间:2024/05/18 05:33:01
我论文需要用MATLAB求解微分方程,想请高手指导一下:
Dx=-0.85*x+0.25*y+0.35*z-0.8*x^2*y,
Dy=0.8*x^2*y-1.2*y,
Dz=0.9*x+0.8*y-0.3*z
用MATLAB画出该微分方程的图像

用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