文章目录
- 矩阵分解
- LU分解
- QR分解
- 特征值分解
- 奇异值分解
- 奇异值分解
- 矩阵的基本子空间
- 奇异值分解的性质
- 矩阵的外积展开式
 
 
矩阵分解
矩阵的因式分解是把矩阵表示为多个矩阵的乘积,这种结构更便于理解和计算。
LU分解
设  
     
      
       
       
         A 
        
       
      
        A 
       
      
    A 是  
     
      
       
       
         m 
        
       
         × 
        
       
         n 
        
       
      
        m\times n 
       
      
    m×n 矩阵,若  
     
      
       
       
         A 
        
       
      
        A 
       
      
    A 可以写成乘积
  
      
       
        
        
          A 
         
        
          = 
         
        
          L 
         
        
          U 
         
        
       
         A=LU 
        
       
     A=LU
 其中, 
     
      
       
       
         L 
        
       
      
        L 
       
      
    L 为  
     
      
       
       
         m 
        
       
      
        m 
       
      
    m 阶下三角方阵,主对角线元素全是1。 
     
      
       
       
         U 
        
       
      
        U 
       
      
    U 为  
     
      
       
       
         A 
        
       
      
        A 
       
      
    A 得到一个行阶梯形矩阵。这样一个分解称为LU分解。  
     
      
       
       
         L 
        
       
      
        L 
       
      
    L 称为单位下三角方阵。
我们先来看看,LU分解的一个应用。当  
     
      
       
       
         A 
        
       
         = 
        
       
         L 
        
       
         U 
        
       
      
        A=LU 
       
      
    A=LU 时,方程  
     
      
       
       
         A 
        
       
         x 
        
       
         = 
        
       
         b 
        
       
      
        A\mathbf x=\mathbf b 
       
      
    Ax=b 可写成  
     
      
       
       
         L 
        
       
         ( 
        
       
         U 
        
       
         x 
        
       
         ) 
        
       
         = 
        
       
         b 
        
       
      
        L(U\mathbf x)=\mathbf b 
       
      
    L(Ux)=b,于是分解为下面两个方程
  
      
       
        
        
          L 
         
        
          y 
         
        
          = 
         
        
          b 
         
         
        
          U 
         
        
          x 
         
        
          = 
         
        
          y 
         
        
       
         L\mathbf y=\mathbf b \\ U\mathbf x=\mathbf y 
        
       
     Ly=bUx=y
 因为  
     
      
       
       
         L 
        
       
      
        L 
       
      
    L 和  
     
      
       
       
         U 
        
       
      
        U 
       
      
    U 都是三角矩阵,每个方程都比较容易解。
LU 分解算法:本节只讲述仅用行倍加变换求解。可以证明,单位下三角矩阵的乘积和逆也是单位下三角矩阵 。此时,可以用行倍加变换寻找  
     
      
       
       
         L 
        
       
      
        L 
       
      
    L 和  
     
      
       
       
         U 
        
       
      
        U 
       
      
    U 。假设存在单位下三角初等矩阵  
     
      
       
        
        
          P 
         
        
          1 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          P 
         
        
          s 
         
        
       
      
        P_1,\cdots,P_s 
       
      
    P1,⋯,Ps 使
  
      
       
        
         
         
           P 
          
         
           1 
          
         
        
          ⋯ 
         
         
         
           P 
          
         
           s 
          
         
        
          A 
         
        
          = 
         
        
          U 
         
        
       
         P_1\cdots P_sA=U 
        
       
     P1⋯PsA=U
 于是便得到了  
     
      
       
       
         U 
        
       
      
        U 
       
      
    U 和  
     
      
       
       
         L 
        
       
      
        L 
       
      
    L
  
      
       
        
        
          L 
         
        
          = 
         
        
          ( 
         
         
         
           P 
          
         
           1 
          
         
        
          , 
         
        
          ⋯ 
          
        
          , 
         
         
         
           P 
          
         
           s 
          
         
         
         
           ) 
          
          
          
            − 
           
          
            1 
           
          
         
        
       
         L=(P_1,\cdots,P_s)^{-1} 
        
       
     L=(P1,⋯,Ps)−1
QR分解
如果 m × n m\times n m×n 矩阵 A A A 的列向量线性无关,那么 A A A 可以分解为 A = Q R A=QR A=QR,其中 Q Q Q 是一个 m × n m\times n m×n 正交矩阵,其列为 col A \text{col }A col A 的一组标准正交基, R R R 是一个上 n × n n\times n n×n 三角可逆矩阵,且其对角线上的元素全为正数。
证:矩阵  
     
      
       
       
         A 
        
       
         = 
        
       
         ( 
        
        
        
          x 
         
        
          1 
         
        
       
         , 
        
        
        
          x 
         
        
          2 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          x 
         
        
          n 
         
        
       
         ) 
        
       
      
        A=(\mathbf x_1,\mathbf x_2,\cdots,\mathbf x_n) 
       
      
    A=(x1,x2,⋯,xn) 的列向量是  
     
      
       
       
         col  
        
       
         A 
        
       
      
        \text{col }A 
       
      
    col A 的一组基,使用施密特正交化方法可以构造一组标准正交基  
     
      
       
        
        
          u 
         
        
          1 
         
        
       
         , 
        
        
        
          u 
         
        
          2 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          u 
         
        
          n 
         
        
       
      
        \mathbf u_1,\mathbf u_2,\cdots,\mathbf u_n 
       
      
    u1,u2,⋯,un ,取
  
      
       
        
        
          Q 
         
        
          = 
         
        
          ( 
         
         
         
           u 
          
         
           1 
          
         
        
          , 
         
         
         
           u 
          
         
           2 
          
         
        
          , 
         
        
          ⋯ 
          
        
          , 
         
         
         
           u 
          
         
           n 
          
         
        
          ) 
         
        
       
         Q=(\mathbf u_1,\mathbf u_2,\cdots,\mathbf u_n) 
        
       
     Q=(u1,u2,⋯,un)
 因为在正交化过程中  
     
      
       
        
        
          x 
         
        
          k 
         
        
       
         ∈ 
        
       
         span 
        
       
         { 
        
        
        
          x 
         
        
          1 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          x 
         
        
          k 
         
        
       
         } 
        
       
         = 
        
       
         span 
        
       
         { 
        
        
        
          u 
         
        
          1 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          u 
         
        
          k 
         
        
       
         } 
        
       
         , 
        
        
       
         k 
        
       
         = 
        
       
         1 
        
       
         , 
        
       
         2 
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
       
         n 
        
       
      
        \mathbf x_k\in\text{span}\{\mathbf x_1,\cdots,\mathbf x_k\}=\text{span}\{\mathbf u_1,\cdots,\mathbf u_k\},\quad k=1,2,\cdots,n 
       
      
    xk∈span{x1,⋯,xk}=span{u1,⋯,uk},k=1,2,⋯,n 。所以  
     
      
       
        
        
          x 
         
        
          k 
         
        
       
      
        \mathbf x_k 
       
      
    xk 可线性表示为
  
      
       
        
         
         
           x 
          
         
           k 
          
         
        
          = 
         
         
         
           r 
          
          
          
            1 
           
          
            k 
           
          
         
         
         
           u 
          
         
           1 
          
         
        
          + 
         
        
          ⋯ 
         
        
          + 
         
         
         
           r 
          
          
          
            k 
           
          
            k 
           
          
         
         
         
           u 
          
         
           k 
          
         
        
          + 
         
        
          0 
         
        
          ⋅ 
         
         
         
           u 
          
          
          
            k 
           
          
            + 
           
          
            1 
           
          
         
        
          + 
         
        
          ⋯ 
         
        
          + 
         
        
          0 
         
        
          ⋅ 
         
         
         
           u 
          
         
           n 
          
         
        
       
         \mathbf x_k=r_{1k}\mathbf u_1+\cdots+r_{kk}\mathbf u_k+0\cdot\mathbf u_{k+1}+\cdots+0\cdot\mathbf u_n 
        
       
     xk=r1ku1+⋯+rkkuk+0⋅uk+1+⋯+0⋅un
 于是
  
      
       
        
         
         
           x 
          
         
           k 
          
         
        
          = 
         
        
          Q 
         
         
         
           r 
          
         
           k 
          
         
        
       
         \mathbf x_k=Q\mathbf r_k 
        
       
     xk=Qrk
 其中  
     
      
       
        
        
          r 
         
        
          k 
         
        
       
         = 
        
       
         ( 
        
        
        
          r 
         
         
         
           1 
          
         
           k 
          
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          r 
         
         
         
           k 
          
         
           k 
          
         
        
       
         , 
        
       
         0 
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
       
         0 
        
        
        
          ) 
         
        
          T 
         
        
       
      
        \mathbf r_k=(r_{1k},\cdots,r_{kk},0,\cdots,0)^T 
       
      
    rk=(r1k,⋯,rkk,0,⋯,0)T ,且  
     
      
       
        
        
          r 
         
         
         
           k 
          
         
           k 
          
         
        
       
         ⩾ 
        
       
         0 
        
       
      
        r_{kk}\geqslant 0 
       
      
    rkk⩾0 (在正交化过程中,若  
     
      
       
        
        
          r 
         
         
         
           k 
          
         
           k 
          
         
        
       
         < 
        
       
         0 
        
       
      
        r_{kk}<0 
       
      
    rkk<0 ,则 
     
      
       
        
        
          r 
         
         
         
           k 
          
         
           k 
          
         
        
       
      
        r_{kk} 
       
      
    rkk 和  
     
      
       
        
        
          u 
         
        
          k 
         
        
       
      
        \mathbf u_k 
       
      
    uk 同乘-1)。取  
     
      
       
       
         R 
        
       
         = 
        
       
         ( 
        
        
        
          r 
         
        
          1 
         
        
       
         , 
        
        
        
          r 
         
        
          2 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          r 
         
        
          n 
         
        
       
         ) 
        
       
      
        R=(\mathbf r_1,\mathbf r_2,\cdots,\mathbf r_n) 
       
      
    R=(r1,r2,⋯,rn) ,则
  
      
       
        
        
          A 
         
        
          = 
         
        
          ( 
         
        
          Q 
         
         
         
           r 
          
         
           1 
          
         
        
          , 
         
        
          Q 
         
         
         
           r 
          
         
           2 
          
         
        
          , 
         
        
          ⋯ 
          
        
          , 
         
        
          Q 
         
         
         
           r 
          
         
           n 
          
         
        
          ) 
         
        
          = 
         
        
          Q 
         
        
          R 
         
        
       
         A=(Q\mathbf r_1,Q\mathbf r_2,\cdots,Q\mathbf r_n)=QR 
        
       
     A=(Qr1,Qr2,⋯,Qrn)=QR
 例:求  
     
      
       
       
         A 
        
       
         = 
        
        
        
          [ 
         
         
          
           
            
            
              1 
             
            
           
           
            
            
              0 
             
            
           
           
            
            
              0 
             
            
           
          
          
           
            
            
              1 
             
            
           
           
            
            
              1 
             
            
           
           
            
            
              0 
             
            
           
          
          
           
            
            
              1 
             
            
           
           
            
            
              1 
             
            
           
           
            
            
              1 
             
            
           
          
          
           
            
            
              1 
             
            
           
           
            
            
              1 
             
            
           
           
            
            
              1 
             
            
           
          
         
        
          ] 
         
        
       
      
        A=\begin{bmatrix}1&0&0\\1&1&0\\1&1&1\\1&1&1\end{bmatrix} 
       
      
    A= 
             111101110011 
              的一个 QR 分解
