prev up inhalt next


Sequentielles Gauß-Seidel-Iterationsverfahren

Initialisiere Näherungsvektor x (z.B. mit 0).
REPEAT
   diff := 0;
   FOR i := 0 TO n-1 DO
      alt := x[i];
      sum := b[i];
      FOR j := 0 TO n-1 DO
         IF i<>j THEN sum := sum - a[i,j]*x[j] END
      END;
      x[i] := sum/a[i,i];
      diff := diff + abs(alt - x[i])
   END
UNTIL diff < epsilon
Obacht: Durch die Implementation der FOR-Schleife gilt

Gauß-Seidel ist inhärent sequentiell, da zur Bestimmung von xit + 1 erst alle xjt + 1 bestimmt werden müssen mit j < i .

Zur Parallelisierung geeigneter ist Jacobi:


prev up inhalt next