You are on page 1of 14

Prctica 0

Clculo con Mathematica


1.- Introduccin al Mathematica
El programa Mathematica constituye una herramienta muy potente para la realizacin de todo tipo de clculos
matemticos: operaciones aritmticas, clculo simblico, grficos, Las ltimas versiones del programa incorporan un
editor de texto (bastante aceptable) y permi-ten el manejo de paletasde smbolos que facilitan el uso de los comandos
e instrucciones del programa y la utilizacin de la simbologa habitual en las frmulas y operaciones matemticas.
El programa Mathematica est estructurado en 2 partes:
1.- El Front End: es la interface que permite la comunicacin con el usuario. Presenta las entradas y salidas y
permite crear y editar ficheros que contienen texto, clculos, grficas, etc. Estos ficheros tienen la extensin .nb y se
denominan Notebooks (Cuadernos de notas). La informacin que contienen estos ficheros se estructura mediante un
sistema de celdas de diferentes tipos (ttulo, subttulo, seccin, texto, input, output, .) .
2.- El Kernel (ncleo): constituye la estructura interna del programa y es el que se encarga de la realizacin de los
clculos y operaciones matemticas que solicita el usuario.
Las posibilidades que ofrece el programa Mathematica son muy variadas:
a) Clculo numrico: Realizacin de operaciones de clculo simples o muy complicadas. El programa nos
devuelve el resultado como si se tratara de una calculadora cientfica. La diferencia es que permite trabajar
con la precisin que queramos.
In[1]:=
2^100 (+Mathematica nos devuelve el valor exacto
y no una aproximacin como hara una calculadora.+)
Out[1]=
1267 650 600 228 229 401 496 703 205 376
In[2]:=
2^100 // N (+as nos da un valor aproximado+)
Out[2]=
1.2676510
30
In[3]:=
N[2^100] (+de esta forma tambin nos da un valor aproximado+)
Out[3]=
1.2676510
30
En las entradas anteriores hemos introducido un comentario en una celda input y el programa lo ha ignorado al ejecutar
la celda. Los comentarios son interesantes ya que permiten aclarar lo que realiza una determinada instruccin. Se
considera comentario todo lo que hay escrito entre (* texto del comentario *).
b) Clculo simblico: Permite trabajar y operar con expresiones simblicas.
b) Clculo simblico: Permite trabajar y operar con expresiones simblicas.
In[4]:=
Expand[(a + b)^3]
Out[4]=
a
3
3 b a
2
3 b
2
a b
3
In[5]:=
D[x^n, x]
Out[5]=
n x
n1
In[6]:= _
0
1
x Log[x] dx
Out[6]=

