IR Tools

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. doi: 10.1007/s11075-018-0570-7.
    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 High-Definition Tomography, and P. C. Hansen was partially funded by an ERC Advanced Research Grant.

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; doi: 10.1137/18M1194456.