FejerAlgorithm¶
(Source code, png, hires.png, pdf)
-
class
FejerAlgorithm
(*args)¶ Fejer Integration algorithm
- Available constructors:
FejerAlgorithm(dimension=1, method=FejerAlgorithm.FEJERTYPE1)
FejerAlgorithm(discretization, method=FejerAlgorithmFEJERTYPE1)
- Parameters
- dimensionint,
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.FEJERTYPE1
Notes
The FejerAlgorithm algorithm enables to approximate the definite integral:
with , using a the approximation:
where is the -points and the associated weight.
Let us note , . The Clenshaw-Curtis nodes are :math=`x_k and its associated weights are given as follows:
with if else . Also, if else
The Fejer of type 1 method relies on :math=`x_k = cos(theta_{k+1/2})` nodes and associated weights are the following:
Finally, the Fejer`of type `2 method is very close to the Clenshaw-Curtis one. The two method do share the same nodes (except the endpoints that are set to 0 within the Fejer method). Its associated weights are given as follows:
Examples
Create a FejerAlgorithm algorithm:
>>> import openturns as ot >>> algo = ot.FejerAlgorithm(2) >>> algo = ot.FejerAlgorithm([2, 4, 5])
Methods
Accessor to the object’s name.
Accessor to the discretization of the tensorized rule.
getId
()Accessor to the object’s id.
getName
()Accessor to the object’s name.
getNodes
()Accessor to the integration nodes.
Accessor to the object’s shadowed id.
Accessor to the object’s visibility state.
Accessor to the integration weights.
hasName
()Test if the object is named.
Test if the object has a distinguishable name.
integrate
(*args)Evaluation of the integral of on an interval.
setName
(name)Accessor to the object’s name.
setShadowedId
(id)Accessor to the object’s shadowed id.
setVisibility
(visible)Accessor to the object’s visibility state.
integrateWithNodes
-
__init__
(*args)¶ Initialize self. See help(type(self)) for accurate signature.
-
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
- discretization
Indices
The number of integration point in each dimension.
- discretization
-
getId
()¶ Accessor to the object’s id.
- Returns
- idint
Internal unique identifier.
-
getName
()¶ Accessor to the object’s name.
- Returns
- namestr
The name of the object.
-
getNodes
()¶ Accessor to the integration nodes.
- Returns
- nodes
Sample
The tensorized FejerAlgorithm integration nodes on where is the dimension of the integration algorithm.
- nodes
-
getShadowedId
()¶ Accessor to the object’s shadowed id.
- Returns
- idint
Internal unique identifier.
-
getVisibility
()¶ Accessor to the object’s visibility state.
- Returns
- visiblebool
Visibility flag.
-
getWeights
()¶ Accessor to the integration weights.
- Returns
- weights
Point
The tensorized FejerAlgorithm integration weights on where is the dimension of the integration algorithm.
- weights
-
hasName
()¶ Test if the object is named.
- Returns
- hasNamebool
True if the name is not empty.
-
hasVisibleName
()¶ Test if the object has a distinguishable name.
- Returns
- hasVisibleNamebool
True if the name is not empty and not the default one.
-
integrate
(*args)¶ Evaluation of the integral of on an interval.
- Available usages:
integrate(f, interval)
integrate(f, interval, xi)
- Parameters
- Returns
- value
Point
Approximation of the integral.
- value
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] >>> print(value) -0.590...
-
setName
(name)¶ Accessor to the object’s name.
- Parameters
- namestr
The name of the object.
-
setShadowedId
(id)¶ Accessor to the object’s shadowed id.
- Parameters
- idint
Internal unique identifier.
-
setVisibility
(visible)¶ Accessor to the object’s visibility state.
- Parameters
- visiblebool
Visibility flag.