我正在尝试运行标准卡尔曼滤波器算法来计算似然性,但在计算正常密度时,我不断得到非正定方差矩阵的问题。 我稍微研究了一下,发现实际上可能存在一些数值的不确定性;尝试了一些数值方法来避免非正定矩阵,使用choleski分解及其变体LDL'分解。 我正在使用MatLab。 有人有什么建议吗? 感谢。
答案 0 :(得分:2)
发布您的代码。
根据经验,如果模型不准确并且正则化(即模型噪声矩阵Q)不足够“大”,则将发生欠拟合,并且估计器的协方差矩阵将是病态的。尝试微调你的Q矩阵。
答案 1 :(得分:-1)
众所周知,使用约瑟夫形式实现的卡尔曼滤波器在数值上是不稳定的,因为曾经使用滤波器的单精度实现的任何旧计时器都能说明这一点。这个问题是在数百万年前发现的,并促使人们以稳定的方式实施过滤器的大量研究。可能最著名的实现是UD,其中协方差矩阵被分解为UDU',并且使用特殊公式对这两个因子进行更新和传播(请参阅Thoronton和Bierman)。 U是对角线矩阵,对角线矩阵的对角线为“ 1”,D为对角线矩阵。