correctionDefinite {CEGO}R Documentation

Correcting Definiteness of a Matrix

Description

Correcting a (possibly indefinite) symmetric matrix with chosen approach so that it will have desired definiteness type: positive or negative semi-definite (PSD, NSD).

Usage

correctionDefinite(mat, type = "PSD", method = "flip", tol = 1e-08)

Arguments

mat

symmetric matrix

type

string that specifies type of correction: "PSD","NSD" to enforce PSD or NSD matrices respectively.

method

string that specifies method for correction: spectrum clip "clip", spectrum flip "flip", nearest definite matrix "near", spectrum square"square", spectrum diffusion "diffusion".

tol

torelance value. Eigenvalues between -tol and tol are assumed to be zero.

Value

list with

mat

corrected matrix

isIndefinite

boolean, whether original matrix was indefinite

lambda

the eigenvalues of the original matrix

lambdanew

the eigenvalues of the corrected matrix

U

the matrix of eigenvectors

a

the transformation vector

References

Martin Zaefferer and Thomas Bartz-Beielstein. (2016). Efficient Global Optimization with Indefinite Kernels. Parallel Problem Solving from Nature-PPSN XIV. Accepted, in press. Springer.

See Also

modelKriging

Examples

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))
D <- distanceMatrix(x,distancePermutationInsert)
is.NSD(D) #matrix should not be CNSD
D <- correctionDefinite(D,type="NSD")$mat
is.NSD(D) #matrix should now be CNSD
# different example: PSD kernel
D <- distanceMatrix(x,distancePermutationInsert)
K <- exp(-0.01*D)
is.PSD(K)
K <- correctionDefinite(K,type="PSD")$mat
is.PSD(K)

[Package CEGO version 2.4.3 Index]