1
4
c) Grficos: Permite visualizar grficos en dos o tres dimensiones
In[7]:=
Plot[Sin[x], {x, 0, 2 }]
1 2 3 4 5 6
-1
-0.5
0.5
1
Out[7]=
Graphics
In[8]:=
Plot[Sin[x], {x, 0, 2 }];
1 2 3 4 5 6
-1
-0.5
0.5
1
2 pract ica0_0708- v 52- out . nb
In[9]:=
Plot3D[x^2 - y^2, {x, -2, 2}, {y, -2, 2}]
-2
-1
0
1
2
-2
-1
0
1
2
-4
-2
0
2
4
-2
-1
0
1
2
Out[9]=
SurfaceGraphics
d) Definicin de variables y funciones: Permite definir y operar con variables y funciones definidas por el
usuario.
In[10]:=
a = 7; b = 3; a + b
Out[10]=
10
In[11]:=
a + b
Out[11]=
21
In[12]:=
f[x_] := x^2 - 5 x + 6
In[13]:=
f[3]
Out[13]=
0
In[14]:=
f'[x]
Out[14]=
2 x 5
In[15]:=
D[f[x], x]
Out[15]=
2 x 5
e) Confeccin de programas: Mathematica incorpora su propio lenguaje de programa-cin que puede
utilizarse para implantar algoritmos de clculo, bucles, procesos itera-tivos,
pract ica0_0708- v 52- out . nb 3
In[16]:=
x
1
= 2;
For_n = 1, n s 5, n = n + 1,
x
n+1
=
3
4 - x
n
;
Print[N[x
n
]]_
2.
1.5
1.2
1.07143
1.02439
In[18]:=
x
1
= 2;
For_n = 5, 5 s n s 10, n = n + 1,
x
n+1
=
3
4 - x
n
;
Print[N[x
n
]]_
1.02439
1.0082
1.00274
1.00091
1.0003
1.0001
2. Primeros pasos con Mathematica
Como hemos indicado con anterioridad la informacin contenida en los Notebooks se estructura mediante
un sistema de celdas de distintos tipos. Por defecto Mathematica asigna a las celdas el tipo Input
(entrada). Estas celdas contienen las rdenes (comandos, instrucciones, operaciones, etc.) que el usuario
quiere realizar. Para que el programa ejecute la instruccin contenida en una celda Input hay que pulsar la
tecla Intro (o la combinacin: Mayscula+Return).
Si escribimos 2+7 y pulsamos Intro, el programa nos devuelve:
In[20]:=
2 + 7
Out[20]=
9
Asociada a cada celda Input el programa genera una celda Output (salida) donde muestra el resultado de
la operacin requerida. Ambas celdas aparecen con los indicadores In[n]:= y Out[n]. El nmero n se
genera automticamente y de manera secuencial a lo largo de una sesin de trabajo, desde que se inici el
programa hasta que salimos de l. Este nmero puede sernos de utilidad si queremos utilizar un clculo
previamente obtenido, dado que el programa Mathematica almacena en el Kernel (ncleo) todas las evalua-
ciones y clculos que hemos realizado durante nuestra sesin de trabajo.
El signo % se utiliza para referirnos al resultado que figura en la celda Output inmediatamente anterior.
Si escribimos %*5 y pulsamos Intro, el programa nos devuelve:
4 pract ica0_0708- v 52- out . nb
Asociada a cada celda Input el programa genera una celda Output (salida) donde muestra el resultado de
la operacin requerida. Ambas celdas aparecen con los indicadores In[n]:= y Out[n]. El nmero n se
genera automticamente y de manera secuencial a lo largo de una sesin de trabajo, desde que se inici el
programa hasta que salimos de l. Este nmero puede sernos de utilidad si queremos utilizar un clculo
previamente obtenido, dado que el programa Mathematica almacena en el Kernel (ncleo) todas las evalua-
ciones y clculos que hemos realizado durante nuestra sesin de trabajo.
El signo % se utiliza para referirnos al resultado que figura en la celda Output inmediatamente anterior.
Si escribimos %*5 y pulsamos Intro, el programa nos devuelve:
In[21]:=
+ 5
Out[21]=
45
dado que el % hace referencia al resultado que figura en la celda Output anterior, es decir en la celda
Out[20]
Pueden utilizarse tambin los smbolos %%, %%%, etc. para referirnos al resultado que figura en la penl-
tima, antepenltimo, etc. celda Output. Sin embargo, la forma ms cmoda es utilizar %n si queremos
referirnos al resultado contenido en la celda Out[n].
Si escribimos %13 - 3 y pulsamos Intro, el programa nos devuelve:
In[22]:=
23 - 3
Out[22]=
23 3
A parte de las celdas Input y Output, Mathematica puede tambin trabajar con otros tipos de celdas: Ttle,
Section, Subsection, Text, Se trata de celdas cuyo contenido no es evaluable y que se utilizan para dar
a nuestro Notebook un aspecto ms agradable en cuanto a la presentacin del texto: permitiendo incluir un
ttulo, organizar el contenido en secciones, mostrar comentarios, etc. Como hemos indicado Mathematica
supone por defecto que todas las celdas son de tipo Input. Para cambiar el tipo para una determinada celda
utilizamos el men desplegable:
Format Style seleccionando con el cursor el estilo deseado.
Por ejemplo: si queremos incluir una celda de Ttulo seguiremos los siguiente pasos:
1) Escribimos el ttulo: (por ejemplo: Prctica 1)
2) Seleccionamos la celda: botn izquierdo del ratn sobre el corchete que figura en la parte derecha de la celda.
3) Desplegamos el men: Format Style y seleccionamos la opcin Title
Si hemos escrito texto sin indicarlo previamente,lo habremos hecho en una lnea tipoInput(que son las que el programa
crea por defecto), para cambiarla a una celda tipo texto basta con marcarla y en la barra de men Cell elegir Display As
- Text
El aspecto final de nuestro Notebook depender del estilo de documento que estemos utilizando. Mathemat-
ica incorpora una serie de estilos de documento predefinidos: Article-Clasic, Demo, Report, Clasroom,
etc. Cada uno de estos estilos asigna distintos tipos de letra, de fondo, de combinaciones de color, etc, a
nuestro documento y a cada uno de los tipos de celda. Para seleccionar el estilo del documento deseado
utilizamos el men desplegable:
Format StyleSheet seleccionando con el cursor el estilo deseado.
pract ica0_0708- v 52- out . nb 5
3. Sintaxis general de las instrucciones en Mathematica
A la hora de escribir las instrucciones que queremos que ejecute el programa Mathematica, contenidas en
una celda Input, hemos de prestar mucha atencin a las siguientes reglas:
a) Las maysculas y las minsculas: Mathematica distingue unos caracteres de otros. No es lo mismo
escribir Expand (instruccin que utilizaremos para desarrollar una determinada expresin matemtica) que
expand (instruccin no reconocida por el programa y cuya utilizacin generar un mensaje de error y no el
resultado espe-rado).
In[23]:=
Expand[(x + y)^2]
Out[23]=
x
2
2 y x y
2
Importante: Todas las funciones, instrucciones, opciones, constantes, etc. incorpora-das en el programa
Mathematica empiezan con maysculas
b) Los espacios: Un espacio colocado entre dos variables o nmeros en una celda Input se interpreta como
el signo de multiplicar.
In[24]:=
7 5
Out[24]=
35
In[25]:=
x x
Out[25]=
x
2
c) Parntesis, corchetes y llaves: Los parntesis ( ) se utilizan para agrupar trminos e indicar prioridad.
Los corchetes [ ] son para uso exclusivo de las funciones para delimitar sus argumentos. Las llaves { } se
utilizan para definir listas de elementos: vectores, matrices, etc.
4. Operaciones aritmticas elementales
Mathematica puede utilizarse como una calculadora convencional para la realizacin aunque con una importante
diferencia: la precisin en el clculo. Las operaciones se realizan en forma exacta o bien aproximada (con el grado de
precisin que queramos).
Mathematica reconoce los operadores aritmticos habituales: suma (+), diferencia (-), producto (* o espacio en blanco),
divisin (/) y potencia (^). Si intervienen varios de estos operadores en una misma instruccin Mathematica aplica los
criterios de prioridad habituales entre ellos: potencias productos y divisiones sumas y rectas.
6 pract ica0_0708- v 52- out . nb
In[26]:=
2 + 5 + 3^2 (+Primero se efecta la potencia,
despus el producto y por ltimo la suma+)
Out[26]=
47
In[27]:=
(2 + 5) + 3^2 (+Primero se efecta la suma,
despus la potencia y por ltimo el producto+)
Out[27]=
63
Las operaciones de potencia y divisin tambin pueden indicarse utilizando los iconos que figuran en la paleta. La
siguiente operacin (2/3 - 1/5^2)/(3 - 1/2)^2
In[28]:=
(2 / 3 - 1 / 5^2) / (3 - 1 / 2)^2
Out[28]=
188
1875
Puede escribirse en la forma
In[29]:=
2
3
-
1
5
2
[3 -
1
2
|
2
Out[29]=
188
1875
5.- Tipos de nmeros y precisin en los clculos
Mathematica puede trabajar con todos los tipos de nmeros: enteros (Integer), racionales (Rational), reales (Real) y
complejos (Complex).
Para saber de qu tipo es un nmero concreto podemos utilizar la instruccin: Head[nmero]
In[30]:=
Head[0.35]
Out[30]=
Real
Mathematica no tiene ninguna limitacin en cuanto al tamao de los nmeros enteros (la nica limitacin viene
impuesta por la memoria del ordenador). Todas las operaciones realizadas con nmeros enteros o racionales se realizan
con precisin infinita por lo que el programa siempre nos devuelve un nmero exacto.
In[31]:=
2^1000
Out[31]=
10 715 086 071 862 673 209 484 250 490 600 018 105 614 048 117 055 336 074 437 503 883 703 510 511 249
361 224 931 983 788 156 958 581 275 946 729 175 531 468 251 871 452 856 923 140 435 984 577 574 698
574 803 934 567 774 824 230 985 421 074 605 062 371 141 877 954 182 153 046 474 983 581 941 267 398
767 559 165 543 946 077 062 914 571 196 477 686 542 167 660 429 831 652 624 386 837 205 668 069 376
pract ica0_0708- v 52- out . nb 7
In[32]:=
2
3
-
1
5
2
[3 -
1
2
|
2
Out[32]=
188
1875
Mathematica asigna el tipo Real a los nmeros decimales. La forma de operar con estos nmeros es completamente
distinta. Si en una operacin interviene un nmero decimal Mathematica nos devolver siempre un valor aproximado
(con una precisin de 6 dgitos decimales, aunque internamente el resultado lo realiza con una precisin de 16 cifras
decimales).
In[33]:=
2.^1000
Out[33]=
1.0715110
301
Mathematica distingue entre el nmero 2 (entero) y el nmero 2. (2.0) que es tratado como decimal de ah que el
resultado mostrado sea un nmero aproximado y no un nmero exacto como nos muestra en Out[25].
In[34]:=
7
5
-
1
9
+
1
2
(+Mathematica nos devuelve un valor exacto+)
Out[34]=
161
90
In[35]:=
7
5
-
1
9
+ 0.5 (+Mathematica nos devuelve un valor aproximado+)
Out[35]=
1.78889
Este diferente comportamiento puede resultar chocante las primeras veces que se realizan ciertas operaciones con
Mathematica.
In[36]:=
1 + 2
Out[36]=
1 2
Mathematica nos devuelve el valor exacto.
En la operacin anterior podemos forzar a Mathematica que nos devuelva un valor aproximado de las siguientes
maneras:
1) Escribiendo uno de los nmeros en formato decimal.
In[37]:=
1. + 2
Out[37]=
2.41421
2) Utilizando el comando N[expresin] que es equivalente a escribir expresin//N)
In[38]:=
1 + 2 // N
Out[38]=
2.41421
3) Pidiendo que nos de el resultado con una determinada precisin mediante la instruccin N[expresin,n] (donde n
indica el nmero de cifras decimales)
In[39]:=
N_1 + 2 , 30_
Out[39]=
2.41421356237309504880168872421
6.- Constantes y funciones incorporadas en Mathematica
8 pract ica0_0708- v 52- out . nb
6.- Constantes y funciones incorporadas en Mathematica
El programa Mathematica tiene predefinidas una serie de constantes habituales en Matemticas:
El nmero pi: Pi
El nmero e: E
La unidad imaginaria: I
Infinito: Infinity
Factor de conversin a grados: Degree
Asimismo, el programa Mathematica incorpora todas las funciones matemticas elementales. Sus nombres responden a
su abreviatura proveniente del ingls por lo que algunas de ellas tienen una denominacin distinta a la usual en espaol.
Sin[x] y ArcSin[x]; Cos[x] y ArcCos[x]; Tan[x] y ArcTan[x]; Exp[x] y Log[x]; Log[a,x];
Sqrt[x]; Abs[x]; Sign[x]
Observaciones:
1) Las funciones trigonomtricas utilizan el argumento en radianes.
In[40]:=
Sin_

