% Regularization Tools.
% Version 4.1 9-march-08.
% Copyright (c) 1993 and 1998 by Per Christian Hansen and IMM.
%
% Demonstration.
% regudemo - Tutorial introduction to Regularization Tools.
%
% Test problems.
% baart - Fredholm integral equation of the first kind.
% blur - Image deblurring test problem with structured matrix.
% deriv2 - Computation of the second derivative.
% foxgood - Severely ill-posed problem.
% gravity - One-dimensional gravity surveying problem.
% heat - Inverse heat equation.
% i_laplace - Inverse Laplace transformation.
% parallax - Stellar parallax problem with 28 fixed observations.
% phillips - Philips' "famous" test problem.
% shaw - One-dimensional image restoration problem.
% spikes - Test problem with a "spiky" solution.
% tomo - Two-dimensional tomography problem with sparse matrix.
% ursell - Integral equation with no square integrable solution.
% wing - Test problem with a discontinuous solution.
%
% SVD- and GSVD-based regularization routines.
% discrep - Minimizes the solution (semi-)norm subject to an upper
% bound on the residual norm (discrepancy principle).
% dsvd - Computes the damped SVD/GSVD solution.
% lsqi - Minimizes the residual norm subject to an upper bound
% on the (semi-)norm of the solution.
% mtsvd - Computes the modified TSVD solution.
% tgsvd - Computes the truncated GSVD solution.
% tikhonov - Computes the Tikhonov regularized solution.
% tsvd - Computes the truncated SVD solution.
% ttls - Computes the truncated TLS solution.
%
% Iterative regularization routines.
% art - Algebraic reconstruction technique (Kaczmarz's method).
% cgls - Computes the least squares solution based on k steps
% of the conjugate gradient algorithm.
% lsqr_b - Computes the least squares solution based on k steps
% of the LSQR algorithm (Lanczos bidiagonalization).
% maxent - Computes the maximum entropy regularized solution.
% mr2 - Variant of MINRES with starting vector Ab.
% nu - Computes the solution based on k steps of Brakhage's
% iterative nu-method.
% pcgls - Same as cgls, but for general-form regularization.
% plsqr_b - Same as lsqr, but for general-form regularization.
% pmr2 - Same as mr2, but for general-form regularization.
% pnu - Same as nu, but for general-form regularization.
% prrgmres - Same as rrgmres, but for general-form regularization.
% rrgmres - Variant of GMRES with starting vector Ab.
% splsqr - Computes an approximate Tikhonov solution via the
% subspace preconditioned LSQR algorithm.
%
% Analysis routines.
% corner - Locates the corner of a discrete L-curve.
% fil_fac - Computes filter factors for some regularization methods.
% gcv - Plots the GCV function and computes its minimum.
% l_corner - Locates the L-shaped corner of the L-curve.
% l_curve - Computes the L-curve, plots it, and computes its corner.
% lagrange - Plots the Lagrange function ||Ax-b||^2 + lambda^2*||Lx||^2,
% and its derivative.
% ncp - Plots normalized cumulative periodograms (NCPs) and finds
% the one closest to a straight line.
% picard - Plots the (generalized) singular values, the Fourier
% coefficient for the right-hand side, and a (smoothed curve
% of) the solution's Fourier-coefficients.
% plot_lc - Plots an L-curve.
% quasiopt - Plots the quasi-optimality function and computes its minimum.
%
% Routines for transforming a problem in general form into one in
% standard form, and back again.
% gen_form - Transforms a standard-form solution back into the
% general-form setting.
% std_form - Transforms a general-form problem into one in
% standard form.
%
% Utility routines.
% bidiag - Bidiagonalization of a matrix by Householder transformations.
% cgsvd - Computes the compact generalized SVD of a matrix pair.
% csvd - Computes the compact SVD of an m-by-n matrix.
% get_l - Produces a p-by-n matrix which is the discrete
% approximation to the d'th order derivative operator.
% lanc_b - Performs k steps of the Lanczos bidiagonalization
% process with/without reorthogonalization.
% regutm - Generates random test matrices for regularization methods.
%
% Auxiliary routines required by some of the above routines.
% app_hh - Applies a Householder transformation from the left.
% gen_hh - Generates a Householder transformation.
% lsolve - Inversion with A-weighted generalized inverse of L.
% ltsolve - Inversion with transposed A-weighted inverse of L.
% pinit - Initialization for treating general-form problems.
% spleval - Computes points on a spline or spline curve.
% The following four routines are not documented, since they are only used
% internally by gcv, l_corner, and quasiopt, respectively. They cannot be
% located as private functions.
% gcvfun - Computes the GCV function
% lcfun - Computes the curvature of the L-curve
% ncpfun - Computes the NCP's distance to a straight line.
% quasifun - Computes the quasi-optimality function.
%
% For backward compatibility, the function l_corner uses the Spline
% Toolbox when available, otherwise is used the new function corner.