忘却の微分方程式(125) 反復練習88、単振動、Maxima

Joseph Halfmoon

微分方程式のHelloWorld的例題の練習3回目です。前回は放射性物質の崩壊モデルでした。今回は単振動です。きわめて単純化。摩擦なしで無限に振動するアレです。ぶっちゃけ微分方程式を立てて解かなくても答えは分かっておる、のですが、やらずにはいられませぬ。Hello Worldだから。サガ?

※「忘却の微分方程式」投稿順 index はこちら

※数学のお勉強のための以下の教科書の例題をMaximaの練習に使わせていただいております。ただし御本家『培風館』様のホームページで検索してみるも掲載されていないようです。絶版? そのため以下のリンクは『Amazon』の通販ページであります。ご注意を。

明解 微分方程式 改訂版 長崎・中村・横山共著 培風館

※MaximaおよびそのGUIであるwxMaximaの以下バージョンを使用させていただいております。

    • Maxima 5.46.0(x86_64-w64-mingw32)
    • wxMaxima 22.04.0
今回の例題

ありがちな以下のような例題です。DE004_ex

後で角周波数ωでお答えを清書する予定です。

微分方程式を解く

微分方程式をMaxima様に渡せば、例によって1,2の3で答えがでます。こんな感じ。DE004_OPR

atvalueで初期条件を渡したものの、assumeでk, mが正の値であると宣言しておかなかったです。お答えを求めるときに聞かれてしまいました。負のバネ定数、負の質量とかあると怖いですケド。

最後の結果の式がチト汚いのでω使って清書します。こんなんでどうよ。DE004_omega

本当はωtとしたいです。Maxima様にお願すれば、変数の順序の制御が出来たような気がしないでもない。でも調べるのがメンドイのでそのままね。

プロットせずにはいられない

お答えは求まったですが、前回、前々回とプロットしているので、今回だけプロット無とはいきませぬ。プロットといえば文字定数に何か数値を当てはめないとなりませぬ。初期位置X0に1,角周波数ωも1としてプロットする操作が以下に。

DE004P: subst([X0=1, ω=1], DE004W)
plot2d(rhs(DE004P), [t, 0, 10], [title, "Simple harmonic motion"], [xlabel, "time"], [ylabel, "X"]);

プロット結果が以下に。DE004_plot

見慣れたカーブよな。

忘却の微分方程式(124) 反復練習87、放射性物質の半減期、Maxima へ戻る

忘却の微分方程式(126) 反復練習89、解曲線、Maxima へ進む