解:通过施密特正交化方法我们可以得到  
     
      
       
       
         col  
        
       
         A 
        
       
      
        \text{col }A 
       
      
    col A 的一组标准正交基,将这些向量组成矩阵
  
      
       
        
        
          Q 
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                1 
               
              
                / 
               
              
                2 
               
              
             
            
            
             
              
              
                − 
               
              
                3 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
            
             
             
               0 
              
             
            
           
           
            
             
              
              
                1 
               
              
                / 
               
              
                2 
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
            
             
              
              
                − 
               
              
                2 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
           
           
            
             
              
              
                1 
               
              
                / 
               
              
                2 
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
           
           
            
             
              
              
                1 
               
              
                / 
               
              
                2 
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
           
          
         
           ] 
          
         
        
       
         Q=\begin{bmatrix}1/2&-3/\sqrt{12}&0\\1/2&1/\sqrt{12}&-2/\sqrt{6}\\1/2&1/\sqrt{12}&1/\sqrt{6}\\1/2&1/\sqrt{12}&1/\sqrt{6}\end{bmatrix} 
        
       
     Q= 
              1/21/21/21/2−3/121/121/121/120−2/61/61/6 
              
 注意到  
     
      
       
       
         Q 
        
       
      
        Q 
       
      
    Q 是正交矩阵, 
     
      
       
        
        
          Q 
         
        
          T 
         
        
       
         = 
        
        
        
          Q 
         
         
         
           − 
          
         
           1 
          
         
        
       
      
        Q^T=Q^{-1} 
       
      
    QT=Q−1 。所以  
     
      
       
       
         R 
        
       
         = 
        
        
        
          Q 
         
         
         
           − 
          
         
           1 
          
         
        
       
         A 
        
       
         = 
        
        
        
          Q 
         
        
          T 
         
        
       
         A 
        
       
      
        R=Q^{-1}A=Q^TA 
       
      
    R=Q−1A=QTA
  
      
       
        
        
          R 
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                1 
               
              
                / 
               
              
                2 
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
              
                2 
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
              
                2 
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
              
                2 
               
              
             
            
           
           
            
             
              
              
                − 
               
              
                3 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
              
              
                − 
               
              
                2 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
           
          
         
           ] 
          
         
         
         
           [ 
          
          
           
            
             
             
               1 
              
             
            
            
             
             
               0 
              
             
            
            
             
             
               0 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               0 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
           
          
         
           ] 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               2 
              
             
            
            
             
              
              
                3 
               
              
                / 
               
              
                2 
               
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
              
              
                3 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
            
             
              
              
                2 
               
              
                / 
               
               
               
                 12 
                
               
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
             
               0 
              
             
            
            
             
              
              
                2 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
           
          
         
           ] 
          
         
        
       
         R=\begin{bmatrix}1/2&1/2&1/2&1/2\\ -3/\sqrt{12}&1/\sqrt{12}&1/\sqrt{12}&1/\sqrt{12} \\ 0&-2/\sqrt{6}&1/\sqrt{6}&1/\sqrt{6} \end{bmatrix} \begin{bmatrix}1&0&0\\1&1&0\\1&1&1\\1&1&1\end{bmatrix}= \begin{bmatrix}2&3/2&1\\0&3/\sqrt{12}&2/\sqrt{12}\\0&0&2/\sqrt{6} \end{bmatrix} 
        
       
     R= 
              1/2−3/1201/21/12−2/61/21/121/61/21/121/6 
               
              111101110011 
              = 
              2003/23/12012/122/6 
              
