怎么用numpy计算矩阵的特征值和特征向量?

作者:清风拂面 | 创建时间: 2023-07-11
本文介绍用numpy来计算矩阵的特征值和特征向量的方法。...
怎么用numpy计算矩阵的特征值和特征向量?

操作方法

构造一个对角矩阵,使得对角元素是1,2,3,4,5,6,7,8,9。 a = np.diag((1,2,3,4,5,6,7,8,9))

计算这个矩阵的特征值和特征向量: b = np.linalg.eig(a)

其中,b[0]代表特征值。 对角矩阵的特征值,恰好是对角线上的元素。

而b[1]则是对应的九个特征向量,而且都已经变成了单位向量。 这九个单位向量组成了一个九阶的方形矩阵。

只有方形矩阵,才有可能计算出特征值和特征向量。 a = np.array([[1,2,3],[2,3,4]]) a不是方形矩阵,所以要求特征值的时候,会报错。

给出一个3*3的随机矩阵: a = np.random.random((3,3))

计算这个随机矩阵的行列式: b=np.linalg.det(a) 只要这个矩阵的行列式不等于0,就可以求特征值和特征向量。

特征值: c = np.linalg.eig(a) c[0] 特征向量: c[1]

看看这些特征向量是不是单位向量: import numpy as np a = np.random.random((3,3)) b = np.linalg.eig(a) c = b[1][1] #计算向量的点积 d = np.vdot(c,c) 多运行几次,发现特征向量并不一定是单位向量。

温馨提示

矩阵越大,特征向量的计算越耗费时间。
点击展开全文

更多推荐