ldl.m
来自「MATLAB科学计算与工程分析源代码源程序4」· M 代码 · 共 24 行
M
24 行
function [L,D]=ldl(A)
% 此函数用来求解实对称矩阵A的LDL'分解
% 其中L为单位下三角矩阵,D为对角矩阵
% 编写日期:2007-5-13
[m,n]=size(A);
if m~=n | ~isequal(A,A')
error('请正确输入矩阵!');
return;
end
D(1,1)=A(1,1);
for i=1:n
L(i,i)=1;
end
L(2:n,1)=A(2:n,1)/D(1,1);
for j=2:n
v(1)=A(1,j);
for i=1:j-1
v(i)=L(j,i)*D(i,i);
end
v(j)=A(j,j)-L(j,1:j-1)*v(1:j-1)';
D(j,j)=v(j);
L(j+1:n,j)=(A(j+1:n,j)-L(j+1:n,1:j-1)*v(1:j-1)')/v(j);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?