![]() |
Prev | Next |
ok = min_nso_quad(
level, f, g, a, epsilon, maxitr, b_in, x_in, x_out
)
template <class DblVector, class SizeVector> bool min_nso_quad( size_t level , ADFun<double>& f , ADFun<double>& g , ADFun<double>& a , const DblVector& epsilon , SizeVector maxitr , double b_in , const DblVector& x_in , DblVector& x_out )
double
.
size_t
.
level == 0
,
no tracing of the optimization is printed.
If
level >= 1
,
a trace of each iteration of min_nso_quad
is printed.
If
level >= 2
,
a trace of each iteration of the abs_min_quad
sub-problem is printed.
If
level >= 3
,
a trace of the qp_box
sub-problem is printed.
If
level >= 4
,
a trace of the qp_interior
sub-problem is printed.
n
to denote the dimension of the domain for
f
; i.e.,
f.Domain()
.
m
to denote the dimension of the range for
f
; i.e.,
f.Range()
.
This must be equal to one.
f
.
f
.
f
.
epsilon[0]
is convergence criteria in terms
of the infinity norm of the difference of
x_out
between iterations.
The value
epsilon[1]
is convergence criteria in terms
of the derivative of @(@
f(x)
@)@.
This derivative is actually the average of the directional derivative
in the direction of the sub-problem minimizer.
maxitr[0]
is the maximum number of
min_nso_quad
iterations to try before giving up on convergence.
The value
maxitr[1]
is the maximum number of iterations in the
abs_min_quad
sub-problem.
The value
maxitr[2]
is the maximum number of iterations in
the qp_interior
sub-problems.
j = 0 , ..., n-1
.
It must hold that
b_in > epsilon[0]
.
x_out
has size
n
.
It is the starting point for the optimization procedure; i.e.,
the min_nso_quad
iterations.
x_out
has size
n
.
The input value of its elements does not matter.
Upon return,
it is the approximate minimizer
of the abs-normal approximation for @(@
f(x)
@)@ over the trust region
is @(@
x = \hat{x} + \Delta x
@)@.
min_nso_quad
.
It returns true if the test passes and false otherwise.