** Next:** Evaluation procedure using the
** Up:** Implementation
** Previous:** Return code
** Contents**

###

Jacobian matrix

The user must provide a function which will compute the interval
evaluation of the jacobian matrix
of its particular functions for a given box. As for the function
evaluation procedure we have chosen a syntax which shows the best
compromise between program calls and interval calculation.
The syntax of this function is:
INTERVAL_MATRIX IntervalGradient (int l1,int l2,INTERVAL_VECTOR & x)

`x`: a dimensional interval vector which define the
intervals for the unknowns
`l1,l2`: the function must be able to return the interval
evaluation of the component of the jacobian matrix
at row `l1` and column `l2` i.e. the derivative of the
function number `l1` with respect to the variable number `l2`.
The first row has
number 1, the last `n` and the first column has number 1, the last
`m`.

This procedure returns an interval matrix `grad` of size
`m X n` in which `grad(l1,l2)` has been computed.
This function should be written using the BIAS/Profil rules.
Note that if `ALIAS_Store_Gradient` has not been set to 0 we
will store the simplified Jacobian matrix
for each
box. Indeed if for a given
box B the interval evaluation of one element of the gradient has a
constant sign (indicating a monotonic behavior of the function)
setting the simplified jacobian matrix element to -1 or 1 allows to avoid
unnecessary evaluation of the element of
the Jacobian for the box resulting from a bisection of B as they will
exhibit the same monotonic behavior. Although this idea may sound
quite simple it has a very positive effect on the computation
time. The name of the storage variable of the simplified jacobian is:

INTEGER_MATRIX Gradient_Solve_General_Interval

If a function is not differentiable you just set the value
of `grad(i,..)` to the interval [-1e30,1e30]. It is important to
define here a large
interval as the program `Compute_Interval_Function_Gradient`
that computes the interval evaluation of the function by using their
derivatives uses also the Taylor evaluation based on the value of the
derivatives: a small interval value of the derivatives may lead to a
wrong function evaluation.

Note also that a convenient way to write the `Gradient`
procedure is to use the procedure `MakeJ` offered by ALIAS-Maple
(see the ALIAS-Maple manual). Take care also of the interval valuation
problems of
the element of the Jacobian (see section 2.1.1.3) which may
be different from the one of the functions: for example if a
function is
it is interval-valuable as soon as the
lower bound of is greater or equal to 0 although the gradient will
involve which is not interval-valuable if the lower bound of
is equal to 0. ALIAS-Maple offers also the possibility to treat
automatically the interval-valuation problems of the jacobian elements.

** Next:** Evaluation procedure using the
** Up:** Implementation
** Previous:** Return code
** Contents**
Jean-Pierre Merlet
2012-12-20