isSymmetricPD {rags2ridges} | R Documentation |
Test for symmetric positive (semi-)definiteness
Description
Function to test if a matrix
is symmetric positive (semi)definite or
not.
Usage
isSymmetricPD(M)
isSymmetricPSD(M, tol = 1e-04)
Arguments
M |
A square symmetric matrix. |
tol |
A numeric giving the tolerance for determining positive semi-definiteness. |
Details
Tests positive definiteness by Cholesky decomposition. Tests positive
semi-definiteness by checking if all eigenvalues are larger than
where
is the tolerance and
is the largest eigenvalue.
While isSymmetricPSD
returns TRUE
if the matrix is
symmetric positive definite and FASLE
if not. In practice, it tests
if all eigenvalues are larger than -tol*|l| where l is the largest
eigenvalue. More
here.
Value
Returns a logical
value. Returns TRUE
if the M
is symmetric positive (semi)definite and FALSE
if not. If M
is not even symmetric, the function throws an error.
Author(s)
Anders Ellern Bilgrau Carel F.W. Peeters <carel.peeters@wur.nl>, Wessel N. van Wieringen
See Also
Examples
A <- matrix(rnorm(25), 5, 5)
## Not run:
isSymmetricPD(A)
## End(Not run)
B <- symm(A)
isSymmetricPD(B)
C <- crossprod(B)
isSymmetricPD(C)
isSymmetricPSD(C)