pracma (version 1.9.9)

# rref: Reduced Row Echelon Form

## Description

Produces the reduced row echelon form of `A` using Gauss Jordan elimination with partial pivoting.

## Usage

`rref(A)`

A
numeric matrix.

## Value

A matrix the same size as `m`.

## Details

A matrix of ``row-reduced echelon form" has the following characteristics:

1. All zero rows are at the bottom of the matrix

2. The leading entry of each nonzero row after the first occurs to the right of the leading entry of the previous row.

3. The leading entry in any nonzero row is 1.

4. All entries in the column above and below a leading 1 are zero.

Roundoff errors may cause this algorithm to compute a different value for the rank than `rank`, `orth` or `null`.

## References

Weisstein, Eric W. ``Echelon Form." From MathWorld -- A Wolfram Web Resource. http://mathworld.wolfram.com/EchelonForm.html

`qr.solve`

## Examples

```A <- matrix(c(1, 2, 3, 1, 3, 2, 3, 2, 1), 3, 3, byrow = TRUE)
rref(A)
#      [,1] [,2] [,3]
# [1,]    1    0    0
# [2,]    0    1    0
# [3,]    0    0    1

A <- matrix(data=c(1, 2, 3, 2, 5, 9, 5, 7, 8,20, 100, 200),
nrow=3, ncol=4, byrow=FALSE)
rref(A)
#   1    0    0  120
#   0    1    0    0
#   0    0    1  -20

# Use rref on a rank-deficient magic square:
A = magic(4)
R = rref(A)
zapsmall(R)
#   1    0    0    1
#   0    1    0    3
#   0    0    1   -3
#   0    0    0    0
```