SoizeGhanemFactory¶
- class SoizeGhanemFactory(*args)¶
SoizeGhanem orthonormal multivariate functional family.
For the any multivariate distribution with continuous copula.
- Available constructor:
SoizeGhanemFactory(measure, useCopula)
SoizeGhanemFactory(measure, phi, useCopula)
- Parameters:
- measure
Distribution
The measure defining the inner product of the factory.
- phi
EnumerateFunction
The function mapping the index of the multivariate basis function to the multi-index of the marginal variables. Default is to use the
LinearEnumerateFunction
.- useCopulabool
Flag to tell if the copula density has to be used directly or indirectly through the joint PDF of the measure. Default is True.
- measure
Methods
add
(elt)Add a function.
build
(*args)Get the term of the basis collection at a given index or multi-indices.
Accessor to the object's name.
Return the enumerate function.
Get the input dimension of the Basis.
getMarginal
(indices)Get the marginal orthogonal functions.
Get the measure upon which the basis is orthogonal.
getName
()Accessor to the object's name.
Get the output dimension of the Basis.
getSize
()Get the size of the Basis.
getSubBasis
(indices)Get a sub-basis of the Basis.
hasName
()Test if the object is named.
isFinite
()Tell whether the basis is finite.
Tell whether the basis is orthogonal.
Tell whether the basis is a tensor product
setName
(name)Accessor to the object's name.
Notes
This class implements the multivariate orthonormal basis associated with an arbitrary multidimensional distribution with continuous copula and marginals with well-defined orthonormal polyomials of arbitrary order. The details are in [soizeghanem2004].
Examples
>>> import openturns as ot >>> marginals = [ot.Uniform(-1.0, 1.0), ot.Normal(0.0, 1.0)] >>> copula = ot.ClaytonCopula(1.0) >>> distribution = ot.JointDistribution(marginals, copula) >>> factory = ot.SoizeGhanemFactory(distribution) >>> point = [0.5]*2 >>> for i in range(3): ... value = factory.build(i)(point) ... print('SoizeGhanem_' + str(i) + '(' + str(point) + ')=' + str(value)) SoizeGhanem_0([0.5, 0.5])=[0.870518] SoizeGhanem_1([0.5, 0.5])=[0.753891] SoizeGhanem_2([0.5, 0.5])=[0.435259]
- __init__(*args)¶
- build(*args)¶
Get the term of the basis collection at a given index or multi-indices.
- Parameters:
- indexint
Indicates the term of the basis which must be constructed. In other words, index is used by a bijection from to (with the dimension of the basis). The bijection is detailed in
EnumerateFunction
.- indicessequence of int
Indicates the term of the basis which must be constructed. In other words, indices is used by a bijection from to (with the dimension of the basis). The bijection is the inverse of
EnumerateFunction
.
- Returns:
- function
Function
The term of the basis collection at the index index or the inverse of indices.
- function
Examples
>>> import openturns as ot >>> # Create an orthogonal basis >>> polynomialCollection = [ot.LegendreFactory(), ot.LaguerreFactory(), ot.HermiteFactory()] >>> productBasis = ot.OrthogonalProductPolynomialFactory(polynomialCollection) >>> termBasis = productBasis.build(4) >>> print(termBasis.getEvaluation()) -1.11803 + 3.3541 * x0^2 >>> termBasis = productBasis.build(5) >>> print(termBasis.getEvaluation()) 1.73205 * x0 * (-1 + x1) >>> termBasis2 = productBasis.build([1, 1, 0]) >>> print(termBasis2.getEvaluation()) 1.73205 * x0 * (-1 + x1)
- getClassName()¶
Accessor to the object’s name.
- Returns:
- class_namestr
The object class name (object.__class__.__name__).
- getEnumerateFunction()¶
Return the enumerate function.
- Returns:
- enumerateFunction
EnumerateFunction
Enumerate function that translates unidimensional indices into multidimensional indices.
- enumerateFunction
- getInputDimension()¶
Get the input dimension of the Basis.
- Returns:
- inDimint
Input dimension of the functions.
- getMarginal(indices)¶
Get the marginal orthogonal functions.
- Parameters:
- indicessequence of int,
List of marginal indices of the input variables.
- Returns:
- functionFamilylistlist of
OrthogonalBasis
The marginal orthogonal functions.
- functionFamilylistlist of
- getMeasure()¶
Get the measure upon which the basis is orthogonal.
- Returns:
- measure
Distribution
Measure upon which the basis is orthogonal.
- measure
Examples
>>> import openturns as ot >>> # Create an orthogonal basis >>> polynomialCollection = [ot.LegendreFactory(), ot.LaguerreFactory(), ot.HermiteFactory()] >>> productBasis = ot.OrthogonalProductPolynomialFactory(polynomialCollection) >>> measure = productBasis.getMeasure() >>> print(measure.getMarginal(0)) Uniform(a = -1, b = 1) >>> print(measure.getMarginal(1)) Gamma(k = 1, lambda = 1, gamma = 0) >>> print(measure.getMarginal(2)) Normal(mu = 0, sigma = 1)
- getName()¶
Accessor to the object’s name.
- Returns:
- namestr
The name of the object.
- getOutputDimension()¶
Get the output dimension of the Basis.
- Returns:
- outDimint
Output dimension of the functions.
- getSize()¶
Get the size of the Basis.
- Returns:
- sizeint
Size of the Basis.
- getSubBasis(indices)¶
Get a sub-basis of the Basis.
- Parameters:
- indiceslist of int
Indices of the terms of the Basis put in the sub-basis.
- Returns:
- subBasislist of
Function
Functions defining a sub-basis.
- subBasislist of
Examples
>>> import openturns as ot >>> dimension = 3 >>> input = ['x0', 'x1', 'x2'] >>> functions = [] >>> for i in range(dimension): ... functions.append(ot.SymbolicFunction(input, [input[i]])) >>> basis = ot.Basis(functions) >>> subbasis = basis.getSubBasis([1]) >>> print(subbasis[0].getEvaluation()) [x0,x1,x2]->[x1]
- hasName()¶
Test if the object is named.
- Returns:
- hasNamebool
True if the name is not empty.
- isFinite()¶
Tell whether the basis is finite.
- Returns:
- isFinitebool
True if the basis is finite.
- isOrthogonal()¶
Tell whether the basis is orthogonal.
- Returns:
- isOrthogonalbool
True if the basis is orthogonal.
- isTensorProduct()¶
Tell whether the basis is a tensor product
- Returns:
- isTensorProductbool
True if the basis is a tensor product.
- setName(name)¶
Accessor to the object’s name.
- Parameters:
- namestr
The name of the object.