AA解析解
3. 線形ODE(ラプラス変換)
2階定数係数ODEを、積分変換法の一つであるラプラス変換(17式)を用いて解こう。
ここで、f(t)は0 ≦ t < ∞で定義された連続関数、tはC級(実数および複素数)である。
ラプラス変換は積分変換を導入することによって、微分演算を代数的変換(変換空間内で)に置き換えたテクニックである。関数 f(t)に制限は有るものの、機械的に解が求められる手法に感動すら覚えるのは僕だけでは無いだろう。特に自動制御の分野では、時間空間 f(t)を複素空間 F(s) に写像し演算子sで解析する手法が確立されている。
解法の大まかな流れは、「ODE—>ラプラス変換—>代数方程式—>代数方程式の解—>ラプラス逆変換ー>ODEの解」となる。
ラプラス変換やラプラス逆変換の公式は適宜、手持ちの教科書を参考にされたい。
計算例
(1)数式処理ツールMapleの計算結果を以下に示す。dsolve(?,?,method=laplace)を使うと、一発で回答してきた。初期条件はu(0)=?、2回微分はD(u)(0)=?の様に入力する決まりになっている。
------------------------------------------------------------------------------------
----------------------------------------------------------------------------------
(2)次はWolfram CloudのMathematicaの計算結果だ。見ての通りだいぶコマンドが異なるが、計算手順は判りやすい。%は直前の計算結果を利用することを意味する。最後のExpandは展開のコマンドである。
----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
(3)次は、オープンソースの数式処理ツールwxMaximaによる計算結果だ。今回はメニュー画面が使用できなかったのでコマンド入力とした。assume(?)はデータの形を仮定するコマンドである。LY1:は式の名前を指定している(今回は見易くするため)。以降は:の前の名前のみで進められる。%はMathematicaと同じように直前の計算結果を意味する。計算過程の理解しやすさもMathematica同様だ。
----------------------------------------------------------------------------------
--------------------------------------------------------------------------------
(4)最後はLiveMathによる計算結果だ。まずはラプラス変換パッケージをコピーする。ODEをラプラス変換。y(0,0)は初期値、y(1,0)は1回微分の初期値であり、それを代入する。部分分数展開を行う(結構これが大変で、結局はMapleの結果を引用させてもらった)。ラプラス逆変換を行う。求められたyの形をプロットしてみた。
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
ラプラス変換は微分の公式に陽に初期条件(特に時間経過を表現する tの場合はコーシー条件とも言われる)が現れるので、初期条件が分かっていれば、途中で代入(式はシンプルになる)しても、最後に代入(全体像が把握できる)しても構わない。微分方程式の数値解法の一つ有限要素法の定式化の途中においても、このように「陽に境界条件が現れる」という現象がある。興味深いものだ。
ラプラス変換は減衰する指数関数で分解される、つまり色々な時定数で減衰する関数
の重ね合わせで表現される。これは積分範囲が -∞では発散することを示唆するので、よってラプラス変換は、積分範囲の片側が有限な領域で定義された関数についてのみ適用になることに注意してほしい。
ラプラス変換などとは異なる手法にミクシンスキー演算子法なるものがある(ラプラス変換できない関数に役立つかもしれない)。
部分分数展開について、思っていたより難儀した。それでも整理されたテキストを見つけたので参考まで紹介する。部分分数に展開したい式の因子の種類によって大きく4つに分けられる様だ。
・非重複因子sーa
・重複因子(s-a)^m
・非重複複素因子(s-a)*(s-abar):aとabarは共役複素数。
・重複複素因子{(s-a)*(s-abar)}^2:aとabarは共役複素数。
参考になったのは、E.Kreyszigの「技術者のための高等数学」第3巻「フーリエ解析と偏微分方程式」のラプラス変換の章だ。
今回新たに参考にした図書を以下に載せるので、興味ある方はどうぞ!
ラプラス変換公式が教科書にない場合は、これを参考にしています。