Передача функции в качестве параметра в библиотеку odeint - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь использовать odeint, которая является библиотекой для решения ODE http://headmyshoulder.github.io/odeint-v2/

Я использую один из интеграторов, и я хотел бы передать функцию как Аргумент. В 1 примере они передают постоянный параметр в качестве аргумента https://github.com/headmyshoulder/odeint-v2/blob/master/examples/harmonic_oscillator.cpp

class harm_osc {

    double m_gam;
public:
    harm_osc( double gam ) : m_gam(gam) { }

    void operator() ( const state_type &x , state_type &dxdt , const double /* t */ )
    {
        dxdt[0] = x[1];
        dxdt[1] = -x[0] - m_gam*x[1];
    }
};

В моем случае это функция, а не константа, например что-то подобное

y '(x) = f (x) * y (x)

, где f (x) - функция, которую я буду изменять при каждом l oop (мне нужно решить уравнение много раз), поэтому я хотел бы сохранить его в качестве динамического аргумента (функция f вычисляется другой программой).

...