怎么用numpy计算矩阵的特征值和特征向量?
1、构造一个对角矩阵,使得对角元素是1,2,3,4,5,6,7,8,9。
a = np.diag((1,2,3,4,5,6,7,8,9))

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

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

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

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

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

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

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

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:20
阅读量:179
阅读量:192
阅读量:137
阅读量:78