Anterior: opsubst, Subir: opsubst [Índice general][Índice]
La función opsubst
es similar a la función subst
,
excepto por el hecho de que opsubst
tan solo hace sustituciones
de operadores en las expresiones. En general, si f es un operador en
la expresión e, lo cambia por g en la expresión e.
Para determinar el operador, opsubst
asigna a inflag
el valor true
, lo cual significa que opsubst
sustituye
el operador interno de la expresión, no el mostrado en la salida
formateada.
Ejemplo:
(%i1) load ("opsubst")$ (%i2) opsubst(f,g,g(g(x))); (%o2) f(f(x)) (%i3) opsubst(f,g,g(g)); (%o3) f(g) (%i4) opsubst(f,g[x],g[x](z)); (%o4) f(z) (%i5) opsubst(g[x],f, f(z)); (%o5) g (z) x (%i6) opsubst(tan, sin, sin(sin)); (%o6) tan(sin) (%i7) opsubst([f=g,g=h],f(x)); (%o7) h(x)
Internamente, Maxima no hace uso de los operadores de negación unaria, de división ni de la resta, por lo que:
(%i8) opsubst("+","-",a-b); (%o8) a - b (%i9) opsubst("f","-",-a); (%o9) - a (%i10) opsubst("^^","/",a/b); a (%o10) - b
La representación interna de -a*b es *(-1,a,b), de modo que
(%i11) opsubst("[","*", -a*b); (%o11) [- 1, a, b]
Si alguno de los operadores no es un símbolo de Maxima, se emitirá un mensaje de error:
(%i12) opsubst(a+b,f, f(x)); Improper name or value in functional position: b + a -- an error. Quitting. To debug this try debugmode(true);
Sin embargo se permiten operadores subindicados:
(%i13) opsubst(g[5],f, f(x)); (%o13) g (x) 5
Antes de hacer uso de esta función ejecútese load("opsubst")
.
Anterior: opsubst, Subir: opsubst [Índice general][Índice]