Function Help: lmmcp View code for lmmcp Function Reference
  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
  [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.
  This is a modification by Christophe Gouel of the original files, which can be
  downloaded from:
  copyright: Christian Kanzow and Stefania Petra
             Institute of Applied Mathematics and Statistics
             University of Wuerzburg
             Am Hubland
             97074 Wuerzburg