用matlab编写一个方程,输入一个n × n对称正定矩阵A,输出一个n × n矩阵L,计算公式如下

用matlab编写一个方程,L=myfunction(A)实现输入一个n × n对称正定矩阵A,输出一个n × n矩阵L,计算公式如下:

img

可以直接用循环实现。


function Test()

A = [1 2 3;3 4 5;6 7 8]
L = myfunction(A)


function L = myfunction(A)

n = length(A);

for jj = 1:n
    for kk = 1:n
        if jj < kk
            L(jj,kk) = 0;
        elseif jj == kk
            sumtemp = 0;
            for ii = 1:kk-1
                sumtemp = sumtemp + L(kk,ii)^2;
            end
            L(jj,kk) = A(kk,kk) - sumtemp;
        else
            sumtemp = 0;
            for ii = 1:kk-1
                sumtemp = sumtemp + L(jj,ii)*L(kk,ii);
            end
            L(jj,kk) = (A(jj,kk) - sumtemp) / L(kk,kk);
            
        end
    end
end

结果:

A =

     1     2     3
     3     4     5
     6     7     8


L =

    1.0000         0         0
    3.0000   -5.0000         0
    6.0000    2.2000  -32.8400