Function Help: lmmcp View code for lmmcp Function Reference
lmmcp
```  lmmcp solves a mixed complementarity problem.

lmmcp uses a semismooth least squares formulation. The method applies a
Levenberg-Marquardt/Gauss-Newton algorithm to a least-squares formulation.

X = lmmcp(FUN,X0) tries to solve the system of nonlinear equations F(X)=0 and
starts at the vector X0. FUN accepts a vector X and return a vector F of equation
values F evaluated at X and, as second output if required, a matrix J, the
Jacobian evaluated at X.

X = lmmcp(FUN,X0,LB,UB) solves the mixed complementarity problem of the form:
LB =X     =>   F(X)>0,
LB<=X<=UB =>   F(X)=0,
X =UB =>   F(X)<0.

X = lmmcp(FUN,X0,LB,UB,OPTIONS) solves the MCP problem using the options
defined in the structure OPTIONS. Main fields are
Display    : control the display of iterations, 'none' (default),
'iter-detailed' or 'final-detailed'
Switch from phase I to phase II
preprocess : activate preprocessor for phase I (default = 1)
presteps   : number of iterations in phase I (default = 20)
Termination parameters
MaxIter    : Maximum number of iterations (default = 500)
tmin       : safeguard stepsize (default = 1E-12)
TolFun     : Termination tolerance on the function value, a positive
scalar (default = sqrt(eps))
Stepsize parameters
m          : number of previous function values to use in the nonmonotone
line search rule (default = 10)
kwatch     : maximum number of steps (default = 20 and should not be
smaller than m)
watchdog   : activate the watchdog strategy (default = 1)
Ther are other minor parameters. Please see the code for their default values
and interpretation.

[X,FVAL] = lmmcp(FUN,X0,...) returns the value of the equations FUN at X.

[X,FVAL,EXITFLAG] = lmmcp(FUN,X0,...) returns EXITFLAG that describes the exit
conditions. Possible values are
1         : lmmcp converged to a root
0         : Too many iterations
-1         :

[X,FVAL,EXITFLAG,OUTPUT] = lmmcp(FUN,X0,...) returns the structure OUTPUT that
contains the number of iterations (OUTPUT.iterations), the value of the merit
function (OUTPUT.Psix), and the norm of the derivative of the merit function
(OUTPUT.normDPsix).

[X,FVAL,EXITFLAG,OUTPUT,JACOB] = lmmcp(FUN,X0,...) returns JACOB the Jacobian
of FUN evaluated at X.

More details of the main program may be found in the following paper:

Christian Kanzow and Stefania Petra: On a semismooth least squares formulation of
complementarity problems with gap reduction. Optimization Methods and Software
19, 2004, pp. 507-525.

In addition, the current implementation uses a preprocessor which is the
projected Levenberg-Marquardt step from the following preprint:

Christian Kanzow and Stefania Petra: Projected filter trust region methods for a
semismooth least squares formulation of mixed complementarity
problems. Optimization Methods and Software
22, 2007, pp. 713-735.

A user's guide is also available:

Christian Kanzow and Stefania Petra (2005).
lmmcp --- A Levenberg-Marquardt-type MATLAB Solver for Mixed Complementarity Problems.
University of Wuerzburg.
http://www.mathematik.uni-wuerzburg.de/~kanzow/software/UserGuide.pdf

This is a modification by Christophe Gouel of the original files, which can be