一、原理介绍
以下截图来自 Numerical Linear Algebra,《数值线性代数》。
二、伪代码
三、Matlab源程序
clc,clear,close all;
A=[2 1 1 0;
4 3 3 1;
8 7 9 5;
6 7 9 8];
cholesky(A);
function cholesky(R)
m=size(R,1);
for k=1:m
for j=k+1:m
R(j,j:m)=R(j,j:m)-R(k,j:m)*R(k,j)/R(k,k);
end
R(k,k:m)=R(k,k:m)/sqrt(R(k,k));
R(k,1:k-1)=0;
end
disp(' R='); disp(R);
end
输出结果
R=
1.4142 0.7071 0.7071 0
0 1.5811 1.5811 0.6325
0 0 2.4495 1.6330
0 0 0 2.2211