求解含4个未知数的大方程组

2024-05-20 15:45:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据集,包括到1800个融合雷达触点的距离和方位,以及到这些触点的实际距离和方位,我需要建立一个校正方程,使感知值尽可能接近实际值。你知道吗

在可视化的时候,错误似乎有一个趋势,所以在我看来,应该有一个简单的公式来纠正它。你知道吗

这是~1800方程式的形式:

实际距离=感知距离+X(感知方位)+Y(速度超过地面)+Z(航向超过地面)+A(航向)

解X,Y,Z和A的最佳方法是什么?你知道吗

另外,我不认为所有这些因素都是必要的,所以我完全愿意省略其中的一两个因素。你知道吗

从我了解的线性代数来看,我尝试过这样的事情,但运气不好:

Ax=b-->;x=b/A通孔numpy.linalg.solve解决方案(甲、乙)

其中A是4x~1800矩阵,b是1x~1800矩阵

这条路走对了吗?你知道吗

为了清楚起见,我希望为一个等式生成系数,该等式将修正感知到的接触距离,以便尽可能接近实际接触距离。你知道吗

如果有更好的方法,我也完全愿意放弃。你知道吗

提前谢谢你的帮助。你知道吗


Tags: 数据方法距离可视化错误矩阵趋势因素
2条回答

当你有更多的方程而不是未知数时,你可能没有一个精确解。在这种情况下,你所能做的就是使用矩阵a的Moore-Penrose伪逆,a乘以b将得到最小平方距离解。在numpy中可以使用https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html#numpy.linalg.lstsq

求解这类方程组的最佳方法是使用不完全Cholesky共轭梯度法(ICCG)。这可以在MATLAB、C++中的数字配方、NAG FORTRAN语言或许多其他语言中实现。效率很高。基本上你是在反转一个大的带状矩阵。戈卢布的书对此作了详细的描述。你知道吗

看起来这很有用:

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

相关问题 更多 >