Fmincon toolbox
Purpose
-------
The goal of this toolbox is to provide a fmincon function
in Scilab.
The fmincon function is a nonlinearily constrained optimization
solver.
Currently, we use ipopt for the actual solver of fmincon.
The current state of the function is experimental.
Many features are yet to be implemented.
We provide upgraded versions of the optimset and
optimget functions, which manage options which
are required by fmincon.
The current implementation is able to manage
the following use cases.
We use a L-BFGS formula in order to compute an approximate
of the Hessian of the Lagrangian.
(0) The initial guess is provided in the x0 input argument.
(1) The nonlinear objective function and
the nonlinear constraints are provided.
The fun and nonlcon function can be customized to
configure the nonlinear objective function and nonlinear constraints.
In this case, we use order two finite differences with optimal
step size in order to compute the gradient of the objective
function and the gradient of the constraints.
(2) The parameters are subject to bounds.
The lb and ub parameters can be configure to set
bounds on the parameters.
(3) The objective function and constraints function can
provide the exact gradients as additionnal output arguments
of their function definition.
The two "GradObj" and "GradConstr" options can be turned
"on" for that purpose.
Linear equalities and linear inequalities are not managed in the current
version.
Features
--------
* fmincon : Solves a nonlinearily constrained optimization problem.
Acknowledments
--------------
I thank Vincent Couvert and Yann Collette for their feedback on this module.
Changelog
---------
fmincon (0.3) : Fixed bug on Linux.
fmincon (0.2) : Fixed bug in Demos/runtests.