Introducción a la evaluación (Manual de Maxima 5.45.0)

Siguiente: Funciones y variables para la evaluación, Anterior: Evaluación, Subir: Evaluación [Índice general][Índice]

### 7.1 Introducción a la evaluación

Las fases que se suceden desde que el usuario solicita un cálculo hasta que obtiene el resultado son: la propia solicitud del cálculo, la evaluación, la simplificación y la respuesta.

Toda expresión expr que se introduzca en Maxima será evaluada, de manera que los símbolos que no tengan asociado ningún valor y los números evalúan a sí mismos; en cambio, aquellos símbolos que tengan un valor asociado serán sustituídos por tales valores.

Dos ejemplos. En el primero, los símbolos y los números se evalúan a sí mismos; en el segundo ejemplo, al asignarle a la variable `a` el valor `2`, allá donde se escriba `a` será sustituido por dicho valor.

    (%i1) [a, b, 2, 1/2, 1.0];
                                      1
    (%o1)                   [a, b, 2, -, 1.0]
                                      2
    (%i2) a:2$

    (%i3) [a, sin(a), a^2];
    (%o3)                    [2, sin(2), 4]

Maxima distingue entre funciones en forma verbal y funciones en forma nominal. Las funciones en forma verbal son evaluadas tomando en cuenta los valores dados a sus argumentos; en cambio, las funciones nominales no son evaluadas, aunque sus argumentos tengan valores asignados. Las funciones son susceptibles de ser tratadas de ambos modos; ejemplos típicos son la función de diferenciación `diff` y la de integración `integrate`.

En el siguiente ejemplo se le asigna a la variable `a` cierto valor, a continuación se invoca la función `diff` en su forma verbal con sus argumentos tomando los valores `a*x^2` y `x`. Seguidamente se invoca a la misma función `diff` en su forma nominal, lo cual se consigue mediante el operador de comilla simple (`'`); en este caso la función no es evaluada y devuelve una expresión simbólica en la que los argumentos sí han sido evaluados, pues la variable `a` es sustituida por el valor `1/2`.

    (%i1) a:1/2;
                                    1
    (%o1)                           -
                                    2
    (%i2) diff(a*x^2, x);
    (%o2)                           x
    (%i3) 'diff(a*x^2, x);

                                      2
                                 d   x
    (%o3)                        -- (--)
                                 dx  2

Sin embargo, no todas las funciones de Maxima sustituyen sus argumentos por sus valores. La documentación para cada función informará si sus argumentos son evaluados o no.

Por ejemplo, la función `properties` no evalúa sus argumentos, lo cual resulta práctico para el usuario, ya que en caso contrario debería utilizar el operador de comilla simple `'` a fin de poder mostrar las propiedades del símbolo `a`. A continuación se muestra como en el primer caso se devuelve una lista vacía, ya que no se le ha encontrado ninguna propiedad al símbolo `a`; una vez se le ha asignado el valor `2`, la función `properties` nos dice que la variable guarda un valor y esto es así porque no ha sustituido el símbolo `a` por su valor `2`. En consecuencia, la función `properties` muestra las propiedades de `'a`.

    (%i1) properties(a);
    (%o1)                          []
    (%i2) a:2$

    (%i3) properties(a);
    (%o3)                        [value]

La evaluación de símbolos, funciones y expresiones se puede controlar con los operadores de comilla simple (`'`) y de doble comilla simple (`''`). La evaluación se suprime con la comilla simple y se fuerza con la doble comilla simple (que no comilla doble).

Con la función `ev` se evalúa una expresión dentro de un contexto determinado controlado por el valor de ciertas variables `evflag` y funciones de evaluación `evfun`.

Siguiente: Funciones y variables para la evaluación, Anterior: Evaluación, Subir: Evaluación [Índice general][Índice]