Matlab如何对广义特征向量进行归一化?

3

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

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

我总是选择B作为对角线。我注意到v'Bv并不总是等于1。然而,当A是对称矩阵时,确实等于1。有人知道Matlab如何规范化广义特征向量的规则吗?我在文档中找不到。

2个回答

1
根据文档(我强调):
V的形式和规范取决于输入参数的组合: - [......] - eig(A,B)和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未被归一化。

1
它还说:“当您省略算法参数时,eig函数会根据A和B的属性选择算法。对于对称(Hermitian)的A和对称(Hermitian)正定的B,它使用'chol'算法。” 这解释了当A和B是对称的时,向量确实是B归一化的。 - Tony B

0
如果我理解正确,您正在寻找一种泛化向量的方法,然后给定一个向量,可以将其除以它的范数以获得一个次要向量,其范数为1
如果您正在寻找数学背景,则矩阵的特征值分解提供了良好的介绍。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接