Determinant - Maple Help

LinearAlgebra

 Determinant
 compute the determinant of a Matrix

 Calling Sequence Determinant(A, m)

Parameters

 A - Matrix m - (optional) equation of the form method=value where value is one of algnum, float, fracfree, integer, ipseudo, minor, modular[p], multivar, rational, unifloat, unifloat[x], univar, or univar[x]; type of algorithm to use

Description

 • The Determinant(A) function computes the determinant of A by using one of the methods described below. If A has a datatype value other than anything, that value is used to select a particular method. Otherwise, the types of the entries in A determine the appropriate method to use.
 • The  Determinant(A, m) function, where m can be any of the equations stated below, computes the determinant of A according to this specified method (regardless of the datatype of A).
 method=algnum
 Compute the determinant of the n x n Matrix A over the field of algebraic numbers defined by the entries in A by using Gaussian elimination.
 method=float
 Compute the determinant of the n x n Matrix A which has numerical entries or complex numerical entries by using Gaussian elimination.
 method=fracfree
 Compute the determinant of the n x n Matrix A over Z[x1, x2, ..., xv] by using fraction free Gaussian elimination.
 method=integer
 Compute the determinant of the n x n Matrix A over Z by using the LinearAlgebra:-Modular:-IntegerDeterminant routine.
 Note: The IntegerDeterminant routine uses a probabilistic approach that achieves great gains for structured systems. Information on controlling the probabilistic behavior can be found in EnvProbabilistic.
 method=ipseudo[list1,list2]
 Compute a pseudo determinant of the submatrix A[list1,list2] with integer coefficients. A pseudo determinant is defined as a positive multiple of the gcd of the determinants of all minors of A with dimension equal to Rank(A). The magnitude of the pseudo determinant computed never exceeds the magnitude of the determinant of at least one of the minors of A of dimension Rank(A). The return type is an expression sequence d, rank, rows, cols, A1inv. The first returned object is the pseudo determinant of the submatrix A[list1,list2]. The second is the rank of A. The third is a list of integers indicating rank linearly independent rows. The fourth is a list of integers indicating rank linearly independent columns. The fifth is the inverse of the submatrix A[list1,list2]. This method is available only by including method=ipseudo[list1,list2] in the calling sequence, that is, this method is never accessed by using the Determinant(A) form of the calling sequence.
 method=minor
 Compute the determinant of A by using minor expansion.
 method=modular[p]
 Compute the determinant of the n x n Matrix A mod p for any integer modulus p by using a variation of fraction free Gaussian elimination. This method is available only by including method=modular[p] in the calling sequence (i.e., this method is never accessed by using the Determinant(A) form of the calling sequence.
 method=multivar
 Compute the determinant of the n x n Matrix A by using fraction free Gaussian elimination.
 method=rational
 Compute the determinant of the n x n Matrix A over Q, or the complex rationals Q(i).
 method=unifloat or method=unifloat[x]
 Compute the determinant d of the n x n Matrix A over R[x] by using Gaussian elimination.
 If method=unifloat[x] is used, the computation is attempted by using the single variable x. If the index is omitted, then the first unknown in Matrix A is used as the single variable name.
 method=univar or method=univar[x]
 Compute Determinant(A) where A is an n x n Matrix over Z[x] by using an application of modular homomorphisms and Chinese Remainder Theorem.
 If method=univar[x] is used, the computation is attempted by using the single variable x. If the index is omitted, then the first unknown in Matrix A is used as the single variable name.
 • This function is part of the LinearAlgebra package, and so it can be used in the form Determinant(..) only after executing the command with(LinearAlgebra). However, it can always be accessed through the long form of the command by using LinearAlgebra[Determinant](..).

Examples

 > $\mathrm{with}\left(\mathrm{LinearAlgebra}\right):$
 > $M≔\mathrm{Matrix}\left(3,\left[\left[a\right],\left[b,c\right],\left[d,e,f\right]\right],\mathrm{shape}=\mathrm{triangular}\left[\mathrm{lower}\right]\right)$
 ${M}{≔}\left[\begin{array}{ccc}{a}& {0}& {0}\\ {b}& {c}& {0}\\ {d}& {e}& {f}\end{array}\right]$ (1)
 > $\mathrm{Determinant}\left(M\right)$
 ${a}{}{c}{}{f}$ (2)
 > $R≔\mathrm{Matrix}\left(\left[\left[\mathrm{RootOf}\left({\mathrm{_Z}}^{2}+1\right),1\right],\left[1,\mathrm{RootOf}\left({\mathrm{_Z}}^{2}+1\right)\right]\right]\right)$
 ${R}{≔}\left[\begin{array}{cc}{\mathrm{RootOf}}{}\left({{\mathrm{_Z}}}^{{2}}{+}{1}\right)& {1}\\ {1}& {\mathrm{RootOf}}{}\left({{\mathrm{_Z}}}^{{2}}{+}{1}\right)\end{array}\right]$ (3)
 > $\mathrm{Determinant}\left(R,\mathrm{method}=\mathrm{algnum}\right)$
 ${-2}$ (4)
 > $H≔\mathrm{HilbertMatrix}\left(5\right):$
 > $\mathrm{Determinant}\left(H,\mathrm{method}=\mathrm{float}\right)$
 ${3.74929513251522}{×}{{10}}^{{-12}}$ (5)
 > $\mathrm{Determinant}\left(H,\mathrm{method}=\mathrm{rational}\right)$
 $\frac{{1}}{{266716800000}}$ (6)
 > $C≔\mathrm{Matrix}\left(\left[\left[9,8,4\right],\left[7,1,3\right],\left[5,3,6\right]\right],\mathrm{shape}=\mathrm{triangular}\left[\mathrm{upper}\right]\right)$
 ${C}{≔}\left[\begin{array}{ccc}{9}& {8}& {4}\\ {0}& {1}& {3}\\ {0}& {0}& {6}\end{array}\right]$ (7)
 > $\mathrm{Determinant}\left(C,\mathrm{method}=\mathrm{modular}\left[10\right]\right)$
 ${4}$ (8)
 > $V≔\mathrm{Matrix}\left(\left[\left[b,b,b\right],\left[b,a,b\right],\left[a,b,b\right]\right]\right)$
 ${V}{≔}\left[\begin{array}{ccc}{b}& {b}& {b}\\ {b}& {a}& {b}\\ {a}& {b}& {b}\end{array}\right]$ (9)
 > $\mathrm{Determinant}\left(V,\mathrm{method}=\mathrm{multivar}\right)$
 ${-}\left({{a}}^{{2}}{-}{2}{}{a}{}{b}{+}{{b}}^{{2}}\right){}{b}$ (10)

References

 de Boor, Carl. "An Empty Exercise." ACM SIGNUM Newsletter, Vol. 25 No. 2. (1990): 2-6.