# SuanShu, a Java numerical and statistical library

com.numericalmethod.suanshu.algebra.linear.matrix.doubles.operation.positivedefinite

## Class PositiveSemiDefiniteMatrixNonNegativeDiagonal

• All Implemented Interfaces:
Matrix, MatrixAccess, MatrixRing, MatrixTable, Densifiable, AbelianGroup<Matrix>, Monoid<Matrix>, Ring<Matrix>, Table, DeepCopyable

public class PositiveSemiDefiniteMatrixNonNegativeDiagonal
extends PositiveDefiniteMatrixByPositiveDiagonal
This class "converts" a matrix into a symmetric, positive semi-definite matrix, if it is not already so, by forcing the negative diagonal entries in the eigen decomposition to 0.
"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."
• ### Constructor Summary

Constructors
Constructor and Description
PositiveSemiDefiniteMatrixNonNegativeDiagonal(Matrix A, double epsilon)
Constructs a positive semi-definite matrix by forcing the negative diagonal entries in the eigen decomposition to 0.

• ### Methods inherited from class com.numericalmethod.suanshu.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
• ### Methods inherited from class java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
• ### Constructor Detail

• #### PositiveSemiDefiniteMatrixNonNegativeDiagonal

public PositiveSemiDefiniteMatrixNonNegativeDiagonal(Matrix A,
double epsilon)
Constructs a positive semi-definite matrix by forcing the negative diagonal entries in the eigen decomposition to 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)