Talk:Reduced row echelon form
In integer matrix computations, it may not be possible to all the leading coeff's one - one cannot divide columns by arbitrary integers and keep the matrix coeff's integers. The requirement is then that the coeff's above the leading one are smaller by absolute value. Is this generally interesting enough to merit a discussion? --130.230.19.134 11:15, 30 May 2007 (UTC)
What is explained is only the undergraduate side of the story and there is much more to be said:
– The row vectors of a matrix and of its reduced row echelon form span the same vector subspace of R^n, and conversely; in other words, rref matrices parametrize the Grassman variety of subspaces of R^n. This variety has a nice cellular decomposition (Schubert cells), the biggest cell corresponding to matrices whose principal minors are non-zero) and the cells are vector spaces of adequate dimensions. Then the rref describes precisely the coordinates of the given vector subspace in its Schubert cell. (I should take the time to write down the full description...).
– The group GL_m acts on the left on the vector space M_{m,n} of m\times n matrices ; matrices in rref are canonical representatives of orbits.
– The Hermite form is a variant of the rref, for matrices with integer coefficients (more generally, in any Euclidean ring; there are variants in Bezoutian rings).
Pseudocode
editI have partially relabeled the provided pseudocode. I had an assignment to come up with a program that converts a matrix to RREF, and tried to follow the pseudocode, but found it somewhat difficult to implement the way that it was written. Mainly, the way it's formatted had little indication of when control structures (if, for, while) ended. So, I very simply added in an END CONTROL at the proper places. I still think that the pseudocode could be written so that it could be understood more easily, or implemented on a computer more easily, but I'll leave that one up to the discretion of everyone else. I mean, the pseudocode is most likely provided for the programmer, and not for someone who's just trying to understand the concept. The reader who's trying to gain an understanding of it should probably be able to understand it simply by reading through the algorithm overview and if not, then by following the trailing links.
However, if you believe that my additions only add confusion, please revert it to the previous version, and accept my apologies for bungling things. RemyK313 (talk) 11:04, 24 February 2008 (UTC)