特征值分解
特征值分解是将矩阵分解成特征值和特征向量形式:
  
      
       
        
        
          A 
         
        
          = 
         
        
          Q 
         
        
          Σ 
         
         
         
           Q 
          
          
          
            − 
           
          
            1 
           
          
         
        
       
         A=Q\Sigma Q^{-1} 
        
       
     A=QΣQ−1
 其中, 
     
      
       
       
         Σ 
        
       
         = 
        
       
         diag 
        
       
         ( 
        
        
        
          λ 
         
        
          1 
         
        
       
         , 
        
        
        
          λ 
         
        
          2 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          λ 
         
        
          n 
         
        
       
         ) 
        
       
      
        \Sigma=\text{diag}(\lambda_1,\lambda_2,\cdots,\lambda_n) 
       
      
    Σ=diag(λ1,λ2,⋯,λn) 是一个对角阵,其对角线元素是矩阵  
     
      
       
       
         A 
        
       
      
        A 
       
      
    A 的特征值按降序排列  
     
      
       
        
        
          λ 
         
        
          1 
         
        
       
         ⩾ 
        
        
        
          λ 
         
        
          2 
         
        
       
         ⩾ 
        
       
         ⋯ 
        
       
         ⩾ 
        
        
        
          λ 
         
        
          n 
         
        
       
      
        \lambda_1\geqslant\lambda_2\geqslant\cdots\geqslant\lambda_n 
       
      
    λ1⩾λ2⩾⋯⩾λn, 
     
      
       
       
         Q 
        
       
         = 
        
       
         ( 
        
        
        
          u 
         
        
          1 
         
        
       
         , 
        
        
        
          u 
         
        
          2 
         
        
       
         , 
        
       
         … 
        
       
         , 
        
        
        
          u 
         
        
          n 
         
        
       
         ) 
        
       
      
        Q=(\mathbf u_1,\mathbf u_2,\dots,\mathbf u_n) 
       
      
    Q=(u1,u2,…,un) 是特征值对应的特征向量组成的矩阵。

特征值分解后,方阵的幂变得更容易计算
  
      
       
        
         
         
           A 
          
         
           t 
          
         
        
          = 
         
        
          Q 
         
         
         
           Σ 
          
         
           t 
          
         
         
         
           Q 
          
          
          
            − 
           
          
            1 
           
          
         
        
          = 
         
        
          Q 
         
         
         
           [ 
          
          
           
            
             
              
              
                λ 
               
              
                1 
               
              
                t 
               
              
             
            
           
           
            
             
              
             
            
            
             
             
               ⋱ 
              
             
            
           
           
            
             
              
             
            
            
             
              
             
            
            
             
              
              
                λ 
               
              
                n 
               
              
                t 
               
              
             
            
           
          
         
           ] 
          
         
         
         
           Q 
          
          
          
            − 
           
          
            1 
           
          
         
        
       
         A^t=Q\Sigma^t Q^{-1}=Q\begin{bmatrix}\lambda_1^t\\&\ddots\\&&\lambda_n^t\end{bmatrix}Q^{-1} 
        
       
     At=QΣtQ−1=Q 
              λ1t⋱λnt 
              Q−1
 特征值分解可以理解为:先切换基向量,然后伸缩变换,最后再切换回原来的基向量。其中, 
     
      
       
       
         Σ 
        
       
      
        \Sigma 
       
      
    Σ 中的特征向量描述伸缩变换的程度,特征向量描述变换的方向。
特征值分解有一定的局限性,因为它只适用于满秩的方阵。
例:求矩阵 A = [ − 2 1 1 0 2 0 − 4 1 3 ] A=\begin{bmatrix}-2&1&1\\0&2&0\\-4&1&3\end{bmatrix} A= −20−4121103  的特征值分解。
解:矩阵  
     
      
       
       
         A 
        
       
      
        A 
       
      
    A 的特征多项式为  
     
      
       
       
         det 
        
       
          
        
       
         ( 
        
       
         A 
        
       
         − 
        
       
         λ 
        
       
         I 
        
       
         ) 
        
       
         = 
        
       
         − 
        
       
         ( 
        
       
         λ 
        
       
         − 
        
       
         2 
        
        
        
          ) 
         
        
          2 
         
        
       
         ( 
        
       
         λ 
        
       
         + 
        
       
         1 
        
       
         ) 
        
       
      
        \det(A-\lambda I)=-(\lambda-2)^2(\lambda+1) 
       
      
    det(A−λI)=−(λ−2)2(λ+1) 。特征值和特征向量分别为
  
      
       
        
         
         
           λ 
          
         
           1 
          
         
        
          = 
         
        
          − 
         
        
          1 
         
        
          : 
         
         
         
           u 
          
         
           1 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               1 
              
             
            
           
           
            
             
             
               0 
              
             
            
           
           
            
             
             
               1 
              
             
            
           
          
         
           ] 
          
         
        
          ; 
         
         
         
         
           λ 
          
         
           2 
          
         
        
          = 
         
        
          2 
         
        
          : 
         
         
         
           u 
          
         
           2 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               0 
              
             
            
           
           
            
             
             
               1 
              
             
            
           
           
            
             
              
              
                − 
               
              
                1 
               
              
             
            
           
          
         
           ] 
          
         
        
          , 
         
         
         
           u 
          
         
           3 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               1 
              
             
            
           
           
            
             
             
               0 
              
             
            
           
           
            
             
             
               4 
              
             
            
           
          
         
           ] 
          
         
        
       
         \lambda_1=-1:\mathbf u_1=\begin{bmatrix}1\\0\\1\end{bmatrix};\quad \lambda_2=2:\mathbf u_2=\begin{bmatrix}0\\1\\-1\end{bmatrix}, \mathbf u_3=\begin{bmatrix}1\\0\\4\end{bmatrix} 
        
       
     λ1=−1:u1= 
              101 
              ;λ2=2:u2= 
              01−1 
              ,u3= 
              104 
              
 可通过行变换计算逆矩阵
  
      
       
        
        
          ( 
         
        
          Q 
         
        
          , 
         
        
          I 
         
        
          ) 
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
               
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   1 
                  
                 
                
                
                 
                 
                   1 
                  
                 
                
                
                 
                 
                   1 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
               
               
                
                 
                 
                   1 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   1 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
               
               
                
                 
                  
                  
                    − 
                   
                  
                    1 
                   
                  
                 
                
                
                 
                 
                   4 
                  
                 
                
                
                 
                 
                   1 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   1 
                  
                 
                
               
              
             
            
           
          
         
           ] 
          
         
        
          → 
         
         
         
           [ 
          
          
           
            
             
              
               
                
                 
                 
                   1 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   1 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
               
               
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   1 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                  
                  
                    − 
                   
                  
                    1 
                   
                  
                    / 
                   
                  
                    3 
                   
                  
                 
                
                
                 
                  
                  
                    1 
                   
                  
                    / 
                   
                  
                    3 
                   
                  
                 
                
                
                 
                  
                  
                    1 
                   
                  
                    / 
                   
                  
                    3 
                   
                  
                 
                
               
               
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   0 
                  
                 
                
                
                 
                 
                   1 
                  
                 
                
                
                 
                  
                  
                    4 
                   
                  
                    / 
                   
                  
                    3 
                   
                  
                 
                
                
                 
                  
                  
                    − 
                   
                  
                    1 
                   
                  
                    / 
                   
                  
                    3 
                   
                  
                 
                
                
                 
                  
                  
                    − 
                   
                  
                    1 
                   
                  
                    / 
                   
                  
                    3 
                   
                  
                 
                
               
              
             
            
           
          
         
           ] 
          
         
        
          = 
         
        
          ( 
         
        
          I 
         
        
          , 
         
         
         
           Q 
          
          
          
            − 
           
          
            1 
           
          
         
        
          ) 
         
        
       
         (Q,I)=\begin{bmatrix}\begin{array}{ccc:ccc} 0&1&1&1&0&0\\1&0&0&0&1&0\\-1&4&1&0&0&1 \end{array}\end{bmatrix}\to \begin{bmatrix}\begin{array}{ccc:ccc} 1&0&0&0&1&0\\0&1&0&-1/3&1/3&1/3\\0&0&1&4/3&-1/3&-1/3 \end{array}\end{bmatrix}=(I,Q^{-1}) 
        
       
     (Q,I)= 
              01−1104101100010001 
              → 
              1000100010−1/34/311/3−1/301/3−1/3 
              =(I,Q−1)
 所以
  
      
       
        
        
          A 
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               0 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               0 
              
             
            
            
             
             
               0 
              
             
            
           
           
            
             
              
              
                − 
               
              
                1 
               
              
             
            
            
             
             
               4 
              
             
            
            
             
             
               1 
              
             
            
           
          
         
           ] 
          
         
         
         
           [ 
          
          
           
            
             
             
               2 
              
             
            
            
             
             
               0 
              
             
            
            
             
             
               0 
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
             
               2 
              
             
            
            
             
             
               0 
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
             
               0 
              
             
            
            
             
              
              
                − 
               
              
                1 
               
              
             
            
           
          
         
           ] 
          
         
         
         
           [ 
          
          
           
            
             
             
               0 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               0 
              
             
            
           
           
            
             
              
              
                − 
               
              
                1 
               
              
                / 
               
              
                3 
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
              
                3 
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
              
                3 
               
              
             
            
           
           
            
             
              
              
                4 
               
              
                / 
               
              
                3 
               
              
             
            
            
             
              
              
                − 
               
              
                1 
               
              
                / 
               
              
                3 
               
              
             
            
            
             
              
              
                − 
               
              
                1 
               
              
                / 
               
              
                3 
               
              
             
            
           
          
         
           ] 
          
         
        
       
         A=\begin{bmatrix}0&1&1\\1&0&0\\-1&4&1\end{bmatrix} \begin{bmatrix}2&0&0\\0&2&0\\0&0&-1\end{bmatrix} \begin{bmatrix}0&1&0\\-1/3&1/3&1/3\\4/3&-1/3&-1/3\end{bmatrix} 
        
       
     A= 
              01−1104101 
               
              20002000−1 
               
              0−1/34/311/3−1/301/3−1/3 
              
