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

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

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

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

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

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

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

」を使って導関数を得ることもできる:

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

」はDerivativeの簡略形である:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Derivativeを使うこともできる:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

In[32]:=
Click for copyable input

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

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

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

    

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

In[29]:=
Click for copyable input
Out[29]=
In[28]:=
Click for copyable input
Out[28]=
    

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

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

In[31]:=
Click for copyable input

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

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

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

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

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

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

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

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

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

In[36]:=
Click for copyable input
Out[36]=
New to Mathematica? Find your learning path »
Have a question? Ask support »