
溝口純敏様著「Maxima を使った物理数学基礎演習ノート」(PDFファイル、以下「演習ノート」と略)を拝読中。全624ページ也。今回は24ページ目。「3.1.1 desolve 関数」です。いよいよ微分方程式の求解。しかし、この辺は本シリーズの過去回でも既に練習済のところだな。そういえば気になっていたところもあり。
※ MaximaおよびそのGUIであるwxMaximaの以下バージョンを使用させていただいております。
-
- wxMaxima 22.04.0
- Maxima 5.46.0(x86_64-w64-mingw32)
- SBCL 2.2.2 (SBCL = Steel Bank Common Lisp )
※ Maxima を使った物理数学基礎演習ノート は以下のバージョンをダウンロードさせていただきました。
令和4 年3 月 第八回改訂
desolve関数
今回の「演習ノート」のdesolve関数の演習と、「ほぼ似たような」演習を以下の過去回でやってます。
忘却の微分方程式(149)反復練習112、1階連立微分方程式の初期値問題、Maxima
Maxima様は微分方程式を解くための関数を以下の2系統もってますがその最初の方です。
-
- desolve
- ode2
ざっくり言うと、desolve関数は「先に初期条件など与えておく」とすんなり綺麗に「特殊解」を与えてくれる関数です。一方、ode2は「一般解」を先に求め、後から御供の関数どもを使って「特殊解」を決めていくスタイルです。
今回の演習ノートの例題も以下のような形で特殊解を「すんなり」もとめてます。
一応、初期条件を与えなかったとき、どうなるかという例も示されていてこんな感じです。
とってもメンドクセー形の結果が得られてます。desolveの方から「こんな初期条件が必要じゃき」と要求されとる感じです。過去回でも、演習ノートでもこうなったときにどうするかは書かれてません。やってなかったな。遡ってやり直せばよい、という声もあり。
後付けで初期値を与えてみる
今回は、上記のメンドクセー形になってしまった解の「初期値部分」に後付けで初期値を与えてやるのを試みました。キモは以下に。
微分係数の初期値の表現デス。まあこれが分かれば SUBST できるんじゃね?
やってみました(複数あるので並列代入のPSUBSTにしてみました。別にSUBSTでも変わらんと思うケド。)こんな感じ。
結局、先に初期条件を与えたときと同じ解に行き着いたね。ラインマーカー引いて整理すると
なんだ簡単じゃん。いいのかそういうことで?まあ、先に定義できるものはしておくってことだと思うが。。。