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.

`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.2 Index]