R=LD(A) -
Data la matrice a non singolare e simmetrica definita
positiva, la funzione esegue la fattorizzazione
della matrice
data e restituisce nella parte strettamente triangolare inferiore di R
le componenti significative della matrice L, e nella diagonale
restituisce la diagonale della matrice D
%LD
%R=LD(A)
%Pre: A è una matrice simmetrica definita positiva.
%
% La funzione restituisce in L una matrice che riassume
% la fattorizzazione LDL^T di A.
% Nella parte strettamente triangolare inferiore di R si
% trovano
le componenti di L e la dagonale principale è
% uguale a quella
% della matrice diagonale D.
% Le matrici L e D sono tali che
% A=L*D*L'
%
% See also PLU, QRHOUSE
function R=LD(A)
n=length(A);
d=zeros(n);
eta=zeros(n,n);
R=zeros(n,n);
for j=1:n-1
som=0;
for k=1:1:j-1
eta(j,k)=A(j,k)*d(k);
som=som+A(j,k)*eta(j,k);
end
d(j)=A(j,j)-som;
for i=j+1:1:n
som=0;
for k=1:1:j-1
som=som+A(i,k)*eta(j,k);
end
som=A(i,j)-som;
som=som/d(j);
A(i,j)=som;
end
end
R=tril(A,-1);
for i=1:n
R(i,i)=d(i);
end
return
/tmp/cn/esempio.txt2004-05-29