【C++游戏引擎开辟】《线性代数》(6):SVD(奇异值分解)的数学原理与实 ...

打印 上一主题 下一主题

主题 1527|帖子 1527|积分 4581

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、奇异值分解(SVD)的数学定义

奇异值分解​(Singular Value Decomposition,SVD)是一种将恣意实数或复数矩阵分解为三个特定矩阵乘积的方法。其数学定义如下:
1.1 分解情势

给定一个秩为 r r r的矩阵 A ∈ R m × n \mathbf{A} \in \mathbb{R}^{m \times n} A∈Rm×n(或 C m × n \mathbb{C}^{m \times n} Cm×n),其 SVD 分解为:
  A = U Σ V T \mathbf{A} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^T A=UΣVT
其中:
- U ∈ R m × m \mathbf{U} \in \mathbb{R}^{m \times m} U∈Rm×m(或 C m × m \mathbb{C}^{m \times m} Cm×m)是正交矩阵(酉矩阵),其列向量称为左奇异向量
- V ∈ R n × n \mathbf{V} \in \mathbb{R}^{n \times n} V∈Rn×n(或 C n × n \mathbb{C}^{n \times n} Cn×n)是正交矩阵(酉矩阵),其列向量称为右奇异向量
- Σ ∈ R m × n \mathbf{\Sigma} \in \mathbb{R}^{m \times n} Σ∈Rm×n(或 C m × n \mathbb{C}^{m \times n} Cm×n)是对角矩阵,其非对角线元素为 0,对角线元素 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r > 0 \sigma_1 \geq \sigma_2 \geq \dots \geq \sigma_r > 0 σ1​≥σ2​≥⋯≥σr​>0称为奇异值,别的元素为 0。
1.2 矩阵结构阐明


  • 矩阵 U \mathbf{U} U和 V \mathbf{V} V的性质
         
    • 正交性: U T U = I m \mathbf{U}^T \mathbf{U} = \mathbf{I}_m UTU=Im​, V T V = I n \mathbf{V}^T \mathbf{V} = \mathbf{I}_n VTV=In​。   
    • 列向量构成正交基:左奇异向量 { u 1 , … , u m } \{\mathbf{u}_1, \dots, \mathbf{u}_m\} {         u1​,…,um​}是 A A T \mathbf{A} \mathbf{A}^T AAT的特性向量,右奇异向量 { v 1 , … , v n } \{\mathbf{v}_1, \dots, \mathbf{v}_n\} {         v1​,…,vn​}是 A T A \mathbf{A}^T \mathbf{A} ATA的特性向量。  
      
  • 矩阵 Σ \mathbf{\Sigma} Σ的结构
      Σ = [ σ 1 0 ⋯ 0 0 ⋯ 0 0 σ 2 ⋯ 0 0 ⋯ 0 ⋮ ⋮ ⋱ ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ σ r 0 ⋯ 0 0 0 ⋯ 0 0 ⋯ 0 ⋮ ⋮ ⋱ ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 0 0 ⋯ 0 ] m × n \mathbf{\Sigma} = \begin{bmatrix} \sigma_1 & 0 & \cdots & 0 & 0 & \cdots & 0 \\ 0 & \sigma_2 & \cdots & 0 & 0 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sigma_r & 0 & \cdots & 0 \\ 0 & 0 & \cdots & 0 & 0 & \cdots &

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表