|
1.5.9 微分方程式

常微分方程式の解法
これは,微分方程式 の解である. C[1]は境界条件から求められなければいけない係数である.
In[1]:= DSolve[ y'[x] == a y[x] + 1, y[x], x ]
Out[1]= 
適当な初期値が与えられると,不確定係数はなくなる.
In[2]:= DSolve[ {y'[x] == a y[x] + 1, y[0] == 0}, y[x], x ]
Out[2]= 
のような代数方程式は変数に関する方程式である.これに対して, のような微分方程式は関数に関する方程式である. Mathematicaでは,常微分方程式は,常に, y[x]のような関数を使い明示的に与える必要がある.また,関数が依存する変数 xを明記する必要もある.つまり,式 は, y''[x] + y'[x] == y[x]と記述しなければならない. y'' + y' == yではいけない.
Mathematicaは,微分方程式が線形でも非線形でも,さらには,連立したのものでも解くことができる.ただし,十分な初期値や境界条件が与えられていないと,解は適当な数の不確定係数を伴った形でしか求まらない.また,DSolveが使われるたびに, C[1] , C[2] , ...のように不確定係数の番号は変わる.
初期値(もしくは境界条件)を与えないで,2つの連立微分方程式を解く.求まる解には不確定係数が2つ入る.
In[3]:= DSolve[ {x'[t] == y[t], y'[t] == x[t]}, {x[t], y[t]}, t ]
Out[3]= 
DSolveを使い y[x]に関する微分方程式の解が求まるとき, DSolveにより返される規則は,任意の式でどう y[x]を置換するかを指定した規則になる.しかし,これらの置換規則は,y'[x]のようなオブジェクトに対しては何も指定しない.そこで, DSolveで求まる解をさらに操作する必要がある場合は,y[x]についてではなく,yについて解を求めるようにした方がよい.
yの解を「純関数」として与える.
In[4]:= DSolve[ y'[x] == x + y[x], y, x ]
Out[4]= 
今度は,置換演算子を使い解を yを含む任意の式に適用することができる.
In[5]:= y''[x] + y[x] /. %
Out[5]= 
DSolveの計算結果にあるアンド記号(&)で示されるものは「純関数」である.純関数がどう作用するかは 2.2.5で説明する.
DSolveは代数方程式と微分方程式を組み合せたものも扱うことができる.また,複数の独立変数がある偏微分方程式も扱うことができる.
|