pd.solve: Inverse of a symmetric positive-definite matrix

Description Usage Arguments Details Value Author(s) Examples

View source: R/mnormt.R

Description

The inverse of a symmetric positive-definite matrix and its log-determinant

Usage

1
 pd.solve(x, silent = FALSE, log.det=FALSE) 

Arguments

x

a symmetric positive-definite matrix.

silent

a logical value which indicates the action to take in case of an error. If silent==TRUE and an error occurs, the function silently returns a NULL value; if silent==FALSE (default), an error generates a stop with an error message.

log.det

a logical value to indicate whether the log-determinant of x is required (default is FALSE).

Details

The function checks that x is a symmetric positive-definite matrix. If an error is detected, an action is taken which depends on the value of the argument silent.

Value

the inverse matrix of x; if log.det=TRUE, this inverse has an attribute which contains the logarithm of the determinant of x.

Author(s)

Adelchi Azzalini

Examples

1
2
3
4
5
6
  x <- toeplitz(rev(1:4))
  x.inv <- pd.solve(x)
  print(x.inv %*% x)
  x.inv <- pd.solve(x, log.det=TRUE)
  logDet <- attr(x.inv, "log.det")
  print(abs(logDet - determinant(x, logarithm=TRUE)$modulus))

Example output

              [,1]          [,2]         [,3]          [,4]
[1,]  1.000000e+00  2.220446e-16 1.110223e-16  5.551115e-17
[2,]  0.000000e+00  1.000000e+00 0.000000e+00  2.220446e-16
[3,] -2.220446e-16 -4.440892e-16 1.000000e+00 -2.220446e-16
[4,]  0.000000e+00  2.220446e-16 4.440892e-16  1.000000e+00
[1] 0
attr(,"logarithm")
[1] TRUE

mnormt documentation built on Sept. 1, 2020, 5:09 p.m.