【发布时间】:2015-05-13 09:42:11
【问题描述】:
我正在尝试在 opencv 中计算 4x4 矩阵的特征向量。
为此我首先根据这个公式计算特征值:
Det( A - lambda * identity matrix ) = 0
来自wiki on eigenvalues and eigenvectors。
解决这个问题后,它给了我 4 个看起来像这样的特征值:
0.37789 + 1.91687i
0.37789 - 1.91687i
0.412312 + 1.87453i
0.412312 - 1.87453i
从这 4 个特征值中,我取最高值,我想用这个公式:
( A - lambda * identity matrix ) v = 0
我尝试将原始矩阵 A 与 opencv 函数“eigen()”一起使用,但这并没有给我想要的结果。
我也尝试过使用 RREF(缩减行梯形),但是我不知道如何处理复杂的特征值。
所以我的问题是,你将如何计算这个特征向量?
我将我的数据插入wolframalpha 以查看我的结果应该是什么。
【问题讨论】:
-
“没有给我我正在寻找的结果”,这是什么意思?你得到什么结果?您是否尝试自己解方程,还是仅通过
eigen()? -
如果您只需要最高特征值及其对应的特征向量,则可以选择使用power iteration
-
@tobi303 eigen() 将始终返回:[-0.50, -0.50, -0.50, 0.50; 0.50、0.50、-0.50、0.50; -0.50、0.50、0.50、0.50; -0.50, 0.50, -0.50, -0.50] 只有 +/- 会有所不同。我将检查功率迭代,看看这是否是我正在寻找的
标签: c++ opencv complex-numbers eigenvector eigenvalue