Sei sulla pagina 1di 6

Introduccin al programa

Mathematica .

Introduccin.
Mathematica, adems de un programa de Clculo Simblico, es tambin un lenguaje de programacin, que
permite realizar condicionales, bucles, instrucciones lgicas y, en general, programas con propsitos
especficos. En esta prctica vamos a mostrar las principales herramientas de programacin.

Condicionales.
Comenzamos con las instrucciones de Mathematica para controlar el flujo de un programa, segn el
cumplimiento de determinadas condiciones.
La instruccin bsica es la del condicional simple, que se realiza con la instruccin:

If@test, entonces, si no, tercera condicin HopcionalLD

Para este condicional simple, debemos proporcionar el test (que ha de ser una expresin de tipo lgico, es
decir, que al ser evaluada proporcione una salida del tipo True o False). Si esta condicin se cumple
(la salida es del tipo True), entonces se realiza la operacin escrita en la segunda posicin. Si la condicin no se cumple (la salida es de tipo False), se realiza la operacin descrita en la tercera posicin.
La condicin escrita en cuarto lugar es optativa, es decir, no es imprescindible para que el condicional se
realice. Proporciona una salida para el condicional cuando Mathematica no puede realizar el test indicado
en primer lugar. Adems, la salida puede ser un texto, un nmero, una funcin, etc. Podemos verlo en el
siguiente ejemplo:

positivo@x_D := If@x < 0, "negativo", "positivo"D;


positivo@-3D
negativo
positivo@7D
positivo

Departamento de Matematica Aplicada.

EPSZ-USAL

Practica n 8

Introduccion al programa Mathematica

positivo@aD
If@a < 0, negativo, positivoD
Podemos ver como Mathematica no ha podido realizar la comparacin en este tercer caso, puesto que no
tenemos de momento ningn valor para "a". Podemos ampliar nuestro condicional con una tercera opcin,
que puede ser un mensaje de error, para cuando la comparacin no es posible.

positivo2@x_D := If@x < 0, "negativo", "positivo", "Error"D;


positivo2@aD
Error
Estos condicionales se pueden anidar. Por ejemplo, definimos la siguiente funcin:

origen1@x_, y_D := If@x == 0, If@y == 0, "origen", "fuera del origen", "error"D,


"fuera del origen", "error"D
origen1@0, 0D
origen1@0, -1D
origen1@4, -2D
origen
fuera del origen
fuera del origen
Dentro del condicional simple, podemos incluir determinados operadores lgicos, como la conjuncin "y"
( en la paleta, o bien &&), la disyuncin "o" ( en la paleta, o bien ||) o la negacin ( en la paleta, o bien
!).
Por ejemplo, la funcin anterior se podra escribir de forma ms sencilla incluyendo dos condiciones en el
condicional de la siguiente forma:

origen2@x_, y_D := If@x == 0 y == 0, "origen", "fuera del origen", "error"D;


origen2@0, 0D
origen2@0, -1D
origen2@-4, 2D
origen
fuera del origen
fuera del origen

Mathematica tambin puede realizar condicionales mltiples, en los que se verifican diferentes condiciones, y si resultan ciertas se realiza una determinada operacin para cada condicin.
2

La sintaxis de esta expresin es la siguiente:

Departamento de Matematica Aplicada.

EPSZ-USAL

Introduccion al programa Mathematica

Practica n 8

Mathematica tambin puede realizar condicionales mltiples, en los que se verifican diferentes condiciones, y si resultan ciertas se realiza una determinada operacin para cada condicin.
La sintaxis de esta expresin es la siguiente:

Which@test1, entonces1, test2, entonces2, ..., testn, entoncesnD


Escribimos un test1 (lgico, es decir, cuya salida sea del tipo True o False), y a continuacin la
operacin que hay que realizar si ese test proporciona un resultado True. Se pueden escribir diferentes
test2 seguido de la operacin2, test3 seguido de la operacin3, etc.
Imaginemos que queremos realizar una funcin para determinar si una funcin real tiene extremos en un
punto de su dominio. Utilizando la instruccin Which y un operador lgico ( en la paleta o &&),
podramos escribir lo siguiente:

