微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

特征值中排序的重要性

如何解决特征值中排序的重要性

我有一个矩阵,我想找到以下特征值:

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 中的相应特征值将是或应该是 0WV 不遵循任何特定顺序,它们的顺序只有放在一起时才有意义。

0 中的最后两个 W 对其索引没有意义。只有当我们查看 V 中的相应向量时,它们才有意义。

V[:,-2:]

>>> [[0.,0.],[0.,[1.,1.],0.]]

V 中的最后两个向量是第三个和第四个单位基向量。有了这个,我们可以得出结论,变换矩阵 A 会将位于这些基向量范围内的任何向量减少为空向量。也就是按 0

缩放

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。