|
Stokhos
Development
|
Class representing an exponential covariance function and its KL eigevalues/eigenfunctions. More...
#include <Stokhos_KL_OneDExponentialCovarianceFunction.hpp>
Classes | |
| struct | EigFuncCos |
| Nonlinear function whose roots define eigenvalues for cos() eigenfunction. More... | |
| struct | EigFuncSin |
| Nonlinear function whose roots define eigenvalues for sin() eigenfunction. More... | |
Public Types | |
|
typedef ExponentialOneDEigenFunction < value_type > | eigen_function_type |
|
typedef OneDEigenPair < eigen_function_type > | eigen_pair_type |
Public Member Functions | |
| OneDExponentialCovarianceFunction (int M, const value_type &a, const value_type &b, const value_type &L, const int dim_name, Teuchos::ParameterList &solverParams) | |
| Constructor. | |
| ~OneDExponentialCovarianceFunction () | |
| Destructor. | |
| value_type | evaluateCovariance (const value_type &x, const value_type &xp) const |
| Evaluate covariance. | |
|
const Teuchos::Array < eigen_pair_type > & | getEigenPairs () const |
| Get eigenpairs. | |
Protected Types | |
|
typedef Teuchos::ScalarTraits < value_type >::magnitudeType | magnitude_type |
Protected Member Functions | |
| template<class Func > | |
| value_type | newton (const Func &func, const value_type &a, const value_type &b, magnitude_type tol, int max_num_its) |
| A basic root finder based on Newton's method. | |
| template<class Func > | |
| value_type | bisection (const Func &func, const value_type &a, const value_type &b, magnitude_type tol, int max_num_its) |
| A basic root finder based on bisection. | |
Protected Attributes | |
| value_type | L |
| Correlation length. | |
| Teuchos::Array< eigen_pair_type > | eig_pair |
| Eigenpairs. | |
Class representing an exponential covariance function and its KL eigevalues/eigenfunctions.
This class provides the exponential covariance function
The corresponding eigenfunctions can be shown to be
and
for
where
and
satisfy
and
respectively, where
and
. Then
and the corresponding eigenvalues are given by
and
It is straightforward to show that for each
,
, and thus
. Hence when sorted on decreasing eigenvalue, the eigenfunctions alternate between cosine and sine. See "Stochastic Finite Elements" by Ghanem and Spanos for a complete description of how to derive these relationships.
For a given value of
, the code works by computing the
eigenfunctions using a bisection root solver to compute the frequencies
and
.
Data for the root solver is passed through a Teuchos::ParameterList, which accepts the following parameters:
for bounding the frequencies
in the bisection algorithm
1.8.5