|compphys|

● Lesson05 (微分方程式 その2, 1変数2階微分方程式)

( のマークは必須!)

● 今週最初にやること

今週の最初へ戻る


● 今週の PROGRAM

今週は「簡単には解析的に解けない」微分方程式を解いてみましょう。 振り子の問題です。

区分数 $\displaystyle n$を入力して、初期条件 $\displaystyle x(0)=2.0$, $\displaystyle \frac{dx}{dt}(0)=0$のもとに、

\begin{displaymath}
m\ell\frac{d^2x}{dt^2} = -mg \sin x\end{displaymath}

を、時刻 $0\le t \le 10$ において、改良オイラー法で解き、 各時刻 t における位置(実際は角度) x、速度(実際は角速度) v、 エネルギー E を出力するプログラムを作りましょう。 ただし、$g/\ell=9.8$ として下さい。

このプログラムでは$\displaystyle v=\frac{dx}{dt}$とおいて、

\begin{displaymath}
\frac{dx}{dt}= v,
\qquad \frac{dv}{dt}=-\frac{g}{\ell} \sin x\end{displaymath}

と変形し、$\displaystyle x,v$を連立して解いています。

1変数2階微分方程式を改良オイラー法でとくプログラム (prog05.f)

今週の最初へ戻る


● 今日のポイント

今週の最初へ戻る


● ファイルからの入力とファイルへの出力・Gnuplot でグラフを描いてみよう

プログラムができたら、ファイルから入力して計算を実行し、 計算結果をファイルに出力してグラフを描いてみましょう。
やり方は ここ

今週の最初へ戻る


● 演習問題

まずは、頑張って自分で解いてみて下さい。 つまずいたら、Example Program をみてヒントを探しましょう。
  1. 今回のプログラムの結果はグラフに描けましたか。 いろいろな初期条件でプログラムを走らせてみよう。 また、どの程度エネルギーが保存されているか確かめてみよう。
    ファイル名は ex051.f として下さい。

    振動の状態と回転の状態

  2. 次の2階微分方程式を解くプログラムを作ってみよう。

    \begin{displaymath}
m\frac{d^2x}{dt^2}+\gamma\frac{dx}{dt}+m \omega^2 x = F\cos t\end{displaymath}

    どっかでみたことある方程式ですね。 m=F=1 として、 初期条件と ω, γ を いろいろ変えて解いた結果をグラフに描いてみよう。 力学で勉強したような答えになりましたか。
    ファイル名は ex052.f として下さい。

    gam=0.1, omg=2.0 (減衰振動)

    gam=0.01, omg=1.0 (共振)

  3. 2 で作ったプログラムを、サブルーチンを使って書き換えてみよう。 位置 x, 速度 v, 時刻 t, 微小時間 dt, 摩擦係数 gam, 固有振動数 omg を与えて、 1段階の時間発展を求めるサブルーチン、

    subroutine impeul(x,v,t,dt,gam,omg)

    を作り、これを使って上の微分方程式を作るプログラムを作って下さい。
    ファイル名は ex053.f として下さい。

参考: 厳密解と比較する Program (ex053b.f)

今週の最初へ戻る


● プログラムが出来たら、

出席の返事の代わりに、

mail Teacher@server s0300xyz < prog05.f

として、プログラムを送って下さい。

今週の最初へ戻る