当前位置: 首页 > news >正文

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

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

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

1.1 分解形式

给定一个秩为 r r r的矩阵 A ∈ R m × n \mathbf{A} \in \mathbb{R}^{m \times n} ARm×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=VT
其中:
- U ∈ R m × m \mathbf{U} \in \mathbb{R}^{m \times m} URm×m(或 C m × m \mathbb{C}^{m \times m} Cm×m)是正交矩阵(酉矩阵),其列向量称为左奇异向量
- V ∈ R n × n \mathbf{V} \in \mathbb{R}^{n \times n} VRn×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 矩阵结构说明

  1. 矩阵 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的特征向量。
  2. 矩阵 Σ \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 &

相关文章:

  • Day19 -思维导图 -V2024小迪全栈
  • Uni-app入门到精通:uni-app的基础组件
  • Debian用二进制包安装mysql8.0.41 笔记250401
  • 链表基本操作
  • idea中的--、-D、-X的区别
  • Docker容器深度解析:从基础概念到企业级实践
  • LSTM网络是什么?
  • Suricata配置之YAML
  • Netty的心跳机制怎么实现的?
  • 【408--考研复习笔记】操作系统----知识点速览
  • 深入解析拓扑排序:算法与实现细节
  • EL表达式与JSTL标签库实战指南:从基础到OA系统改造
  • STL新增内容
  • flutter 曲线学习 使用第三方插件实现左右滑动
  • 厘米级定位赋能智造升级:品铂科技UWB技术驱动工厂全流程自动化与效能跃升”
  • Boost库中的谓词函数
  • 基于大模型的室间隔缺损手术全流程预测与方案研究报告
  • 蹊跷的崩溃:CoreData 数据保存时提示“不可接受类型”(Unacceptable type)
  • k8s常用总结
  • C++刷题(四):vector
  • 原核试验基地司令员范如玉逝世,从事核试验研究超40年
  • 上百家单位展示AI+教育的实践与成果,上海教育博览会开幕
  • 定制基因编辑疗法治愈罕见遗传病患儿
  • 北京警方:海淀发生小客车刮碰行人事故4人受伤,肇事司机已被查获
  • 申论|空间更新结合“青银共生”,助力青年发展型城区建设
  • 与总书记交流的上海人工智能实验室年轻人,在探索什么前沿领域?