How to | 偏微分方程式を解く方法

Mathematica の微分方程式解法関数は,多くの種類の微分方程式に適用できる.これらの関数は,適切なアルゴリズムを自動的に選択するので,ユーザが予め処理をする必要はない.このような微分方程式の1つに偏微分方程式がある.

Dを使って導関数を取り込み, の輸送方程式であるを設定し,それを変数として保存する:

In[14]:=
Click for copyable input
Out[14]=

DSolveを使って方程式を解き,解をとして保存する.DSolveの第1引数は方程式,第2引数は解くための関数,第3引数は独立変数のリストである.

In[15]:=
Click for copyable input
Out[15]=

答は規則として与えられ,C[1]は任意の関数である.

この解を,例えばという関数として使用する場合は,「」(ReplaceAllの簡略形)および Partの簡略形)を使う:

In[16]:=
Click for copyable input
Out[16]=

その後は他の関数と同じように評価できる:

In[17]:=
Click for copyable input
Out[17]=

DSolveの第1引数にリストを使って,のような初期条件を追加することができる.解はとして保存される:

In[18]:=
Click for copyable input
Out[18]=

Plot3Dを使って解をプロットする:

In[20]:=
Click for copyable input
Out[20]=
    

初期条件が である非同次の偏微分方程式DSolveを使用する:

In[1]:=
Click for copyable input
Out[1]=

ネストしたリストから解だけを抽出する:

In[2]:=
Click for copyable input
Out[2]=

パラメータの任意値の解を評価する:

In[3]:=
Click for copyable input
Out[3]=

今度はPlot3Dを使って解をプロットする:

In[5]:=
Click for copyable input
Out[5]=
    

非数値係数を持つ偏微分方程式を使うことも出来る。

DSolveを使って,初期条件が である非同次の偏微分方程式 を解く.解はとして保存される:

In[6]:=
Click for copyable input
Out[6]=

に対応する関数を定義する:

In[7]:=
Click for copyable input
Out[7]=

パラメータの任意値に対する解の関数を評価する:

In[8]:=
Click for copyable input
Out[8]=

パラメータの値を置き換える:

In[9]:=
Click for copyable input
Out[9]=

パラメータの任意値集合について関数をプロットする:

In[10]:=
Click for copyable input
Out[10]=

Manipulateを使って,パラメータについて解がどのように変化するかを示す:

    

ここまでの例では,DSolveを使って偏微分方程式の記号解が求められている.任意の偏微分方程式にパラメータが含まれない場合には,NDSolveを使って数値解を得ることができる.NDSolveの結果はInterpolatingFunctionオブジェクトとして与えられる.

以下では,NDSolveによって出された解は,として保存される:

In[12]:=
Click for copyable input
Out[12]=

解をPlot3Dを使ってプロットする:

In[15]:=
Click for copyable input
Out[15]=

InterpolatingFunctionオブジェクトは,他の操作で評価,プロット,使用することができる.

InterpolatingFunctionの解だけをから得て,それを新しい記号に割り当てる:

In[13]:=
Click for copyable input
Out[13]=

およびの指定値で解を評価する:

In[14]:=
Click for copyable input
Out[14]=

Plot3Dを使って解をプロットする:

In[24]:=
Click for copyable input
Out[24]=
    

偏微分方程式にパラメータが含まれる場合,NDSolveをパラメータの特定値それぞれに使うことができる.また,NDSolveを使いパラメータの値を取る関数を設定することもできる.

NumericQを使って関数がパラメータの非数値について評価することを防ぐ:

In[7]:=
Click for copyable input

パラメータの特定値(この場合は5)に対応する解を求める:

In[9]:=
Click for copyable input
Out[9]=

Plot3Dを使って解をプロットする.評価を正しい順序で行うためには,Evaluateが必要である:

In[10]:=
Click for copyable input
Out[10]=

NDSolveは,Manipulateのような別の Mathematica 関数でも使用できる.

パラメータの任意値に対応する偏微分方程式を解いてから,結果の解をプロットする:

New to Mathematica? Find your learning path »
Have a question? Ask support »