第6回 惑星の運動 (2/2)


DSolve は賢い関数で、リストであらわされる連立はもとより、 線形、非線形を問わず常微分方程式の一般解を見つけることができます。 しかしこれまで見てきたように、解ける場合のほうが実は限られていて、 あまり実用的ではありません。

これを改善することを考えましょう。ほとんどの人は解析力学を習って いるでしょうから、そこで Newton の運動方程式に変わって登場する 正準方程式を知っているはずです。これは1階の微分方程式ですから、 対応する Newton 方程式より数学的な取り扱いが楽なはずです。

c)正準方程式を解く

同じ問題を正準形式に直すと、 正準方程式は以下のようになります。 (解くべき微分方程式の導出方法については、 ここを参照して ください。[ 訂正:2つ目の式で、V= -(1/mu)(1/r) --> V= - mu (1/r)])

q1=r、q2=θ と一般化座標を導入し p1、p2をそれぞれの一般化運動量としました。

これを Mathematica に解かせるには、

とします。以上で解けるはずなのですが、試してみると また意味不明の表式が出てきます(本当は意味があるのですが)。 やはりこの3つの微分方程式を手動 で連立させてから解かせないと無理なようです。 ちなみに手動で連立させると、簡単に先ほどの最終的な微分方程式 に帰着させることができるので各自やってみてください。

このように正準方程式を用いると、先ほどよりはかなり見通しが よくなるものの、やはり限界が見えてきてしまいます。 そこで登場するのが数値的に微分方程式を解こうという方法です。

d)微分方程式の数値解(アルゴリズム)

一般に、解析解は限られた(特殊な)条件下でのみ厳密解が得られますが、 わずかに拡張しようとするととたんに厳密解を求めることは困難になります。

このような場合、Mathematica を使って数値解を求めることで、解ける対象 を広げることができます。そのやり方は次回取り上げる予定ですが、 数値計算は奥が深く、完全に計算機に任せていると危険なこともあります。 そのため、数値計算の原理を理解しておくことが必要不可欠です。

今回の授業では、Mathematica をいったん離れて、微分方程式の数値解を 求めるアルゴリズムを解説します。 といっても、このトピックだけで本が1冊かけるほどなので、ほんの入門程度 の内容しか扱いません。興味がある人は数値計算に関する教科書を参照してください。

アルゴリズムへ


Home Top Back