矩阵分解

矩阵分解

所谓矩阵分解就是将矩阵分解成两三个标准矩阵的乘积
矩阵分解的目的在于

  • 求解线性方程组
  • 矩阵存储
  • 矩阵重构以预测

矩阵分解的根本方法在于线性变换

矩阵分解的分类

  1. 对角化分解:通过正交变换将矩阵对角化

    1. 奇异值分解SVD:针对一般矩阵的分解
      A = U Σ V H , 其 中 U , V 为 酉 矩 阵 , Σ 为 对 角 矩 阵 A=U\Sigma V^H, 其中U,V为酉矩阵,\Sigma 为对角矩阵 A=UΣVH,UVΣ
    2. 特征值分解EVD(谱分解):针对对称矩阵

    A H A = V Σ V H A^HA=V\Sigma V^H AHA=VΣVH

    1. CS分解:正交矩阵分块的同时对角化分解
  2. 三角化分解:分解为正交矩阵和三角矩阵之积,或上三角矩阵与下三角矩阵

    1. Cholesky分解:针对对称正定矩阵

    A = G G T , 其 中 G 为 下 三 角 矩 阵 A=GG^T,其中G为下三角矩阵 A=GGT,G

    1. QR分解:针对一般矩阵

A = Q R , 其 中 Q 是 正 交 矩 阵 , R 是 上 三 角 矩 阵 A=QR,\\其中Q是正交矩阵,R是上三角矩阵 A=QRQR

​ 3. LU分解:针对非奇异矩阵
A = L U 其 中 L 是 下 三 角 矩 阵 , U 是 上 三 角 矩 阵 A=LU \\ 其中L是下三角矩阵,U是上三角矩阵 A=LULU
3. 三角-对角化分解:将矩阵分解为三个矩阵的标准型(两个三角矩阵和一个对角矩阵)之积,或分解为对角矩阵和上三角矩阵之和

  1. L D M T LDM^T LDMT分解:针对非对称矩阵

A = L D M T 其 中 , L 和 M 为 单 位 下 三 角 矩 阵 , D 为 对 角 矩 阵 A = LDM^T \\ 其中,L和M为单位下三角矩阵,D为对角矩阵 A=LDMTLMD

  1. L D L T LDL^T LDLT分解:针对对称矩阵

A = L D L T A = LDL^T A=LDLT

  1. Schur 分解:针对复矩阵

Q T A Q = D + N 其 中 Q 是 酉 矩 阵 , D 是 对 角 矩 阵 , N 是 严 格 上 三 角 矩 阵 ( 对 角 线 为 0 的 上 三 角 矩 阵 ) Q^TAQ=D+N \\ 其中Q是酉矩阵,D是对角矩阵,N是严格上三角矩阵(对角线为0的上三角矩阵) QTAQ=D+NQDN线0

  1. 三对角化分解

    1. Householder分解

    H T A H = T , H = H 1 H 2 H 3 . . . 为 H o u s e h o l d e r 矩 阵 H^TAH=T,H=H_1H_2H_3...为Householder矩阵 HTAH=T,H=H1H2H3...Householder

对角化分解

CS分解

现今主要用于Quantum Compiling,这里不详细介绍
Q = [ Q 11 Q 12 Q 21 Q 22 ] 为 正 交 矩 阵 , 存 在 [ U 1 0 0 U 2 ] [ Q 11 Q 12 Q 21 Q 22 ] [ V 1 0 0 V 2 ] = [ I k − j 0 0 0 C S 0 − S C ] 其 中 U 1 , U 2 , V 1 , V 2 为 正 交 矩 阵 , C , S 为 对 角 矩 阵 Q = \begin{bmatrix} Q_{11} & Q_{12} \\ Q_{21} & Q_{22} \end{bmatrix}为正交矩阵,存在\\ \begin{bmatrix} U_{1} & 0 \\ 0 & U_{2} \end{bmatrix} \begin{bmatrix} Q_{11} & Q_{12} \\ Q_{21} & Q_{22} \end{bmatrix} \begin{bmatrix} V_{1} & 0 \\ 0 & V_{2} \end{bmatrix}= \begin{bmatrix} I_{k-j} & 0 & 0 \\ 0 & C & S \\ 0 & -S & C \end{bmatrix} \\ 其中U_1,U_2,V_1,V_2为正交矩阵,C,S为对角矩阵 Q=[Q11Q21Q12Q22][U100U2][Q11Q21Q12Q22][V100V2]=Ikj000CS0SCU1,U2,V1,V2C,S

LU分解

