Я реализую алгоритм, который связан с разреженной инверсией матрицы.
Код:
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. .Но согласно моему алгоритму инверсия матрицы является важной частью.Итак, я пытаюсь найти какой-нибудь эффективный способ инверсии матриц. Итак, я узнаю по этой ссылке , как точно вычислить инверсию матрицы?
Так что я изменил свой код в соответствии с рекомендациями.
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_t F_x ' (inv (inv (R_t) + F_x phi_t F_x')) \ F_x * phi_t;
Я использую алгоритм
Здесь строка № 8 алгоритма эквивалентна коду kapa_t = phi_t F_x ' (inv (inv (R_t) + F_x phi_t )F_x ')) F_x phi_t;
Что мне делать с моим кодом, чтобы избавиться от этого предупреждения.