首页 > 解决方案 > Matlab如何对广义特征向量进行归一化?

问题描述

我知道由 eig(A) 产生的特征向量具有 2-范数 1。但是在广义特征值问题 eig(A,B) 中产生的向量呢?一个自然的猜想是这样的向量v应该满足v' B v=1。当 B 是单位矩阵时,v' B v 正好是 2 范数的平方。我对各种矩阵 A 和 B 进行了以下测试:

[p,d]=eig(A,B);
v=p(:,1);
v'*B*v

我总是选择 B 为对角线。我注意到 v' B v 并不总是 1。但是,当 A 是对称的时,它确实是 1。有谁知道 Matlab 对广义特征向量进行归一化的方式的规则?我在文档中找不到它。

标签: matlab

解决方案


根据文档(强调我的):

V 的形式和规范化取决于输入参数的组合:

  • [...]

  • [V,D] = eig(A,B)并作为矩阵[V,D] = eig(A,B,algorithm)返回V,其列是满足 的广义右特征向量A*V = B*V*D每个特征向量的 2 范数不一定是 1。在这种情况下,包含沿主对角线D的对 ( A, ) 的广义特征值。B

    eig使用'chol'具有对称(Hermitian)A和对称(Hermitian)正定的算法时B,它将特征向量归一化,V使得B每个的-范数为 1

这意味着,除非您使用'chol'算法,否则V不会进行标准化。


推荐阅读