\( \DeclareMathOperator{\abs}{abs} \newcommand{\ensuremath}[1]{\mbox{$#1$}} \)
(%i2) |
g(
v)
:
=
matrix([
v[
1],
v[
3]
-
v[
2]],[
v[
2]
-
v[
3],
v[
4]])
$
e4 : ident( 4) $ |
(%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])) $ |
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])))) ; |
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])) ; |
Created with wxMaxima.
El ejemplo nos dice que la aplicación es: