我想找到密集复矩阵的特征向量分解A
A = V.diag(lambda).V^-1
我只需要少量的特征向量来准确地再现矩阵以满足我的需要,但是我需要对特征值执行一些非平凡的过滤以确定要包含哪些特征向量。对于我的问题,使用奇异值分解是不合适的,因为特征值/特征向量是我想要处理的具有物理意义的结果。
我正在使用scipy.linalg.eig
,它只是 lapackZGEEV
例程的一个方便的包装器。在数学上,V^-1
应该可以从左特征向量的适当缩放版本中获得。我本来希望这比反转V
右特征向量矩阵更有效和更稳定
然而,当我比较这两种方法时,似乎在分解矩阵中同时使用左特征向量比使用反转右特征向量准确得多。大概这是某种舍入或截断错误。我不希望反转右特征向量的矩阵,因为它可能非常大(大约 1000 秒),我需要多次重复此操作。
scipy 中是否有一些可用的例程(或 lapack 或其他一些我可以自己包装的例程)可以有效且准确地进行分解?