我试图用mathematica绘制一些微分方程的斜场,但无法弄清楚。说我有方程如何使用mathematica绘制斜坡场?
y' = y(t)
y(t) = C * E^t
我该如何绘制斜坡场?
我发现了一个例子,但方式复杂,我了解 http://demonstrations.wolfram.com/SlopeFields/
我试图用mathematica绘制一些微分方程的斜场,但无法弄清楚。说我有方程如何使用mathematica绘制斜坡场?
y' = y(t)
y(t) = C * E^t
我该如何绘制斜坡场?
我发现了一个例子,但方式复杂,我了解 http://demonstrations.wolfram.com/SlopeFields/
您需要的命令(从版本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}]
这可以通过解决方案的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]]
也许更有趣的例子是高斯
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]]
最后,有梯度场,在那里你看看梯度(矢量衍生物)函数的相关概念:
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]}
这样看来,从您链接,它需要一个函数f(x,y)的示范,但你有一组差异的。但是,知道f(x,y)=y(x)'
,您可以使用f(x,y)=C*E^x
其中x=t
。我的差异可能有点生疏,但我确信这是正确的。
人有斜坡场的1班轮? – user968102 2012-01-18 06:27:39
1班轮?如果你需要知道如何把它放入你可以检查http://www.physicsforums.com/showthread.php?t=152157这是一个多一点,因为Mathematica显然需要一个库导入然后调用绘图功能本身更多一点。 – 2012-01-18 07:38:26