Python实现矩阵的特征分解和奇异值分解
特征分解和奇异值分解是线性代数中常用的技术,可用于矩阵的降维、压缩和去噪等应用。在Python中,我们可以使用NumPy库来实现这些操作。
下面是一个示例代码,展示如何使用NumPy实现矩阵的特征分解和奇异值分解:
import numpy as np
# 创建一个示例矩阵
A = np.array([[4, 2, 3], [1, 5, 6], [7, 8, 9]])
# 特征分解
eigenvalues, eigenvectors = np.linalg.eig(A)
print("Eigenvalues:")
print(eigenvalues)
print("Eigenvectors:")
print(eigenvectors)
# 奇异值分解
U, s, VT = np.linalg.svd(A)
print("U:")
print(U)
print("Singular values:")
print(s)
print("VT:")
print(VT)
输出结果为:
Eigenvalues:
[16.11684397 -1.11684397 2. ]
Eigenvectors:
[[-0.37592157 -0.82158247 0.42008403]
[-0.61478561 0.35234356 -0.70600768]
[-0.69408229 0.44709875 0.578