- Fix loading of
Zygote
extension with Julia ≤ 1.8.
- In Powell's methods (COBYLA, NEWUOA, and BOBYQA):
- Preserve scaling factors from being garbage collected while calling the C code.
- Variables, bounds, and scaling factors can be specified in more flexible ways than dense vector of C-double values.
-
New methods
Brent.fmax
andBrent.fmaxbrkt
. -
Methods for univariate functions
Brent.fzero
,Brent.fmin
,Brent.fminbrkt
,BraDi.minimize
,BraDi.maximize
Step.minimize
,Step.maximize
, andStep.search
have changed as follows:x
andf(x)
may have units.- The floating-point type for computations is not
Float64
by default but determined from the types of the specified numerical arguments. - The number of function calls has been appended to the tuple returned by these methods.
- The keyword
period
ofBraDi.minimize
andBraDi.maximize
has been replaced byperidoc
which is a Boolean, the period being given by the distance between the extreme values ofx
. Brent.fzero
yields the 5-tuple(x,fx,lo,hi,nf)
withx
the estimated solution,fx = f(x)
the corresponding function value,lo
andhi
the lower and upper bounds for the solution, andnf
the number of calls tof
.Step.minimize
,Step.maximize
,Step.search
,BraDi.minimize
, andBraDi.maximize
return a 5-tuple(xm,fm,lo,hi,nf)
withxm
the position of the global optimum,fm = f(xm)
the corresponding function value,lo
andhi
the lower and upper bounds for the exact solution, andnf
the number of function calls. This is similar tofmin
andfmax
.Step.minimize
,Step.maximize
, andStep.search
no longer have amaxeval
keyword. The number of function evaluations thus only depends on the requested accuracy for the solution.
-
The STEP method for finding a global minimum or maximum of an univariate function
f(x)
has been improved in many respects:x
andf(x)
may have units.- The numerical precision used by the algorithm is automatically defined by
the floating-point types of
x
andf(x)
. - Speed-up computations (by a factor of two) by simplifying the storage of trials.
- Keywords have different names:
atol
andrtol
specify absolute and relative tolerances for the precision of the solution,aboost
andrboost
specify absolute and relative boost parameters to define the function value to aim at.
- Fix missing methods to handle upper bounds.
-
Automatic-differentiation now possible with
Zygote
. -
Fix termination of SPG when the function value no longer change.
-
Keyword
verb
invmlmb
andspg
can be an integer to print information everyverb
iteration. -
Additional points can be specified in
fmin
. This replaces unexported methodsfmin0
,fmin1
,fmin2
, andfmin3
which have been suppressed.
- Use LazyAlgebra package for vectorized operations and linear conjugate gradient.