LINCOA solves linearly constrained optimization problems without using derivatives of the objective function, which makes it a derivative-free algorithm. The algorithm solves the problem using a trust region method that forms quadratic models by interpolation. One new point is computed on each iteration, usually by solving a trust region subproblem subject to the linear constraints, or alternatively, by choosing a point to replace an interpolation point that may be too far away for reliability. In the second case, the new point may not satisfy the linear constraints.
The same as NEWUOA, LINCOA constructs the quadratic models by the least Frobenius norm updating technique. A model function is determined by interpolating the objective function at m (an integer between n + 2 and (n + 1)(n + 2)/2) points; the remaining freedom, if any, is taken up by minimizing the Frobenius norm of the change to the model's Hessian (with respect to the last iteration).
LINCOA software was released on December 6, 2013. In the comment of the source code, it is said that LINCOA is not suitable for very large numbers of variables (which is typically true for algorithms not using derivatives), but "a few calculations with 1000 variables, however, have been run successfully overnight, and the performance of LINCOA is satisfactory usually for small numbers of variables." It is also pointed out that the author's typical choices of m are n + 6 and 2n + 1, the latter "being recommended for a start", and "larger values tend to be highly inefficent when the number of variables is substantial, due to the amount of work and extra difficulty of adjusting more points."
The trust region subproblem is solved by the truncated conjugate gradient method described in Powell's report, but Powell did not write a report on the other details of LINCOA.
The LINCOA software is distributed under The GNU Lesser General Public License (LGPL).