我找到的唯一Google搜索结果是QuadProg ++但它无法解决其矩阵不适用于Cholesky分解的二次规划问题.
那么有人能给我一些关于其他图书馆的建议吗?谢谢.
我正在尝试将MATLAB程序移植到C++.我想在矩阵A
和列向量之间实现左矩阵除法B
.
A
是一个m-by-n
具有矩阵m
不等于n
和B
是与列矢量m
分量.
并且我希望结果X = A\B
是最小二乘意义上的解决方案对于欠定或超定方程组AX = B
.换句话说,X
最小化norm(A*X - B)
矢量的长度AX - B
.这意味着我希望它与A\B
MATLAB中的结果相同.
我想在GSL-GNU(GNU Science Library)中实现这个功能,我不太了解数学,最小二乘拟合或矩阵运算,有人能告诉我如何在GSL中做到这一点吗?或者如果在GSL中实现它们太复杂了,有人可以建议我提供一个好的开源C/C++库来提供上面的矩阵操作吗?
好吧,在我花了5个小时后,我终于弄明白了.但是仍然感谢我对我的问题的建议.
假设我们有一个5*2矩阵
A = [1 0
1 0
0 1
1 1
1 1]
Run Code Online (Sandbox Code Playgroud)
和一个矢量 b = [1.8388,2.5595,0.0462,2.1410,0.6750]
A \ b
将是的解决方案
#include <stdio.h>
#include <gsl/gsl_linalg.h>
int
main (void)
{
double a_data[] = {1.0, 0.0,1.0, 0.0, 0.0,1.0,1.0,1.0,1.0,1.0};
double b_data[] …
Run Code Online (Sandbox Code Playgroud)