Di seguito proponiamo il codice che fattorizza la matrice
come
.
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