LinearAlgebra[Generic]
GaussianElimination
perform Gaussian elimination on a Matrix
ReducedRowEchelonForm
compute the reduced row echelon form of a Matrix
RREF
Calling Sequence
Parameters
Description
Examples
GaussianElimination[F](A)
GaussianElimination[F](A,r,d)
ReducedRowEchelonForm[F](A)
ReducedRowEchelonForm[F](A,r,d)
ReducedRowEchelonForm[F](A,method=BareissAlgorithm)
ReducedRowEchelonForm[F](A,method=GaussianElimination)
RREF[F](A)
RREF[F](A,r,d)
RREF[F](A,method=BareissAlgorithm)
RREF[F](A,method=GaussianElimination)
F
-
the domain of computation, a field
A
rectangular Matrix over values in F
r
name
d
GaussianElimination[F](A) makes a copy of the Matrix A and reduces it to row echelon form (upper triangular form) with leading ones.
ReducedRowEchelonForm[F](A) makes a copy of the Matrix A and reduces it to reduced row echelon form.
RREF is an abbreviation for ReducedRowEchelonForm
The (indexed) parameter F, which specifies the domain of computation, a field, must be a Maple table/module which has the following values/exports:
F[`0`]: a constant for the zero of the ring F
F[`1`]: a constant for the (multiplicative) identity of F
F[`+`]: a procedure for adding elements of F (nary)
F[`-`]: a procedure for negating and subtracting elements of F (unary and binary)
F[`*`]: a procedure for multiplying two elements of F (commutative)
F[`/`]: a procedure for dividing two elements of F
F[`=`]: a boolean procedure for testing if two elements in F are equal
ReducedRowEchelonForm can use either Gaussian Elimination or the Bareiss algorithm to reduce the system to triangular form. If the Bareiss algorithm is used, the leading entries of each row are normalized to one and back substitution is performed, which avoids normalizing entries which are eliminated during back substitution.
The Bareiss algorithm requires the field to support exact division, i.e., it requires F to be an integral domain with the following operation:
F[Divide]: a boolean procedure for dividing two elements of F where F[Divide](a,b,'q') outputs true if b | a and optionally assigns q the quotient such that a = b q.
If the method is not given and the operation F[Divide] is defined, then the Bareiss algorithm is used, otherwise Gaussian Elimination is used.
with⁡LinearAlgebraGeneric:
Q`0`,Q`1`,Q`+`,Q`-`,Q`*`,Q`/`,Q`=`≔0,1,`+`,`-`,`*`,`/`,`=`
Q0,Q1,Q`+`,Q`-`,Q`*`,Q`/`,Q`=`≔0,1,`+`,`-`,`*`,`/`,`=`
A≔Matrix⁡1,2,3,0,0,0,3,2,1
A≔123000321
GaussianEliminationQ⁡A
123012000
ReducedRowEchelonFormQ⁡A,r,d
10−1012000
2
0
A≔Matrix⁡1,2,1,0,2,1,0,1
A≔12102101
B≔GaussianEliminationQ⁡A
B≔12100123−13
RREFQ⁡B
10−13230123−13
See Also
Gaussian Elimination
LinearAlgebra[GaussianElimination]
LinearAlgebra[Generic][BareissAlgorithm]
LinearAlgebra[ReducedRowEchelonForm]
Download Help Document