Det {lazy.symbolic} | R Documentation |
Determinant of a Symbolic Matrix by Sweeping
Det(A, loc = 1:nrow(A), log = 0, simplify = 0, debug = 0)
A |
A square matrix |
loc |
vector of pivot locations |
log |
= 1 to calculate log determinant |
simplify |
= 0 not to use Simplify nor remove_paren |
debug |
= 1 to print details |
Definition of Sweep Operator
C <- matSweep( A, p ) means:
c[i,j] <- c[i,j] - c[i,p]*c[p,j]/c[p,p]
c[p,] <- c[p,]/c[p,p]
c[,p] <- - c[,p]/c[p,p]
# Inversion of A.
matSweep( A, 1:ncol(A) ) == solve(A)
This is equivalent to Inv(A).
The determinant of A is given as the product of all the pivots, c[p,p],
when inverting A using sweep operator.
The determinant of A
# determinant of 2 x 2 A
A <- demomat(2,2,root="a")
Det(A)
Det(A,log=1)
# n x n ( slow !)
set.seed(1701)
n=3
B <- demomat(n,n,root="b")
dd <- Det(B)
Bn <- matrix(runif(n*n),n)
Print(Eval(dd,B=Bn),det(Bn))
# Fully Symbolic Partitioned Matrix: No SMdim attribute but
# fullsymb attribute
Ap=demomat(2,2,root="A", fullsymb=1)
Print(Ap)
Det(Ap)
Det(Ap, 2:1)