匹配两个矩阵中相似的特征谱

问题描述

我有两个矩阵,其中一个矩阵的特征谱的一部分与另一个矩阵的特征谱非常相似,但我(目前)能够验证这一点的唯一方法是非常不优雅的。

我愿意接受任何解决方案,但为了在此展示我所寻求的示例,我发现使用 MATLAB 语法最简单:在第一个示例中,我将定义矩阵 AB,使得B 的两个特征值也在 A 中找到,B 的对应两个 特征向量 也是 A 具有相同特征值的特征向量,但是如果不取 B 的特征向量与 A 共享并“搜索”以查看这些相同的特征向量在 A 中是否具有相同的特征值,这并不明显。

以下是两个这样的矩阵 AB 的示例:

  A      = diag([1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1]);
  B      = diag([19.9385 7.6177 17.2969 9.6177 11.3208 -1 8.6792 1 11.3208 -1 8.6792 1 19.9385 7.6177 17.2969 9.6177]); 
  B(2,1) = 9.2832; B(4,3)=B(2,1); B(14,13)=-B(2,1); B(16,15)=-B(2,1); 
  B      = tril(B,-1)'+B; % Make it hermitian by mirroring the lower triangle into the upper triangle

通过运行命令 [eig(A)' ; eig(B)'] 我们看到 A 的两个特征值(它们都是 -1)与 B 的特征值({{ 1}} 在顶行,A 在底行):

B

具有特征值 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 8 8 9 9 10 10 11 11 17 17 20 20 A 的特征向量也与具有 -1 特征值的 B 的特征向量匹配,但是这些出现在特征向量矩阵 {{ -1 的 1}},它们出现在 VA 的特征向量矩阵 A 的第 4 列和第 6 列中:

enter image description here

是否有更优雅的方式来查看这一点,而无需使用蛮力搜索来查看公共特征值的特征向量是否共享?

这里是稍微复杂一点的例子,其中矩阵大小不一样,特征向量不再完全相同,但它们仍然是等价的({{ 3}}):

multiplying an eigenvector by a scalar results in a vector that is also an eigenvector,with the same eigenvalue

我已经做了很多寻找解决方案的工作,可以说我知道一些相关的工具,例如:

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)