| Type | Location | Extends | Description |
|---|---|---|---|
| bfgs | nonlin_optimize | line_search_optimizer | Defines a Broyden–Fletcher–Goldfarb–Shanno (BFGS) optimizer for minimization of smooth functions of multiple variables. The method uses a quasi-Newton inverse Hessian approximation and the update with and . |
| brent_solver | nonlin_solve | equation_solver_1var | Defines a derivative-free solver for a scalar equation based on Brent's method. The method combines bisection with secant and inverse quadratic interpolation to maintain a bracket and converge to a root. |
| constrained_equation_solver | nonlin_least_squares | least_squares_solver | A least-squares solver that enforces bounds on the solution values, typically expressed as . The solver applies the bounds during the iteration so that each trial step remains feasible. |
| constrained_least_squares_solver | nonlin_least_squares | constrained_equation_solver | Defines a constrained least-squares solver using Powell's trust region method. The method seeks a correction that reduces the residual vector while remaining inside a trust region of size and the bounds . The trial step is formed from a Gauss-Newton step a steepest-descent step and a dogleg combination with chosen so that . If the trust-region step is rejected, a backtracking line search is used to improve the step acceptance. |
| equation_optimizer | nonlin_multi_var | None | A base class for optimization of an equation of multiple variables. |
| equation_solver | nonlin_multi_eqn_mult_var | None | A base class for various solvers of nonlinear systems of equations. |
| equation_solver_1var | nonlin_single_var | None | A base class for various solvers of equations of one variable. |
| fcn1var_helper | nonlin_single_var | None | Defines a type capable of encapsulating an equation of one variable of the form: f(x) = 0. |
| fcnnvar_helper | nonlin_multi_var | None | Defines a type capable of encapsulating an equation of N variables. |
| iteration_behavior | nonlin_types | None | Defines a set of parameters that describe the behavior of the iteration process. |
| least_squares_solver | nonlin_least_squares | equation_solver | Defines a Levenberg-Marquardt solver for unconstrained least-squares problems. The update is obtained from the damped normal equations where is the residual vector and . |
| line_search | nonlin_linesearch | None | Defines a type capable of performing an inexact, backtracking line search to find a point as far along the specified direction vector that is usable for unconstrained minimization problems. |
| line_search_optimizer | nonlin_optimize | equation_optimizer | A base class for optimizers that improve a trial step with a line search. The search direction is combined with a step length through and the accepted step satisfies a sufficient decrease condition. |
| line_search_solver | nonlin_solve | equation_solver | A base class for nonlinear solvers that improve convergence by combining a search direction with a line search. At each iteration the step is taken as where the step length $\alpha_k$ is chosen to satisfy a sufficient decrease condition such as the Armijo rule . |
| nelder_mead | nonlin_optimize | equation_optimizer | Defines a direct-search optimizer based on Nelder and Mead's simplex method. The algorithm maintains a simplex of $n+1$ vertices and updates it by reflection, expansion, contraction, and shrinking steps to reduce the objective value . |
| newton_1var_solver | nonlin_solve | equation_solver_1var | Defines a safeguarded Newton solver for a scalar equation . The iteration uses the Newton update and retains a bracketing interval so that the step remains bounded by the root bracket. |
| newton_solver | nonlin_solve | line_search_solver | Defines a Newton solver for systems of nonlinear equations. At each iteration the correction is obtained from the linearized system where is the Jacobian matrix of . |
| polynomial | nonlin_polynomials | None | Defines a polynomial, and associated routines for performing polynomial operations. |
| quasi_newton_solver | nonlin_solve | line_search_solver | Defines a quasi-Newton solver based upon Broyden's method. The algorithm maintains an approximate Jacobian and updates the iterate from the nonlinear system $F(x)=0$ using with the rank-one Jacobian correction where . |
| value_pair | nonlin_types | None | Defines a pair of numeric values. |
| vecfcn_helper | nonlin_multi_eqn_mult_var | None | Defines a type capable of encapsulating a system of nonlinear equations of the form: F(X) = 0. This type is used to establish the system of equations to solve, and provides a means for computing the Jacobian matrix for the system of equations, and any other ancillary operations that may be needed by the solver. |