用matlab编写一个方程,L=myfunction(A)实现输入一个n × n对称正定矩阵A,输出一个n × n矩阵L,计算公式如下:
可以直接用循环实现。
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