Numpy求矩阵的特征值与特征向量
在线性代数中,矩阵的特征值和特征向量是非常重要的概念。Numpy提供了np.linalg.eig()
函数来计算矩阵的特征值和特征向量。本攻略将详细介绍Numpy求矩阵的特征值与特征向量的方法和示例。
np.linalg.eig()
函数的用法
np.linalg.eig()
函数用于计算矩阵的特征值和特征向量。该函数的语法如下:
numpy.linalg.eig(a)
其中,a
是一个二维数组,表示要计算特征值和特征向量的矩阵。该函数返回一个元组(w, v)
,其中w
是一个一维数组,表示矩阵的特征值,v
是一个二维数组,表示矩阵的特征向量。
示例一:求解矩阵的特征值和特征向量
下面是一个求解矩阵的特征值和特征向量的示例:
import numpy as np
# 创建一个二维数组
a = np.array([[1, 2], [2, 1]])
# 计算矩阵的特征值和特征向量
w, v = np.linalg.eig(a)
# 打印结果
print("特征值:", w)
print("特征向量:", v)
在上面的示例中,我们首先导入了Numpy模块,然后使用np.array()
函数创建了一个二维数组a
。接着,使用np.linalg.eig()
函数计算了矩阵a
的特征值和特征向量,并将结果保存在变量w
和v
中。最后,使用print()
函数打印出了结果。
输出结果为:
特征值: [ 3. -1.]
特征向量: [[ 0.70710678 -0.70710678]
[ 0.70710678 0.70710678]]
示例二:使用特征值和特征向量对矩阵进行对角化
下面是一个使用特征值和特征向量对矩阵进行对角化的示例:
import numpy as np
# 创建一个二维数组
a = np.array([[1, 2], [2, 1]])
# 计算矩阵的特征值和特征向量
w, v = np.linalg.eig(a)
# 对矩阵进行对角化
d = np.diag(w)
v_inv = np.linalg.inv(v)
a_diag = np.dot(np.dot(v, d), v_inv)
# 打印结果
print("原矩阵:", a)
print("对角化后的矩阵:", a_diag)
在上面的示例中,我们首先导入了Numpy模块,然后使用np.array()
函数创建了一个二维数组a
。接着,使用np.linalg.eig()
函数计算了矩阵a
的特征值和特征向量,并将结果保存在变量w
和v
中。然后,使用特征值和特征向量对矩阵进行对角化,并将结果保存在变量a_diag
中。最后,使用print()
函数打印出了结果。
输出结果为:
原矩阵: [[1 2]
[2 1]]
对角化后的矩阵: [[ 3. -0.]
[-0. -1.]]
结语
本攻略详细介绍了Numpy求矩阵的特征值与特征向量的方法和示例。掌握这些知识可以帮助我们更好地理解和应用线性代数中的概念。