Class JacobiPreconditioner
- java.lang.Object
-
- org.apache.commons.math4.legacy.linear.RealLinearOperator
-
- org.apache.commons.math4.legacy.linear.JacobiPreconditioner
-
public class JacobiPreconditioner extends RealLinearOperator
This class implements the standard Jacobi (diagonal) preconditioner. For a matrix Aij, this preconditioner is M = diag(1 / A11, 1 / A22, …).- Since:
- 3.0
-
-
Constructor Summary
Constructors Constructor Description JacobiPreconditioner(double[] diag, boolean deep)
Creates a new instance of this class.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static JacobiPreconditioner
create(RealLinearOperator a)
Creates a new instance of this class.int
getColumnDimension()
Returns the dimension of the domain of this operator.int
getRowDimension()
Returns the dimension of the codomain of this operator.RealVector
operate(RealVector x)
Returns the result of multiplyingthis
by the vectorx
.RealLinearOperator
sqrt()
Returns the square root ofthis
diagonal operator.-
Methods inherited from class org.apache.commons.math4.legacy.linear.RealLinearOperator
isTransposable, operateTranspose
-
-
-
-
Constructor Detail
-
JacobiPreconditioner
public JacobiPreconditioner(double[] diag, boolean deep)
Creates a new instance of this class.- Parameters:
diag
- the diagonal coefficients of the linear operator to be preconditioneddeep
-true
if a deep copy of the above array should be performed
-
-
Method Detail
-
create
public static JacobiPreconditioner create(RealLinearOperator a) throws NonSquareOperatorException
Creates a new instance of this class. This method extracts the diagonal coefficients of the specified linear operator. Ifa
does not extendAbstractRealMatrix
, then the coefficients of the underlying matrix are not accessible, coefficient extraction is made by matrix-vector products with the basis vectors (and might therefore take some time). With matrices, direct entry access is carried out.- Parameters:
a
- the linear operator for which the preconditioner should be built- Returns:
- the diagonal preconditioner made of the inverse of the diagonal coefficients of the specified linear operator
- Throws:
NonSquareOperatorException
- ifa
is not square
-
getColumnDimension
public int getColumnDimension()
Returns the dimension of the domain of this operator.- Specified by:
getColumnDimension
in classRealLinearOperator
- Returns:
- the number of columns of the underlying matrix
-
getRowDimension
public int getRowDimension()
Returns the dimension of the codomain of this operator.- Specified by:
getRowDimension
in classRealLinearOperator
- Returns:
- the number of rows of the underlying matrix
-
operate
public RealVector operate(RealVector x)
Returns the result of multiplyingthis
by the vectorx
.- Specified by:
operate
in classRealLinearOperator
- Parameters:
x
- the vector to operate on- Returns:
- the product of
this
instance withx
-
sqrt
public RealLinearOperator sqrt()
Returns the square root ofthis
diagonal operator. More precisely, this method returns P = diag(1 / √A11, 1 / √A22, …).- Returns:
- the square root of
this
preconditioner - Since:
- 3.1
-
-