ITPASS 実習レポート 2

ITPASS実習 レポート

名前 松尾 美希

担当情報実験機 joho13

問 1A

■書き換えたコード

書き換えたコードです。

dudx = (u.sft(1) - u.sft(-1)) / (2*dx)

から

if (c < 0) then

dudx = (u.sft(1) - u.sft(0)) / dx

else

dudx = (u.sft(0) - u.sft(-1)) / dx

end

のように、if文を使って正負の場合分けをし、前進差分と後退差分を使い分けました。

また、c = ARGV[0].to_i と設定して、移流速度を引数によって指定出来るようにしました。

■実行方法

(1)ruby adv.rb (引数:移流速度)を実行する。

■Gifアニメーション

正の場合 (c=1)

負の場合 (c=-1)

参考資料

http://lecture.ecc.u-tokyo.ac.jp/~ktanaka/is06/1025.html

ARGVでコマンドラインの引数を文字列に配列し、to_iで文字列を数に変換する際に利用しました。

共同作業した人

馬殿彩奈さん

工夫したこと, 感想

工夫したことは、引数によって移流速度を指定できるようにしたことです。 スクリプトはすんなりできましたが、アニメーションを作り、貼り付ける過程でかなりてこずりました。難しかったです。

問 1B

■用いたパラメーター

n=416 (32×13)

nt=200

nt_out=20

c=1

dx=0.01510…より、

わずかに小さい場合 dt=0.014

わずかに大きい場合 dt=0.016

上記以外は問1aと同じものを使用しました。

■Gifアニメーション

わずかに小さい場合

わずかに大きい場合

参考資料

特にありません。

共同作業した人

馬殿彩奈さん

工夫したこと, 感想

工夫したことは、実際にdxを計算しdtを考えたところです。 移流方程式を理解していたつもりでも、実際に課題に取りかかるとあまり理解できていなかったことを痛感しました。アドバイスをくださったTAのみなさん、有難うございました。