(%i2) g( v) : = matrix([ v[ 1], v[ 3] - v[ 2]],[ v[ 2] - v[ 3], v[ 4]]) $
e4 : ident( 4) $

El ejemplo nos dice que la aplicación es:

(%i4) expr : rat([ p_0, p_1, p_2, p_3]. matrix([ 1],[ X],[ X ^ 2],[ X ^ 3]), X) $
print( "g(", expr, ")=", g([ p_0, p_1, p_2, p_3])) $
g( p 3 X 3 + p 2 X 2 + p 1 X + p 0 )= [ p 0 p 2 p 1 p 1 p 2 p 3 ]

Veamos la siguiente función, \(fg:\mathcal{M}_2(\mathbb{R})\to\mathbb{R}^4\), que nos representa una matriz en formato vector:

(%i5) fg( m) : = flatten( makelist( makelist( m[ i, j], i, 1, 2), j, 1, 2)) $

La matriz asociada será la proporcionada por las imágenes de la base canónica de \(\mathbb{R}^4\)

(%i6) Mf : transpose( matrix( fg( g( row( e4, 1)[ 1])), fg( g( row( e4, 2)[ 1])), fg( g( row( e4, 3)[ 1])), fg( g( row( e4, 4)[ 1])))) ;
(Mf) [ 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 ]

Ved que en \(g\) hemos introducido las filas como vector, lo correcto es introducir las columnas; pero, maxima no devuelve las columnas como vector y habría que trasponerlas. Sin embargo, como la base canónica e4 es simétrica nos da igual filas que columnas.

Como observamos, para construir la función utilizamos constantemente el espacio vectorial \(\mathbb{R}^4\) de paso; así g es la composición de \(\mathbb{R}^4\to\mathbb{P}_3(\mathbb{R})\to\mathcal{M}_2(\mathbb{R})\) y para calcular la matriz asociada hemos utilizado \(fg:\mathcal{M}_2(\mathbb{R})\to\mathbb{R}^4\)

Para verificar el resultado utilizamos la inversa de \(fg\), \(ifg:\mathbb{R}^4\to\mathcal{M}_2(\mathbb{R})\):

(%i8) ifg( v) : = matrix([ v[ 1], v[ 2]],[ v[ 3], v[ 4]]) $
ifg(( transpose( Mf. transpose( matrix([ p_0, p_1, p_2, p_3])))[ 1])) ;
(%o8) [ p 0 p 1 p 2 p 2 p 1 p 3 ]

Created with wxMaxima.