GSL solvers for Ordinary Differential Equations (ODEs) are documented on www.gnu.org.
This package has two utility functions to select the integration method:
rgsl::integrationMethod("msbdf") == 0
rgsl::nameMethod(0) == "msbdf"The value of integrationMethod can be used here:
rgsl::r_gsl_odeiv2_outer(...,method=integrationMethod("msbdf"))
rgsl::r_gsl_odeiv2_outer_sens(...,method=integrationMethod("rkf45"))
rgsl::r_gsl_odeiv2_outer_state_only(...,method=integrationMethod("msadams"))gsl_odeiv2_step_type *gsl_odeiv2_step_rk2
Explicit embedded Runge-Kutta (2, 3) method.
gsl_odeiv2_step_type *gsl_odeiv2_step_rk4Explicit 4th order (classical) Runge-Kutta. Error estimation is carried out by the step doubling method. For more efficient estimate of the error, use the embedded methods described below.
gsl_odeiv2_step_type *gsl_odeiv2_step_rkf45Explicit embedded Runge-Kutta-Fehlberg (4, 5) method. This method is a good general-purpose integrator.
gsl_odeiv2_step_type *gsl_odeiv2_step_rkckExplicit embedded Runge-Kutta Cash-Karp (4, 5) method.
gsl_odeiv2_step_type *gsl_odeiv2_step_rk8pdExplicit embedded Runge-Kutta Prince-Dormand (8, 9) method.
gsl_odeiv2_step_type *gsl_odeiv2_step_rk1impImplicit Gaussian first order Runge-Kutta. Also known as implicit
Euler or backward Euler method. Error estimation is carried out by the
step doubling method. This algorithm requires the Jacobian and access
to the driver object via gsl_odeiv2_step_set_driver().
gsl_odeiv2_step_type *gsl_odeiv2_step_rk2impImplicit Gaussian second order Runge-Kutta. Also known as implicit
mid-point rule. Error estimation is carried out by the step doubling
method. This stepper requires the Jacobian and access to the driver
object via gsl_odeiv2_step_set_driver().
gsl_odeiv2_step_type *gsl_odeiv2_step_rk4impImplicit Gaussian 4th order Runge-Kutta. Error estimation is carried
out by the step doubling method. This algorithm requires the Jacobian
and access to the driver object via gsl_odeiv2_step_set_driver().
gsl_odeiv2_step_type *gsl_odeiv2_step_bsimpImplicit Bulirsch-Stoer method of Bader and Deuflhard. The method is generally suitable for stiff problems. This stepper requires the Jacobian.
gsl_odeiv2_step_type *gsl_odeiv2_step_msadamsA variable-coefficient linear multistep Adams method in Nordsieck
form. This stepper uses explicit Adams-Bashforth (predictor) and
implicit Adams-Moulton (corrector) methods in gsl_odeiv2_step_set_driver().
gsl_odeiv2_step_type *gsl_odeiv2_step_msbdfA variable-coefficient linear multistep backward differentiation
formula (BDF) method in Nordsieck form. This stepper uses the explicit
BDF formula as predictor and implicit BDF formula as corrector. A
modified Newton iteration method is used to solve the system of
non-linear equations. Method order varies dynamically between 1
and 5. The method is generally suitable for stiff problems. This
stepper requires the Jacobian and the access to the driver object via
gsl_odeiv2_step_set_driver().
Taken from this file, using coreutils:
printf "{" ; egrep "^gsl_" integrators.md | sed -r 's/^gsl_[^ ]+ [*]//' | tac | sed 's/$/, /' | tr -d '\n'; printf "NULL}\n"{gsl_odeiv2_step_msbdf, gsl_odeiv2_step_msadams, gsl_odeiv2_step_bsimp, gsl_odeiv2_step_rk4imp, gsl_odeiv2_step_rk2imp, gsl_odeiv2_step_rk1imp, gsl_odeiv2_step_rk8pd, gsl_odeiv2_step_rkck, gsl_odeiv2_step_rkf45, gsl_odeiv2_step_rk4, gsl_odeiv2_step_rk2, NULL}
The list is NULL terminated.