39ページのプログラムで、40ページの計算実習1 をやってみよう。
まず JACOBI法の場合は次のようになった。
% ./p39 INPUT : N= 3 INPUT : M= 100 INPUT : EPS= 1e-5 JACOBI : METHOD=0, SOR : =1 INPUT : METHOD= 0 INPUT : A( 1, 1)= 2 INPUT : A( 1, 2)= -1 INPUT : A( 1, 3)= 0 INPUT : A( 2, 1)= -1 INPUT : A( 2, 2)= 2 INPUT : A( 2, 3)= -1 INPUT : A( 3, 1)= 0 INPUT : A( 3, 2)= -1 INPUT : A( 3, 3)= 2 INPUT : F( 1)= 1 INPUT : F( 2)= 0 INPUT : F( 3)= 0 INPUT : X( 1)= 0 INPUT : X( 2)= 0 INPUT : X( 3)= 0 (NITER,ERROR)= 1 1.00000000 (NITER,ERROR)= 2 0.500000000 (NITER,ERROR)= 3 0.200000003 (NITER,ERROR)= 4 0.200000003 (NITER,ERROR)= 5 9.09090936E-02 (中略) (NITER,ERROR)= 31 1.01726291E-05 (NITER,ERROR)= 32 1.01726291E-05 (NITER,ERROR)= 33 5.08628909E-06 0NO. OF ITERATOINS= 33 EPS= 1.0000E-05 0 I X(I) I X(I) I X(I) I X(I) I X(I) 1 7.5000E-01 2 4.9999E-01 3 2.5000E-01 %
確かに反復回数 33 回で停止した。真の解と比べてどうだろうか?
次に SOR 法の場合は
[chronos:q1/progs/chapter2] mk% ./p39 INPUT : N= 3 INPUT : M= 100 INPUT : EPS= 1E-5 JACOBI : METHOD=0, SOR : =1 INPUT : METHOD= 1 INPUT : OMEGA= 0.3 INPUT : A( 1, 1)= 2 INPUT : A( 1, 2)= -1 INPUT : A( 1, 3)= 0 INPUT : A( 2, 1)= -1 INPUT : A( 2, 2)= 2 INPUT : A( 2, 3)= -1 INPUT : A( 3, 1)= 0 INPUT : A( 3, 2)= -1 INPUT : A( 3, 3)= 2 INPUT : F( 1)= 1 INPUT : F( 2)= 0 INPUT : F( 3)= 0 INPUT : X( 1)= 0 INPUT : X( 2)= 0 INPUT : X( 3)= 0 (NITER,ERROR)= 1 1.00000000 (NITER,ERROR)= 2 0.419448495 (NITER,ERROR)= 3 0.238088921 (中略) (NITER,ERROR)= 87 1.00540037E-05 (NITER,ERROR)= 88 9.06046444E-06 0NO. OF ITERATOINS= 88 EPS= 1.0000E-05 0 I X(I) I X(I) I X(I) I X(I) I X(I) 1 7.4995E-01 2 4.9994E-01 3 2.4996E-01 %
確かに反復回数 88 回で停止した。
桂田 祐史