The classical interval Newton method is embedded in the procedure
GradientSolve and HessianSolve but may also be useful in
other procedures. Furthermore this method relies on the use of the
product
where
is the Jacobian of the system of
equations and
the inverse of
computed at some
particular point
. In the classical method this product is
cimputed numerically and this does not take into account that the
element of
are functions of the same parameters. For example if the first column of
is
where
is some parameter with interval value, the
first element of
will be computer as
The procedure IntervalNewton is a sophisticated interval Newton
algorithm that allows one to introduce knowledge on the product
in the classical scheme. Its syntax is:
int IntervalNewton(int Dim,INTERVAL_VECTOR &P,INTERVAL_VECTOR &FDIM, INTERVAL_MATRIX &Grad,MATRIX &GradMid, MATRIX &InvGradMid, int hasBGrad, INTERVAL_VECTOR (* BgradFunc)(int,int,INTERVAL_VECTOR &), INTERVAL_MATRIX (* BgradJFunc)(int, int,INTERVAL_VECTOR &), int grad1, int grad3B1)where
Various variants of IntervalNewton are available:
int IntervalNewton(int Dim,INTERVAL_VECTOR &P,INTERVAL_VECTOR &FMID, INTERVAL_MATRIX &Grad,MATRIX &GradMid,MATRIX &InvGradMid)is the classical interval Newton method with hasBgrad=grad1=grad3B1=0.
int IntervalNewton(int Dim,INTERVAL_VECTOR &P,int DimVar,int DimEq, int TypeGradMid,MATRIX &InvGradMid, INTERVAL_VECTOR (*TheIntervalFunction)(int,int,INTERVAL_VECTOR &), INTERVAL_MATRIX (* Gradient)(int, int, INTERVAL_VECTOR &))is also the classical interval Newton method for a system having DimVar unknowns and DimEq equations (here DimVar and DimEq are not required to have the same value: only the Dim first equations will be considered). The flag TypeGradMid is used to determine how the mid jacobian matrix is calculated: if 0 this matrix is calculated for the mid-point of P, if 1 the mid-jacobian is calculated as the mid-matrix of the interval jacobian calculated for P.
int IntervalNewton(int Dim,INTERVAL_VECTOR &P,int DimEq,int DimVar, int has_BGrad, INTERVAL_VECTOR (* BgradFunc)(int,int,INTERVAL_VECTOR &), INTERVAL_MATRIX (* BgradJFunc)(int, int,INTERVAL_VECTOR &), int grad1,int grad3B1, int TypeGradMid, MATRIX &GradFuncMid, MATRIX &InvGradFuncMid, INTERVAL_VECTOR (* TheIntervalFunction)(int,int,INTERVAL_VECTOR &), INTERVAL_MATRIX (* Gradient)(int, int, INTERVAL_VECTOR &))Here the the mid jacobian GradFuncMid and its inverse InvGradFuncMid will be provided by the procedure.