10 ' Program GSEID
20 ' GAUSS-SEIDEL法による連立方程式の解法
25 TH=.000001 ' 収束判定のためのしきい値
30 N=2
40 DATA 3,1, 1,1
50 DATA 5, 3
60 DIM A(30,30),X(30),Y(30),XP(30)
70 FOR I=1 TO N
80 FOR J=1 TO N
90 READ A(I,J)
100 NEXT J
105 NEXT I
110 FOR I=1 TO N
120 READ Y(I)
130 X(I)=5 ' 初期推定値
135 XP(I)=-9999 ' 前のステップの解
140 NEXT I
150 IT=1
160 PRINT"反復回数 ",IT
170 FOR I=1 TO N
180 P=Y(I)
190 FOR J=1 TO N
200 IF I<>J THEN P=P-A(I,J)*X(J)
220 NEXT J
230 X(I)=P/A(I,I)
240 PRINT "解";I, X(I)
250 NEXT I
255 DONE=1
260 FOR I=1 TO N
270 IF ABS(X(I)-XP(I)) > TH THEN DONE=0
280 XP(I)=X(I)
290 NEXT I
300 IF DONE=0 THEN IT=IT+1 : GOTO 160
310 END
連立方程式の解法のひとつである代入法は、一つの変数を他の変数の関数として明示的に表し、
それが方程式の組から消去されるように残りの方程式に代入する方法である。
Gauss-Seidel反復法は、代入法の変形である。