矩阵的奇异值(Singular Values)

矩阵的奇异值(Singular Values)是奇异值分解(SVD)过程中得到的一组重要特征值。它们在许多应用中非常重要,如信号处理、数据压缩和统计学等。以下是对奇异值及其计算和性质的详细解释:

奇异值分解(SVD)

奇异值分解是矩阵分解的一种方法,它将任意一个实数或复数矩阵分解为三个特定矩阵的乘积。具体来说,对于一个 m × n m \times n m×n的矩阵 M \mathbf{M} M,其奇异值分解表示为:

M = U Σ V ⊤ \mathbf{M} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^\top M=UΣV⊤

其中:

  • U \mathbf{U} U是一个 m × m m \times m m×m的正交矩阵,包含了矩阵 M \mathbf{M} M的左奇异向量。
  • Σ \mathbf{\Sigma} Σ是一个 m × n m \times n m×n的对角矩阵,对角线上是矩阵 M \mathbf{M} M的奇异值,其余元素为零。
  • V ⊤ \mathbf{V}^\top V⊤是一个 n × n n \times n n×n的正交矩阵,包含了矩阵 M \mathbf{M} M的右奇异向量。

奇异值的计算

奇异值 σ i \sigma_i σi是矩阵 M \mathbf{M} M的奇异值分解中对角矩阵 Σ \mathbf{\Sigma} Σ的非负对角元素。它们是 M M ⊤ \mathbf{M} \mathbf{M}^\top MM⊤和 M ⊤ M \mathbf{M}^\top \mathbf{M} M⊤M的非负特征值的平方根。具体来说,如果 M \mathbf{M} M的奇异值为 σ i \sigma_i σi,那么 σ i \sigma_i σi满足以下条件:

M M ⊤ u i = σ i 2 u i \mathbf{M} \mathbf{M}^\top \mathbf{u}_i = \sigma_i^2 \mathbf{u}_i MM⊤ui=σi2ui
M ⊤ M v i = σ i 2 v i \mathbf{M}^\top \mathbf{M} \mathbf{v}_i = \sigma_i^2 \mathbf{v}_i M⊤Mvi=σi2vi

其中, u i \mathbf{u}_i ui和 v i \mathbf{v}_i vi分别是 M M ⊤ \mathbf{M} \mathbf{M}^\top MM⊤和 M ⊤ M \mathbf{M}^\top \mathbf{M} M⊤M的特征向量。

奇异值的性质

  1. 非负性 :奇异值总是非负的,即 σ i ≥ 0 \sigma_i \geq 0 σi≥0。
  2. 排列顺序 :奇异值通常按降序排列,即 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ min ⁡ ( m , n ) \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_{\min(m,n)} σ1≥σ2≥⋯≥σmin(m,n)。
  3. 数量 :一个 m × n m \times n m×n矩阵最多有 min ⁡ ( m , n ) \min(m, n) min(m,n)个奇异值。
  4. 对称性:奇异值是对称矩阵的特征值的绝对值。

奇异值的应用

奇异值在许多领域都有广泛应用,包括但不限于:

  • 矩阵近似:通过截断较小的奇异值,可以得到矩阵的低秩近似,用于数据压缩和降维。
  • 数据压缩:在图像处理和压缩中,保留较大的奇异值可以有效减少数据存储量,同时保持较高的数据质量。
  • 信号处理:奇异值分解用于去噪和信号恢复。
  • 统计学:在主成分分析(PCA)中,奇异值用于确定数据的主成分方向和方差。

通过以上解释,希望能帮助你更好地理解奇异值及其在矩阵分析中的重要性。

好的,让我们通过一个具体的例子来说明奇异值的计算过程。

示例矩阵

考虑一个 2 × 2 2 \times 2 2×2的矩阵 A \mathbf{A} A:

A = ( 3 1 1 3 ) \mathbf{A} = \begin{pmatrix} 3 & 1 \\ 1 & 3 \end{pmatrix} A=(3113)

计算奇异值

  1. 计算 A ⊤ A \mathbf{A}^\top \mathbf{A} A⊤A和 A A ⊤ \mathbf{A} \mathbf{A}^\top AA⊤

首先,计算 A ⊤ A \mathbf{A}^\top \mathbf{A} A⊤A和 A A ⊤ \mathbf{A} \mathbf{A}^\top AA⊤:

A ⊤ A = ( 3 1 1 3 ) ⊤ ( 3 1 1 3 ) = ( 10 6 6 10 ) \mathbf{A}^\top \mathbf{A} = \begin{pmatrix} 3 & 1 \\ 1 & 3 \end{pmatrix}^\top \begin{pmatrix} 3 & 1 \\ 1 & 3 \end{pmatrix} = \begin{pmatrix} 10 & 6 \\ 6 & 10 \end{pmatrix} A⊤A=(3113)⊤(3113)=(106610)

A A ⊤ = ( 3 1 1 3 ) ( 3 1 1 3 ) ⊤ = ( 10 6 6 10 ) \mathbf{A} \mathbf{A}^\top = \begin{pmatrix} 3 & 1 \\ 1 & 3 \end{pmatrix} \begin{pmatrix} 3 & 1 \\ 1 & 3 \end{pmatrix}^\top = \begin{pmatrix} 10 & 6 \\ 6 & 10 \end{pmatrix} AA⊤=(3113)(3113)⊤=(106610)

注意到这两个矩阵是相同的。

  1. 求解 A ⊤ A \mathbf{A}^\top \mathbf{A} A⊤A的特征值

接下来,求解 A ⊤ A \mathbf{A}^\top \mathbf{A} A⊤A的特征值。设 A ⊤ A \mathbf{A}^\top \mathbf{A} A⊤A的特征值为 λ \lambda λ,我们需要解特征方程:

