特征向量的排序以最大化对角化矩阵的轨迹

计算科学 线性代数 优化
2021-12-19 19:36:54

我在这里的数学堆栈交换上问了一个类似的问题,但没有取得多大成功,所以我想我会在这里更实际地问这个问题。

假设我们有一个 Hermitian 矩阵H(目前)具有不同的特征值。{u1,u2,,un}是一个标准正交特征基。我知道的大多数线性代数包都会对这些向量进行排序,以便相应的特征值按升序排列。但是,相反,我希望对它们进行排序,以使对角矩阵的迹线最大化;即我想找到.UmaxσS(n)j|uσ(j)j|

有什么办法可以避免简单地彻底搜索空间?可能在特殊情况下或找到一个近似的解决方案?例如,如果H接近对角线,则期望U接近恒等式,因此每个uj在不同索引处都有唯一的最大值;然后可以分别找到每个特征向量的最大值的位置并适当地排序,但是一旦特征向量没有唯一的最大值或两个特征向量的最大值在相同的索引处,这就会失效。

1个回答

您想要对矩阵重新排序的方式是分配问题的一种特殊情况,它可以通过标准算法(例如在标准库中实现的匈牙利算法(例如scipy))来解决。请注意,它的时间复杂度为,因此它不适用于大型矩阵。UO(n3)

在分配问题中,给定一个成本矩阵,并要求找到一个映射(在你的情况下,矩阵是正方形,所以它是一个排列),它使 所以你的问题等价于这个,取成本矩阵为(转置,因为您正在重新排序矩阵行而不是列)。Cσ

iCi,σ(i).
C=|U|