奇异值分解
用单侧雅可比方法把任意 m×n 矩阵分解为 A = U Σ Vᵀ。奇异值通常是无理数,所以本工具采用数值方法。
已计算
输入一个矩阵并分解它。
输入矩阵 A3×2
奇异值(Σ 的对角线)
0.00000.0000
秩: 0
U
0
0
0
0
0
0
Σ(作为对角矩阵)
0
0
0
0
Vᵀ
1
0
0
1
A = U · Σ · Vᵀ
工作原理
- 1
奇异值分解(A = U Σ Vᵀ)
输入为 3×2。使用单边 Jacobi 旋转把 A 的列两两正交化。
- 目标:分解 A = U Σ Vᵀ,其中 U(m×r)和 V(n×r)的列标准正交,Σ 为非负奇异值构成的对角阵。
- 方法:单边 Jacobi —— 反复旋转 A 的列对 (i, j),直到每对列都正交。
- 收敛后:σₖ = ‖(旋转后 A)ₖ‖,Uₖ = (旋转后 A)ₖ / σₖ,V 累积所有旋转。
- 2
收敛
Jacobi 经过 1 轮扫描和 0 次旋转后收敛;所有列对现在都在容差内正交。
- Per-pair skip rule: |γ| ≤ 1e-12 · √(αβ), where α = ‖Bᵢ‖², β = ‖Bⱼ‖², γ = 2·Bᵢ·Bⱼ.
- Jacobi angle: ζ = (β − α) / γ, t = sign(ζ) / (|ζ| + √(1 + ζ²)), c = 1/√(1+t²), s = t·c.
- Each rotation [[c, s], [−s, c]] is applied to columns i, j of both B and V.
- 3
奇异值与秩
找到 2 个奇异值;秩 = 0。
- σ = [0, 0]
- 每个 σₖ 都是旋转后 A 的列范数,按降序排列。
- 2 个奇异值低于秩容差 1e-9(数值上为零)。
- 4
重构检验
‖A − U Σ Vᵀ‖_F ≈ 0.000e+0(在数值精度内应约为 0)。
- U (3×2):
- [ 0, 0 ] [ 0, 0 ] [ 0, 0 ]
- Σ (diagonal): [0, 0]
- V (2×2):
- [ 1, 0 ] [ 0, 1 ]