我正在使用SciPy的linalg.qz
函数,使用两个输入矩阵A,B为病态广义特征值问题生成特征值。
该函数的SciPy documentation提供4个数量的解包:
AA, BB, Q, Z = linalg.qz(A,B)
AA和BB分别代表A和B的广义Schur形式。
Q和Z分别代表左和右Schur矢量。
在查看此函数的Matlab实现时,有两个额外的返回值V和W,其列是广义特征向量:
[AA,BB,Q,Z,V,W] = qz(A,B)
由于这两个返回不可能直接来自linalg.qz
函数,从左右Schur向量中提取广义特征向量的最有效方法是什么?
答案 0 :(得分:0)
答案就在qz算法的原始论文中。您想查看https://epubs.siam.org/doi/abs/10.1137/0710024?journalCode=sjnaam的第251页上的步骤5。 本文的旧版本中也提供了Fortran代码。