Create a symbolic functionΒΆ

In this example we are going to create a function from mathematical formulas:

f(x_1, x_2) = -(6 + x_0^2 - x_1)

Analytical expressions of the gradient and hessian are automatically computed except if the function is not differentiable everywhere. In that case a finite difference method is used.

[30]:
from __future__ import print_function
import openturns as ot
import math as m
[31]:
# create a symbolic function
function = ot.SymbolicFunction(['x0', 'x1'],
                               ['-(6 + x0^2 - x1)'])
print(function)
[x0,x1]->[-(6 + x0^2 - x1)]
[32]:
# evaluate function
x = [2.0, 3.0]
print('x=', x, 'f(x)=', function(x))
x= [2.0, 3.0] f(x)= [-7]
[33]:
# show gradient
print(function.getGradient())

| d(y0) / d(x0) = -2*x0
| d(y0) / d(x1) = 1

[34]:
# use gradient
print('x=', x, 'df(x)=', function.gradient(x))
x= [2.0, 3.0] df(x)= [[ -4 ]
 [  1 ]]
[45]:
# draw isocontours of f around [2,3]
function.draw(0, 1, 0, [2.0, 3.0], [1.5, 2.5], [2.5, 3.5])
[45]:
../../_images/examples_functional_modeling_symbolic_function_7_0.svg