// Implementierung der sog. "einfachen Iteration" und des
// Gauß-Seidel-Verfahrens.
// Betrifft die Präsenzaufgabe 2 von Blatt 1.

// Systemmatrix
L = [10, -1, 2; 1, -9, 1; -3, 4, 34];

// Rechte Seite
y = [11; -5; 15];

// Startvektoren für die "einfache Iteration" und das Gauß-Seidel-Verfahren
xE = [0; 0; 0];
xG = [0; 0; 0];

// Dimension, hier 3.
n = length(y);

// Zehn Iterationsschritte
for k = 1:10
    // Die "einfache Iteration"
    xEneu = zeros(n);
    for i = 1:n
        xEneu(i) = (y(i) - L(i,:)*xE + L(i,i)*xE(i)) / L(i,i);
    end
    xE = xEneu;

    // Ein Schritt des Gauß-Seidel-Verfahrens
    for i = 1:n
        xG(i) = (y(i) - L(i,:)*xG + L(i,i)*xG(i)) / L(i,i);
    end

    printf('nach Iteration %d:\n  einfach     [%.6f, %.6f, %.6f]\n  Gauß-Seidel [%.6f, %.6f, %.6f]\n', k, xE(1),xE(2),xE(3), xG(1),xG(2),xG(3));
end
