%ATTENZIONE:
%QUESTO SCRIPT NON UTILIZZA LE FUNZIONI APPOSITE PER LA
%GESTIONE DI MATRICI SPARSE. QUESTE FUNZIONI APPOSITE
%VERRANNO ILLUSTRATE IN SEGUITO



%MATRICE A 
n=10;
A=zeros(n);
A(1,5)=1;
A(1,7)=1;
A(1,10)=1;
A(2,5)=1;
A(2,8)=1;
A(3,6)=1;
A(3,9)=1;
A(4,5)=1;
A(4,6)=1;
A(4,7)=1;
A(4,10)=1;
A(5,7)=1;
A(5,8)=1;
A(5,10)=1;
A(6,7)=1;
A(6,9)=1;
A=A+A';
A=A+10*eye(10);

(nnz(A)-n)/2

%FATTORIZZAZIONE DI CHOLESKI DI A 
L=chol(A)
L~=0
nnz(L)-n

%PERMUTAZIONE KUTHILL-MCKEE
p_CM = fliplr(symrcm(A))

CM_A = A(p_CM,p_CM)
L_CM=chol(CM_A)
L_CM~=0
nnz(L_CM)-n

%PERMUTAZIONE REVERSE KUTHILL-MCKEE
p_RCM = fliplr(p_CM)

RCM_A = A(p_RCM,p_RCM)
L_RCM=chol(RCM_A)
L_RCM~=0
nnz(L_RCM)-n

%PERMUTAZIONE MINIMUM DEGREE
p_MD = symamd(A)

MD_A = A(p_MD,p_MD)
L_MD=chol(MD_A)
L_MD~=0
nnz(L_MD)-n

