Siguiente: , Anterior: , Subir: simplification   [Índice general][Índice]

72.3 Paquete facexp

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.

Función: facsum (expr, arg_1, ..., arg_n)

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.

Variable global: nextlayerfactor

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.

Variable global: facsum_combine

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.

Función: factorfacsum (expr, arg_1, ... arg_n)

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.

Función: collectterms (expr, arg_1, …, arg_n)

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: , Anterior: , Subir: simplification   [Índice general][Índice]