我有维矩阵取决于向量参数。
现在,特征值例程以没有特定顺序返回特征值(它们通常是排序的),但我想将特征值跟踪为的平滑函数。因为特征值不是以任何特定顺序返回的,所以仅针对某个特定索引将返回一组不平滑的线,如下图所示
我追踪连续线的想法是使用特征向量。即,对于两个接近点和特征向量应该近似正交使得其中和是一些排列。然后我会使用给定的排列来重新排序特征值,从而跟踪平滑线。
换句话说,我会追踪特征向量的连续性。
但是,我在数值例程中遇到了一些问题。在我使用的给定点的小子集上,附近点的少数特征向量几乎不是正交的。我的第一个怀疑是那些特征向量对应于一个退化的特征值,但这并不总是正确的。
减小到非常小,这也适用。
这样的事情是否允许发生。或者,是否可以保证数值例程返回连续的特征向量?我使用的例程是 numpy.linalg.eigh,它是来自 LAPACK 的 zheevd 的接口。
(你们当中的物理学家会认识到我在谈论能带结构)