% Release Notes, Optimization Toolbox.
% Version 2.0 (R11)    09-Oct-1998
%
% The README FILE
% This file contains a list of bug fixes, enhancements, and new features.  
% Use HELP on any of these files for more information.
%
% DIFFERENCES BETWEEN VERSION 2.0 AND VERSION 1.5
% 
% Topics include:
%
% - general enhancements
% - enhancements to specific functions
% - new functions
% - compatibility issues
%
% GENERAL ENHANCEMENTS 
%
% This section summarizes general areas of enhancement to the toolbox. See
% the Optimization Toolbox User's Guide for more information about these
% enhancements.
%
% Support for large-sparse problems
%   New large-scale (sparse) algorithms have been incorporated into some
%   of the toolbox functions, including support for linear programming and
%   nonlinear functions.  See the NEW FUNCTIONS section below for details
%   on what specific problems are supported.
%
% Nonlinear least-squares with bound constraints
%   Bounds on the parameters for nonlinear least-squares and curvefitting
%   problems can be specified. See LSQNONLIN and LSQCURVEFIT in the NEW
%   FUNCTIONS section below.
% 
% Command line syntax 
%   The input and output arguments for the new functions have been
%   expanded to improve usability and numerical efficiency.  For example,
%   nonlinear and linear constraints are specified separately. Also
%   equality constraints and inequality constraints are specified
%   separately.  The gradient of the objective is now computed
%   in the same function as the objective; likewise the gradient
%   of the nonlinear constraints is computed in the same function as the
%   nonlinear constraints.  More output information is available
%   including an exit flag that denotes the termination state.
%
% Options structure
%   The options array has been updated to an options structure. The
%   fields for the structure are changed or accessed using the OPTIMSET
%   and OPTIMGET functions.
%
% Diagnostic output
%   Diagnostic output may be requested at the beginning of an
%   optimization routine. The information printed to the screen includes
%   the number of linear and nonlinear functions, the number of equality 
%   and inequality constraints, the number of upper and lower bounds, and
%   the objective and constraint functions used.  See OPTIMSET and the
%   'Diagnostics' OPTIONS parameter.
%
% ENHANCED FUNCTIONS FOR 2.0
%   fzero       - Calling sequence updated to match other new functions.
%   fsolve      - Nonlinear system of equations solve (function solve)
%                 (now includes support for large-scale optimization).
%
% NEW FUNCTIONS FOR 2.0
%   fgoalattain - Multidimensional goal attainment optimization 
%                 (was attgoal).
%   fminbnd     - Scalar bounded nonlinear function minimization
%                 (was fmin).
%   fmincon     - Multidimensional constrained nonlinear minimization
%                 (was constr, plus includes support for large-scale optimization 
%                 when only linear equalities or only bound constraints and gradient
%                 information is provided).
%   fminimax    - Multidimensional minimax optimization (was minimax).
%   fminsearch  - Multidimensional unconstrained nonlinear minimization, 
%                 by Nelder-Mead direct search method.
%                 (was fmins).
%   fminunc     - Multidimensional unconstrained nonlinear minimization
%                 (was fminu, plus includes support for large-scale optimization
%                  when gradient information is provided).
%   fseminf     - Multidimensional constrained minimization, semi-infinite 
%                 constraints (was seminf).
%   lsqcurvefit - Nonlinear curvefitting via least squares.
%                 (was curvefit, plus includes support for large-scale optimization
%                 and allows bound constraints on the variables).
%   lsqlin      - Linear least squares with linear constraints
%                 (was conls, plus includes support for large-scale optimization
%                 when only bound constraints).
%   lsqnonlin   - Nonlinear least squares with upper and lower bounds.
%                 (was leastsq, plus includes support for large-scale optimization
%                 and allows bound constraints on the variables).
%   lsqnonneg   - Linear least squares with nonnegativity constraints
%                 (was nnls).
%   linprog    -  Linear programming
%                 (was lp, plus includes support for large-scale optimization).
%   quadprog   -  Quadratic programming
%                 (was qp, plus includes support for large-scale optimization
%                 when only linear equalities or only bound constraints).
%   optimset - Create or alter optimization OPTIONS structure. 
%   optimget - Get optimization parameters from OPTIONS structure.    
%
% Use HELP on these files or TYPE them for more information.
%
% COMPATIBILITY ISSUES
%   Most of the optimization functions have changed names except for
%   FZERO and FSOLVE.  Except for FZERO and FSOLVE, the old function
%   names have been temporarily grandfathered, meaning that for now they
%   are still available in the toolbox and the code for these functions is
%   exactly the same as in version 1.5.2 of the toolbox.  These
%   grandfathered functions will be removed in a later release.  Users
%   are encouraged to migrate to the new functions.
%
%   For FZERO and FSOLVE, some attempt is made to see if the new or old syntax
%   of the function is being used.  If the syntax is ambiguous, a warning
%   is given and the new code is used. 
% 

