How to | 導関数を使って微分方程式を設定する方法

微分方程式を解くためのWolfram言語の関数は,常微分方程式,偏微分方程式,微分代数方程式,境界値問題を含むさまざまな種類の微分方程式に適用することができる.Wolfram言語では,導関数を使ってこれらの方程式を設定して解くことが大切である.

常微分方程式については, の関数 の導関数を についていくつかの方法で表現することができる.

最も一般的な方法は,Dを使う方法である:

微分の次数(この場合は1)を指定することができる:

'」を使って導関数f'[t]を得ることもできる:

'」はDerivativeの簡略形である:

FullFormを使うと,「'」とDerivativeが同等であることが分かる:

    

Dを使って常微分方程式 を設定してから,その方程式をodeとして保存する:

TraditionalFormを使って常微分方程式を数学の教科書や学術論文に表示されるような形で表示する:

一旦常微分方程式が設定されたら,DSolveを使ってそれを記号的に解く:

f[t]はネストしたリストの規則として表される.この解をリストから取り出して使用する方法については,「規則の解を使う方法」を参照のこと.

ほとんどの場合,常微分方程式には境界と初期条件を伴う.したがって,変数の特定の値について関数の導関数は何度も評価される必要がある.これはいくつかの方法で行うことができる.例えば以下では,が例として使われている.

ReplaceAll関数の簡略形である「/. 」を使って,で置き換える.Wolfram言語ではまずDが評価されてから,置換が行われる:

あるいは,「'」を使って直接 を評価する:

Derivativeを使うこともできる:

もう一つ別の例として,という常微分方程式を設定し解く:

DSolveを使って記号解を得る:

もちろん,設定せずに直接解くこともできる:

別の方法として,常微分方程式を偏微分方程式として表現し,それをf[t]ではなくf[x,t]について解くこともできる:

以下でという常微分方程式を設定する:

DSolveを使って記号的解を得る:

DSolveを使う代りにNDSolveを使って,常微分方程式の係数のいずれかに関係している の特定の値に対応する数値解を求めることもできる.

以下の例では,である場合の解を与える.NDSolveは,InterpolatingFunctionオブジェクトを使った形の結果を与える:

以下の関数Fを使うと, の各値に対する数値解を求めることができる:

およびについて結果をプロットする.Evaluateを使ってFPlotで正しく評価されるようにする:

この詳細については,「NDSolveの結果をプロットする方法」を参照のこと.

    

Wolfram言語では,偏微分方程式を設定して解くこともできる.

以下では,関数 を使い,Wolfram言語においてさまざまな方法で偏微分方程式が表現できることを示している.

偏導関数を得る最も一般的な方法は,Dを使う方法である:

同じことをDの少し異なる構文を使って行うこともできる:

別の方法として,Derivativeを使う方法もある:

FullFormを使って,これらの方法が同等であることを示す:

次にいろいろな形の偏微分方程式を見てみる.

偏微分方程式を設定して解く:

DSolveを使って上の偏微分方程式の記号解を求める.下の結果は,任意関数C[1]を使った形で与えられている:

解は,純関数として得ることもできる.Functionは,Wolfram言語における純関数を表す:

DSolveを使って偏微分方程式 の記号解を求める:

NDSolveを使って,偏微分方程式 の記号解を得る.解は,後で使えるようにsolとして保存される:

Plot3Dを使ってNDSolveの結果を可視化する:

    

上の例では,導関数と偏導関数は変数について与えられる.以下では,導関数と偏導関数は数値的に評価される.

以下の方法はどちらも 等の偏微分の値を表現するのに使うことができる:

    

常微分方程式と偏微分方程式に加えて,Wolframシステムでは微分代数方程式を解くこともできる.

例として,を満足する微分代数方程式 を使う:

DSolveを使って微分代数方程式の記号解を得る:

および における解を見るために,「/.」を使ってこれらの値を解に代入する:

今度は解をプロットする:

まず および eqnsに代入してから,次にNDSolveを使うことによって,同じプロットを得ることもできる:

上と同じようにPlotを使って解を可視化する: