用numpy对角化矩阵

时间:2026-02-14 09:04:17

1、给出一个3*3的可逆矩阵:

import numpy as np

a=[[1,2,3],[0,2,1],[3,1,3]]

用numpy对角化矩阵

2、计算a的特征向量:

c=np.linalg.eig(a)

d=c[1]

用numpy对角化矩阵

3、假设d的逆矩阵是d',那么d'.a.d就是一个对角矩阵:

e=np.dot(np.dot(np.linalg.inv(d),a),d)

用numpy对角化矩阵

4、运行结果看起来不是对角矩阵,这是为何?

原来,这是精确度的问题。

如果矩阵中的每个数字都保留两位有效数字,对角矩阵就显出了原形。

e=np.around(e, decimals=2, out=None)

用numpy对角化矩阵

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]]

用numpy对角化矩阵

© 2026 海能知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com