Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

correctionDefinite

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

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)

CEGO

Combinatorial Efficient Global Optimization

v2.4.0
GPL (>= 3)
Authors
Martin Zaefferer <mzaefferer@gmail.com>
Initial release
2019-12-07

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.