ITPASS 実習レポート 2

名前:武林仁樹

担当情報実験機:joho07

問 1

この問ではitpassの実習ページにあるサンプルスクリプトを使用しました。

問1.A

 ● 中央差分から風上差分に変更するにあたり書き換えたコードは以下のとおりです。

中央差分 →  風上差分

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     」

スクリプトの URL

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

参考資料

ITPASS 2012 数値計算実習

Gifを用いたアニメーションファイルの作成方法について調べました。

共同作業した人の名前

特にいません。

工夫したこと, 感想

風上差分に差し替えた結果が想像していたよりも、解析解と離れていたので驚きました。

問1.B

適用したパラメータは以下のとおりです。
m= 224 (32*7)
l= 2π
c= 1
dx= 2π/224

また全ステップ数と出力間隔は以下のとおりです。
全ステップ数= 450
出力間隔= 15

得られた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

Δ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実習の 宮田誠也さんの実習レポート を参考にさせていただきました。