matlab - 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 对广义特征向量进行归一化的方式的规则?我在文档中找不到它。
解决方案
根据文档(强调我的):
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
不会进行标准化。
推荐阅读
- character-encoding - Charset UTF-8 和 CodePage 65001 在 ASP Classic 中返回不正确
- automation - 制作在程序中执行特定命令的热键(自动热键)
- maven - 对于不同的运行/调试配置,IDEA 控制台输出会转到同一个文件吗?
- css - 如何拥有多个带有活动切换按钮的按钮组
- python - 深绑定与浅绑定
- reactjs - 如何使用 react-day-picker 发布正确的工作日
- javascript - 如何根据项目数、每页项目数和页码获取正确的项目?
- google-sheets - 每天都有订单的最佳方式
- javascript - 我可以在 for 循环中滚动回元素的顶部吗?
- python - 从类的 __init__ 方法修改或定义全局变量而不使用 global 关键字