matlab cholesky分解函数,matlab中矩阵LDLT分解与Cholesky分解

矩阵LDL T 分解与Cholesky 分解:

()2020,m i n (,)-2,T ij ij A LDL Cholesky i i j i j i j αα?==?=?≠?

求矩阵的分解与分解,其中

。 矩阵的LDLT 消去函数的程序代码:

%矩阵的LDLT 分解

function [s,l,d]=ldlt(a)

s=1;l=0;d=0;

%判断矩阵是否对称

if a~=a' %矩阵不对称,输出错误信息

s=0;

else

b=diag(a); %列向量b 存放矩阵a 的对角元素,矩阵D 的元素也放在该向量 n=size(a,1); %矩阵a 维数n

for k=1:n

b(k)=b(k)-(a(k,1:k-1).^2)*b(1:k-1);

if ~b(k) %如果矩阵D 的对角元素出现0,出现错误,停止计算

s=0;

break

else %进行递推

a(k+1:n,k)=(a(k+1:n,k)-a(k+1:n,1:k-1)*(b(1:k-1).*a(k,1:k-1)'))/b(k); end

end

if s

l=tril(a)-diag(diag(a))+diag(b);

d=diag(b);

end

end

矩阵的Cholesky 消去函数程序代码:

%矩阵的cholesky 分解

function [s,g]=cholesky(a)

s=1;g=0;

%判断矩阵是否对称正定

if a~=a'|min(eig(a))<=0 %矩阵不是对称正定,输出错误信息

s=0;

else %矩阵对称正定

n=size(a,1); %矩阵a 维数n

a(1,1)=a(1,1)^(1/2);

for i=2:n

for j=1:i-1

a(i,j)=(a(i,j)-a(i,1:j-1)*a(j,1:j-1)')/a(j,j); %对角线下方元素计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值