dogleg(func=None,
dfunc=None,
d2func=None,
args=( ) ,
x0=None,
min_options=( ) ,
func_tol=1e-25,
grad_tol=None,
maxiter=1000000.0,
delta_max=10000000000.0,
delta0=100000.0,
eta=0.0001,
mach_acc=1e-16,
full_output=0,
print_flag=0,
print_prefix='
' )
| source code
|
Dogleg trust region algorithm.
Page 71 from 'Numerical Optimization' by Jorge Nocedal and Stephen J. Wright, 1999, 2nd ed.
The dogleg method is defined by the trajectory p(tau):
/ tau . pU 0 <= tau <= 1,
p(tau) = <
\ pU + (tau - 1)(pB - pU), 1 <= tau <= 2.
where:
tau is in [0, 2]
pU is the unconstrained minimiser along the steepest descent direction.
pB is the full step.
pU is defined by the formula:
gT.g
pU = - ------ g
gT.B.g
and pB by the formula:
pB = - B^(-1).g
If the full step is within the trust region it is taken. Otherwise the point at which the
dogleg trajectory intersects the trust region is taken. This point can be found by solving the
scalar quadratic equation:
||pU + (tau - 1)(pB - pU)||^2 = delta^2
|