操作方法
构造一个对角矩阵,使得对角元素是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) 多运行几次,发现特征向量并不一定是单位向量。