Siguiente: Paquete functs, Anterior: Paquete absimp, Subir: simplification [Índice general][Índice]
El paquete facexp
contiene varias funciones que le aportan al
usuario la posibilidad de estructurar expresiones controlando su
expansión. Esta capacidad es especialmente útil cuando la
expresión contiene variables con significado físico,
ya que se suele dar el caso de que la forma más sencilla para estas
expresiones se obtiene cuando se expanden respecto de estas variables
y luego se factoriza respecto de sus coeficientes. Si bien es cierto que
este procedimiento no es difícil de llevar a cabo con las
funciones estándar de Maxima, pueden ser necesarios algunos retoques
adicionales que sí pueden ser más difíciles
de hacer.
La función facsum
y sus formas relacionadas proporcionan un
método para controlar la estructura de expresiones. La función
collectterms
puede usarse para añadir dos o más
expresiones que ya hayan sido simplificadas de la forma indicada,
sin necesidad de volver a simplificar la expresión completa.
Esta función puede ser útil cuando las expresiones sean
largas.
La instrucción load ("facexp")
carga este paquete y demo (facexp)
hace una demostración sobre su uso.
Devuelve una expresión equivalente a expr, la cual
depende de los argumentos arg_1, ..., arg_n, y
éstos pueden ser de cualquiera de las formas aceptables
para ratvars
, o listas de estas formas. Si los
argumentos no son listas, la forma devuelta se expande
completamente con respecto de los argumentos, siendo los
coeficientes de tales argumentos factorizados. Estos
coeficientes no contienen a ninguno de los argumentos,
excepto quizás de una forma no racional.
En caso de que cualquiera de los argumentos sea una lista, entonces
todos ellos se combinan en una única lista, y en lugar de llamar
a factor
para los coeficientes de los argumentos, facsum
se llama a sí misma utilizando esta nueva lista única
como lista de argumentos.
Es posible que se quiera utilizar facsum
con respecto a
expresiones más complicadas, tales como log (x + y)
. Estos
argumentos son también admisibles.
En ocasiones puede ser necesario obtener cualquiera de las formas
anteriores especificadas por sus operadores principales. Por ejemplo,
se puede querer aplicar facsum
con respecto a todos los
log
; en este caso, se puede incluir entre los argumentos bien
los log
específicos que se quieran tratar de esta
manera, bien la expresión operator (log)
o 'operator (log)
.
Si se quiere aplicar facsum
a expr con respecto a los
operadores op_1, ..., op_n, se debe evaluar
facsum (expr, operator (op_1, ..., op_n))
.
La forma operator
puede aparecer también dentro de las
listas de argumentos.
Además, dándole valores a las variables opcionales facsum_combine
y nextlayerfactor
se puede controlar el resultado de facsum
.
Valor por defecto: false
Si nextlayerfactor
vale true
, las llamadas recursivas de
facsum
se aplican a los factores de la forma factorizada de los
coeficientes de los argumentos.
Si vale false
, facsum
se aplica a cada coeficiente como
un todo cada vez que se efectúen llamadas recursivas a facsum
.
La inclusión del átomo nextlayerfactor
en la lista de
argumentos de facsum
tiene el mismo efecto que
nextlayerfactor: true
, pero solamente para el siguiente
nivel de la expresión. Puesto que nextlayerfactor
toma
siempre uno de los valores true
o false
, debe aparecer
comentado (comilla simple) cada vez que aparezca en la lista de
argumentos de facsum
.
Valor por defecto: true
La variable facsum_combine
controla la forma del resultado final
devuelto por facsum
si su argumento es un cociente de polinomios.
Si facsum_combine
vale false
, el resultado será una suma
completamente expandida, pero si vale true
, la expresión devuelta
es un cociente de polinomios.
Devuelve una expresión equivalente a expr obtenida aplicando
facsum
a los factores de expr, de argumentos
arg_1, ... arg_n. Si alguno de los factores de expr se
eleva a una potencia, tanto el factor como el exponente se procesarán de
esta manera.
Si algunas expresiones fueron ya simplificadas con facsum
, factorfacsum
,
factenexpand
, facexpten
o factorfacexpten
, debiendo ser
luego sumadas, puede ser conveniente combinarlas utilizando la función
collecterms
, la cual admite como argumentos todos aquéllos que se
puedan pasar a las anteriormente citadas funciones, con la excepción de
nextlayerfactor
, que no tiene efecto alguno sobre collectterms
.
La ventaja de collectterms
es que devuelve una forma similar a la de
facsum
, pero debido a que suma expresiones que ya han sido previamente
procesadas, no necesita repetir esta operación, lo cual
resulta ser especialmente útil cuando las expresiones a sumar son muy
grandes.
Siguiente: Paquete functs, Anterior: Paquete absimp, Subir: simplification [Índice general][Índice]