Class PositiveDefiniteMatrixByPositiveDiagonal
- java.lang.Object
-
- dev.nm.algebra.linear.matrix.doubles.matrixtype.dense.DenseMatrix
-
- dev.nm.algebra.linear.matrix.doubles.operation.positivedefinite.PositiveDefiniteMatrixByPositiveDiagonal
-
- All Implemented Interfaces:
Matrix
,MatrixAccess
,MatrixRing
,MatrixTable
,Densifiable
,AbelianGroup<Matrix>
,Monoid<Matrix>
,Ring<Matrix>
,Table
,DeepCopyable
- Direct Known Subclasses:
PositiveSemiDefiniteMatrixNonNegativeDiagonal
public class PositiveDefiniteMatrixByPositiveDiagonal extends DenseMatrix
This class "converts" a matrix into a symmetric, positive definite matrix, if it is not already so, by forcing the diagonal entries in the eigen decomposition to a small non-negative number, e.g., 0.- See Also:
- "Jin Wang, Chunlei Liu. "Generating Multivariate Mixture of Normal Distributions using a Modified Cholesky Decomposition," Simulation Conference, 2006. WSC 06. Proceedings of the Winter. p. 342 - 347. 3-6 Dec. 2006."
- "Higham, Nicholas J., "Computing a Nearest Symmetric Positive Semidefinite Matrix," Linear Algebra and its Applications, 1988, 103:103-118"
-
-
Constructor Summary
Constructors Constructor Description PositiveDefiniteMatrixByPositiveDiagonal(Matrix A, double epsilon, double small)
Constructs a positive definite matrix by forcing the diagonal entries in the eigen decomposition to a small non-negative number, e.g., 0.
-
Method Summary
-
Methods inherited from class dev.nm.algebra.linear.matrix.doubles.matrixtype.dense.DenseMatrix
add, deepCopy, equals, get, getColumn, getColumn, getRow, getRow, hashCode, minus, multiply, multiply, nCols, nRows, ONE, opposite, scaled, set, setColumn, setRow, t, toDense, toString, ZERO
-
-
-
-
Constructor Detail
-
PositiveDefiniteMatrixByPositiveDiagonal
public PositiveDefiniteMatrixByPositiveDiagonal(Matrix A, double epsilon, double small)
Constructs a positive definite matrix by forcing the diagonal entries in the eigen decomposition to a small non-negative number, e.g., 0.- Parameters:
A
- a matrixepsilon
- a precision parameter: when a number |x| ≤ ε, it is considered 0; used in the eigen decomposition (don't make it 0)small
- the minimum value of the new diagonal entries
-
-