CenteredFiniteDifferenceHessian

class CenteredFiniteDifferenceHessian(*args)

Second order centered finite-difference scheme.

Available constructors:

CenteredFiniteDifferenceHessian(epsilon, evalImpl)

CenteredFiniteDifferenceHessian(step, evalImpl)

Parameters:
evalImplEvaluationImplementation

Implementation of the evaluation of a function.

epsilonfloat, sequence of float

Finite difference steps for each dimension.

stepFiniteDifferenceStep

Defines how finite difference steps values are computed.

Notes

CenteredFiniteDifferenceHessian provides a second order centered finite- difference scheme:

\frac{\partial^2 f_k}{\partial x_i \partial x_j} \approx
                                   \frac{
                                      f_k(x + \epsilon_i + \epsilon_j) -
                                      f_k(x + \epsilon_i - \epsilon_j) +
                                      f_k(x - \epsilon_i - \epsilon_j) -
                                      f_k(x - \epsilon_i + \epsilon_j)}
                                   {4 \epsilon_i \epsilon_j}

Examples

>>> import openturns as ot
>>> formulas = ['x1 * sin(x2)', 'cos(x1 + x2)', '(x2 + 1) * exp(x1 - 2 * x2)']
>>> myFunc = ot.SymbolicFunction(['x1', 'x2'], formulas)
>>> epsilon = [0.01]*2
>>> myHessian = ot.CenteredFiniteDifferenceHessian(epsilon, myFunc.getEvaluation())
>>> inPoint = [1.0]*2
>>> print(myHessian.hessian(inPoint))
sheet #0
[[  0         0.540293 ]
 [  0.540293 -0.841443 ]]
sheet #1
[[  0.416133  0.416133 ]
 [  0.416133  0.416133 ]]
sheet #2
[[  0.735783 -1.10368  ]
 [ -1.10368   1.47152  ]]

Methods

getCallsNumber()

Accessor to the number of times the hessian has been called.

getClassName()

Accessor to the object's name.

getEpsilon()

Get the finite difference steps.

getEvaluation()

Get the implementation of the evaluation of the function.

getFiniteDifferenceStep()

Get the finite difference step.

getInputDimension()

Get the input dimension.

getMarginal(*args)

Accessor to the hessian implementation of a specific output.

getName()

Accessor to the object's name.

getOutputDimension()

Get the output dimension.

getParameter()

Accessor to the parameter values.

hasName()

Test if the object is named.

hessian(inP)

Get the hessian at some point.

isActualImplementation()

Accessor to the validity flag.

setFiniteDifferenceStep(finiteDifferenceStep)

Set the finite difference step.

setName(name)

Accessor to the object's name.

setParameter(parameter)

Accessor to the parameter values.

__init__(*args)
getCallsNumber()

Accessor to the number of times the hessian has been called.

Returns:
calls_numberint

Integer that counts the number of times the hessian has been called since its creation.

getClassName()

Accessor to the object’s name.

Returns:
class_namestr

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

getEpsilon()

Get the finite difference steps.

Returns:
epsilonPoint

Finite difference steps for each dimension.

getEvaluation()

Get the implementation of the evaluation of the function.

Returns:
evalImplEvaluationImplementation

Implementation of the evaluation of a function.

getFiniteDifferenceStep()

Get the finite difference step.

Returns:
stepFiniteDifferenceStep

Defines how finite difference steps values are computed.

getInputDimension()

Get the input dimension.

Returns:
dimensionint

Input dimension.

getMarginal(*args)

Accessor to the hessian implementation of a specific output.

Parameters:
iint

Integer corresponding to the output (Care: it starts at 0).

indicessequence of integer

The set of indices for which the outputs are extracted.

Returns:
hessianImplementationHessianImplementation

A hessian implementation restricted to its compenents functions which indices are i or indices.

getName()

Accessor to the object’s name.

Returns:
namestr

The name of the object.

getOutputDimension()

Get the output dimension.

Returns:
dimensionint

Output dimension.

getParameter()

Accessor to the parameter values.

Returns:
parameterPoint

The parameter values.

hasName()

Test if the object is named.

Returns:
hasNamebool

True if the name is not empty.

hessian(inP)

Get the hessian at some point.

Parameters:
pointsequence of float

Point where the hessian is computed.

Returns:
hessianSymmetricTensor

Hessian evaluated at point.

isActualImplementation()

Accessor to the validity flag.

Returns:
is_implbool

Whether the implementation is valid.

setFiniteDifferenceStep(finiteDifferenceStep)

Set the finite difference step.

Parameters:
stepFiniteDifferenceStep

Defines how finite difference steps values are computed.

setName(name)

Accessor to the object’s name.

Parameters:
namestr

The name of the object.

setParameter(parameter)

Accessor to the parameter values.

Parameters:
parametersequence of float

The parameter values.

Examples using the class

Estimate moments from Taylor expansions

Estimate moments from Taylor expansions

Function manipulation

Function manipulation