IR Tools, Version 1.0
A MATLAB Package of Iterative Regularization Methods
and Test Problems for Linear Inverse Problems
(for Matlab Version 9.3 or later)
The package is a collaborative effort between
Silvia Gazzola, University of Bath,
Per Christian Hansen, DTU and
James G. Nagy, Emory University.
To download this software package go to:
where we maintain the software.
It is distributed under the 3-Clause BSD License
(a license file is provided as part of the package).
The package, the algorithms, and the test problems are described in the paper:
S. Gazzola, P. C. Hansen, and J. G. Nagy,
IR Tools: A MATLAB Package of Iterative Regularization
Methods and Large-Scale Test Problems, Numerical Algorithms,
81 (2019), pp. 773-811.
Also available is a view-only version.
This MATLAB package serves two related purposes:
we provide implementations of a range of iterative solvers, including several recently
proposed methods that are not available elsewhere, and we provide a set of large-scale test problems in the
form of discretizations of 2D linear inverse problems.
The solvers include iterative regularization methods
where the regularization is due to the semi-convergence of the iterations, Tikhonov-type formulations
where the regularization is explicitly formulated in the form of a regularization term, and methods that
can impose bound constraints on the computed solutions. All the iterative methods are implemented in
a very flexible fashion that allows the problem's coefficient matrix to be available as a (sparse) matrix,
a function handle, or an object. The most basic call to all of the various iterative methods requires only
this matrix and the right hand side vector; if the method uses any special stopping criteria, regularization
parameters, etc., then default values are set automatically by the code. Moreover, through the use of
an optional input structure, the user can also have full control of any of the algorithm parameters.
The test problems represent realistic large-scale problems found in image reconstruction and several other
applications. The second aim is to provide a set of new test
problems for large-scale linear inverse problems that can be used to experiment with the iterative methods
in this package, or as benchmark test problems for newly developed algorithms.
This work was developed during the project
and P. C. Hansen was partially funded by an ERC Advanced Research Grant.
- The software is easy to use: the installation is very simple and there are no files to be compiled.
There is no need for commercial MATLAB toolboxes.
- Additional iterative methods and test problems are provided via interface to the package
AIR Tools II
which implements a number of algebraic iterative reconstruction methods.
- Calls to all iterative solvers and all test-problem generators are simple, and essentially identical.
- Strict naming conventions are used for all functions, such as "IR" for the iterative solvers
and "PR" for the test-problem generators.
- We include realistic 2D test problems, presented in such a way that they require no special
background knowledge of the applications from which they arise.
- The functions are easy to use; default values are provided for any parameters needed by the
iterative solvers and problem generators.
- At the same time, the user can take full control of the functionality by changing these parameters
through an optional options input structure.
- Stopping rules and paradigms for choosing regularization parameters are integrated within the
- Information about the performance of the iterative methods is returned in an optional
Info output structure.
- Visualization of the right-hand side b (the data) and the approximate solution x
for all test problems is done by two functions PRshowb
- Users can easily expand the package to include new solvers and/or new test problems.
The most recent version of the codes at GitHub includes a new function
IRhybrid_flsqr that implements the FLSQR method:
J. Chung and S. Gazzola, Flexible Krylov methods for regularization,
SIAM J. Sci. Comput., 41 (2019), pp. S149-S171;