Siguiente: , Anterior: , 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: , Anterior: , Subir: Evaluación   [Índice general][Índice]