数值分析之LU分解以及改进平方根法的cholesky分解仿真|matlab

本文介绍了两种矩阵分解方法,包括Doolittle(LU分解)和Cholesky分解。Doolittle分解用于将矩阵A分解为L和U两个矩阵,Cholesky分解则针对对称正定矩阵进行单位下三角阵分解。这两种方法在数值线性代数中有着重要应用。
摘要由CSDN通过智能技术生成

一 Doolittle分解/LU分解 

function [L,U]=Doolittle(A)
n=size(A,1);

L=eye(n);
U=zeros(n,n);
U(1,1:n)=A(1,1:n); % U的第一行
L(1:n,1)=A(1:n,1)/U(1,1);% L的第一列

for k=2:n
    for j=2:n
        if j>=k
        U(k,j)=A(k,j)-sum(L(k,1:k-1)*U(1:k-1,j));
        else
        if U(j,j)==0
            L(j,k)=0;
        else
        L(k,j)=(A(k,j)-sum(L(k,1:j-1)*U(1:j-1,j)))./U(j,j);
        end
        end
    end     
end

二 cholesky分解

% 实现n阶矩阵A的单位下三角阵分解,采用改进平方根法的cholesky分解
% 条件 A为n阶对称正定矩阵,且A的各阶顺序主子式都不为0,L为单位的下三角阵
function [L,U]=cholesky(A)
n=size(A,1);
L=eye(n);
U=zeros(n,n);

U(1,1:n)=A(1,1:n); % U的第一行
d1=U(1,1);
L(1:n,1)=U(1,1:n)./d1;

for k=2:n
    for j=2:n
        if j>=k
            U(k,j)=A(k,j)-sum(L(k,1:k-1).*U(1:k-1,j)');
            dk=U(k,k);
        else
            L(k,j)=U(j,k)/dk;
        end
    end
end
end

三 测试

A=[2,4,2;4,9,6;2,6,9];

[L,U]=cholesky(A);

结果:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值