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

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

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

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

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

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

その後f[x,t]は他の関数と同じように評価できる:

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

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

    

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

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

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

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

    

非数値係数を持つ偏微分方程式を使うこともできる.

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

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

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

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

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

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

    

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

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

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

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

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

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

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

    

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

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

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

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

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

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