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 Details

    • 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 matrix
      epsilon - 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