Check for Negative Semi-Definiteness
This function checks whether a symmetric matrix is Negative Semi-Definite (NSD). That means, it is determined whether all eigenvalues of the matrix are non-positive. Note that this function does not check whether the matrix is actually symmetric.
is.NSD(X, tol = 1e-08)
X |
a symmetric matrix |
tol |
torelance value. Eigenvalues between Symmetric, NSD matrices are, e.g., correlation or kernel matrices. Such matrices are used in models like Kriging or Support Vector regression. |
boolean, which is TRUE if X is NSD
# The following permutations will produce # a non-PSD kernel matrix with Insert distance # and a PSD distance matrix with Hamming distance # (for the given theta value of 0.01)- # The respective negative should be (non-) NSD x <- list(c(2,1,4,3),c(2,4,3,1),c(4,2,1,3),c(4,3,2,1),c(1,4,3,2)) K <- exp(-0.01*distanceMatrix(x,distancePermutationInsert)) is.NSD(-K) K <- exp(-0.01*distanceMatrix(x,distancePermutationHamming)) is.NSD(-K)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.