我知道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归一化广义特征向量的方式的规则吗?我在文档中找不到。
答案 0 :(得分:1)
根据the documentation(强调我):
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'
算法用于对称(埃尔米特)A
和对称(埃尔米特)正定B
时,它将对{{ 1}},因此每个V
的范数均为1 。
这意味着,除非您使用B
算法,否则'chol'
不会被标准化。
答案 1 :(得分:0)
如果我正确地理解了您,您正在寻找一种推广向量的方法,然后给定向量,您可以将其除以其范数以获得范数为1的第二向量。
如果您正在寻找数学背景,那么Eigendecomposition of a matrix会提供很好的介绍。