Python 计算一个n×n矩阵的特征值、特征向量

可以使用 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]]

你可能感兴趣的:(1024程序员节)