定义
定理:若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’。