FejerAlgorithm

(Source code, svg)

../../_images/FejerAlgorithm.svg
class FejerAlgorithm(*args)

Fejer Integration algorithm

The FejerAlgorithm algorithm enables to approximate the definite integral:

\int_{\vect{a}}^\vect{b} f(\vect{t})\di{\vect{t}}

with f: \Rset^d \mapsto \Rset^p, \vect{a}, \vect{b}\in\Rset^d using a the approximation:

\int_{\vect{a}}^\vect{b} f(\vect{t})\di{\vect{t}} = \sum_{\vect{n}\in \cN}\left(\prod_{i=1}^d w^{N_i}_{n_i}\right)f(\xi^{N_1}_{n_1},\dots,\xi^{N_d}_{n_d})

where \xi^{N_i}_{n_i} is the n_i -th node of the N_i points and w^{N_i}_{n_i} are the associated weight.

Refer to FejerExperiment for the expression of nodes and weights.

Available constructors:

FejerAlgorithm(dimension, method)

FejerAlgorithm(discretization, method)

Parameters:
dimensionint, dimension>0

The dimension of the functions to integrate. The default discretization is FejerAlgorithm-DefaultMarginalIntegrationPointsNumber in each dimension, see ResourceMap.

discretizationsequence of int

The number of nodes in each dimension. The sequence must be non-empty and must contain only positive values.

methodint, optional

Integer used to select the method of integration. (Amongst ot.FejerAlgorithm.FEJERTYPE1, ot.FejerAlgorithm.FEJERTYPE2 and ot.FejerAlgorithm.CLENSHAWCURTIS).

Default is ot.FejerAlgorithm.CLENSHAWCURTIS

Methods

getClassName()

Accessor to the object's name.

getDiscretization()

Accessor to the discretization of the tensorized rule.

getName()

Accessor to the object's name.

getNodes()

Accessor to the integration nodes.

getWeights()

Accessor to the integration weights.

hasName()

Test if the object is named.

integrate(*args)

Evaluation of the integral of f on an interval.

integrateWithNodes(function, interval)

Evaluation of the integral of f on an interval with nodes.

setName(name)

Accessor to the object's name.

Examples

Create a FejerAlgorithm algorithm:

>>> import openturns as ot
>>> algo = ot.FejerAlgorithm(2)
>>> algo = ot.FejerAlgorithm([2, 4, 5])
__init__(*args)
getClassName()

Accessor to the object’s name.

Returns:
class_namestr

The object class name (object.__class__.__name__).

getDiscretization()

Accessor to the discretization of the tensorized rule.

Returns:
discretizationIndices

The number of integration point in each dimension.

getName()

Accessor to the object’s name.

Returns:
namestr

The name of the object.

getNodes()

Accessor to the integration nodes.

Returns:
nodesSample

The tensorized FejerAlgorithm integration nodes on [0,1]^d where d>0 is the dimension of the integration algorithm.

getWeights()

Accessor to the integration weights.

Returns:
weightsPoint

The tensorized FejerAlgorithm integration weights on [0,1]^d where d>0 is the dimension of the integration algorithm.

hasName()

Test if the object is named.

Returns:
hasNamebool

True if the name is not empty.

integrate(*args)

Evaluation of the integral of f on an interval.

Available usages:

integrate(f, interval)

integrate(f, interval, xi)

Parameters:
fFunction, f: \Rset^d \mapsto \Rset^p

The integrand function.

intervalInterval, interval \in \Rset^d

The integration domain.

xiSample

The integration nodes.

Returns:
valuePoint

Approximation of the integral.

Examples

>>> import openturns as ot
>>> f = ot.SymbolicFunction(['x'], ['sin(x)'])
>>> a = -2.5
>>> b = 4.5
>>> algoF1 = ot.FejerAlgorithm([10])
>>> value = algoF1.integrate(f, ot.Interval(a, b))[0]
integrateWithNodes(function, interval)

Evaluation of the integral of f on an interval with nodes.

Parameters:
fFunction, f: \Rset^\inputDim \mapsto \Rset^\outputDim

The integrand function.

intervalInterval, interval \in \Rset^\inputDim

The integration domain.

Returns:
valuePoint

Approximation of the integral.

nodesSample.

The integration nodes.

Notes

The nodes are those associated to the function: (\xi^{N_i}_{n_i}).

Examples

>>> import openturns as ot
>>> f = ot.SymbolicFunction(['x'], ['sin(x)'])
>>> a = -2.5
>>> b = 4.5
>>> algo = ot.FejerAlgorithm([10])
>>> value, nodes = algo.integrateWithNodes(f, ot.Interval(a, b))
setName(name)

Accessor to the object’s name.

Parameters:
namestr

The name of the object.