如何解决Numpy特征向量约定发生奇怪的变化
好的,所以我有两个非常非常相似的36x36矩阵,我需要计算第18个特征向量。当然,对于这样的大矩阵和高特征向量,特征向量约定可能是任意的,但前提是特征值是非简并的,它们只应在一个相位上是唯一的,对吧?嗯,这里不是这样。
第一矩阵:https://shrib.com/?v=nc#Pronghorn5ke1Wa6
第二矩阵:https://shrib.com/?v=nc#KirkSDikDik7rMXOA9
为了展示距离有多近,
LA.norm(first-second)
给出1.615464552286151e-11。
此外,每个第18个特征向量之间的相位偏移
eigvec1 = LA.eigh(first)[1][:,18]
eigvec2 = LA.eigh(second)[1][:,18]
eigvec1/eigvec2
给予
[-0.09638687-0.j,-0.95358982-0.3011087j,0.59816461-0.06896481j,-0.04320863-0.02599621j,0.42297316+0.41475341j,-0.0985544 -0.00545411j,1.2554442 +0.67027035j,-0.8480686 -0.32419582j,0.63874412+0.28189543j]
正如我所说,通常似乎存在相位偏移,但某些特定点却完全不同,我不确定为什么。我确实需要计算矩阵特征向量的导数,但是如果符号约定以这种怪异的方式更改,则符号约定在这里是一个实际的问题。我可以校正一个恒定的相位,但是我什至不确定它在做什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。