我有一个数据集,包括到约1800个融合雷达触点的距离和方位,以及到这些触点的实际距离和方位,我需要开发一个校正方程,以使感知的值尽可能接近实际值。
在可视化时,错误似乎有一种趋势,所以在我看来,应该有一个稍微简单的等式来纠正它。
这是~1800方程式的形式:
actual_distance = perceived_distance + X(percieved_bearing) + Y(speed_over_ground) + Z(course_over_ground) +A(标题)
求解X、Y、Z和A的最佳方法是什么?
此外,我不相信所有这些因素都是必要的,所以我完全愿意省略其中的一两个因素。
从我所理解的小线性代数来看,我尝试过这样的事情,但没有成功:
Ax =b --> x= b/A通过numpy.linalg.solve(A,b)
其中A是4 x ~1800矩阵,b是1 x ~1800矩阵
这是在正确的轨道上吗?
为了清楚起见,我希望为一个方程生成系数,该方程将校正接触的感知距离,以便它尽可能接近接触的实际距离。
如果有更好的方法,我也完全愿意放弃这个方法。
提前感谢您的帮助。
发布于 2019-04-16 23:32:09
求解这种方程组的最好方法是使用不完全Cholesky共轭梯度技术(ICCG)。这可以用Matlab语言实现,也可以用C++、Nag Fortran或许多其他语言实现。这是非常高效的。基本上,你是在对一个大的带状矩阵求逆。Golub的书对此进行了详细的描述。
看起来这很有用:
https://docs.scipy.org/doc/numpy-1.14.1/reference/generated/numpy.linalg.cholesky.html
发布于 2019-04-17 03:50:38
当你有比未知数更多的方程时,你可能没有精确的解决方案。在这种情况下,你可以做的就是使用矩阵A的摩尔-彭罗斯伪逆,A乘以b将给出最小二乘距离解。在numpy中,您可以使用https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html#numpy.linalg.lstsq
https://stackoverflow.com/questions/55711567
复制相似问题