Matlab,odeplot,小程序挑错及原理。

供稿:hz-xin.com     日期:2025-01-16
Matlab使用ode45解微分方程组的基本问题,下面有一个简单的微分方程组求代码

建立myfun.m文件,把以下代码复制进去
function dx=myfun(t,x)dx=zeros(2,1);dx(1)=4*x(1)+x(2).^2;dx(2)=8*x(1)+2*x(2).^2+5*x(2);运行以下代码
t=[0 0.1];
x0=[1 1];
[tt,xx]=ode45('myfun',t,x0);
plot(tt,xx(:,1),'-',tt,xx(:,2),'-.')%画出两者图像

箭头的图叫向量场或叫矢量场图,使用quiver,但一般需要和求梯度的gradient函数一起使用。
你可以参考http://zhidao.baidu.com/question/262953572739405925.html?oldq=1

你把下面的程序放到第一个m文件中

t0=[0,2];

x0=[0,0,12,5,5,0];

options = odeset('RelTol',1e-8,'AbsTol',1e-8,'OutputFcn',@odeplot);

[t,y] = ode45(@odefunc,t0,x0,options);

figure(2)

plot3(y(:,1),y(:,2),y(:,3))

把下面的程序放在第二个m文件中

function dy=odefunc(t,y)

g=-9.8;

dy=[y(4)

    y(5)

    y(6)

    0

    0

    g];