function [ L ] = Cholesky( A )
[n m] = size( A );
if n ~= m
    error('Introdu o matrice 2x2\n');
end;
if n == 2 
    L(1,1) = sqrt(A(1,1));
    L(2,1) = sqrt(1/A(1,1))*A(2,1);
    L(2,2) = sqrt(A(2,2)-(A(2,1))*A(2,1)/A(1,1));
else 
    L(1:n/2,1:n/2) = Cholesky(A(1:n/2,1:n/2));
    L(n/2+1:n,1:n/2) = ( inv(L(1:n/2,1:n/2))*(A(n/2+1:n,1:n/2)') )';    
    L(n/2+1:n,n/2+1:n) = Cholesky(A(n/2+1:n,n/2+1:n)-L(n/2+1:n,1:n/2)*(L(n/2+1:n,1:n/2)'));
end;