Home Online Manual
Top
Back: gauss_col
Forward: addcol
FastBack: Linear algebra
FastForward: linalg_lib
Up: matrix_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.3.1.16 gauss_row

Procedure from library matrix.lib (see matrix_lib).

Usage:
gauss_row(A [,e]); A matrix, e any type

Return:
- a matrix B, if called with one argument; B is the complete row- reduced lower-triangular normal form of A if A is constant, (resp. as far as this is possible if A is a polynomial matrix; no division by polynomials).
- a list L of two matrices, if called with two arguments; L satisfies transpose(L[2])*A=transpose(L[1])
with L[1] the row-reduced form of A
and L[2] the transformation matrix.

Note:
* This procedure just applies gauss_col to the transposed matrix. The transformation matrix is obtained by applying lift. This should be faster than the procedure rowred.
* It should only be used with exact coefficient field (there is no pivoting and rounding error treatment).
* Parameters are allowed. Hence, if the entries of A are parameters, B is the row-reduced form of A over the rational function field.

Example:
 
LIB "matrix.lib";
ring r=(0,a,b),(A,B,C),dp;
matrix m[6][8]=
0, 0,  b*B, -A,-4C,2A,0, 0,
2C,-4C,-A,B, 0,  B, 3B,AB,
0,a*A,  0, 0, B,  0, 0, 0,
0, 0,  0, 0, 2,  0, 0, 2A,
0, 0,  0, 0, 0,  0, 2b, A,
0, 0,  0, 0, 0,  0, 0, 2a;"";
==> 
print(gauss_row(m));"";
==> 0,  A,   0,      0,     0,0,0,0,
==> 0,  0,   0,      0,     1,0,0,0,
==> 2*C,-4*C,-A,     B,     0,B,0,0,
==> 0,  0,   (b)/2*B,-1/2*A,0,A,0,0,
==> 0,  0,   0,      0,     0,0,1,0,
==> 0,  0,   0,      0,     0,0,0,1 
==> 
ring S=0,x,dp;
matrix A[4][5] =  3, 1,1,-1,2,
13, 8,6,-7,1,
14,10,6,-7,1,
7, 4,3,-3,3;
list L=gauss_row(A,1);
print(L[1]);
==> 1/2,-7/3,-19/6,5/6,
==> 1,  0,   0,    0,  
==> 0,  1,   0,    0,  
==> 0,  0,   1,    0,  
==> 0,  0,   0,    1   
print(L[2]);
==> 0,   -6,  -5,  1,   
==> -1/2,2/3, -1/6,-1/6,
==> 1/2, -5/3,-5/6,1/6, 
==> 0,   13/3,11/3,-1/3 
See also: rowred.