% 改进的平方根(LDLT)分解
% 注释的地方需要修改
clear
% 以下A,b即原方程组化为矩阵形式Ax=b的A,b
A=[1,1,3;1,3,7;3,7,18]; % 系数矩阵A,逗号分隔行,分号分隔列
b=[5; 11; 28]; % 向量b
[n,m]=size(A);
L=eye(n,m);
D=zeros(n,m);
for i=1:n
for j=1:i-1
L(i,j)=A(i,j);
for k=1:j-1
L(i,j)=L(i,j)-D(k,k)*L(i,k)*L(j,k);
end
L(i,j)=L(i,j)/D(j,j);
end
D(i,i)=A(i,i);
for k=1:i-1
D(i,i)=D(i,i)-D(k,k)*L(i,k)^2;
end
end
y=L\b;
x=L'\(inv(D)*y)