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

标签 python numpy linear-algebra

我有一个数据集,其中包括约 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 矩阵

这是否走在正确的轨道上?

需要明确的是,我希望为一个方程生成系数整数,该方程将修正感知到的接触距离,使其尽可能接近实际的接触距离。

如果有更好的方法,我也完全愿意放弃这种方法。

感谢您提前提供的帮助。

最佳答案

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

看起来这很有用:

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

关于python - 求解具有 4 个未知数的大型方程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55711567/

相关文章:

python - 如何用Python求数据集每一列的熵?

python - 参数化数组的矢量化加法

c++ - 需要使用 gsl LU 分解获取方阵逆矩阵的示例代码

python - Celery:什么时候应该选择 Redis 作为消息代理而不是 RabbitMQ?

Python 循环文件并下载图像

c++ - 在 Python 中使用点云库

python - Sci-Kit 学习 SGD 算法时出错 - "Array contains NaN or infinity"

algorithm - 需要帮助在 MATLAB 中对齐时间序列数据

c++ - 英特尔 MKL 是否支持 Armadilo、Eigen 或 Biltz++?

python - 导入 pytesseract