function [L,U]=fatt_lu_nopiv(A);
%[L,U]=fatt_lu(A)
%calcola la fattorizzazione LU=A senza pivoting di una matrice quadrata A

n=size(A,1);

if (n==1) %se la matrice A ha dimensione 1, e' gia' in forma LU
    L=1;
    U=A;
else
 
    %calcola la matrice L tale che inv(L)*A ha il vettore (a_11,0,...,0) sulla
    %prima colonna
    L=eye(n); %inizialmente L e' l'identita'
    iL=eye(n); %iL e' l'inversa di L ed inizialmente e' l'identita'
    L(2:n,1)=A(2:n,1)/A(1,1); %riduzione di Gauss
    iL(2:n,1)=-A(2:n,1)/A(1,1); %

    Arid=iL*A; %matrice con prima colonna ridotta
    [L2,U2]=fatt_lu_nopiv(Arid(2:n,2:n)); %procedi ricorsivamente con la sottomatrice successiva
    L=L*blkdiag(1,L2); %calcola le matrici L,U complessive
    U=[Arid(1,:);Arid(2:n,1) U2];
end

