(%i1) A : matrix([ 1, 1, 0],[ 0, 1, 1]) $

Para resolver nuestro ejercicio necesitamos \(R=A^t(AA^t)^{-1}.\)

(%i3) At : transpose( A) $
AAt : A. At ;
(AAt) ( 2 1 1 2 )

Utilizamos operaciones elementales para encontrar la inversa de AAt:

(%i4) X : addcol( AAt, ident( 2)) ;
(X) ( 2 1 1 0 1 2 0 1 )

Intercambiamos las filas 1 y 2, f1↔f2

(%i5) X : rowswap( X, 1, 2) ;
0 errores, 0 advertencias (X) ( 1 2 0 1 2 1 1 0 )

A la fila 2 le restamos la fila 1 multiplicada por 2: f2-2*f1

(%i6) X : rowop( X, 2, 1, 2) ;
(X) ( 1 2 0 1 0 3 1 2 )

Para multiplicar una fila por un número es equivalente a restar la misma fila, solo hay que fijarse en los siguiente: Supongamos que deseamos obtener \(\beta f_i\), necesitamos un \(\alpha\) que cumpla, \[\beta f_i=\gamma f_i-\alpha\gamma f_i\to \beta=\gamma(1-\alpha).\]
De esta foma, si queremos que el elemento -3, nuestro \(\gamma \), sea un 1, nuestro \(\beta \), entonces \[\alpha=1-\frac{\beta}{\gamma}.\]

(%i7) X : rowop( X, 2, 2,( 1 - 1 /( - 3))) ;
(X) ( 1 2 0 1 0 1 1 3 2 3 )

Por último, hacemos que el elemento {12} sea 0:

(%i8) X : rowop( X, 1, 2, 2) ;
(X) ( 1 0 2 3 1 3 0 1 1 3 2 3 )

La inversa que buscamos es:

(%i9) invAAt : submatrix( X, 1, 2) ;
(invAAt) ( 2 3 1 3 1 3 2 3 )

Para terminar, solo nos falta multiplicar por la traspuesta:

(%i10) R : At. invAAt ;
(R) ( 2 3 1 3 1 3 1 3 1 3 2 3 )

Verifiquemos:

(%i11) A. R ;
(%o11) ( 1 0 0 1 )

Created with wxMaxima.