矩阵分解
所谓矩阵分解就是将矩阵分解成两三个标准矩阵的乘积
矩阵分解的目的在于
- 求解线性方程组
- 矩阵存储
- 矩阵重构以预测
矩阵分解的根本方法在于线性变换
矩阵分解的分类
-
对角化分解:通过正交变换将矩阵对角化
- 奇异值分解SVD:针对一般矩阵的分解
A=UΣVH,其中U,V为酉矩阵,Σ为对角矩阵 - 特征值分解EVD(谱分解):针对对称矩阵
AHA=VΣVH
- CS分解:正交矩阵分块的同时对角化分解
- 奇异值分解SVD:针对一般矩阵的分解
-
三角化分解:分解为正交矩阵和三角矩阵之积,或上三角矩阵与下三角矩阵
- Cholesky分解:针对对称正定矩阵
A=GGT,其中G为下三角矩阵
- QR分解:针对一般矩阵
A=QR,其中Q是正交矩阵,R是上三角矩阵
3. LU分解:针对非奇异矩阵
A=LU其中L是下三角矩阵,U是上三角矩阵
3. 三角-对角化分解:将矩阵分解为三个矩阵的标准型(两个三角矩阵和一个对角矩阵)之积,或分解为对角矩阵和上三角矩阵之和
- LDMT分解:针对非对称矩阵
A=LDMT其中,L和M为单位下三角矩阵,D为对角矩阵
- LDLT分解:针对对称矩阵
A=LDLT
- Schur 分解:针对复矩阵
QTAQ=D+N其中Q是酉矩阵,D是对角矩阵,N是严格上三角矩阵(对角线为0的上三角矩阵)
-
三对角化分解
- Householder分解
HTAH=T,H=H1H2H3...为Householder矩阵
对角化分解
CS分解
现今主要用于Quantum Compiling,这里不详细介绍
Q=[Q11Q21Q12Q22]为正交矩阵,存在[U100U2][Q11Q21Q12Q22][V100V2]=⎣⎡Ik−j000C−S0SC⎦⎤其中U1,U2,V1,V2为正交矩阵,C,S为对角矩阵
LU分解
定义
-
设A∈Rm∗n,将矩阵分解为A=LU,其中L为m*n单位下三角矩阵,U为A的阶梯形矩阵
-
如果A∈Rn∗n非奇异,并且其LU存在的话,则A的LU分解是唯一的,且det(A)=u11u22……unn
证明
若否,设A=L1U2=L2U2是非奇异矩阵的两个LU分解,则L1U2=L2U2
易证,上三角矩阵和上三角矩阵的乘积还是上三角矩阵
由于 L2−1L1是下三角矩阵,U2U1−1是上三角矩阵所以若L1U1=L2U2,L,U均为单位矩阵,则L1=L2,U1=U2,所以分解唯一。
求解方程
求解线性方程组Ax=b时,将A进行 LU分解,LUx=b,令y=Ux,方程组变为Ly=b,解得y,再求解Ux=y。由于L,U为特殊矩阵,这两个方程都可以用回代法轻松求解。
- 分解A=LU
- 用前向回代法求解下三角矩阵方程Ly=b
- 用后向回代法求解下三角矩阵方程Ux=y
- 对于AX=B也可同样求解
分解方法
- 方法一
-
将A初等变换E1E2...Ek为阶梯形矩阵U
-
对单位矩阵I进行行初等变换Ek−1Ek−1−1...E1−1为L,即L=E1−1E2−1...Ek−1
注: 初等矩阵的逆矩阵:
- 行交换:行交换
- 某行乘以一个倍数:除以这个倍数
- 某行乘以一个倍数加到另一行:乘上这个数的相反数加到另一行
- 方法二
可以利用方法一中步骤1 将A 变换为阶梯型矩阵U 过程中的有关矩阵A,A1,A2,U 的主元列构造单位下三角矩阵L。注:这里的Ai是将前i列全部变换为主元下全部元素为0的矩阵
具体方法是:
(1)取出A 的第一个主元所在的列(不失一般性,假定为第1 列),将其归一化(第
一个元素为1)后,作为L 的第一列。
(2)取出Ai−1 的第i 个主元及下面的同列元素构成的部分组成一个(n − i) × 1 向量,
将其归一化后,作为L 的第i 列的下半部分,其中,i = 2, 3, · · · , n。
Cholesky 分解
定义
设A=[aij]∈Rn×n是对称正定矩阵,A=GGT 称为矩阵A 的Cholesky 分解,且分解是唯一的,其中G∈Rn×n是一个具有正的对角线元素的下三角矩阵,即
G=⎣⎢⎢⎡g11g21.gn1g22.gn2....gnn⎦⎥⎥⎤
逐列求解矩阵G
⎣⎢⎢⎡a11a21...an1...a22...an2............a1nann⎦⎥⎥⎤=⎣⎢⎢⎡g11g21.gn1g22.gn2....gnn⎦⎥⎥⎤⎣⎢⎢⎡g110.0g12g22.0.......gn1gnn⎦⎥⎥⎤
-
求解第一列:
- 比较两边关系,易得g11=a11
- a1i=g11gi1,∴gi1=a11ai1(i=1,2,…n)得到G的第一列的元素
-
递推关系求解其余列:
这里表示由前j-1列求第j列
- 先求对角线上元素
由G的第j行乘上GT第j列等于ajj可得gjj=ajj−Σk=1i−1gik2
- 求第j列其余元素gij,i>j
aij=k=1∑jgjkgikgjjgij=aij−k=1∑j−1gjkgik=v(i) j>1由G的第j行乘上GT第i列等于aji可得aji=Σk=1jgjkgik∴gij=gjjaji−Σk=1j−1gjkgik
用于求解方程
Ax=bG−1Ax=G−1bGTx=h,h=G−1b
由于G是上三角矩阵,所以方程可用回代法轻松解出
QR 分解
定义
若A∈Rm×n,且m>=n,则存在列正交矩阵Q∈Rm×m和上三角矩阵R∈Rm×n使得A=QR
-
引理
若A和B是任意两个m×n矩阵,则AHA=BHB,当且仅当存在一个m×m酉矩阵Q使得QA=B
分解方法
1、Gram-Schmidt法QR正交分解
- 将向量a1标准正交化,结果去作q1
{R11q1==∥a1∥R11q1 - 从a2中除去与a1平行的分量,再进行标准正交化,并将结果取作q2则有
⎩⎪⎨⎪⎧R12R22q2===q1Ha2∥a2−q1R12(a2−q1R12)/R22