【发布时间】:2021-01-29 16:19:39
【问题描述】:
我有一个矩阵A 如下:
A
Out[34]:
array([[1, 1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 1, 1],
[0, 0, 0, 0, 1, 1, 1, 1],
[0, 0, 0, 0, 1, 1, 1, 1],
[0, 0, 0, 0, 1, 1, 1, 1]])
我想找到特征值和特征向量。
考虑如下向量x:
x
Out[35]: array([4, 4, 4, 4, 0, 0, 0, 0])
这是一个特征向量,如下所示:
np.matmul(A, x) == 4 * x
Out[36]: array([ True, True, True, True, True, True, True, True])
(np.matmul(A, x) == 4 * x).all()
Out[37]: True
但是,当我使用np.linalg.eig 计算特征向量时,它不包括 x(或 x 的缩放向量)。
l, v = np.linalg.eig(A)
l
Out[40]: array([0., 4., 0., 0., 0., 4., 0., 0.])
v
Out[41]:
array([[-8.66025404e-01, 5.00000000e-01, -2.77555756e-17,
-2.77555756e-17, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00],
[ 2.88675135e-01, 5.00000000e-01, -5.77350269e-01,
-5.77350269e-01, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00],
[ 2.88675135e-01, 5.00000000e-01, 7.88675135e-01,
-2.11324865e-01, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00],
[ 2.88675135e-01, 5.00000000e-01, -2.11324865e-01,
7.88675135e-01, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, -8.66025404e-01, 5.00000000e-01,
-2.77555756e-17, -2.77555756e-17],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 2.88675135e-01, 5.00000000e-01,
-5.77350269e-01, -5.77350269e-01],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 2.88675135e-01, 5.00000000e-01,
7.88675135e-01, -2.11324865e-01],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 2.88675135e-01, 5.00000000e-01,
-2.11324865e-01, 7.88675135e-01]])
虽然包含了特征值4,但缺少了特征向量。我错过了什么吗?
【问题讨论】:
标签: numpy linear-algebra