Natürlich ist das Unmögliche nicht möglich. Nach einem ungewöhnlichen Unfall tippte ich die falschen Zeichen. Ein Teil des Codes sollte gleich (i, i) sein
function xnew = gauss_seidel(A, b, xold) n = size(A)(1); At = A; xnew = xold; for i = 1 : n At(n, n) = 0; //THIS SHOULD EQUAL (i, i) end for i = 1 : n xnew(i) = (b(i) - At(i, :)*xnew)/A(i, i); end endfunction