GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Public Types | Static Public Member Functions | Public Attributes | List of all members
gtsam::Chebyshev1Basis Struct Reference

#include <Chebyshev.h>

Inheritance diagram for gtsam::Chebyshev1Basis:
Inheritance graph
[legend]
Collaboration diagram for gtsam::Chebyshev1Basis:
Collaboration graph
[legend]

Public Types

using Parameters = Eigen::Matrix< double, -1, 1 >
 

Static Public Member Functions

static Weights CalculateWeights (size_t N, double x, double a=-1, double b=1)
 Evaluate Chebyshev Weights on [-1,1] at x up to order N-1 (N values) More...
 
static Weights DerivativeWeights (size_t N, double x, double a=-1, double b=1)
 Evaluate Chebyshev derivative at x. The derivative weights are pre-multiplied to the polynomial Parameters. More...
 
static Matrix WeightMatrix (size_t N, const Vector &X)
 
static Matrix WeightMatrix (size_t N, const Vector &X, double a, double b)
 Calculate weights for all x in vector X, with interval [a,b]. More...
 

Public Attributes

Parameters parameters_
 

Detailed Description

Basis of Chebyshev polynomials of the first kind https://en.wikipedia.org/wiki/Chebyshev_polynomials#First_kind These are typically denoted with the symbol T_n, where n is the degree. The parameter N is the number of coefficients, i.e., N = n+1.

Member Function Documentation

◆ CalculateWeights()

static Weights gtsam::Chebyshev1Basis::CalculateWeights ( size_t  N,
double  x,
double  a = -1,
double  b = 1 
)
static

Evaluate Chebyshev Weights on [-1,1] at x up to order N-1 (N values)

Parameters
NDegree of the polynomial.
xPoint to evaluate polynomial at.
aLower limit of polynomial (default=-1).
bUpper limit of polynomial (default=1).

◆ DerivativeWeights()

static Weights gtsam::Chebyshev1Basis::DerivativeWeights ( size_t  N,
double  x,
double  a = -1,
double  b = 1 
)
static

Evaluate Chebyshev derivative at x. The derivative weights are pre-multiplied to the polynomial Parameters.

From Wikipedia we have D[T_n(x),x] = n*U_{n-1}(x) I.e. the derivative fo a first kind cheb is just a second kind cheb So, we define a second kind basis here of order N-1 Note that it has one less weight.

The Parameters pertain to 1st kind chebs up to order N-1 But of course the first one (order 0) is constant, so omit that weight.

Parameters
NDegree of the polynomial.
xPoint to evaluate polynomial at.
aLower limit of polynomial (default=-1).
bUpper limit of polynomial (default=1).
Returns
Weights

◆ WeightMatrix() [1/2]

static Matrix gtsam::Basis< Chebyshev1Basis >::WeightMatrix ( size_t  N,
const Vector &  X 
)
inlinestaticinherited

Calculate weights for all x in vector X. Returns M*N matrix where M is the size of the vector X, and N is the number of basis functions.

◆ WeightMatrix() [2/2]

static Matrix gtsam::Basis< Chebyshev1Basis >::WeightMatrix ( size_t  N,
const Vector &  X,
double  a,
double  b 
)
inlinestaticinherited

Calculate weights for all x in vector X, with interval [a,b].

Parameters
NThe number of basis functions.
XThe vector for which to compute the weights.
aThe lower bound for the interval range.
bThe upper bound for the interval range.
Returns
Returns M*N matrix where M is the size of the vector X.

The documentation for this struct was generated from the following file: