# Apéndice: Álgebra lineal con wxMaxima

2. Transformaciones elementales de matrices

## Operaciones elementales de fila o columna

### Intercambio de dos filas o dos columnas

kill(all)$

'A=A:matrix( [a11, a12, a13, a14],  
                  [a21, a22, a23, a24],  
                  [a31, a32, a33, a34]  );

A1=A1:rowswap(A, 1, 3);

I3a=I3a:rowswap(ident(3), 1, 3);

I3a.A;

A2=A2:columnswap(A, 1, 3);

I4a=I4a:columnswap(ident(4), 1, 3);

A.I4a;

### Multiplicación de una fila o columna por un escalar no nulo

I3b=I3b:matrix( [1,0,0], [0, %lambda,0], [0,0,1] );

I3b.A;

I4b=I4b:matrix( [1,0,0,0], [0,%lambda,0,0], [0,0,1,0], [0,0,0,1] );

A.I4b;

### Sumar a una fila o columna un múltiple 
escalar (no nulo) de otra fila o columna

rowop(A,1,2,-%lambda);

I3c=I3c:rowop(ident(3), 1, 2, -%lambda);

I3c.A;

columnop(A,1,2,-%lambda);

I4c=I4c:columnop(ident(4), 1, 2, -%lambda);

A.I4c;

## Obtención de matrices escalonadas y matrices
escalonadas reducidas

kill(all)$

'A=A:matrix( [3, 4, -2, 6],  
                  [5, 2, 0, -1],  
                  [7, 2, 8, 9]  );

triangularize(A);

echelon(A);

fpprintprec:5$
echelon(A), numer;