用numpy对角化矩阵
1、给出一个3*3的可逆矩阵:
import numpy as np
a=[[1,2,3],[0,2,1],[3,1,3]]
2、计算a的特征向量:
c=np.linalg.eig(a)
d=c[1]
3、假设d的逆矩阵是d',那么d'.a.d就是一个对角矩阵:
e=np.dot(np.dot(np.linalg.inv(d),a),d)
4、运行结果看起来不是对角矩阵,这是为何?
原来,这是精确度的问题。
如果矩阵中的每个数字都保留两位有效数字,对角矩阵就显出了原形。
e=np.around(e, decimals=2, out=None)
5、矩阵
a=[[1,2,3,3],[0,2,1,2],[3,1,3,1],[3,5,6,9]]
的对角化是:
[[12.56687 0. -0. -0. ]
[ 0. -0.82664 0. 0. ]
[-0. -0. 2.36388 -0. ]
[-0. 0. -0. 0.89589]]
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:88
阅读量:94
阅读量:93
阅读量:39
阅读量:22