Computes the Karhunen-Loeve decomposition of a univariate stochastic process.
More...
#include <kle.h>
|
| KLDecompUni (const Array1D< double > &tSamples) |
| Constructor that takes the autocorrelation matrix "corr" ( ) of the process we are studying as well as the array "tsamples" ( ) with the points in time where snapshots of the system were taken. More...
|
|
| KLDecompUni () |
|
| ~KLDecompUni () |
| Destructor. More...
|
|
void | Init () |
|
void | SetWeights (const Array1D< double > &weights) |
| Set weights for computing the integral needed for Nystrom's method for solving the Fredholm integral equation. More...
|
|
void | SetWeights (const double *weights, const int npts) |
| Set weights for computing the integral needed for Nystrom's method for solving the Fredholm integral equation. More...
|
|
int | decompose (const Array2D< double > &corr, const int &nKL) |
| Perform KL decomposition into nKL modes and return actual number of modes that were obtained. More...
|
|
int | decompose (const double *corr, const int &nKL) |
| Perform KL decomposition into nKL modes and return actual number of modes that were obtained. More...
|
|
void | KLproject (const Array2D< double > &realiz, Array2D< double > &xi) |
| Project realizations to the KL modes and store them in xi ( ) More...
|
|
const Array1D< double > & | eigenvalues () const |
| Get eigenvalues in descending order. More...
|
|
void | eigenvalues (const int nEIG, double *eigs) const |
|
const Array2D< double > & | KLmodes () const |
| Get associated KL modes. More...
|
|
void | KLmodes (const int npts, const int nKL, double *klModes) const |
| Get associated KL modes. More...
|
|
void | meanRealiz (const Array2D< double > &realiz, Array1D< double > &mean_realiz) |
| Calculate (in meanRealiz) the mean realizations. More...
|
|
void | truncRealiz (const Array1D< double > &meanrea, const Array2D< double > &xi, const int &nKL, Array2D< double > &trunc_realiz) |
| Returns the truncated KL sum. More...
|
|
|
bool | decomposed_ |
| Flag to determine whether KL decomposition has taken place (and consequently that the interal data structures contain meaningful eigenvalues and vectors ... ) More...
|
|
Array2D< double > | whcwh_ |
| Matrix to hold the upper triangular part of the matrix to get eigenvalues of. More...
|
|
Array1D< double > | w_ |
| Array to hold weights for Nystrom's method for Fredholm integral equation solution. More...
|
|
Array1D< double > | wh_ |
| Array to hold square roots of weights. More...
|
|
char | jobz_ |
| Option to determine what to compute (eigenvalues and eigenvectors) More...
|
|
char | eigRange_ |
| Option to set the type of range for eigenvalues. More...
|
|
char | uplo_ |
| Option to indicate how matrix is stored. More...
|
|
double | vl_ |
| Lower bound for range of eigenvalues. More...
|
|
double | vu_ |
| Upper bound for range of eigenvalues. More...
|
|
int | il_ |
| Lower index of range of eigenvalues requested. More...
|
|
int | iu_ |
| Upper index of range of eigenvalues requested. More...
|
|
double | absTol_ |
| Absolute tolerance for convergence. More...
|
|
Array1D< double > | eig_values_ |
| Array to store eigenvalues. More...
|
|
Array2D< double > | KL_modes_ |
| Matrix to store KL modes. More...
|
|
int | eig_info_ |
| info on success of the eigenvector solutions More...
|
|
Array1D< int > | ifail_ |
| Array to store indices of eigenvectors that failed to converge. More...
|
|
Computes the Karhunen-Loeve decomposition of a univariate stochastic process.
◆ KLDecompUni() [1/3]
KLDecompUni::KLDecompUni |
( |
const Array1D< double > & |
tSamples | ) |
|
Constructor that takes the autocorrelation matrix "corr" (
) of the process we are studying as well as the array "tsamples" (
) with the points in time where snapshots of the system were taken.
Constructs weights (
) needed for the Nystrom method to solve the Fredholm integral equation
◆ KLDecompUni() [2/3]
KLDecompUni::KLDecompUni |
( |
| ) |
|
◆ ~KLDecompUni()
KLDecompUni::~KLDecompUni |
( |
| ) |
|
|
inline |
◆ KLDecompUni() [3/3]
Dummy default constructor, which should not be used as it is not well defined.
Dummy copy constructor, which should not be used as it is currently not well defined
◆ decompose() [1/2]
int KLDecompUni::decompose |
( |
const Array2D< double > & |
corr, |
|
|
const int & |
nKL |
|
) |
| |
◆ decompose() [2/2]
int KLDecompUni::decompose |
( |
const double * |
corr, |
|
|
const int & |
nKL |
|
) |
| |
◆ eigenvalues() [1/2]
const Array1D< double > & KLDecompUni::eigenvalues |
( |
| ) |
const |
Get eigenvalues in descending order.
◆ eigenvalues() [2/2]
void KLDecompUni::eigenvalues |
( |
const int |
nEIG, |
|
|
double * |
eigs |
|
) |
| const |
◆ Init()
void KLDecompUni::Init |
( |
| ) |
|
◆ KLmodes() [1/2]
const Array2D< double > & KLDecompUni::KLmodes |
( |
| ) |
const |
◆ KLmodes() [2/2]
void KLDecompUni::KLmodes |
( |
const int |
npts, |
|
|
const int |
nKL, |
|
|
double * |
klModes |
|
) |
| const |
◆ KLproject()
void KLDecompUni::KLproject |
( |
const Array2D< double > & |
realiz, |
|
|
Array2D< double > & |
xi |
|
) |
| |
Project realizations
to the KL modes and store them in xi (
)
Samples of random variables
are obtained by projecting realizations of the random process
on the eigenmodes
... or numerically
◆ meanRealiz()
void KLDecompUni::meanRealiz |
( |
const Array2D< double > & |
realiz, |
|
|
Array1D< double > & |
mean_realiz |
|
) |
| |
Calculate (in meanRealiz) the mean realizations.
◆ SetWeights() [1/2]
void KLDecompUni::SetWeights |
( |
const Array1D< double > & |
weights | ) |
|
Set weights for computing the integral needed for Nystrom's method for solving the Fredholm integral equation.
◆ SetWeights() [2/2]
void KLDecompUni::SetWeights |
( |
const double * |
weights, |
|
|
const int |
npts |
|
) |
| |
Set weights for computing the integral needed for Nystrom's method for solving the Fredholm integral equation.
◆ truncRealiz()
void KLDecompUni::truncRealiz |
( |
const Array1D< double > & |
meanrea, |
|
|
const Array2D< double > & |
xi, |
|
|
const int & |
nKL, |
|
|
Array2D< double > & |
trunc_realiz |
|
) |
| |
Returns the truncated KL sum.
◆ absTol_
double KLDecompUni::absTol_ |
|
private |
Absolute tolerance for convergence.
◆ decomposed_
bool KLDecompUni::decomposed_ |
|
private |
Flag to determine whether KL decomposition has taken place (and consequently that the interal data structures contain meaningful eigenvalues and vectors ... )
◆ eig_info_
int KLDecompUni::eig_info_ |
|
private |
info on success of the eigenvector solutions
◆ eig_values_
Array1D<double> KLDecompUni::eig_values_ |
|
private |
Array to store eigenvalues.
◆ eigRange_
char KLDecompUni::eigRange_ |
|
private |
Option to set the type of range for eigenvalues.
◆ ifail_
Array to store indices of eigenvectors that failed to converge.
◆ il_
Lower index of range of eigenvalues requested.
◆ iu_
Upper index of range of eigenvalues requested.
◆ jobz_
Option to determine what to compute (eigenvalues and eigenvectors)
◆ KL_modes_
Array2D<double> KLDecompUni::KL_modes_ |
|
private |
Matrix to store KL modes.
◆ uplo_
Option to indicate how matrix is stored.
◆ vl_
Lower bound for range of eigenvalues.
◆ vu_
Upper bound for range of eigenvalues.
◆ w_
Array to hold weights for Nystrom's method for Fredholm integral equation solution.
◆ wh_
Array to hold square roots of weights.
◆ whcwh_
Array2D<double> KLDecompUni::whcwh_ |
|
private |
Matrix to hold the upper triangular part of the matrix to get eigenvalues of.
The documentation for this class was generated from the following files: