Consideremos las matrices que debemos ortogonalizar:

(%i3) A : matrix([ 1, 2],[ 0, - 1]) $
B : matrix([ 0, - 1],[ 1, 3]) $
print( A, "y", B) $
[ 1 2 0 1 ] y [ 0 1 1 3 ]

Como base que constituyen de un su sistema generador, ortogonalizamosla:

(%i6) u1 : A $
u2 : B -(( mat_trace( transpose( u1). B)) / mat_trace(( transpose( u1). u1))) * u1 $
print( "Base ortogonal:", "{", u1, ",", u2, "}") $
0 errores, 0 advertencias Base ortogonal: { [ 1 2 0 1 ] , [ 5 6 2 3 1 13 6 ] }

El ejercicio nos pide la traza de la matriz producto:

(%i7) mat_trace((( u1). u2)) ;
(%o7) 2 3

Observemos que si elegimos u1 de otra forma el resultado será distinto:

(%i10) u1 : B $
u2 : A -(( mat_trace( transpose( u1). A)) / mat_trace(( transpose( u1). u1))) * u1 $
mat_trace((( u1). u2)) ;
(%o10) 24 11

Created with wxMaxima.