奇异值分解
奇异值分解
奇异值分解(Singular Value Decomposition, SVD)是线性代数中一种重要的矩阵分解,在生物信息学、信号处理、金融学、统计学等领域有重要应用。
SVD 可以理解为同一线性变换 T : R n ↦ R m T:\R^n\mapsto\R^m T:Rn↦Rm 在不同基下的矩阵表示。假设 Grant 选用标准基,对应的矩阵为 A m × n A_{m\times n} Am×n 。类似于特征值分解, Jennifer 通过选择合适的基向量,对应的矩阵变为简单的长方形对角矩阵 Σ m × n \Sigma_{m\times n} Σm×n,即只有伸缩变换。
假定 Jennifer 使用矩阵 V n = ( v 1 , ⋯ , v n ) V_n=(\mathbf v_1,\cdots,\mathbf v_n) Vn=(v1,⋯,vn) 的列向量作为 R n R^n Rn 的基,使用矩阵 U n = ( u 1 , ⋯ , u m ) U_n=(\mathbf u_1,\cdots,\mathbf u_m) Un=(u1,⋯,um)的列向量作为 R m R^m Rm 的基 。那么,对于 Jennifer 视角下的向量 x ∈ R n \mathbf x\in R^n x∈Rn
- 同样的向量,用 Grant 的坐标系表示为 V x V\mathbf x Vx
- 用 Grant 的语言描述变换后的向量 A V x AV\mathbf x AVx
- 将变换后的结果变回 Jennifer 的坐标系 U − 1 A V x U^{-1}AV\mathbf x U−1AVx
于是,我们得到同一个线性变换 T T T 在 Jennifer 的坐标系下对应的矩阵 Σ = U − 1 A V \Sigma=U^{-1}AV Σ=U−1AV ,也可理解为矩阵 A A A 分解为 A m × n = U m Σ m × n V n − 1 A_{m\times n}=U_m\Sigma_{m\times n}V^{-1}_n Am×n=UmΣm×nVn−1 。
接下来,自然是探讨上述矩阵分解的适用条件。
注意到
  
      
       
        
         
         
           A 
          
         
           T 
          
         
        
          A 
         
        
          = 
         
        
          ( 
         
        
          U 
         
        
          Σ 
         
         
         
           V 
          
          
          
            − 
           
          
            1 
           
          
         
         
         
           ) 
          
         
           T 
          
         
        
          ( 
         
        
          U 
         
        
          Σ 
         
         
         
           V 
          
          
          
            − 
           
          
            1 
           
          
         
        
          ) 
         
        
          = 
         
         
         
           V 
          
          
          
            − 
           
          
            T 
           
          
         
         
         
           Σ 
          
         
           T 
          
         
         
         
           U 
          
         
           T 
          
         
        
          U 
         
        
          Σ 
         
         
         
           V 
          
          
          
            − 
           
          
            1 
           
          
         
        
       
         A^TA=(U\Sigma V^{-1})^T(U\Sigma V^{-1})=V^{-T}\Sigma^TU^TU\Sigma V^{-1} 
        
       
     ATA=(UΣV−1)T(UΣV−1)=V−TΣTUTUΣV−1
 不妨取  
     
      
       
       
         U 
        
       
         , 
        
       
         V 
        
       
      
        U,V 
       
      
    U,V 为单位正交基,即 
     
      
       
       
         U 
        
       
         , 
        
       
         V 
        
       
      
        U,V 
       
      
    U,V 为正交矩阵  
     
      
       
        
        
          U 
         
        
          T 
         
        
       
         U 
        
       
         = 
        
       
         I 
        
       
         , 
        
        
        
          V 
         
        
          T 
         
        
       
         V 
        
       
         = 
        
       
         I 
        
       
      
        U^TU=I,V^TV=I 
       
      
    UTU=I,VTV=I ,则
  
      
       
        
         
         
           A 
          
         
           T 
          
         
        
          A 
         
        
          = 
         
        
          V 
         
         
         
           Σ 
          
         
           T 
          
         
        
          Σ 
         
         
         
           V 
          
         
           T 
          
         
        
       
         A^TA=V\Sigma^T\Sigma V^T 
        
       
     ATA=VΣTΣVT
 于是,可知  
     
      
       
       
         V 
        
       
      
        V 
       
      
    V 的列向量为  
     
      
       
        
        
          A 
         
        
          T 
         
        
       
         A 
        
       
      
        A^TA 
       
      
    ATA 的特征向量, 
     
      
       
        
        
          Σ 
         
        
          T 
         
        
       
         Σ 
        
       
      
        \Sigma^T\Sigma 
       
      
    ΣTΣ 为 
     
      
       
       
         n 
        
       
      
        n 
       
      
    n 阶对角阵,其对角元素为 
     
      
       
        
        
          A 
         
        
          T 
         
        
       
         A 
        
       
      
        A^TA 
       
      
    ATA 的特征值。事实上  
     
      
       
        
        
          A 
         
        
          T 
         
        
       
         A 
        
       
      
        A^TA 
       
      
    ATA 为对称阵,必定存在正交矩阵  
     
      
       
       
         V 
        
       
      
        V 
       
      
    V 相似对角化。
同理
  
      
       
        
        
          A 
         
         
         
           A 
          
         
           T 
          
         
        
          = 
         
        
          U 
         
        
          Σ 
         
         
         
           Σ 
          
         
           T 
          
         
         
         
           U 
          
         
           T 
          
         
        
       
         AA^T=U\Sigma\Sigma^T U^T 
        
       
     AAT=UΣΣTUT
 可知  
     
      
       
       
         U 
        
       
      
        U 
       
      
    U 的列向量为  
     
      
       
       
         A 
        
        
        
          A 
         
        
          T 
         
        
       
      
        AA^T 
       
      
    AAT 的特征向量, 
     
      
       
       
         Σ 
        
        
        
          Σ 
         
        
          T 
         
        
       
      
        \Sigma\Sigma^T 
       
      
    ΣΣT 为 
     
      
       
       
         m 
        
       
      
        m 
       
      
    m 阶对角阵,其对角元素为 
     
      
       
       
         A 
        
        
        
          A 
         
        
          T 
         
        
       
      
        AA^T 
       
      
    AAT 的特征值。矩阵  
     
      
       
        
        
          A 
         
        
          T 
         
        
       
         A 
        
       
      
        A^TA 
       
      
    ATA 为对称阵,必定存在正交矩阵  
     
      
       
       
         U 
        
       
      
        U 
       
      
    U 相似对角化。
