C/C++の宿題を片付けます 113代目

このエントリーをはてなブックマークに追加
476デフォルトの名無しさん
[1] 授業単元:数値解析
[2] 問題文:
関数uは、0<x<1,0<y<1の範囲のあらゆる点で方程式
∂^2u/∂x^2+∂^2u/∂y^2 = 2(x^2+y^2)
を満たし境界上でu(0,y)=u(x,0)=0, u(1,y)=y^2, u(x,1)=x^2である。
点(0.5, 0.5)の値と反復回数をヤコビ法により求め、画面表示せよ。
その際、きざみ幅n,mをいくつか変化させることで、反復回数がどのように変化するか確かめよ。

ヒント
1.(n+2)×(m+2)行列を2つ用意する。u1[n+2][m+2],u2[n+2][m+2]
2.上のu1に境界値を代入する。他は0でよい。
3.u2[[1][1],u2[1][2],・・・,u2[2][1],u2[2][2],・・・と反復計算する。
4.e=Σ|u1-u2|/Σ|u1|を計算する。
5.上記eが0.0001以下でなければ、u1←u2とした後、3へ戻る。
6.結果を表示。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語: C
[4] 期限: 7月23日24:00まで