INTERVAL_MATRIX IntervalGradient (int l1,int l2,INTERVAL_VECTOR & x)
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.