力学演習II シミュレーション(1)
調和振動子(単振動)の運動方程式の数値解を求める。
- 無次元化
- (dx/dt, dv/dt) = (v, -x) の形に書き直す。
- 個人ごとに指定された初期条件を用いて、
Euler法で数値解を求める。
グラフ化して、厳密解と比較する。
提出期限
10月31日(金)の午後5時までに、事務室前のレポート箱に提出すること。
注意
- 時間の基準量 τ0 は 正になるように選ぶ。
そうでないと、本来の時間tと無次元化した時間とが
逆方向に進むことになり、都合が悪い。
- 数値解と厳密解を比較せよと言われたら、
GNUPLOTで両方を重ねて図示し、両者の食い違いについて検討する。
- 初期条件は合っているか? (これが合っていない場合は計算ミス)
- 食い違いは 時間とともに どう変化しているか?
最初から合わないのか、時間とともに合わなくなってくるのか?
- 値が一致しているかどうかだけでなく、
微分(グラフの傾き)が一致しているかどうかも見る。
- GNUPLOTで横軸の変数をtにしたい場合は、たとえば
plot [t=0:10] sin(t)
のように指定すればよい。
- ファイルの無断複製を防止したい人には、chmodを使うことを勧める。
- プリントを用意するので、ひとり1枚ずつ取ること。
11/5の授業終了時に配布する予定(ただし変更する可能性もある)。
うっかり紛失しないように注意。
- 課題の前半は、レポートにまとめて、
11月28日(金)の午後5時までに
事務室前のレポート箱に提出する。
レポートには課題識別番号を明記すること。
- 課題の後半は、1月に完成させればよい。
2つの振り子をバネでつないだ系について、
アニメーションの例を用意してみました。
演習室のマシンでXを起動し、次のどちらかを試してみてください。
- Cによるプログラム例 (大信田)
-
% cd /home1/ooshida/dyn/Mech/sample0310
% ./furiko2001 0.1 0.5 0.2 100
数字は、バネの強さや計算終了時間などを示す。
これらの値は適当に変更してかまわない。
実行すると「初期条件を入力しろ」と言われるので、
好きな値を4つ入力する(全部ゼロだと動かない)。
- Javaによるプログラム例 (石井先生)
-
% cd /home1/ooshida/dyn/Mech/sample0310
% ./java14 anim06.PO601
5秒か10秒くらい待っていると、
ウィンドウが出てくるので、[Start]を押して実行する。
一部のマシンでは、./java14 の代わりに
java だけで実行できるようにしてある(はず)。
学生の作品は、
アニメーションありでもアニメーションなしでも、
どちらでもかまいません。
状況と関心に応じて好きなほうを選択してください。
[力学演習のページに戻る]