How to | DSolveの結果をチェックする方法

DSolveは通常与えられた微分方程式に対して正しい解を返すが,どの微分方程式ソルバを使う場合でも,一般常識として,返された解を検証したほうがよい.DSolveが与える解は,さまざまな方法を使って検証することができる.もっとも簡単な方法は,解を方程式に代入する方法である.結果がTrueであれば,解は有効である.

以下の例では,解は代入によって検証される.

後ほど作業する際に便利なように,DSolveの第1引数をに割り当てる:

In[13]:=
Click for copyable input

DSolveの第2引数が ではなく として指定される場合,解は純関数として返される.この形は,解を検証し,後でさらに作業を行う際に便利である:

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

」(ReplaceAllの簡略形)を使って,解を方程式に代入し直す:

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

以下では同じ方法を使って,解が方程式と初期条件を満足することを検証する:

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

代入の結果が複雑すぎて,TrueあるいはFalseがすぐに得られないという場合がある.そのような例については,Simplifyを使って代入の結果を簡略化することによって検証することができる.簡略化された結果がTrueであれば,解は有効である.

二階非同次方程式の解を得る:

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

解を方程式に代入する:

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

Simplifyを使って解を検証する:

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

以下で同じ方法を使って,線形偏微分方程式の解を検証する:

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

方程式に特殊関数が含まれる場合には,FullSimplifyを使って解を検証する必要がある場合もある.

例えば,この解にはベッセル関数が含まれる:

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

Simplifyでは解を検証することはできない:

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

FullSimplifyを使うと検証できる:

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

もう一つの重要な検証方法として,問題の変数とパラメータのすべてについて数値的なチェックを行うということがある.そのような場合には,ランダムな値の集合を複数使って,チェックを繰り返した方がよい.

以下は数値検証が有益な例である:

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

数値的なチェックでは解を確証持って検証することはできないが,より高い精度を使ったり,変数が複素数を取れるようにしたりすることによって,より厳密なチェックを行うことができる.

以下では,上の解をより高い精度を使って検証する:

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

以下では,ランダムな複素数を使って上の解を検証する:

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