Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica HowTo
How to | NDSolveの結果をプロットする方法
NDSolveは微分方程式を数値的に解く.解は,さまざまな方法で即座に使用できるような形で返される.典型的な使用例の1つに解のプロットを作成するということがある.
例として,初期条件 y(0)=2および y^(')(0)=1を持つ方程式 y^(')^(')(x)+sin(y(x))=0 を取る:
In[1]:=
Click for copyable input
NDSolveで,上の方程式を第1引数,解かなくてはならない関数である y(x) を第2引数,そして独立変数の範囲を第3引数とする:
In[2]:=
Click for copyable input
Out[2]=
以下で解をプロットする:
In[3]:=
Click for copyable input
Out[3]=
解をその導関数(あるいは複数の従属変数)と一緒にプロットするというのはよくあることである.それぞれを別の色にしたい場合には,プロットしたいものをEvaluateで囲むとよい:
In[4]:=
Click for copyable input
Out[4]=
2度および3度の自由度を持つシステムについては,位相面にプロットした方がより多くのことが分かることが多い.これはParametricPlotを使って行うことができる:
In[5]:=
Click for copyable input
Out[5]=
Manipulateと一緒に位相面プロットを使うことは簡単で,この方法で初期条件をいろいろ変化させることができる:
Locatorを使うと,点をドラッグして初期条件を変更することができるようになる.パラメータTで問題が解かれる区間を制御することができる.
偏微分方程式については,いくつかの選択肢があることが多い.例えば,Wolframの非線形波動方程式 [もっと詳しく]を考えてみる:
In[7]:=
Click for copyable input
Out[7]=
解の全体像をつかみたい場合は,Plot3Dを使うとよい:
In[8]:=
Click for copyable input
Out[8]=
解の詳細についてよい情報が得られることが多いもう1つの方法は,DensityPlotを使う方法である:
In[9]:=
Click for copyable input
Out[9]=
以下のような時間発展方程式については,アニメーションを使うとよい直観が得られることが多い.一般に一番よい結果はListAnimateを使って得られる.まずすべてが同じPlotRangeで同じ時間間隔離れているプロットのリストを作成する:
In[10]:=
Click for copyable input
今度はリストをアニメーション化する:
In[11]:=
Click for copyable input
Out[11]=
この場合は,ゼロの初期条件によって背景が変化するので,波動を見ることは少々難しい.この問題を取り除く簡単な方法は,これに対応する常微分方程式を解いてそれを引くという方法である:
In[12]:=
Click for copyable input
Out[12]=
In[13]:=
Click for copyable input
In[14]:=
Click for copyable input
Out[14]=
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team