MATLAB求解微分方程
来源:百度知道 编辑:UC知道 时间:2024/05/18 05:33:01
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