%Aufgabe 4d

function rate = jacobi(fun,n) %funktion, stützstellen

[A,q,x] = heat(fun,n);

exakt = A\q;

y = zeros(n,1); %startwert
tol = 10^-4; %toleranzwert
zeichnen = 15; %alle x mal wird der graph gezeichnet

c = [];

D = diag(diag(A));
U = -triu(A,1);
L = -tril(A,-1);
Dinv = inv(D);
Dinvq = Dinv * q;
DinvUL = Dinv * (U+L);

cakt = 2 + tol;

i = 0;

while cakt>(1 + tol);
 yalt = norm(y,inf);
 if yalt == 0;
  yalt = tol;
 end;
 y = Dinvq + DinvUL * y;
 cakt = norm(y,inf)/yalt;
 c = [c, cakt];
end;

[n, rate] = size(c);