4
_
Out[40]=
1
2
Si queremos utilizar el argumento en grados utilizamos el factor de conversin Degree ().
In[41]:=
Sin[90 Degree]
Out[41]=
1
2) Si el argumento utilizado en cualquiera de las funciones es un nmero exacto Mathematica nos devolver un valor
exacto (como sabemos siempre podemos pedir que nos d un valor aproximado utilizando el comando N). En cambio,
si el argumento es un nmero decimal, Mathematica nos devolver un valor aproximado con una precisin de 6 dgitos
(internamente trabajar con 16 dgitos).
In[42]:=
Log[2]
Out[42]=
log2
In[43]:=
Log[E]
Out[43]=
1
In[44]:=
Log[2.]
Out[44]=
0.693147
In[45]:=
ArcSin[1 / 2]
Out[45]=

6
pract ica0_0708- v 52- out . nb 9
In[46]:=
ArcSin[0.5]
Out[46]=
0.523599
7.- Variables y funciones definidas por el usuario
Las variables se utilizan para el almacenamiento temporal de informacin que vaya a ser utilizada en clculos posteri-
ores.
a) El nombre de la variable tiene que empezar con una letra.
Nombres vlidos: x, y, radio, longitud, xm, xy, x1, z4,
b) No pueden utilizarse como nombres de variable aquellos reservados para designar a las instrucciones, funciones y
constantes de Mathematica. Una forma de evitar esto es escribir todos los nombres de las variables utilizadas en
minsculas.
c) No es necesario declarar previamente las variables que vamos manejar es el sistema el que se encarga de identificar-
las en el momento en que se definen.
d) La asignacin de valores a una variable se puede realizare de dos formas:
Asignacin inmediata: nombredevariable = valor o expresin;
In[47]:=
a = 2
Out[47]=
2
In[48]:=
x = a
Out[48]=
2
En el ejemplo anterior hemos realizado dos asignaciones inmediatas. En la primera de ellas asignamos a la variable a el
valor 2. En la segunda a la variable x le asignamos el valor que en ese momento tenga la variable a, es decir, 2. Si
posteriormente cambiamos el valor de la variable a, la variable x no se ver afectada por este cambio
In[49]:=
a = 4
Out[49]=
4
In[50]:=
x
Out[50]=
2
Asignacin diferida: nombredevariable := valor o expresin
In[51]:=
y := a
In[52]:=
y
Out[52]=
4
In[53]:=
a = 6
Out[53]=
6
10 pract ica0_0708- v 52- out . nb
In[54]:=
y
Out[54]=
6
A la variable y se le asocia el valor de la variable a. Sin embargo esta asignacin no se hace de manera inmediata sino
que, cuando se vaya a utilizar la variable y, el valor que se le asignar ser el que tenga en ese momento la variable a,
es decir, los cambios posteriores efectuados en la variable a SI repercuten en la variable y.
La asignacin diferida se utiliza principalmente para definir funciones. La forma de definir una funcin es la siguiente:
nombredefuncion[variable1_,variable2_,,variablen]:=expresin.
In[55]:=
f[x_] := x^2
In[56]:=
f[7]
Out[56]=
49
En el ejemplo anterior hemos definido la funcin f(x)=x^2. Observemos nuevamente que el argumento tiene que
indicarse entre corchetes. A partir de este momento podremos utilizar la nueva funcin para evaluarla en un punto,
calcular su derivada, representarla grficamente, etc.
In[57]:=
f[2]
Out[57]=
4
In[58]:=
f'[3]
Out[58]=
6
Observemos que no es necesario indicar el tipo de variable que interviene en la funcin (Entera, real, alfanumrica,)
es el propio programa el que se encarga de atribuir el tipo segn el dato que contiene la variable. Sin embargo,
podemos indicar el tipo para restringir el tipo de datos vlidos para ser almacenados en una determinada variable. Esta
asignacin de tipo se realiza de la forma:
nombredevariable_tipo
In[59]:=
g[x_Integer] := 2 x / (x + 1)
En la instruccin anterior hemos definido una funcin g de variable entera. Dicha funcin slo reconocer como
posible argumento a un nmero entero. Si intentamos evaluarla en un nmero no entero, Mathematica no nos devuelve
nada.
In[60]:=
g[3]
Out[60]=
3
2
In[61]:=
g[0.5]
Out[61]=
g0.5
Observaciones:
1) Para evitar posibles conflictos y resultados inesperados es aconsejable que las variables que figuran como argumento
de una funcin estn limpias, es decir, que no se les haya asignado previamente ningn valor. Para borrar una variable
utilizaremos la instruccin:
Clear[variable1,variable2,variable3,.]
Clear[a,x,y] Borra las variables a, x e y de la memoria del ordenador.
Clear[a*] Borra las variables y funciones cuyo nombre empiece por a.
Clear[Global,*] Borra todas las variables y funciones definidas con anterioridad.
2) No existe ninguna limitacin sobre el nmero de variables que pueden utilizarse como argumentos de una funcin.
pract ica0_0708- v 52- out . nb 11
Observaciones:
1) Para evitar posibles conflictos y resultados inesperados es aconsejable que las variables que figuran como argumento
de una funcin estn limpias, es decir, que no se les haya asignado previamente ningn valor. Para borrar una variable
utilizaremos la instruccin:
Clear[variable1,variable2,variable3,.]
Clear[a,x,y] Borra las variables a, x e y de la memoria del ordenador.
Clear[a*] Borra las variables y funciones cuyo nombre empiece por a.
Clear[Global,*] Borra todas las variables y funciones definidas con anterioridad.
2) No existe ninguna limitacin sobre el nmero de variables que pueden utilizarse como argumentos de una funcin.
In[62]:=
Clear[f]
In[63]:=
f[x_, y_] := x^2 - 2 x + y + y^3
La instruccin anterior borra la definicin de la funcin f y vuelve a definirla como una funcin de dos variables.
In[64]:=
f[3, 1]
Out[64]=
4
In[65]:=
Clear[a, b, x, y]
In[66]:=
8.- Operaciones usuales en Mathematica
1) Desarrollar una expresin: Expand[expresin]
In[67]:=
Expand[(a - b)^4]
Out[67]=
a
4
4 b a
3
6 b
2
a
2
4 b
3
a b
4
2) Simplificar una expresin: Simplify[expresin]
In[68]:=
Simplify[(x^2 - 2 x + 1) / (x^2 - 1)]
Out[68]=
x 1
x 1
In[69]:=
FullSimplify[(x^2 - 2 x + 1) / (x^2 - 1)]
Out[69]=
x 1
x 1
3) Resolver una ecuacin o despejar una variable en una igualdad: Solve[expresion1==expresion2,variable]
Despeja la variable x en la igualdad expresin1=expresion2.
Obsrvese que entre ambas expresiones figura el signo == (doble signo igual) para que el programa no lo confunda con
el signo = que como sabemos es utilizado para asignar valores a una variable.
In[70]:=
Solve_x + x = 2_
Out[70]=
x 1
Esta expresin es equivalente a
In[71]:=
Solve_x + x = 2, x_
Out[71]=
x 1
En este caso no es necesario indicar la variable que queremos despejar porque en la igualdad slo figura la variable x.
No ocurre lo mismo con la siguiente ecuacin en la que intervienen cuatro variables: a, b, c y x
12 pract ica0_0708- v 52- out . nb
En este caso no es necesario indicar la variable que queremos despejar porque en la igualdad slo figura la variable x.
No ocurre lo mismo con la siguiente ecuacin en la que intervienen cuatro variables: a, b, c y x
In[72]:=
Solve[a x^2 + b x + c = 0, x]
Out[72]=
x
b b
2
4 a c
2 a
, x
b
2
4 a c b
2 a

