在处理稀疏矩阵时,matlab中的矩阵求逆是困难的

问题描述 投票:1回答:1

我实现了一个与稀疏矩阵求逆有关的算法。

代码:

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;

我使用的算法是enter image description here

这里的行号:8的算法相当于代码kapa_t = phi_tF_x'(inv(inv(R_t)+ F_xphi_tF_x'))F_xphi_t;

我应该怎么做我的代码来摆脱这个警告。

matlab sparse-matrix matrix-inverse
1个回答
2
投票
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

© www.soinside.com 2019 - 2024. All rights reserved.