boost :: math是否有任何函数可用于帮助实现类似于MS Excel LINEST函数的函数?
答案 0 :(得分:5)
我解析了Boost文档(不是在boost :: math中,它看起来更像是boost :: ublas)。就目前而言,我无法找到一个足够简单的例子,不会对非数学家过度。
从我看到的情况来看,我宁愿建议使用Armadillo,因为它的使用看起来相当简单。
我在下面转载了一个取自armadillo source archive的简化代码示例:
int main(int argc, char** argv)
{
// points to which we will fit the line
mat data = "1 6; 2 5; 3 7; 4 10";
// Transform the problem into an Armadillo use-case (Ax = b problem)
vec b(data.n_rows);
mat C(data.n_rows, 2);
for(u32 i=0; i<data.n_rows; ++i)
{
b(i) = data(i,1);
C(i,0) = 1;
C(i,1) = data(i,0);
}
// Compute least-squares solution, should be "3.5; 1.4"
vec solution = solve(C,b);
cout << "solution:" << endl << solution << endl;
return 0;
}