2012-01-18 48 views

回答

17

您需要的命令(从版本7开始)是VectorPlot。文档中有很好的例子。

我认为你有兴趣的情况下是一个微分方程

y'[x] == f[x, y[x]] 

在你在你的问题了的情况下,

f[x_, y_] := y 

于一体的指数

In[]:= sol = DSolve[y'[x] == f[x, y[x]], y, x] 
Out[]= {{y -> Function[{x}, E^x c]}} 

我们可以绘制斜坡场 (见wikibooks:ODE:Graphing)采用

VectorPlot[{1, f[x, y]}, {x, -2, 2}, {y, -2, 2}] 

y

这可以通过解决方案的DE使用的东西被绘制像

Show[VectorPlot[{1, f[x, y]}, {x, -2, 2}, {y, -2, 8}, 
    VectorStyle -> Arrowheads[0.03]], 
Plot[Evaluate[Table[y[x] /. sol, {c, -10, 10, 1}]], {x, -2, 2}, 
    PlotRange -> All]] 

y again

也许更有趣的例子是高斯

In[]:= f[x_, y_] := -x y 

In[]:= sol = DSolve[y'[x] == f[x, y[x]], y, x] /. C[1] -> c 
Out[]= {{y -> Function[{x}, E^(-(x^2/2)) c]}} 

Show[VectorPlot[{1, f[x, y]}, {x, -2, 2}, {y, -2, 8}, 
    VectorStyle -> Arrowheads[0.026]], 
Plot[Evaluate[Table[y[x] /. sol, {c, -10, 10, 1}]], {x, -2, 2}, 
    PlotRange -> All]] 

-xy


最后,有梯度场,在那里你看看梯度(矢量衍生物)函数的相关概念:

In[]:= f[x_, y_] := Sin[x y] 
     D[f[x, y], {{x, y}}] 
     VectorPlot[%, {x, -2, 2}, {y, -2, 2}] 

Out[]= {y Cos[x y], x Cos[x y]} 

Sin[x y]

0

这样看来,从您链接,它需要一个函数f(x,y)的示范,但你有一组差异的。但是,知道f(x,y)=y(x)',您可以使用f(x,y)=C*E^x其中x=t。我的差异可能有点生疏,但我确信这是正确的。

+0

人有斜坡场的1班轮? – user968102 2012-01-18 06:27:39

+0

1班轮?如果你需要知道如何把它放入你可以检查http://www.physicsforums.com/showthread.php?t=152157这是一个多一点,因为Mathematica显然需要一个库导入然后调用绘图功能本身更多一点。 – 2012-01-18 07:38:26