К сожалению, я заметил, что одеинт BOOST не может решить систему ОДУ назад во времени, т.е. когда я изменяю условия так, чтобы
typedef std::vector< double > state_type;
void ode_function(const state_type &x, state_type &dxdt, const double
{
dxdt[0] = x[0];
}
using namespace std;
using namespace boost::numeric::odeint;
state_type x(1);
x[0] = std::exp(1);
runge_kutta4< state_type > stepper;
integrate_const(stepper, ode_function, x, 1., 0., 0.01);
cout << x[0] << endl;
На самом деле это ничего не делает и возвращает начальное условие без изменений. В случае этого простого примера это можно решить, заменив переменные s=-t. Однако я не уверен, что этот трюк хорошо работает для любой системы ОДУ. Когда я использую его в своей программе, я не уверен, что он дает правильные результаты. Поэтому кто-нибудь знает какую-нибудь библиотеку С++, которая позволяет интегрировать обратное время?