Matlab Cholesky 分解:代码实现及示例
楚列斯基分解 (Cholesky decomposition) 是将一个对称正定矩阵分解为一个下三角矩阵和其转置矩阵的乘积的过程。
用 Matlab 编写楚列斯基分解的代码如下:
function L = cholesky(A)
[n,~] = size(A);
L = zeros(n,n);
for j = 1:n
L(j,j) = sqrt(A(j,j) - L(j,:)*L(j,:)');
for i = (j+1):n
L(i,j) = (A(i,j) - L(j,:)*L(i,:)')/L(j,j);
end
end
end
其中,A 为对称正定矩阵,L 为分解后的下三角矩阵。
下面给出一个例子,对矩阵 A 进行楚列斯基分解:
A = [4 2 2; 2 5 1; 2 1 6];
L = cholesky(A)
结果为:
L =
2.0000 0 0
1.0000 2.0000 0
1.0000 1.0000 2.0000
可以验证,L 与其转置的乘积等于 A:
L*L'
ans =
4.0000 2.0000 2.0000
2.0000 5.0000 1.0000
2.0000 1.0000 6.0000
因此,这个例子证明了楚列斯基分解的正确性。
原文地址: https://www.cveoy.top/t/topic/oZJK 著作权归作者所有。请勿转载和采集!