Software by Hans Bruun Nielsen

A number of programs are available. They are collected in the following groups.

Also see   DACE toolbox     and    Robust subroutines for non-linear optimization

August 2004:   Some of the MATLAB functions have been collected (and updated) in the toolbox   immoptibox
           Old function
marquardt
SMarquardt
KMHybrid>
SDogLeg>
damp_newton
linesearch
ucminf
splfit
splval
checkjacobi
uctpget
uctpval
         Toolbox function
marquardt
smarquardt
nlshybrid
nonlinsys
dampnewton
linesearch
ucminf
splinefit
splineval
checkgrad
uctpget
uctpval

Nonlinear Least Squares Problems

A collection of MATLAB functions for solving nonlinear 
least squares problems. The methods are described in 
the lecture note 
Methods for Non-Linear Least Squares Problems
For all the functions the introductory comment - 
as provided by 
    help function 
should give sufficient information. For the sake of 
completeness a short user's guide is available  Also see Auxiliary Programs
DogLeg applied to Rosenbrock function

Marquardt's method
Available as   marquardt.m  (for use when the Jacobian is available) and
SMarquardt.m  (the Jacobian is approximated).
Further documented in Damping Parameter in Marquardt's Method, report IMM-REP-1999-05.

Hybrid method
Kaj Madsen's hybrid method is available as   KMHybrid.m
Further documented in K. Madsen (1988): A Combined Gauss-Newton and Quasi-Newton Method for Non-Linear Least Squares. Institute for Numerical Analysis (now part of IMM), DTU. Report NI-88-10.

Dog Leg Method
Powell's dog leg method for nonlinear systems of equations is available as
DogLeg.m  (for use when the Jacobian is available) and
SDogLeg.m (the Jacobian is approximated).
 
Back to    top of the page      homepage of Hans Bruun Nielsen

General Optimization

A collection of MATLAB functions and Fortran subroutines for finding an unconstrained minimizer of a general function, whose gradient is available.  The methods are described in the lecture note
Unconstrained Optimization
For all the functions the introductory comment -as provided by
    help function
should give sufficient information. For the sake of completeness a short user's guide is available.

ucminf.m and ucminf.f are documented in UCMINF - an Algorithm for Unconstrained, Nonlinear Optimization

Also see Auxiliary Programs
Where is the minimum?
The following functions are available
conj_grad.m Conjugate Gradient method. Choice between the Fletcher-Reeves and the Polak-Ribiere version. 
Needs linesearch .
damp_newton.m Damped Newton method. The Hessian of the function must be provided.
quasi_newton.m Quasi-Newton method. Choice between the DFP and the BFGS updating strategy. 
Needs linesearch .
linesearch.m Choice between exact and soft line search. 
ucminf.m

ucminf.f
MATLAB and Fortran77 versions of the BFGS method with soft line search and trust region type monitoring of step length.
The Fortran version needs minaux.f, see Auxiliary Programs
Back to    top of the page      homepage of Hans Bruun Nielsen


Splines
Packages of programs in MATLAB and Fortran77 for interpolation and curve fitting with cubic splines. 
For all functions the introductory comment should be a sufficient user's guide. 
Physical Spline

Fortran:  The software consists of 4 files, and is available as
 fsplpak.tar.Z   Use the following Unix commands to install the software:
 
  uncompress fsplpak.tar.Z
tar -xvf fsplpak.tar
rm fsplpak.tar

The file TSPL.f contains a testing programme.   More information can be found in 
H.B. Nielsen (1991):  SPLPAK - Pascal and Fortran77 Subprograms for Cubic Splines. Institute for Numerical  Analysis (now part of IMM), DTU. Report NI-91-06. 

MATLAB The software consists of 2 files,
splfit.m Fit (or interpolate) given data with a cubic spline, with or without end point constraints.
splval.m For a given spline s this function can be used to evaluate
1. s(t) at a vector of arguments,
2. s(t), the first two derivatives and estimates of their standard deviation, or
3. the extrema of s
More information can be found in   User's Guide to splfit and splval   available in   pdf   and   ps   format.
 
