1 | initial version |
For your matrix you have:
sage: A.parent()
Full MatrixSpace of 4 by 5 dense matrices over Integer Ring
so it's a matrix over the integers. There "echelon form" means "Hermite normal form", which is what you got (the transition matrix is an integer matrix with an inverse that is also an integer matrix in that case. That's why the row [0 0 0 4 4] doesn't get scaled)
If you're interested in reduced row echelon form over the rationals, you can get that:
sage: B=A.change_ring(QQ)
sage: B.echelon_form()
[1 0 3 0 1]
[0 1 1 0 1]
[0 0 0 1 1]
[0 0 0 0 0]