定义
  • A ∈ R m ∗ n A\in R^{m*n} ARmn,将矩阵分解为A=LU,其中L为m*n单位下三角矩阵,U为A的阶梯形矩阵

  • 如果 A ∈ R n ∗ n A\in R^{n*n} ARnn非奇异,并且其LU存在的话,则A的LU分解是唯一的,且 d e t ( A ) = u 11 u 22 … … u n n det(A)=u_{11}u_{22}……u_{nn} det(A)=u11u22unn

    证明
    若否,设 A = L 1 U 2 = L 2 U 2 A=L_1U_2=L_2U_2 A=L1U2=L2U2是非奇异矩阵的两个LU分解,则 L 1 U 2 = L 2 U 2 L_1U_2=L_2U_2 L1U2=L2U2
    易证,上三角矩阵和上三角矩阵的乘积还是上三角矩阵
    由于 L 2 − 1 L 1 L_2^{-1}L_1 L21L1是下三角矩阵, U 2 U 1 − 1 U_2U_1^{-1} U2U11是上三角矩阵所以若 L 1 U 1 = L 2 U 2 L_1U_1=L_2U_2 L1U1=L2U2,L,U均为单位矩阵,则 L 1 = L 2 , U 1 = U 2 L_1=L_2,U_1=U_2 L1=L2,U1=U2,所以分解唯一。

求解方程

求解线性方程组Ax=b时,将A进行 LU分解,LUx=b,令y=Ux,方程组变为Ly=b,解得y,再求解Ux=y。由于L,U为特殊矩阵,这两个方程都可以用回代法轻松求解。

  1. 分解A=LU
  2. 用前向回代法求解下三角矩阵方程Ly=b
  3. 用后向回代法求解下三角矩阵方程Ux=y
  • 对于AX=B也可同样求解
分解方法
  1. 方法一
  • 将A初等变换 E 1 E 2 . . . E k ​ E_1E_2...E_k​ E1E2...Ek为阶梯形矩阵U

  • 对单位矩阵I进行行初等变换 E k − 1 E k − 1 − 1 . . . E 1 − 1 E^{-1}_kE^{-1}_{k-1}...E^{-1}_{1} Ek1Ek11...E11为L,即 L = E 1 − 1 E 2 − 1 . . . E k − 1 L=E^{-1}_1E^{-1}_{2}...E^{-1}_{k} L=E11E21...Ek1

    注: 初等矩阵的逆矩阵:

    • 行交换:行交换
    • 某行乘以一个倍数:除以这个倍数
    • 某行乘以一个倍数加到另一行:乘上这个数的相反数加到另一行
  1. 方法二
    可以利用方法一中步骤1 将A 变换为阶梯型矩阵U 过程中的有关矩阵 A , A 1 , A 2 , U ​ A, A_1, A_2, U​ A,A1,A2,U 的主元列构造单位下三角矩阵L。注:这里的 A i ​ A_i​ Ai是将前i列全部变换为主元下全部元素为0的矩阵
    具体方法是:
    (1)取出A 的第一个主元所在的列(不失一般性,假定为第1 列),将其归一化(第
    一个元素为1)后,作为L 的第一列。
    (2)取出 A i − 1 ​ A_{i−1}​ Ai1 的第i 个主元及下面的同列元素构成的部分组成一个(n − i) × 1 向量,
    将其归一化后,作为L 的第i 列的下半部分,其中,i = 2, 3, · · · , n。

Cholesky 分解

定义

A = [ a i j ] ∈ R n × n A = [a_{ij}] ∈ R^{n×n} A=[aij]Rn×n对称正定矩阵, A = G G T A = GG^T A=GGT 称为矩阵A 的Cholesky 分解,且分解是唯一的,其中 G ∈ R n × n G ∈ R^{n×n} GRn×n是一个具有正的对角线元素的下三角矩阵,即
G = [ g 11 g 21 g 22 . . . g n 1 g n 2 . . . g n n ] G=\begin{bmatrix}g_{11}\\g_{21}&g_{22}\\.&.&.\\g_{n1} & g_{n2}&...&g_{nn}\end{bmatrix} G=g11g21.gn1g22.gn2....gnn

逐列求解矩阵G

