如何解决特征值中排序的重要性
A = [
[ .1,.17,0],[.17,.1,[ 0,1.2,0.66],0.66,1.2],]
我可以找到无序特征值:
from numpy import linalg as LA
LA.eig(np.array(A))
输出:
(array([ 0.27,-0.07,1.86,0.54,0.,0. ]),array([[ 0.70710678,-0.70710678,0. ],[ 0.70710678,0.70710678,[ 0.,1.,1. ],0. ]]))
这些列表的顺序重要吗?只要将它们重新编入索引,顺序更改会导致我丢失有关系统的信息吗?
然后,我还天真地希望特征值的排序方式有点像 [ 0.27,0.54]
,反映矩阵中的两个中心列和行是如何用零填充的 - 这是不正确的吗?上面的例子中是否已经秘密地进行了重新排序?
解决方法
特征值的顺序是正确的。根据文档。 np.linalg.ein()
返回两个数组
A = [
[ .1,.17,0],[.17,.1,[ 0,1.2,0.66],0.66,1.2],]
A = np.array(A)
W,V = np.linalg.eig(A)
W
包含特征值,V
包含特征向量,使得 W[i]
是 V[:,i]
的特征值
观察到 V[:,i]
是一个特征向量而不是 V[i]
这意味着 V
包含列向量所以..
A @ V[:,i] == W[i] * V[:,i] # not V[i] @ A
在转换矩阵 A
中具有零列或行并不意味着 W
中的相应特征值将是或应该是 0
。 W
和 V
不遵循任何特定顺序,它们的顺序只有放在一起时才有意义。
0
中的最后两个 W
对其索引没有意义。只有当我们查看 V
中的相应向量时,它们才有意义。
V[:,-2:]
>>> [[0.,0.],[0.,[1.,1.],0.]]
V
中的最后两个向量是第三个和第四个单位基向量。有了这个,我们可以得出结论,变换矩阵 A
会将位于这些基向量范围内的任何向量减少为空向量。也就是按 0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。