2013-04-01 109 views
4

我正在寻找一种在Matlab中绘制斜场的方法。如何在matlab中绘制斜场

这里就是我要找:

我有一个公式

dy/dx = f(x,y) 

dx/dt = f(x,y) 
dy/dt = g(x,y) 

,我希望把它画在一个不错的方式

因为关于它的唯一answer没有回答我的问题,它花了我一些时间如何做到这一点。因为这不是我一直在MATLAB中做的事情(很可能直到下一次我需要它,我会忘记它)我正在为我创建一个备忘录如何做到这一点。

如果你会发现它很有用,随意给予好评

回答

8

所以这里是方程:

dx/dt = x^2-3xy+y 
dy/dt = -5x+sin(yx) 

这是代码,这将有助于做的工作:

[x,y] = meshgrid(-2:0.2:2); 
dx = x.^2-3*x.*y+y; 
dy = -5*x+sin(x.*y); 
r = (dx.^2 + dy.^2).^0.5; 
px = dx./r; 
py = dy./r; 
quiver(x,y,px,py); 

也可以使用包装dfield。你可以阅读它here。但我还没有为自己做过测试