function I=darinversa(a)
[L,U,P]=lu(a); % Descomponemos LU, con lo cual tenemos L,U, P
% Primeramente invertimos U a la que llamaremos reversaU
n=length(U);
reversaU=zeros(n,n);
for i=1:n
    reversaU(i,i)=1/U(i,i);
end
for i=n:-1:1;
    j=n:-1:i+1;
    reversaU(i,j)=-(U(i,i+1:j)*reversaU(i+1:j,j))/U(i,i);
end
reversaU;
% Ahora revertimos L a la que llamaremos reversaL
n=length(L);
reversaL=zeros(n,n);
reversaL(2,1)=-L(2,1);
for j=1:n;
    reversaL(j,j)=1;
end
for i=3:n;
    j=1:(i-1);
    reversaL(i,j)=-(L(i,i-1:-1:j)*reversaL(i-1:-1:j,j));
end
reversaL;
% Ahora hacemos el producto que deberia brindar la inversa de A
I=reversaU * reversaL * P ;