La funzione viene
richiamata con la seguente stringa: [v1,v2]=chol3(d1,d2)
Input:
d1 diagonale
principale di una matrice tridiagonale A
d2 diagonale
secondaria di A (prima componente = 0 per avere uguale dimensione di d1)
Output:
v1,v2 vettori contenenti le
componenti delle diagonali principale e sopradiagonale della matrice V di decomposizione
(V’*V=A)
Questo programma ha lo scopo di ridurre sia il numero di operazioni che l’occupazione
di memoria.
%*****************************************************************
%Decomposizione di Cholesky (matrici tridiagonali)
%*****************************************************************
%
function [v1,v2]=chol3(d1,d2)
n=max(size(d1));
indk=[0:n]; % per evitare operazione calcolo indice di v1 in for
v1=zeros(d1);v2=zeros(d2);
v1(1)=sqrt(d1(1));
for k=2:n;
v2(k)=d2(k)/v1(indk(k));
v1(k)=sqrt(d1(k)-v2(k)^2);
end