%Ergänzung zu Aufgabe 1a Mein CG-Programm

function[x,k]=my_cg(A,b,x0,maxit,tol)

x=x0;
r=A*x+b;
p=-r;

for k=1:maxit
    rTr1=r'*r;
    
    if k>=2
        ek=rTr1/rTr0;
        p=-r+ek*p;
    end
    Ap=A*p;
    rho_k=rTr1/(p'*Ap);
    x=x+rho_k*p;
    r=r+rho_k*Ap;
    rTr0=rTr1;
    
    if(norm(r)<=tol)  %Abbruchkriterium
        return
    end
end
