python3与线性代数 特征值 特征向量 相似对角化

特征值与特征向量

特征值的英文是 eigenvalue 特征向量的英文是 eigenvector。

没错,eigen就是特征的前缀。

什么是特征值和特征向量呢?

设 A 是n阶方阵,如果存在数m和非零n维列向量 x,使得 Ax=mx 成立,则称 m 是矩阵A的一个特征值(characteristic value)或本征值(eigenvalue)。非零n维列向量x称为矩阵A的属于(对应于)特征值m的特征向量或本征向量,简称A的特征向量或A的本征向量。

如何用python求特征值和特征向量

在numpy中已经有了现成的方法。就是使用np.linalg.eig函数。

python3与线性代数 特征值 特征向量 相似对角化

eig函数,返回两个值,第一个是特征值,多重的特征值会返回多次。第二个是特征向量,而且返回的是已经单位化了的特征向量。也就是每个向量的范数为1。

相似对角化

令A为n×n矩阵,其特征值为x1,x2...xn,特征向量为v1,v2...vn ,形成线性无关集合,以每个特征向量为列构成矩阵X,则矩阵X可以将矩阵A对角化,乘积矩阵X.T*A*X的主对角元素是矩阵A的特征值v1,v2...vn。

据此我们可以通过简单的程序将矩阵对角化。

python3与线性代数 特征值 特征向量 相似对角化

其中用到了我们之前写过的程序:


我们来看一下结果:

python3与线性代数 特征值 特征向量 相似对角化


分享到:


相關文章: