KarhunenLoeveQuadratureAlgorithm¶
(Source code, png, hires.png, pdf)

class
KarhunenLoeveQuadratureAlgorithm
(*args)¶ Computation of KarhunenLoeve decomposition using Quadrature approximation.
 Available constructors:
KarhunenLoeveQuadratureAlgorithm(domain, bounds, covariance, experiment, basis, basisSize, mustScale, s)
KarhunenLoeveQuadratureAlgorithm(domain, bounds, covariance, marginalDegree, s)
 Parameters
 domain
Domain
The domain on which the covariance model and the KarhunenLoeve eigenfunctions (modes) are discretized.
 bounds
Interval
Numerical bounds of the domain.
 covariance
CovarianceModel
The covariance function to decompose.
 experiment
WeightedExperiment
The points and weights used in the quadrature approximation.
 basissequence of
Function
The basis in which the eigenfunctions are projected.
 marginalDegreeint
The maximum degree to take into account in the tensorized Legendre basis.
 mustScaleboolean
Flag to tell if the bounding box of the weighted experiment and the domain have to be maped or not.
 sfloat,
The threshold used to select the most significant eigenmodes, defined in
KarhunenLoeveAlgorithm
.
 domain
Notes
The KarhunenLoeve quadrature algorithm solves the Fredholm problem associated to the covariance function : see
KarhunenLoeveAlgorithm
to get the notations.The KarhunenLoeve quadrature approximation consists in replacing the integral by a quadrature approximation: if is the weighted experiment (see
WeightedExperiment
) associated to the measure , then for all functions measurable wrt , we have:If we note , we build a more general quadrature approximation such that:
where only the points are considered.
We introduce the matrices such that , and such that .
The normalisation constraint ang the orthogonality of the in leads to:
(1)¶
The Galerkin approach leads to the following generalized eigenvalue problem:
(2)¶
where and .
The collocation approach leads to the following generalized eigenvalue problem:
(3)¶
Equations (2) and (3) are equivalent when is invertible.
OpenTURNS solves the equation (2).
The second constructor is a shorthand to the first one, where basis is the tensorized Legendre basis (see
OrthogonalProductPolynomialFactory
andLegendreFactory
), experiment is a tensorized GaussLegendre quadrature (seeGaussProductExperiment
), basisSize is equal to marginalDegree to the power the dimension of domain and mustScale is set to True.Examples
Discretize the domain and create a covariance model:
>>> import openturns as ot >>> bounds = ot.Interval([1.0]*2, [1.0]*2) >>> domain = ot.IntervalMesher([10]*2).build(bounds) >>> s = 0.01 >>> model = ot.AbsoluteExponential([1.0]*2)
Give the basis used to decompose the eigenfunctions:
here, the 10 first Legendre polynomials family:
>>> basis = ot.OrthogonalProductPolynomialFactory([ot.LegendreFactory()]*2) >>> functions = [basis.build(i) for i in range(10)]
Create the weighted experiment of the quadrature approximation: here, a Monte Carlo experiment from the measure orthogonal wrt the Legendre polynomials family:
>>> experiment = ot.MonteCarloExperiment(basis.getMeasure(), 1000)
Create the KarhunenLoeve Quadrature algorithm:
>>> algorithm = ot.KarhunenLoeveQuadratureAlgorithm(domain, bounds, model, experiment, functions, True, s)
Run it!
>>> algorithm.run() >>> result = algorithm.getResult()
Methods
getBasis
(self)Accessor to the functional basis.
getClassName
(self)Accessor to the object’s name.
getCovarianceModel
(self)Accessor to the covariance model.
getDomain
(self)Accessor to the domain.
getExperiment
(self)Accessor to the points and weights of the quadrature approximation.
getId
(self)Accessor to the object’s id.
getMustScale
(self)Accessor to scale option.
getName
(self)Accessor to the object’s name.
getNbModes
(self)Accessor to number of modes to compute.
getResult
(self)Get the result structure.
getShadowedId
(self)Accessor to the object’s shadowed id.
getThreshold
(self)Accessor to the threshold used to select the most significant eigenmodes.
getVisibility
(self)Accessor to the object’s visibility state.
hasName
(self)Test if the object is named.
hasVisibleName
(self)Test if the object has a distinguishable name.
run
(self)Computation of the eigenvalues and eigenfunctions values at the quadrature points.
setCovarianceModel
(self, covariance)Accessor to the covariance model.
setName
(self, name)Accessor to the object’s name.
setNbModes
(self, nbModes)Accessor to number of modes to compute.
setShadowedId
(self, id)Accessor to the object’s shadowed id.
setThreshold
(self, threshold)Accessor to the limit ratio on eigenvalues.
setVisibility
(self, visible)Accessor to the object’s visibility state.

__init__
(self, \*args)¶ Initialize self. See help(type(self)) for accurate signature.

getBasis
(self)¶ Accessor to the functional basis.
 Returns
 basis
Basis
The basis in wich the eigenfunctions are projected.
 basis

getClassName
(self)¶ Accessor to the object’s name.
 Returns
 class_namestr
The object class name (object.__class__.__name__).

getCovarianceModel
(self)¶ Accessor to the covariance model.
 Returns
 covModel
CovarianceModel
The covariance model.
 covModel

getDomain
(self)¶ Accessor to the domain.
 Returns
 domain
Domain
 The domain that discretizes the domin .
 domain

getExperiment
(self)¶ Accessor to the points and weights of the quadrature approximation.
 Returns
 experiment
WeightedExperiment
The points and weights used in the quadrature approximation.
 experiment

getId
(self)¶ Accessor to the object’s id.
 Returns
 idint
Internal unique identifier.

getMustScale
(self)¶ Accessor to scale option.
 Returns
 mustScaleboolean
Flag to tell if the bounding box of the weighted experiment and the domain have to be maped or not.

getName
(self)¶ Accessor to the object’s name.
 Returns
 namestr
The name of the object.

getNbModes
(self)¶ Accessor to number of modes to compute.
 Returns
 nint
The number of modes to compute.

getResult
(self)¶ Get the result structure.
 Returns
 resKL
KarhunenLoeveResult
The structure containing all the results of the Fredholm problem.
 resKL
Notes
The structure contains all the results of the Fredholm problem.

getShadowedId
(self)¶ Accessor to the object’s shadowed id.
 Returns
 idint
Internal unique identifier.

getThreshold
(self)¶ Accessor to the threshold used to select the most significant eigenmodes.
 Returns
 sfloat, positive
The threshold .
Notes
OpenTURNS truncates the sequence at the index defined in (3).

getVisibility
(self)¶ Accessor to the object’s visibility state.
 Returns
 visiblebool
Visibility flag.

hasName
(self)¶ Test if the object is named.
 Returns
 hasNamebool
True if the name is not empty.

hasVisibleName
(self)¶ Test if the object has a distinguishable name.
 Returns
 hasVisibleNamebool
True if the name is not empty and not the default one.

run
(self)¶ Computation of the eigenvalues and eigenfunctions values at the quadrature points.
Notes
Runs the algorithm and creates the result structure
KarhunenLoeveResult
.

setCovarianceModel
(self, covariance)¶ Accessor to the covariance model.
 Parameters
 covModel
CovarianceModel
The covariance model.
 covModel

setName
(self, name)¶ Accessor to the object’s name.
 Parameters
 namestr
The name of the object.

setNbModes
(self, nbModes)¶ Accessor to number of modes to compute.
 Parameters
 nint
The number of modes to compute.

setShadowedId
(self, id)¶ Accessor to the object’s shadowed id.
 Parameters
 idint
Internal unique identifier.

setThreshold
(self, threshold)¶ Accessor to the limit ratio on eigenvalues.
 Parameters
 sfloat,
The threshold defined in (3).

setVisibility
(self, visible)¶ Accessor to the object’s visibility state.
 Parameters
 visiblebool
Visibility flag.