rref
Reduced row echelon form (Gauss-Jordan elimination)
Syntax
R = rref(A)
[R,jb] = rref(A)
[R,jb] = rref(A,tol)
Description
R = rref(A)
produces the reduced row echelon form ofA
using Gauss Jordan elimination with partial pivoting. A default tolerance of (max(size(A))*eps *norm(A,inf)
) tests for negligible column elements.
[R,jb] = rref(A)
also returns a vectorjb
such that:
r = length(jb)
is this algorithm's idea of the rank ofA
.x(jb)
are the pivot variables in a linear systemAx = b
.A(:,jb)
is a basis for the range ofA
.R(1:r,jb)
is ther
-by-r
identity matrix.
[R,jb] = rref(A,tol)
uses the given tolerance in the rank tests.
Roundoff errors may cause this algorithm to compute a different value for the rank thanrank
,orth
andnull
. Additionally, usemldivide
to solve linear systems when high precision is required.
Examples
Userref
on a rank-deficient magic square:
A = magic(4), R = rref(A) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 R = 1 0 0 1 0 1 0 3 0 0 1 -3 0 0 0 0