![]() |
0.3.0
|
Provides Numerical integration methods. More...
Go to the source code of this file.
Functions | |
template<typename Y, typename Z, std::floating_point Scalar> | |
Y | NAV::Heun2 (const Y &y_n, const std::array< Z, 2 > &z, const Scalar &h, const auto &f, const auto &constParam, const Scalar &t_n=0) |
Heun's method (2nd order) (explicit) . | |
template<typename Y, typename Z, std::floating_point Scalar> | |
Y | NAV::Heun3 (const Y &y_n, const std::array< Z, 3 > &z, const Scalar &h, const auto &f, const auto &constParam, const Scalar &t_n=0) |
Heun's method (3nd order) (explicit) . | |
template<typename Y, typename Z, std::floating_point Scalar> | |
Y | NAV::RungeKutta1 (const Y &y_n, const std::array< Z, 1 > &z, const Scalar &h, const auto &f, const auto &constParam, const Scalar &t_n=0) |
Runge-Kutta 1st order (explicit) / (Forward) Euler method . | |
template<typename Y, typename Z, std::floating_point Scalar> | |
Y | NAV::RungeKutta2 (const Y &y_n, const std::array< Z, 2 > &z, const Scalar &h, const auto &f, const auto &constParam, const Scalar &t_n=0) |
Runge-Kutta 2nd order (explicit) / Explicit midpoint method . | |
template<typename Y, typename Z, std::floating_point Scalar> | |
Y | NAV::RungeKutta3 (const Y &y_n, const std::array< Z, 3 > &z, const Scalar &h, const auto &f, const auto &constParam, const Scalar &t_n=0) |
Runge-Kutta 3rd order (explicit) / Simpson's rule . | |
template<typename Y, typename Z, std::floating_point Scalar> | |
Y | NAV::RungeKutta4 (const Y &y_n, const std::array< Z, 4 > &z, const Scalar &h, const auto &f, const auto &constParam, const Scalar &t_n=0) |
Runge-Kutta 4th order (explicit) . | |
template<typename Y, typename Z, std::floating_point Scalar, size_t s, std::array< std::array< Scalar, s+1 >, s+1 > butcherTableau> | |
Y | NAV::ButcherTableau::RungeKuttaExplicit (const Y &y_n, const std::array< Z, s > &z, const Scalar &h, const auto &f, const auto &constParam, const Scalar &t_n) |
Calculates explicit Runge-Kutta methods. Order is defined by the Butcher tableau. | |
Provides Numerical integration methods.
Y NAV::Heun2 | ( | const Y & | y_n, |
const std::array< Z, 2 > & | z, | ||
const Scalar & | h, | ||
const auto & | f, | ||
const auto & | constParam, | ||
const Scalar & | t_n = 0 ) |
Heun's method (2nd order) (explicit) .
[in] | y_n | State vector at time t_n |
[in] | z | Array of measurements, one for each evaluation point of the Runge Kutta |
[in] | h | Integration step in [s] |
[in] | f | Time derivative function |
[in] | constParam | Constant parameters passed to each time derivative function call |
[in] | t_n | Time t_n |
Y NAV::Heun3 | ( | const Y & | y_n, |
const std::array< Z, 3 > & | z, | ||
const Scalar & | h, | ||
const auto & | f, | ||
const auto & | constParam, | ||
const Scalar & | t_n = 0 ) |
Heun's method (3nd order) (explicit) .
[in] | y_n | State vector at time t_n |
[in] | z | Array of measurements, one for each evaluation point of the Runge Kutta |
[in] | h | Integration step in [s] |
[in] | f | Time derivative function |
[in] | constParam | Constant parameters passed to each time derivative function call |
[in] | t_n | Time t_n |
Y NAV::RungeKutta1 | ( | const Y & | y_n, |
const std::array< Z, 1 > & | z, | ||
const Scalar & | h, | ||
const auto & | f, | ||
const auto & | constParam, | ||
const Scalar & | t_n = 0 ) |
Runge-Kutta 1st order (explicit) / (Forward) Euler method .
[in] | y_n | State vector at time t_n |
[in] | z | Array of measurements, one for each evaluation point of the Runge Kutta |
[in] | h | Integration step in [s] |
[in] | f | Time derivative function |
[in] | constParam | Constant parameters passed to each time derivative function call |
[in] | t_n | Time t_n |
Y NAV::RungeKutta2 | ( | const Y & | y_n, |
const std::array< Z, 2 > & | z, | ||
const Scalar & | h, | ||
const auto & | f, | ||
const auto & | constParam, | ||
const Scalar & | t_n = 0 ) |
Runge-Kutta 2nd order (explicit) / Explicit midpoint method .
[in] | y_n | State vector at time t_n |
[in] | z | Array of measurements, one for each evaluation point of the Runge Kutta |
[in] | h | Integration step in [s] |
[in] | f | Time derivative function |
[in] | constParam | Constant parameters passed to each time derivative function call |
[in] | t_n | Time t_n |
Y NAV::RungeKutta3 | ( | const Y & | y_n, |
const std::array< Z, 3 > & | z, | ||
const Scalar & | h, | ||
const auto & | f, | ||
const auto & | constParam, | ||
const Scalar & | t_n = 0 ) |
Runge-Kutta 3rd order (explicit) / Simpson's rule .
[in] | y_n | State vector at time t_n |
[in] | z | Array of measurements, one for each evaluation point of the Runge Kutta |
[in] | h | Integration step in [s] |
[in] | f | Time derivative function |
[in] | constParam | Constant parameters passed to each time derivative function call |
[in] | t_n | Time t_n |
Y NAV::RungeKutta4 | ( | const Y & | y_n, |
const std::array< Z, 4 > & | z, | ||
const Scalar & | h, | ||
const auto & | f, | ||
const auto & | constParam, | ||
const Scalar & | t_n = 0 ) |
Runge-Kutta 4th order (explicit) .
[in] | y_n | State vector at time t_n |
[in] | z | Array of measurements, one for each evaluation point of the Runge Kutta |
[in] | h | Integration step in [s] |
[in] | f | Time derivative function |
[in] | constParam | Constant parameters passed to each time derivative function call |
[in] | t_n | Time t_n |
|
inline |
Calculates explicit Runge-Kutta methods. Order is defined by the Butcher tableau.
[in] | y_n | State vector at time t_n |
[in] | z | Array of measurements, one for each evaluation point of the Runge Kutta |
[in] | h | Integration step in [s] |
[in] | f | Time derivative function |
[in] | constParam | Constant parameters passed to each time derivative function call |
[in] | t_n | Time t_n |