next up previous
Next: 12 Sobre los cálculos numéricos Up: Un Tour por el MATHEMATICA Previous: 10 Animación de Gráficos, ajuste de curvas y

11 Programando en Mathematica

El Mathematica cuenta con un lenguaje de programación de alto nivel, cuya sintaxis es muy parecida a la del C, incluyendo características propias de tipo PROCEDURAL (utilizando bloques, iteraciones, condicionales, manejo de listas, ...), FUNCIONAL (construyendo nuevas funciones o paquetes o utilizando la amplia librería del Mathematica) y PROGRAMACIÓN DIRIGIDA A OBJETOS (definiendo reglas, ...). Recomendamos la siguiente bibliografía a efectos de completar el resumen que aquí hacemos sobre programación: Mathematica : A System for Doing Mathematics by Computer by Stephen Wolfram and Programming in Mathematica by Roman Maeder. A continuación damos una lista de comandos de dicho lenguaje:

a)
En primer lugar observemos que se puede usar la sintaxis típica del C para incrementar o decrementar la variable, por ejemplo, var++ incrementa el valor de var en 1 unidad y var+=d incrementa var en d unidades:

\includegraphics[width=12cm]{mathematica/image1101.ps}

b)
Los comandos que permiten programar BUCLES son los siguientes:

Do[expr, i, imax ]: Evalúa expr con i variando desde 1 hasta imax, con un incremento de 1.


Do[expr, i, imin, imax, di ]: Evalúa la expr con i variando desde imin hasta imax, con un incremento de di.


Nest[f, expr, n]: Aplica f a expr n veces.


FixedPoint[f, expr ]: Empieza con expr y aplica f repetidamente hasta que el resultado no cambie.


While[test, cuerpo]: evalúa el cuerpo repetidamente hasta que el test sea cierto.


For[start, test, incr, cuerpo ]: evalua start y entonces evalua el cuerpo y incr hasta que el test sea falso.

A continuación vemos unos ejemplos del uso de estos comandos:

\includegraphics[width=12cm]{mathematica/image1103.ps}

\includegraphics[height=14.5cm,width=12cm]{mathematica/image1104.ps}

c)
Los comandos que permiten controlar EL FLUJO DEL ORGANIGRAMA son:

Break[ ]: rompe el bucle.


Continue[ ]: continúa en el siguiente paso del bucle.


Return[expr]: abandona el proceso que esta realizando y devuelve expr.


Goto[name]: va la sentencia Label[name].


Throw[expr]: devuelve el valor expr, cerrando todos los procesos en marcha. Este comando va acompañado de Catch[expr].

Veamos algunos ejemplos de su uso:
\includegraphics[width=12cm,height=12.7cm]{mathematica/image1106.ps}

d)
Los comandos CONDICIONALES son los siguientes:

If[test, then, else]: Evalúa test y si es verdadero evalúa then; en caso contrario evalúaelse.




Which[test1, value1, test2, ...]: Evalúa testi, sucesivamente, dando el valor asociado al primer testi cierto.




Switch[expr, form1, value1, form2, ...]: Compara expr con cada uno de los formi, dando como resultado el valor asociado al primero que coincida.




Switch[expr, form1, value1, form2, ..., def]: Usa def en caso de que expr no coincida con nimguna formi.




TrueQ[expr]: Devuelve True si expr es cierto y False en otro caso.




SameQ[lhs, rhs]: Devuelve True si lhs y rhs son idénticos, y False en otro caso.




UnsameQ[lhs, rhs]: Devuelve True si lhs y rhs no son idénticos, y False en otro caso.

A continuación de dan algunos ejemplos de su uso:


\includegraphics[width=12cm]{mathematica/image1108.ps}

e)
El uso de BLOQUES Y MÓDULOS. El manejo de VARIABLES LOCALES:

Module[x = x0, y = y0,..., body]: Devuelve el resultado de body utilizando las variables locales incluidas.


With[x = x0, y = y0,..., body]: Define las variables locales incluidas en el argumento.


Block[x = x0, y = y0,..., body]: Función similar a module.

Veamos algunos ejemplos de su aplicación:

\includegraphics[width=12cm]{mathematica/image1110.ps}

\includegraphics[width=12cm,height=7.5cm]{mathematica/image1111.ps}

f)
El uso de las REGLAS en el Mathematica, se ilustra con el siguiente ejemplo:

\includegraphics[width=12cm]{mathematica/image1112.ps}

Veamos algunos ejemplos más, ilustrativos de la PROGRAMACIÓN en el Matematica:

1.-
La siguiente función construye la matriz de Hilbert de orden $ n$:

\includegraphics[width=12cm]{mathematica/image1113.ps}

2.-
La siguiente función calcula el polinomio característico de una matriz $ M$ (en su construción /; asegura que el argumento $ M$ es una matriz):

\includegraphics[width=12cm]{mathematica/image1114.ps}

3.-
La siguiente función nos permite encontrar los $ n$ primeros términos de la sucesión de Fibonacci. A continuación se usa la función Trace:

\includegraphics[width=12cm]{mathematica/image1115.ps}

\includegraphics[width=12cm]{mathematica/image1116.ps}

4.-
La siguiente función simula tirar una moneda devolviendo los resultados cuando el número de caras y cruces que ha salido sean iguales:

\includegraphics[width=12cm]{mathematica/image1118.ps}


next up previous
Next: 12 Sobre los cálculos numéricos Up: Un Tour por el MATHEMATICA Previous: 10 Animación de Gráficos, ajuste de curvas y