function L=cholesky(K) %Descomposicion de Cholesky para una matriz simetrica definida positiva K %L es triangular inferior tal que L.Lt=A n=size(K,1); L=zeros(n,n); %Primero lleno la primera columna de L L(1,1)=sqrt(K(1,1)); for j=2:n L(j,1)=K(j,1)/L(1,1); end %Ahora las del medio for i=2:n-1 %Rutina para sumar L(i,k)^2 con k de 1 a i-1 S1=0; for k=1:i-1 S1=S1+L(i,k)^2; end L(i,i)=sqrt(K(i,i)-S1); for j=i+1:n %Rutina para sumar L(j,k)*L(i,k) con k de 1 a i-1 S2=0; for k=1:i-1 S2=S2+L(j,k)*L(i,k); end L(j,i)=(K(j,i)-S2)/L(i,i); end end %Finalmente el ultimo elemento de la matriz que quedo colgado %Rutina para sumar L(n,k) con k de 1 a n-1 S3=0; for k=1:n-1 S3=S3+L(n,k)^2; end L(n,n)=sqrt(K(n,n)-S3);