为了账号安全,请及时绑定邮箱和手机立即绑定

求解具有 4 个未知数的大型方程组

求解具有 4 个未知数的大型方程组

有只小跳蛙 2022-01-11 19:49:12
我有一个数据集,其中包括与约 1800 个融合雷达触点的距离和方位以及与这些触点的实际距离和方位,我需要开发一个校正方程以使感知值尽可能接近实际值.可视化时错误似乎有一个趋势,所以在我看来应该有一个稍微简单的方程来纠正它。这是 ~1800 方程的形式:实际距离 = 感知距离 + X(感知轴承)+ Y(速度超地)+ Z(航道超地)+ A(航向)求解 X、Y、Z 和 A 的最佳方法是什么?另外,我不相信所有这些因素都是必要的,所以我完全愿意省略一两个因素。从我理解的小线性代数来看,我尝试过这样的事情,但没有运气:Ax = b --> x = b/A 通过 numpy.linalg.solve(A, b)其中 A 是 4 x ~1800 矩阵,b 是 1 x ~1800 矩阵这是在正确的轨道上吗?需要明确的是,我期望为一个方程生成系数,该方程将校正感知到的接触距离,使其尽可能接近实际接触距离。如果有更好的方法,我也完全愿意放弃这种方法。提前感谢您的帮助。
查看完整描述

2 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

求解此类方程组的最佳方法是使用:不完全 Cholesky 共轭梯度技术 (ICCG)。这可以在 Matlab、C++ 中的数值配方、Nag Fortran 或许多其他语言中实现。它非常有效。基本上你正在反转一个大的带状矩阵。Golub 的书详细描述了它。

看起来这很有用:

https://docs.scipy.org/doc/numpy-1.14.1/reference/generated/numpy.linalg.cholesky.html


查看完整回答
反对 回复 2022-01-11
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

当您的方程多于未知数时,您可能没有精确的解。在这种情况下,您可以做的是使用矩阵 A 的 Moore-Penrose 伪逆。 A 乘以 b 将为您提供最小二乘距离解。在 numpy 中,您可以使用https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html#numpy.linalg.lstsq


查看完整回答
反对 回复 2022-01-11
  • 2 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信