可以使用 NumPy 库来计算一个 n×n 矩阵的特征值、特征向量。
首先,导入 NumPy 库:
import numpy as np
然后,构造一个 n×n 矩阵,假设该矩阵为 A:
n = 3
A = np.array([
[0, 1, 0, 0],
[0, 0, 0, 1],
[1, 0, 0, 0],
[0, 0, 1, 0]
])
可以使用 numpy.linalg.eig()
函数来计算 A 的特征值和特征向量:
eigen_values, eigen_vectors = np.linalg.eig(A)
其中,eigen_values
是一个包含 A 的特征值的一维数组,eigen_vectors
是一个包含 A 的特征向量的矩阵,其中每一列是一个特征向量。
完整代码如下:
import numpy as np
n = 3
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
eigen_values, eigen_vectors = np.linalg.eig(A)
print("特征值:", eigen_values)
print("特征向量:", eigen_vectors)
运行结果:
特征值: [-1.00000000e+00+0.j 8.32667268e-17+1.j 8.32667268e-17-1.j
1.00000000e+00+0.j]
特征向量: [[-5.00000000e-01+0.00000000e+00j 2.85804968e-18-5.00000000e-01j
2.85804968e-18+5.00000000e-01j -5.00000000e-01+0.00000000e+00j]
[ 5.00000000e-01+0.00000000e+00j 5.00000000e-01+0.00000000e+00j
5.00000000e-01-0.00000000e+00j -5.00000000e-01+0.00000000e+00j]
[ 5.00000000e-01+0.00000000e+00j -5.00000000e-01+1.34144886e-16j
-5.00000000e-01-1.34144886e-16j -5.00000000e-01+0.00000000e+00j]
[-5.00000000e-01+0.00000000e+00j -2.63941871e-16+5.00000000e-01j
-2.63941871e-16-5.00000000e-01j -5.00000000e-01+0.00000000e+00j]]