我試圖用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