gpt4 book ai didi

c++ - 在 C++ 中求解正规方程组

转载 作者:可可西里 更新时间:2023-11-01 18:16:34 25 4
gpt4 key购买 nike

我想求解线性方程组:

 Ax = b

A 是一个n x m 矩阵(不是正方形),b 和x 都是n x 1 vector 。其中A和b已知,n为50-100量级,m约为2(换句话说,A可以最大[100x2])。

我知道x的解:$x =\inv(A^T A) A^T b$

我找到了几种解决方法:uBLAS (Boost)、Lapack、Eigen 等,但我不知道使用这些包的“x”的 CPU 计算时间有多快。我也不知道这在数字上是否是解决“x”的快速原因

对我来说重要的是 CPU 计算时间尽可能短,并且因为我是新手所以文档很好。

在求解正规方程 Ax = b 后,我想使用回归改进我的近似值,也许稍后应用卡尔曼滤波器。

我的问题是哪个 C++ 库更强大、更快速地满足我上面描述的需求?

最佳答案

这是一个最小二乘解,因为你有比方程更多的未知数。如果 m 确实等于 2,这告诉我一个简单的线性最小二乘法就足够了。公式可以写成封闭形式。你不需要图书馆。

如果 m 是个位数,我仍然会说您可以使用 A(transpose)*A*X = A(transpose)*b 轻松解决此问题。求解系数的简单 LU 分解就足够了。这应该是一个比您想象的要简单得多的问题。

关于c++ - 在 C++ 中求解正规方程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com