det ⁡ ( A ⊤ A − λ I ) = 0 \det(\mathbf{A}^\top \mathbf{A} - \lambda \mathbf{I}) = 0 det(A⊤A−λI)=0

即:

det ⁡ ( 10 − λ 6 6 10 − λ ) = 0 \det\begin{pmatrix} 10 - \lambda & 6 \\ 6 & 10 - \lambda \end{pmatrix} = 0 det(10−λ6610−λ)=0

计算行列式:

( 10 − λ ) 2 − 36 = 0 (10 - \lambda)^2 - 36 = 0 (10−λ)2−36=0

解这个二次方程:

λ 2 − 20 λ + 64 = 0 \lambda^2 - 20\lambda + 64 = 0 λ2−20λ+64=0

求解得到特征值:

λ = 16 和 λ = 4 \lambda = 16 \quad \text{和} \quad \lambda = 4 λ=16和λ=4

  1. 计算奇异值

奇异值是 A \mathbf{A} A的特征值的平方根。因此:

σ 1 = 16 = 4 \sigma_1 = \sqrt{16} = 4 σ1=16 =4

σ 2 = 4 = 2 \sigma_2 = \sqrt{4} = 2 σ2=4 =2

因此,矩阵 A \mathbf{A} A的奇异值为 σ 1 = 4 \sigma_1 = 4 σ1=4和 σ 2 = 2 \sigma_2 = 2 σ2=2。

奇异值分解

我们可以进一步进行奇异值分解(SVD),将矩阵 A \mathbf{A} A分解为:

A = U Σ V ⊤ \mathbf{A} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^\top A=UΣV⊤

其中:

  • U \mathbf{U} U和 V \mathbf{V} V是正交矩阵(包含左奇异向量和右奇异向量)。
  • Σ \mathbf{\Sigma} Σ是对角矩阵,包含奇异值。

对于本例中的矩阵 A \mathbf{A} A:

Σ = ( 4 0 0 2 ) \mathbf{\Sigma} = \begin{pmatrix} 4 & 0 \\ 0 & 2 \end{pmatrix} Σ=(4002)

计算 U \mathbf{U} U和 V \mathbf{V} V

左奇异向量 U \mathbf{U} U和右奇异向量 V \mathbf{V} V是通过求解以下方程得到的:

A A ⊤ u i = σ i 2 u i \mathbf{A} \mathbf{A}^\top \mathbf{u}_i = \sigma_i^2 \mathbf{u}_i AA⊤ui=σi2ui

A ⊤ A v i = σ i 2 v i \mathbf{A}^\top \mathbf{A} \mathbf{v}_i = \sigma_i^2 \mathbf{v}_i A⊤Avi=σi2vi

我们已知:

A A ⊤ = A ⊤ A = ( 10 6 6 10 ) \mathbf{A} \mathbf{A}^\top = \mathbf{A}^\top \mathbf{A} = \begin{pmatrix} 10 & 6 \\ 6 & 10 \end{pmatrix} AA⊤=A⊤A=(106610)

求解这两个矩阵的特征向量即可得到 U \mathbf{U} U和 V \mathbf{V} V。

通过计算,得到:

u 1 = v 1 = ( 1 2 1 2 ) , u 2 = v 2 = ( − 1 2 1 2 ) \mathbf{u}_1 = \mathbf{v}_1 = \begin{pmatrix} \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{pmatrix}, \quad \mathbf{u}_2 = \mathbf{v}_2 = \begin{pmatrix} -\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{pmatrix} u1=v1=(2 12 1),u2=v2=(−2 12 1)

因此:

U = V = ( 1 2 − 1 2 1 2 1 2 ) \mathbf{U} = \mathbf{V} = \begin{pmatrix} \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{pmatrix} U=V=(2 12 1−2 12 1)

综上,矩阵 A \mathbf{A} A的奇异值分解为:

A = U Σ V ⊤ = ( 1 2 − 1 2 1 2 1 2 ) ( 4 0 0 2 ) ( 1 2 1 2 − 1 2 1 2 ) \mathbf{A} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^\top = \begin{pmatrix} \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} 4 & 0 \\ 0 & 2 \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{pmatrix} A=UΣV⊤=(2 12 1−2 12 1)(4002)(2 1−2 12 12 1)

这就是矩阵 A \mathbf{A} A的奇异值计算和奇异值分解的完整过程。

相关推荐
机跃3 分钟前
递归算法常见问题(Java)
java·开发语言·算法
<但凡.15 分钟前
题海拾贝:蓝桥杯 2020 省AB 乘法表
c++·算法·蓝桥杯
pzx_00136 分钟前
【LeetCode】94.二叉树的中序遍历
算法·leetcode·职场和发展
DogDaoDao39 分钟前
leetcode 面试经典 150 题:矩阵置零
数据结构·c++·leetcode·面试·矩阵·二维数组·矩阵置零
我曾经是个程序员41 分钟前
使用C#生成一张1G大小的空白图片
java·算法·c#
芒果de香蕉皮1 小时前
mavlink移植到单片机stm32f103c8t6,实现接收和发送数据
stm32·单片机·嵌入式硬件·算法·无人机
徐子童1 小时前
二分查找算法专题
数据结构·算法
小王子10241 小时前
数据结构与算法Python版 二叉查找树
数据结构·python·算法·二叉查找树
灰勒塔德2 小时前
Linux-----进程处理(文件IO资源使用)
linux·运维·算法
xiaoshiguang32 小时前
LeetCode:404.左叶子之和
java·算法·leetcode