Metis 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
FiniteDifference.hpp File Reference

Finite difference weights, derivative approximations, and integration defects. More...

#include "metis/core/MetisError.hpp"
#include "metis/core/MetisTypes.hpp"
#include <Eigen/Dense>
#include <cmath>
#include <string>
#include <vector>
Include dependency graph for FiniteDifference.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  metis

Enumerations

enum class  metis::IntegrationMethod { metis::ForwardEuler , metis::BackwardEuler , metis::Trapezoidal , metis::Midpoint }
 Integration/differentiation method for trajectory optimization. More...

Functions

IntegrationMethod metis::parse_integration_method (const std::string &method)
 Parse integration method from string.
template<typename Scalar>
std::pair< Scalar, Scalar > metis::forward_euler_weights (Scalar h)
 Forward Euler (explicit) differentiation weights.
template<typename Scalar>
std::pair< Scalar, Scalar > metis::backward_euler_weights (Scalar h)
 Backward Euler (implicit) differentiation weights.
template<typename Scalar>
std::pair< Scalar, Scalar > metis::central_difference_weights (Scalar h)
 Central difference differentiation weights.
template<typename Scalar>
std::pair< Scalar, Scalar > metis::trapezoidal_weights (Scalar h)
 Trapezoidal integration weights.
template<typename Scalar>
MetisVector< Scalar > metis::forward_difference (const MetisVector< Scalar > &f, const MetisVector< Scalar > &x)
 Compute derivative using forward difference.
template<typename Scalar>
MetisVector< Scalar > metis::backward_difference (const MetisVector< Scalar > &f, const MetisVector< Scalar > &x)
 Compute derivative using backward difference.
template<typename Scalar>
MetisVector< Scalar > metis::central_difference (const MetisVector< Scalar > &f, const MetisVector< Scalar > &x)
 Compute derivative using central difference.
template<typename Scalar>
MetisVector< Scalar > metis::integration_defects (const MetisVector< Scalar > &x, const MetisVector< Scalar > &xdot, const MetisVector< Scalar > &t, IntegrationMethod method=IntegrationMethod::Trapezoidal)
 Compute integration defects for derivative constraints.
template<typename Scalar>
MetisVector< Scalar > metis::finite_difference_coefficients (const MetisVector< Scalar > &x, Scalar x0=Scalar(0.0), int derivative_degree=1)
 Computes finite difference coefficients for arbitrary grids.

Detailed Description

Finite difference weights, derivative approximations, and integration defects.

See also
Calculus.hpp, AutoDiff.hpp