非線型数理工学特論A

2003-07-17 : 課題10の説明とか

課題10

(1) 差分格子の作成

補足;収束までの反復回数を10万回に設定したが、誤差に収まりきらなかった。

続いて、P と Q を設定したもの。Pは特に設定しなかったが、 Qij については以下のように設定した。

  q[i][j] = -0.25 * sign(j, 0.0) * Math.exp(-0.3 * j)
            -0.25 * sign(j, neta + 1) * Math.exp(-0.3 * Math.abs(j-neta-1))
             -1.9 * sign(i, 10) * Math.exp(-0.9 * Math.sqrt(j*j+(i-10)*(i-10)))
             -1.9 * sign(i, 25) * Math.exp(-0.9 * Math.sqrt(j*j+(i-25)*(i-25)))
             -1.9 * sign(i, 25)
                  * Math.exp(-0.9 * Math.sqrt((j-neta-1)*(j-neta-1)+(i-25)*(i-25)))
             -1.9 * sign(i, 40)
                  * Math.exp(-0.9 * Math.sqrt((j-neta-1)*(j-neta-1)+(i-40)*(i-40)));

上の二行が上下の境界に近づけるためのパラメータで、残りの四行が特徴点 (半円の開始点)に近づけるためのパラメータを表している。 また、sign(a, b) は a-b の計算結果が正/負/0 であるのに 応じて 1.0/-1.0/0.0 をそれぞれ返す関数である。 このように設定することで作られた差分格子は以下のようになった。

半円付近により差分格子が集まるようになった。

(2) 差分格子を用いてラプラス方程式を解く

課題9と同じ要領でラプラス方程式を解いた。SOR法を用いている。



<< 戻る

最終更新日 2003/7/17 Ryoichi INAGAKI<inagaki@ueda.info.waseda.ac.jp>