cholesky
Descompunerea Cholesky este o metodă de factorizare a unei matrice simetrice pozitiv definite în produsul unei matrice inferioare triunghiulare și transpusa sa.
Implementare
Funcția va returna o matrice triunghiulară inferioară L
caracteristica descompunerii Cholesky
determin dimensiunea matricei
A
și initializez matriceaL
ca o matrice pătratică de dimensiunen
xn
[n, m] = size(A); L = zeros(n);calculez elementele diagonale ale matricei
L
folosind rădăcina pătrată a diferenței dintre elementul corespunzător dinA
și suma pătratelor elementelor anterioare din aceeași linie.for i = 1:n L(i, i) = sqrt(A(i, i) - dot(L(i, 1:i-1), L(i, 1:i-1)));calculez elementele non-diagonale ale matricei
L
prin scăderea produsului scalar al elementelor anterioare din liniai
și coloanaj
și împărțirea rezultatului la elementul diagonal curent dinL
for j = i+1:n L(j, i) = (A(j, i) - dot(L(i, 1:i-1), L(j, 1:i-1))) / L(i, i);
Cod sursa
function L = cholesky(A)
[n, m] = size(A);
L = zeros(n);
for i = 1:n
L(i, i) = sqrt(A(i, i) - dot(L(i, 1:i-1), L(i, 1:i-1)));
for j = i+1:n
L(j, i) = (A(j, i) - dot(L(i, 1:i-1), L(j, 1:i-1))) / L(i, i);
end
end
endfunction
Last modified: 30 April 2024