% Hier das SOR-Verfahren am Beispiel der Vandermonde-Matrix

% Der Spektralradius ist nur wenig kleiner als 1, daher ist die
% Konvergenz extrem langsam. Fuer dieses Beispiel waere daher eine
% direkte Gauss-Elimination viel besser geeignet als Gauss-Seidel oder 
% SOR.

omega = 1.6700;      % Optimaler Relaxationsparameter fuer n=8, wird
                     % im Programm plot_sor_spectral_radius.m bestimmt. 
                     % omega=1 waere das einfache Gauss-Seidel Verfahren. 

n = 8;

A = vandermonde(n);
b = zeilensumme(n);

[L,D,U] = ldu (A);   % Aufspalten der Matrix A, definiert in Datei ldu.m 

B = omega * inv(D + omega*L);

% Zur Diagnose: Berechne den Spektralradius der Iterationsmatrix
R = eye(n) - B*A;
spektral_radius = max(abs(eig(R)))

x = zeros(n,1);
for j=1:100000  
  x = x + B*(b-A*x);
end

x