% BUG FIXES FOR 1.5.2
%   curvefit - updated so gradient functions may be provided.  Also, some
%     additional error checking when preprocessing the problem.
%
% MAJOR BUG FIXES FOR 1.5.0
%   constr - improved support for problems with ill-conditioned or badly
%     scaled constraints.  When the quadratic subproblem is formed and the
%     constraints are linearized, if the linearized version of the constraints
%     are dependent and consistent, the dependent constraints are removed and
%     the optimization continues. Otherwise, the subproblem is noted as
%     infeasible.
%   constr, fminu, leastsq  - line search algorithms improved: more checks to
%     prevent infinite loops.
%   minimax - equality constraints are now possible.
%   qp - now solves a greater class of problems including those with
%     rank-deficient constraints: quadratic problems with negative definite,
%     indefinite, or semi-definite Hessians are now detected and handled
%     automatically.  It is no longer necessary to pass a flag indicating
%     these conditions (if such a flag is given, it is ignored).  Also,
%     dependent equality constraints are now detected.  If the system of
%     equality constraints is consistent, the dependent constraints are
%     deleted and the optimization continues. Otherwise, the problem is
%     infeasible and the output argument 'how' is set and warnings are given
%     (if display > -1).
%   attgoal, constr, fmin, fmins, fminu, fsolve, fzero, leastsq, minimax, 
%   seminf - any number of additional user parameters is permitted (no 
%     longer restricted to 10).
%
% ENHANCEMENTS FOR 1.5.0
%   fzero - either a starting point or a starting interval may be given as 
%     the second argument. Convergence is guaranteed if an interval is given
%     (the interval endpoints must evaluate to function values of opposite
%     signs). If a starting point is given, an interval containing a sign
%     change is searched for. If none is found a warning is given.
%   qp - if the Hessian is not symmetric, it is adjusted: H = 0.5*(H+H').
%
% NEW FUNCTIONS FOR 1.5.0
%   conls - linear least-squares problems with linear equality or inequality
%     constraints (and also upper and lower bounds) may be solved using conls.
%     This function is based on the active set method used by qp but does
%     not form the matrix A'*A explicitly.
%   curvefit - nonlinear curve fitting based on the leastsq function.  This
%     new interface is provided to make fitting of data more
%     convenient. Most data fitting problems fall into the category of
%     minimizing the error between YDATA and a function of X and XDATA:
%     YDATA - F(X, XDATA).  curvefit allows you to write your function in
%     terms of X and XDATA instead of X, XDATA and YDATA.  
%
% BUG FIXES FOR 1.5.1
%   curvefit - extra arguments now passed to user function.
%   lp - lp with equalities no longer causes an error.
%
% ENHANCEMENTS FOR 1.5.1
%   conls - handles both underdetermined and overdetermined problems.
%   conls, qp,lp - improved handling of overdetermined equalities.
%

%   Copyright (c) 1990-98 by The MathWorks, Inc.
%   $Revision: 1.14 $  $Date: 1998/10/22 19:28:29 $

