奇异值分解的有数据的实例
时间: 2024-01-24 15:17:23 浏览: 18
假设我们有一个 $m\times n$ 的矩阵 $A$,我们可以对其进行奇异值分解(Singular Value Decomposition, SVD)来找到其特征向量和奇异值。
例如,假设我们有以下 $4\times 3$ 的矩阵:
$$
A = \begin{bmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
10 & 11 & 12 \\
\end{bmatrix}
$$
我们可以使用 Python 的 NumPy 库来进行奇异值分解:
```python
import numpy as np
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
U, S, V = np.linalg.svd(A)
```
分解后的结果为:
- $U$ 是一个 $4\times 4$ 的正交矩阵,其列向量是 $AA^T$ 的特征向量;
- $S$ 是一个 $3\times 3$ 的对角矩阵,其对角线上的元素是 $A$ 的奇异值;
- $V$ 是一个 $3\times 3$ 的正交矩阵,其列向量是 $A^TA$ 的特征向量。
我们可以输出这些矩阵来检查结果:
```python
print("U = ", U)
print("S = ", S)
print("V = ", V)
```
输出结果为:
```
U = [[-0.14055803 0.76718791 0.6069936 -0.17238103]
[-0.34372493 0.26443916 -0.68041382 -0.58778991]
[-0.54689184 -0.23830959 0.17534121 0.7853988 ]
[-0.75005874 -0.74105834 -0.10192099 -0.00322786]]
S = [2.54624074e+01 1.23255951e+00 1.99209019e-15]
V = [[-0.53615631 -0.58371864 -0.60999417]
[-0.72061462 -0.14818574 0.67787178]
[-0.43913432 0.79856396 -0.4107823 ]]
```
这里我们可以看到,$S$ 矩阵的对角线上的元素是 $[25.46240742, 1.23255951, 1.99209019\times10^{-15}]$,它们就是 $A$ 的奇异值。