CMP++: Uncertainty Quantification & Bayesian Calibration
Loading...
Searching...
No Matches
cmp::covariance::Matern52 Class Reference

Matérn covariance function with parameter nu = 5/2. More...

#include <covariance.h>

Inheritance diagram for cmp::covariance::Matern52:
Collaboration diagram for cmp::covariance::Matern52:

Public Member Functions

 Matern52 (const Matern52 &)=default
 
 Matern52 (Matern52 &&)=default
 
Matern52operator= (const Matern52 &)=default
 
Matern52operator= (Matern52 &&)=default
 
 Matern52 (const size_t &l, const int &i=-1)
 
double eval (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par) const
 
double evalGradient (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par, const size_t &i) const
 
double evalHessian (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par, const size_t &i, const size_t &j) const
 
- Public Member Functions inherited from cmp::covariance::Covariance
virtual ~Covariance ()=default
 

Static Public Member Functions

static std::shared_ptr< Covariancemake (const size_t &l, const int &i)
 

Private Attributes

size_t index_
 Hyperparameter index for the lengthscale parameter.
 
int indexX_
 Dimension index to evaluate, or -1 for the full isotropic kernel.
 

Detailed Description

Matérn covariance function with parameter nu = 5/2.

Mathematical Formulation Evaluates the Matérn 5/2 kernel between two inputs \(\mathbf{x}_1, \mathbf{x}_2\):

\[ k(\mathbf{x}_1, \mathbf{x}_2) = \left( 1 + \frac{\sqrt{5}d}{\ell} + \frac{5d^2}{3\ell^2} \right) \exp\left( -\frac{\sqrt{5}d}{\ell} \right) \]

where \(d\) is the distance (isotropic or coordinate-based) and \(\ell = \theta_{\text{index}}\) is the lengthscale hyperparameter. This kernel yields processes that are twice differentiable.

Implementation Algorithm

  1. Computes the distance \(d\).
  2. Computes the polynomial coefficients and exponential scaling terms.
  3. Evaluates analytical first-order and second-order derivatives with respect to \(\ell\).

Constructor & Destructor Documentation

◆ Matern52() [1/3]

cmp::covariance::Matern52::Matern52 ( const Matern52 )
default

◆ Matern52() [2/3]

cmp::covariance::Matern52::Matern52 ( Matern52 &&  )
default

◆ Matern52() [3/3]

cmp::covariance::Matern52::Matern52 ( const size_t &  l,
const int &  i = -1 
)
inline

Member Function Documentation

◆ eval()

double cmp::covariance::Matern52::eval ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const Eigen::VectorXd &  par 
) const
inlinevirtual

◆ evalGradient()

double cmp::covariance::Matern52::evalGradient ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const Eigen::VectorXd &  par,
const size_t &  i 
) const
inlinevirtual

◆ evalHessian()

double cmp::covariance::Matern52::evalHessian ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const Eigen::VectorXd &  par,
const size_t &  i,
const size_t &  j 
) const
inlinevirtual

◆ make()

static std::shared_ptr< Covariance > cmp::covariance::Matern52::make ( const size_t &  l,
const int &  i 
)
inlinestatic

◆ operator=() [1/2]

Matern52 & cmp::covariance::Matern52::operator= ( const Matern52 )
default

◆ operator=() [2/2]

Matern52 & cmp::covariance::Matern52::operator= ( Matern52 &&  )
default

Member Data Documentation

◆ index_

size_t cmp::covariance::Matern52::index_
private

Hyperparameter index for the lengthscale parameter.

◆ indexX_

int cmp::covariance::Matern52::indexX_
private

Dimension index to evaluate, or -1 for the full isotropic kernel.


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