【发布时间】:2014-04-09 15:42:41
【问题描述】:
我在 c++ 中使用 opencv 库进行矩阵求逆。我使用带有 DECOMP_SVD 标志的函数 invert 。对于非奇异矩阵,它使用 SVD 方法计算。
但是,当我将奇异矩阵(行列式 = 0)与 Matlab 中的输出进行比较以进行相同的求逆时,它给了我一个不正确的答案。
答案相差 1e+4!
我在matlab中使用的方法是pinv()和svd()。 pinv() 使用 moore-Penrose 方法。 需要帮忙 提前致谢!
例子:
original =
0.2667 0.0667 -1.3333 2.2222
0.0667 0.0667 -0.0000 0.8889
-1.3333 -0.0000 8.8889 -8.8889
2.2222 0.8889 -8.8889 20.7408
Inverse from matlab =
1.0e+04 *
9.8888 -0.0000 0.7417 -0.7417
-0.0000 9.8888 -0.7417 -0.7417
0.7417 -0.7417 0.1113 0.0000
-0.7417 -0.7417 0.0000 0.1113
【问题讨论】:
标签: c++ matlab opencv matrix matrix-inverse