# pdeterminant: Calculate the Pseudo-Determinant of a Matrix In maotai: Tools for Matrix Algebra, Optimization and Inference

## Description

When a given square matrix A is rank deficient, determinant is zero. Still, we can compute the pseudo-determinant by multiplying all non-zero eigenvalues. Since thresholding to determine near-zero eigenvalues is subjective, we implemented the function as of original limit problem. When matrix is non-singular, it coincides with traditional determinant.

## Usage

 `1` ```pdeterminant(A) ```

## Arguments

 `A` a square matrix whose pseudo-determinant be computed.

## Value

a scalar value for computed pseudo-determinant.

## References

\insertRef

holbrook_differentiating_2018maotai

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20``` ```## show the convergence of pseudo-determinant # settings n = 10 A = cov(matrix(rnorm(5*n),ncol=n)) # (n x n) matrix k = as.double(Matrix::rankMatrix(A)) # rank of A # iterative computation ntry = 11 del.vec = exp(-(1:ntry)) det.vec = rep(0,ntry) for (i in 1:ntry){ del = del.vec[i] det.vec[i] = det(A+del*diag(n))/(del^(n-k)) } # visualize the results opar <- par(no.readonly=TRUE) plot(1:ntry, det.vec, main=paste("true rank is ",k," out of ",n,sep=""),"b", xlab="iterations") abline(h=pdeterminant(A),col="red",lwd=1.2) par(opar) ```

maotai documentation built on Feb. 3, 2022, 5:09 p.m.