我正在用C++编写一个具体的代码的数值方法,其形式为y'(t)=a*y(t)+g(t,y)
,其中a
是一个矩阵,g
是一个向量函数,即一个将时间和向量作为输入并返回向量的函数。 我在用图书馆的特征。
我正在编写自己的类,但我不能理解如何在类定义中传递向量函数g(t,y)作为参数,这是
积分器(double fin_time,int time_steps,MatrixXd rhs,VectorXd g,VectorXd in_data)
我怎么能用Eigen这样做呢?
当函数为标量时,我通常做double(*f)(double t,double y)
,但这里当然不同。
我更喜欢使用适当的C++11函数对象,而不是使用函数指针。 函数g(t,y)将具有以下类型;
std::function<VectorXd (double, const VectorXd&)> g;
可以在类构造函数中使用此类型。