目前 U , V U,V U,V 我们都求出来了,只剩下求出长方形对角矩阵 Σ \Sigma Σ 。根据 Sylvester降幂公式, A T A A^TA ATA 和 A A T AA^T AAT 有相同的非零特征值。
令  
     
      
       
       
         Σ 
        
       
         = 
        
        
        
          [ 
         
         
          
           
            
             
             
               Λ 
              
             
               r 
              
             
            
           
           
            
            
              O 
             
            
           
          
          
           
            
            
              O 
             
            
           
           
            
            
              O 
             
            
           
          
         
        
          ] 
         
        
       
      
        \Sigma=\begin{bmatrix}\Lambda_r&O\\O&O\end{bmatrix} 
       
      
    Σ=[ΛrOOO] ,其中  
     
      
       
        
        
          Λ 
         
        
          r 
         
        
       
         = 
        
       
         diag 
        
       
         ( 
        
        
        
          σ 
         
        
          1 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          σ 
         
        
          r 
         
        
       
         ) 
        
       
      
        \Lambda_r=\text{diag}(\sigma_1,\cdots,\sigma_r) 
       
      
    Λr=diag(σ1,⋯,σr) 。则
  
      
       
        
         
         
           Σ 
          
         
           T 
          
         
        
          Σ 
         
        
          = 
         
         
          
          
            [ 
           
           
            
             
              
               
               
                 Λ 
                
               
                 r 
                
               
                 2 
                
               
              
             
             
              
              
                O 
               
              
             
            
            
             
              
              
                O 
               
              
             
             
              
              
                O 
               
              
             
            
           
          
            ] 
           
          
         
           n 
          
         
        
          , 
         
         
        
          Σ 
         
         
         
           Σ 
          
         
           T 
          
         
        
          = 
         
         
          
          
            [ 
           
           
            
             
              
               
               
                 Λ 
                
               
                 r 
                
               
                 2 
                
               
              
             
             
              
              
                O 
               
              
             
            
            
             
              
              
                O 
               
              
             
             
              
              
                O 
               
              
             
            
           
          
            ] 
           
          
         
           m 
          
         
        
       
         \Sigma^T\Sigma=\begin{bmatrix}\Lambda_r^2&O\\O&O\end{bmatrix}_n,\quad \Sigma\Sigma^T=\begin{bmatrix}\Lambda_r^2&O\\O&O\end{bmatrix}_m 
        
       
     ΣTΣ=[Λr2OOO]n,ΣΣT=[Λr2OOO]m
 其中  
     
      
       
        
        
          Λ 
         
        
          r 
         
        
          2 
         
        
       
         = 
        
       
         diag 
        
       
         ( 
        
        
        
          σ 
         
        
          1 
         
        
          2 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          σ 
         
        
          r 
         
        
          2 
         
        
       
         ) 
        
       
      
        \Lambda_r^2=\text{diag}(\sigma_1^2,\cdots,\sigma_r^2) 
       
      
    Λr2=diag(σ12,⋯,σr2) 。因此,矩阵  
     
      
       
       
         Σ 
        
       
      
        \Sigma 
       
      
    Σ 的对角元素是  
     
      
       
        
        
          A 
         
        
          T 
         
        
       
         A 
        
       
      
        A^TA 
       
      
    ATA 和  
     
      
       
       
         A 
        
        
        
          A 
         
        
          T 
         
        
       
      
        AA^T 
       
      
    AAT 的特征值  
     
      
       
        
        
          λ 
         
        
          j 
         
        
       
      
        \lambda_j 
       
      
    λj 的平方根
  
      
       
        
         
         
           σ 
          
         
           j 
          
         
        
          = 
         
         
          
          
            λ 
           
          
            j 
           
          
         
        
       
         \sigma_j=\sqrt{\lambda_j} 
        
       
     σj=λj
 综上,任意矩阵均可奇异值分解。

定义:SVD是指将秩为  
     
      
       
       
         r 
        
       
      
        r 
       
      
    r 的  
     
      
       
       
         m 
        
       
         × 
        
       
         n 
        
       
      
        m\times n 
       
      
    m×n 矩阵 
     
      
       
       
         A 
        
       
      
        A 
       
      
    A分解为
  
      
       
        
        
          A 
         
        
          = 
         
        
          U 
         
        
          Σ 
         
         
         
           V 
          
         
           T 
          
         
        
       
         A=U\Sigma V^T 
        
       
     A=UΣVT
其中 U U U 为 m m m 阶正交阵, V V V 为 n n n 阶正交阵, Σ \Sigma Σ 为 m × n m\times n m×n 维长方形对角矩阵,对角元素称为矩阵 A A A 的奇异值,一般按降序排列 σ 1 ⩾ σ 2 ⩾ ⋯ ⩾ σ r > 0 \sigma_1\geqslant\sigma_2\geqslant\cdots\geqslant\sigma_r>0 σ1⩾σ2⩾⋯⩾σr>0 ,这样 Σ \Sigma Σ 就唯一确定了。矩阵 U U U 的列向量称为左奇异向量(left singular vector),矩阵 V V V 的列向量称为右奇异向量(right singular vector)。
 
 
例:这里我们用一个简单的矩阵来说明奇异值分解的步骤。求矩阵 A = [ 0 1 1 1 1 0 ] A=\begin{bmatrix}0&1\\1&1\\1&0\end{bmatrix} A= 011110  的奇异值分解
解:首先求出对称阵  
     
      
       
        
        
          A 
         
        
          T 
         
        
       
         A 
        
       
      
        A^TA 
       
      
    ATA 和  
     
      
       
       
         A 
        
        
        
          A 
         
        
          T 
         
        
       
      
        AA^T 
       
      
    AAT
  
      
       
        
         
         
           A 
          
         
           T 
          
         
        
          A 
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               0 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
         
         
           [ 
          
          
           
            
             
             
               0 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               2 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               2 
              
             
            
           
          
         
           ] 
          
         
         
        
          A 
         
         
         
           A 
          
         
           T 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               0 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
         
         
           [ 
          
          
           
            
             
             
               0 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               0 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               2 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
           
          
         
           ] 
          
         
        
       
         A^TA=\begin{bmatrix}0&1&1\\1&1&0\end{bmatrix} \begin{bmatrix}0&1\\1&1\\1&0\end{bmatrix}= \begin{bmatrix}2&1\\1&2\end{bmatrix} \\ AA^T=\begin{bmatrix}0&1\\1&1\\1&0\end{bmatrix} \begin{bmatrix}0&1&1\\1&1&0\end{bmatrix}= \begin{bmatrix}1&1&0\\1&2&1\\0&1&1\end{bmatrix} 
        
       
     ATA=[011110] 
              011110 
              =[2112]AAT= 
              011110 
              [011110]= 
              110121011 
              
 然后求出  
     
      
       
        
        
          A 
         
        
          T 
         
        
       
         A 
        
       
      
        A^TA 
       
      
    ATA 的特征值和特征向量
  
      
       
        
         
         
           λ 
          
         
           1 
          
         
        
          = 
         
        
          3 
         
        
          : 
         
         
         
           v 
          
         
           1 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
           
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
           
          
         
           ] 
          
         
        
          ; 
         
         
         
         
           λ 
          
         
           2 
          
         
        
          = 
         
        
          1 
         
        
          : 
         
         
         
           v 
          
         
           2 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                − 
               
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
           
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
           
          
         
           ] 
          
         
        
       
         \lambda_1=3:\mathbf v_1=\begin{bmatrix}1/\sqrt{2}\\1/\sqrt{2}\end{bmatrix};\quad \lambda_2=1:\mathbf v_2=\begin{bmatrix}-1/\sqrt{2}\\1/\sqrt{2}\end{bmatrix} 
        
       
     λ1=3:v1=[1/21/2];λ2=1:v2=[−1/21/2]
 求出  
     
      
       
       
         A 
        
        
        
          A 
         
        
          T 
         
        
       
      
        AA^T 
       
      
    AAT 的特征值和特征向量
  
      
       
        
         
         
           λ 
          
         
           1 
          
         
        
          = 
         
        
          3 
         
        
          : 
         
         
         
           u 
          
         
           1 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
           
           
            
             
              
              
                2 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
           
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
           
          
         
           ] 
          
         
        
          ; 
         
         
         
         
           λ 
          
         
           2 
          
         
        
          = 
         
        
          1 
         
        
          : 
         
         
         
           u 
          
         
           2 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
           
           
            
             
             
               0 
              
             
            
           
           
            
             
              
              
                − 
               
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
           
          
         
           ] 
          
         
        
          ; 
         
         
         
         
           λ 
          
         
           3 
          
         
        
          = 
         
        
          0 
         
        
          : 
         
         
         
           u 
          
         
           3 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 3 
                
               
              
             
            
           
           
            
             
              
              
                − 
               
              
                1 
               
              
                / 
               
               
               
                 3 
                
               
              
             
            
           
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 3 
                
               
              
             
            
           
          
         
           ] 
          
         
        
          ; 
         
        
       
         \lambda_1=3:\mathbf u_1=\begin{bmatrix}1/\sqrt{6}\\2/\sqrt{6}\\1/\sqrt{6}\end{bmatrix};\quad \lambda_2=1:\mathbf u_2=\begin{bmatrix}1/\sqrt{2}\\0\\-1/\sqrt{2}\end{bmatrix};\quad \lambda_3=0:\mathbf u_3=\begin{bmatrix}1/\sqrt{3}\\-1/\sqrt{3}\\1/\sqrt{3}\end{bmatrix}; 
        
       
     λ1=3:u1= 
              1/62/61/6 
              ;λ2=1:u2= 
              1/20−1/2 
              ;λ3=0:u3= 
              1/3−1/31/3 
              ;
 其次可以利用  
     
      
       
        
        
          σ 
         
        
          i 
         
        
       
         = 
        
        
         
         
           λ 
          
         
           i 
          
         
        
       
      
        \sigma_i=\sqrt{\lambda_i} 
       
      
    σi=λi 求出奇异值  
     
      
       
        
        
          3 
         
        
       
         , 
        
       
         1 
        
       
      
        \sqrt{3},1 
       
      
    3,1
