2012-01-18 6 views
9

mathematicaを使っていくつかの微分方程式のスロープフィールドをプロットしようとしていますが、それは分かりません。式があるとします。mathematicaを使ってスロープフィールドをプロットするにはどうすればよいですか?

y' = y(t) 
    y(t) = C * E^t 

スロープフィールドをプロットするにはどうすればよいですか?私はそれはあなたが、それは関数f(x、y)を取ることをリンクデモから見える http://demonstrations.wolfram.com/SlopeFields/

答えて

17

必要なコマンド(バージョン7以降)はVectorPlotです。ドキュメントには良い例があります。

私は、あなたが興味を持っている場合は、微分方程式、あなたの質問に与えた場合には

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

だと思う指数

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

f[x_, y_] := y 

傾斜磁場をプロットすることができます (wikibooks:ODE:Graphing)たぶん、もっと興味深い例がガウス

ある

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

のようなものを使用してこれはDEへの解決策をプロットすることができ

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

y

を使用して

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)=y(x)'を知っていれば、 f(x,y)=C*E^xここで x=tとすることができます。私のディファレンシャルは少し錆びているかもしれませんが、私はそれが正しいと確信しています。

+0

誰です傾斜場のための1つのライナー? – user968102

+0

1ライナー?あなたがそれを置く方法を知る必要があれば、http://www.physicsforums.com/showthread.php?t=152157をチェックすることができます。Mathematicaがライブラリをインポートする必要があるように見えるので、これはちょっとだけの行です関数自体はもう少しです。 –

関連する問題