Implementazione in Matlab

Di seguito proponiamo il codice che fattorizza la matrice $A$ come $LDL^T$.

function A=fattLDLT(A)
%FATTLDLT Fattorizza la matrice A come LDLT
%
%   A=FATTLDLT(A)
%
%   I parametri della funzione sono:
%       A -> la matrice quadrata da fattorizzare
%
%   I valori di ritorno sono:
%       A -> la matrice modificata contenente nella parte
%            strettamente triangolare inferiore L, sulla
%            diagonale D e nella parte strettamente superiore
%            la parte strettamente superiore di A
%
%   See Also SOLVELDLT, FATTLU, FATTPALU, FATTQR
  n=length(A);
  for j=1:n
     if j==1
        v=A(j,1:j-1)';
     else
(1)     v=(A(j,1:j-1).*diag(A(1:j-1,1:j-1))')';
     end
(2)  A(j,j)=A(j,j)-A(j,1:j-1)*v;
(3)  A(j+1:n,j)=(A(j+1:n,j)-A(j+1:n,1:j-1)*v)/A(j,j);
  end



Morpheus 2004-01-04