最终得到 
     
      
       
       
         A 
        
       
      
        A 
       
      
    A的奇异值分解
  
      
       
        
        
          A 
         
        
          = 
         
        
          U 
         
        
          Σ 
         
         
         
           V 
          
         
           T 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 3 
                
               
              
             
            
           
           
            
             
              
              
                2 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
            
             
             
               0 
              
             
            
            
             
              
              
                − 
               
              
                1 
               
              
                / 
               
               
               
                 3 
                
               
              
             
            
           
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 6 
                
               
              
             
            
            
             
              
              
                − 
               
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 3 
                
               
              
             
            
           
          
         
           ] 
          
         
         
         
           [ 
          
          
           
            
             
              
              
                3 
               
              
             
            
            
             
             
               0 
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
         
         
           [ 
          
          
           
            
             
              
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
           
           
            
             
              
              
                − 
               
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
            
             
              
              
                1 
               
              
                / 
               
               
               
                 2 
                
               
              
             
            
           
          
         
           ] 
          
         
        
       
         A=U\Sigma V^T=\begin{bmatrix}1/\sqrt{6}&1/\sqrt{2}&1/\sqrt{3}\\2/\sqrt{6}&0&-1/\sqrt{3}\\1/\sqrt{6}&-1/\sqrt{2}&1/\sqrt{3}\end{bmatrix} \begin{bmatrix}\sqrt{3}&0\\0&1\\0&0\end{bmatrix} \begin{bmatrix}1/\sqrt{2}&1/\sqrt{2}\\-1/\sqrt{2}&1/\sqrt{2}\end{bmatrix} 
        
       
     A=UΣVT= 
              1/62/61/61/20−1/21/3−1/31/3 
               
              300010 
              [1/2−1/21/21/2]
矩阵的基本子空间
设矩阵 A = U Σ V T A=U\Sigma V^T A=UΣVT ,有 r r r 个不为零的奇异值,则可以得到矩阵 A A A 的四个基本子空间:
- 正交阵 U U U 的前 r r r 列是 col A \text{col }A col A 的一组单位正交基
- 正交阵 U U U 的后 m − r m-r m−r 列是 ker  A T \ker A^T kerAT 的一组单位正交基
- 正交阵 V V V 的前 r r r 列是 col A T \text{col }A^T col AT 的一组单位正交基
- 正交阵 V V V 的后 n − r n-r n−r 列是 ker  A \ker A kerA 的一组单位正交基
A ( v 1 , ⋯ , v r ⏟ col A T , v r + 1 ⋯ v n ⏟ ker  A ) = ( u 1 , ⋯ , u r ⏟ col A , u r + 1 ⋯ u m ⏟ ker  A T ) [ σ 1 ⋱ σ r O ] ⏟ Σ m × n A(\underbrace{\mathbf v_1,\cdots,\mathbf v_r}_{\text{col }A^T},\underbrace{\mathbf v_{r+1}\cdots\mathbf v_n}_{\ker A})= (\underbrace{\mathbf u_1,\cdots,\mathbf u_r}_{\text{col }A},\underbrace{\mathbf u_{r+1}\cdots\mathbf u_m}_{\ker A^T}) \underbrace{\begin{bmatrix}\sigma_1\\&\ddots\\&&\sigma_r\\&&&O \end{bmatrix}}_{\Sigma_{m\times n}} A(col AT v1,⋯,vr,kerA vr+1⋯vn)=(col A u1,⋯,ur,kerAT ur+1⋯um)Σm×n σ1⋱σrO 
证:易知  
     
      
       
       
         A 
        
       
         V 
        
       
         = 
        
       
         U 
        
       
         Σ 
        
       
      
        AV=U\Sigma 
       
      
    AV=UΣ ,即
  
      
       
        
        
          { 
         
         
          
           
            
             
             
               A 
              
              
              
                v 
               
              
                i 
               
              
             
               = 
              
              
              
                σ 
               
              
                i 
               
              
              
              
                u 
               
              
                i 
               
              
             
               , 
              
             
            
           
           
            
             
             
               1 
              
             
               ⩽ 
              
             
               i 
              
             
               ⩽ 
              
             
               r 
              
             
            
           
          
          
           
            
             
             
               A 
              
              
              
                v 
               
              
                i 
               
              
             
               = 
              
             
               0 
              
             
               , 
              
             
            
           
           
            
             
             
               r 
              
             
               < 
              
             
               i 
              
             
               ⩽ 
              
             
               n 
              
             
            
           
          
         
        
       
         \begin{cases} A\mathbf v_i=\sigma_i\mathbf u_i, &1\leqslant i\leqslant r \\ A\mathbf v_i=0, &r< i\leqslant n \end{cases} 
        
       
     {Avi=σiui,Avi=0,1⩽i⩽rr<i⩽n
 取  
     
      
       
        
        
          v 
         
        
          1 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          v 
         
        
          n 
         
        
       
      
        \mathbf v_1,\cdots,\mathbf v_n 
       
      
    v1,⋯,vn 为  
     
      
       
        
        
          R 
         
        
          n 
         
        
       
      
        \R^n 
       
      
    Rn 的单位正交基,对于  
     
      
       
       
         ∀ 
        
       
         x 
        
       
         ∈ 
        
        
        
          R 
         
        
          n 
         
        
       
      
        \forall\mathbf x\in \R^n 
       
      
    ∀x∈Rn ,可以写出  
     
      
       
       
         x 
        
       
         = 
        
        
        
          c 
         
        
          1 
         
        
        
        
          v 
         
        
          1 
         
        
       
         + 
        
       
         ⋯ 
        
       
         + 
        
        
        
          c 
         
        
          n 
         
        
        
        
          v 
         
        
          n 
         
        
       
      
        \mathbf x=c_1\mathbf v_1+\cdots+c_n\mathbf v_n 
       
      
    x=c1v1+⋯+cnvn,于是
  
      
       
        
         
          
           
            
            
              A 
             
            
              x 
             
            
           
          
          
           
            
             
            
              = 
             
             
             
               c 
              
             
               1 
              
             
            
              A 
             
             
             
               v 
              
             
               1 
              
             
            
              + 
             
            
              ⋯ 
             
            
              + 
             
             
             
               c 
              
             
               r 
              
             
            
              A 
             
             
             
               v 
              
             
               r 
              
             
            
              + 
             
             
             
               c 
              
              
              
                r 
               
              
                + 
               
              
                1 
               
              
             
            
              A 
             
             
             
               v 
              
              
              
                r 
               
              
                + 
               
              
                1 
               
              
             
            
              + 
             
            
              ⋯ 
             
            
              + 
             
             
             
               c 
              
             
               n 
              
             
             
             
               v 
              
             
               n 
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               c 
              
             
               1 
              
             
             
             
               σ 
              
             
               1 
              
             
             
             
               u 
              
             
               1 
              
             
            
              + 
             
            
              ⋯ 
             
            
              + 
             
             
             
               c 
              
             
               r 
              
             
             
             
               σ 
              
             
               1 
              
             
             
             
               u 
              
             
               r 
              
             
            
              + 
             
            
              0 
             
            
              + 
             
            
              ⋯ 
             
            
              + 
             
            
              0 
             
            
           
          
         
        
       
         \begin{aligned} A\mathbf x&=c_1A\mathbf v_1+\cdots+c_rA\mathbf v_r+c_{r+1}A\mathbf v_{r+1}+\cdots+c_n\mathbf v_n \\ &=c_1\sigma_1\mathbf u_1+\cdots+c_r\sigma_1\mathbf u_r+0+\cdots+0 \end{aligned} 
        
       
     Ax=c1Av1+⋯+crAvr+cr+1Avr+1+⋯+cnvn=c1σ1u1+⋯+crσ1ur+0+⋯+0
 所以  
     
      
       
       
         A 
        
       
         x 
        
       
         ∈ 
        
       
         span 
        
       
         { 
        
        
        
          u 
         
        
          1 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          u 
         
        
          r 
         
        
       
         } 
        
       
      
        A\mathbf x\in\text{span}\{\mathbf u_1,\cdots,\mathbf u_r\} 
       
      
    Ax∈span{u1,⋯,ur} ,这说明矩阵  
     
      
       
       
         U 
        
       
      
        U 
       
      
    U 的前  
     
      
       
       
         r 
        
       
      
        r 
       
      
    r 列是  
     
      
       
       
         col  
        
       
         A 
        
       
      
        \text{col }A 
       
      
    col A 的一组单位正交基,因此  
     
      
       
       
         rank  
        
       
         A 
        
       
         = 
        
       
         r 
        
       
      
        \text{rank }A=r 
       
      
    rank A=r 。同时可知,对于任意的  
     
      
       
       
         x 
        
       
         ∈ 
        
       
         span 
        
       
         { 
        
        
        
          v 
         
         
         
           r 
          
         
           + 
          
         
           1 
          
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          v 
         
        
          n 
         
        
       
         } 
          
       
         ⟺ 
          
       
         A 
        
       
         x 
        
       
         = 
        
       
         0 
        
       
      
        \mathbf x\in\text{span}\{\mathbf v_{r+1},\cdots,\mathbf v_n\}\iff A\mathbf x=0 
       
      
    x∈span{vr+1,⋯,vn}⟺Ax=0 ,于是  
     
      
       
       
         V 
        
       
      
        V 
       
      
    V 的后  
     
      
       
       
         n 
        
       
         − 
        
       
         r 
        
       
      
        n-r 
       
      
    n−r 列是  
     
      
       
       
         ker 
        
       
          
        
       
         A 
        
       
      
        \ker A 
       
      
    kerA 的一组单位正交基。
同样通过 A T U = V Σ A^TU=V\Sigma ATU=VΣ 可说明 V V V 的前 r r r 列是 col A T \text{col }A^T col AT 的一组单位正交基, U U U 的后 m − r m-r m−r 列是 ker  A T \ker A^T kerAT 的一组单位正交基。
奇异值分解的性质
设矩阵  
     
      
       
       
         A 
        
       
         = 
        
       
         U 
        
       
         Σ 
        
        
        
          V 
         
        
          T 
         
        
       
      
        A=U\Sigma V^T 
       
      
    A=UΣVT ,秩  
     
      
       
       
         rank  
        
       
         A 
        
       
         = 
        
       
         r 
        
       
      
        \text{rank }A=r 
       
      
    rank A=r ,分别将  
     
      
       
       
         U 
        
       
         , 
        
       
         Σ 
        
       
         , 
        
       
         V 
        
       
      
        U,\Sigma,V 
       
      
    U,Σ,V 进行分块
  
      
       
        
        
          U 
         
        
          = 
         
        
          ( 
         
         
         
           U 
          
         
           r 
          
         
        
          , 
         
         
         
           U 
          
          
          
            m 
           
          
            − 
           
          
            r 
           
          
         
        
          ) 
         
         
        
          V 
         
        
          = 
         
        
          ( 
         
         
         
           V 
          
         
           r 
          
         
        
          , 
         
         
         
           V 
          
          
          
            n 
           
          
            − 
           
          
            r 
           
          
         
        
          ) 
         
         
        
          Σ 
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                Λ 
               
              
                r 
               
              
             
            
            
             
             
               O 
              
             
            
           
           
            
             
             
               O 
              
             
            
            
             
             
               O 
              
             
            
           
          
         
           ] 
          
         
        
       
         U=(U_r,U_{m-r}) \\ V=(V_r,V_{n-r}) \\ \Sigma=\begin{bmatrix}\Lambda_r&O\\O&O\end{bmatrix} 
        
       
     U=(Ur,Um−r)V=(Vr,Vn−r)Σ=[ΛrOOO]
 其中  
     
      
       
        
        
          U 
         
        
          r 
         
        
       
         = 
        
       
         ( 
        
        
        
          u 
         
        
          1 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          u 
         
        
          r 
         
        
       
         ) 
        
       
      
        U_r=(\mathbf u_1,\cdots,\mathbf u_r) 
       
      
    Ur=(u1,⋯,ur) 为  
     
      
       
       
         m 
        
       
         × 
        
       
         r 
        
       
      
        m\times r 
       
      
    m×r维矩阵,  
     
      
       
        
        
          V 
         
        
          r 
         
        
       
         = 
        
       
         ( 
        
        
        
          v 
         
        
          1 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          v 
         
        
          r 
         
        
       
         ) 
        
       
      
        V_r=(\mathbf v_1,\cdots,\mathbf v_r) 
       
      
    Vr=(v1,⋯,vr) 为  
     
      
       
       
         n 
        
       
         × 
        
       
         r 
        
       
      
        n\times r 
       
      
    n×r维矩阵, 
     
      
       
        
        
          Λ 
         
        
          r 
         
        
       
         = 
        
       
         diag 
        
       
         ( 
        
        
        
          σ 
         
        
          1 
         
        
       
         , 
        
       
         ⋯ 
         
       
         , 
        
        
        
          σ 
         
        
          r 
         
        
       
         ) 
        
       
      
        \Lambda_r=\text{diag}(\sigma_1,\cdots,\sigma_r) 
       
      
    Λr=diag(σ1,⋯,σr) 为  
     
      
       
       
         r 
        
       
      
        r 
       
      
    r 阶对角阵。应用矩阵乘法的性质,奇异值分解可以简化为
  
      
       
        
        
          A 
         
        
          = 
         
         
         
           U 
          
         
           r 
          
         
         
         
           Λ 
          
         
           r 
          
         
         
         
           V 
          
         
           r 
          
         
           T 
          
         
        
       
         A=U_r\Lambda_r V^T_r 
        
       
     A=UrΛrVrT
 这个分解称为简化奇异值分解。
性质:
- 奇异值分解可理解为将线性变换分解为三个简单的变换:正交变换 V T V^T VT,伸缩变换 Σ \Sigma Σ 和正交变换 U U U 。
- 矩阵 A A A 的奇异值分解中,奇异值是唯一的,但矩阵 U , V U,V U,V 不是唯一的。
- 令  
      
       
        
        
          λ 
         
        
       
         \lambda 
        
       
     λ 为 
      
       
        
         
         
           A 
          
         
           T 
          
         
        
          A 
         
        
       
         A^TA 
        
       
     ATA 的一个特征值, 
      
       
        
        
          v 
         
        
       
         \mathbf v 
        
       
     v 是对应的特征向量,则
 ∥ A v ∥ 2 = v T A T A v = λ v T v = λ ∥ v ∥ \|A\mathbf v\|^2=\mathbf v^TA^TA\mathbf v=\lambda\mathbf v^T\mathbf v=\lambda\|\mathbf v\| ∥Av∥2=vTATAv=λvTv=λ∥v∥
- 易知  
      
       
        
        
          A 
         
        
          V 
         
        
          = 
         
        
          U 
         
        
          Σ 
         
        
       
         AV=U\Sigma 
        
       
     AV=UΣ 或  
      
       
        
         
         
           A 
          
         
           T 
          
         
        
          U 
         
        
          = 
         
        
          V 
         
         
         
           Σ 
          
         
           T 
          
         
        
       
         A^TU=V\Sigma^T 
        
       
     ATU=VΣT,则左奇异向量和右奇异向量存在关系
 A v j = σ j u j A T u j = σ j v j A\mathbf v_j=\sigma_j\mathbf u_j \\ A^T\mathbf u_j=\sigma_j\mathbf v_j Avj=σjujATuj=σjvj
矩阵的外积展开式
矩阵  
     
      
       
       
         A 
        
       
         = 
        
       
         U 
        
       
         Σ 
        
        
        
          V 
         
        
          T 
         
        
       
      
        A=U\Sigma V^T 
       
      
    A=UΣVT 可展开为若干个秩为1的  
     
      
       
       
         m 
        
       
         × 
        
       
         n 
        
       
      
        m\times n 
       
      
    m×n矩阵之和
  
      
       
        
        
          A 
         
        
          = 
         
         
         
           σ 
          
         
           1 
          
         
         
         
           u 
          
         
           1 
          
         
         
         
           v 
          
         
           1 
          
         
           T 
          
         
        
          + 
         
         
         
           σ 
          
         
           2 
          
         
         
         
           u 
          
         
           2 
          
         
         
         
           v 
          
         
           2 
          
         
           T 
          
         
        
          + 
         
        
          ⋯ 
         
        
          + 
         
         
         
           σ 
          
         
           r 
          
         
         
         
           u 
          
         
           r 
          
         
         
         
           v 
          
         
           r 
          
         
           T 
          
         
        
       
         A=\sigma_1\mathbf u_1\mathbf v_1^T+\sigma_2\mathbf u_2\mathbf v_2^T+\cdots+\sigma_r\mathbf u_r\mathbf v_r^T 
        
       
     A=σ1u1v1T+σ2u2v2T+⋯+σrurvrT
上式称为矩阵 A A A 的外积展开式。
在长方形对角矩阵 Σ \Sigma Σ 中奇异值按从大到小的顺序排列 σ 1 ⩾ σ 2 ⩾ ⋯ ⩾ σ r > 0 \sigma_1\geqslant\sigma_2\geqslant\cdots\geqslant\sigma_r>0 σ1⩾σ2⩾⋯⩾σr>0 。在很多情况下,由于奇异值递减很快,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上。因此,我们可以用前面 k k k 个大的奇异值来近似描述矩阵。
奇异值分解也是一种矩阵近似的方法,这个近似是在矩阵范数意义下的近似。矩阵范数是向量范数的直接推广。
  
      
       
        
        
          ∥ 
         
        
          A 
         
         
         
           ∥ 
          
         
           2 
          
         
        
          = 
         
        
          ( 
         
         
         
           ∑ 
          
          
          
            j 
           
          
            = 
           
          
            1 
           
          
         
           n 
          
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           m 
          
         
        
          ∣ 
         
         
         
           a 
          
          
          
            i 
           
          
            j 
           
          
         
         
         
           ∣ 
          
         
           2 
          
         
         
         
           ) 
          
          
          
            1 
           
          
            / 
           
          
            2 
           
          
         
        
       
         \|A\|_2=(\sum_{j=1}^{n}\sum_{i=1}^{m} |a_{ij}|^2)^{1/2} 
        
       
     ∥A∥2=(j=1∑ni=1∑m∣aij∣2)1/2
 可以证明
  
      
       
        
        
          ∥ 
         
        
          A 
         
         
         
           ∥ 
          
         
           2 
          
         
           2 
          
         
        
          = 
         
        
          tr 
         
        
          ( 
         
         
         
           A 
          
         
           T 
          
         
        
          A 
         
        
          ) 
         
        
          = 
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           r 
          
         
         
         
           σ 
          
         
           i 
          
         
           2 
          
         
        
       
         \|A\|_2^2=\text{tr}(A^TA)= \sum_{i=1}^{r} \sigma_i^2 
        
       
     ∥A∥22=tr(ATA)=i=1∑rσi2
 设矩阵
  
      
       
        
         
         
           A 
          
         
           k 
          
         
        
          = 
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           k 
          
         
         
         
           σ 
          
         
           i 
          
         
         
         
           u 
          
         
           i 
          
         
         
         
           v 
          
         
           i 
          
         
           T 
          
         
        
       
         A_k=\sum_{i=1}^k\sigma_i\mathbf u_i\mathbf v_i^T 
        
       
     Ak=i=1∑kσiuiviT
 则  
     
      
       
        
        
          A 
         
        
          k 
         
        
       
      
        A_k 
       
      
    Ak 的秩为  
     
      
       
       
         k 
        
       
      
        k 
       
      
    k ,矩阵  
     
      
       
        
        
          A 
         
        
          k 
         
        
       
      
        A_k 
       
      
    Ak 称为  
     
      
       
       
         A 
        
       
      
        A 
       
      
    A 的截断奇异值分解。并且  
     
      
       
        
        
          A 
         
        
          k 
         
        
       
      
        A_k 
       
      
    Ak 是秩为  
     
      
       
       
         k 
        
       
      
        k 
       
      
    k 时的最优近似,即  
     
      
       
        
        
          A 
         
        
          k 
         
        
       
      
        A_k 
       
      
    Ak 为以下最优问题的解
  
      
       
        
        
          min 
         
        
           
         
        
          ∥ 
         
        
          A 
         
        
          − 
         
        
          X 
         
         
         
           ∥ 
          
         
           2 
          
         
         
        
          s.t. rank  
         
        
          A 
         
        
          = 
         
        
          k 
         
        
       
         \min\|A-X\|_2 \\ \text{s.t. rank }A=k 
        
       
     min∥A−X∥2s.t. rank A=k
 上式称为低秩近似(low-rank approximation)。于是奇异值分解可近似为
  
      
       
        
        
          A 
         
        
          ≈ 
         
         
         
           ∑ 
          
          
          
            i 
           
          
            = 
           
          
            1 
           
          
         
           k 
          
         
         
         
           σ 
          
         
           i 
          
         
         
         
           u 
          
         
           i 
          
         
         
         
           v 
          
         
           i 
          
         
           T 
          
         
        
          = 
         
         
         
           U 
          
          
          
            m 
           
          
            × 
           
          
            k 
           
          
         
         
         
           Σ 
          
          
          
            k 
           
          
            × 
           
          
            k 
           
          
         
         
         
           V 
          
          
          
            n 
           
          
            × 
           
          
            k 
           
          
         
           T 
          
         
        
       
         A\approx \sum_{i=1}^k\sigma_i\mathbf u_i\mathbf v_i^T=U_{m\times k}\Sigma_{k\times k}V_{n\times k}^T 
        
       
     A≈i=1∑kσiuiviT=Um×kΣk×kVn×kT
其中 k k k 是一个远远小于 m m m和 n n n的数,从计算机内存的角度来说,矩阵左(右)奇异向量和奇异值的存储要远远小于矩阵 A A A的。所以,截断奇异值分解就是在计算精度和时间空间之间做选择。如果 k k k越大,右边的三个矩阵相乘的结果越接近于 A A A。
截断奇异值分解常用于图像压缩,如下图




















