Unconstrained and bound-constrained nonlinear optimization, root finding (fzero, fsolve), and nonlinear curve fitting.
More...
|
| file | fzero.hpp |
| | Scalar root-finding and unconstrained minimisation.
|
|
| Value | nk::optim::fzero (FnHandle fn, double x0, std::pmr::memory_resource *mr=nullptr) |
| | Scalar root-finder, initial-guess form (x = fzero(fn, x0)).
|
| Value | nk::optim::fzero (FnHandle fn, double a, double b, std::pmr::memory_resource *mr=nullptr) |
| | Scalar root-finder, bracket form (x = fzero(fn, a, b)).
|
| Value | nk::optim::fminbnd (FnHandle fn, double lo, double hi, double tol, std::pmr::memory_resource *mr=nullptr) |
| | Bounded scalar minimisation (x = fminbnd(fn, lo, hi, tol)).
|
| Value | nk::optim::fminsearch (FnHandle fn, Span< const double > x0, double tol, std::pmr::memory_resource *mr=nullptr) |
| | Multi-dimensional unconstrained minimisation (x = fminsearch(fn, x0, tol)).
|
Unconstrained and bound-constrained nonlinear optimization, root finding (fzero, fsolve), and nonlinear curve fitting.
◆ fminbnd()
| Value nk::optim::fminbnd |
( |
FnHandle | fn, |
|
|
double | lo, |
|
|
double | hi, |
|
|
double | tol, |
|
|
std::pmr::memory_resource * | mr = nullptr ) |
Bounded scalar minimisation (x = fminbnd(fn, lo, hi, tol)).
Brent's golden-section + parabolic-interpolation hybrid on [lo, hi].
- Parameters
-
| fn | Callback (scalar in, scalar out). |
| lo | Lower bound. |
| hi | Upper bound (hi > lo). |
| tol | Convergence tolerance on the minimiser location. |
| mr | Memory resource (nullptr → process default). |
- Returns
- Scalar minimiser x* ∈ [lo, hi].
- See also
- fzero, fminsearch
◆ fminsearch()
| Value nk::optim::fminsearch |
( |
FnHandle | fn, |
|
|
Span< const double > | x0, |
|
|
double | tol, |
|
|
std::pmr::memory_resource * | mr = nullptr ) |
Multi-dimensional unconstrained minimisation (x = fminsearch(fn, x0, tol)).
Nelder-Mead simplex starting at x0. The callback receives a 1-element args whose [0] entry is a 1 × n DOUBLE row Value of length n = x0.size(), and writes a scalar into outs[0].
- Parameters
-
| fn | Callback (vector in, scalar out). |
| x0 | Starting point (any length ≥ 1). |
| tol | Convergence tolerance. |
| mr | Memory resource (nullptr → process default). |
- Returns
- Minimiser as a n × 1 DOUBLE column Value (length n = x0.size()).
- See also
- fminbnd
◆ fzero() [1/2]
| Value nk::optim::fzero |
( |
FnHandle | fn, |
|
|
double | a, |
|
|
double | b, |
|
|
std::pmr::memory_resource * | mr = nullptr ) |
Scalar root-finder, bracket form (x = fzero(fn, a, b)).
Runs Brent's method on [a, b]. Throws if sign(fn(a)) ==
sign(fn(b)) (no sign change inside the interval).
- Parameters
-
| fn | Callback (scalar in, scalar out). |
| a | Lower bracket bound (must be finite, a < b). |
| b | Upper bracket bound (must be finite, a < b). |
| mr | Memory resource (nullptr → process default). |
- Returns
- Scalar root.
- Exceptions
-
| Error | No sign change in [a, b], or invalid bounds. |
- See also
- fminbnd
◆ fzero() [2/2]
| Value nk::optim::fzero |
( |
FnHandle | fn, |
|
|
double | x0, |
|
|
std::pmr::memory_resource * | mr = nullptr ) |
Scalar root-finder, initial-guess form (x = fzero(fn, x0)).
Expands an outward bracket around x0 until a sign change is detected, then runs Brent's method.
The callback receives a 1-element args (the scalar evaluation point) and writes its scalar result into outs[0].
- Parameters
-
| fn | Callback (scalar in, scalar out). |
| x0 | Initial guess. |
| mr | Memory resource (nullptr → process default). |
- Returns
- Scalar root.
- Exceptions
-
| Error | No sign change found near x0. |
- See also
- fminbnd