您的位置:首页 > 其它

矩阵的三角分解法之LU分解之Doolittle分解

2008-07-09 20:13 801 查看
function [L,U]=Doolittle(A)
% 矩阵的三角分解法之LU分解之Doolittle分解 A=LU
% Doolittle分解:LU分解中L为单位下三角阵,U为上三角阵
% 说明:n阶(n>=2)矩阵A有惟一杜里特尔分解的充要条件是:A的前n-1个顺序主子式不为0
% 编程思想:使用待定系数法
%
% 作者:野渡无人
% 最后修改日期:2008.4.9
%
% >> A=[2 1 2;4 5 4;6 -3 5]
%
% A =
%
% 2 1 2
% 4 5 4
% 6 -3 5
%
% >> [L,U]=Doolittle(A)
%
% L =
%
% 1 0 0
% 2 1 0
% 3 -2 1
%
%
% U =
%
% 2 1 2
% 0 3 0
% 0 0 -1
%
% >> L*U-A
%
% ans =
%
% 0 0 0
% 0 0 0
% 0 0 0

[n,m]=size(A);
if n~=m
error('请输入方阵');
end
L=eye(n); % 初始化L为单位矩阵,即根据Doolittle分解的特性待定L的对角线上的元素为1
U=zeros(n); % 初始化U为全零矩阵
for i=1:n
U(1,i)=A(1,i);
end
for j=2:n
L(j,1)=A(j,1)/U(1,1);
end
for k=2:n
for j=k:n
U(k,j)=A(k,j)-L(k,1:k-1)*U(1:k-1,j);
end
for i=k+1:n
L(i,k)=(A(i,k)-L(i,1:k-1)*U(1:k-1,k))/U(k,k);
end
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: