Primero consideramos la aplicación \(h:\mathbb{P}_3(\mathbb{R})\to\mathbb{R}^4\):

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

Hemos visto que esta aplicación es una aplicación lineal, que además es biyectica. Esta aplicación lineal transforma la base canónica de los polinomios en las de los vectores de dimensión 4. Utilicémosla para para transformar la base que nos han propuesto en una base de \(\mathbb{R}^4\):

(%i4) base : transpose( matrix( h( 1 - X ^ 3), h( X - X ^ 3), h( X ^ 2 - X ^ 3), h( 2 * X ^ 3))) ;
(base) [ 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 2 ]

Esta matriz, cuyos elementos son las imágenes de los vectores de la base propuesta, es la denominada matriz del cambio de base y será fundamental para nuestro propósito.

Ahora repetimos el proceso del ejemplo anterior:

(%i8) g( v) : = matrix([ v[ 1], v[ 3] - v[ 2]],[ v[ 2] - v[ 3], v[ 4]]) $
fg( m) : = flatten( makelist( makelist( m[ i, j], i, 1, 2), j, 1, 2)) $
b : transpose( base) $ /* es necesario esta transposici ó n pues g ( v ) solo admite vectores y col ( base , i ) es una matriz */
Mf : transpose( matrix( fg( g( row( b, 1)[ 1])), fg( g( row( b, 2)[ 1])), fg( g( row( b, 3)[ 1])), fg( g( row( b, 4)[ 1])))) ;
(Mf) [ 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 2 ]

Ya tenemos la matriz que buscábamos.

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

(%i10) ifg( v) : = matrix([ v[ 1], v[ 2]],[ v[ 3], v[ 4]]) $
expand( ifg(( transpose( Mf. invert( base). transpose( matrix([ p_0, p_1, p_2, p_3])))[ 1]))) ;
(%o10) [ p 0 p 1 p 2 p 2 p 1 p 3 ]

Esto es a causa de la relación con la matriz del cambio de base, "base", que nos permite de relacionar las matrices de la aplicación lineal dependiendo de la base asociada. Es fácil obserbar que la matriz asociada a la base canónica resulta la misma que:

(%i11) Mf. invert( base) ;
(%o11) [ 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 ]

Created with wxMaxima.