Janus 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 "janus/core/JanusError.hpp"
#include "janus/core/JanusTypes.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  janus

Enumerations

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

Functions

IntegrationMethod janus::parse_integration_method (const std::string &method)
 Parse integration method from string.
template<typename Scalar>
std::pair< Scalar, Scalar > janus::forward_euler_weights (Scalar h)
 Forward Euler (explicit) differentiation weights.
template<typename Scalar>
std::pair< Scalar, Scalar > janus::backward_euler_weights (Scalar h)
 Backward Euler (implicit) differentiation weights.
template<typename Scalar>
std::pair< Scalar, Scalar > janus::central_difference_weights (Scalar h)
 Central difference differentiation weights.
template<typename Scalar>
std::pair< Scalar, Scalar > janus::trapezoidal_weights (Scalar h)
 Trapezoidal integration weights.
template<typename Scalar>
JanusVector< Scalar > janus::forward_difference (const JanusVector< Scalar > &f, const JanusVector< Scalar > &x)
 Compute derivative using forward difference.
template<typename Scalar>
JanusVector< Scalar > janus::backward_difference (const JanusVector< Scalar > &f, const JanusVector< Scalar > &x)
 Compute derivative using backward difference.
template<typename Scalar>
JanusVector< Scalar > janus::central_difference (const JanusVector< Scalar > &f, const JanusVector< Scalar > &x)
 Compute derivative using central difference.
template<typename Scalar>
JanusVector< Scalar > janus::integration_defects (const JanusVector< Scalar > &x, const JanusVector< Scalar > &xdot, const JanusVector< Scalar > &t, IntegrationMethod method=IntegrationMethod::Trapezoidal)
 Compute integration defects for derivative constraints.
template<typename Scalar>
JanusVector< Scalar > janus::finite_difference_coefficients (const JanusVector< 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