我实现了一个与稀疏矩阵求逆有关的算法。
代码:
kapa_t=phi_t*F_x'*(inv(inv(R_t)+F_x*phi_t*F_x'))*F_x*phi_t;
我在matlab中写下代码。它给了我一个警告矩阵接近单一或严重缩放。结果可能不准确。 RCOND = 4.419037e-18 ..但根据我的算法矩阵求逆是重要的部分。所以,我正在尝试搜索矩阵反演的一些有效方法。所以我发现这个链接how to compute inverse of a matrix accurately?
所以我改变了我的代码作为建议。
kapa_t=phi_t*F_x'*(inv(inv(R_t)+F_x*phi_t*F_x'))\F_x*phi_t;
之后我得到一个错误使用\ Matrix尺寸必须同意。
EKF_SLAM_known中的错误(第105行)kapa_t = phi_tF_x'(inv(inv(R_t)+ F_xphi_tF_x'))\ F_x * phi_t;
这里的行号:8的算法相当于代码kapa_t = phi_tF_x'(inv(inv(R_t)+ F_xphi_tF_x'))F_xphi_t;
我应该怎么做我的代码来摆脱这个警告。
kapa_t=phi_t*F_x'*(inv(inv(R_t)+F_x*phi_t*F_x'))\F_x*phi_t;
应该
kapa_t=phi_t*F_x'*((inv(R_t)+F_x*phi_t*F_x')\F_x)*phi_t;
当A \ B
是正方形时,inv(A) * B
算子大致相当于A
,因此你不需要外部的inv
。