Parallel Colt 0.7.2

cern.colt.matrix.tfloat.algo.solver
Class FloatHyBR

java.lang.Object
  extended by cern.colt.matrix.tfloat.algo.solver.AbstractFloatIterativeSolver
      extended by cern.colt.matrix.tfloat.algo.solver.FloatHyBR
All Implemented Interfaces:
FloatIterativeSolver

public class FloatHyBR
extends AbstractFloatIterativeSolver

HyBR is a Hybrid Bidiagonalization Regularization method used for solving large-scale, ill-posed inverse problems of the form: b = A*x + noise The method combines an iterative Lanczos Bidiagonalization (LBD) Method with an SVD-based regularization method to stabilize the semiconvergence behavior that is characteristic of many ill-posed problems. The code is derived from RestoreTools: An Object Oriented Matlab Package for Image Restoration written by James G. Nagy and several of his students, including Julianne Chung, Katrina Palmer, Lisa Perrone, and Ryan Wright.

References:

[1] Paige and Saunders, "LSQR an algorithm for sparse linear equations an sparse least squares", ACM Trans. Math Software, 8 (1982), pp. 43-71.

[2] Bjorck, Grimme and Van Dooren, "An implicit shift bidiagonalization algorithm for ill-posed systems", BIT 34 (11994), pp. 520-534.

[3] Chung, Nagy and O'Leary, "A Weighted GCV Method for Lanczos Hybrid Regularization", Elec. Trans. Numer. Anal., 28 (2008), pp. 149--167.

Author:
Piotr Wendykier (piotr.wendykier@gmail.com)

Constructor Summary
FloatHyBR()
          Creates new instance of HyBR solver with default parameters:

innerSolver = HyBR.InnerSolver.TIKHONOV
regularizationMethod = HyBR.RegularizationMethod.ADAPTWGCV
regularizationParameter = 0
omega = 0
reorthogonalize = false
beginRegularization = 2
flatTolerance = 1e-6
computeRnrm = false;
FloatHyBR(HyBRInnerSolver innerSolver, HyBRRegularizationMethod regularizationMethod, float regularizationParameter, float omega, boolean reorthogonalize, int beginRegularization, float flatTolerance, boolean computeRnrm)
          Creates new instance of HyBR solver.
 
Method Summary
 FloatMatrix1D solve(FloatMatrix2D A, FloatMatrix1D b, FloatMatrix1D x)
          Solves the given problem, writing result into the vector.
 
Methods inherited from class cern.colt.matrix.tfloat.algo.solver.AbstractFloatIterativeSolver
getIterationMonitor, getPreconditioner, setIterationMonitor, setPreconditioner
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FloatHyBR

public FloatHyBR()
Creates new instance of HyBR solver with default parameters:

innerSolver = HyBR.InnerSolver.TIKHONOV
regularizationMethod = HyBR.RegularizationMethod.ADAPTWGCV
regularizationParameter = 0
omega = 0
reorthogonalize = false
beginRegularization = 2
flatTolerance = 1e-6
computeRnrm = false;


FloatHyBR

public FloatHyBR(HyBRInnerSolver innerSolver,
                 HyBRRegularizationMethod regularizationMethod,
                 float regularizationParameter,
                 float omega,
                 boolean reorthogonalize,
                 int beginRegularization,
                 float flatTolerance,
                 boolean computeRnrm)
Creates new instance of HyBR solver.

Parameters:
innerSolver - solver for the inner problem
regularizationMethod - a method for choosing a regularization parameter
regularizationParameter - if regularizationMethod == HyBR.RegularizationMethod.NONE then the regularization parameter has to be specified here (value from the interval (0,1))
omega - regularizationMethod == HyBR.RegularizationMethod.WGCV then omega has to be specified here (must be nonnegative)
reorthogonalize - if thue then Lanczos subspaces are reorthogonalized
beginRegularization - begin regularization after this iteration (must be at least 2)
flatTolerance - tolerance for detecting flatness in the GCV curve as a stopping criteria (must be nonnegative)
computeRnorm - if true then the norm of relative residual is computed
Method Detail

solve

public FloatMatrix1D solve(FloatMatrix2D A,
                           FloatMatrix1D b,
                           FloatMatrix1D x)
                    throws IterativeSolverFloatNotConvergedException
Description copied from interface: FloatIterativeSolver
Solves the given problem, writing result into the vector.

Parameters:
A - Matrix of the problem
b - Right hand side
x - Solution is stored here. Also used as initial guess
Returns:
The solution vector x
Throws:
IterativeSolverFloatNotConvergedException

Parallel Colt 0.7.2

Jump to the Parallel Colt Homepage