TRESNEI is a MATLAB code for bound-constrained least-squares problems

\min_{l\le x \le u}\, f(x)=\frac{1}{2}||F(x)||_2^2, 
\quad \quad \quad F:\mathbb{R}^n\rightarrow \mathbb{R}^m

where F is a continuously differentiable function and l, u are defined n-dimensional lower and upper bounds such that -∞ ≤ l ≤ u ≤ ∞. Free and fixed variables are handled by setting corresponding components of l and u to be -∞ and ∞, or by setting them equal to each other.

TRESNEI solves the nonlinear least-squares problem irrespective of its dimensions m and n. The algorithm implemented is a trust-region Gauss-Newton method which generates feasible iterates and relies on matrix factorization. The trust-region subproblem is solved by a dogleg strategy. The method is globally and fast locally convergent under standard assumptions. Various input/output options are provided, and we refer to the code itself for further documentation.

TRESNEI is a nontrivial extension of the solver STRSCNE for square bound-constrained nonlinear systems of equations.

TRESNEI covers the solution of small and zero residual bound-constrained nonlinear least-squares problems and handles the solution of systems of nonlinear equalities and inequalities. In practice TRESNEI solves:

  • bound-constrained square and nonsquare systems of nonlinear equations

    C_E(x) = 0 \\       
    l\le  x  \le u
    \end{array}  \quad \quad \quad C_E: \mathbb{R}^n \rightarrow \mathbb{R}^{m_E};
  • nonlinear least-squares

    \min_{l\le x \le u}\, \frac{1}{2}||C_E(x)||_2^2, \quad \quad \quad C_E: \mathbb{R}^n \rightarrow \mathbb{R}^{m_E};
  • systems of nonlinear equalities and inequalities

    C_E(x) = 0 \\       
    C_I(x) \le 0 \\  
    l\le  x  \le u
    \end{array}   \quad \quad \quad C_E: \mathbb{R}^n \rightarrow \mathbb{R}^{m_E},\:\:\:   
    C_I:\mathbb{R}^n \rightarrow \mathbb{R}^{m_I}.

The bound-constrained least-squares problem solved internally is the following

\min_{l\le x \le u}\, ||F(x)||^2_2 = \min_{l\le x \le u}\, \left \| 
C_E(x) \\
\frac{1}{2} \max \{C_I(x),0 \}^2 \\  
\right \|_2^2, \; \mbox{ where } F:\mathbb{R}^n\rightarrow \mathbb{R}^{m_E+m_I}


TRESNEI code has non-commercial purposes. We welcome questions, comments, recommended changes and bug reports.
If you use this code, the authors would appreciate your acknowledging having done so in the reports, publications, theses, etc., resulting from their use.