将函数的输出传递给向量C ++

时间:2016-03-09 17:53:56

标签: c++ odeint

我是C ++的新手,想用它来解决一个ODE系统。我使用了ODEINT简单示例中的一些代码并对其进行了修改,如下所示。

void rhs( const double YN1 , double &dYN1dz , const double z )
{
    double k1 = boost::math::cyl_bessel_k(1, z);
    double k2 = boost::math::cyl_bessel_k(2, z);
    double K = 0.0001;
    double YN1eq = (z*z*k2)/(4*g);
    double nN1eq = (3/8)*(z*z*k2);
    double D  = K*(k1/k2)*z;
    dYN1dz = -D*(YN1-nN1eq);
};

void write_cout( const double &YN1 , const double z )
{
    cout << z << ' ' << YN1 << endl;
};

typedef runge_kutta_dopri5< double > stepper_type;

int solN1()
{
    double YN1 = 0.75;
    integrate_adaptive( make_controlled( 1E-12 , 1E-12 , stepper_type()),
                        rhs , YN1 , 0.001 ,100 , 0.1 , write_cout );

};

我需要使用zYN1来解决另一个ODE,因此我需要存储它们。我不确定如何最好地这样做。我正在考虑使用矢量矢量双,但我不知道如何最好地继续。

0 个答案:

没有答案