- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想求解线性方程组:
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/
我目前正在努力使用 python 解决线性方程组。我曾尝试使用 numpy.linalg.solve,但似乎这只适用于方形数组,而我的则不然。是否有另一个我可以用来解决我不知道的系统的函数,或者我应该
我的代码第一次迭代运行良好,但之后输出以下错误: ValueError: matrix must be 2-dimensional 据我所知(这在Python中并不多),我的代码是正确的。但我不知道为
是否可以使用 sympy 求解方程组(线性或非线性),其中输出为符号? 示例: 1. f_m = a0 + a1*(-dx) + a2*(-dx)^2 2. f_c = a0 3. f_p =
我想使用两个或更多输入来创建更精确的变量估计。我已经仅使用一个输入和一个 FOPDT 方程对其进行了估算,但是当我尝试添加一个输入和相应的 k、tau 和 theta 以及另一个方程时,我收到“未找到
我有一个像这样的字符串(变量和常量的数量并不重要): > my_string A b A x y z [1,] 1 0 1 [2,] 1 3 2 [3,] 3 1 1 > b [1]
我是一名优秀的程序员,十分优秀!