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];