Back to    top of the page      homepage of Hans Bruun Nielsen


Multi-Exponential Fitting
 
A MATLAB function for computing the parameters of a model
     M(x,c,t) = c0 + c1 ex1 t + . . . cn exn t
as a least squares fit to a set of data points. It is assumed that all the components are decaying, i.e. all xj are negative and that a starting guess on these exponents is available. The constant term c0 may be omitted.
mexpfit.m
The following auxiliary function is needed,
qrfacsol.m
 
The method is described in Separable NonLinear Least Squares, report IMM-REP-2000-01, and further documented in Multi-Exponential Fitting of Low-Field 1H NMR Data, report IMM-REP-2000-03.
Components of fit
Back to    top of the page      homepage of Hans Bruun Nielsen


L1 Estimation
Program package in Fortran77 for computing the l1-solution to   Ax "=" b .

The method is described in K. Madsen, H.B. Nielsen, A Finite Smoothing Algorithm for Linear l1 Estimation, SIAM J. on Optimization 3 (1993), 223-235.

The software consists of 6 files. It is available as
  ll1sol.zip

The file   readme.txt   contains instructions.    More information can be found in 
H.B. Nielsen (1991):  Implementation of a Finite Algorithm for Linear L1 Estimation.
Institute for Numerical  Analysis (now part of IMM), DTU. Report NI-91-06.
 

Back to    top of the page      homepage of Hans Bruun Nielsen


Box Constrained Quadratic Programming
Program package in Fortran77 for computing the minimizer of   q(y) = ½yTHy - cTy    s.t.    -e <= y <= e

The method is described in K. Madsen, H. B. Nielsen, M.C. Pinar, Bound Constrained Quadratic Programming via Piecewise Quadratic Functions, Mathematical Programming 85 (1) (1999). Available as Technical Report
Further details are given in H.B. Nielsen, Bound Constrained Quadratic Programming Solved via Piecewise Quadratic Functions. Implementation. Report IMM-REP-1996-21, Informatics and Mathematical Modelling, DTU. (1996), 33 pages.

The software consists of 5 files. It is available as
  qpbox.zip

The file   readme.txt   contains instructions.    More information can be found in  H.B. Nielsen, QPBOX USER'S GUIDE, A Fortran77 Package for Box Constrained Quadratic Programs, Report IMM-REP-1997-04, Informatics and Mathematical Modelling, DTU. (1997), 14 pages.
 

Back to    top of the page      homepage of Hans Bruun Nielsen


Auxiliary Programs
checkjacobi.m

chkjac.f
MATLAB function and Fortran77 subroutine for checking the user's implementation of the Jacobian (or gradient).
More information can be found in   Checking Gradients, available in   pdf   and   ps   format.
21.12.2000:   New version of checkjacobi.m
qrfacsol.m MATLAB function for computing and/or using a QR factorization of a rectangular matrix . The tasks are
      Null space of   A   or   AT
     Basic or minimum norm solution to   A x "=" b
     Basic or minimum norm solution to   ATx "=" b
     Basic or minimum norm solution to   (ATA) x "=" b
"=" means "approximately equal to" and the solution is found in the least squares sense.
uctpget.m
uctpval.m
uctp.f
MATLAB functions and Fortran77 package for generating test problems for unconstrained, nonlinear optimization.
Information and User's guide can be found in
UCTP - Test Problems for Unconstrained Optimization. Report IMM-REP-2000-17, Department of Mathematical Modelling, DTU. November 2000.
minaux.f Fortran77 package with auxiliary subprograms, including a subset of the BLAS package. Is needed by the above ucminf.f and uctp.f. New version 21.12.2000.
Back to    top of the page      homepage of Hans Bruun Nielsen


Last updated 9.8.2004.