extremos@f_, a_D := Which@HD@f, xD . x aL 0, "no es extremo",


HD@f, xD . x aL == 0 && HD@f, 8x, 2<D . x aL < 0, "mximo",
HD@f, xD . x aL == 0 && HD@f, 8x, 2<D . x aL > 0, "mnimo",
HD@f, xD . x aL == 0 && HD@f, 8x, 2<D . x aL == 0, "punto de inflexin"D
extremos@Cos@xD, 0D
mximo
extremos@Cos@xD, Pi 2D
no es extremo

extremos@Cos@xD, PiD
mnimo
Este condicional simple o mltiple lo podremos combinar con otro tipo de instrucciones, como bucles, para
realizar diferentes programas.

Bucles
Veamos ahora otro tipo de instrucciones, como los bucles, que realizan una operacin mientras se verifique
una condicin, o mientras lo indique algn contador definido previamente.
La instruccin ms sencilla para realizar un proceso un nmero determinado de veces es la siguiente:

Do@proceso, 8veces<D

Departamento de Matematica Aplicada.

EPSZ-USAL

Practica n 8

Introduccion al programa Mathematica

Do@Print@"Hola"D, 83<D
Hola
Hola
Hola
Si queremos que ese proceso dependa de alguna variable, podemos incluir en esa instruccin el valor
inicial, el valor final y el paso en el que se va incrementando esa variable. En ese caso la instruccin toma
la forma:

Do@proceso, 8variable, valorinicial, valorfinal, incremento<D

Do@Print@1 H1 + tLD, 8t, 1, 7, 2<D


1
2
1
4
1
6
1
8

Si en la instruccin anterior no se indica el incremento en la variable, Mathematica toma un incremento


unidad:

Do@Print@t^2D, 8t, 1, 3<D


1
4
9
Una instruccin alternativa para la realizacin de procesos mientras se cumplan condiciones es la siguiente:

While@condicin, procesoD
En esta instruccin, el proceso (o procesos) que se realizan se escriben al final, y se realizan mientras la
condicin indicada al principio proporcione un resultado True.

Departamento de Matematica Aplicada.

EPSZ-USAL

Introduccion al programa Mathematica

Practica n 8

Clear@iD
i = 1;
While@1 i^2 > 0.01, 8Print@iD, i = i + 2<D;
1
3
5
7
9
Otra instruccin para la realizacin de bucles dependiendo del cumplimiento de alguna condicin es la
siguiente:

For@comienzo, condicion_final, incremento, procesoD


El proceso (indicado en el ltimo lugar) se cumple mientras el contador cumpla la condicin indicada.
Por ejemplo, podramos escribir una instruccin alternativa a la instruccin While anterior con el mismo
propsito:

Clear@iD
For@i = 1, 1 i^2 > 0.01, i = i + 2, Print@iDD
1
3
5
7
9
Veamos otro ejemplo: en este caso queremos imprimir los cuatro primeros mltiplos naturales de junto
con el valor de su coseno. Una posibilidad sera la siguiente:

Departamento de Matematica Aplicada.

EPSZ-USAL

Practica n 8

Introduccion al programa Mathematica

For@i = 1, i < 5, i = i + 1, 8a = Pi * i, b = Cos@Pi * iD, Print@8a, b<D<D


8, -1<
82 , 1<

83 , -1<
84 , 1<

De una forma un poco ms elaborada, si queremos introducir texto y que tenga un determinado formato,
podemos utilizar la opcin TableForm:

For@i = 1, i < 5, i = i + 1, 8a = Pi * i, b = Cos@Pi * iD,


Print@ TableForm@88"si el angulo es", a, "su coseno es ", b<<DD<D

si el angulo es

si el angulo es

su coseno es

si el angulo es

su coseno es

-1

si el angulo es

su coseno es

su coseno es

-1

Departamento de Matematica Aplicada.

EPSZ-USAL

Potrebbero piacerti anche