R: Nearest Symmetric Positive-definite Matrix

nearest_spd {pracma} | R Documentation

## Nearest Symmetric Positive-definite Matrix

### Description

Find nearest (in Frobenius norm) symmetric positive-definite matrix to A.

### Usage

    nearest_spd(A)

### Arguments

`A` | square numeric matrix.

### Details

"The nearest symmetric positive semidefinite matrix in the Frobenius norm to an arbitrary real matrix A is shown to be (B + H)/2, where H is the symmetric polar factor of B=(A + A')/2."
N. J. Highham

### Value

Returns a matrix of the same size.

### References

Nicholas J. Higham (1988). Computing a nearest symmetric positive semidefinite matrix. Linear Algebra and its Applications. Vol. 103, pp.103-118.

### See Also

`randortho`, `procrustes`

### Examples

    A <- matrix(1:9, 3, 3)
    B <- nearest_spd(A); B
    #          [,1]     [,2]     [,3]
    # [1,] 2.034900 3.202344 4.369788
    # [2,] 3.202344 5.039562 6.876781
    # [3,] 4.369788 6.876781 9.383774
    norm(B - A, type = 'F')
    # [1] 3.758517

[Package pracma version 2.0.4 Index]