楚列斯基分解 (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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录