2006年度 計算力学 第10回 プログラミング実習(2) 2006.06.12 ■ レポート提出について 提出するもの • プログラムリスト • 結果のグラフ(Excelを使うとラク) • 課題に対する解答 Wordなどで一つのファイルにまとめ,以下のWebサイト から提出する(6月30日締め切り) https://www.e-skillup.jp/shibaura-it/ ■ プログラムの流れ 変数の設定,型宣言 必要な変数は書き出しておく クーラン数の設定 初期条件の設定 クーラン数は変更できるように 差分法による計算 配列を使って繰り返し計算 計算結果の出力 まずは最終結果を! ■ 繰り返し処理(DO 文)のプログラム例 【問題】 S=1+2+3+ ・・・ +50 を計算せよ program goukei integer sum, i sum=0 do 10 i=1,50,1 sum=sum+i 10 continue write(*,*) ’S=‘,sum stop end do N i=i1,i2,i3 文1 文2 ・ ・ N continue i を i1 から i2 まで i3 ずつ増やしながら do と continue に はさまれた文を繰り返 し実行する ■ 配列を使ったプログラムの例 【問題】 3個のデータ a1,a2,a3 を読み込んで, その平均値を求めよ. a1,a2,a3 はいずれも実数とする. ■ 配列を使ったプログラムの例 配列を使うと・・・ ▲ 平均値を求めるプログラム ■ 配列について(補足1) 添え字が1つの変数 a1, a2, a3, ・・ , ai , ・・ に対して a(i), i=1,2,3, ・・・・ 1次元配列 添え字が2つの変数 f11, f21, f31, ・・ , fi j, ・・ に対して f(i,j), i=1,2,3, ・・・・ j=1,2,3, ・・・・ 2次元配列 ■ 配列について(補足2) 配列の番号を0から使いたければ, a(0:100), f(0:100,0:200) のように,上限と下限を指定する. ■ 風上差分法のプログラム n:時間ステップ, j:空間刻み, v:クーラン数 として, do 10 n=1, nmax do 20 j=1, jmax f(j)=f(j)-v*(f(j)-f(j-1)) 20 continue 10 continue このプログラムで正しく計算できるか? ■ 境界条件について ex. 風上差分 j=1 j=1 j=1 j=0 計算領域の左端(x軸上の最初の格子点)における f の値 は計算しない. → 境界条件として与えてしまう. ※初期分布として設定した f1 の値を使えばよい. ■ 差分スキームの補足 ▼ Friedrichs-Lax 法 ▼ Fromm 法
© Copyright 2024 ExpyDoc