
溝口純敏様著「Maxima を使った物理数学基礎演習ノート」(PDF、以下「演習ノート」と略)を拝読中。今回は30ページ左側。「3.2 一階微分方程式 3.2.5 Riccati の方程式」です。今回も、Googleの生成AIに例題の生成とその解答をお願いし、Maximaで解いた結果と比べてみました。
※ 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 月 第八回改訂
※ 方程式の例とその解の生成に Googleの生成AI、Gemini 2.0 Flash Thinking (experimental)を使わせていただきました。
Riccati の方程式
リカッチの方程式は以下の形。
\(\frac {d} {dx} y + P(x) + Q(x)y + R(x)y^2 = 0\)
「演習ノート」には3問ほど例題が列挙されており、それぞれMaximaで解いた解も記されています。それをそのままなぞるのも芸がないので、例によって、Googleの生成AI、Gemini 2.0 Flash Thinking (experimental)にお願いして何題か例題を作成した上で、それぞれの解も提示してもらいました。そのうちの例題2が以下に。
実を言えば、生成AIは例題を5題作ってくれてます。しかし、
-
- 例題1、例題3、例題4はP(x)、Q(x)、R(x)の全てが定数だったので不採用。
- 例題5は解が求まっていなかった。
ということで例題2を採用したのが上記です。まあ、例題2は、P(x)、Q(x)がxの関数ですが、R(x)は定数でちょい不満足。しかし、解も求まっていたので採用ということで。妥協しておるのう。
Maximaでの求解
処理ステップは以下に。
depends(y,[x]); EQ0: diff(y, x, 1) + (2/x^2)- (2/x)*y + y^2 = 0; EQ1: ode2(EQ0, y, x); EQ2: solve(EQ1, y);
以下のように、ode2で得られた結果が x= の形になっていて、Gemini様の結果と比較しずらいので、最後 solveにお願いして、y=の形に整えてます。
Gemini様とMaxima様のお答えは一致ということでいいかな。あたりまえか。