Det {lazy.symbolic}R Documentation

Determinant of a Symbolic Matrix by Sweeping

Description

Determinant of a Symbolic Matrix by Sweeping

Usage

Det(A, loc = 1:nrow(A), log = 0, simplify = 1, debug = 0)

Arguments

A

A square matrix

loc

vector of pivot locations

log

= 1 to calculate log determinant

simplify

= 0 not to use Simplify nor remove_paren
= 1 to use Simplify

debug

= 1 to print details

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.

Value

The determinant of A

Examples


# determinant of 2 x 2 A
A <- demomat(2,2,root="a")
Det(A)
Simplify(Expand(lv()))
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))

Expand(dd); Expand(lv()); Expand(lv()); Expand(lv())
ddd <- lv()
Print( Eval(ddd,B=Bn),det(Bn) )


[Package lazy.symbolic version 0.1.3 Index]