matlab中使用chol函数对矩阵进行Cholesky分解

定义

定理:若n*n阶矩阵A是对称正定的,则存在一个对角元为正数的下三角矩阵L,使得A = L’*L成立(其中L‘表示L的共轭转置)。

用法

R=chol(A)

chol(A)只使用A的对角线和上三角形。下三角假设为上三角的(复共轭)转置。如果A是正定的,那么R=chol(A)产生一个上三角R,使得R’*R=A。如果A不是正定的,则打印错误消息。

L=chol(A,‘lower’)

L=chol(A,‘lower’)仅使用A的对角线和下三角形生成下三角形L,因此L*L’=A。如果A不是正定的,则打印错误消息。当A是稀疏的时,chol的语法速度通常更快。

[R,p]=chol(A)

[R,p]=chol(A),有两个输出参数,从不产生错误消息。如果A是正定的,则p为0,R与上述相同。但是如果A不是正定的,那么p就是一个正整数。当A为满秩时,R是q=p-1阶的上三角矩阵,因此R’*R=A(1:q,1:q)。当A稀疏时,R是q乘n阶的上三角矩阵,使得R’*R的前q行和前q列的L形区域与A的L形区域一致。

[L,p]=chol(A,‘lower’)

[L,p]=chol(A,‘lower’),如上所述的函数,只产生一个下三角矩阵L。也就是说,当A满秩时,L是q=p-1阶下三角矩阵,因此L*L’=A(1:q,1:q)。当A稀疏时,L是n×q大小的下三角矩阵,因此L×L’的前q行和前q列的L形区域与A的L形区域一致。

[R,p,S]=chol(A)

[R,p,S]=chol(A),当A是稀疏时,返回置换矩阵S,它是由AMD得到的A的一个前序。当p=0时,R是一个上三角矩阵,使得R’*R=S’AS。当p不为零时,R是q乘n阶大小的上三角矩阵,因此R’*R的前q行和前列的L形区域与S’AS的L形区域一致。S’AS的因子往往比A的因子稀疏。

[R,p,s]=chol(A,‘vector’)

[R,p,s]=chol(A,‘vector’)以向量s的形式返回置换信息,使得A(s,s)=R’*R,当p=0时。标记’matrix‘可用于代替‘vector’以获得默认行为。

[L,p,s]=chol(A,‘lower’,‘vector’)

[L,p,s]=chol(A,‘lower’,‘vector’)仅使用A的对角线和下三角,并返回下三角矩阵L和置换向量s,使得当p=0时A(s,s)=L*L’。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值