如何使用matlab制作微分方程的箭袋图?

时间:2018-02-04 06:59:54

标签: matlab plot differential-equations

y=3-2y是我的等式。

我一直在研究matlab,我无法理解如何为这个微分方程制作一个箭袋图。我想通过matlab以图形方式知道它如何达到无穷大。

2 个答案:

答案 0 :(得分:2)

您应该使用quiver function,如下所示:

f = @(t,y)3-2*y;
t = -2:0.2:2;
y = -2:0.2:2;

[T,Y] = meshgrid(t,y);

dt = t(2) - t(1);
dt2 = dt / 2;
dy = y(2) - y(1);
dy2 = dy / 2;

tmin = t(1) - dt2;
tmax = t(end) + dt2;
ymin = y(1) - dy2;
ymax = y(end) + dy2;

fv = eval(vectorize(f));
yp = feval(fv,T,Y);

u = 1./max(1/dt,abs(yp)./dy)*0.35;
v = u .* yp;

quiver(t,y,u,v,0,'.r');
hold on;
quiver(t,y,-u,-v,0,'.r');
hold off;

axis([tmin tmax ymin ymax]);

输出:

Output

该图应该为您提供有关y行为的清晰见解,这可以帮助您确定解决方案在向无限远行进时的行为。

答案 1 :(得分:0)

  1. 有一个箭袋功能! Quiver

  2. 如果是时间,当它接近无穷大时没有任何反应。它只是接近无穷大。我想你的意思是你。 这个微分方程实际上不能用箭头图来表示,正如你在文档中注意到的那样。没有x或x' (" u")组件。我认为在这种情况下,你可以帮助你解决y的微分方程

  3. 编辑似乎我的数学错误的其他答案!如果你已经解决了y,你会发现y = Ce ^( - 2t)+ 1.5。谢谢Tommaso