% Musterlösung
%
% Numerische Mathematik, SS 2013
%
% Cholesky-Zerlegung(effizient)
%
% Ingolf Busch, Juni 2013

% Input: A Matrix (spd)

% Output: L  untere Dreiecksmatrix mit L*L^T*=A

function L = my_cholesky(A)

n = size(A,1);
for j =1:n
    A(j,j) = sqrt(A(j,j)-A(j,1:(j-1))*A(j,1:(j-1))');
    A((j+1):n,j) = (A((j+1):n,j)-A((j+1):n,1:(j-1))*A(j,1:(j-1))')/A(j,j);
end

L = tril(A);