QuadraticTaylor

class QuadraticTaylor(*args)

Second order polynomial response surface by Taylor expansion.

Available constructors:
QuadraticTaylor(center, function)
Parameters:

center : sequence of float

Point \vect{x}_0 where the Taylor expansion of the function h is performed.

function : Function

Function h to be approximated.

Notes

The approximation of the model response \vect{y} = h(\vect{x}) around a specific set \vect{x}_0 = (x_{0,1},\dots,x_{0,n_{X}}) of input parameters may be of interest. One may then substitute h for its Taylor expansion at point \vect{x}_0. Hence h is replaced with a first or second-order polynomial \widehat{h} whose evaluation is inexpensive, allowing the analyst to apply the uncertainty anaysis methods.

We consider here the second order Taylor expansion around \ux=\vect{x}_0.

\vect{y} \, \approx \, \widehat{h}(\vect{x}) \, = \,
 h(\vect{x}_0) \, + \, \sum_{i=1}^{n_{X}} \;
  \frac{\partial h}{\partial x_i}(\vect{x}_0).\left(x_i - x_{0,i} \right) \, +
 \, \frac{1}{2} \; \sum_{i,j=1}^{n_X} \;
  \frac{\partial^2 h}{\partial x_i \partial x_j}(\vect{x}_0).\left(x_i - x_{0,i} \right).\left(x_j - x_{0,j} \right)

Introducing a vector notation, the previous equation rewrites:

\vect{y} \, \approx \,
 \vect{y}_0 \, +
 \, \vect{\vect{L}} \: \left(\vect{x}-\vect{x}_0\right) \, +
 \, \frac{1}{2} \; \left\langle \left\langle\vect{\vect{\vect{Q}}}\:,
                                                  \vect{x}-\vect{x}_0 \right\rangle,
                                            \:\vect{x}-\vect{x}_0 \right\rangle

where

  • \vect{y_0} = (y_{0,1} , \dots, y_{0,n_Y})^{\textsf{T}} = h(\vect{x}_0) is the vector model response evaluated at \vect{x}_0 ;
  • \vect{x} is the current set of input parameters ;
  • \vect{\vect{L}} = \left( \frac{\partial y_{0,j}}{\partial x_i} \,,\, i=1,\ldots, n_X \,,\, j=1,\ldots, n_Y \right) is the transposed Jacobian matrix evaluated at \vect{x}_0 ;
  • \vect{\vect{Q}} = \left\{ \frac{\partial^2 y_{0,k}}{\partial x_i \partial x_j} \, \, , \, \, i,j=1,\ldots, n_X \, \, , \, \, k=1, \ldots, n_Y \right\} is the transposed Hessian matrix.

Examples

>>> import openturns as ot
>>> formulas = ['x1 * sin(x2)', 'cos(x1 + x2)', '(x2 + 1) * exp(x1 - 2 * x2)']
>>> myFunc = ot.SymbolicFunction(['x1', 'x2'], formulas)
>>> myTaylor = ot.QuadraticTaylor([1, 2], myFunc)
>>> myTaylor.run()
>>> responseSurface = myTaylor.getResponseSurface()
>>> print(responseSurface([1.2,1.9]))
[1.13655,-0.999155,0.214084]

Methods

getCenter() Get the center.
getClassName() Accessor to the object’s name.
getConstant() Get the constant vector of the approximation.
getId() Accessor to the object’s id.
getInputFunction() Get the function.
getLinear() Get the gradient of the function at \vect{x}_0.
getName() Accessor to the object’s name.
getQuadratic() Get the hessian of the function at \vect{x}_0.
getResponseSurface() Get an approximation of the function.
getShadowedId() Accessor to the object’s shadowed id.
getVisibility() Accessor to the object’s visibility state.
hasName() Test if the object is named.
hasVisibleName() Test if the object has a distinguishable name.
run() Perform the Quadratic Taylor expansion around \vect{x}_0.
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.
__init__(*args)

x.__init__(…) initializes x; see help(type(x)) for signature

getCenter()

Get the center.

Returns:

center : Point

Point \vect{x}_0 where the Taylor expansion of the function is performed.

getClassName()

Accessor to the object’s name.

Returns:

class_name : str

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

getConstant()

Get the constant vector of the approximation.

Returns:

constantVector : Point

Constant vector of the approximation, equal to h(x_0).

getId()

Accessor to the object’s id.

Returns:

id : int

Internal unique identifier.

getInputFunction()

Get the function.

Returns:

function : Function

Function h to be approximated.

getLinear()

Get the gradient of the function at \vect{x}_0.

Returns:

gradient : Matrix

Gradient of the function h at the point \vect{x}_0 (the transposition of the jacobian matrix).

getName()

Accessor to the object’s name.

Returns:

name : str

The name of the object.

getQuadratic()

Get the hessian of the function at \vect{x}_0.

Returns:

tensor : SymmetricTensor

Hessian of the function h at the point \vect{x}_0.

getResponseSurface()

Get an approximation of the function.

Returns:

approximation : Function

An approximation of the function h by a Quadratic Taylor expansion at the point \vect{x}_0.

getShadowedId()

Accessor to the object’s shadowed id.

Returns:

id : int

Internal unique identifier.

getVisibility()

Accessor to the object’s visibility state.

Returns:

visible : bool

Visibility flag.

hasName()

Test if the object is named.

Returns:

hasName : bool

True if the name is not empty.

hasVisibleName()

Test if the object has a distinguishable name.

Returns:

hasVisibleName : bool

True if the name is not empty and not the default one.

run()

Perform the Quadratic Taylor expansion around \vect{x}_0.

setName(name)

Accessor to the object’s name.

Parameters:

name : str

The name of the object.

setShadowedId(id)

Accessor to the object’s shadowed id.

Parameters:

id : int

Internal unique identifier.

setVisibility(visible)

Accessor to the object’s visibility state.

Parameters:

visible : bool

Visibility flag.