Transcript j=1
■ 陰解法による計算結果 基礎方程式 x 第14回 プログラミング実習 2007.07.30 ■ 達成目標と学習・教育目標 v差分法を用いた初歩的な数値計算について, FORTRANによるプログラミングができる(目標H) ■ 差分スキームの補足 ▼ Friedrichs-Lax 法 ▼ Fromm 法 ■ プログラムの流れ 変数の設定,型宣言 必要な変数は書き出しておく クーラン数の設定 初期条件の設定 クーラン数は変更できるように 差分法による計算 配列を使って繰り返し計算 計算結果の出力 まずは最終結果を! ■ 課題の提出について • プログラムリスト • 結果のグラフ • 課題に対する解答 以上をまとめてファイルで提出 ※ファイル名:半角英数字で学籍番号 ※提 出 先:計算力学のシェアフォルダ ※期日までに提出されたレポートのみ受け取る ■ 風上差分法のプログラム n:時間ステップ, j:空間刻み, v:クーラン数 として, do 10 n=1, nmax do 20 j=1, jmax f(j,n+1)=f(j,n)-v*(f(j,n)-f(j-1,n)) 20 continue 10 continue このプログラムで正しく計算できるか? ■ 境界条件について ex. 風上差分 j=1 j=1 j=1 j=0 計算領域の左端(x軸上の最初の格子点)における f の値 は計算しない. → 境界条件として与えてしまう. ※初期分布として設定した f1 の値を使えばよい. ■ 風上差分法のプログラム(改良版) n:時間ステップ, j:空間刻み, v:クーラン数 として, do 10 n=1, nmax do 20 j=2, jmax f(j,n+1)=f(j,n)-v*(f(j,n)-f(j-1,n)) 20 continue 10 continue ※ 境界条件( j = 1)を考慮する ■ ファイル出力 2次元の配列 : f(j,n),j=1~5,n=1~3 について,その値をファイル出力する場合 open(1,file=’out.dat’,status=’new’) do 10 n=1, 3 write(1,100)( f(j,n),j=1,5 ) 10 continue close(1) 100 format( 5(f6.2) ) ■ ファイル出力 j=1 n=1 n=2 n=3 j=2 j=3 j=4 j=5 f(1,1) f(2,1) f(3,1) f(4,1) f(5,1) f(1,2) f(2,2) f(3,2) f(4,2) f(5,2) f(1,3) f(2,3) f(3,3) f(4,3) f(5,3) format( 5(f6.2) ) f6.2 : xxx.xx 5f6.2 : xxx.xxxxx.xxxxx.xxxxx.xxxxx.xx ■ 講義のまとめ ■ 期末試験について(8月6日実施) v 試験範囲 第11回までの授業範囲.プリントの演習問題, 提出した課題を中心に復習しておくこと v 注意事項 1.参考書,プリント等の参照は禁止 2.英和辞典 使用不可 3.計算機 使用不可 4.携帯電話 使用禁止 5.学習チェックシートを持参すること (試験終了後に回収します)