Se obtiene un resultado distinto si escribimos:
In[73]:=
Solve[a x^2 + b x + c = 0, a]
Out[73]=
a
c b x
x
2

En este ltimo caso se ha despejado la variable a en la expresin anterior.
9.- Otras operaciones con Mathematica
Factor[expresin] Realiza la descomposicin factorial de la expresin dada.
Collect[expresin,variable] Agrupa la expresin algebraica en potencias ordenadas de la variable indicada
Expand[expresin,Trig->True] Desarrolla la expresin trigonomtrica utilizando las frmlas de trigonometra
Factor[expresin,Trig->True] Factoriza expresiones trigonomtricas
Binomial[m,n] Calcula el nmero combinatorio m sobre n
n! Calcula el factorial del nmero n
pract ica0_0708- v 52- out . nb 13
10.- Ejercicios propuestos
1.- Calcular usando Mathematica:
a) 330
b) Un valor aproximado de la raiz cuadrada del nmero pi con 20 cifras decimales.
c) Logaritmo neperiano de 10.
d) Logaritmo decimal de 10.
e) Seno de 45.
f) 7 sobre 2
g) Valor absoluto de -3.
2.- Hallar los siguientes resultados:
a) Sen()
b) e^3
c) cos(45)
d) Convierte radianes en grados
e) Ln 2
f) artg(-1)
g) 7!
3.- Efecta las siguientes operaciones, explicando lo que realiza cada una:
a) N[10/3]
b) x+x^3+7y^2x+8y x
c) Collect[%,x]
d) Expand[(x+y)^2]
e) Simplify[(x-1)2(x+2)/((x+1)(x-3)2))]
f) Binomial[5,3]
14 pract ica0_0708- v 52- out . nb