numpy.linalg.eig总结

numpy.linalg.eig总结

问题缘由:帮同学解决一个问题,原本以为很简单,却因为基础不扎实意外的卡主了,看了好多技术博客,都没讲清楚甚至起了误导作用,直到看了官方文档才恍然大悟

numpy.linalg.eig
这是计算方阵的特征值和特征向量函数

参数:

一个:(…,M,M)数组
将为其计算特征值和右特征向量的矩阵


返回值:

w : (…,M)数组———特征值
特征值,每个特征值根据其多重性重复。特征值不一定是有序的。除非虚部为零,否则所得数组将为复杂类型,在这种情况下它将被强制转换为实型。当a为实数时,所得特征值将为实数(0虚部)或出现在共轭对中
v:(…,M,M)数组——–特征向量
归一化的(单位“长度”)特征向量,使得列v[:,i]是对应于特征值的特征向量w[i]。


代码示例:

1
2
3
4
5
6
import numpy as np
A = np.array([[0.465,0.32,0.233,0.523],[0.32,0.82,0.254,-0.07],[0.233,0.254,0.596,-0.382],[0.523,-0.07,-0.382,0.435]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))

result

1
2
3
4
5
6
7
8
9
10
11
12
打印A:
[[ 0.465 0.32 0.233 0.523]
[ 0.32 0.82 0.254 -0.07 ]
[ 0.233 0.254 0.596 -0.382]
[ 0.523 -0.07 -0.382 0.435]]
打印特征值a:
[-0.30599494 0.4110969 1.19902613 1.01187191]
打印特征向量b:
[[-0.62164476 0.37101483 -0.49092393 0.48466431]
[ 0.12648963 -0.67049098 -0.72839633 -0.06229771]
[ 0.40405689 0.63636272 -0.47694938 -0.45199537]
[ 0.65901153 0.08850048 -0.03085079 0.74627052]]
0%