nearCNSD {CEGO} | R Documentation |

## Nearest CNSD matrix

### Description

This function
implements the alternating projection algorithm by Glunt et al. (1990) to calculate the nearest conditionally
negative semi-definite (CNSD) matrix (or: the nearest Euclidean distance matrix).
The function is similar to the `nearPD`

function from the `Matrix`

package,
which implements a very similar algorithm for finding the nearest Positive Semi-Definite (PSD) matrix.

### Usage

```
nearCNSD(
x,
eig.tol = 1e-08,
conv.tol = 1e-08,
maxit = 1000,
conv.norm.type = "F"
)
```

### Arguments

`x` |
symmetric matrix, to be turned into a CNSD matrix. |

`eig.tol` |
eigenvalue torelance value. Eigenvalues between |

`conv.tol` |
convergence torelance value. The algorithm stops if the norm of the difference between two iterations is below this value. |

`maxit` |
maximum number of iterations. The algorithm stops if this value is exceeded, even if not converged. |

`conv.norm.type` |
type of norm, by default the F-norm (Frobenius). See |

### Value

list with:

`mat`

nearestCNSD matrix

`normF`

F-norm between original and resulting matrices

`iterations`

the number of performed

`rel.tol`

the relative value used for the tolerance convergence criterion

`converged`

a boolean that records whether the algorithm

### References

Glunt, W.; Hayden, T. L.; Hong, S. and Wells, J. An alternating projection algorithm for computing the nearest Euclidean distance matrix, SIAM Journal on Matrix Analysis and Applications, SIAM, 1990, 11, 589-600

### See Also

`nearPD`

, `correctionCNSD`

, `correctionDistanceMatrix`

### Examples

```
# example using Insert distance with permutations:
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)
print(D)
is.CNSD(D)
nearD <- nearCNSD(D)
print(nearD)
is.CNSD(nearD$mat)
# or example matrix from Glunt et al. (1990):
D <- matrix(c(0,1,1,1,0,9,1,9,0),3,3)
print(D)
is.CNSD(D)
nearD <- nearCNSD(D)
print(nearD)
is.CNSD(nearD$mat)
# note, that the resulting values given by Glunt et al. (1990) are 19/9 and 76/9
```

*CEGO*version 2.4.3 Index]