名前:武林仁樹
担当情報実験機:joho07
この問ではitpassの実習ページにあるサンプルスクリプトを使用しました。
● 中央差分から風上差分に変更するにあたり書き換えたコードは以下のとおりです。
中央差分 → 風上差分
l25 「c = 1」 → 「c = ARGV[0].to_i」
l118~122 「dudx = (u.sft(1) - u.sft(-1)) / (2*dx)」
↓
「if c >= 0
  dudx = (u.sft(0) - u.sft(-1)) / (dx)
  else
  dudx = (u.sft(1) - u.sft(0)) / (dx)
  end 」
http://itpass.scitec.kobe-u.ac.jp/~takeba13/report02/scripts/quiz1.txt
1, chmod 755 quiz1.txtを実行する。
2, ./quiz1.を実行する。この際、引数に移流速度を入力する。(ただし整数のみ)
3, 演算の結果がアニメーションで表示される。
移流速度が正のとき
http://itpass.scitec.kobe-u.ac.jp/~takeba13/report02/results/quiz1+.gif
移流速度が負のとき
http://itpass.scitec.kobe-u.ac.jp/~takeba13/report01/results/quiz1-.gif
Gifを用いたアニメーションファイルの作成方法について調べました。
特にいません。
風上差分に差し替えた結果が想像していたよりも、解析解と離れていたので驚きました。
適用したパラメータは以下のとおりです。
m= 224 (32*7)
l= 2π
c= 1
dx= 2π/224
また全ステップ数と出力間隔は以下のとおりです。
全ステップ数= 450
出力間隔= 15
ΔtがΔx/cよりわずかに大きい場合
このとき
dt= (2π/224)/1+0.001=2π/224+0.001
http://itpass.scitec.kobe-u.ac.jp/~takeba13/report02/results/quiz2+.gif
ΔtがΔx/cよりわずかに小さい場合
このとき
dt= (2π/224)/1-0.001=2π/224-0.001
http://itpass.scitec.kobe-u.ac.jp/~takeba13/report02/results/quiz2-.gif
出題の意図が私の頭の悪さ故に、あまり理解できませんでした。
この問題の解答がこれで良いのかが、あまり自信がありません。
なお、このレポート全体の書き方を2011年度ITPASS実習の 宮田誠也さんの実習レポート を参考にさせていただきました。