Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guia Math PDF
Guia Math PDF
nb 1
Mayo de 2004
Introduccin
Estos apuntes son una aproximacin al programa Mathematica en su versin 5.0. No se le
suponen conocimientos previos al lector sobre el programa, pero puede complementarse con
otros muchos manuales relativos al mismo.
inputs se pueden recalcular cuantas veces se desee (por si queremos cambiar un dato, por ejem-
plo) y la nueva salida sustituir a la antigua asignndoles a ambos una nueva numeracin.
Otro punto a tener en cuenta es que cuando escribamos comandos deberemos tener
cuidado con:
ste podra ser el aspecto normal de parte de una ventana de Mathematica, donde
podemos apreciar algunos de los aspectos que ya hemos comentado hasta este punto.
Mathematica5.nb 3
Existen diferentes editores de texto especficos para poder visualizar documentos de trabajo de
Mathematica con la idea de que todo el mundo pueda editarlos, leerlos o modificarlos sin
necesidad de adquirir la versin completa del programa. Estos programas nos permitirn nica-
mente visualizar los Notebooks (archivos .nb), es decir, no se podrn utilizar para realizar
Mathematica5.nb 4
operacin alguna. Los editores de texto para Mathematica no contienen el ncleo de Mathemat-
ica. El editor que recomendamos usar se denomina MathReader y ha sido creado por la misma
compaa que Mathematica (Wolfram Research, Inc.). ste se puede descargar gratuitamente
en la direccin www.wolfram.com/products/ y nos servir para visualizar, entre otros, artculos
de Economa y Empresa como los disponibles en la pgina
http://library.wolfram.com/infocenter/BySubject/BusinessAndEconomics.
Para su correcta utilizacin, conviene saber que Mathematica distingue entre celdas
(Cells) del tipo input, output, celdas de texto o, por ejemplo, una celda para el ttulo del libro
(estilo Title). De hecho, si escribimos texto dentro de una celda del tipo input, Mathematica
intentar evaluar este texto y, al no comprender lo que escribimos, dar varios errores. Es decir,
cuando queramos escribir texto deberemos dividir una celda en dos celdas distintas, la primera
para el texto (estilo Text) a la que le daremos el formato que deseemos y la segunda para las
operaciones y funciones que queremos que calcule Mathematica (estilo input) las cuales llevan
un estilo por defecto, pero que tambin podemos modificar. Todas las operaciones que con-
ciernen a las celdas (tipo de celda, agrupacin o divisin) se encuentran en el men Cell. Tam-
bin es posible introducir texto dentro de una celda evaluable utilizando (* comentario *).
Desde la ayuda tambin se hace referencia a numerosos paquetes que, aunque pueden
formar parte de la distribucin estndar de Mathematica 5.0, no pueden ser utilizados hasta que
el usuario los cargue previamente (como ya se ver, mediante << o el comando Needs).
Mathematica5.nb 5
Calculadora
Mathematica reconoce los operadores habituales de suma, diferencia, producto, cociente y
potenciacin:
Otras operaciones numricas usuales son el clculo del valor absoluto, la raz cuadrada,
la parte entera, el factorial
Ya que stas son las primeras funciones que aparecen, vamos a realizar algn comen-
tario. En primer lugar destacar que, tal como se coment al principio, todas las funciones
comienzan con maysculas (incluso cuando el nombre est formado por varias palabras) y, en
segundo lugar, que los argumentos de las distintas funciones siempre van entre corchetes.
Adems, la mayora de las operaciones anteriores se encuentran tambin en varias de las pale-
tas, como la Paleta 3 (BasicCalculations) y la Paleta 4 (BasicInputs).
2^300
203703597633448608626844568840937816105146839366593625063614044935
4381299763336706183397376
123 99990
41
33330
N@123 99990D
0.00123012
N@Sqrt@3D, 20D
1.7320508075688772935
La orden Sqrt[ ] (del Ingls square root) es el comando usado para calcular la raz
cuadrada. Tambin aparece en la paleta BasicCalculations/Arithmetic and Numbers.
123 99
41
33
123. 99
1.24242
Constantes incorporadas
Mathematica tiene un gran nmero de constantes usuales predefinidas, algunas de ellas son:
Busquemos el valor de p con 20 cifras exactas. Para ello utilizaremos de nuevo la orden
N[] que sirve para calcular aproximaciones, como ya se ha visto.
N@p, 20D
3.1415926535897932385
Mathematica5.nb 8
Funciones usuales
Veamos ahora una tabla de las funciones ms usuales y su sintaxis en Mathematica:
!!!
Funcin Notacin en Mathematica
x Sqrt[x]
e x E^x o bien Exp[x]
ln(x) Log[x]
loga(x) Log[a,x]
sen(x) Sin[x]
cos(x) Cos[x]
tg(x) Tan[x]
cotg(x) Cot[x]
sec(x) Sec[x]
cosec(x) Csc[x]
arcsen(x) ArcSin[x]
sh(x) Sinh[x]
arcsh(x) ArcSinh[x]
Orden Significado
Expand[x] Forma expandida (efecta sumas, productos, potencias).
Factor[x] Factoriza x (escribe x como producto de factores mnimos).
Together[x] Escribe todos los trminos de x con un denominador comn.
Apart[x] Separa x en trminos con denominadores lo ms simples posible.
Cancel[x] Cancela factores comunes que posean numerador y denominador.
Simplify[x] Simplifica x siguiendo reglas algebraicas estndar.
FullSimplify[x] Simplifica x usando reglas algebraicas ms potentes.
TrigExpand[x] Expande expresiones trigonomtricas en suma de trminos.
TrigFactor[x] Factoriza expresiones trigonomtricas en producto de trminos.
Expand@H1 - xL^3D
1 3 x + 3 x2 x3
Factor@%D
H1 + xL3
Mathematica5.nb 10
Expand@H1 + x + 3 yL^4D
Factor@%D
Factor@x^10 - 1D
Expand@%D
1 + 4 x + 6 x2 + 4 x3 + x4 + 12 y + 36 x y + 36 x2 y +
12 x3 y + 54 y2 + 108 x y2 + 54 x2 y2 + 108 y3 + 108 x y3 + 81 y4
H1 + x + 3 yL4
H1 + xL H1 + xL H1 x + x2 x3 + x4 L H1 + x + x2 + x3 + x4 L
1 + x10
Solve@x^2 + 5 x == 0, xD
Mathematica proporciona la respuesta en el formato que hemos visto. Ntese que debe
escribirse el doble signo igual entre la funcin y el valor cero para indicar que es una ecuacin.
La x que figura despus de la coma identifica la variable o incgnita a despejar.
NSolve@x^3 - 7 x^2 + 6 x + 4 == 0, xD
Como este comando usa mtodos aproximados iterativos, es posible que si damos
valores muy alejados para los puntos iniciales, Mathematica no pueda encontrar una solucin (o
la solucin que buscamos). Es conveniente hacer primero una grfica de la funcin para ver
dnde se anula la funcin (ms adelante explicaremos algo ms sobre las representaciones
grficas). Por ejemplo, hallemos un cero de la funcin h(x)=sen(x^2)-cos(x):
1.5
0.5
-3 -2 -1 1 2 3
-0.5
-1
Graphics
8x 0.849369<
Mathematica5.nb 12
Repitiendo el procedimiento, podremos hallar cualquier otra raz que nos proponga-
mos.
Para sistemas de ecuaciones algebraicas bastar escribir las ecuaciones entre llaves e
indicar las variables del sistema.
88x 5, y 2<<
Vectores y matrices
Para definir un vector de tres coordenadas basta con escribir los elementos entre llaves y separa-
dos por comas. Igualmente, para definir una matriz bastar escribirla como un vector de vec-
tores que correspondern a las filas de la matriz. Tambin se puede usar la paleta BasicCalcula-
tions/ Lists and Matrices, como se ver luego. Definamos dos vectores:
v1 = 81, 2, 3<
v2 = 82, 6, -3<
81, 2, 3<
82, 6, 3<
Ntese que se ha asignado a dos variables el valor de vectores con el signo "=".
v1.v2
o tambin
Dot@v1, v2D
5
Mathematica5.nb 13
Cross@v1, v2D
824, 9, 2<
v1 * v2
Part@v1, 2D
Una vez que hemos visto cmo se introducen vectores manualmente, veamos que tam-
bin es posible generarlos con la orden Table[], cuya definicin es
81, 4, 9, 16<
Pasemos ahora a aspectos bsicos del Clculo Matricial. Definamos un par de matrices:
MatrixForm@aD
MatrixForm@bD
i
j
1 2 5y
z
j
j 5 7z
z
j
j z
z
j z
k 1 0 3{
2
i
j
1 1 1y
z
j
j 6 3 2z z
j
j z
z
j z
k 1 3 0 {
La multiplicacin no es ms que a.b, pero si queremos que el resultado tenga la forma tradicio-
nal haremos:
MatrixForm@a.bD
i
j
18 8 5 y
z
j
j 35 8 8 z
z
j
j z
z
j z
k 4 8 1 {
Adems, como es de esperar, podemos multiplicar matrices con vectores y matrices con
escalares:
Mathematica5.nb 15
MatrixForm@a.v1D
i
j
20 y
z
j
j 29 z
z
j
j z
z
j z
k 10 {
MatrixForm@2 aD
i
j
2 4 10 y
z
j
j 4 10 14 z
z
j
j z
z
j z
k 2 0 6 {
Tambin es posible introducir matrices mediante el uso de las paletas. En varias de las
paletas (BasicInput, BasicCalculations y otras) aparece la opcin correspondiente a una matriz
2x2. Una vez seleccionada esta opcin, podemos aadirle filas y columnas pulsando Ctrl+Enter
y Ctrl+"," respectivamente.
Det@aD
16
MatrixForm@Inverse@aDD
i
j y
z
j
j z
z
j
j z
z
15 3 11
j
j z
z
j z
16 8 16
j
j 5 z
z
13
18 17
k 16 {
16 16
1 9
8 16
Eigenvalues@aD
!!!!!! !!!!!!
9 I7 + 17 M, 2, I7 17 M=
1 1
2 2
Eigenvectors@aD
!!!!!! !!!!!!
993 + I7 + 17 M, 5 + I7 + 17 M, 1=,
1 3
!!!!!! !!!!!!
2 4
81, 3, 1<, 93 + I7 17 M, 5 + I7 17 M, 1==
1 3
2 4
MatrixRank@aD
MatrixForm@Transpose@aDD
i 1 2 1 z
j y
j
j 2 5 0z z
j
j z
z
j z
k5 7 3 {
RowReduce@aD
MatrixForm@%D
i
j
1 0 0y
z
j
j 0 1 0z
z
j
j z
z
j z
k0 0 1 {
Para la matriz "a" que estamos usando como ejemplo, la orden Eigensystem[a]
proporciona la misma informacin que la aplicacin sucesiva de Eigenvalues[a] y
Eigenvectors[a]:
Eigensystem@aD
!!!!!! !!!!!!
99 I7 + 17 M, 2, I7 17 M=,
1 1
!!!!!! !!!!!!
2 2
993 + I7 + 17 M, 5 + I7 + 17 M, 1=,
1 3
!!!!!! !!!!!!
2 4
81, 3, 1<, 93 + I7 17 M, 5 + I7 17 M, 1===
1 3
2 4
Para una matriz no diagonalizable, no nos puede proporcionar una base formada por
autovectores:
i
j
1 1 3y
z
j
j 0 1 2z
z
j
j z
z
j z
k0 0 2 {
Mathematica5.nb 18
Eigensystem@cD
Nota: En Mathematica todo lo que est escrito entre llaves y debidamente separado por
comas es una lista, como un vector o una matriz, y responder a las propiedades de stos.
Como hemos visto con los vectores, podemos asignarle valores a las variables para as facilitar-
nos el trabajo. Si queremos que a partir de este momento la variable x valga 7 haremos:
x=7
x+4
11
x^2 + x - 3
53
Es importante destacar que los valores asignados a las variables son permanentes. Una
vez que se haya asignado un valor a una variable concreta, el valor permanecer hasta que no
liberemos o "limpiemos" a esta variable. Por supuesto, el valor desaparecer cuando reinicie-
mos el ncleo o empecemos una nueva sesin de Mathematica. Para liberar a las variables
bastar con
Clear@xD
O bien
Mathematica5.nb 19
x =.
f @x_D := x^2 + 5 x
Obsrvese que esta entrada no produce una salida. Esto se debe a los dos puntos delante
del signo de igualdad. Lo que hacemos al aadir los dos puntos equivale a un pequeo pro-
grama que se ejecutar cada vez que lo llamemos. En cambio, si no aadimos los dos puntos,
Mathematica ejecutar la funcin inmediatamente.
Notemos tambin que la variable x lleva un guin bajo "_" delante del signo igual. Esto
es para que el programa entienda que se trata de una variable muda, es decir, x puede llevar
cualquier nombre o valor. Es importante recordar esto para evitar posibles errores, ya que si se
hubiese escrito f[x]:=x^2 se habra asignado el valor x^2 al objeto f[x] en vez de a la
funcin f y no entender, por ejemplo, f[3] f[y].
Podemos calcular el valor numrico de la funcin f que hemos definido, para distintos
valores de x:
f @3D
24
f @-3 2D
21
4
f @aD
Clear@aD
5 a + a2
Mathematica5.nb 20
f @a + hD
5 Ha + hL + Ha + hL2
Expand@%D
5 a + a2 + 5 h + 2 a h + h2
Clear@f D
Primera forma:
Los signos de menor o igual y de mayor o igual se escriben como <= y >= respectiva-
mente. Esto define cada uno de los trozos de f, pero se puede definir toda la funcin de una
vez. El ";" al final de cada lnea sirve para que, aunque se ejecuten, no produzcan salidas.
Segunda forma:
10
7.5
2.5
-4 -2 2 4
-2.5
-5
-7.5
-10
Graphics
Nota: las lneas verticales que aparecen no forman parte de la grfica de la funcin.
Para obtener una grfica donde estas verticales no aparezcan, podemos utilizar el comando
Show[], pero no vamos a entrar ahora en ms detalles de los necesarios.
Clculo de lmites
Una vez que hemos aprendido a definir funciones, ya podemos manipularlas cmodamente y lo
primero que vamos a aprender es a calcular lmites. Podemos calcular el valor de la funcin
cos(x^2) en el punto x=0 simplemente reemplazando el valor x por 0 (no es necesario ni conve-
niente hacer esto para calcular lmites, pero as aprendemos a realizar sustituciones).
Cos@x^2D . x -> 0
Pero si hacemos esto mismo para algunas funciones especiales, como por ejemplo
sen(x)/x, obtenemos una indeterminacin:
Mathematica5.nb 22
Sin@xD x . x -> 0
1
Power::infy : Infinite expression encountered. More
0
::indet : Indeterminate expression 0 ComplexInfinity encountered. More
Indeterminate
Para encontrar el valor correcto al que tiende esta funcin en el punto, necesitamos
tomar lmite. La orden es (tambin en la Paleta 3, BasicCalculations/Calculus)
As, haremos
Limit@Sin@xD x, x -> 0D
Derivacin
Para calcular la derivada de una funcin podemos utilizar los smbolos de derivadas parciales
que aparecen en la paleta BasicInput o directamente alguna de las siguientes rdenes
La ltima de las tres funciones es vlida para funciones de varias variables. Dedicamos
una seccin posterior al estudio de la derivacin, integracin, etc. de este tipo de funciones.
Clear@fD
f@x_D := x ^ 2 3 x + 4
D@f@xD, xD
3 + 2 x
Tambin es posible calcular la derivada de una funcin con f'[x]. Es ms, tambin
la funcin Derivative[] sirve para el clculo de derivadas aunque la estructura es algo
distinta (vase la Ayuda). Adelantamos nicamente que Derivative[1][f] equivale a
f'[x].
f '@xD
Derivative@1D@fD
3 + 2 x
3 + 2 #1 &
Derivative@1D@SinD
Cos@#1D &
D@g@xD, xD
E
ab
a Log@x Cos@xDD + b SinA
x
Simplify@%D
FullSimplify@%D
a Hx b2 Cos@ axb DL
a Tan@xD
x2
Veamos un ejemplo:
Mathematica5.nb 25
82 x y3 , 3 x2 y2 , 1<
Integracin
Para resolver un problema de integracin, como viene siendo habitual, tenemos dos maneras de
abordarlo: o bien usamos la orden Integrate[], o bien los smbolos de la paleta BasicInput.
La orden Integrate[] tiene tres usos distintos:
g@xD x
E a x Log@1 + D+
1 ab
a x + a x2 a b2 CosIntegralA 2 x
2 x
D + b x SinA E
1 2 x ab
a x Log@x Cos@xDD + a PolyLog@2,
2 x
Integrate@g@xD, xD
E a x Log@1 + D+
1 ab
a x + a x2 a b2 CosIntegralA 2 x
2 x
D + b x SinA E
1 2 x ab
a x Log@x Cos@xDD + a PolyLog@2,
2 x
Algo feo, pero qu le vamos a hacer. Calculemos una integral impropia dependiente
de un parmetro q:
Mathematica5.nb 26
!!!
2 IfARe@qD > 0, !!! ,
!!!!
La salida obtenida quiere decir que si la parte real de q es mayor que cero entonces la
integral es igual a 2 !!!q! y, si no, no sabe hacerlo.
32.9053
funcion@1, 2D
NIntegrate::inum : Integrand g@xD is not numerical at 8x< = 80.785398<. More
NIntegrateAg@xD, 9x, =E
,
6 3
E
ab
a Log@x Cos@xDD + b SinA
x
Mathematica5.nb 27
Ahora evaluamos
funcion2@1, 2D
0.109469
funcion2@-1, 0D
0.330295
El smbolo ":=" es ms que una asignacin. Si nos damos cuenta, adems de servir
como asignacin, hace que la operacin definida no sea ejecutada inmediatamente sino cuando
se le llame ms adelante. O sea, es como un pequeo programa que luego ser ejecutado.
Sin@3 y2 D
Sin@2 xD
Limit@f2@yD, y -> 0D
Limit@f1@xD, x -> 0D
2 y + 2 Cos@2 x 3 y2 D
2 x 6 y Cos@2 x 3 y2 D
4 Sin@2 x 3 y2 D
6 Cos@2 x 3 y2 D 36 y2 Sin@2 x 3 y2 D
2 + 12 y Sin@2 x 3 y2 D
2 + 12 y Sin@2 x 3 y2 D
32 Cos@2 x 3 y2 D
32 Cos@2 x 3 y2 D
i
j !!!!!!! i
j yz
zy
j
j j
jCos@3D FresnelSA3 $%%%%%% E FresnelCA3 $%%%%%% E Sin@3Dz
zz
z
j
j81 6 Sin@1D j
j z
zz
z
1 6 6
k k {{
6
Simplify@%D
i
j !!!!!!! i
j y
zy
z
j
j j
jCos@3D FresnelSA3 $%%%%%% E FresnelCA3 $%%%%%% E Sin@3Dz
zz
z
j
j81 6 Sin@1D j
j z
zz
z
1 6 6
k k {{
6
N@%D
13.8634
Para los casos en los que el recinto de integracin no es rectangular como, por ejemplo,
1 x x
2 x2
y y x haremos
27
8
Series
En esta seccin vamos a distinguir entre dos problemas bien distintos: calcular la suma de una
serie conocida y generar la serie de potencias de una funcin conocida en un punto dado.
evala i=1
imax
evala i=imin f
Sum[f,{i,imax}] f
imax
evala imax
i=imin j=jmin f
imin+di, imin+2di,..., imax.
jmax
Sum[f,{i,imin,imax},{j,jmin,jmax}]
Por ejemplo,
7381
2520
933
Mathematica5.nb 31
1946843
240240
N@%D
8.10374
x3
x + O@xD4
6
x2 x3
x + + O@xD4
2 3
+ x2 + O@xD4
senHx^3-2 xL
El coeficiente del trmino 20 de la serie de potencias de la funcin f(x)=
x+2
en el punto x=3 es
N@%D
2.96413 109
Ecuaciones diferenciales
Para las ecuaciones o sistemas de ecuaciones diferenciales, el procedimiento es anlogo a las
algebraicas. Resolvamos la ecuacin diferencial de variable separadas y'=2xy. En primer
lugar podemos (aunque no es necesario) definir la ecuacin diferencial a resolver:
y @xD 2 x y@xD
DSolve@Eq1, y@xD, xD
99y@xD x2
C@1D==
En caso de que queramos indicarle valores iniciales para obtener una solucin particu-
lar, se aade como una nueva ecuacin entre llaves de la siguiente manera:
99y@xD x2
==
Representacin grfica
Representacin grfica en 2D
50
40
30
20
10
-6 -4 -2 2 4 6
Graphics
40
20
-10 -5 5 10
-20
-40
-60
Graphics
Mathematica5.nb 34
Observemos que Mathematica realiza el grfico con distintas escalas en ambos ejes.
Para que tome la misma unidad en los ejes, se debe agregar la orden
AspectRatio->Automatic (esta opcin se ver con profundidad en la prxima seccin)
como vemos en el siguiente ejemplo:
40
20
-10
-5 510
-20
-40
-60
Graphics
Como vemos, la grfica de la funcin ahora es ms real, aunque hay detalles que no
se aprecian con suficiente nitidez. Por tanto, es importante decidir cundo usar la orden
AspectRatio->Automatic y cundo dejar que Mathematica decida cul es la escala
ms conveniente.
Podemos pedir que represente ambas funciones en el mismo dibujo; para ello, usamos el
comando Plot, pero como primer argumento usaremos ahora una lista de funciones:
Mathematica5.nb 35
40
20
-6 -4 -2 2 4 6
-20
-40
-60
Graphics
Existe otra manera de superponer grficas; consiste en asignarle a cada una un nombre y
usar el comando Show[] como se muestra en el siguiente ejemplo:
0.5
-3 -2 -1 1 2 3
-0.5
-1
Graphics
Mathematica5.nb 36
3.5
2.5
-6 -4 -2 2 4 6
Graphics
12
10
-3 -2 -1 1 2 3
Graphics
-6 -4 -2 2 4 6
Graphics
1 4 12
0.5 3.5 10
3 8
-3-2-1
-0.5 1 2 3 2.5 6
-1 -6-4-2 246 -3-2-1 1 2 3
GraphicsArray
1
0.5
-3 -2 -1 1 2 3
-0.5
-1
4
3.5
3
2.5
-6 -4 -2 2 4 6
12
10
8
6
-3 -2 -1 1 2 3
GraphicsArray
1 4
0.5 3.5
3
-3 -2 -1 1 2 3 2.5
-0.5
-1 -6-4-2 2 4 6
12 8
10 6
8 4
6 2
-3 -2 -1 1 2 3 -6 -4 -2 2 4 6
GraphicsArray
f @x_D := x^2 + 5 x
h@x_D := f @g@xDD
Plot@h@xD, 8x, -3, 3<D
150
125
100
75
50
25
-3 -2 -1 1 2 3
Graphics
Needs@"Graphics`Graphics`"D
<< Graphics`Graphics`
La diferencia entre las dos formas de cargarlo consiste en que si lo hacemos mediante el
comando Needs[] no vuelve a cargarlo si el paquete ya ha sido cargado anteriormente, con el
consiguiente ahorro de memoria en la mquina. Representemos la funcin g(t) = sen(2t) en
coordenadas polares.
0.6
0.4
0.2
-0.4
-0.6
-0.8
Graphics
140
120
100
80
60
40
20
Graphics
Needs@"Graphics`ImplicitPlot`"D
0.75
0.5
0.25
-1 -0.5 0.5 1
-0.25
-0.5
-0.75
Graphics
Grficas de inecuaciones
Para estudiar optimizacin con restricciones necesitaremos saber, por ejemplo, cmo se dibujan
regiones en el plano. Estas regiones vienen definidas por inecuaciones y para su representacin
grfica utilizaremos el comando InequalityPlot[inecuaciones,
{x,xmin,xmax},{y,ymin,ymax}]. Esta funcin se encuentra en el paquete
Graphics`InequalityGraphics` que debemos cargar previamente:
<< Graphics`InequalityGraphics`
InequalityPlot@ 1 Hx - 2 yL3 + 4 y 4, 8x, -3, 3<, 8y, -3, 3< D
-3 -2 -1 1 2 3
-1
-2
Graphics
Mathematica5.nb 42
InequalityPlot@ 1 < x2 + y2 < 4 x y < 1 x > 0 y > 0, 8x, -2, 3<, 8y, -2, 2< D;
1.5
0.5
0.5 1 1.5 2
En muchas ocasiones es necesario mostrar grficamente datos obtenidos, por ejemplo, de una
experiencia o experimento. Las coordenadas obtenidas pueden no responder a una expresin
analtica, pero puede interesarnos ver cmo se disponen esos puntos en una grfica (tambin
denominada nube de puntos). Para ello, veremos cmo generar grficas a partir de listas de
datos correspondientes a dos variables cuantitativas. Introducimos una lista de datos de la
siguiente forma:
tabla = 881, 8<, 82, 5.5<, 83, 7<, 84, 3<, 85, 8.1<, 86, 1<<
881, 8<, 82, 5.5<, 83, 7<, 84, 3<, 85, 8.1<, 86, 1<<
ListPlot@tablaD;
8
7
6
5
4
3
2
2 3 4 5 6
Si queremos mostrar los puntos unidos por segmentos, agregamos la siguiente opcin:
8
7
6
5
4
3
2
2 3 4 5 6
Graphics
8
7
6
5
4
3
2 3 4 5 6
Graphics
Observacin: el programa acomoda los ejes coordenados de forma que los datos sean
fcilmente visibles, pero esto puede no responder a la posicin real de esos puntos. Para obtener
una visualizacin ms fiel usamos el comando AxesOrigin->{0,0}, que ubica los ejes en
su posicin normal:
8
7
6
5
4
3
2
1
1 2 3 4 5 6
Graphics
1 2 3 4 5 6
Esta grfica puede servir de ayuda en el caso en que deseemos interpolar y queramos
aproximar las coordenadas de un punto intermedio. Para ello, marquemos el grfico (un click
encima del grfico) y, posicionando el cursor sobre l, presionemos la tecla Ctrl. As Mathemat-
ica mostrar en la parte inferior izquierda de la pantalla las coordenadas aproximadas del punto
que sealemos en la grfica. Es importante tener en cuenta que es necesario, para que las
coordenadas obtenidas sean correctas, que el origen de coordenadas est en (0,0) (esta obser-
vacin tambin es vlida para el resto de representaciones grficas en 2D).
Opciones grficas
Cuando Mathematica realiza un grfico, tiene que elegir cmo realizar la representacin grfica
(escalas, ejes, origen, color, grosor de lnea, etc). En muchas de las ocasiones, Mathematica
probablemente har una buena eleccin. No obstante, si se desea cambiar algunas de estas
opciones se pueden utilizar las rdenes que veremos en esta seccin.
Como ltimo argumento del comando, por ejemplo Plot[], se puede incluir una
secuencia de rdenes del tipo nombre->valor, para especificar el valor de varias de las
opciones grficas. A cada opcin que no asignemos un valor explcito, Mathematica le asignar
un valor por defecto.
Una orden como Plot[] tiene muchas opciones que podemos modificar. Algunas de
las que veremos son las siguientes:
Mathematica5.nb 46
0.5
-0.5
-1
0.5
-0.5
-1
0 0.5 1 1.5 2 2.5 3
A continuacin especificamos unas etiquetas para cada uno de los ejes. Las etiquetas
aparecern tal como apareceran en una salida de Mathematica. Las etiquetas pueden incluir
texto escribindolo entre comillas.
Sin@x^2D
1
0.5
eje de abscisas
0.5 1 1.5 2 2.5 3
-0.5
-1
Mathematica5.nb 48
Para la malla:
0.5
-0.5
-1
0 0.5 1 1.5 2 2.5 3
!!!
valor por defecto es el inverso del nmero de oro (Golden Ratio) que se supone la mejor forma
para la esttica de un rectngulo. El nmero de oro vale (1+ 5 )/2 1.61803.
0.5
-0.5
-1
Algunos de los valores ms usuales para varias de las opciones vistas hasta ahora son
Mathematica5.nb 49
Automatic utiliza los valores por defecto para los algoritmos internos.
None no incluye la opcin.
All lo incluye todo.
True realiza la opcin.
False no realiza la opcin.
Cuando Mathematica realiza un grfico, trata de fijar unas escalas para x e y con la idea
de incluir solo las partes ms interesantes de la grfica. Si la funcin crece rpidamente, o tiene
singularidades, las partes de la grfica demasiado largas las corta. Con la orden PlotRange
podemos controlar el rango de variacin para la x y la y. Los posibles valores para esta opcin
son:
muestra una gran parte de la grfica incluyendo la parte " ms interesante "
Automatic
0.5
-1 -0.5 0.5 1
-0.5
-1
Otras opciones vlidas tambin para la orden Plot[] son las siguientes:
Mathematica5.nb 50
Podemos obtener informacin de todas las opciones (con sus correspondientes valores
por defecto) de las que dispone una funcin, como por ejemplo Plot[], mediante la orden
Options[]:
Options@PlotD
9AspectRatio
1
, Axes Automatic,
GoldenRatio
AxesLabel None, AxesOrigin Automatic, AxesStyle Automatic,
Background Automatic, ColorOutput Automatic, Compiled True,
Si queremos saber el valor por defecto de una sola de las opciones haremos algo
parecido:
Options@Plot, AspectRatioD
9AspectRatio =
1
GoldenRatio
Mathematica5.nb 51
Cuando se crea un objeto grfico en Mathematica, normalmente se aade una lista de opciones
grficas. En esta lista se puede aadir directivas grficas que especifican cmo se deben repro-
ducir los elementos del grfico.
Plot@8x^2, x^3<, 8x, -3, 3<, PlotStyle 88RGBColor@1, 0, 0D<, 8RGBColor@0, 1, 0D<<D
-3 -2 -1 1 2 3
-1
-2
Graphics
Plot@8x^2, x^3<, 8x, -3, 3<, PlotStyle 88Hue@1, 0.75, 0.5D<, 8Hue@0.25, 0.5, 0.75D<<D
-3 -2 -1 1 2 3
-1
-2
Graphics
Cuando especificamos una opcin grfica como RGBColor[], sta afecta a todos los
elementos grficos que aparecen en una lista. Mathematica tambin dispone de opciones grfi-
cas que son especficas a algunos tipos de grficos:
La opcin PointSize[d] sirve para que todos los puntos del grfico los represente
como un crculo de diametro d. Con PointSize, el diametro d est medido en proporcin al
ancho de todo el grfico.
AbsolutePointSize@ d D
grfico completo.
todos los puntos con dimetro d en unidades absolutas.
Aqu vemos cmo construir una lista con seis puntos de dos coordenadas:
881, 2<, 82, 3<, 83, 5<, 84, 7<, 85, 11<, 86, 13<<
Mostramos cada punto con dimetro igual a un 10% del ancho del grfico.
Mathematica5.nb 53
12
10
2 3 4 5 6
Graphics
70
60
50
40
30
20
10
5 10 15 20
Graphics
AbsoluteThickness@ w D
ancho del grfico.
Dashing@ 8 w1 , w2 , < D
todas las lneas con grosor w en unidades absolutas
muestra todas las lneas como una sucesin de
AbsoluteDashing@ 8 w1 , w2 , < D
segmentos discontinuos, con medidas w1, w2,
usa unidades absolutas para la longitud de los
segmentos discontinuos.
Veamos un ejemplo:
-2 -1 1 2
Graphics
Show@Graphics@%DD
Graphics
88AbsoluteThickness@1D, 81,
8AbsoluteThickness@2D, 82,
Line@880, 0<, 1<<D<,
8AbsoluteThickness@3D, 83,
Line@880, 0<, 1<<D<,
8AbsoluteThickness@4D, 84,
Line@880, 0<, 1<<D<,
Line@880, 0<, 1<<D<<
Show@Graphics@%DD
Graphics
La orden Dashing nos permite crear lneas con distintos tipos de segmentos. La idea
es romper la lnea en segmentos que son dibujados y omitidos alternativamente. Cambiando la
medida de los segmentos se obtienen lneas de diferentes estilos. Dashing nos permite tam-
Mathematica5.nb 56
bin especificar una sucesin de medidas para los elementos. Esta sucesin se repite tantas
veces como sea necesaria hasta representar la lnea completa.
Graphics
Graphics
Otra manera de usar las opciones grficas es insertarlas directamente en una lista. No
obstante, algunas veces queremos que las opciones se apliquen de manera ms global y, por
ejemplo, determinar el estilo global en toda la sesin de trabajo independientemente de cmo
sean algunas opciones grficas particulares.
PlotStyle > style especifica un estilo para ser usado en todas las
curvas dibujadas con Plot.
PlotStyle > 8 8 style1 < , 8 style2 < , < especifica estilos para ser usados cclicamente
para una sucesin de curvas en Plot.
MeshStyle > style especifica un estilo para ser usado en una
malla en grficos de superficie y densidad.
BoxStyle > style especifica un estilo para ser usado por la caja
en grficos 3 D, segn veremos.
0.5
2 4 6 8 10
-0.5
-1
Graphics
0.75
0.5
0.25
2 4 6 8 10
-0.25
-0.5
-0.75
Graphics
0.75
0.5
0.25
2 4 6 8 10
-0.25
-0.5
-0.75
Graphics
Mathematica5.nb 59
0.75
0.5
0.25
2 4 6 8 10
-0.25
-0.5
-0.75
Graphics
0.75
0.5
0.25
2 4 6 8 10
-0.25
-0.5
-0.75
Graphics
Representacin grfica en 3D
1
0.5 3
0
-0.5
-1 2
0
1 1
30
SurfaceGraphics
Mathematica dispone de una gran cantidad de opciones grficas para grficos en 3D. Al
igual que para Plot[], podemos obtener informacin de todas las opciones disponibles con
Options[]:
Options@Plot3DD
8881., 0., 1.<, RGBColor@1, 0, 0D<, 881., 1., 1.<, RGBColor@0, 1, 0D<,
ImageSize Automatic, Lighting True, LightSources
En la siguiente tabla mostramos algunas de las anteriores. Muchas de las opciones que
aparecen en la siguiente tabla son anlogas a otras ya vistas para grficos en 2D.
Plot3D@10 Sin@xD + Sin@x yD, 8x, -10, 10<, 8y, -10, 10<, PlotPoints 50D
Mathematica5.nb 62
10
5 10
0
-5 5
-10
-100 0
-5
0 -5
5
10 -10
SurfaceGraphics
10
Valor 50 10
-5 5
-10
-10 0 0 Profundidad
-5
0 -5
Tiempo 5
10 -10
SurfaceGraphics
La opcin ViewPoint para Plot3D y Show nos permite cambiar el punto de vista
del observador. En muchas versiones de Mathematica existen otras maneras de elegir el punto
de vista interactivamente.
1
0.5 3
0
-0.5
-1 2
0
1 1
30
SurfaceGraphics
Tomemos un punto de vista justo en frente del eje OY. Ntese que se ha usado un efecto
en la perspectiva que hace la parte del fondo ms pequea que la delantera:
1
0
1
0.5 2 3
-0.5
-1
0 1 2 3
SurfaceGraphics
Los puntos de vista ligeramente por encima de la superficie suelen funcionar bien.
Generalmente es una buena idea tomar un punto de vista suficientemente cerca de la superficie.
Aadir la caja alrededor de la superficie nos ayuda a reconocer la orientacin de la superficie.
Mathematica5.nb 64
3
2 2
1 1
0
-2
2 0
-1
0 -1
1
2 -2
SurfaceGraphics
3
2 2
1 1
0
-2
2 0
-1
0 -1
1
2 -2
SurfaceGraphics
3
2 2
1 1
0
-2
2 0
-1
0 -1
1
2 -2
SurfaceGraphics
Para aadir un elemento extra de realismo, Mathematica simula una superficie ilumi-
nada. Por defecto, Mathematica asume que hay tres fuentes de luz sobre el objeto en la parte
superior derecha. No obstante, este efecto luminoso puede confundirnos en algunos casos. Si
seleccionamos la opcin Lighting -> False, entonces Mathematica no usar tal efecto
sino una escala de grises para sombrear la superficie en funcin de la altura del punto.
1
0.5 3
0
-0.5
-1 2
0
1 1
30
SurfaceGraphics
Mathematica5.nb 66
1
0.5 3
0
-0.5
-1 2
0
1 1
30
SurfaceGraphics
1
0.5 3
0
-0.5
-1 2
0
1 1
30
SurfaceGraphics
p = 82, 0, 1<
v = 83, 1, 1<
ParametricPlot3D@p + v, 8, 2, 3<D
82, 0, 1<
83, 1, 1<
-2
-
0
2
5
0
10 -2
Graphics3D
w = 81, 3, 0<
ParametricPlot3D@p + v + w, 8, 5, 5<, 8, 5, 5<D
81, 3, 0<
2.5 20
0
-2.5 10
-5
0
-10
0 -10
10
20 -20
Graphics3D
<< Graphics`InequalityGraphics`
Mathematica5.nb 70
1
0.5
0
-0.5
-1
0.5
-0.5
-0.5
0
0.5
0 5
Estadstica
Dedicamos este ltimo captulo a mostrar brevemente algunas de las aplicaciones que posee
Mathematica a la rama de la Estadstica. nicamente indicaremos algunos de los paquetes ms
importantes que el alumno podr utilizar para resolver muchos de los problemas que se encon-
trar en una asignatura con contenido estadstico.
<< Statistics`DescriptiveStatistics`
datos = 81, 2, 3, 3, 4, 6.5, 7, 8.9, 9, 17<
Nombre Funcin
Media Mean[]
Moda Mode[]
Mediana Median[]
Mathematica5.nb 71
As, para nuestro ejemplo, la media, moda, mediana, el percentil 34, los cuartiles, la
desviacin estndar y el momento central de orden 3 son:
Mean@datosD
Mode@datosD
Median@datosD
Quantile@datos, 0.34D
Quartiles@datosD
StandardDeviationMLE@datosD
CentralMoment@datos, 3D
6.14
5.25
3.
4.4996
104.745
Mathematica5.nb 72
En el caso de que nuestra variable sea bidimensional y queramos realizar una regresin
(lineal, cuadrtica o de cualquier otro tipo) y una correlacin, deberemos cargar previamente el
paquete Statistics`LinearRegression`. A continuacin, en primer lugar, introducimos los datos
y, por ltimo, utilizamos una de las dos siguientes funciones:
Regress[datos,{1,f1(x),f2(x),...},x] o bien Fit[datos,{f1(x),f2(x),...},x].
datos2 = 881, 1<, 81.2, 1.5<, 82, 1.8<, 82.1, 2<, 82.5, 3<, 83, 6<<
<< Statistics`LinearRegression`
881, 1<, 81.2, 1.5<, 82, 1.8<, 82.1, 2<, 82.5, 3<, 83, 6<<
9ParameterTable 1
Estimate SE TStat PValue
1.53514 1.22479 1.25339 0.278327 ,
x 2.07719 0.587242 3.5372 0.0240741
RSquared 0.757748, AdjustedRSquared 0.697186,
EstimatedVariance 0.997774, ANOVATable
DF SumOfSq MeanSq FRatio PValue
=
Model 1 12.4839 12.4839 12.5118 0.0240741
Error 4 3.99109 0.997774
Total 5 16.475
O bien:
1.53514 + 2.07719 x
La diferencia entre Regress[] y Fit[] es evidente. Mientra que Fit[] nos proporciona la
recta de regresin de Y en funcin de X, la orden Regress[] realiza un estudio ms completo y
nos proporciona adems el coeficiente de determinacin (RSquared->0.757748) y, entre otras
cosas, la tabla del anlisis de la varianza (ANOVA).
Si, por ejemplo, nos interesa ms una regresin cuadrtica, bastar con aadir a la lista
de funciones el trmino x^2:
Mathematica5.nb 73
9ParameterTable
Estimate SE TStat PValue
1 4.63568 1.25777 3.68564 0.0346212
,
x 5.17166 1.39881 3.69718 0.034345
x2 1.85868 0.354499 5.24312 0.0135071
RSquared 0.976164, AdjustedRSquared 0.960274,
EstimatedVariance 0.130897, ANOVATable
DF SumOfSq MeanSq FRatio PValue
=
Model 2 16.0823 8.04115 61.431 0.00367993
Error 3 0.392692 0.130897
Total 5 16.475
En el caso de que el ajuste que deseemos sea, por ejemplo, exponencial, bastar con:
9ParameterTable
Estimate SE TStat PValue
1 0.0883523 0.339534 0.260217 0.807543 ,
x 0.274219 0.0316264 8.67056 0.000973643
RSquared 0.949481, AdjustedRSquared 0.936852,
EstimatedVariance 0.208074, ANOVATable
DF SumOfSq MeanSq FRatio PValue
=
Model 1 15.6427 15.6427 75.1786 0.000973643
Error 4 0.832296 0.208074
Total 5 16.475
O un ajuste hiperblico:
Mathematica5.nb 74
9ParameterTable
Estimate SE TStat PValue
1 5.46902 1.51611 3.60728 0.0226113,
1
x 4.9435 2.37632 2.08032 0.105985
RSquared 0.519676, AdjustedRSquared 0.399595,
EstimatedVariance 1.97833, ANOVATable
DF SumOfSq MeanSq FRatio PValue
=
Model 1 8.56166 8.56166 4.32771 0.105985
Error 4 7.91334 1.97833
Total 5 16.475
Clculo de Probabilidades
Para los casos en los que queramos manejar algn modelo de distribucin de probabilidad,
debemos cargar previamente el paquete Statistics`ContinuousDistributions` o bien Statistics`Dis-
creteDistributions` dependiendo de si nuestro modelo corresponde a una variable continua o
discreta, respectivamente.
As, si queremos definir una variable Normal de media 3 y desviacin tpica 1 haremos:
<< Statistics`ContinuousDistributions`
dist = NormalDistribution@3, 1D
NormalDistribution@3, 1D
0.4
0.3
0.2
0.1
1 2 3 4 5 6
Graphics
0.8
0.6
0.4
0.2
-10 -5 5 10
Graphics
Una vez definida la distribucin, podemos analizarla con muchas de las funciones
introducidas en la seccin anterior:
Mathematica5.nb 76
Domain@distD
Mean@distD
Variance@distD
Skewness@distD
Random@distD
Interval@8, <D
2.77339
Obsrvese que hemos utilizado dos rdenes nuevas que no habamos visto hasta ahora.
stas son Domain[] y Random[]. La primera nos calcula el dominio de la distribucin dist y la
segunda genera un nmero aleatorio segn la distribucin dist (luego cada vez que la ejecute-
mos nos proporcionar una nmero distinto).
Para el caso de las distribuciones discretas, ya hemos comentado que se debe cargar el
paquete Statistics`DiscreteDistributions` donde se encuentran cargadas las distribuciones discre-
tas ms importantes, como:
Por ejemplo:
Mathematica5.nb 77
<< Statistics`DiscreteDistributions`
dist2 = BinomialDistribution@10, 0.3D
Domain@dist2D
Mean@dist2D
BinomialDistribution@10, 0.3D
80, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10<
3.
2.1
0.8
0.6
0.4
0.2
2 4 6 8 10
Graphics
Inferencia Estadstica
Finalizamos el captulo con otro breve comenteario sobre la Inferencia Estadstica. Destacamos
dos de los paquetes ms importantes que posee Mathematica dentro de esta rama. En primer
lugar, para calcular los intervalos de confianza usaremos el paquete Statistics`ConfidenceInter-
vals` y para los contrastes de hiptesis cargaremos previamente Statistics`HypothesisTests`.
<< Statistics`ConfidenceIntervals`
876, 73, 75, 73, 74, 74, 74, 74, 74, 77, 74, 72, 75, 76, 73, 71, 73, 80, 75, 75, 68, 72, 78, 74, 75<
datos3 =
876, 73, 75, 73, 74, 74, 74, 74, 74, 77, 74,
72, 75, 76, 73, 71, 73, 80, 75, 75, 68, 72, 78, 74, 75<
MeanCI@datos3D
873.2393, 75.1607<
VarianceCI@datos3D
83.3025, 10.4829<
datos4 = 878, 80, 80, 81, 82, 83, 87, 88, 88, 89<
datos5 = 876, 76, 78, 78, 78, 81, 81, 81, 82, 83<
VarianceRatioCI@datos4, datos5D
878, 80, 80, 81, 82, 83, 87, 88, 88, 89<
876, 76, 78, 78, 78, 81, 81, 81, 82, 83<
80.644746, 10.4505<
MeanDifferenceCI@datos4, datos5D
81.00117, 7.39883<
Con respecto a los contrastes de hiptesis, comentaremos dos: el contraste para la media
y el contraste para la diferencia de medias.
Si queremos contrastar si la media de la distribucin normal que siguen los datos3 es,
por ejemplo, 74, obtenemos el p-valor
<< Statistics`HypothesisTests`
MeanTest@datos3, 74D
OneSidedPValue 0.335635
Como el p-valor es mayor que el nivel de significacin tomado por defecto, 0.05, llega-
mos a la conclusin de que no podemos rechazar que la media de la distribucin de datos3 sea
74.
MeanDifferenceTest@datos4, datos5, 0D
OneSidedPValue 0.00674533
Como en el resto de temas explicados, todo aqul que quiera profundizar ms en esta
parte que se ha tratado ms superficialmente, le recomendamos que utilice la Ayuda tan mplia
y extensa que posee Mathematica.