---------------------------------------------------------------------- | Sage Version 4.5.2, Release Date: 2010-08-05 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- # # Create a 3x6 matrix A. # 'QQ' means rational entries. # In the brackets, list the entries in row order. # sage: A = matrix(QQ,3,6,[0,3,-6,6,4,-5,3,-7,8,-5,8,9,3,-9,12,-9,6,15]); A [ 0 3 -6 6 4 -5] [ 3 -7 8 -5 8 9] [ 3 -9 12 -9 6 15] # # Row numbers start at 0! # sage: A.swap_rows(0,1); A [ 3 -7 8 -5 8 9] [ 0 3 -6 6 4 -5] [ 3 -9 12 -9 6 15] # # Replace row <2> by <2> + (-1)*<0>. # sage: A.add_multiple_of_row(2,0,-1); A [ 3 -7 8 -5 8 9] [ 0 3 -6 6 4 -5] [ 0 -2 4 -4 -2 6] # # To avoid fractions, multiply row <2> by 3. # sage: A.rescale_row(2,3); A [ 3 -7 8 -5 8 9] [ 0 3 -6 6 4 -5] [ 0 -6 12 -12 -6 18] # # <2> <-- <2> + 2*<1> # # This is an echelon form of A. # sage: A.add_multiple_of_row(2,1,2); A [ 3 -7 8 -5 8 9] [ 0 3 -6 6 4 -5] [ 0 0 0 0 2 8] # # Make the pivots be 1's and # the entries above each pivot be 0's. # # <2> <-- (1/2)*<2> # sage: A.rescale_row(2,1/2); A [ 3 -7 8 -5 8 9] [ 0 3 -6 6 4 -5] [ 0 0 0 0 1 4] # # <1> <-- <1> - 4*<2> # sage: A.add_multiple_of_row(1,2,-4); A [ 3 -7 8 -5 8 9] [ 0 3 -6 6 0 -21] [ 0 0 0 0 1 4] # # <0> <-- <0> - 8*<2> # sage: A.add_multiple_of_row(0,2,-8); A [ 3 -7 8 -5 0 -23] [ 0 3 -6 6 0 -21] [ 0 0 0 0 1 4] # # <1> <-- (1/3)*<1> # sage: A.rescale_row(1,1/3); A [ 3 -7 8 -5 0 -23] [ 0 1 -2 2 0 -7] [ 0 0 0 0 1 4] # # <0> <-- <0> + 7*<1> # sage: A.add_multiple_of_row(0,1,7); A [ 3 0 -6 9 0 -72] [ 0 1 -2 2 0 -7] [ 0 0 0 0 1 4] # # <0> <-- (1/3)*<0> # # This is the reduced echelon form. # sage: A.rescale_row(0,1/3); A [ 1 0 -2 3 0 -24] [ 0 1 -2 2 0 -7] [ 0 0 0 0 1 4] # # We can use sage to get the reduced echelon form directly. # sage: A = matrix(QQ,3,6,[0,3,-6,6,4,-5,3,-7,8,-5,8,9,3,-9,12,-9,6,15]) sage: A.echelon_form() [ 1 0 -2 3 0 -24] [ 0 1 -2 2 0 -7] [ 0 0 0 0 1 4]