[ a 11 . . . . . . a 1 n a 21 a 22 . . . . . . . . . . . . a n 1 a n 2 . . . a n n ] = [ g 11 g 21 g 22 . . . g n 1 g n 2 . . . g n n ] [ g 11 g 12 . . . g n 1 0 g 22 . . . 0 0 . . . g n n ] \begin{bmatrix}a_{11}&...&...&a_{1n}\\a_{21}&a_{22}&...\\...&...&...\\a_{n1} & a_{n2}&...&a_{nn}\end{bmatrix}=\begin{bmatrix}g_{11}\\g_{21}&g_{22}\\.&.&.\\g_{n1} & g_{n2}&...&g_{nn}\end{bmatrix}\begin{bmatrix}g_{11}&g_{12}&...&g_{n1}\\0&g_{22}\\.&.&.\\0 &0&...&g_{nn}\end{bmatrix} a11a21...an1...a22...an2............a1nann=g11g21.gn1g22.gn2....gnng110.0g12g22.0.......gn1gnn

  • 求解第一列:

    • 比较两边关系,易得 g 11 = a 11 g_{11}=\sqrt{a_{11}} g11=a11
    • a 1 i = g 11 g i 1 , ∴ g i 1 = a i 1 a 11 ​ a_{1i}=g_{11}g_{i1}, \therefore g_{i1}=\frac{a{i1}}{\sqrt{a_{11}}}​ a1i=g11gi1,gi1=a11 ai1(i=1,2,…n)得到G的第一列的元素
  • 递推关系求解其余列:

    这里表示由前j-1列求第j列

    • 先求对角线上元素

    由 G 的 第 j 行 乘 上 G T 第 j 列 等 于 a j j 可 得 g j j 2 = a j j − Σ k = 1 i − 1 g i k 2 由G的第j行乘上G^T第j列等于a_{jj}可得\\g_{jj}^2 = a_{jj}-\Sigma^{i-1}_{k=1}g^2_{ik} GjGTjajjgjj2=ajjΣk=1i1gik2

    • 求第j列其余元素 g i j ​ g_{ij}​ gij,i>j

a i j = ∑ k = 1 j g j k g i k g j j g i j = a i j − ∑ k = 1 j − 1 g j k g i k = v ( i )   j > 1 由 G 的 第 j 行 乘 上 G T 第 i 列 等 于 a j i 可 得 a j i = Σ k = 1 j g j k g i k ∴ g i j = a j i − Σ k = 1 j − 1 g j k g i k g j j a_{ij} =∑^j_{k=1}g_{jk}g_{ik}\\ g_{jj}g_{ij} = a_{ij} −∑^{j-1}_{k=1}g_{jk}g_{ik} = v(i) \space j>1\\ 由G的第j行乘上G^T第i列等于a_{ji}可得\\ a_{ji}=\Sigma^j_{k=1}g_{jk}g_{ik}\\ \therefore g_{ij}=\frac{a_{ji}-\Sigma^{j-1}_{k=1}g_{jk}g_{ik}}{g_{jj}} aij=k=1jgjkgikgjjgij=aijk=1j1gjkgik=v(i) j>1GjGTiajiaji=Σk=1jgjkgikgij=gjjajiΣk=1j1gjkgik

用于求解方程

A x = b G − 1 A x = G − 1 b G T x = h , h = G − 1 b Ax=b\\ G^{-1}Ax=G^{-1}b\\ G^Tx=h,h=G^{-1}b Ax=bG1Ax=G1bGTx=h,h=G1b
由于G是上三角矩阵,所以方程可用回代法轻松解出

QR 分解

定义

A ∈ R m × n A\in R^{m\times n} ARm×n,且m>=n,则存在列正交矩阵 Q ∈ R m × m Q\in R^{m\times m} QRm×m和上三角矩阵 R ∈ R m × n R\in R^{m\times n} RRm×n使得A=QR

  • 引理

    若A和B是任意两个 m × n m\times n m×n矩阵,则 A H A = B H B A^HA=B^HB AHA=BHB,当且仅当存在一个 m × m m\times m m×m酉矩阵Q使得QA=B

分解方法
1、Gram-Schmidt法QR正交分解
  • 将向量 a 1 a_1 a1标准正交化,结果去作 q 1 q_1 q1
    { R 11 = ∥ a 1 ∥ q 1 = q 1 R 11 \begin{cases} R_{11}&=&\lVert a_1 \rVert \\ q_1 &=& \frac{q_1}{R_{11}} \end{cases} {R11q1==a1R11q1
  • a 2 a_2 a2中除去与 a 1 a_1 a1平行的分量,再进行标准正交化,并将结果取作 q 2 q_2 q2则有

{ R 12 = q 1 H a 2 R 22 = ∥ a 2 − q 1 R 12 q 2 = ( a 2 − q 1 R 12 ) / R 22 \begin{cases} R_{12}&=&q_1^Ha_2 \\ R_{22}&=&\lVert a_2-q_1R_{12} \\ q_2 &=& (a_2-q_1R_{12})/R_{22} \end{cases} R12R22q2===q1Ha2a2q1R12(a2q1R12)/R22

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值