Está en la página 1de 220

BREVE MANUAL DE

MATHEMATICA 5.1

Robert Ipanaqu Chero


Ricardo Velesmoro Len
DEPARTAMENTO ACADMICO DE MATEMTICA
UNIVERSIDAD NACIONAL DE PIURA, PER

BREVE MANUAL DE MATHEMATICA 5.1


Mathematica y MathReader son marcas registradas de Wolfram Research

Robert Ipanaqu Chero


robertchero@hotmail.com
http://www.unp.edu.pe/pers/ripanaque

Ricardo Velesmoro Len


velesmoro_ricardo@hotmail.com
Departamento Acadmico de Matemtica
Universidad Nacional de Piura, Urb. Miraflores s/n, Castilla - Piura, Per

ISBN:
N Registro:

Setiembre 2005, editado por el grupo eumednet


Grupo de Investigacin de la Universidad de Mlaga, Espaa
http://www.eumed.net

Para citar este libro puede utilizar el siguiente formato:


Ipanaqu Chero y Velesmoro Len (2005) Breve Manual de
Mathematica 5.1. Edicin a texto completo en
www.eumed.net/libros/2005/

ndice
ndice ...................................................................................................................... 3
1. Funcionamiento de Mathematica ........................................................................ 6
1.1. Interfase de cuaderno ................................................................................ 6
1.2. Interfase basada en texto ........................................................................... 8
2. Clculos numricos ............................................................................................. 9
2.1. Aritmtica ................................................................................................. 9
2.2. Resultados exactos y aproximados ......................................................... 10
2.3. Algunas funciones matemticas .............................................................. 12
2.4. Clculos con precisin arbitraria ............................................................ 14
2.5. Nmeros complejos ................................................................................ 15
2.6. Acostumbrndose a Mathematica ........................................................... 16
2.7. Notaciones matemticas en cuadernos ................................................... 17
3. Generacin de clculos ..................................................................................... 19
3.1. Uso de resultados previos ....................................................................... 20
3.2. Definicin de variables ........................................................................... 20
3.3. Construccin de listas ............................................................................. 22
3.4. Manipulacin de los elementos de una lista ........................................... 23
3.5. Las cuatro formas de agrupar en Mathematica ....................................... 25
3.6. Secuencias de operaciones ...................................................................... 25
4. Uso del sistema Mathematica ........................................................................... 26
4.1. La estructura de Mathematica ................................................................ 26
4.2. Cuadernos como documentos ................................................................. 29
4.3. Elementos activos en cuadernos ............................................................. 32
4.4. Hipervnculos y texto activo ................................................................... 35
4.5. Acceso a la ayuda en una interfase de cuaderno ..................................... 36
4.6. Acceso a la ayuda en una interfase basada en texto ................................ 37
4.7. Paquetes en Mathematica ....................................................................... 39
4.8. Advertencias y mensajes ........................................................................ 40
4.9. Interrupcin de clculos .......................................................................... 41
5. Clculos algebraicos ......................................................................................... 42
5.1. Clculo simblico ................................................................................... 42
5.2. Valores para smbolos ............................................................................ 44
5.3. Transformacin de expresiones algebraicas ........................................... 48
5.4. Simplificacin de expresiones algebraicas ............................................. 49
5.5. Puesta de expresiones en diferentes formas ............................................ 51
5.6. Simplificacin con asunciones ............................................................... 55
5.7. Seleccionar partes de expresiones algebraicas ........................................ 56
5.8. Controlar la presentacin de expresiones grandes .................................. 58
2

5.9. Las limitaciones de Mathematica ........................................................... 59


5.10. Uso de smbolos para etiquetar objetos ................................................ 61
6. Matemticas simblicas .................................................................................... 63
6.1. Operaciones bsicas ................................................................................ 63
6.2. Diferenciacin ........................................................................................ 64
6.3. Integracin .............................................................................................. 65
6.4. Sumas y productos .................................................................................. 68
6.5. Ecuaciones .............................................................................................. 70
6.6. Operadores relacionales y lgicos .......................................................... 72
6.7. Solucin de ecuaciones ........................................................................... 74
6.8. Desigualdades ......................................................................................... 80
6.9. Ecuaciones diferenciales ......................................................................... 82
6.10. Series de potencias ................................................................................ 83
6.11. Lmites .................................................................................................. 85
6.12. Transformadas integrales ...................................................................... 86
6.13. Ecuaciones recurrentes ......................................................................... 87
6.14. Paquetes para matemticas simblicas ................................................. 87
6.15. Casos genricos y no genricos ............................................................ 90
6.16. Notacin matemtica en cuadernos ...................................................... 91
7. Matemticas numricas .................................................................................... 93
7.1. Operaciones bsicas ................................................................................ 93
7.2. Sumas, productos e integrales numricas ............................................... 94
7.3. Solucin numrica de ecuaciones ........................................................... 95
7.4. Ecuaciones diferenciales numricas ....................................................... 97
7.5. Optimizacin numrica ........................................................................... 98
7.6. Manipulacin de datos numricos ........................................................ 100
7.7. Estadstica ............................................................................................. 102
8. Funciones y programas ................................................................................... 103
8.1. Definicin de funciones ........................................................................ 103
8.2. Funciones como procedimientos .......................................................... 105
8.3. Operaciones repetitivas ......................................................................... 107
8.4. Reglas de transformacin para funciones ............................................. 108
9. Listas ............................................................................................................... 109
9.1. Juntar objetos ........................................................................................ 109
9.2. Fabricacin de tablas de valores ........................................................... 110
9.3. Vectores y matrices .............................................................................. 113
9.4. Elegir elementos de listas ..................................................................... 118
9.5. Prueba y bsqueda de elementos de una lista ....................................... 120
9.6. Agregar, quitar y modificar elementos de una lista .............................. 122
9.7. Combinacin de listas ........................................................................... 123
9.8. Listas de conjuntos ............................................................................... 124
9.9. Reordenamiento de listas ...................................................................... 125
9.10. Agrupacin y combinacin de elementos de listas ............................. 126
3

9.11. Ordenamiento de listas ....................................................................... 127


9.12. Reorganizacin de listas anidadas ...................................................... 128
10. Grficos y sonido .......................................................................................... 128
10.1. Grficos bsicos .................................................................................. 128
10.2. Opciones ............................................................................................. 131
10.3. Rehacer y combinar grficos .............................................................. 138
10.4. Manipulacin de opciones .................................................................. 143
10.5. Contornos y grficos de densidad ....................................................... 145
10.6. Grficos de superficies tridimensionales ............................................ 148
10.7. Conversin entre tipos de grficos ...................................................... 156
10.8. Grficos de listas de datos .................................................................. 157
10.9. Grficos paramtricos ......................................................................... 160
10.10. Algunos grficos especiales .............................................................. 165
10.11. Grficos animados ............................................................................ 168
10.12. Sonido ............................................................................................... 169
11. Entradas y salidas en cuadernos .................................................................... 172
11.1. Ingreso de letras griegas ..................................................................... 172
11.2. Ingreso de entradas bidimensionales .................................................. 174
11.3. Edicin y evaluacin de expresiones bidimensionales ........................ 180
11.4. Ingreso de frmulas ............................................................................. 181
11.5. Ingreso de tablas y matrices................................................................. 187
11.6. Subndices, barras y otros adornos ..................................................... 188
11.7. Caracteres no ingleses ........................................................................ 190
11.8. Otras notaciones matemticas.............................................................. 191
11.9. Formas de entrada y salida ................................................................. 193
11.10. Mezcla de texto y frmulas ............................................................... 199
11.11. Creacin de sus propias paletas ........................................................ 200
11.12. Creacin de Hipervnculos ............................................................... 204
11.13. Numeracin automtica .................................................................... 204
12. Archivos y operaciones externas .................................................................. 205
12.1. Lectura y Escritura de archivos en Mathematica ................................ 205
12.2. Localizacin y manipulacin de archivos ........................................... 208
12.3. Importacin y exportacin de datos .................................................... 210
12.4. Exportacin de grficos y sonidos ...................................................... 211
12.5. Exportacin de frmulas de cuadernos ............................................... 212
12.6. Generacin e Importacin de TeX ...................................................... 213
12.7. Cambio de material con la Web .......................................................... 214
12.8. Generacin de expresiones C y Fortran .............................................. 217
12.9. Empalmar salidas de Mathematica con archivos externos ................. 218
Bibliografa ......................................................................................................... 220

Breve manual de Mathematica 5.1


Este libro da una introduccin a Mathematica, concentrndose en usar
Mathematica como sistema interactivo para resolver problemas. Cuando lo haya
ledo, debe tener suficiente conocimiento de Mathematica para abordar muchas
clases de problemas prcticos.

1. Funcionamiento de Mathematica
Para saber cmo se instala y funciona Mathematica debe leer la documentacin
que vino con su copia de Mathematica. Los detalles difieren a partir de un sistema
informtico a otro, y son afectados por las varias clases de arreglo para requisitos
particulares que se pueden hacer en Mathematica. Sin embargo, esta seccin
delinea dos casos comunes.
Observe que aunque los detalles de funcionamiento de Mathematica difieren a
partir de un sistema informtico a otro, la estructura de los clculos de
Mathematica es igual en todos los casos. El usuario digita la entrada (input),
Mathematica la procesa, y devuelve un resultado.

1.1. Interfase de Cuaderno


utilice un icono o el men de
Inicio
mathematica
finalizar texto con
<Shift>+<Enter>
elegir el tem salida del men

formas grficas de inicializar Mathematica


comando para inicializar Mathematica
entrada para Mathematica
salir de Mathematica

Funcionamiento de Mathematica con una interfase de cuaderno.

En una interfase de cuaderno, usted interacta con Mathematica creando


documentos interactivos.
Si usa su computadora va una interfase puramente grfica haremos como de
costumbre doble en el icono de inicio de Mathematica. En cambio, si la usa va un
sistema operativo basado en texto digitaremos el comando mathematica para
iniciar Mathematica.
5

Cuando Mathematica inicializa usualmente presenta un cuaderno en blanco. Usted


digita la entrada (input), luego presiona (en simultneo) <Shift>+<Enter> para que
Mathematica procese su entrada. <Shift>+<Enter> indica a Mathematica que usted
ha finalizado su entrada. Si su teclado posee teclado numrico puede usar la tecla
<Enter> del mismo en lugar de <Shift>+<Enter>.
Despus de ejecutar una entrada en Mathematica desde un cuaderno, Mathematica
etiquetar su entrada con In[n]:=. Tambin etiqueta la correspondiente salida
Out[n]=.
Usted digita 1 + 1 , luego finaliza su entrada con <Shift>+<Enter>.
Mathematica procesa la entrada, luego agrega la etiqueta a la entrada
In[1]:=, y devuelve la respectiva salida.

A lo largo de este libro los dilogos con Mathematica se mostrarn de la


siguiente manera:
Con una interfase de cuaderno, usted slo digita 1+1. Mathematica aade la
etiqueta In[1]:=, e imprime el resultado.
1 + 1
2
Recuerde que los cuadernos corresponden a la parte visible (front end) de
Mathematica. El ncleo de Mathematica que realiza realmente los clculos puede
funcionar en la misma computadora que el front end, o en otra computadora
conectada va alguna clase de red o de lnea. En la mayora de los casos, el ncleo
incluso no se inicializa hasta que el usuario hace realmente un clculo con
Mathematica.
Para salir de Mathematica, usted elige el tem salida del respectivo men en la
interfase de cuaderno.

1.2. Interfase Basada en Texto


math
finalizar texto con <Enter>
Control-D, Control-Z
Quit[]

comando del sistema operativo para


inicializar Mathematica
entrada para Mathematica
salir de Mathematica

Funcionamiento de Mathematica con una interfase basada en Texto.

Con una interfase basada en texto, usted interacta con su computadora digitando
texto en el teclado.
Para inicializar Mathematica con una interfase basada en texto, se digita el
comando math en el prompt del sistema operativo. En algunos sistemas, tambin
es posible inicializar Mathematica con una interfase basada en texto haciendo
doble clic en el icono del ncleo de Mathematica.
Cuando Mathematica ha inicializado, imprimir el prompt In[1]:=, esto
significa que esta lista para que usted haga su entrada. Puede entonces digitar su
entrada, terminndola con <Enter>.
Mathematica procesa la entrada, y genera un resultado, el mismo que etiquetar
con Out[1]=.
A lo largo de este libro los dilogos con Mathematica se mostrarn de la
siguiente manera:
La computadora imprime In[1]:=. Usted slo digita 1+1. La lnea que
empieza con Out[1]= es el resultado de Mathematica.
1 + 1
2
Observe que usted no digita explcitamente el prompt In[1]:=; slo digita el
texto que sigue despus de este aviso.
Observe tambin que la mayor parte de los dilogos dados en el libro muestran
salidas en la forma que usted obtendra con una interfase de cuaderno de
Mathematica; la salida con una interfase basada en texto luce similar, pero carece
de caractersticas tales como caracteres especiales y cambio de tamao de fuente.

Para salir de Mathematica, digite Control-D, Control-Z Quit[ ] en el prompt


de la entrada.

2. Clculos numricos
2.1. Aritmtica
Usted puede hacer aritmtica con Mathematica tal y como lo hara con una
calculadora.
Aqu tenemos la suma de dos nmeros.
5.6 + 3.7
9.3
Con * indicamos el producto de dos nmeros.
5.6 * 3.7
20.72
Con el espacio en blanco tambin se indica el producto de dos nmeros.
5.6 3.7
20.72
Usted puede digitar operaciones aritmticas haciendo uso de los parntesis.
(2 + 3) ^ 3 4 (6 + 7)
73
Los espacios no son necesarios, aunque a menudo hacen su entrada ms
fcil de leer.
(2+3)^34(6+7)
73
x^y
x
x/y
x y z o x*y*z
x+y+z

potencia
menos
divisin
producto
suma

Operaciones aritmticas en Mathematica.

Las operaciones aritmticas en Mathematica se agrupan de acuerdo con las


convenciones estndares de la matemtica. Como es usual, 2+3/7, por ejemplo,
significa 2+(3/7), y no (2+3)/7. Usted puede controlar siempre la forma de
agrupar explcitamente usando parntesis.
Este resultado se da en notacin cientfica.
3.7 ^ 36
2.852741020
Usted puede incorporar nmeros en notacin cientfica de esta forma.
4.6 10^45
4.61045
O de esta otra forma.
4.6*^45
4.61045

2.2. Resultados exactos y aproximados


Una calculadora electrnica hace todos sus clculos con una precisin
determinada, digamos de diez dgitos decimales. Con Mathematica, en cambio,
usted puede obtener resultados exactos.
Mathematica da un resultado exacto para 2
dgitos decimales.

300

, a pesar que ste tiene 91

2^300
203703597633448608626844568840937816105146839366593
6250636140449354381299763336706183397376
Usted puede pedir a Mathematica que devuelva un resultado aproximado, tal como
lo dara una calculadora, para ello debe finalizar su entrada con //N.
Esto da un resultado numrico aproximado.
2^300//N
2.037041090

Mathematica puede dar resultados en trminos de nmeros racionales.


1/3 + 2/7
13
21
//N siempre da un resultado numrico aproximado.
1/3 + 2/7//N
0.619048
exp //N da un valor numrico aproximado para exp
Obteniendo aproximaciones numricas.

Cuando usted digita un entero como 7, Mathematica asume que es exacto. Si usted
digita un nmero como 4.5, con un punto decimal explcito, Mathematica asume
que desea efectuar clculo numricos aproximados.
Esto es tomado como un nmero racional exacto, y es llevado a una fraccin
irreducible.
26/78
1
3
Cuando usted digita un nmero con un punto decimal explcito,
Mathematica produce un resultado numrico aproximado.
26.7/78
0.342308
Aqu otra vez, la presencia del punto decimal hace que Mathematica d un
resultado numrico aproximado.
26./78
0.333333
Cuando cualquier nmero en una expresin aritmtica es digitado con un
punto decimal explcito, usted obtiene un resultado numrico aproximado
para toda la expresin.
5. + 9 / 78 - 5/8
4.49038
10

2.3. Algunas funciones matemticas


Mathematica incluye una gran coleccin de funciones matemticas. A
continuacin mencionamos las ms comunes.
Sqrt[x] raz cuadrada ( x )
x

Exp[x] exponencial ( e )
Log[x] logaritmo natural ( log e x )
Log[b, x] logaritmo en base b ( log b x )
Sin[x], Cos[x], Tan[x], funciones trigonomtricas (con argumentos
Cot[x], Sec[x], Csc[x] en radianes)
ArcSin[x], ArcCos[x], funciones trigonomtricas inversas
ArcTan[x], ArcCot[x],
ArcSec[x], ArcCsc[x]
n! factorial de n (producto de los enteros 1, 2,
..., n)
Abs[x] valor absoluto
Round[x] redondeo del entero x
Mod[n, m] n mdulo m (resto de la divisin de n entre
m)
Random[ ] nmero seudo aleatorio entre 0 y 1
Max[x, y, ...], Min[x, y, ...] mximo, mnimo de x, y, ...
FactorInteger[n] factores primos de n
Algunas de las funciones matemticas ms comunes.

Los argumentos de todas las funciones en Mathematica se colocan entre


corchetes.
Los nombres de las funciones incorporadas en Mathematica empiezan con
letra mayscula.
Dos puntos importantes acerca de funciones en Mathematica.

Es importante recordar que todos los argumentos de funciones se colocan entre


corchetes, no entre parntesis. Los parntesis en Mathematica se usan solamente
para indicar agrupacin de trminos, y jams para encerrar argumentos de
funciones.
Esto da log e (15.7) . Note la letra mayscula para Log, y los corchetes para
el argumento.
11

Log[15.7]
2.75366
Esto devuelve

64 como un entero exacto.

Sqrt[64]
8
Esto da un valor numrico aproximado para

6.

Sqrt[6]//N
2.44949
La presencia explcita de un punto decimal le indica a Mathematica que d
un resultado numrico aproximado.
Sqrt[6.]
2.44949
En este caso Mathematica devuelve un nmero en forma simblica exacta.
Sqrt[6]
6

Aqu tenemos un resultado entero exacto para 3029 ... 1. Usted puede
digitar nmeros grandes para calcular factoriales. Por ejemplo, puede
calcular 2000! en corto tiempo.
40!
815915283247897734345611269596115894272000000000
Esto da un valor numrico aproximado del factorial.
40!//N
8.159151047
Pi 3.14159
E e 2.71828 (normalmente aparece como )
Degree /180: factor de conversin de grados a
radianes (normalmente aparece como )
I i = 1 (normalmente aparece como )
Infinity
Algunas constantes matemticas comunes.

12

Note que todos los nombres de las constantes incorporadas en Mathematica


empiezan con mayscula.
2

Este es el valor numrico de .


Pi^2//N
9.8696
Esto devuelve un resultado exacto para sen(/2).Note que los argumentos de
las funcin trigonomtricas siempre se dan en radianes.
Sin[Pi/2]
1
Esto devuelve el valor numrico de sen(20). Multiplicando por la constante
Degree convertimos el argumento a radianes.
Sin[20 Degree]//N
0.34202
Log[x] devuelve el logaritmo de x en base e.
Log[E^15]
15
Usted puede obtener logaritmos en cualquier base b usando Log[x]. Como
una notacin estndar de Mathematica la b es opcional.
Log[3,81]
4

2.4. Clculos con precisin arbitraria


Cuando usted utiliza //N para obtener un resultado numrico, Mathematica hace
que lo que hara una calculadora estndar: devuelve el resultado con un nmero
fijo de cifras significativas. No obstante, usted puede indicarle a Mathematica las
cifras significativas con las que desea operar. Esto permite obtener resultados
numricos en Mathematica con cualquier grado de precisin.
exp //N o N[exp] valor numrico aproximado para exp
N[exp, n] valor numrico de exp calculado con n
dgitos de precisin
Funciones de evaluacin numrica.

13

Esto devuelve el valor numrico de con un nmero fijo de cifras


significativas. Digitar N[Pi] es equivalente a Pi//N.
N[Pi]
3.14159
Esto devuelve con 50 dgitos.
N[Pi, 50]
3.1415926535897932384626433832795028841971693993751
Aqu tenemos a

7 con 40 dgitos.

N[Sqrt[7], 40]
2.645751311064590590501615753639260425710
Al realizar cualquier tipo de clculo numrico puede introducir pequeos errores
de redondeo en sus resultados. Cuando se aumenta la precisin numrica estos
errores se hacen ms pequeos. Asegurarse que usted obtiene la misma respuesta al
aumentar la precisin numrica es a menudo una buena forma de verificar los
resultados.
163

esta bastante prxima a ser entera. Para verificar que el


La cantidad e
resultado no es, de hecho, un entero, usted tiene que usar la precisin
numrica suficiente.
N[Exp[Pi Sqrt[163]], 40]
2.6253741264076874399999999999925007259721017

2.5. Nmeros complejos


Puede ingresar nmeros complejos en Mathematica con slo incluir la constante I,
igual a 1 . Asegrese que la letra I sea mayscula. Si est usando cuadernos,
tambin puede ingresar I como digitando <Esc> ii <Esc>. La forma es la que
se usa normalmente como salida. Note que una i ordinaria significa una variable
llamada i, pero no

1 .

Esto devuelve como resultado el nmero imaginario 2i.


Sqrt[-4]
2
14

Esto devuelve la divisin de dos nmeros complejos.


(8 + 4 I)/(-1 + I)
-2 - 6
Aqu tenemos el valor numrico de un exponencial complejo.
Exp[11 + 5 I]//N
16984. - 57414.8
x + I y el nmero complejo x + i y
Re[z] parte real
Im[z] parte imaginaria
Conjugate[z] complejo conjugado z * o z
Abs[z] mdulo de z
Arg[z] el argumento en z e

Operaciones con nmeros complejos.

2.6. Acostumbrndose a Mathematica


Los argumentos de las funciones se colocan entre corchetes.
Los nombres de las funciones incorporadas empiezan con letra mayscula.
La multiplicacin se puede representar por un espacio.
Las potencias se denotan por ^.
Los nmeros en la notacin cientfica se ingresan, por ejemplo, como
2.5*^-4 2,5 10^-4.
Puntos importantes a recordar en Mathematica.

Esta seccin le ha dado una primera idea de Mathematica. Si ha utilizado otros


sistemas informticos antes, habr advertido probablemente algunas similitudes y
algunas diferencias. A menudo encontrar en las diferencias las partes ms difciles
de recordar. Esto puede ayudarle, sin embargo, a entender un poco de por qu
Mathematica funciona en la manera que lo hace, y por qu existen tales
diferencias.
Una caracterstica importante de Mathematica que difiere de otros lenguajes de
programacin, y de la anotacin matemtica convencional, es que los argumentos
de una funcin se encierran en corchetes, no en parntesis. Los parntesis en
Mathematica se reservan especficamente para indicar la agrupacin de trminos.
Hay obviamente una diferencia conceptual entre dar argumentos a una funcin y
15

agrupar trminos entre s; el hecho que la misma notacin a menudo se ha utilizado


para ambas cosas es en gran parte una consecuencia de la tipografa y de los
primeros teclados de computadora. En Mathematica, los conceptos son
distinguidos por la diferente notacin.
Esta diferencia tiene varias ventajas. En la notacin de parntesis, no est claro si
c (1 + x) significa c[1 + x] c*(1 + x). Usar los corchetes para los
argumentos de una funcin quita esta ambigedad. Tambin permite que la
multiplicacin sea indicada sin el explcito * o algn otro caracter. Por
consiguiente, Mathematica puede manejar expresiones como 2x y a x
a(1 + x), tratndolos tal como en la notacin matemtica estndar.
Habr visto en esta seccin que las funciones incorporadas de Mathematica tienen
a menudo nombres absolutamente largos. Puede preguntarse por qu, por ejemplo,
la funcin del nmero pseudaleatorio se llama Random, en lugar de, por ejemplo,
rand. La respuesta, que depende mucho del diseo de Mathematica, es la
consistencia. Hay una convencin general en Mathematica que todos los nombres
de funciones estn representados con palabras inglesas completas, a menos que
haya una abreviatura matemtica estndar para ellos. La gran ventaja de este
esquema es que es fiable. Una vez que usted sabe lo que una funcin hace, usted
por lo general ser capaz de adivinar exactamente cual es su nombre. Si los
nombres fueran abreviados, tendra que recordar siempre cual abreviatura de las
palabras inglesas estndares fue utilizada.
Otra caracterstica de los nombres de funciones incorporadas en Mathematica es
que todos comienzan con mayscula. En secciones posteriores, usted ver cmo
definir variables y funciones por si mismo. La convencin de la mayscula hace
fcil distinguir objetos incorporados. Si Mathematica utilizara max en vez de
Max para representar la operacin de encontrar el mximo, despus usted nunca
podra utilizar max como el nombre de una de sus variables. Adems, cuando
usted lee los programas escritos en Mathematica, las maysculas de los nombres
de objetos incorporados los hace ms fciles seleccionar.

2.7. Notaciones matemticas en cuadernos


Si usa una interfase basado en texto con Mathematica, entonces las entradas que
usted vaya a hacer consistirn solamente en caracteres que digite directamente con
su teclado. Pero si usa una interfase de cuaderno entonces es posible que realice
otro tipo de entradas.

16

Usualmente se incorporan paletas las cuales operan como extensiones de su


teclado, y poseen botones sobre los que usted puede hacer clic para ingresar alguna
forma en particular. Puede acceder a las paleta estndares usando el submen
Pelettes del men File.
Haciendo clic en el botn de esta paleta ingresar pi en su cuaderno.

Haciendo clic en el primer botn una estructura en blanco par ingresar una
potencia. Usted puede usar el mouse para rellenar esta estructura o
desplazarse en ella con la tecla <Tab>.

Tambin puede hacer ingresos como los anteriores mediante teclas especiales de su
teclado.
el smbolo
el smbolo
el smbolo para constante exponencial
(equivalente a E)
el smbolo para 1 (equivalente a I)
el smbolo (equivalente a Degree)
lleva al exponente de una potencia
lleva al denominador de una fraccin
lleva al subradical de una raz cuadrada
regresa de un exponente, denominador o raz
cuadrada
Algunas maneras de ingresar notaciones especiales.

Esta es un clculo ingresado mediante los caracteres comunes de un teclado.


N[E^3/5]
4.01711
17

Este es el mismo clculo ingresado usando una paleta o teclas especiales.

4.01711
Esta es una secuencia de las teclas que puede usarse para ingresar la entrada
anterior.
4.01711
En un lenguaje de programacin tradicional tal como C, FORTRAN, Java o Perl, la
entrada que usted da siempre debe consistir de una cadena de caracteres ordinarios
que se puedan digitar directamente del teclado. Pero el lenguaje de Mathematica
tambin le permite dar entradas que contienen caracteres especiales, exponentes,
fracciones, etctera.
El lenguaje incorpora muchas caractersticas de la notacin matemtica tradicional.
Pero debe comprender que el objetivo del lenguaje es proporcionar una forma
exacta y constante de especificar clculos. Y por consiguiente, no sigue todos los
detalles de la notacin matemtica tradicional.
Sin embargo, es posible conseguir que Mathematica produzca salidas que imitan
cada aspecto de notacin tradicional matemtica. Y es tambin posible para
Mathematica importar texto que usa tal notacin, y en cierta medida traducirlo en
su propio lenguaje.

3. Clculos
3.1. Uso de resultados previos
Al realizar clculos, muchas veces usted necesita usar resultados previamente
obtenidos. En Mathematica, % siempre hace referencia al ltimo resultado.
%
%%
%%...% (k veces)
%n

el ltimo resultado generado


el penltimo resultado
el k-simo previo resultado
el resultado de la lnea de salida Out[n]

Formas de hacer referencia a resultados previos.

18

Aqu tenemos el primer resultado.


5^3
125
Esto agrega 6 al ltimo resultado.
% + 6
131
Esto utiliza los dos ltimos resultados.
5 + % 2 - %%
142
Hemos mencionado que las entradas y salidas en Mathematica son numeradas.
Estos nmeros pueden ser usados para hacer referencia a resultados previos.
Esto suma los resultados de las lneas 1 y 3.
%1 + %3
267
Si utiliza una interfase basada en texto en Mathematica, entonces las lneas
sucesivas de entradas y salidas aparecern siempre en orden, como se muestra en
este tem. Sin embargo, si utiliza una interfase de cuaderno, entonces varias lneas
sucesivas de entradas y salidas no necesariamente aparecen en orden. Usted puede
por ejemplo volver atrs e insertar el clculo siguiente dondequiera que desee en
el cuaderno. Tenga en cuenta que % siempre invoca el ltimo resultado que
Mathematica gener. ste puede o no ser el resultado que aparece inmediatamente
encima de su actual posicin en el cuaderno. Con una interfase de cuaderno, la
nica manera de saber cundo un resultado particular fue generado es mirar la
etiqueta de Out[n] que tiene. Como usted puede insertar y suprimir en todas
partes en un cuaderno, de acuerdo a su necesidad, el ordenamiento de los
resultados en el cuaderno, por lo general, no tiene ninguna relacin con el orden en
el cual los resultados fueron generados.

3.2. Definicin de variables


Cuando usted efecta clculos extensos, muchas veces es conveniente dar nombre
a los resultados intermedios. De la misma manera que en las matemticas
tradicionales o en otros lenguajes de programacin, usted puede hacer esto
introduciendo variables nombradas.
19

Esto inicializa el valor de la variable x con 6.


x = 6
6
Donde quiera que aparezca x, Mathematica la reemplaza por su valor 6.
x^3 - 25
191
Esto asigna un nuevo valor para x.
x = 11 + 5
16
pi es inicializada con el valor numrico de con 20 dgitos de exactitud.
pi = N[Pi, 20]
3.1415926535897932385
Aqu esta el valor de Sqrt[pi].
Sqrt[pi]
1.77245385090551602730
x = value asigna un valor a la variable x
x = y = value asigna un valor a las variable x e y
x = . o Clear[x] quita cualquier valor asignado a x
Asignando valores a variables.

Es muy importante recordar que los valores asignados a las variables son
permanentes. Una vez que usted ha asignado un valor a una variable en particular,
el valor ser almacenado hasta que usted lo remueva explcitamente. El valor, claro
est, desaparecer si usted inicia una nueva sesin con Mathematica.
Olvidarse de las definiciones hechas es la causa ms comn de errores al usar
Mathematica. Si usted pusiera x = 5, Mathematica asume que usted siempre
quiere que x tenga el valor 5, hasta o a menos que usted e indique explcitamente
otra cosa. Para evitar los errores, usted debe quitar los valores definidos en cuanto
haya terminado de usarlos.
Quite valores que asigne a las variables en cuanto termine de usarlos.
Un principio til al usar Mathematica.

20

Las variables que usted define pueden tener cualquier nombre. No hay lmite par
longitud de sus nombres. Un inconveniente, sin embargo, es que los nombres de las
variables nunca pueden empezar con nmeros. Por ejemplo, x3 puede ser una
variable, pero 2x significa 2*x.
Mathematica usa letras minsculas y maysculas. Hay una convencin para los
objetos incorporados en Mathematica, los nombres de todos ellos empiezan con
letra mayscula. Para evitar alguna confusin, usted siempre debe escoger nombres
que empiecen con letra minscula.
aaaaa una variable cuyo nombre contiene slo
letras minsculas
Aaaaa una variable cuyo nombre empieza con una
letra mayscula (aplicable por lo general a
objetos incorporados en Mathematica)
Convenciones para nombrar variables.

Usted puede digitar frmulas que involucren variables en Mathematica de la


misma manera que lo hara matemticamente. Sin embargo, hay algunos puntos
importantes que observar.
x y significa x por y.
xy sin espacio es la variable con nombre xy.
5x significa 5 por x.
x^2y significa (x^2) y, no x^(2y).
Algunos puntos a observar cuando usamos variables en Mathematica.

3.3. Construccin de listas


Al realizar clculos, a veces es conveniente agrupar ciertos objetos, y tratarlos
como una sola entidad. Las listas proporcionan una manera de coleccionar objetos
en Mathematica. Como veremos despus las listas son muy importantes en
Mathematica.
Una lista como {4,7,6} es una coleccin de tres objetos. Pero en muchos casos
usted puede tratar esta lista como un solo objeto. Usted puede, por ejemplo, hacer
aritmtica con esta lista o asignarla a una variable.

21

Aqu hay una lista de tres nmeros.


{4, 7, 6}
{4, 7, 6}
Esto eleva al cubo cada nmero de la lista, y le resta 2.
{4, 7, 6}^3 - 2
{62, 341, 214}
Esto toma la diferencia entre los correspondientes elementos de las dos
listas. Las listas deben ser de la misma longitud.
{9.5, 8, 7} - {3, 4, 2.3}
{6.5, 4, 4.7}
El valor de % es el de la lista
%
{6.5, 4, 4.7}
Usted puede aplicar cualquier funcin matemtica a la lista.
%

//N
{665.142, 54.5982, 109.947}
Esto asigna una lista en la variable u.
u = {5, 3, 8.2}
{5, 3, 8.2}
Esto asigna una lista en la variable u.
(u + 1)/(u - 6)
{-6,

43 ,

4.18182}

3.4. Manipulacin de los elementos de una lista


Muchas de las ms potentes operaciones de manipulacin de listas en Mathematica
tratan a las listas como un solo objeto. A veces, sin embargo, extraer un conjunto
individual de elementos de una lista.

22

Usted puede referirse a un elemento de una lista en Mathematica mediante su


ndice. Los elementos son numerados en orden, empezando en 1.
{a, b, c} una lista
Part[list, i] o list[[i]] el i-simo elemento de list (el primer
elemento es list[[1]])
una
lista formada por los elementos i, j, ... de
Part[list, {i, j, }] o
list
list[[i, j, ]]
Operaciones con elementos de una lista.

Esto extrae el tercer elemento de la lista.


{4, -1, 8, -6}[[3]]
8
Esto extrae una lista de elementos.
{4, -1, 8, -6}[[ {2, 3, 1, 2, 3, 4, 1} ]]
{-1, 8, 4, -1, 8, -6, 4}
Esto asigna una lista en la variable u.
u = {7, 2, 4, 6}
{7, 2, 4, 6}
Usted puede extraer elementos de u.
u[[3]]
4
Al asignar una lista a una variable, usted puede usar las listas en Mathematica de
manera similar a los arrays en otros lenguajes de programacin. De esta manera,
por ejemplo, usted puede resetear un elemento de una lista asignando un valor a
u[[i]].
Part[u, i] o u[[i]] extrae el i-simo elemento de una lista
Part[u, i] = value o resetea el i-simo elemento de una lista
u[[i]] = value
Operando listas como arrays.

23

Aqu hay una lista.


u = {2, 1, 5, 7}
{2, 1, 5, 7}
Esto resetea el segundo elemento de la lista.
u[[2]] = 0
0
Ahora la lista asignada a u se ha modificado.
u
{2, 0, 5, 7}

3.5. Las cuatro formas de agrupar en Mathematica


En las secciones anteriores hemos introducido cada una de las formas de agrupar
en Mathematica. Cada una de ellas tiene diferente significado. Es importante que
usted los recuerde.
(terms)
f[x]
{a, b, c}
u[[i]]

parntesis para agrupar


corchetes para funciones
llaves para listas
corchetes dobles para indexar (Part[u, i])

Las cuatro formas de agrupar en Mathematica.

Cuando la expresin que usted digita es complicada, a veces es una buena idea
ingresar un espacio en blanco para conjunto de agrupaciones. Esto hace que sea
relativamente fcil ubicar pares de agrupaciones. u[[ {a, b} ]] permite, por
ejemplo, fcilmente reconocer a u[[{a, b}]].

3.6. Secuencia de operaciones


Al realizar clculos con Mathematica, usted usualmente lo hace mediante una
secuencia de pasos. Si usted desea puede realizar cada paso en una lnea separada.
A veces, sin embargo, es conveniente ingresar varios pasos en una misma lnea.
Usted puede hacer esto simplemente separando cada una de las partes ingresadas
con punto y coma.
24

exp1; exp2; exp3


exp1; exp2;

hace varias operaciones y da el resultado en


la ltima lnea
hace las operaciones pero no imprime la
salida

Formas de hacer secuencias de operaciones en Mathematica.

Esto realiza tres operaciones en una misma lnea. El resultado corresponde a


la ltima operacin.
x = 3; y = 7; z = y - 2
5
Si usted finaliza su entrada con un punto y coma, esto es como si usted estuviera
ingresando una secuencia de operaciones, con un punto y coma al final. Esto tiene
el efecto de hacer que Mathematica calcule las operaciones especificadas, pero no
muestre la salida.
exp;

realiza una operacin, pero no muestra la


salida

Inhibiendo la salida.

Aadiendo un punto y coma al final de la lnea le Mathematica que no


muestre la salida.
x = 47 + 5;
Usted puede usar % para poder visualizar la salida anterior.
%
52

4. Uso del Sistema Mathematica


4.1. La estructura de Mathematica
Kernel (ncleo) de
Mathematica
Front end (parte visible) de
Mathematica

la parte que realmente realiza los clculos


la parte que se ocupa de interactuar con el
usuario

Partes bsicas del Sistema Mathematica.

25

Mathematica es un sistema de software modular, en el cual el kernel que realmente


realiza los clculos est separado del front end que se ocupa de la interaccin con
el usuario. El tipo ms comn de front end de Mathematica est basado en
documentos interactivos conocidos como cuadernos. Los cuadernos mezclan las
entradas y salidas de Mathematica con texto, grficos, paletas y otros materiales.
Usted puede usar los cuadernos para hacer clculos continuos o como medio para
presentar o publicar resultados.
Interfase de cuaderno
Interfase basada en texto
Interfase de MathLink

documentos interactivos
texto desde el teclado
comunicacin con otro programas

Tipos comunes de interfase con Mathematica.

Un cuaderno que mezcla texto, grficos con entradas y salidas de


Mathematica.

26

En algunos casos, puede que usted no necesite usar la interfase de cuaderno, y que
desee en cambio interactuar directamente con el ncleo de Mathematica. Usted
puede hacer esto usando la Interfase basada en texto, en la cual usted digita el texto
en el teclado y ste va directamente al ncleo.
Un dilogo con Mathematica usando interfase basada en texto.

Un aspecto importante de Mathematica es que no solamente puede interactuar con


usuarios humanos sino que tambin puede hacerlo con otros programas. Esto se
logra principalmente a travs del MathLink, el cual es un protocolo estandarizado
para la comunicacin bidireccional entre programas externos y el ncleo de
Mathematica.
Un fragmento de cdigo C que se comunica va MathLink con el kernel de
Mathematica.

27

4.2. Cuadernos como documentos


Los cuadernos de Mathematica le permiten crear documentos que pueden verse
interactivamente en la pantalla o imprimirse en papel.
Particularmente, en los cuadernos extensos, es comn tener los captulos, secciones
etc., representados cada uno en grupos de celdas. La extensin de estos grupos de
celdas es indicada por el corchete que aparece a la derecha.
La agrupacin de celdas en un cuaderno se indica con los corchetes
anidados que aparecen en el lado derecho.

Un grupo de celdas puede estar abierto o cerrado. Cuando est abierto usted puede
ver todas sus celdas explcitamente. Pero cuando est cerrado, usted slo puede ver
la celda que encabeza el grupo de celdas.
Los cuadernos extensos son a menudo distribuidos con muchos grupos de celdas
cerradas, para que cuando usted vea por primera vez el cuaderno aprecie solamente
una lista de su contenido. Usted puede abrir las partes en las que est interesado
haciendo doble clic sobre el corchete apropiado.

28

Haciendo doble clic sobre el corchete que abarca un grupo de celdas


cerramos el grupo, dejando slo la primera celda visible.

Cuando el grupo est cerrado, el corchete que le corresponde tiene una


flecha en la parte inferior. Haciendo doble clic sobre esta flecha abrimos
nuevamente el grupo.

A cada celda dentro de un cuaderno se le asigna un estilo en particular que indica


su rol dentro del cuaderno. As, por ejemplo, el material entendido como entrada
para ser ejecutado por el ncleo de Mathematica est tpicamente el estilo de
Input (entrada), mientras que el que se entiende para ser ledo como puramente
de texto est tpicamente en estilo Text (texto).
La interfase de Mathematica provee mens y mtodos abreviados de teclas para
crear celdas con diferentes estilos, y para cambiar estilos en las celdas existentes.

29

Esto muestra celdas en diferentes estilos. Los estilos no slo definen el


formato del contenido de las celdas, sino que tambin su ubicacin y
espaciado.

Poniendo una celda en un estilo en particular, usted especifica una coleccin entera
de propiedades para celda, incluyendo por ejemplo el tamao y la fuente del texto
que se digitar.
La interfase de Mathematica permite modificar tales propiedades, bien sea para las
celdas completas o para material especfico dentro de las celdas.
Incluso dentro de una celda con un estilo en particular, la interfase de
Mathematica permite modificar una amplia gama de propiedades en forma
separada.

Vale mencionar que al hacer diversas clases de cosas con los cuadernos de
Mathematica, usted est utilizando diversas partes del sistema de Mathematica.
Las operaciones tales como apertura y cierre de grupos de celdas, realizacin de
animaciones y reproduccin de sonidos utilizan solamente una parte pequea del
front end de Mathematica, y estas operaciones tranquilamente se pueden realizar
con un programa fcilmente disponible conocido como MathReader.
30

Para poder crear y corregir los cuadernos, usted necesita ms que el front end de
Mathematica. Y finalmente, para poder actualizar los clculos dentro de un
cuaderno de Mathematica, necesita un sistema completo de Mathematica, que
contenga el front end y el ncleo.
MathReader
front end de Mathematica
ncleo de Mathematica

lee cuadernos de Mathematica


crea y edita cuadernos en Mathematica
hace clculos en cuadernos

Programas requeridos para diversas clases de operaciones en los cuadernos.

4.3. Elementos activos en cuadernos


Una de las caractersticas ms potentes de los cuadernos de Mathematica es que
sus acciones pueden ser programadas. As, por ejemplo, usted puede establecer un
botn en un cuaderno de Mathematica que permita realizar varias operaciones
siempre que usted haga clic sobre l.
He aqu un cuaderno que contiene un botn.

Haciendo clic en el botn conseguimos que se muestre la fecha actual.

Ms adelante en este libro, discutiremos cmo usted puede crear botones y otros
objetos similares en los cuadernos de Mathematica. Por ahora es suficiente decir
que siempre que una celda se indique como activa, al hacer clic en los elementos
activos dentro ella se producir las acciones que han sido programadas para que
estos elementos realicen.
Es comn inicializar paletas que consisten en una serie de botones. A veces tales
paletas aparecen como celdas dentro de un cuaderno. Aunque a menudo, se usa un
cuaderno especial que aparece como ventana, que se puede poner
convenientemente en algn lado de la pantalla de su computadora y utilizar
conjuntamente con cualquier otro cuaderno.
31

Las paletas que consisten en una serie de botones a menudo son colocadas
en cuadernos separados.

En los casos ms simples, los botones en las paletas sirven como teclas adicionales
a su teclado. As, cuando usted presiona un botn, el carcter o el objeto mostrado
en aquel botn es insertado en su cuaderno tal como si usted lo hubiera escrito a
mquina.
Aqu est una paleta de letras griegas con botones que actan como teclas
adicionales a su teclado.

A menudo, sin embargo, un botn puede contener un placeholder indicado por .


Esto significa que cuando usted presiona el botn, lo que se selecciona actualmente
en su cuaderno ser insertado en la posicin del placeholder.
Estos botones contienen placeholders indicados por .

Este es un cuaderno con una expresin seleccionada.

32

Al presionar el botn superior izquierdo de la ltima paleta la expresin


seleccionada queda envuelta en una raz cuadrada.

A veces los botones que contienen placeholders sern programados simplemente


para insertar una cierta expresin en su cuaderno. Pero ms a menudo, sern
programados para evaluar el resultado, envindolo como una entrada al ncleo de
Mathematica.
Estos botones se inicializan para realizar operaciones.

He aqu un cuaderno con una expresin seleccionada.

Al presionar el botn superior en la ltima paleta la expresin seleccionada


es simplificada.

Hay algunas situaciones en las cuales es conveniente tener varios placeholders en


un solo botn. Su actual seleccin se inserta en la posicin del primer placeholder,
indicada por . Los placeholder adicionales se indican por , y usted puede
trasladarse a travs de los placeholders sucesivos usando la tecla <Tab>.
He aqu una paleta que contiene botones con varios placeholders.

33

He aqu una expresin en un cuaderno.

Presionando el botn superior izquierdo en la ltima paleta insertamos la


expresin en el lugar de .

Usted puede trasladarse a los otros placeholders usando la tecla <Tab>, y


entonces los corrige para insertar lo que usted desea.

4.4. Hipervnculos y texto activo


El front end de Mathematica proporciona una variedad de formas de buscar
palabras o texto particulares en los cuadernos de Mathematica. Pero cuando los
documentos son extensos o tenemos colecciones de documentos, conviene insertar
hipervnculos que nos llevan inmediatamente a un punto especfico en un
cuaderno, tal como se hace en los websites.
Los hipervnculos se indican generalmente por palabras o frases subrayadas,
y estn a menudo en un color diferente. Al hacer clic en un hipervnculo le
lleva inmediatamente dondequiera que el hipervnculo seale.

Los hipervnculos en cuadernos trabajan bastante bien como los botones discutidos
en la seccin anterior. Y de nuevo, todos los aspectos de hipervnculos son
programables.
De hecho, es posible crear texto activo en cuadernos que permita realizar casi
cualquier tipo de accin.
34

4.5. Acceso a la ayuda en una interfase de cuaderno


En la mayora de las versiones de interfase de cuaderno de Mathematica, el men
Help (ayuda) le da acceso al Help Browser (navegador de ayuda), el cual sirve
como un punto de entrada a la gran cantidad de documentacin en lnea para
Mathematica.
Getting Started
Built-in Functions
The Mathematica Book
Master Index

un inicio rpido en el uso de Mathematica


informacin sobre todas las funciones
incorporadas en Mathematica
el libro completo en lnea
ndice de todo el material documentado en
lnea

Tpicos tipos de ayuda disponibles en la Interfase de notebook.

Un ejemplo de buscar la informacin bsica sobre una funcin en el Help


Browser de Mathematica.

35

4.6. Acceso a la ayuda en una interfase basada en texto


?Name
??Name
?Aaaa

muestra informacin sobre Name


muestra informacin adicional sobre Name
muestra informacin sobre todos los objetos
cuyos nombres empiezan con Aaaa

Formas de recibir informacin directamente desde el kernel de Mathematica.

Esto da informacin de la funcin incorporada Log.

Usted puede preguntar por informacin acerca de cualquier objeto, si es


incorporado en Mathematica, ha sido ledo en un paquete de Mathematica o ha
sido introducido por usted.
Cuando utiliza ? para conseguir la informacin, debe cerciorarse de que el signo
de interrogacin aparezca como el primer carcter en su lnea de entrada. Debe
hacer esto de modo que Mathematica sepa cundo usted est solicitando
informacin y no est dando una entrada ordinaria para ser evaluada.
Vale mencionar que junto con la informacin brindaba aparece un hipervnculo en
color azul con la palabra More. Haciendo clic sobre este hipervnculo Mathematica
nos lleva directamente a la informacin de la misma en el Help Browser.
Puede conseguir informacin adicional usando ??.

?Aaaa le dar la informacin de un objeto en particular cuyo nombre especifique.


Usando el caracter *, sin embargo, usted puede obtener informacin sobre todos
36

los objetos con nombres similares. As pues, por ejemplo ?Lo* brinda informacin
sobre todos los objetos cuyos nombres contengan las letras Lo, seguidas por
cualquier cadena de caracteres.
Esto da informacin sobre todos los objetos de Mathematica cuyos nombres
comiencen con Lo. Cuando hay ms de un objeto, Mathematica enumera
sus nombres como hipervnculos y haciendo clic sobre ellos es posible
obtener informacin.

Haciendo clic en Log de la lista anterior se obtiene la respectiva


informacin.

Usted puede poner * en cualquier lugar de la cadena que ingresa iniciada con ?.
Por ejemplo, ?*Expand le dara todos los objetos cuyos nombres terminan en
Expand. De manera similar ?P*d le dara los objetos cuyos nombres comienzan
con P, terminan con d, y tienen cualquier cadena de caracteres intermedios. (Note
que la manera en que se utiliza * para especificar nombres en Mathematica es
similar a la manera que se utiliza * en Unix y otros sistemas operativos para
especificar nombres del archivos.)
37

Usted puede pedir la informacin sobre la mayor parte de las formas


especiales de entrada que Mathematica utiliza. Esto pide la informacin
acerca del operador :=.

4.7. Paquetes en Mathematica


Una de las caractersticas ms importantes de Mathematica es que es un sistema
extensible. Hay una cierta cantidad de funciones incorporadas en Mathematica.
Pero usando el lenguaje de programacin de Mathematica, siempre es posible
aadir ms funciones.
Para muchos tipos de clculos, lo incorporado en la versin estndar de
Mathematica ser suficiente. Sin embargo, si usted trabaja en particular en un rea
especializada, puede encontrarse en la necesidad de utilizar ciertas funciones no
incorporadas en Mathematica.
En tales casos, usted podra encontrar un package (paquete) de Mathematica que
contiene las funciones que usted necesita. Los paquetes de Mathematica son
archivos escritos en el lenguaje de programacin de Mathematica. Los mismos
consisten en colecciones de definiciones hechas en Mathematica las cuales se
aplican a reas particulares.
<< paquete

lee un paquete de Mathematica

Leyendo paquetes de Mathematica.

Si usted quiere usar las funciones de un paquete en particular, primero debe leer el
paquete en Mathematica. Los detalles de como hacer esto se discuten en la seccin
12. Hay varias convenciones que gobiernan los nombres que usted usar para
referirse a los paquetes.
Este comando lee un paquete en particular de Mathematica.
<<LinearAlgebra`Orthogonalization`
38

La funcin GramSchmidt est definida en el paquete.


GramSchmidt[{{1, 2}, {-7, 0}}]

Hay varias sutilezas asociadas a estas cosas como los conflictos entre los nombres
de las funciones en los diferentes paquetes. Un punto importante que no debe
olvidar es que usted no debe referirse a una funcin que leer desde un paquete
antes de leerla realmente en el paquete. Si usted hace esto por equivocacin, deber
ejecutar el comando Remove[name] para librarse de la definicin de la funcin
que usted hizo antes de leer el paquete. Si usted no usa Remove, Mathematica
usar su versin de la funcin, en lugar de la del paquete.
Remove[name]

remueve una funcin que ha sido introducida


por error

Asegurndose que Mathematica use las definiciones correctas de los paquetes.

El hecho de que Mathematica pueda extenderse usando paquetes significa que las
partes de Mathematica son ilimitadas. En lo que al uso concierne, no hay en
realidad ninguna diferencia entre las funciones definidas en paquetes y las
funciones incorporadas en Mathematica.
De hecho, un nmero determinado de las funciones descritas en este libro se
ejecutan como paquetes de Mathematica. Sin embargo, en la mayora de los
sistemas de Mathematica, se han cargado los paquetes necesarios, de modo que las
funciones que ellos definen estn siempre presentes.
Usted puede utilizar el Help Browser para obtener informacin sobre los paquetes
estndares de Mathematica. Para ello seleccione la tarjeta Add-ons & Links del
mismo.

4.8. Advertencias y mensajes


Mathematica sigue su trabajo silenciosamente, dando salida solamente cuando ha
acabado de hacer de los clculos que usted pidi.
Sin embargo, si Mathematica se percata de algo que usted esta haciendo y que
definitivamente no entiende, imprimir un mensaje para advertirle.

39

La funcin de la raz cuadrada debe tener solamente un argumento.


Mathematica imprime un mensaje para advertirle que usted ha dado dos
argumento aqu.
Sqrt[4, 5]
Sqrt::argx :

Sqrt called with 2 arguments; 1 argument is expected.

Sqrt[4, 5]
Cada mensaje tiene un nombre. Usted puede apagar mensajes usando Off.
Off[Sqrt::argx]
El mensaje Sqrt::argx ahora se ha apagado, y no volver a aparecer.
Off[Sqrt::argx]
Esto vuelve a encender Sqrt::argx otra vez.
On[Sqrt::argx]
Off[Funcin::etiqueta]
On[Funcin::etiqueta]

apaga (suprime) un mensaje


enciende un mensaje

Funciones para controla la salida de un mensaje.

4.9. Interrupcin de clculos


Probablemente habr veces en que desee detener Mathematica en medio de un
clculo. Tal vez usted se da cuenta que pidi a Mathematica hacer un clculo
incorrecto. O quizs el clculo tarda demasiado, y usted quiere saber que es lo que
pasa.
La forma en que usted interrumpe un clculo en Mathematica depende de qu clase
de interfase est utilizando.
<Alt>+<,>
<Control>+<c>

interfase de cuaderno
interfase basada en texto

Combinaciones de teclas para interrumpir clculos en Mathematica.

En algunos sistemas informticos, puede tomar a Mathematica un cierto tiempo


para responder a su interrupcin. Cuando Mathematica responde, le dar un men
de cosas posibles para hacer.
40

continue
show
inspect
abort
exit

continuar el clculo
mostrar que est haciendo Mathematica
examinar el estado actual de su clculo
abortar este clculo en particular
salir de Mathematica completamente

Algunas opciones disponibles cuando usted interrumpe un clculo en Mathematica.

5. Clculos algebraicos
5.1. Clculo simblico
Una de las caractersticas importantes de Mathematica es que puede hacer clculos
simblicos y numricos. Esto significa que puede manejar frmulas algebraicas as
como nmeros.
He aqu un tpico clculo numrico.
4 + 36 - 1
39
Este es un clculo simblico.
7 x 3 x + 6
6 + 4x
Clculo numrico
Clculo simblico

4 + 36 - 1 39
7x - 3x + 6 6 + 4x

Clculo simblico y numrico.

Usted puede digitar cualquier expresin algebraica en Mathematica.


-1 + 2 x + x^3
-1 + 2x + x3
Mathematica realiza automticamente simplificaciones algebraicas bsicas.
Aqu combina a x 2 y a 4 x 2 para dar 3 x 2 .
x^2 + x - 4x^2
x 3x2

41

Usted puede digitar cualquier expresin algebraica, usando a los operadores


enumerados en la seccin 2.1. Puede utilizar espacios para denotar la
multiplicacin. Tenga cuidado de no olvidarse del espacio en x y . Si usted digita
xy sin espacio, Mathematica interpretar esto como solo smbolo, con el nombre
xy, no como un producto de dos smbolos x y y.
Mathematica reordena y combina trminos usando las reglas estndares del
lgebra.
x y + 2 x^2 y + y^2 x^2 - 2 y x
-xy + 2x2y + x2y2
He aqu otra expresin algebraica.
(x + 2 y + 1)(x - 2)^2
(-2 + x)2(1 + x + 2y)
La funcin Expand ampla productos y potencias.
Expand[%]
4 3x2 + x3 + 8y 8xy + 2x2y
Factor hace lo inverso de Expand.
Factor[%]
4 3x2 + x3 + 8y 8xy + 2x2y
Cuando digita expresiones complicadas, es importante que ponga los parntesis en
los lugares correctos. As, por ejemplo, debe dar la expresin x 4 y en la forma
x^(4y). Si deja abiertos los parntesis, se interpretar como x 4 y .
He aqu una frmula ms complicada, que requiere de varios parntesis.
Sqrt[2]/9801 (4n)! (1103 + 26390 n) / (n!^4 + 1)

Cuando usted digita una expresin, Mathematica aplica automticamente su gran


repertorio de reglas para transformar las expresiones. Estas reglas incluyen las
reglas estndares del lgebra, tales como x x = 0 , junto con reglas mucho ms
sofisticadas.

42

Mathematica utiliza reglas estndares del lgebra para sustituir ( 1 + x ) 4


por (1 + x) 2 .
Sqrt[1 + x]^4
(1 + x)2
Mathematica no conoce ninguna regla para esta expresin, as que deja
expresin en la forma original que usted le dio.
Log[1 + Cos[x]]
Log[1 + Cos[x]]
La nocin de reglas de transformacin es muy general. De hecho, usted puede
pensar en Mathematica como un simple sistema que aplica una coleccin de reglas
de transformacin a diferentes clases de expresiones.
El principio general que Mathematica sigue es simple de explicar. Toma cualquier
expresin que usted introduce, y obtiene resultados aplicando una sucesin de
reglas de transformacin, detenindose cuando no hay ms reglas de
transformacin que aplicar.
Tome cualquier expresin, y aplique reglas de transformacin hasta que el
resultado no cambie ms.
El principio fundamental Mathematica.

5.2. Valores para smbolos


Cuando Mathematica transforma una expresin por ejemplo x + x en 2x, est
tratando la variable x en forma puramente simblica o formal. En tales casos, x es
un smbolo que puede representar cualquier expresin.
A menudo, sin embargo, usted necesita sustituir un smbolo como x por un valor
determinado. Algunas veces este valor ser un nmero; aunque frecuentemente
ser una expresin.
Para sustituir el smbolo x, que aparece en la expresin 1 + 2 x, con un valor
determinado; puede crear una regla de la transformacin en Mathematica, y
despus aplicar esta regla a la expresin. Para sustituir x por el valor 3, usted
creara la regla de transformacin x->3. Debe digitar -> como un par de
43

caracteres, sin espacio entre ellos. Puede interpretar x->3 como una regla en la
cual x ser sustituido por 3.
Para aplicar una regla de transformacin a una expresin particular de
Mathematica, usted digita expr/.regla. El operador de reemplazo /. se
digita como un par de caracteres, sin espacio entre ellos.
Esto utiliza la regla de transformacin x->3 en la expresin 1 + 2 x .
1 + 2x /. x -> 3
7
Usted puede sustituir x por cualquier expresin. Aqu cada ocurrencia de x
es sustituida por 2 - y .
1 + x + x^2 /. x -> 2 - y
3 + (2 - y)2 - y
He aqu una regla de transformacin. Mathematica la trata como cualquier
otra expresin simblica.
x -> 3 + y
x 3 + y
Esto aplica la regla de transformacin ltima a la expresin x ^ 2 - 9 .
x^2 - 9 /. %
- 9 + (3 + y)2
expr /. x -> valor
expr /. {x -> xval, y -> yval}

reemplaza x por valor en la expresin exp


realiza varios reemplazos

Sustitucin de smbolos por valores en expresiones.

Usted puede aplicar reglas juntas poniendo las reglas en una lista.
(x + y) (x - y)^2 /. {x -> 3, y -> 1 - a}
(4 - a) (2 + a)2
El operador de reemplazo /. le permite aplicar reglas de la transformacin a una
expresin particular. A veces, sin embargo, usted querr definir reglas de
transformacin que se apliquen siempre. Por ejemplo, puede ser que desee sustituir
x por 3 siempre que aparezca x.
44

Segn lo discutido en la seccin 3.2, usted puede hacer esto asignando el valor 3 a
x usando x = 3 . Una vez que haya hecho la asignacin x = 3 , x siempre ser
sustituido siempre por 3, cuando aparezca.
Esto asigna el valor de 3 a x.
x = 3
3
Ahora x ser sustituido automticamente por 3 dondequiera que aparezca.
x^2 - 1
8
Esto asigna la expresin 1 + a a x.
x = 1 + a
1 + a
Ahora x es reemplazado por 1 + a .
x^2 - 1
-1 + (1 + a)2
Usted puede definir como valor de un smbolo a cualquier expresin, no solamente
a un nmero. Recuerde que una vez que haya dado tal definicin, sta continuar
siendo utilizada siempre que aparezca el smbolo, hasta que la cambie o quite
explcitamente. Para la mayora de usuarios, el olvidarse quitar valores que han
asignado a los smbolos es la causa ms comn de errores al usar Mathematica.
x = valor
x=.

define un valor para x que ser utilizado


siempre
remueve cualquier valor definido para x

Asignando valores a smbolos.

El smbolo x todava tiene el valor que le asign arriba.


x + 5 - 2x
6 + a - 2(1 + a)
Esto quita el valor que asign a x.
x =.
45

Ahora x no tiene ningn valor definido, as que puede ser utilizado como
variable puramente simblica.
x + 5 - 2x
5 - x
Los lenguajes de programacin tradicionales que no soportan el clculo simblico
permiten que las variables sean utilizadas solamente como nombres para objetos,
tpicamente nmeros, que se han asignado como valores para ellos. En
Mathematica, sin embargo, x se puede tambin tratar como variable puramente
formal, a la cual se le puede aplicar varias reglas de transformacin. Por supuesto,
si usted da explcitamente una definicin, por ejemplo x = 3 , entonces x ser
sustituida siempre por 3, y no sirve ms como variable formal.
Debe recordar que las definiciones explcitas por ejemplo x = 3 tienen un efecto
global. Por otra parte, un reemplazo tal como exp / . x - > 3 afecta solamente a la
expresin especfica expr.
Puede mezclar siempre reemplazos con asignaciones. Con asignaciones, puede dar
nombres a las expresiones en las cuales desea hacer reemplazos, o a las reglas que
usted desea utilizar para hacer los reemplazos.
Esto asigna un valor al smbolo t.
t = 1 + x^2
1 + x2
Esto encuentra el valor de t, y despus sustituye x por 2 en l.
t /. x -> 2
5
Esto encuentra el valor de t para un valor diferente de x.
t /. x -> 5a
1 + 25 a2
Esto encuentra el valor de t cuando x es sustituido por Pi, y luego evala
el resultado numricamente.
t /. x -> Pi //N
10.8696

46

5.3. Transformacin de expresiones algebraicas


A menudo hay muchas formas diferentes de escribir la misma expresin algebraica. Como un ejemplo, la expresin (1 + x) 2 puede ser escrita como
1 + 2 x + x 2 . Mathematica proporciona una gran coleccin de funciones para hacer
conversiones entre las diferentes formas de expresiones algebraicas.

Expand[expr]
Factor[expr]

desarrolla productos y potencias, escribiendo


el resultado como suma de trminos
escribe expr como un producto de factores
mnimos

Dos funciones comunes para transformar expresiones algebraicas.

Expand da la forma expandida, con los productos y las potencias


desarrolladas.
Expand[ (1 + x)^2 ]
1 + 2 x + x2
Factor recupera la forma original.
Factor[ % ]
(1 + x)2
Es fcil generar expresiones complicadas con Expand.
Expand[ (1 + x + 3 y)^4 ]

Factor a menudo le da expresiones ms simples.


Factor[ % ]
(1 + x + 3 y)4
Hay algunos casos, no obstante, donde Factor puede darle expresiones
ms complicadas.
Factor[ x^10 - 1 ]

47

En este caso, Expand da la forma ms simple.


Expand[ % ]
-1 + x10

5.4. Simplificacin de expresiones algebraicas


En muchas situaciones usted desea escribir una expresin algebraica en la forma
ms simple posible. Aunque sea difcil saber exactamente lo que se entiende por la
forma ms simple, un procedimiento prctico que vale la pena seguir es analizar
varias formas diferentes de una expresin, y elegir la de menor nmero de partes.
Simplify[expr]
FullSimplify[expr]

intenta encontrar la forma ms simple de


expr aplicando varias transformaciones
algebraicas estndares
intente encontrar la forma ms simple
aplicando una amplia gama de
transformaciones

Simplificacin de expresiones algebraicas.

Simplify escribe x 2 + 2 x + 1 en forma factorizada.


Simplify[x^2 + 2x + 1]
(1 + x)2
Simplify deja a x10 1 en forma expandida, puesto que para esta
expresin, la forma descompuesta en factores es ms grande.
Simplify[x^10 - 1]
-1 + x10
Usted puede utilizar a menudo Simplify para mejorar expresiones
complicadas que obtiene como resultado de clculos.
He aqu la integral de 1 /( x 4 1) .
Integrate[1/(x^4 - 1), x]

48

Al derivar el ltimo resultado deberamos volver a la expresin original. En


este caso, como es comn, se obtiene una versin ms complicada de la
expresin original.
D[%, x]

Simplify permite volver a la forma original de la expresin


Simplify[%]

Simplify se usa para aplicar varias transformaciones algebraicas estndares a las


expresiones que usted ingresa. A veces, sin embargo, puede usar transformaciones
ms sofisticadas para poder encontrar la forma ms simple de una expresin.
FullSimplify aplica una gama mucho ms amplia de transformaciones,
incluyendo no solamente funciones algebraicas, sino tambin muchas otras clases
de funciones.
Simplify no altera esta expresin.
Simplify[Gamma[x] Gamma[1 - x]]
Gamma[1 x] Gamma[x]
FullSimplify, sin embargo, consigue simplificarla.
FullSimplify[Gamma[x] Gamma[1 - x]]
Csc[x]
Para expresiones muy pequeas, FullSimplify a menudo permitir obtener
algunas simplificaciones notables. Pero para expresiones grandes, puede llegar a
ser considerablemente lento. La razn de esto es que para hacer su trabajo,
FullSimplify tiene que tratar de combinar cada parte de una expresin con otra, y
para expresiones grandes el nmero de casos que debe considerar puede ser
astronmicamente grande.
Simplify tambin tiene una tarea difcil de hacer, pero evita algunas de las
transformaciones que demandan ms tiempo y que son utilizadas por
FullSimplify. Para los clculos algebraicos simples, por lo tanto, resulta
conveniente aplicar Simplify a sus resultados.
49

En clculos ms complicados, sin embargo, incluso Simplify puede ser que


necesite probar con un nmero muy grande de diversas formas, y por lo tanto tome
un largo tiempo. En tales casos, necesita hacer una simplificacin controlada, y
utilizar su conocimiento de manera que usted gue el proceso.

5.5. Puesta de expresiones en diferentes formas


Las expresiones algebraicas complicadas se pueden escribir generalmente en varias
maneras. Mathematica proporciona una variedad de funciones para convertir
expresiones de una forma a otra. Las ms comunes de estas funciones son
Expand, Factor y Simplify. Sin embargo, cuando usted tiene expresiones
racionales que contienen cocientes, puede ser que necesite utilizar otras funciones.
Expand[expr]
ExpandAll[expr]
Factor[expr]
Together[expr]
Apart[expr]
Cancel[expr]
Simplify[expr]

desarrolla productos y potencias, escribiendo


aplica Expand por todas partes
reduce a producto de factores
pone todos los trminos sobre un comn
denominador
separa en trminos con denominadores
simples
cancela factores comunes entre numeradores
y denominadores
aplica un conjunto de transformaciones
algebraicas y da la forma ms pequea de
expr encontrada

Funciones para transformar expresiones algebraicas.

He aqu una expresin racional que puede ser escrita en varias formas
diferentes.
e = (x - 1)^2 (2 + x) / ((1 + x) (x - 3)^2)

Expand expande el numerador, pero deja el denominador en forma


factorizada.
Expand[e]

50

ExpandAll expande todo, incluyendo el denominador.


ExpandAll[e]

Apart separa la expresin en trminos con denominadores simples.


Apart[%]

Factor factoriza todo, en este caso reproduce la forma original.


Factor[%]

Segn Simplify, esta es la forma ms simple de escribir la expresin


original.
Simplify[e]

Conseguir expresiones en la forma que uno desea se convierte en todo un arte. En


la mayora de los casos, es mejor simplemente experimentar, intentando diversas
transformaciones hasta que se consiga lo que se desea.
Cuando tenga una expresin con una sola variable, puede elegir escribirla como
una suma de trminos, un producto, etctera. Si tiene una expresin con varias
variables, hay una coleccin ms amplia de posibles formas. Usted puede, por
ejemplo, elegir agrupar trminos en una expresin de modo que una u otra de las
variables sea dominante.
Collect[expr, x]
FactorTerms[expr, x]

agrupa juntas todos las potencias de x


extrae los factores que no dependen de x

Reordenamiento de expresiones en varias variables.

He aqu una expresin algebraica en dos variables.


v = Expand[(3 + 2 x)^2 (x + 2 y)^2]
51

Esto agrupa los trminos de v afectados por la misma potencia de x.


Collect[v, x]

Esto agrupa juntas las potencias de y.


Collect[v, y]

Uno de estos factores no depende de y.


FactorTerms[v, y]
Como hemos visto, cuando usted se limita a expresiones polinmicas racionales,
hay muchas formas de escribir cualquier expresin particular. Si considera
expresiones ms complicadas, que incluyan, por ejemplo, funciones matemticas
trascendentes, la variedad de formas posibles llega a ser mayor. Por consiguiente,
es imposible tener una funcin incorporada especfica en Mathematica para
producir cada forma posible. Ms bien Mathematica le permite construir sistemas
arbitrarios de reglas de transformacin para hacer diversas conversiones. Sin
embargo hay algunas funciones incorporadas adicionales de Mathematica para
transformar expresiones.
TrigExpand[expr]
TrigFactor[expr]
TrigReduce[expr]
TrigToExp[expr]
ExpToTrig [expr]
FunctionExpand[expr]
ComplexExpand[expr]
PowerExpand[expr]

expande expresiones trigonomtricas en una


suma de trminos
factoriza expresiones trigonomtricas en
productos de trminos
reduce expresiones trigonomtricas usando
ngulos mltiples
convierte funciones trigonomtricas a
exponenciales
convierte funciones exponenciales a
trigonomtricas
expande funciones especiales y otras
realiza expansiones asumiendo que todas las
variables son reales
transforma ( x y ) p en x p y p , etc.

Algunas funciones ms para transformar expresiones.

52

Esto expande la expresin trigonomtrica, escribindola de modo que todas


las funciones tengan argumento x.
TrigExpand[Tan[x] Cos[2x]]

Esto utiliza identidades trigonomtricas para factorizar la expresin.


TrigFactor[%]

Esto reduce la expresin usando ngulos mltiples.


TrigReduce[%]

Esto expande el seno asumiendo que x e y son reales.


ComplexExpand[ Sin[x + I y] ]

Esto hace la extensin asumiendo que x e y son complejos.


ComplexExpand[ Sin[x + I y], {x, y} ]

Las transformaciones a expresiones hechas por funciones como Expand y


Factor siempre son correctas, independientemente del valor que puedan tener las
variables simblicas en las expresiones. A veces, sin embargo, es til realizar
transformaciones que slo son correctas para algunos posibles valores de las
variables simblicas. Una transformacin como esta la realiza PowerExpand.
Mathematica no expande automticamente potencias no enteras de
productos.
Sqrt[x y]

PowerExpand hace la expansin.


PowerExpand[%]
53

He aqu otro ejemplo.


Sqrt[a^2]//PowerExpand
a

5.6. Simplificacin con asunciones


Simplify[expr, asun]

simplifica exp son asunciones

Simplificacin con asunciones.

Mathematica no simplifica esto automticamente, puesto que es solamente


verdad para algunos valores de x.
Simplify[Sqrt[x^2]]

x 2 es igual a x para x 0 , pero no en otro caso.

{Sqrt[4^2], Sqrt[(-4)^2]}
{4, 4}
Esto le dice a Simplify que haga la asuncin x>0, de modo que la
simplificacin pueda proceder.
Simplify[Sqrt[x^2], x > 0]
x
Ninguna simplificacin automtica se puede hacer en esta expresin.
2 a + 2 Sqrt[a - Sqrt[-b]] Sqrt[a + Sqrt[-b]]

Si a y b son asumidos positivos, la expresin puede sin embargo ser


simplificada.
Simplify[%, a > 0 && b > 0]

He aqu un ejemplo simple que involucra funciones trigonomtricas.


Simplify[ArcSin[Sin[x]], -Pi/2 < x < Pi/2]
x
54

Element[x,dom]
Element[{x1,x2,...},dom]
Reals
Integers
Primes

indica que x es un elemento del dominio


dom
indica que todos los xi son elementos del
dominio dom
nmeros reales
enteros
nmeros primos

Algunos dominios usados en asunciones.

Esto simplifica

x 2 asumiendo que x es un nmero real.

Simplify[Sqrt[x^2],
Element[x, Reals]]
Abs[x]
Esto simplifica el seno asumiendo que n es un entero.
Simplify[Sin[x + 2 n Pi],
Element[n, Integers]]
Sin[x]
Con las asunciones dadas, puede ser utilizado el Pequeo Teorema de
Fermat.
Simplify[Mod[a^p, p], Element[a, Integers] &&
Element[p, Primes]]
Mod[a,p]
Esto utiliza el hecho de que sin(x) , pero no arcsin(x ) , es real cuando x es
real.
Simplify[Re[{Sin[x], ArcSin[x]}],
Element[x, Reals]]
{Sin[x],Re[ArcSin[x]]}

5.7. Seleccionar partes de Expresiones Algebraicas


Coefficient[expr,form]
Exponent[expr,form]
Part[expr,n] or exp[[n]]

coeficiente de form en expr


mxima potencia de form en expr
n-simo trmino de expr

Funciones para seleccionar partes de polinomios.

55

He aqu una expresin algebraica.


e = Expand[(1 + 3x + 4y^2)^2]

Esto da el coeficiente de x en e.
Coefficient[e, x]

Exponent[expr,y] da la mayor potencia de de y que aparece en expr.


Exponent[e, y]
4
Esto da trmino en e.
Part[e, 4]
Usted puede notar que la funcin Part[expr, n] usada para seleccionar el
n-simo trmino en una suma es igual que la funcin descrita en la seccin 3.4 para
seleccionar elementos en listas. sta no es ninguna coincidencia. En efecto, segn
lo discutido en la seccin 3.5, cada expresin de Mathematica se puede manipular
estructuralmente como una lista. Sin embargo, segn lo discutido en la seccin 3.5,
debe tener cuidado, porque Mathematica muestra a menudo expresiones
algebraicas en una forma diferente a como las trata internamente.
Coefficient trabaja incluso con polinomios que no estn explcitamente
expandidos.
Coefficient[(1 + 3x + 4y^2)^2, x]

Numerator[expr]
Denominator[expr]

numerador de expr
denominador de expr

Funciones para seleccionar partes de expresiones racionales.

He aqu una expresin racional.


r = (1 + x)/(2 (2 - y))

56

Denominator selecciona el denominador.


Denominator[%]

Denominator da 1 para las expresiones que no son cocientes.


Denominator[1/x + 2/y]
1

5.8. Controlar la presentacin de expresiones grandes


Cuando usted hace clculos simblicos, es muy fcil encontrarse con expresiones
extremadamente complicadas. A menudo, incluso no desear ver el resultado
completo de un clculo.
Si termina su entrada con un punto y coma, Mathematica har el clculo que pidi,
pero no mostrar el resultado. Puede sin embargo utilizar % o Out[n] para
referirse al resultado.
Aunque no desee ver el resultado completo de un clculo, a menudo necesita ver su
forma bsica. Puede utilizar Short para presentar la salida de una expresin,
omitiendo algunos de los trminos.
Terminar su entrada con ; impide a Mathematica mostrar el resultado
complicado de un clculo.
Expand[(x + 5 y + 10)^8] ;
Usted puede referirse al resultado como %. //Short muestra el resultado
en una lnea. <<n>> indica los n trminos que no se han mostrado.
% //Short

Esto muestra una versin de tres lneas de la expresin. Ms partes son


visibles ahora.
Short[%, 3]

57

Esto da el nmero total de trminos en la suma.


Length[%]
45
comando;
expr//Short
Short[expr,n]

ejecuta comando pero no imprime el


resultado
muestra expr en una sola lnea
muestra expr en n lneas

Algunas formas de acortar su salida.

5.9. Las limitaciones de Mathematica


En slo un comando de Mathematica, usted puede especificar fcilmente un
clculo que sea demasiado complicado de hacer para cualquier ordenador. Por
ejemplo, usted podra pedir Expand[(1+x)^(10^100)]. El resultado de este
clculo tendra ms trminos que el nmero total de partculas en el universo.
Usted no tendra ningn problema para resolver Expand[(1+x)^100] en
cualquier ordenador que pueda utilizar Mathematica. Pero cuando usted aumenta el
exponente de (1+x), los resultados que consigue tarde o temprano se harn
demasiado grandes de almacenar para la memoria de su ordenador. Exactamente en
qu punto sucede esto depende no solamente de la cantidad total de memoria que
su computadora tiene, sino a menudo tambin de detalles tales como qu otros
trabajos esta realizando su computadora cuando usted intenta hacer su clculo.
Si su ordenador realmente se queda sin memoria en medio de un clculo, la mayor
parte de versiones de Mathematica no tienen ninguna otra opcin, ms que pararse
inmediatamente. Por consiguiente, es importante planificar sus clculos de modo
que ellos nunca necesiten ms memoria de la que su ordenador tiene.
Incluso si el resultado de un clculo algebraico es absolutamente simple, las
expresiones intermedias que usted genera en el curso del clculo pueden ser muy
complicadas. Esto significa que incluso si el resultado final es pequeo, las partes
intermedias de un clculo pueden ser demasiado grandes de manejar para su
ordenador. Si esto sucede, puede particionar su clculo, y resolver exitosamente
cada parte del mismo. Usted debe saber que el esquema interno que Mathematica
usa para direccionar la memoria es tal que cuando la parte de un clculo es
terminada, la memoria que se usaba para almacenar las expresiones intermedias
que surgen inmediatamente es hecha disponible para nuevas expresiones.
58

El espacio de memoria es el factor restrictivo ms comn en los clculos con


Mathematica. El tiempo tambin, sin embargo, puede ser un factor restrictivo.
Usted por lo general esta preparado para esperar un segundo, o an un minuto, para
obtener el resultado de un clculo. Pero no lo esta para esperar una hora o un da, y
casi nunca ser capaz de esperar un ao.
El cdigo interno de Mathematica usa algoritmos sumamente eficientes y
optimizados. Pero hay algunas tareas para las cuales los mejores algoritmos
conocidos siempre tarde o temprano toman una gran cantidad de tiempo. Una
cuestin tpica es que el tiempo requerido por el algoritmo puede aumentar casi
exponencialmente con el tamao de la entrada. Un caso clsico es la factorizacin
de nmeros enterosdonde los mejores algoritmos conocidos requieren tiempos
que crecen casi de manera exponencial con el nmero de dgitos. En la prctica,
usted encontrar que FactorInteger[k] dar un resultado casi inmediato
cundo k tiene menos de aproximadamente 40 dgitos. Pero si k tiene 60 dgitos,
FactorInteger[k] puede comenzar a tomar un tiempo inmanejablemente
largo.
En algunos casos, hay mejora progresiva de los algoritmos que se conocen, de
modo que las versiones sucesivas de Mathematica puedan realizar clculos
particulares cada vez ms rpidos. Pero las ideas de la teora de cmputo sugieren
que muchos cmputos siempre requerirn una cantidad irreducible de trabajo
computacionalde modo que ningn algoritmo ms rpido sea encontrado alguna
vez para ellos.
Hacer aritmtica con los nmeros que contienen algunos cientos millones de
dgitos.
Generar un milln de dgitos de nmeros como y e .
Expandir un polinomio que da un milln de trminos.
Factorizar un polinomio en cuatro variables con unos cien mil trminos.
Reducir un sistema de desigualdades cuadrticas para unos miles de
componentes independientes.
Encontrar las races enteras de un polinomio con grado un milln.
Aplicacin de una regla recurrente un milln de veces.
Clculo de todos los primos hasta diez millones.
Encontrar la inversa numrica de una matriz de 10001000.
Solucin de un sistema lineal de un milln de variables con cien mil
coeficientes no ceros.
Encontrar el determinante de una matriz entera de 250250.
Encontrar el determinante de una matriz simblica de 2020.
59

Encontrar las races numricas de un polinomio de grado 200.


Solucin de un problema de programacin lineal con cien mil variables.
Encontrar la trasformada de Fourier de una lista con cien millones de
elementos.
Representacin de milln de grficos primitivos.
Clasificar una lista de diez millones de elementos.
Buscar una cadena que tiene diez millones de caracteres.
Importacin de unos diez megabytes de datos numricos.
Formatear unas cien de pginas con salida TraditionalForm.
Algunas operaciones que tpicamente toman algunos segundos en una PC 2004.

5.10. Uso de smbolos para etiquetar objetos


Hay muchas maneras de utilizar smbolos en Mathematica. Hasta ahora, nos
hemos concentrado en usar smbolos para almacenar valores y para representar
variables matemticas. Esta seccin describe otra manera de utilizar smbolos en
Mathematica.
La idea es utilizar smbolos como etiquetas para diversos tipos de objetos.
Trabajar con unidades fsicas da un ejemplo simple. Cuando usted especifica la
longitud de un objeto, desea dar no solamente un nmero, sino tambin las
unidades en las cuales se mide la longitud. En la notacin estndar, puede ser que
escriba una longitud como 12 metros.
Usted puede imitar esta notacin casi directamente en Mathematica. Puede por
ejemplo utilizar simplemente un smbolo metros para indicar las unidades de
nuestra medida.
El smbolo metros aqu acta como etiqueta, la cual indica las unidades
usadas.
12 metros
12 metros
Usted puede aadir longitudes como en este caso.
% + 5.3 metros
17.3 metros
60

Esto da una velocidad.


% / (25 segundos)

Esto convierte a una velocidad en pies por segundo.


% /. metros -> 3.28084 pies

Hay de hecho un paquete estndar de Mathematica que le permite para trabajar con
unidades. El paquete define muchos smbolos que representan los tipos estndar de
unidades
Cargue el paquete de Mathematica para manejar unidades.
<<Miscellaneous`Units`
EL paquete usa nombres estandarizados para unidades.
12 Meter/Second

La funcin Convert[expr,units] convierte a unidades especificadas.


Convert[ %, Mile/Hour ]

Por lo general usted tiene que dar los prefijos para unidades como palabras
separadas.
Convert[ 3 Kilo Meter / Hour, Inch / Minute ]

Esto convierte la temperatura. Convert slo convierte las unidades de


temperatura.
ConvertTemperature[20, Fahrenheit, Centigrade]

61

6. Matemticas simblicas
6.1. Operaciones bsicas
La capacidad de Mathematica de tratar con expresiones simblicas, as como
nmeros, le permite usarlo para muchas clases de matemticas.
El clculo es un ejemplo. Con Mathematica, usted puede diferenciar una expresin
simblicamente, y conseguir una frmula para el resultado.
Esto encuentra la derivada de x n .
D[ x^n, x ]

He aqu un ejemplo ligeramente ms complicado.


D[x^2 Log[x + a], x]

D[f,x]

la derivada (parcial)

f
x

Integrate[f,x]

la integral indefinida

fdx

Sum[f,{i,imin,imax}]

la suma

i=i

imax

min

Limit[f,x->x0]

solucin para una ecuacin en x


una expansin de f en series de potencies
alrededor del punto x = x0
el lmite lim f

Minimize[f,x]

minimizacin de f con respecto a x

Solve[lhs==rhs,x]
Series[f,{x,x0,orden}]

x x0

Algunas operaciones matemticas simblicas.

Obtener frmulas como resultado de cmputos es generalmente deseable cuando es


posible. Hay sin embargo muchas circunstancias donde es matemticamente
imposible conseguir una frmula explcita como resultado de un cmputo. Esto
sucede, por ejemplo, cuando intenta solucionar una ecuacin para la cual no hay
solucin de forma cerrada. En tales casos, debe recurrir a mtodos y
aproximaciones numricas. stos se discuten en la seccin 7.
62

6.2. Diferenciacin
He aqu la derivada x n con respecto a x .
D[ x^n, x ]

Mathematica conoce las derivadas de todas las funciones matemticas


estndar.
D[ ArcTan[x], x ]

La tercera derivada con respecto a x .


D[ x^n, {x, 3} ]
La funcin D[x^n,x] realmente da la derivada parcial, en la cual se asume que n
no depende x. Mathematica tiene otra funcin, llamada Dt, que encuentra
derivadas totales, en la cual todas las derivadas se asumen relacionadas. En
f
df
, mientras Dt[f,x] es como
.
notacin matemtica, D[f,x] es como
x
dx
Puede entenderse Dt como la derivada total.
Dt da una derivada total, asumiendo que n puede depender de x. Dt[n,x]
dn
representa
.
dx
Dt[ x^n, x ]

Esto da la diferencial total d ( x n ) . Dt[x] es el diferencial dx .


Dt[ x^n ]

63

D[f,x]
D[f,x1,x2,...]
D[f,{x,n}]
Dt[f]
Dt[f,x]

f
x

derivada mltiple
Kf
x1 x 2

derivada parcial

derivada repetida

n f

x n
diferencial total d f
d
derivada total
f
dx

Algunas funciones de diferenciacin.

As como trata variables simblicamente, usted tambin puede tratar funciones


simblicamente en Mathematica. As, por ejemplo, puede encontrar frmulas para
las derivadas de f[x], sin especificar una forma explcita para la funcin f.
Mathematica no sabe como diferenciar f, as que le devuelve un resultado
simblico en trminos de f'.
D[ f[x], x ]

Mathematica utiliza la regla de cadena para simplificar derivadas.


D[ 2 x f[x^2], x ]

6.3. Integracin
He aqu la integral

dx en Mathematica.

Integrate[x^n, x]

He aqu un ejemplo ligeramente ms complicado.


Integrate[1/(x^4 - a^4), x]

64

Mathematica sabe resolver casi cualquier integral que puede ser expresada en
trminos de funciones matemticas estndares. Pero debe comprender que aun
cuando un integrando pueda contener slo funciones simples, su integral puede
implicar funciones mucho ms complicadaso no puede ser expresable en absoluto
en trminos de funciones matemticas estndares.
He aqu una integral simple.
Integrate[Log[1 - x^2], x ]

Esta integral puede ser expresada slo en trminos de una funcin de


dilogartmica.
Integrate[Log[1 - x^2]/x, x]

Esta integral involucra Erf.


Integrate[Exp[1 - x^2], x]

Y esta otra involucra una funcin de Fresnel.


Integrate[Sin[x^2], x]

Esta integral incluso requiere una funcin hipergeomtrica.


Integrate[(1 - x^2)^n, x]

Esta integral simplemente no puede ser expresada en trminos de funciones


matemticas estndares. Por consiguiente, Mathematica la deja como est.
Integrate[ x^x, x ]

65

la integral indefinida

Integrate[f,x]

f dx

dx dy f
x
la integral definida
f dx
x

la integral mltiple

Integrate[f,x,y]

max

Integrate[f,{x,xmin,xmax}]

min

la integral mltiple

Integrate[f,{x,xmin,xmax},
{y,ymin,ymax}]

xmax

dx

min

ymax

dy f

min

Integracin.

He aqu la integral definida

a sin

( x) dx .

Integrate[Sin[x]^2, {x, a, b} ]

He aqu otra integral definida.


Integrate[Exp[-x^2], {x, 0, Infinity}]

Mathematica no puede darle una frmula para esta integral definida.


Integrate[ x^x, {x, 0, 1} ]

Aunque, puede conseguir un resultado numrico.


N[ % ]
0.783431
Esto evala la integral mltiple

0 0 dy ( x
dx

+ y 2 ) . El rango de la variable

de integracin exterior aparece primero.


Integrate[ x^2 + y^2, {x, 0, 1}, {y, 0, x} ]

66

Esto integra x10 sobre una regin circular.


Integrate[ x^10 Boole[x^2 + y^2 <= 1], {x, -1, 1},
{y, -1 ,1}]

6.4. Sumas y productos


7

Esto construye la suma

xi

i =1

Sum[x^i/i, {i, 1, 7}]

Puede obviarse el lmite inferior si ste es igual a 1.


Sum[x^i/i, {i, 7}]

Los productos se obtienen en forma similar a las sumas.


Product[x + i, {i, 1, 4}]

imax

Sum[f,{i,imin,imax}]

la suma

i =imin

Sum[f,{i, imin,imax,di}]

la suma con i incrementndose en un paso


de di .
imax

Sum[f,{i,imin,imax},
{j,jmin,jmax}]

la suma anidada

jmax

i =imin j = jmin
imax

Product[f,{i,imin,imax}]

el producto

i =imin

Sumas y productos.

67

La suma es calculada simblicamente como una funcin de n.


Sum[i^2, {i, 1, n}]

Mathematica tambin puede dar un resultado exacto para esta suma infinita.
Sum[1/i^4, {i, 1, Infinity}]

Como en el caso de las integrales, sumas simples pueden conducir a


resultados complicados.
Sum[x^(i (i + 1)), {i, 1, Infinity}]

Esta suma no se puede evaluar exactamente usando funciones matemticas


estndares.
Sum[1/(i! + (2i)!), {i, 1, Infinity}]

Usted puede sin embargo encontrar una aproximacin numrica para el


resultado.
N[%]
0.373197
Mathematica tambin tiene una notacin para sumas y productos mltiples.
Sum[f,{i,imin,imax},{j,jmin,jmax}] representa una suma en i y j , que ser
escrita en notacin matemtica estndar como

i=i j= j
imax

min

jmax

f . Note que en la

min

notacin de Mathematica, como en la notacin matemtica estndar, el rango de la


variable exterior se da primero.
Esta es la suma mltiple

i=1 j=1 x i y j . Note que la suma exterior en i


3

se da primero, tal como en la notacin matemtica.


68

Sum[x^i y^j, {i, 1, 3}, {j, 1, i}]


La forma en que se especifica los rangos de las variables en Sum y Product es un
ejemplo algo general de la notacin de iteradores que Mathematica utiliza. Usted
ver esta notacin otra vez cuando discutamos la generacin de tablas y listas
usando Table (seccin 9.2), y cuando describamos los lazos Do (seccin 8.3).
{imax}
{i,imax}
{i,imin,imax}
{i,imin,imax,di}
{i,imin,imax},
{j,jmin,jmax},...

iterador imax sin incrementar variable alguna


i vara de 1 a imax en pasos de 1
i vara de imin a imax en pasos de 1
i vara de imin a imax en pasos de di
i vara de imin a imax, y para cada valor, j vara
de jmin a jmax, etc.

Notacin de iteradores en Mathematica.

6.5. Ecuaciones
En la seccin 3.2 se discuti asignaciones tales como x = y que asigna a x el valor
de y. Esta seccin habla de ecuaciones, que prueban una igualdad. La ecuacin
x == y , prueba si x es igual a y.
Esto prueba si 2 + 2 y 4 son iguales. El resultado es el smbolo True.
2 + 2 == 4
True
Es muy importante que usted no confunda x = y con x == y . Mientras que x = y
es una declaracin imperativa que en realidad origina una asignacin, x == y
simplemente prueba si x y y son iguales, y no causa ninguna accin explcita.
x=y
x==y

asigna el valor de y a x
prueba si x e y son iguales

Asignaciones y pruebas.

Esto asigna a x el valor 4.


x = 4
4
69

Si pregunta por x, obtiene 4.


x
4
Esto prueba si x es igual a 4. En este caso si es.
x == 4
True
x es igual a 4 no a 6.
x == 6
False
Esto remueve el valor asignado a x.
x = .
Las pruebas que hemos utilizado hasta ahora involucran solamente nmeros, y dan
siempre una respuesta definida, True o False. Usted tambin puede hacer
pruebas en expresiones simblicas.
Mathematica no puede obtener un resultado definido para esta
comprobacin sin que usted especifique un valor numrico para x.
x == 5
x == 5
Si reemplaza x por el valor numrico especfico 4, la prueba da False.
% / x -> 4
False
Incluso cuando hace pruebas en expresiones simblicas, hay algunos casos donde
puede conseguir resultados definidos. Algo importante es cuando usted prueba la
igualdad de dos expresiones que son idnticas. Independientemente de los valores
numricos que puedan tener las variables en estas expresiones, Mathematica sabe
que las expresiones siempre deben ser iguales.
Las dos expresiones son idnticas, por eso el resultado es True,
independientemente del valor que pueda tener x.
2 x + x^2 == 2 x + x^2
True
70

Mathematica no trata de averiguar si estas expresiones son iguales. En este


caso, usar Expand hara que tuvieran la misma forma.
2 x + x^2 == x (2 + x)
Las expresiones como x == 4 representan ecuaciones en Mathematica. Hay
muchas funciones en Mathematica para manipular y solucionar ecuaciones.
Esta es una ecuacin en Mathematica. La seccin 6.7 discutir cmo
solucionarla para x.
x^2 + 2 x - 7 == 0

Puede asignar un nombre a la ecuacin.


eqn = %

Si pregunta por eqn, obtiene la ecuacin.


eqn

6.6. Operadores relacionales y lgicos


x==y
x!=y
x>y
x>=y
x<y
x<=y
x==y==z
x!=y!=z
x>y>z, etc.

igual (tambin se ingresa como x y)


desigual (tambin se ingresa como x y)
mayor que
mayor o igual que (tambin se ingresa como
x y)
menor que
mayor o igual que (tambin se ingresa como
x y)
todos iguales
todos desiguales (distintos)
estrictamente decreciente, etc.

Operadores relacionales.

71

Esto prueba si 10 es menor que 7. El resultado es False.


10 < 7
False
No todos estos nmeros son desiguales, por esta razn se obtiene False.
3 != 2 != 3
False
Puede mezclar < y <=.
3 < 5 <= 6
True
Ya que las cantidades involucradas son numricas, Mathematica puede
determinar que esto es verdadero.
Pi^E < E^Pi
True
Mathematica no sabe si esto es verdadero o falso.
x > y
x > y
!p
p&&q&&...
p||q||...
Xor[p,q,...]
Nand[p,q,...] y
Nor[p,q,...]
If[p,then,else]
LogicalExpand[expr]

no (tambin se ingresa como p)


y (tambin se ingresa como p q ...)
o (tambin se ingresa como p q ...)
o exclusiva (tambin se ingresa como p q
...)
nand y nor (tambin se ingresan como y )
da then si p es True, y else si p es False
expande expresiones lgicas

Operadores lgicos.

Ambas pruebas dan True, entonces el resultado es True.


7 > 4 && 2 != 3
True

72

Usted debe recordar que las operaciones lgicas ==, && y || tienen todas doble
caracter en Mathematica. Si ha usado un lenguaje de programacin como C, estar
familiarizado con esta notacin.
Mathematica no sabe si esto es verdadero o falso.
p && q
p && q
Mathematica deja esta expresin inalterada.
(p || q) && !(r || s)
(p || q) &&! (r || s)
Puede usar LogicalExpand para expandir los trminos.
LogicalExpand[ % ]
(p && !r && !s) || (q && !r && !s)

6.7. Solucin de Ecuaciones


Una expresin como
representa una ecuacin en Mathematica.
A menudo tendr que solucionar ecuaciones como esta, para averiguar para qu
valores de x son verdaderas.
Esto da las dos soluciones de la ecuacin cuadrtica x 2 + 2 x 7 = 0 . Las
soluciones se dan como reemplazos para x.
Solve[x^2 + 2x - 7 == 0, x]

He aqu los valores numricos de las soluciones.


N[ % ]

Usted puede obtener una lista de las soluciones actuales para x aplicando las
reglas generadas por Solve a x mediante el operador de reemplazo.
x /. %
73

Igualmente puede aplicar los reemplazos a cualquier otra expresin que


involucra a x.
x^2 + 3 x /. %%

Solve[lhs==rhs,x]
x/.solucin
expr/.solucin

resuelve una ecuacin, dando una lista de


reglas para x
use la lista de reglas para obtener valores
para x
use la lista de reglas para obtener valores
para cualquier expresin

Encuentro y uso de soluciones de ecuaciones.

Solve siempre trata de darle frmulas explcitas para las soluciones de


ecuaciones. Sin embargo, es un resultado bsico matemtico que, para ecuaciones
suficientemente complicadas, no pueden darse frmulas algebraicas explcitas. Si
usted tiene una ecuacin algebraica en una variable, y la potencia ms alta de la
variable es menor que cinco, entonces Mathematica siempre puede darle frmulas
para las soluciones. Sin embargo, si la potencia ms alta es cinco o ms, puede ser
matemticamente imposible dar frmulas algebraicas explcitas para todas las
soluciones.
Mathematica siempre puede solucionar ecuaciones algebraicas en una
variable cuando la potencia ms alta es menor que cinco.
Solve[x^4 - 5 x^2 - 3 == 0, x]

Esto puede solucionar algunas ecuaciones que involucran potencias ms


altas.
Solve[x^6 == 1, x]

74

Hay algunas ecuaciones, sin embargo, para las cuales es matemticamente


imposible encontrar frmulas explcitas para las soluciones. Mathematica
usa objetos Root para representar las soluciones en este caso.
Solve[2 - 4 x + x^5 == 0, x]

Incluso aunque usted no pueda conseguir frmulas explcitas, puede


encontrar las soluciones numricamente.
N[ % ]

Adems de la capacidad de solucionar ecuaciones puramente algebraicas,


Mathematica tambin puede solucionar algunas ecuaciones que implican otras
funciones.
Despus de la impresin de una advertencia, Mathematica devuelve una
solucin para esta ecuacin.
Solve[ Sin[x] == a, x ]

Es importante comprender que una ecuacin tal como sin( x) = a en realidad tiene
un nmero infinito de soluciones posibles, en este caso que se diferencian por
mltiplos de 2 . Sin embargo, Solve por defecto da slo una solucin, pero
imprime un mensaje que le dice que pueden existir otras soluciones. Usted puede
usar Reduce para obtener ms informacin.
No hay ninguna solucin explcita para una ecuacin trascendental como
esta.
Solve[ Cos[x] == x, x ]

75

Puede encontrar una solucin numrica aproximada usando FindRoot, y


dando un valor inicial para x.
FindRoot[ Cos[x] == x, {x, 0} ]
Solve tambin puede manejar ecuaciones que involucran funciones simblicas.
En tales casos, otra vez imprime una advertencia, luego da resultados en trminos
de funciones formales inversas.
Mathematica devuelve un resultado en trminos de la funcin formal
inversa de f.
Solve[ f[x^2] == a, x ]

Solve[{lhs1==rhs1,
lhs2==rhs2, ...},{x,y, ...}]

resuelve un conjunto de ecuaciones


simultneas para x, y, ...

Solucin de conjuntos de ecuaciones simultneas.

Tambin puede usar Mathematica para solucionar conjuntos de ecuaciones


simultneas. Simplemente da la lista de ecuaciones, y especifica la lista de
variables.
He aqu una lista de dos ecuaciones simultneas, para que sean resueltas en
las variables x e y.
Solve[{a x + y == 0, 2 x + (1-a) y == 1}, {x, y}]

He aqu algunas ecuaciones simultneas ms complicadas. Las dos


soluciones se dan como dos listas de reemplazos para x.
Solve[{x^2 + y^2 == 1, x + 3 y == 0}, {x, y}]

76

Esto usa las soluciones para evaluar la expresin x + y .


x + y /. %

Mathematica puede solucionar cualquier sistema de ecuaciones simultneas


lineales. Tambin puede solucionar gran nmero de ecuaciones polinmicas
simultneas. Incluso cuando no logra solucionar las ecuaciones explcitamente,
Mathematica por lo general las reducir a una forma mucho ms simple.
Cuando usted trabaja con sistemas de ecuaciones en varias variables, es a menudo
conveniente reorganizar las ecuaciones eliminando algunas variables entre ellos.
Esto elimina y entre las dos ecuaciones, dando una sola ecuacin para x.
Eliminate[{a x + y == 0, 2 x + (1-a) y == 1}, y]
Si usted tiene varias ecuaciones, no hay ninguna garanta que exista cualquier
solucin consistente para una variable particular.
No hay ninguna solucin consistente para estas ecuaciones, as Mathematica
devuelve {}, indicando que el conjunto de soluciones es vaco.
Solve[{x==1, x==2}, x]
{}
No hay tampoco ninguna solucin consistente para estas ecuaciones para
casi todos los valores de a.
Solve[{x==1, x==a}, x]
{}
La pregunta general de si un sistema de ecuaciones tiene cualquier solucin
consistente es bastante sutil. Por ejemplo, para la mayor parte de valores de a, las
ecuaciones {x==1, x==a} son inconsistentes, as no hay ninguna solucin
posible para x. Sin embargo, si a es igual a 1, entonces las ecuaciones tienen una
solucin. Solve da soluciones genricas para ecuaciones. Desecha cualesquiera
soluciones que existen slo cuando los parmetros satisfacen condiciones
especiales.

77

Si usa Reduce en vez de Solve, Mathematica mantendr todas las posibles


soluciones para un sistema de ecuaciones, incluyendo aquellas que requieren
condiciones especiales en los parmetros.
Esto muestra que las ecuaciones tienen una solucin slo cuando a==1. La
notacin a==1&&x==1 representa la exigencia que tanto a==1 como
x==1 deben ser True (verdaderos).
Reduce[{x==a, x==1}, x]

Esto da el conjunto completo de posibles soluciones para la ecuacin. La


respuesta es dada en trminos de una combinacin de ecuaciones ms
simples. && indica que las ecuaciones deben ser simultneamente
verdaderas; || indica alternativas.
Reduce[a x - b == 0, x]

Esto da una combinacin ms complicada de ecuaciones.


Reduce[a x^2 - b == 0, x]

Esto da una representacin simblica de todas las soluciones.


Reduce[Sin[x] == a, x]

Solve[lhs==rhs,x]
Solve[{lhs1==rhs1,
lhs2==rhs2, ...},{x,y, ...}]
Eliminate[{lhs1==rhs1,
lhs2==rhs2, ...},{x, ...}]
Reduce[{lhs1==rhs1,
lhs2==rhs2, ...},{x,y, ...}]

resuelve una ecuacin en x


resuelve un conjunto de ecuaciones
simultneas en x, y, ...
elimina x, ... en un conjunto de ecuaciones
simultneas
da un conjunto de ecuaciones simplificadas,
incluyendo todas las posibles soluciones

Funciones para solucionar y manipular ecuaciones.

78

Reduce tambin tiene capacidades poderosas para manipular ecuaciones


especficamente en nmeros reales o enteros.
Esto reduce la ecuacin asumiendo que x e y son complejos.
Reduce[x^2 + y^2 == 1, y]

Esto incluye las condiciones de que x e y son reales.


Reduce[x^2 + y^2 == 1, y, Reals]

Esto da solamente soluciones enteras.


Reduce[x^2 + y^2 == 1, y, Integers]

6.8. Desigualdades
Reduce[ineqs, {x, y, ...}]
FindInstance[ineqs,
{x, y, ...}]

reduce una coleccin de desigualdades


encuentra un caso que satisface ineqs

Manejo de desigualdades.

Esto encuentra una forma reducida para las desigualdades.


Reduce[x + y < 1 && y > x > 0, {x, y}]

Estas desigualdades no pueden ser satisfechas.


Reduce[x + y < 1 && y > x > 1, {x, y}]
False

79

Es fcil encontrarse con resultados algo complicados.


Reduce[x + y < 1 && y^2 > x > 0, {x, y}]

Las ecuaciones a menudo pueden ser solucionadas para dar valores definidos de las
variables. Pero las desigualdades solamente definen regiones que pueden ser
especificadas por otras desigualdades. Usted puede usar FindInstance para
encontrar valores definidos de las variables que satisfacen un conjunto particular
de desigualdades.
Esto encuentra un punto en la regin especificada por las desigualdades.
FindInstance[x + y < 1 && y^2 > x > 0, {x, y}]

Minimize[{expr,ineq},
{x, y, ...}]
Maximize[{expr,ineq},
{x, y, ...}]

minimiza expr mientras satisfaga ineq


maximiza expr mientras satisfaga ineq

Minimizacin y maximizacin sujetas.

Esto da el mximo, junto con el valor donde ocurre.


Maximize[{x^2 + y, x^2 + y^2 <= 1}, {x, y}]

Esto da el mnimo, junto con el valor donde ocurre.


Minimize[{x^2 + y, x^2 + y^2 <= 1}, {x, y}]

80

6.9. Ecuaciones diferenciales


DSolve[eqns, y[x], x]
DSolve[eqns, y, x]

resuelve una ecuacin diferencial para y[x],


tomando a x como variable independiente
da una solucin para y en forma de funcin
pura

Solucin de una ecuacin diferencial ordinaria.

He aqu la solucin de la ecuacin diferencial y ( x) = a y ( x) + 1 . C[1] es un


coeficiente que debe ser determinado a partir condiciones de frontera.
DSolve[ y'[x] == a y[x] + 1, y[x], x ]

Si usted incluye una condicin inicial apropiada, no hay ningn coeficiente


indeterminado en la solucin.
DSolve[ {y'[x] == a y[x] + 1, y[0] == 0}, y[x], x ]

Mientras que ecuaciones algebraicas tales como x 2 + x = 1 son ecuaciones para


variables, ecuaciones diferenciales tales como y ( x) + y ( x) = y ( x) son
ecuaciones para funciones. En Mathematica, siempre debe dar las ecuaciones
diferenciales explcitamente en trminos de funciones como y[x], y debe
especificar las variables como x de las cuales dependen las funciones. Por
consiguiente, debe escribir una ecuacin tal como y ( x) + y ( x) = y ( x) en la
forma y''[x]+y'[x]==y[x]. Usted no debe escribirla como y''+y'==y.
Mathematica puede solucionar ecuaciones diferenciales ordinarias tanto lineales
como no lineales, as como listas de ecuaciones simultneas. Si no especifica las
suficientes condiciones iniciales o de frontera, Mathematica dar las soluciones
con un nmero apropiado de coeficientes indeterminados. Cada vez que usted usa
DSolve, ste representa a los coeficientes indeterminados por C[1], C[2], etc.
He aqu un par de ecuaciones diferenciales simultneas, sin condiciones
iniciales o de frontera. La solucin que se obtiene tiene dos coeficientes
indeterminados.
DSolve[ {x'[t] == y[t], y'[t] == x[t]}, {x[t],
y[t]}, t ]
81

Cuando usted le pide a DSolve que encuentre una solucin para y[x], las reglas
que devuelve especifican como sustituir y[x] en cualquier expresin. Sin
embargo, estas reglas no especifican como sustituir objetos como y'[x]. Si usted
quiere manipular soluciones obtenidas con DSolve, a menudo encontrar mejor
pedir soluciones para y, antes que para y[x].
Esto da la solucin para y como una funcin pura.
DSolve[ y'[x] == x + y[x], y, x ]

Usted puede ahora usar al operador de reemplazo para aplicar esta solucin
a expresiones que involucran a y.
y''[x] + y[x] /. %
Note que DSolve puede manejar combinaciones de ecuaciones diferenciales
algebraicas. Tambin puede manejar ecuaciones diferenciales parciales, en las
cuales hay ms de una variable independiente.

6.10. Series de potencias


Las operaciones matemticas de las que hemos hablado hasta ahora son exactas.
Considerando la entrada exacta, sus resultados son frmulas exactas.
En muchas situaciones, sin embargo, usted no necesita un resultado exacto. Puede
ser suficiente, por ejemplo, encontrar un frmula aproximada que es vlida,
digamos, cuando la cantidad x es pequea.
Esto da una aproximacin en serie de potencias para (1 + x) n alrededor de 0,
hasta los trminos de orden 3.
Series[(1 + x)^n, {x, 0, 3}]

82

Mathematica conoce las expansiones en serie de potencias para muchas


funciones matemticas.
Series[Exp[-a t] (1 + Sin[2 t]), {t, 0, 4}]

Si usted da una funcin que no conoce, Series escribe la serie de


potencias en trminos de derivadas.
Series[1 + f[t], {t, 0, 3}]

Las series de potencias son frmulas aproximadas que juegan el mismo papel con
respecto a las expresiones algebraicas como los nmeros aproximados con las
expresiones numricas. Mathematica le permite realizar operaciones en series
potencias, en todos los casos mantiene el orden apropiado o el grado de precisin
para las series de potencias resultantes.
He aqu una serie de potencias simple, de orden 3.
Series[Exp[x], {x, 0, 3}]

Cuando usted hace las operaciones en una serie de potencias, el resultado es


calculado slo en el orden apropiado en x.
%^2 (1 + %)

Esto cambia la serie de potencias en una expresin ordinaria.


Normal[%]

83

Ahora el cuadrado es calculado exactamente.


%^2

Al aplicar Expand se obtiene un resultado con once trminos.


Expand[%]

Series[expr, {x, x0, n}]

Normal[series]

encuentra la expansin en serie de potencias


de expr alrededor del punto x = x0 de
n-simo orden
trunca una serie de potencias para dar una
expresin ordinaria

Operaciones en series de potencias.

6.11. Lmites
He aqu la expresin sin( x) / x .
t = Sin[x]/x

Si sustituye x por 0, la expresin se hace 0/0, y obtiene un resultado


indeterminado.
t /. x->0

Indeterminate
Si encuentra el valor numrico de sin( x) / x para un x prximo a 0, usted
consigue un resultado prximo a 1.
t /. x->0.01
0.999983
84

Esto encuentra el lmite de sin( x) / x cuando x tiende a 0. El resultado es


ciertamente 1.
Limit[t, x->0]
1
Limit[expr, x->x0]

el lmite de expr cuando x tiende a x0

Lmites.

6.12. Transformadas integrales


LaplaceTransform[expr,
t, s]
InverseLaplace
Transform[expr, t, s]

encuentra la transformada de Laplace de


expr
encuentra la transformada inversa de Laplace
de expr

Transformadas de Laplace.

Esto calcula la transformada de Laplace.


LaplaceTransform[t^3 Exp[a t], t, s]

He aqu la transformada inversa.


InverseLaplaceTransform[%, s, t]

FourierTransform[expr,
t, w]
InverseFourier
Transform[expr, t, w]

encuentra la transformada simblica de


Fourier de expr
encuentra la transformada inversa de Fourier
de expr

Transformadas de Fourier.

Esto calcula la transformada de Fourier.


FourierTransform[t^4 Exp[-t^2], t, w]

85

He aqu la transformada inversa.


InverseFourierTransform[%, w, t]

Note que en la literatura cientfica y tcnica muchas convenciones diferentes son


usadas para definir transformadas de Fourier.

6.13. Ecuaciones recurrentes


RSolve[eqns, a[n], n]

resuelve las ecuaciones recurrentes eqns para


a[n]

Solucin de ecuaciones recurrentes.

Esto resuelve una ecuacin recurrente simple.


RSolve[{a[n] == 3 a[n-1]+1, a[1]==1},
a[n], n]

He aqu una solucin ms complicada de otra ecuacin recurrente.


RSolve[{a[n+1] == (a[n]+1)/(n+1), a[1]==0},
a[n], n]

He aqu la solucin de una ecuacin recurrente con dos condiciones


iniciales.
RSolve[{a[n+2] == (3 a[n+1]-a[n])/2, a[1]==0,
a[2]==1}, a[n], n]

6.14. Paquetes para matemticas simblicas


Hay muchos paquetes de Mathematica que implementan operaciones matemticas
simblicas. Esta seccin da algunos ejemplos del conjunto paquetes estndares
distribuidos con Mathematica. Sin embargo, debe tener en cuenta que algunas
86

copias de Mathematica pueden inicializarse de modo que las funciones aqu


descritas sean cargadas automticamente si son alguna vez necesarias.

Anlisis vectorial
<<Calculus`VectorAnal
ysis`
SetCoordinates[
system[names]]

Grad[f]
Div[f]
Curl[f]
Laplacian[f]

carga el paquete de anlisis vectorial


especifica el sistema de coordenadas a usarse
(Cartesian,
Cylindrical,
Spherical,
etc.),
dando los nombres de las coordenadas en ese
sistema
evala el gradiente f de f en el sistema de
coordenadas escogido
evala la divergencia f de la lista f
evala el rotacional f de la lista f
evala el laplaciano 2 f de f

Anlisis vectorial.

Esto carga el paquete de anlisis vectorial. En algunas versiones de


Mathematica, puede que no tenga que cargar el paquete explcitamente.
<<Calculus`VectorAnalysis`
Esto especifica que usted desea usar un sistema de coordenadas esfrico con
las coordenadas r, theta y phi.
SetCoordinates[Spherical[r, theta, phi]]

Esto evala el gradiente de r 2 sin( ) en el sistema de coordenadas esfricas.


Grad[r^2 Sin[theta]]

87

Mtodos variacionales
<<Calculus`Variationa
lMethods`
VariationalD[f, y[x], x]

carga el paquete de mtodos variacionales


encuentra la derivada variacional de f

Mtodos variacionales.

Esto carga el paquete de mtodos variacionales.


<<Calculus`VariationalMethods`
Esto encuentra la derivada funcional de y ( x) y ( x) .
VariationalD[y[x] Sqrt[y'[x]], y[x], x]

Cuaterniones
<<Algebra`Quaternions` carga el paquete de cuaterniones
Quaternion[a, b, c, d] el cuaternin a + bi + cj + dk
Cuaterniones.

Esto carga el paquete de cuaterniones.


<<Algebra`Quaternions`
Esto encuentra la principal raz cuadrada de un cuaternin.
Sqrt[Quaternion[1, 1, 1, 0]]

88

6.15. Casos genricos y no genricos


Esto da un resultado para la integral de x n que es vlida para casi todos los
valores de n.
Integrate[x^n, x]

Para el caso especial de x 1 , sin embargo, el resultado correcto es diferente.


Integrate[x^-1, x]
Log[x]
El objetivo general del clculo simblico es conseguir frmulas que son vlidas
para muchos valores posibles de las variables que aparecen en ellas. No es a
menudo prctico tratar de obtener frmulas que son vlidas para absolutamente
todo valor posible de cada variable.
Mathematica siempre reemplaza 0 / x por 0.
0 / x
0
Si x es igual 0, sin embargo, el resultado no es 0.
0 / 0

Indeterminate
Esta construccin trata ambos casos, pero sera poco utilizable.
If[x != 0, 0, Indeterminate]
Si Mathematica no sustituyera automticamente 0 / x por 0, entonces pocos
clculos simblicos seran posibles. Pero debe comprender que la necesidad
prctica de hacer tales reemplazos puede hacer que se obtengan resultados
absurdos cuando se usan valores especficos de los parmetros.

89

Las operaciones bsicas de Mathematica sin embargo son instaladas con cuidado
de modo que siempre sea posible que los resultados obtenidos sean vlidos para
casi todos los valores de cada variable.
x 2 no es automticamente reemplazada por x.

Sqrt[x^2]

Si as fuera, entonces este resultado sera -2, que es incorrecto.


% /. x -> -2
2
Esto hace que x se asuma como una variable real positiva, y la reemplaza.
Simplify[Sqrt[x^2], x > 0]
x
Esto hace que x se asuma como una variable real negativa, y la reemplaza.
Simplify[Sqrt[x^2], x < 0]
x

6.16. Notacin matemtica en cuadernos


Si usted usa una interfase de cuaderno para Mathematica (seccin 4.1), entonces
usted puede ingresar algunas operaciones mencionadas en esta seccin de modo
especial.
Sum[f,{i,imin,imax}]

suma

Product[f,{i,imin,imax}]

producto

Integrate[f, x]
Integrate[f,{x,xmin,
xmax}]
D[f, x]
D[f, x, y]

integral indefinida
integral definida
derivada parcial
derivada parcial mltiple

Formas especiales y ordinarias de ingresar operaciones matemticas en cuadernos.

90

Esto muestra parte de la paleta estndar para ingresar operaciones


matemticas. Cuando usted presiona un botn en la paleta, la forma
mostrada en el botn se inserta en su cuaderno, con el cuadrado negro
substituido por lo que usted haba seleccionado en el cuaderno.

signo de sumatoria
signo de producto
signo de integral
diferencial especial para uso en integrales
derivada parcial
mueve a la posicin de subndice o lmite
inferior de un integral
mueve a la posicin de superndice o lmite
superior de un integral
mueve a la posicin subescritura o lmite
inferior de una suma o producto
mueve a la posicin de sobreescritura o
lmite superior de una suma o producto
cambia entre posiciones superiores e
inferiores
retorna de posiciones superiores o inferiores
Formas de ingresar notaciones especiales en un teclado estndar de lenguaje Ingls.

Usted puede ingresar un integral como esta. Asegrese de usar la diferencial


especial ingresada como
, no slo una d ordinaria.

91

Aqu est la secuencia real clave que usted escribe para conseguir la entrada.

7. Matemticas numricas
7.1. Operaciones bsicas
Los resultados exactos simblicos son por lo general muy deseados cuando pueden
ser obtenidos. En muchos clculos, sin embargo, no es posible conseguir resultados
simblicos. En tales casos, usted debe recurrir a mtodos numricos.
N[expr]

valor numrico de una expresin (ver


seccin 2)

NIntegrate[f,{x, xmin,
xmax}]

aproximacin numrica para

NSum[f,{i, imin,

aproximacin numrica para

Infinity}]
FindRoot[lhs==rhs,
{x, x0}]
NSolve[lhs==rhs, x]
FindMinimum[f,{x, x0}]
NMinimize[f, x]

xmax

f dx

min

min

encuentra la solucin numrica para una


ecuacin, empezando con x = x0
aproximaciones numricas de todas las
soluciones de una ecuacin
encuentra un mnimo de f, empezando con
x = x0
intenta encontrar el mnimo global de f

Operaciones numricas bsicas.

Mathematica mantiene esta expresin en forma simblica exacta.


(3 + Sqrt[2])^3

Usted puede incluso usar operaciones estndares simblicas en ella.


Expand[ % ]
92

N[expr] da una aproximacin numrica.


N[ % ]
86.0122
Funciones como Integrate siempre procuran obtener resultados exactos para
los clculos. Cuando no pueden obtenerlos, devuelven los resultados sin evaluar.
Usted entonces puede encontrar aproximaciones numricas explcitamente
aplicando N. Funciones como NIntegrate hacen los clculos numricamente
desde el principio, sin ninguna tentativa de obtener un resultado exacto.
No hay una frmula exacta para esta integral, por lo cual Mathematica la
devuelve sin evaluar.
Integrate[Sin[Sin[x]], {x, 1, 2}]

Puede usar N para obtener un resultado numrico aproximado.


N[ % ]
0.81645
NIntegrate resuelve la integral en forma numrica desde el inicio.
NIntegrate[Sin[Sin[x]], {x, 1, 2}]
0.81645

7.2. Sumas, productos e integrales numricos


NSum[f,{i, imin,
Infinity}]

aproximacin numrica para

NProduct[f,{i, imin,
Infinity}]

aproximacin numrica para

NIntegrate[f,{x, xmin,
xmax}]

aproximacin numrica para

NIntegrate[f,{x, xmin,
xmax},{y, ymin, ymax}]

la integral mltiple

min

xmax

min

f dx

min

xmax

min

dx

ymax

dy f

min

Sumas, productos e integrales numricos.

93

He aqu una aproximacin numrica

i=1 i 3 .

NSum[1/i^3, {i, 1, Infinity}]


1.20206
NIntegrate puede manejar singularidades en los puntos finales de la
regin de integracin.
NIntegrate[1/Sqrt[x (1-x)], {x, 0, 1}]
3.14159
Puede resolver integrales numricas sobre regiones infinitas.
NIntegrate[Exp[-x^2], {x, -Infinity, Infinity}]
1.77245
He aqu una integral doble sobre un dominio triangular. Note el orden en el
cual se ingresan las variables.
NIntegrate[ Sin[x y], {x, 0, 1}, {y, 0, x} ]
0.119906
He aqu una integral doble sobre un dominio limitado por dos parbolas.
NIntegrate[ x^2 + y^2, {x, -1, 1}, {y, x^2 - 1,
-x^2 + 1}]
1.14286

7.3. Solucin numrica de ecuaciones


NSolve[lhs==rhs, x]
NSolve[{lhs1==rhs1,
lhs2==rhs2, ...},{x, y, ...}]
FindRoot[lhs==rhs,
{x, x0}]
FindRoot[{lhs1==rhs1,
lhs2==rhs2, ...},{{x, x0},
{x, x0},...}]

soluciona numricamente una ecuacin


polinomial
soluciona numricamente un sistema de
ecuaciones polinomiales
encuentra una solucin numrica para una
ecuacin, empezando en x = x0
encuentra soluciones numricas para
ecuaciones simultneas

Bsqueda de races numricas.

94

NSolve le da aproximaciones numricas a todas las races de una ecuacin


polinomial.
NSolve[ x^5 + x + 1 == 0, x ]

Tambin puede usar NSolve para resolver numricamente sistemas


simultneos de ecuaciones.
NSolve[{x + y == 2, x - 3 y + z == 3,
x - y + z == 0}, {x, y, z}]
Si sus ecuaciones involucran slo funciones lineales o polinmicas, entonces puede
usar NSolve para obtener aproximaciones numricas de todas las soluciones. Sin
embargo, cuando sus ecuaciones involucran funciones ms complicadas, no hay en
general ningn procedimiento sistemtico para obtener todas las soluciones, an
numricamente. En tales casos, puede usar FindRoot para buscar soluciones.
Tiene que dar a FindRoot un valor para que empiece la bsqueda.
Esto encuentra una solucin numrica, empezando en x = 1 .
FindRoot[ 3 Cos[x] == Log[x], {x, 1} ]

La ecuacin tiene varias soluciones. Si usted comienza con un x diferente,


FindRoot puede devolver una solucin diferente.
FindRoot[ 3 Cos[x] == Log[x], {x, 10} ]

Usted puede buscar soluciones para sistemas de ecuaciones. Aqu la


solucin involucra nmeros complejos.
FindRoot[{x == Log[y], y == Log[x]}, {{x, I},
{y, 2}}]

95

7.4. Ecuaciones diferenciales numricas


NDSolve[eqs, y, {x, xmin,
xmax}]
NDSolve[eqs, {y1, y2,
...}, {x, xmin, xmax}]

soluciona numricamente para la funcin y,


con la variable independiente x en el rango
xmin a xmax
soluciona un sistema de ecuaciones para las
yi

Solucin numrica de ecuaciones diferenciales.

Esto genera una solucin numrica para la ecuacin y ( x) = y ( x) con


0 < x < 2 . El resultado est dado en trminos de una funcin interpolante.
NDSolve[{y'[x] == y[x], y[0] == 1}, y, {x, 0, 2}]

He aqu el valor de y (1.5) .


y[1.5] /. %
{4.48169}
Con una ecuacin algebraica como x 2 + 3 x + 1 , cada solucin para x es
simplemente un nmero. Para una ecuacin diferencial, sin embargo, la solucin es
una funcin. Por ejemplo, en la ecuacin y ( x) = y ( x) , usted obtiene una
aproximacin a la funcin y (x) con la variable independiente x que vara sobre
algn rango.
Mathematica representa aproximaciones numricas a funciones como objetos.
Estos objetos son las funciones que, cuando se aplican a un x particular, devuelven
el valor aproximado de y (x) en aquel punto. InterpolatingFunction en
forma eficaz almacena una tabla de valores para y ( xi ) , luego interpola esta tabla
para encontrar una aproximacin para y (x) en el x particular que usted solicita.
y[ x]/.solucin
InterpolatingFunc
tion[data, x]
Plot[Evaluate[y[ x]/.
solucin],{x, xmin, xmax}]

usa la lista de reglas de la funcin y para


obtener valores para y[ x]
evala una funcin interpolada en el punto x
grafica la solucin de la ecuacin diferencial

Uso de los resultados de NDSolve.

96

Esto soluciona un sistema de dos ecuaciones diferenciales simultneas.


NDSolve[ {y'[x] == z[x], z'[x] == -y[x], y[0] == 0,
z[0] == 1}, {y, z}, {x, 0, Pi} ]

He aqu el valor de z[2] hallado a partir de la solucin.


z[2] /. %
{-0.416147}
He aqu el grfico de la solucin para z[x] encontrada anteriormente.
Plot se discute en la seccin 10.1.
Plot[Evaluate[z[x] /. %%], {x, 0, Pi}]

NDSolve[eqn, u, {x, xmin,


xmax}, {t, tmin, tmax},...]

resuelve una ecuacin diferencial parcial

Solucin numrica de ecuaciones diferenciales parciales.

7.5. Optimizacin numrica


NMinimize[f,{x, y, ...}]
NMaximize[f,{x, y, ...}]
NMinimize[{f, ineqs},
{x, y, ...}]
NMaximize[{f, ineqs},
{x, y, ...}]

minimiza f
maximiza f
minimiza f sujeto a las restricciones ineqs
maximiza f sujeto a las restricciones ineqs

Obtencin de mximos y mnimos globales.

97

Esto da el valor mximo, y dnde es que ocurre.


NMaximize[x/(1 + Exp[x]), x]

Esto minimiza la funcin dentro del crculo unitario.


NMinimize[{Cos[x] - Exp[x y], x^2 + y^2 < 1},
{x, y}]

FindMinimum[f,{x, x0}]
FindMinimum[f,{{x, x0},
{y, y0}, ...}]
FindMaximum[f,{x, x0}]
FindMaximum[f,{{x, x0},
{y, y0}, ...}]

busca un mnimo local de f, comenzando en


x = x0
busca un mnimo local en varias variables
busca un mximo local de f, comenzando en
x = x0
busca un mximo local en varias variables

Bsqueda de mximos y mnimos locales.

NMinimize y NMaximize pueden encontrar los mnimos y mximos absolutos


de muchas funciones. Pero en algunos casos no es realista hacer esto. Usted puede
buscar mnimos y mximos locales usando FindMinimum y FindMaximum.
Esto busca un mnimo local de x cos(x) , empezando en x = 2 .
FindMinimum[x Cos[x], {x, 2}]

Con un punto de partida diferente, usted puede obtener un mnimo local


diferente.
FindMinimum[x Cos[x], {x, 10}]

Esto encuentra un mnimo local de sin( x y ) .


FindMinimum[Sin[x y], {{x, 2}, {y, 2}}]

98

7.6. Manipulacin de datos numricos


Cuando usted tiene datos numricos, es a menudo conveniente encontrar una
frmula simple que los aproxime. Por ejemplo, usted puede tratar de ajustar
(fit) una lnea o curva tomando los puntos de sus datos.
Fit[{y1, y2, ...},
{f1, f2, ...}, x]
Fit[{{x1, y1},{x2, y2},
...},{f1, f2, ...}, x]

ajusta los valores y n para una combinacin


lineal de funciones f i
ajusta los puntos ( x n , y n ) para una
combinacin lineal de las f i

Ajuste de curvas para una combinacin lineal de funciones.

Esto genera una tabla de valores numricos de la funcin exponencial.


Table se discutir en la seccin 9.2.
data = Table[ Exp[x/5.] , {x, 7}]

Esto encuentra un ajuste de mnimos cuadrados para data de la forma


c1 + c 2 x + c3 x 2 . Los elementos de data se hacen corresponder con valores
1, 2, ... de x.

Fit[data, {1, x, x^2}, x]

Esto encuentra un ajuste de la forma c1 + c 2 x + c3 x 3 + c4 x 5 + c5 x 7 .


Fit[data, {1, x, x^3, x^5, x^7}, x]

Esto da una tabla de pares x, y .


data = Table[ {x, Exp[Sin[x]]} , {x, 0., 1., 0.2}]

99

Esto encuentra un ajuste para los nuevos datos, de la forma


c1 + c 2 sin( x) + c3 sin(2 x) .
Fit[%, {1, Sin[x], Sin[2x]}, x]

FindFit[data, form,
{p1, p2, ...}, x]

encuentra un ajuste para form con


parmetros pi

Ajuste de datos en formas generales.

Esto encuentra los mejores parmetros para un ajuste general.


FindFit[data, a + b x + c x^2, {a, b, c}, x]

Este no es un ajuste lineal.


FindFit[data, a + b^(c + d x), {a, b, c, d}, x]
Una forma comn de elegir seales en datos numricos es encontrar la
transformada de Fourier, o espectro de frecuencia, de los datos.
Fourier[data]
InverseFourier[data]

transformada numrica de Fourier


transformada inversa de Fourier

Transformadas de Fourier.

He aqu un pulso cuadrado simple.


data = {1, 1, 1, 1, -1, -1, -1, -1}

Esto toma la transformada de Fourier del pulso.


Fourier[data]

Note que la funcin Fourier en Mathematica es definida con la convencin de


signo tpicamente usada en las ciencias fsicas en contraste a la que a menudo es
usada en ingeniera elctrica.
100

7.7. Estadstica
Mean[data]
Median[data]
Variance[data]
StandardDevia
tion[data]
Quantile[data, q]
Total[data]

media (promedia valores)


mediana (valor central)
varianza
desviacin estndar
cuantil q-simo
total de valores

Estadstica descriptiva bsica.

He aqu algunos datos.


data = {4.3, 7.2, 8.4, 5.8, 9.2, 3.9}

Esto da la media de sus datos.


Mean[data]

He aqu la varianza.
Variance[data]
El conjunto de paquetes estndares distribuidos con Mathematica incluyen varios
comandos para hacer anlisis estadsticos de datos ms sofisticados.
Statistics`Descripti
veStatistics`
Statistics`Multiva
riateDescripti
veStatistics`
Statistics`Conti
nuousDistributions`
Statistics`Discre
teDistributions`
Statistics`Hypo
thesisTests`
Statistics`Confi
denceIntervals`

funciones de estadstica descriptiva


funciones de estadstica descriptiva
multivariante
propiedades de distribuciones estadsticas
continuas
propiedades de distribuciones estadsticas
discretas
contrastes de hiptesis basados en la
distribucin normal
intervalos de confianza sacados de la
distribucin normal
101

Statistics`Multi
normalDistribution`
Statistics`Li
nearRegression`
Statistics`Non
linearFit`
Statistics`Data
Smoothing`
Statistics`Data
Manipulation`

propiedades de distribuciones basadas en la


distribucin normal multivariante
anlisis de regresin lineal
ajuste no lineal de datos
alisamiento de datos
utilidades para manipulacin de datos

Algunos paquetes estndares de anlisis estadstico.

8. Funciones y programas
8.1. Definicin de funciones
En esta parte del libro, hemos visto muchos ejemplos de funciones que son
construidas en Mathematica. En esta seccin, mostramos como usted puede aadir
sus propias funciones simples a Mathematica. La parte 2 describir en mayor
detalle los mecanismos para aadir funciones a Mathematica.
Como un primer ejemplo, piense aadir una funcin llamada f que eleva al
cuadrado su argumento. El comando en Mathematica para definir esta funcin es
f[x_]:=x^2. El _ (subguin) del miembro de la izquierda es muy importante; lo
que esto significa ser mencionado debajo. Por ahora, solamente acurdese de
poner un _ en el miembro de la izquierda, pero no en el miembro de la derecha, de
su definicin.
Esto define la funcin f. Note el _ en el miembro de la izquierda.
f[x_] := x^2
f eleva al cuadrado su argumento.
f[a+1]

El argumento puede ser un nmero.


f[4]

102

O puede ser una expresin ms complicada.


f[3x + x^2]

Usted puede usar f en un clculo.


Expand[f[(x+1+y)]]

Esto muestra la definicin que usted hizo para f.


?f

f[x_]:=x^2
?f
Clear[f]

define la funcin f
muestra la definicin de f
borra todas las definiciones de f

Definicin de una funcin en Mathematica.

Los nombres como f que usa para funciones en Mathematica son solamente
smbolos. A causa de esto, debera evitar usar nombres que comienzan con
maysculas, para prevenir la confusin con las funciones predefinidas en
Mathematica. Tambin debera asegurarse que no ha usado los nombres
anteriormente en su sesin.
Las funciones en Mathematica pueden tener cualquier nmero de
argumentos.
hump[x_, xmax_] := (x - xmax)^2 / xmax
Usted puede usar la funcin hump tal como cualquiera de las funciones
predefinidas.
2 + hump[x, 3.5]

Esto da una nueva definicin para hump, que sobrescribe la anterior.


hump[x_, xmax_] := (x - xmax)^4

103

La nueva definicin es mostrada.


?hump

Esto limpia todas las definiciones para hump.


Clear[hump]
Cuando ha terminado con una funcin particular, es siempre buena idea limpiar
definiciones que haya hecho para ella. Si no hace esto, entonces podra incurrir en
un problema si trata de usar la misma funcin para un propsito diferente ms
adelante en su sesin de Mathematica. Usted puede limpiar todas las definiciones
que haya hecho para una funcin o smbolo f usando Clear[f].

8.2. Funciones como procedimientos


En muchas clases de clculos, usted puede encontrarse digitando la misma entrada
a Mathematica muchas veces. Usted puede ahorrarse mucha digitacin definiendo
una funcin que contiene sus comandos de entrada.
Esto construye un producto de tres trminos, y expande el resultado.
Expand[ Product[x + i, {i, 3}] ]

Esto hace lo mismo, pero con cuatro trminos.


Expand[ Product[x + i, {i, 4}] ]

Esto define una funcin exprod que construye un producto de n trminos,


luego lo expande.
exprod[n_] := Expand[ Product[ x + i, {i, 1, n} ] ]
Siempre que usa la funcin, ejecutar las operaciones Product y Expand.
exprod[5]

104

Las funciones que define en Mathematica son esencialmente procedimientos que


ejecutan los comandos que usted da. Puede tener varios pasos en sus
procedimientos, separados por puntos y coma.
El resultado que obtiene de la funcin es simplemente la ltima expresin en
el procedimiento. Note que tiene que poner parntesis alrededor del
procedimiento cuando lo define.
cex[n_, i_] := ( t = exprod[n];
Coefficient[t, x^i] )
Esto corre el procedimiento.
cex[5, 3]

expr1; expr2; ...


Module[{a, b, ...}, proc]

una secuencia de expresiones para evaluar


un procedimiento con variables locales a, b,
...

Construccin de procedimientos.

Cuando usted escribe procedimientos en Mathematica, es por lo general una buena


idea declarar como locales las variables que usa dentro de los procedimientos, de
modo que no interfieran con cosas fuera de los procedimientos. Puede hacer esto
estableciendo sus procedimientos como mdulos, en los cuales da una lista de
variables para ser tratadas como locales.
La funcin cex arriba definida no es un mdulo, as que el valor de t
escapa, y existe incluso despus de la evaluacin de la funcin.
t

Esta funcin es definida como un mdulo con variable local u.


ncex[n_, i_] := Module[{u}, u = exprod[n];
Coefficient[u, x^i]]
La funcin devuelve el mismo resultado que la anteriormente definida.
ncex[5, 3]

105

Ahora, sin embargo, el valor de u no se escapa de la funcin.


u

8.3. Operaciones repetitivas


En el uso de Mathematica, a veces tiene que repetir una operacin muchas veces.
Hay muchos modos de hacer esto. A menudo el ms natural es de hecho establecer
una estructura como una lista con muchos elementos, y luego aplicar su operacin
a cada uno de los elementos.
Otra forma es usar la funcin de Mathematica Do, que trabaja de manera muy
parecida a los iteradores en lenguajes como C y Fortran. Do usa la notacin
estndar de Mathematica para iteradores introducida para Sum y Product en la
seccin 6.4.
Do[expr, {i, imax}]
Do[expr, {i, imin,
imax, di}]
Print[expr]
Table[expr, {i, imax}]

evala expr con i variando de 1 a imax


evala expr con i variando de imin a imax en
pasos de di
imprime expr
hace una lista de valores de expr con i
variando de 1 a imax

Implementacin de operaciones repetitivas.

Esto imprime las salidas de los valores de los cinco primeros factoriales.
Do[ Print[i!], {i, 5} ]

A menudo es ms til tener una lista de los resultados, que usted luego
puede manipular posteriormente.
Table[ i!, {i, 5} ]

106

Si usted no da una variable de iteracin, Mathematica simplemente repite la


operacin que usted ha especificado, sin cambiar algo.
r = 1; Do[ r = 1/(1 + r), {100} ]; r

8.4. Reglas de transformacin para funciones


La seccin 5.2 mencion como usted puede usar las reglas de transformacin de la
forma x->valor para sustituir smbolos por valores. La nocin de reglas de
transformacin en Mathematica es, sin embargo, bastante general. Usted puede
establecer reglas de transformacin no slo para smbolos, sino para cualquier
expresin de Mathematica.
Aplicacin de la regla de transformacin x->3 que reemplaza x por 3.
1 + f[x] + f[y] /. x -> 3

Puede usar una regla de transformacin para f[x]. Esta regla no afecta a
f[y].
1 + f[x] + f[y] /. f[x] -> p

f[t_] es un patrn que admite cualquier argumento para f.


1 + f[x] + f[y] /. f[t_] -> t^2
Probablemente el aspecto ms potente de las reglas de transformacin en
Mathematica es que ellas pueden involucrar expresiones no slo literales, sino
tambin patrones. Un patrn es una expresin como f[t_] que contiene un _
(subguin). El subguin representa cualquier expresin. As, una regla de
transformacin para f[t_] especifica cmo la funcin f con cualquier
argumento debera ser transformada. Note que, en contraste, una regla de
transformacin para f[x] sin un subguin, especifica slo como la expresin
literal f[x] debera ser transformada, y por ejemplo, no dice nada sobre la
transformacin de f[y].

107

Cuando usted da una definicin de funcin como f[t_]:=t^2, todo lo que hace
es decir a Mathematica que aplique automticamente la regla de transformacin
f[t_]->t^2 siempre que es posible.
Usted puede establecer reglas de transformacin para expresiones de
cualquier forma.
f[a b] + f[c d] /. f[x_ y_] -> f[x] + f[y]

Esto usa una regla de transformacin para x^p_.


1 + x^2 + x^4 /. x^p_ -> f[p]
Las secciones 2.3 y 2.5 explicarn detalladamente como establecer patrones y
reglas de transformacin para cualquier clase de expresin. Basta decir aqu que en
Mathematica todas las expresiones tienen una estructura simblica definida; las
reglas de transformacin le permiten transformar partes de aquella estructura.

9. Listas
9.1. Juntar objetos
Primero encontramos listas en la seccin 3.3 como una forma de agrupar nmeros.
En esta seccin, veremos diferentes formas de usar listas. Usted encontrar que las
listas son algunos de los objetos ms flexibles y poderosos en Mathematica. Ver
que las listas en Mathematica representan las generalizaciones de varios conceptos
estndar en matemticas e informtica.
En un nivel bsico, lo que esencialmente hace una lista en Mathematica es
proporcionar una forma de agrupar varias expresiones de cualquier clase.
He aqu una lista de nmeros.
{2, 3, 4}

Esto da una lista de expresiones simblicas.


x^% - 1
108

Usted puede derivar estas expresiones.


D[%, x]

Y luego puede encontrar los valores cuando x es reemplazado por 3.


% /. x -> 3
Las funciones matemticas que son construidas en Mathematica sobre todo son
hechas listables de modo que acten separadamente sobre cada elemento de una
lista. Esto no es, sin embargo, cierto para todas las funciones en Mathematica. A
no ser que usted las establezca, como una nueva funcin f que le permita
introducir listas como argumentos.

9.2. Fabricacin de tablas de valores


Usted puede usar listas como tablas de valores. Puede generar las tablas, por
ejemplo, evaluando una expresin para una secuencia de diferentes valores de un
parmetro.
Esto da una tabla de los valores de i 2 , con i variando de 1 a 6.
Table[i^2, {i, 6}]

He aqu una tabla de sin(n / 5) para n de 0 a 4.


Table[Sin[n/5], {n, 0, 4}]

Esto da los valores numricos.


N[%]

Tambin puede hacer tablas de frmulas.


Table[x^i + 2i, {i, 5}]
109

Table usa exactamente la misma notacin para el iterador que las


funciones Sum y Product, que fueron mencionadas en la seccin 6.4.
Product[x^i + 2i, {i, 5}]

Esto hace una tabla con valores de x variando desde 0 hasta 1 en pasos de
0.25.
Table[Sqrt[x], {x, 0, 1, 0.25}]

Usted puede realizar otras operaciones en las listas que obtiene con Table.
%^2 + 3

TableForm muestra las listas en un formato tabular. Note que ambas


palabras en TableForm empiezan con maysculas.
% // TableForm

Todos los ejemplos hasta ahora han sido de tablas obtenidas variando un slo
parmetro. Usted tambin puede hacer tablas que involucran varios parmetros.
Estas tablas multidimensionales son especificadas usando las notaciones estndares
para el iterador en Mathematica, mencionadas en la seccin 6.4.
Esto hace una tabla de x i + y j con i variando desde 1 hasta 3 y j
variando desde 1 hasta 2.
Table[x^i + y^j, {i, 3}, {j, 2}]
La tabla en este ejemplo es una lista de listas. Los elementos de la lista externa
corresponden a los valores sucesivos de i . Los elementos de cada lista interior
corresponden a los valores sucesivos de j , con i fijo.

110

A veces puede querer generar una tabla evaluando una expresin particular muchas
veces, sin incrementar alguna variable.
Esto crea una lista conteniendo cuatro copias del smbolo x.
Table[x, {4}]

Esto da una lista de cuatro nmeros seudo aleatorios. Table reevala


Random[] para cada elemento en al lista, de modo que usted consigue un
nmero diferente pseudoarbitrario.
Table[Random[ ], {4}]

Table[f, {imax}]
Table[f, {i, imax}]
Table[f, {i, imin, imax}]
Table[f, {i, imin, imax, di}]
Table[f, {i, imin, imax},
{j, jmin, jmax}]
TableForm[list]

da una lista de imax valores de f


da una lista de los valores de f con i variando
de 1 a imax
da una lista de valores con i variando de imin
a imax
usa pasos de di
genera una tabla multidimensional
muestra una lista en forma tabular

Funciones para generar tablas.

Usted puede usar las operaciones mencionadas en la seccin 3.4 para extraer los
elementos de la tabla.
Esto crea una tabla de 22, y le da el nombre m.
m = Table[i - j, {i, 2}, {j, 2}]

Esto extrae la primera sublista de la lista de listas, m.


m[[1]]

Esto extrae el segundo elemento de aquella sublista.


%[[2]]
111

Esto hace las dos operaciones juntas.


m[[1,2]]

Esto muestra m en forma tabular.


TableForm[m]

t[[i]] o Part[t, i]
t[[{i1, i2, ...}]] o
Part[t, {i1, i2, ...}]
t[[i, j, ...]] o
Part[t, i, j, ...]

da la i-sima sublista en t (tambin acepta la


)
forma
da una lista de las i1, i2, ... partes de t
da la parte de t correspondiente a
t[[i]][[ j]] ...

Implementacin de operaciones repetitivas.

Como mencionamos en la seccin 3.4, usted puede usar las listas en Mathematica
de modo anlogo a los arrays. Las listas de listas se usan entonces como series
bidimensionales. Cuando usted los presenta en una forma tabular, los dos ndices
de cada elemento son como sus coordenadas x e y.
Puede usar Table para generar arrays de cualquier dimensin.
Esto genera un array tridimensional de 222. Es una lista de listas de listas.
Table[i j^2 k^3, {i, 2}, {j, 2}, {k, 2}]

9.3. Vectores y matrices


Vectores y matrices en Mathematica simplemente son representados por listas y
por listas de listas, respectivamente.
{a, b, c}
{{a, b}, {c, d}}

vector (a, b, c)
a b

matriz
c d

Representacin de vectores y matrices por listas.

112

Esta es una matriz 22.


m = {{a, b}, {c, d}}

He aqu la primera fila.


m[[1]]

He aqu el elemento m12 .


m[[1,2]]

Este es un vector de dos componentes.


v = {x, y}

Los objetos p y q son tratados como escalares.


p v + q

Los vectores son sumados componente ms componente.


v + {xp, yp} + {xpp, ypp}

Esto calcula el producto punto (escalar) de dos vectores.


{x, y} . {xp, yp}

Usted tambin puede multiplicar una matriz por un vector.


m . v

O una matriz por una matriz.


m . m

113

O un vector por una matriz.


v . m

Esta combinacin genera un escalar.


v . m . v
Debido a la forma en que Mathematica usa listas para representar vectores y
matrices, usted nunca tiene que distinguir entre los vectores de la fila y de la
columna.
Table[f, {i, n}]
Array[a, n]
Range[n]
Range[n1, n2]
Range[n1, n2, dn]
list[[i]] o Part[list, i]
Length[list]
ColumnForm[list]
cv
a.b
Cross[a, b]
Norm[b]

construye un vector de longitud n evaluando


f para i = 1, 2, ..., n
construye un vector de longitud n de la
forma {a[1], a[2], ...}
crea la lista {1, 2, 3 ... , n}
crea la lista { n1, n1 + 1, ... , n2}
crea la lista { n1, n1 + dn, ... , n2}
da el i-simo elemento del vector list
da el nmero de elementos de list
muestra los elementos de list en una columna
multiplica por un escalar
producto punto de vectores
producto vectorial de vectores
norma de un vector

Funciones para vectores.

Table[f, {i, n}, {j, m}]


Array[a, m, n]
IdentityMatrix[n]
DiagonalMatrix[list]
list[[i]] o Part[list, i]

construye una matriz mn evaluando f para i


variando desde 1 hasta m y j variando desde
1 hasta n
construye una matriz mn con elementos
a[i, j]
genera una matriz identidad nn
genera una matriz cuadrada con los
elementos de list en la diagonal
da la i-sima fila de la matriz list

114

list[[All, j]] o
Part[list, All, j]
list[[i, j]] o
Part[list, i, j]
Dimensions[list]
MatrixForm[list]

da la j-sima columna de la matriz list


da el elemento i, j de la matriz list
da las dimensiones de la matriz list
muestra list en forma matricial

Funciones para matrices.

Esto construye una matriz 33 con elementos si, j = i + j .


s = Table[i+j, {i, 3}, {j, 3}]

Esto muestra s en un formato estndar de matriz bidimensional.


MatrixForm[s]

Esto da un vector con elementos simblicos. Usted puede usar esto para
obtener frmulas generales vlidas con cualquier tipo de componentes de un
vector.
Array[a, 4]

Esto da una matriz 32 con elementos simblicos.


Array[p, {3, 2}]

He aqu las dimensiones de la matriz previamente definida.


Dimensions[%]

Esto genera una matriz diagonal 33.


DiagonalMatrix[{a, b, c}]

115

cm
a.b
Inverse[m]
MatrixPower[m, n]
Det[m]
Tr[m]
Transpose[m]
Eigenvalues[m]
Eigenvectors[m]

multiplicacin por un escalar


producto matricial
matriz inversa
n-sima potencia de una matriz
determinante
traza
transpuesta
valores propios
vectores propios

Algunas operaciones matemticas en matrices.

He aqu la matriz 22 de variables simblicas que fue definida


anteriormente.
m

Esto da su determinante.
Det[m]

He aqu la transpuesta de m.
Transpose[m]

Esto da la inversa de m en forma simblica.


Inverse[m]

He aqu una matriz racional 33.


h = Table[1/(i+j-1), {i, 3}, {j, 3}]

Esto da su inversa.
Inverse[h]
116

Multiplicando la inversa con la matriz original da la matriz identidad.


% . h

He aqu una matriz 33.


r = Table[i+j+1, {i, 3}, {j, 3}]

Eigenvalues da los valores propios de la matriz.


Eigenvalues[r]

Eigenvectors da los vectores propios de la matriz.


Eigenvectors[r]

Esto da una aproximacin numrica de la matriz.


rn = N[r]

He aqu las aproximaciones numricas para los valores propios.


Eigenvalues[rn]

9.4. Elegir elementos de listas


First[list]
Last[list]
Part[list, n] o list[[n]]
Part[list, n] o list[[n]]
Part[list, {n1, n2, ...}] o
list[[{n1, n2, ...}]]

el primer elemento de la lista


el ltimo elemento
el n-simo elemento
el n-simo elemento empezando del final
la lista de elementos de las posiciones n1, n2,
...

Seleccin de elementos de listas.

117

Usaremos esta lista para los ejemplos.


t = {a,b,c,d,e,f,g}

He aqu el ltimo elemento de t.


Last[t]

Esto da el tercer elemento.


t[[3]]

Esto da una lista del primero y cuarto elementos.


t[[ {1, 4} ]]

Take[list, n]
Take[list, n]
Take[list, {m, n}]
Rest[list]
Drop[list, n]
Most[list]
Drop[list, n]
Drop[list, {m, n}]

los n primeros elementos de list


los n ltimos elementos
elementos m hasta n (inclusive)
list con su primer elemento quitado
list con sus n primeros elemento quitados
list con su ltimo elemento quitado
list con sus n ltimos elemento quitados
list con sus elementos m hasta n quitados

Seleccin de secuencias de listas.

Esto da los tres primeros elementos de la lista t arriba definida.


Take[t, 3]

Esto da los tres ltimos elementos.


Take[t, -3]

Esto da los elementos 2 hasta 5 inclusive.


Take[t, {2, 5}]
118

Esto da los elementos 3 hasta 7 en pasos de 2.


Take[t, {3, 7, 2}]

Esto da t con el primer elemento quitado.


Rest[t]

Usando Drop usted puede realizar la misma operacin que con Rest.
Drop[t, 1]

Esto da t con su primeros tres elementos quitados.


Drop[t, 3]

Esto da t con slo su tercer elemento quitado.


Drop[t, {3, 4}]
Las funciones en esta seccin le permiten elegir partes ubicadas en posiciones
particulares de las listas.

9.5. Prueba y bsqueda de elementos de una lista


Position[list, form]
Count[list, form]
MemberQ[list, form]
FreeQ[list, form]

posiciones en las cuales form ocurre en


list
nmero de veces que form aparece como un
elemento de list
prueba si form es un elemento de
list
prueba si form no ocurre en ninguna parte
list

Prueba y bsqueda de elementos de una lista.

119

La seccin anterior mostr como extraer partes de listas basndose en sus


posiciones o ndices. Mathematica tambin tiene funciones que buscan y prueban
elementos de listas, basndose en los valores de aquellos elementos.
Esto da una lista de las posiciones en las cuales a aparece en la lista.
Position[{a, b, c, a, b}, a]

Count cuenta el nmero de ocurrencias de a.


Count[{a, b, c, a, b}, a]

Esto muestra que a es un elemento de {a,b,c}.


MemberQ[{a, b, c}, a]

Por otra parte d, no lo es.


MemberQ[{a, b, c}, d]

Esto asigna a m una matriz identidad 33.


m = IdentityMatrix[3]

Esto muestra que 0 ocurre en alguna parte de m.


FreeQ[m, 0]

Esto da una lista de las posiciones en las cuales ocurre 0 en m.


Position[m, 0]

Esto da una lista de las posiciones en las cuales ocurre 1 en m.


Position[m, 1]

120

9.6. Agregar, quitar y modificar elementos de una lista


Prepend[list, element]
Append[list, element]
Insert[list, element, i]
Insert[list, element, i]
Delete[list, i]
ReplacePart[list, new, i]
ReplacePart[list, new,
{i, j}]

agrega element al inicio de list


agrega element al final de list
inserta element en la posicin i de list
inserta en la posicin i contando desde el
final de list
borra el elemento de la posicin i de list
reemplaza el elemento de la posicin i de list
con new
reemplaza list[[i, j]] con new

Funciones para manipular elementos en listas explcitas.

Esto da una lista con x insertado.


Prepend[{a, b, c}, x]

Esto inserta x en la posicin 2.


Insert[{a, b, c}, x, 2]

Esto reemplaza el tercer elemento en la lista con x.


ReplacePart[{a, b, c, d}, x, 3]

Esto reemplaza el elemento 1, 2 en una matriz 22.


ReplacePart[{{a, b}, {c, d}}, x, {1, 2}]
Las funciones como ReplacePart toman listas explcitas y dan nuevas listas. A
veces, sin embargo, puede ser que desee modificar una lista, sin generar
explcitamente una nueva lista.
v = { e1, e2, ...}
v[[i]] = new

asigna una lista a una variable


asigna un nuevo valor para el i-simo
elemento

Reseteo de los elementos de una lista.

121

Esto define v como una lista.


v = {a, b, c, d}

Esto indica que el tercer elemento debe ser x.


v[[3]] = x

Ahora v ha sido cambiado.


v

m[[i,j]] = new
m[[i]] = new
m[[All,j]] = new

reemplaza el elemento i, j de una matriz


reempaza la i-sima fila
reempaza la j-sima columna

Reseteo de elementos de matrices.

Esto define m como una matriz.


m = {{a, b}, {c, d}}

Esto reemplaza los elementos de la primera columna de la matriz.


m[[All, 1]] = {x, y}; m

Esto hace que los elementos de la primera columna sean 0.


m[[All, 1]] = 0; m

9.7. Combinacin de listas


Join[list1, list2, ...]
Union[list1, list2, ...]

concatena listas
combina lista quitando los elementos
repetidos y ordenando el resultado

Funciones para combinar listas.

122

Join concatena cualquier cantidad de listas.


Join[{a, b, c}, {x, y}, {t, u}]

Union combina listas, manteniendo slo los elementos distintos.


Union[{a, b, c}, {c, a, d}, {a, d}]

9.8. Listas y conjuntos


Mathematica por lo general mantiene los elementos de una lista en el orden en que
se ingresaron. Si quiere tratar una lista de Mathematica como un conjunto
matemtico, sin embargo, puede que desee ignorar el orden de los elementos en la
lista.
Union[list1, list2, ...]
Intersection[list1, list2,
...]
Complement[universo,
list1, ...]
Subsets[list]

da una lista de los distintos elementos en las


listi
da una lista de los elementos que son
comunes a todas las listi
da una lista de los elementos que estn en el
universo, pero no en cualquiera de las listi
da el conjunto potencia de list

Funciones de la teora de conjuntos.

Union da los elementos que aparecen en cualquiera de las listas.


Union[{c, a, b}, {d, a, c}, {a, e}]

Intersection da slo elementos que aparecen n en todas las listas.


Intersection[{a, c, b}, {b, a, d, a}]

Complement da elementos que aparecen en la primera lista, pero no en


cualquiera de las otras.
Complement[{a, b, c, d}, {a, d}]

123

Esto da el conjunto potencia de la lista.


Subsets[{a, b, c}]

9.9. Reordenamiento de listas


Sort[list]
Union[list]
Reverse[list]
RotateLeft[list]
RotateRight[list]

clasifica los elementos de list en orden


da una lista de los elementos que son
comunes a todas las listi
invierte el orden de los elementos de list
rota los elementos de list n lugares a la
izquierda
rota n lugares a la derecha

Funciones para reordenar listas.

Esto ordena los elementos de una lista en forma estndar. En casos simples
como ste el ordenamiento es alfabtico o numrico.
Sort[{b, a, c, a, b}]

Esto ordenada los elementos, quitando los que estn duplicados.


Union[{b, a, c, a, b}]
Esto rota los elementos de la lista dos lugares a la izquierda.
RotateLeft[{a, b, c, d, e}, 2]

Puede rotar a la derecha dando un valor negativo, o usando RotateRight.


RotateLeft[{a, b, c, d, e}, -2]

PadLeft[list, len, x]
PadRight[list, len, x]

completa list en la izquierda con x hasta


lograr la longitud len
completa list en la derecha

Completar listas.

124

Esto completa una lista con varias x hasta lograr que tenga longitud 10.
PadLeft[{a, b, c}, 10, x]

9.10. Agrupacin y combinacin de elementos de listas


Partition[list, n]
Partition[list, n, d]
Split[list]

particiona listas en piezas de n elementos


use d para piezas sucesivas
da el conjunto potencia de list

Funciones para agrupar elementos de listas.

He aqu una lista.


t = {a, b, c, d, e, f, g}

Esto agrupa los elementos en pares, deshacindose del ltimo elemento.


Partition[t, 2]

Esto agrupa elementos en triadas. No hay traslapamiento entre las triadas.


Partition[t, 3]

Esto hace triadas de elementos, con cada triada sucesiva compensada por
slo un elemento.
Partition[t, 3, 1]

Esto divide la lista en piezas de elementos idnticos.


Split[{a, a, b, b, b, a, a, a, b}]

Tuples[list, n]
Tuples[{list1, list2, ...}]

genera todas las n-uplas posibles de


elementos de list
genera el producto cartesiano list1list2...

Encuentra las uplas posibles de elementos en listas.

125

Esto da todas las formas posibles de escoger dos elementos de la lista.


Tuples[{a, b}, 2]

Esto da todas las formas posibles de escoger un elemento de cada lista.


Tuples[{{a, b}, {1, 2, 3}}]

9.11. Ordenamiento de listas


Sort[list]
Min[list]
Ordering[list, n]
Max[list]
Ordering[list, n]
Ordering[list]
Permutations[list]

clasifica los elementos de list en orden


el menor elemento en list
posiciones de n menores elementos en
list
el mayor elemento en list
posiciones de n mayores elementos en list
el orden de todos los elementos en list
todos los posibles ordenamientos de list

Ordenamiento de listas.

He aqu una lista.


t = {17, 21, 14, 9, 18}
Esto da el menor elemento de la lista.
Min[t]

Esto da las posiciones de los tres menores elementos.


Ordering[t, 3]

He aqu los elementos.


t[[%]]

126

9.12. Reorganizacin de listas anidadas


Flatten[list]
Flatten[list, n]
Partition[list, {n1, n2,
...}]
Transpose[list]
RotateLeft[list, {n1, n2,
...}]
PadLeft[list, {n1, n2,
...}]

elimina todos los niveles en list


elimina los n ms altos niveles en list
particiona en bloques de tamao n1n2...
intercambia los dos niveles superiores de list
rota niveles sucesivos n lugares
completa niveles sucesivos hasta lograr la
longitud ni

Algunas funciones para reorganizar listas anidadas.

Esto elimina las sublistas. Usted tomarlo como tan solo un comando
eficaz que quita todos las llaves interiores.
Flatten[{{a}, {b, {c}}, {d}}]

Esto elimina slo un nivel de sublista.


Flatten[{{a}, {b, {c}}, {d}}, 1]
Hay muchas otras operaciones que usted puede realizar en listas anidadas.

10. Grficos y Sonido


10.1. Grficos bsicos
Plot[f, {x, xmin, xmax}]
Plot[{f1, f2, ...},
{x, xmin, xmax}]

genera todas las n-uplas posibles de


elementos de list
genera el producto cartesiano list1list2...

Trazado bsico de funciones.

Esto traza un grfico de sin( x) como una funcin de x desde 0 hasta 2.


Plot[Sin[x], {x, 0, 2Pi}]
127

Puede trazar funciones que tienen singularidades. Mathematica tratar de


encontrar escalas apropiadas.
Plot[Tan[x], {x, -3, 3}]

Puede dar una lista de funciones para que sean trazadas.


Plot[{Sin[x], Sin[2x], Sin[3x]}, {x, 0, 2Pi}]

Para obtener curvas suaves, Mathematica tiene que evaluar las funciones que usted
desea trazar en un gran nmero de puntos. Por consiguiente, es importante que
establezca las cosas de modo que cada evaluacin de las funciones sea tan rpida
como se pueda.

128

Cuando pide a Mathematica que trace un objeto, digamos f, como una funcin de
x, Mathematica puede hacerlo de dos formas. La primera es tratar a f como una
expresin simblica en trminos de x, y luego evaluar esta expresin
numricamente para los valores especficos de x necesarios en el trazado. La
segunda es calcular primero que valores de x son necesarios, y slo posteriormente
evaluar f con aquellos valores de x.
Si digita Plot[f, {x, xmin, xmax}] es usada la segunda alternativa. Esto tiene la
ventaja que Mathematica slo trata de evaluar f para valores numricos especficos
de x; sin importar si f define valores sensibles cuando x es simblico.
Hay, sin embargo, algunos casos en los cuales es mucho mejor tener f evaluada
antes de empezar a hacer el trazado. Un caso tpico es cuando f es en realidad un
comando que genera una tabla de funciones. Usted puede hacer que Mathematica
primero produzca la tabla, y en seguida evale las funciones, antes que producir la
tabla de nuevo para cada valor de x. Puede hacer esto digitando
Plot[Evaluate[f], {x, xmin, xmax}].
Esto hace un trazado de las funciones Bessel J n ( x) con n variando desde 1
hasta 4. Evaluate le dice a Mathematica que primero haga la tabla de
funciones, y slo entonces evale para valores particulares de x.
Plot[Evaluate[Table[BesselJ[n, x], {n, 4}]],
{x, 0, 10}]

Esto encuentra la solucin numrica de una ecuacin diferencial, como se


mostr en la seccin 7.4.
NDSolve[{y'[x] == Sin[y[x]], y[0] == 1}, y,
{x, 0, 4}]

129

He aqu un trazado de la solucin. Evaluate le dice a Mathematica que


primero obtenga un objeto con InterpolatingFunction, y luego lo evale en
una secuencia de valores de x.
Plot[Evaluate[ y[x] /. % ], {x, 0, 4}]

Plot[f, {x, xmin, xmax}]


Plot[Evaluate[f],
{x, xmin, xmax}]
Plot[Evaluate[Table[
f,...]],{x, xmin, xmax}]
Plot[Evaluate[y[x] /.
solution]],{x, xmin, xmax}]

primero obtiene valores numricos para x,


luego evala f para cada valor de x
primero evala f, luego obtiene valores
numricos especficos de f
genera una lista de funciones, y las traza
traza una solucin numrica para una
ecuacin diferencial obtenida con NDSolve

Mtodos para establecer objetos a trazar.

10.2. Opciones
Cuando Mathematica traza un grfico para usted, tiene que escoger muchas
opciones. Tiene que resolverse lo que deben ser las escalas, donde se debe mostrar
la funcin, cmo deben dibujarse los ejes, etctera. La mayora de las veces,
Mathematica probablemente tomar opciones bastante buenas. Sin embargo, si
usted quiere obtener los mejores dibujos posibles para sus objetivos particulares,
debera ayudar a Mathematica en la eleccin de algunas de sus opciones.
Hay un mecanismo general para especificar opciones en las funciones de
Mathematica. Cada opcin tiene un nombre definido. Como ltimos argumentos de
una funcin como Plot, usted puede incluir una secuencia de reglas de la forma
nombre -> valor, para especificar los valores de varias opciones. A cualquier
opcin para la cual usted no da una regla explcita se le asigna su valor por
defecto.
130

Plot[f, {x, xmin, xmax},


option -> value]

hace un trazado, especificando un valor


particular para una opcin

Eleccin de una opcin para el trazado de un grfico.

Una funcin como Plot tiene muchas opciones que usted puede ajustar. Por lo
general tendr que usar varias de ellas a la vez.
Si usted quiere optimizar un trazado particular, probablemente deber
experimentar, intentando una secuencia de diferentes ajustes para varias opciones.
Cada vez que usted produce un grfico, puede especificar opciones para l. La
seccin 10.3 mencionar como usted puede cambiar algunas opciones, an despus
de que ha producido el grfico.
nombre de la opcin

valor por defecto

AspectRatio

1/GoldeRatio

Axes
AxesLabel

Automatic
None

AxesOrigin

Automatic

TextStyle

$TextStyle

FormatType

StandardForm

DisplayFunction

$DisplayFunction

Frame

False

proporcin alto-ancho de
el grfico; Automatic
se usa para escalas iguales
de x e y
si se desea incluir ejes
etiquetas para colocarles a
los ejes; {xlabel, None}
especifica una etiqueta
para el eje x; {xlabel,
ylabel} especifica una
etiqueta para ambos ejes
el punto en el que se
interceptan los ejes
el estilo por defecto a usar
para el texto del grfico
el tipo de formato por
defecto a usar para el
texto en el grfico
para mostrar los grficos;
Identity no los
muestra
si desea dibujar un marco
alrededor del grfico

131

FrameLabel

None

FrameTicks

Automatic

GridLines

None

PlotLabel

None

PlotRange

Automatic

Ticks

Automatic

etiquetas alrededor del


marco; d una lista
ordenada en sentido
horario empezando con el
valor inferior del eje x
qu marcas dibujar si hay
un marco; None no
muestra ninguna marca
qu lneas de cuadrcula
incluir; Automatic
incluye una lnea para
cada marca importante
una expresin que se
imprimir como etiqueta
para el grfico
el rango de las
coordenadas a incluir en el
grfico; All incluye
todos los puntos
indica qu marcas dibujar
si hay ejes; None no
muestra ninguna marca

Algunas de las opciones de Plot. Estas opciones tambin pueden usarse en Show.

He aqu un grfico con todas las opciones que tienen sus valores por
defecto.
Plot[Sin[x^2], {x, 0, 3}]

Esto dibuja ejes sobre un marco alrededor del grfico.


Plot[Sin[x^2], {x, 0, 3}, Frame->True]
132

Esto especifica las etiquetas para los ejes x e y. Las expresiones que usted
da como etiquetas son impresas como salidas de Mathematica. Puede dar
cualquier porcin de texto ponindolo entre comillas.
Plot[Sin[x^2], {x, 0, 3},
AxesLabel -> {"x value", "Sin[x^2]"} ]

Usted puede dar varias opciones al mismo tiempo, en cualquier orden.


Plot[Sin[x^2], {x, 0, 3},
Frame -> True, GridLines -> Automatic]

133

Ajustar la opcin AspectRatio cambia la forma entera de su grfico.


AspectRatio da el cociente del ancho y alto. Su valor por defecto es el
inverso de la proporcin ureasupuestamente la forma ms agradable para
un rectngulo.
Plot[Sin[x^2], {x, 0, 3}, AspectRatio -> 1]

Automatic
None
All
True
False

usa algoritmos internos


no incluye esto
incluye todo
hace esto
no hace esto

Algunos ajustes comunes para varias opciones.

Cuando Mathematica traza un grfico, intenta ajustar las escalas de x e y para


incluir slo las partes interesantes del grfico. Si su funcin aumenta muy
rpidamente, o tiene singularidades, las partes donde se torna demasiado grande
sern cortadas. Especificando la opcin PlotRange, usted puede controlar
exactamente qu rangos de las coordenadas x e y se incluyen en su grfico.
Automatic
All
{ymin, ymax}
{xrange, yrange}

muestra por lo menos una fraccin grande de


los puntos, incluyendo la regin
interesante (ajuste por defecto)
muestra todos los puntos
muestra un rango especfico de los valores
de y
muestra los rangos especificados de los
valores de x e y

Ajustes para la opcin PlotRange.

134

Ajustar la opcin PlotRange da los lmites explcitos de y para el grfico.


Con los lmites especificados aqu, el fondo de la curva es cortado.
Plot[Sin[x^2], {x, 0, 3},
PlotRange -> {0, 1.2}]

Mathematica siempre trata de trazar funciones como curvas suaves. Por


consiguiente, en lugares donde su funcin oscila mucho, Mathematica usar ms
puntos.
En general, Mathematica intenta adaptar el muestreo de su funcin a la forma de
la funcin. Hay, sin embargo, un lmite, que usted puede ajustar, para cmo
finalmente Mathematica muestrear una funcin.
La funcin sin ( 1x )

oscila infinitamente a menudo cuando

0.

Mathematica intenta muestrear ms puntos en la regin donde la funcin


oscila mucho, pero nunca puede muestrear el nmero infinito que usted
necesitara para reproducir la funcin exactamente. Por consiguiente, hay
leves interferencias en el diagrama.
Plot[Sin[1/x], {x, -1, 1}]

135

nombre de la opcin

valor por defecto

PlotStyle

Automatic

PlotPoints

25

MaxBend

10.

PlotDivision

30.

Compiled

True

una lista de listas de


directivas para grficos a
utilizar para cada curva
el mnimo nmero de
puntos para muestrear la
funcin
el ngulo mximo de
flexin entre segmentos
sucesivos de una curva
el factor mximo de
subdivisin del muestreo
de la funcin
si desea compilar la
funcin que es trazada

Ms opciones para Plot. Estas opciones no pueden usarse en Show.

Es importante comprender que puesto que Mathematica puede muestrear su


funcin solamente en un nmero limitado de puntos, siempre pueden faltar
caractersticas de la funcin. Aumentando PlotPoints, usted puede hacer que
Mathematica muestree su funcin en un mayor nmero de puntos. Por supuesto,
cuanto mayor sea PlotPoints, ms demora Mathematica en trazar cualquier
funcin, incluso si sta es suave.
Ya que Plot tiene que evaluar su funcin muchas veces, es importante hacer
cada evaluacin tan rpida como sea posible. Por consiguiente, Mathematica por lo
general compila su funcin en un pseudocdigo de bajo nivel que puede ser
ejecutado de manera muy eficiente. Un problema potencial con esto, sin embargo,
es que el pseudocdigo permite slo operaciones numricas acordes a la precisin
de mquina. Si la funcin que usted traza requiere operaciones de precisin ms
alta, debera apagar la compilacin en Plot. Usted puede hacer esto poniendo la
opcin Compile -> False.
Note que Mathematica slo puede compilar el cdigo en lnea; no puede, por
ejemplo, compilar funciones que usted ha definido. Por consiguiente, cuando
posible, debera usar Evaluate como se describe en la seccin 10.1 para evaluar
cualquier definicin y conseguir una forma tal que el compilador de Mathematica
puede manejar.

136

10.3. Rehacer y combinar grficos


Mathematica guarda la informacin sobre cada grfico que usted produce, de modo
que usted ms tarde pueda rehacerlo. Cuando usted rehace grficos, puede cambiar
algunas opciones que ha usado.
Show[plot]
Show[plot, option -> value]
Show[plot1, plot2, ...]
Show[GraphicsArray[
{{plot1, plot2, ...} , ...}]]
InputForm[plot]

rehace un grfico
rehace con opciones cambiadas
combina varios grficos
dibuja un array de grficos
muestra informacin guardada de un grfico

Funciones para manipular grficos.

He aqu un grfico simple.


por lo general es impresa en la
lnea de salida para apoyar la informacin que guarda Mathematica sobre el
grfico.
Plot[ChebyshevT[7, x], {x, -1, 1}]

Esto rehace el grfico anterior.


Show[%]

137

Cuando usted redibuja el grfico, puede cambiar algunas de las opciones.


Esto cambia la opcin del rango de y.
Show[%, PlotRange -> {-1, 2}]

Esto toma el grfico anterior, y cambia otra opcin en l.


Show[%, PlotLabel -> "A Chebyshev Polynomial"]

Usando Show con una secuencia de opciones diferentes, usted puede ver el mismo
grfico de varias formas diferentes. Puede desear hacer esto, por ejemplo, si trata
de encontrar el mejor ajuste posible de opciones.
Tambin puede usar Show para combinar grficos. No importa si los grficos no
tienen la misma escala: Mathematica siempre escoger nuevas escalas para incluir
los puntos que usted quiere.
Esto fija gj0 para que sea un grfico de J 0 ( x) desde x = 0 hasta 10.
gj0 = Plot[BesselJ[0, x], {x, 0, 10}]

138

He aqu el grfico de Y1 ( x) desde x = 1 hasta 10.


gy1 = Plot[BesselY[1, x], {x, 1, 10}]

Esto muestra los dos grficos anteriores combinadas en uno. Note que la
escala es ajustada apropiadamente
gjy = Show[gj0, gy1]

Usando Show[plot1, plot2, ] usted puede combinar varios grficos en uno.


GraphicsArray le permite dibujar varios grficos en un array.
Show[GraphicsArray[
{plot1, plot2, ...}]]
Show[GraphicsArray[
{{plot1}, {plot2}, ...}]]

dibuja una fila de grficos


dibuja una fila de grficos
139

Show[GraphicsArray[
{{plot11, plot12, ...} , ...}]]
Show[GraphicsArray[
plots, GraphicsSpacing
-> {h, v}]]

dibuja un array rectangular de grficos


especifica el espaciado horizontal y vertical
entre los grficos

Dibujo de arrays de grficos.

Esto muestra los ltimos grficos anteriores en un array.


Show[GraphicsArray[{{gj0, gjy}, {gy1, gjy}}]]

Si muestra de nuevo un array de grficos con Show, cualquier opcin que


especifica se usar para todo el array, antes que para grficos individuales.
Show[%, Frame->True, FrameTicks->Automatic]

He aqu una forma de cambiar opciones para todos los grficos del array.
Show[ % /. (Ticks -> Automatic) ->
(Ticks -> None) ]

140

GraphicsArray por defecto pone un borde estrecho alrededor de cada uno de


los grficos en el array que produce. Usted puede cambiar este el tamao de este
borde poniendo la opcin GraphicsSpacing -> {h, v}. Los parmetros h y v
dan los espaciados horizontales y verticales a usarse.
Esto incrementa el espaciado horizontal, pero disminuye el espaciado
vertical entre los grficos en el array.
Show[%, GraphicsSpacing -> {0.3, 0}]

Cuando usted traza un grfico, Mathematica guarda la lista de puntos que este us,
junto con alguna otra informacin. Usando lo guardado, usted puede rehacer
grficos de muchas formas diferentes con Show. Sin embargo, usted debera
comprender que no importa que opciones especifique, Show todava tiene el
mismo conjunto bsico de puntos para trabajar. Por ejemplo, si usa opciones de
modo que Mathematica muestre una pequea parte de su grfico original ampliado,
usted probablemente ser capaz de ver los puntos individuales de la muestra que
Plot ha usado. Las opciones como PlotPoints slo pueden ajustarse en el
comando Plot original.

141

He aqu un grfico simple.


Plot[Cos[x], {x, -Pi, Pi}]

Esto muestra una pequea regin del grfico en una forma ampliada. En esta
resolucin los segmentos de recta individuales que fueron producidos por le
comando Plot original.
Show[%, PlotRange -> {{0, .3}, {.92, 1}}]

10.4. Manipulacin de opciones


Hay un nmero de funciones incorporadas en Mathematica que, como Plot,
tienen varias opciones que usted puede ajustar. Mathematica proporciona algunos
mecanismos generales para manejar tales opciones.
Si usted no da un ajuste especfico para una opcin de una funcin como Plot,
entonces Mathematica automticamente usar un valor por defecto para la opcin.
La funcin Options[function, option] le permite averiguar el valor por defecto
para una opcin particular. Usted puede resetear el valor por defecto usando
SetOptions[function, option -> value]. Note que si hace esto, el valor por
defecto que usted ha dado quedar hasta que lo cambie explcitamente.
142

Options[function]
Options[function, option]
SetOptions[function,
option -> value, ...]

da una lista de los valores por defecto


actuales para todas las opciones
da el valor por defecto para una opcin
particular
resetea el valor por defecto

Manipulacin de valores por defecto para opciones.

He aqu el valor por defecto actual para la opcin PlotRange de Plot.


Options[Plot, PlotRange]

Esto resetea el valor por defecto para la opcin PlotRange. El punto y


coma impide que Mathematica imprima la salida de la lista bastante larga de
opciones de Plot.
SetOptions[Plot, PlotRange->All] ;
Hasta que usted explcitamente lo resetee, el valor por defecto de la opcin
PlotRange ahora ser All.
Options[Plot, PlotRange]

Esto vuelve a resetear el valor para la opcin PlotRange.


SetOptions[Plot, PlotRange->{{-1, 1}, {-1, 1}}] ;
Hasta que usted explcitamente lo resetee, el valor por defecto de la opcin
PlotRange ahora ser {{-1, 1}, {-1, 1}}.
Options[Plot, PlotRange]
Los objetos grficos que obtiene con Plot o Show almacenan la informacin de
las opciones que usan. Usted puede obtener esta informacin aplicando la funcin
Options a estos objetos grficos.
Options[plot]
Options[plot, option]

muestra todas las opciones usadas por el


grfico plot
muestra el ajuste para una opcin especfica
143

AbsoluteOptions[plot,
option]

muestra la forma absoluta usada para una


opcin especfica, incluso si el ajuste para la
opcin Automatic o All

Adquisicin de informacin sobre opciones usadas en grficos.

He aqu un grfico, con ajustes por defecto para todas las opciones.
g = Plot[SinIntegral[x], {x, 0, 20}]

El ajuste usado para la opcin PlotRange fue All.


Options[g, PlotRange]

AbsoluteOptions da los valores absolutos escogidos automticamente


para PlotRange.
AbsoluteOptions[g, PlotRange]

10.5. Contornos y grficos de densidad


ContourPlot[f,
{x, xmin, xmax},
{y, ymin, ymax}]
DensityPlot[f,
{x, xmin, xmax},
{y, ymin, ymax}]

traza un grfico de contorno de f como una


funcin de x e y
traza un grfico de densidad de f

Funciones para manipular grficos.

144

Esto da un grfico de contorno de la funcin sin( x) sin( y ) .


ContourPlot[Sin[x] Sin[y], {x, -2, 2}, {y, -2, 2}]

Un grfico de contorno le da esencialmente un mapa topogrfico de una funcin.


Los contornos unen puntos sobre la superficie que tienen la misma altura. El valor
por defecto permite obtener contornos correspondientes a una secuencia de valores
de z igualmente espaciados. Los grficos de contorno producidos por Mathematica
por defecto son sombreados, de tal modo que las regiones con valores de z ms
altos sean ms claras.
nombre de la opcin

valor por defecto

ColorFunction

Automatic

Contours

10

PlotRange

Automatic

ContourShading
PlotPoints

True
30.

Compiled

True

colores a usar para el


sombreado; Hue usa una
secuencia de matices
el total de contornos, o la
lista de valores de z para
contornos
el rango de valores a ser
incluidos, usted puede
especificar {zmin, zmax},
All o Automatic
si hay que usar sombreado
puntos de evaluacin en
cada direccin
si hay que compilar la
funcin que es trazada

Algunas opciones para ContourPlot. El primer conjunto tambin puede usarse en


Show.

145

Particularmente si usted utiliza una visualizadora o impresora que no maneja


bien los niveles de gris, puede encontrar mejor prescindir del sombreado en
grficos de contorno.
Show[%, ContourShading -> False]

Usted debe comprender que si no evala su funcin sobre una cuadrcula bastante
fina, puede haber inexactitudes en su grfico de contorno. Un punto a notar es que
mientras que una curva generada por Plot puede ser inexacta si su funcin vara
demasiado rpido en una regin particular, la forma de los contornos puede ser
inexacta si su funcin vara demasiado despacio. Una funcin que vara
rpidamente da un modelo regular de contornos, pero una funcin que es casi plana
puede dar contornos irregulares. Usted puede solucionar tales problemas
aumentando el valor de PlotPoints.
Los grficos de densidad muestran los valores de su funcin como un array
regular de puntos. Las regiones ms claras son ms altas.
DensityPlot[Sin[x] Sin[y], {x, -2, 2}, {y, -2, 2}]

Usted puede deshacerse de la red como aqu.


Show[%, Mesh -> False]
146

nombre de la opcin

valor por defecto

ColorFunction
Mesh
PlotPoints

Automatic
True
25

Compiled

True

colores para el sombreado


si hay que dibujar una red
puntos de evaluacin en
cada direccin
si desea compilar la
funcin que es trazada

Algunas opciones para DensityPlot. El primer conjunto tambin puede usarse en


Show.

10.6. Grficos de superficies tridimensionales


Plot3D[f, {x, xmin, xmax},
{y, ymin, ymax}]

traza un grfico tridimensional de f como


una funcin de las variables x e y

Trazado bsico de una funcin 3D.

Esto traza un grfico tridimensional de la funcin sin( x y ) .


Plot3D[Sin[x y], {x, 0, 3}, {y, 0, 3}]

147

Hay muchas opciones para grficos tridimensionales en Mathematica. Slo


algunos sern discutidos en esta seccin.
El primer conjunto de opciones para grficos tridimensionales es en gran parte
anlogo a aquellos provedos en el caso bidimensional.
nombre de la opcin

valor por defecto

Axes
AxesLabel

Automatic
None

Boxed

True

ColorFunction

Automatic

TextStyle

$TextStyle

FormatType

StandardForm

DisplayFunction

$DisplayFunction

FaceGrids

None

HiddenSurface

True

Lighting

True

Mesh

True

si hay que incluir ejes


etiquetas para colocarles a
los ejes; {xlabel, None,
None} especifica una
etiqueta para el eje x,
{xlabel, ylabel, zlabel}
para todos los ejes
si hay que dibujar una caja
tridimensional alrededor
de la superficie
colores a usar para el
sombreado; Hue usa una
secuencia de matices
el estilo por defecto a usar
para el texto del grfico
el tipo de formato por
defecto a usar para el
texto en el grfico
para mostrar los grficos;
Identity no los
muestra
para dibujar cuadrculas
sobre los bordes de las
caras de la caja; All
dibuja una cuadrcula
sobre cada cara
si se desea dibujar la
superficie como un slido
si se desea colorear la
superficie usando
iluminacin simulada
si se desea dibujar una red
en la superficie

148

PlotRange

None

Shading

Automatic

ViewPoint

{1.3, -2.4, 2}

PlotPoints

25

Compiled

True

el rango de las coordenadas a incluir en el grfico;


usted puede especificar
All, {zmin, zmax} o
{{xmin, xmax}, {ymin,
ymax},{zmin, zmax}}
si se desea sombrear la
superficie o no
el punto en el espacio
desde el cual se desea
mirar la superficie
el nmero de puntos para
muestrear la funcin en
cada direccin; {nx, ny}
especifica diferentes nmeros en las direcciones
de x e y
si desea compilar la
funcin que es trazada

Algunas opciones para Plot3D. Estas opciones tambin pueden usarse en Show.

Esto vuelve a dibujar el grfico anterior, con opciones cambiadas. Con este
ajuste para PlotRange, slo es mostrada la parte de la superficie en el
rango 0.5 z 0.5 .
Show[%, PlotRange -> {-0.5, 0.5}]

Cuando usted hace el grfico original, puede elegir muestrear ms puntos.


Necesitar hacer esto para conseguir buenos cuadros de las funciones que
oscilan mucho.
Plot3D[10 Sin[x + Sin[y]], {x, -10, 10},
{y, -10, 10}, PlotPoints -> 50]
149

He aqu el mismo grfico, con etiquetas para los ejes, y cuadrculas aadidas
a cada cara.
Show[%, AxesLabel -> {"Time", "Depth", "Value"},
FaceGrids -> All]

Probablemente la cuestin ms importante en el trazado de una superficie


tridimensional es especificar desde donde usted quiere mirar la superficie. La
opcin ViewPoint para Plot3D y Show le permite especificar el punto {x, y,
z} del espacio desde el cual usted desea ver una superficie. En muchas versiones
de Mathematica, hay formas de escoger puntos de vista tridimensionales
interactivamente, luego obtener las coordenadas para ajustar la opcin
ViewPoint.
He aqu una superficie, vista desde el punto de vista por defecto
. Este punto de vista se elige por ser genrico, de modo
que las alineaciones coincidentes visualmente confusas entre diversas partes
de su objeto sean imperceptibles.
Plot3D[Sin[x y], {x, 0, 3}, {y, 0, 3}]

150

Esto vuelve a dibujar el grfico, con el punto de vista directamente enfrente.


Note el efecto de perspectiva que hace que la parte trasera de la caja parezca
mucho ms pequea que la del frente.
Show[%, ViewPoint -> {0, -2, 0}]

{1.3, -2.4, 2}
{0, -2, 0}
{0, -2, 2}
{0, -2, -2}
{-2, -2, 0}
{2, -2, 0}
{0, 0, 2}

punto de vista por defecto


directamente enfrente
enfrente y encima
enfrente y abajo
esquina izquierda
esquina derecha
directamente encima

Opciones tpicas para la opcin ViewPoint.

La vista humana no es particularmente buena para entender superficies


matemticas complicadas. Por consiguiente, usted tiene que generar cuadros que
contengan tantas pistas como sea posible sobre la forma de la superficie.

151

Los puntos de vista ligeramente encima de la superficie por lo general trabajan


mejor. Es generalmente una buena idea mantener el punto vista suficientemente
cerca a la superficie para que haya algn efecto de la perspectiva. Tener una caja
dibujada explcitamente alrededor de la superficie es provechoso en el
reconocimiento de la orientacin de la superficie.
He aqu un grfico con los ajustes por defecto para las opciones de la
superficie representada.
g = Plot3D[Exp[-(x^2+y^2)], {x, -2, 2}, {y, -2, 2}]

Esto muestra la superficie sin la red dibujada. Es por lo general mucho ms


difcil de ver la forma de la superficie si la red no est all.
Show[g, Mesh -> False]

Esto muestra la superficie sin sombrear. Algunos dispositivos de


visualizacin pueden no ser capaces de mostrar sombreado.
Show[g, Shading -> False]

152

La inclusin de sombreado y red es por lo general de gran ayuda para entender la


forma de una superficie. En algunos dispositivos de salida grfica vectorial, sin
embargo, puede que usted no sea capaz de obtener sombreado. Tambin debe
comprender que cuando el sombreado es incluido, puede tardar mucho la ejecucin
la superficie sobre su dispositivo de salida.
Para aadir un elemento suplementario de realismo a la grfica tridimensional,
Mathematica por defecto colorea superficies tridimensionales usando un modelo
de iluminacin simulado. En el caso por defecto, Mathematica asume que hay tres
fuentes de iluminacin que brillan sobre el objeto desde la parte superior derecha.
Mientras en la mayora de casos, en particular con dispositivos de salida en color,
la iluminacin simulada es una ventaja, a veces puede ser confusa. Si ajusta la
opcin Lighting -> False, entonces Mathematica no usar la iluminacin
simulada, pero en cambio va a sombrear todas las superficies con niveles de gris
determinados por su altura.
Plot3D por lo general colorea superficies usando un modelo de
iluminacin simulado.
Plot3D[Sin[x y], {x, 0, 3}, {y, 0, 3}]

153

Lighting -> False apaga la iluminacin simulada, y en lugar de esto


sombrea superficies con niveles grises determinados por la altura.
Show[%, Lighting -> False]

Con Lighting -> False, Mathematica sombrea superficies segn la altura.


Usted tambin puede decir a Mathematica explcitamente como sombrear cada
elemento de una superficie.
Plot3D[{f,
GrayLevel[s]},
{x, xmin, xmax},
{x, ymin, ymax}]
Plot3D[{f, Hue[s]},
{x, xmin, xmax},
{x, ymin, ymax}]

grafica una superficie correspondiente a f,


sombreada en gris de acuerdo a la funcin s

sombra por variacin de matices de color


antes que por niveles de gris

Funciones para manipular grficos.

Esto muestra una superficie cuya altura es determinada por la funcin


Sin[x y], pero cuyo sombreado es determinado por GrayLevel[x/3].
Plot[Sin[x], {x, 0, 2Pi}]

154

10.7. Conversin entre tipos de grficos


Contornos, grficos de densidad y grficos de superficies son tres formas diferentes
de mostrar esencialmente la misma informacin sobre una funcin. En todos los
casos, usted necesita los valores de una funcin en una cuadrcula de puntos.
Las funciones ContourPlot, DensityPlot y Plot3D de Mathematica
producen objetos grficos de Mathematica que incluyen una lista de los valores de
su funcin en una cuadrcula. Por consiguiente, habiendo usado cualesquiera de
estas funciones, Mathematica fcilmente puede tomar su salida y usarla para
producir otro tipo de grfico.
He aqu el grfico de una superficie.
Plot3D[BesselJ[nu, 3x], {nu, 0, 3}, {x, 0, 3}]

Esto convierte el objeto producido por Plot3D en un grfico de contorno.


Show[ ContourGraphics[ % ] ]

155

Show[ContourGraphics[
g]]
Show[DensityGraphics[
g]]
Show[SurfaceGraphics[
g]]
Show[Graphics[g]]

convierte a un grfico de contorno


convierte a un grfico de densidad
convierte a una superficie
convierte a una imagen bidimensional

Conversiones entre tipos de grficos.

Usted puede usar GraphicsArray para mostrar diferentes tipos de


grficos juntos.
Show[ GraphicsArray[ {%, %%} ] ]

10.8. Grficas de listas de datos


Hasta ahora, hemos hablado como puede usar Mathematica para hacer los grficos
de funciones. Usted da una funcin a Mathematica, y Mathematica construye una
curva o superficie evaluando la funcin en muchos puntos diferentes.
Esta seccin describe como usted puede hacer grficos de listas de datos, en vez de
funciones. (La seccin 12.3 menciona como leer datos de archivos externos y
programas). Los comandos de Mathematica para trazar las listas de datos son
anlogos a los mencionados para trazar funciones.
ListPlot[{y1, y2, ...}]
ListPlot[{{x1, y1},
{x2, y2}, ...}]

grafica y1, y2, ... con los valores de x 1, 2, ...


grafica los puntos (x1, y1), ...

156

ListPlot[list,
PlotJoined -> True]
ListPlot3D[
{{z11, z12, ...},
{z21, z22, ...}, ...}]
ListContourPlot[array]
ListDensityPlot[array]

una los puntos con lneas


hace un grfico tridimensional del array
alturas zyx
hace un grfico de contorno a partir de un
array de alturas
hace un grfico de densidad

Funciones para trazar listas de datos.

He aqu una lista de valores.


t = Table[i^2, {i, 10}]

Esto traza un grfico de los valores.


ListPlot[t]

Esto une los puntos con lneas.


ListPlot[t, PlotJoined -> True]

157

Esto da una lista de pares x, y.


Table[{i^2, 4 i^2 + i^3}, {i, 10}]

Esto traza un grfico los puntos.


ListPlot[%]

Esto da un array rectangular de valores. El array es bastante grande,


entonces terminamos la entrada con un punto y coma para evitar que se
imprima.
t3 = Table[Mod[x, y], {y, 20}, {x, 30}] ;
Esto traza un grfico tridimensional del array de valores.
ListPlot3D[t3]

Usted puede volver a dibujar el grfico usando Show, como de costumbre.


Show[%, ViewPoint -> {1.5, -0.5, 0}]
158

Esto traza un grfico de densidad.


ListDensityPlot[t3]

10.9. Grficos paramtricos


La seccin 10.1 describi como trazar curvas en Mathematica en la cual usted da la
coordenada y de cada punto como una funcin de la coordenada x. Tambin puede
usar Mathematica para hacer grficos paramtricos. En un grfico paramtrico,
usted da ambas coordenadas x e y de cada punto como una funcin de un tercer
parmetro, llamado t.
ParametricPlot[{fx, fy},
{t, tmin, tmax}]
ParametricPlot[{
{fx, fy}, { gx, gy}, ...},
{t, tmin, tmax}]

traza un grfico paramtrico


grafica varias curvas paramtricas juntas

159

ParametricPlot[{fx, fy},
{t, tmin, tmax},
AspectRatio ->
Automatic]

trata de conservar las formas de las curvas

Funciones para generar grficos paramtricos.

He aqu la curva hecha tomando la coordenada x de cada punto como


Sin[t] y la coordenada y como Sin[2t].
ParametricPlot[{Sin[t], Sin[2t]}, {t, 0, 2Pi}]

La forma de la curva producida depende de la proporcin de la altura y el


ancho para el grfico entero.
ParametricPlot[{Sin[t], Cos[t]}, {t, 0, 2Pi}]

El ajuste de la opcin AspectRatio -> Automatic hace que


Mathematica conserve la verdadera forma de la curva, segn lo definido
por los actuales valores coordinados involucrados.
Show[%, AspectRatio -> Automatic]

160

ParametricPlot3D[
{fx, fy, fz}, {t, tmin, tmax}]
ParametricPlot3D[
{fx, fy, fz}, {t, tmin, tmax},
{u, umin, umax}]
ParametricPlot3D[
{fx, fy, fz, s}, ...]
ParametricPlot[{
{fx, fy}, { gx, gy}, ...}, ...]

traza un grfico paramtrico de una curva


tridimensional
traza un grfico paramtrico de una
superficie tridimensional
sombrea las partes del grfico paramtrico
segn la funcin s
grafica varios objetos juntos

Grficos paramtricos tridimensionales.

ParametricPlot3D[{fx, fy, fz}, {t, tmin, tmax}] es el anlogo directo en


tres dimensiones de ParametricPlot[{fx, fy}, {t, tmin, tmax}] en dos
dimensiones. En ambos casos, Mathematica eficientemente genera una secuencia
de puntos variando el parmetro t, luego forma una curva uniendo estos puntos.
Con ParametricPlot, la curva est en dos dimensiones; con
ParametricPlot3D, est en tres dimensiones.
Esto hace un grfico paramtrico de una curva helicoidal. La variacin de t
produce movimiento circular en el plano x, y, y movimiento lineal en la
direccin z.
ParametricPlot3D[{Sin[t], Cos[t], t/3}, {t, 0, 15}]

161

ParametricPlot3D[{fx, fy, fz}, {t, tmin, tmax}, {u, umin, umax}] crea una
superficie, y no una curva. La superficie es formada de una coleccin de
cuadrilteros. Las esquinas de los cuadrilteros tienen coordenadas correspondiente
a los valores de los fi cuando t y u toman valores en una cuadrcula regular.
Aqu las coordenadas x e y de los cuadrilteros estn dadas simplemente por
t y u. El resultado es un grfico de la clase que puede producirse con
Plot3D.
ParametricPlot3D[{t, u, Sin[t u]}, {t, 0, 3},
{u, 0, 3}]

Esto muestra la misma superficie que antes, pero con las coordenadas
deformadas por una transformacin cuadrtica.
ParametricPlot3D[{t, u^2, Sin[t u]}, {t, 0, 3},
{u, 0, 3}]

Esto produce una superficie helicoidal tomando la curva helicoidal antes


mostrada (p. 157), y en cada seccin de la curva dibuja un cuadriltero.
ParametricPlot3D[{u Sin[t], u Cos[t], t/3},
{t, 0, 15}, {u, -1, 1}]
162

En general, es posible construir muchas superficies complicadas usando


ParametricPlot3D. En cada caso, puede imaginar que las superficies son
formadas de alguna menera al deformar o enrollar una cuadrcula coordenada
t, u.
Esto produce un cilindro. La variacin del parmetro t origina un crculo en
el plano x, y, mientras que la variacin de u hace que los crculos se mueven
en la direccin z.
ParametricPlot3D[{Sin[t], Cos[t], u}, {t, 0, 2Pi},
{u, 0, 4}]

Esto produce un toro La variacin u genera un crculo, mientras que la


variacin de t hace girar el crculo alrededor del eje z para formar el toro.
ParametricPlot3D[{Cos[t] (3 + Cos[u]),
Sin[t] (3 + Cos[u]), Sin[u]}, {t, 0, 2Pi},
{u, 0, 2Pi}]

163

Esto produce una esfera.


ParametricPlot3D[{Cos[t] Cos[u],
Sin[t] Cos[u], Sin[u]}, {t, 0, 2Pi},
{u, -Pi/2, Pi/2}]

Usted debe comprender que cuando dibuja superficies con ParametricPlot3D,


la parametrizacin correcta es a menudo crucial. Debe ser cuidadoso, por ejemplo,
evitando parametrizaciones en las cuales todo o parte de su superficie son cubiertos
ms de una vez. Tales cubrimientos mltiples a menudo conducen a
discontinuidades en el dibujo de la red utilizada en la superficie, y pueden hacer
que ParametricPlot3D tome mucho ms tiempo para generar la superficie.

10.10. Algunos grficos especiales


Mathematica incluye un lenguaje de programacin lleno de grficos. En este
lenguaje, usted puede establecer muchas clases diferentes de grficos. Algunos de
los comunes son incluidos en los paquetes estndar de Mathematica.

164

<<Graphics`
LogPlot[f, {x, xmin, xmax}]
LogLogPlot[
f,
{x, xmin, xmax}]
LogListPlot[list]
LogLogListPlot[list]
PolarPlot[
r,
{t, tmin, tmax}]
ErrorListPlot[{
{x1, y1, dy1}, ...}]
TextListPlot[{
{x1, y1, "s1"}, ...}]
BarChart[list]
PieChart[list]
PlotVectorField[
{fx, fy},
{x, xmin, xmax},
{y, ymin, ymax}]
ListPlotVector
Field[list]
SphericalPlot3D[
r,
{theta, min, max},
{phi, min, max}]

carga un paquete para establecer funciones


grficas adicionales
genera un grfico logartmico lineal
genera un grfico logartmico logartmico
genera un grfico logartmico lineal de una
lista de datos
genera un grfico logartmico logartmico de
una lista de datos
genera un grfico polar del radio r como una
funcin del ngulo t
genera un grfico de datos con barras de
error
grafica una lista de datos con cada punto
representado por la cadena de texto si
grafica una lista de datos como un diagrama
de barras
grafica una lista de datos como un diagrama
de pastel
grafica el campo vectorial correspondiente a
la funcin vectorial f

grafica el campo vectorial correspondiente al


array bidimensional de vectores en list
genera un grfico esfrico tridimensional

Algunas funciones especiales para graficar definidas en los paquetes estndar de


Mathematica.

Esto carga un paquete estndar de Mathematica para establecer funciones


grficas adicionales.
<<Graphics`
Esto traza un grfico logartmico lineal.
LogPlot[ Exp[-x] + 4 Exp[-2x], {x, 0, 6} ]
165

He aqu una lista de los 10 primeros primos.


p = Table[Prime[n], {n, 10}]

Esto traza un grfico de los primos usando los enteros 1, 2, 3, ... smbolos
parta graficar.
TextListPlot[p]

He aqu un grfico de barras de los primos.


BarChart[p]

166

Esto traza un grfico de pastel.


PieChart[p]

10.11. Grficos animados


En muchos sistemas informticos, Mathematica puede producir imgenes no slo
estticas, sino tambin grficos animados o pelculas.
La idea bsica en todos los casos es generar una secuencia de cuadros que
pueden ser mostrados en forma rpida uno tras otro. Puede usar las funciones
grficas estndar de Mathematica descritas en la seccin 10.10 para producir cada
marco. El mecanismo para mostrar los cuadros como pelcula depende del interfase
de Mathematica que usted usa. Con una interfase de cuaderno, usted pone los
cuadros en una secuencia de celdas, luego selecciona las celdas y escoge un
comando para animarlos. Con una interfase basada en texto, hay a menudo un
programa externo provisto para mostrar grficos animados. Tpicamente puede
accederse al programa dentro de Mathematica usando la funcin Animate.
<<Graphics`Animation`
Animate[plot,
{t, tmin, tmax}]
ShowAnimation[
{g1, g2, ...}]

carga el paquete de animacin (si fuera


necesario)
ejecuta el comando de grficos con plot para
una secuencia de valores de t, y anima la
secuencia resultante de cuadros
produce una animacin de una secuencia de
objetos de grficos

Formas tpicas para producir grficos animados.

Cuando usted produce una secuencia de cuadros para una pelcula, es importante
que los diferentes cuadros sean consistentes. As, por ejemplo, usted debe dar un
ajuste explcito para la opcin PlotRange, antes que usar el ajuste por defecto
167

Automatic, para asegurarse que las escalas usadas en marcos diferentes sean las
mismas. Si usted tiene grficos tridimensionales con puntos de vista diferentes, de
modo similar debe ajustar SphericalRegion -> True para asegurarse que la
escala de grficos diferentes es la misma.
Esto genera una lista de objetos grficos. Ajustando DisplayFunction
-> Identity se detiene la salida que Plot3D produce. Explcitamente el
ajuste de PlotRange asegura que la escala es la misma en cada uno de los
grficos.
Table[ Plot3D[ BesselJ[0, Sqrt[x^2 + y^2] + t],
{x, -10, 10}, {y, -10, 10}, Axes -> False,
PlotRange -> {-0.5, 1.0},
DisplayFunction -> Identity ], {t, 0, 8} ] // Short

Sobre un sistema informtico apropiado, ShowAnimation[%] animara


los grficos. Esto divide la grfica en tres filas, y muestra el array resultante
de imgenes.
Show[ GraphicsArray[ Partition[%, 3] ] ]

10.12. Sonido
En la mayor parte de sistemas informticos, Mathematica puede producir no slo
grficos, sino tambin sonido. Mathematica trata los grficos y el sonido de una
forma bastante anloga.
Por ejemplo, tal como usted puede usar Plot[f, {x, xmin, xmax}] para trazar el
grfico de una funcin, tan tambin puede usar Play[f, {t, 0, tmax}] para
producir el sonido de una funcin. Play toma la funcin para definir la forma
168

de la onda para un sonido: los valores de la funcin dan la amplitud del sonido
como una funcin del tiempo.
Play[f, {t, 0, tmax}]

produce un sonido con la amplitud f como


una funcin del tiempo t en segundos

Funcin para producir sonido.

En un sistema informtico conveniente, esto produce un tono puro con una


frecuencia de 440 hertz durante un segundo.
Play[Sin[2Pi 440 t], {t, 0, 1}]

Los sonidos producidos por Play pueden tener cualquier forma de onda. Ellos,
por ejemplo, no tienen que consistir en una coleccin de piezas armnicas. En
general, la funcin amplitud que usted da a Play especifica la seal instantnea
asociada con el sonido. Esta seal es convertida en un voltaje, y en ltima instancia
en un desplazamiento. Note que la amplitud a veces es definida para ser la seal
pico asociada con un sonido; en Mathematica, esto es siempre la seal instantnea
como una funcin del tiempo.
Esto produce un sonido ms complejo.
Play[ Sin[700 t + 25 t Sin[350 t]], {t, 0, 4} ]

169

Play se establece de modo que la variable de tiempo que aparece en l siempre


sea medida en segundos absolutos. Cuando un sonido es producido, su amplitud es
muestreada un cierto nmero de veces cada segundo. Usted puede especificar la
tasa de muestreo ajustando la opcin SampleRate.
Play[f, {t, 0, tmax},
SampleRate -> r]

produce un sonido, muestrendolo r veces


por segundo

Especificacin de la tasa de muestreo para un sonido.

Una tasa de muestreo r permite frecuencias de hasta r/2 hertz. El sistema humano
auditivo puede percibir sonidos en una frecuencia que se extiende de 20 a 22000
hertz (dependiendo de la edad y el sexo). Las frecuencias fundamentales para las
88 notas de un piano se extienden de 27.5 a 4096 hertz. La tasa estndar de
muestreo usada para reproducir discos compactos es 44100. La tasa eficaz de
muestreo en un tpico sistema telefnico es alrededor de 8000. En la mayor parte
de sistemas informticos, la tasa de muestreo por defecto usada por Mathematica
es alrededor de 8000.
Usted puede usar Play[{f1, f2}, ...] para producir sonido estreo. En general,
Mathematica soporta cualquier nmero de canales de sonido.
ListPlay[{a1, a2, ...},
SampleRate -> r]

produce un sonido con una secuencia de


niveles de amplitud

Funciones para manipular grficos.

La funcin ListPlay le permite simplemente dar una lista de valores que son
tomados como amplitudes de sonido muestreadas en una cierta tasa.
Cuando los sonidos son dados por Mathematica, slo cierto rango de amplitudes es
permitida. La opcin PlayRange en Play y ListPlay especifica como
deberan ser escaladas las amplitudes que usted da para ajustarlas al rango
permitido. Los ajustes para esta opcin son anlogos a los de la opcin de grficos
PlotRange mencionada en la seccin 10.2.
PlayRange -> Automatic
(default)
PlayRange -> All
PlayRange ->
{amin, amax}

usa un procedimiento interno para escalar


amplitudes
escala de modo que todas las amplitudes
quepan en el rango permitido
ajusta amplitudes entre amin y amax en el
rango permitido

Especificacin del escalamiento de amplitudes de sonido.

170

Mientras a menudo es conveniente usar el ajuste por defecto PlayRange ->


Automatic, debe comprender que Play puede correr considerablemente ms
rpido si usted especifica un PlayRange.
Show[sound]

usa algoritmos internos

Reproduciendo un objeto de sonido.

Tanto Play como ListPlay devuelven objetos Sound que contienen


procedimientos para sintetizar sonidos. Puede volver a producir un objeto Sound
en particular usando Show que tambin se usa para volver a mostrar los grficos.

11. Entradas y salidas en cuadernos


11.1. Ingreso de letras griegas
use un botn en una paleta
use un nombre completo
use un alias estndar (abajo se ve como
use un alias TeX
use un alias SGML

Formas de ingresar letras griegas en un cuaderno.

He aqu una paleta para ingresar letras griegas comunes.

Usted puede usar letras griegas igual que las letras ordinarias que digita en
su teclado.

171

Hay varias formas de ingresar letras griegas. Esta entrada usa nombres
completos.
Expand[(\[Alpha] + \[Beta])^3]

nombre completo alias

nombre completo

\[Alpha]
\[Beta]
\[Gamma]
\[Delta]
\[Epsilon]
\[Zeta]
\[Eta]

\[CapitalGamma]
\[CapitalDelta]
\[CapitalTheta]
\[CapitalLambda]
\[CapitalPi]
\[CapitalSigma]
\[CapitalUpsilon
]
\[CapitalPhi]
\[CapitalChi]
\[CapitalPsi]
\[CapitalOmega]

\[Theta]
\[Kappa]
\[Lambda]
\[Mu]
\[Nu]
\[Xi]
\[Pi]
\[Rho]
\[Sigma]
\[Tau]
\[Phi]
\[CurlyPhi
]
\[Chi]
\[Psi]
\[Omega]

Letras griegas comnmente usadas. Los alias se obtienen con la tecla


son listados explcitamente.

alias

. Los alias TeX no

Note que en Mathematica la letra se genera con Pi. Ninguna de las otras letras
griegas tiene un significado especial.
se genera con Pi.

172

Usted puede usar letras griegas solas o con otras letras.

El smbolo no es relacionado con el smbolo .

11.2. Ingreso de entradas bidimensionales


Cuando Mathematica lee el texto x^y, lo interpreta como x elevado a la
potencia y.
x^y

En un cuaderno, usted puede dar la entrada bidimensional xy directamente.

Una manera de ingresar una forma bidimensional como xy en un cuaderno de


Mathematica es copiar esta forma de una paleta pulsando el botn apropiado en la
paleta.
He aqu una paleta para ingresar algunas notaciones bidimensionales
comunes.

Hay tambin varias maneras de ingresar formas bidimensionales directamente


desde el teclado.
173

seguido por Make 2D

use combinaciones de teclas que existen en


la mayora de teclados
use combinaciones de teclas que deberan
existir en todos los teclados
use slo caracteres imprimibles ordinarios

Formas de ingresar un superndice directamente desde el teclado.


representar Control-Espacio.

se usa para

Para efectuar la combinacin


presione la tecla Control y mantenindola
presionada, presione la tecla ^. En cuanto hace esto, su cursor saltar de la posicin
de exponente. Entonces puede escribir lo que quiera y aparecer en aquella
posicin.
Cuando ha terminado, presiona
para regresar el cursor de la posicin de
exponente a la posicin de escritura;
lo efecta manteniendo presionada la
tecla Control, para luego presionar la barra espaciadora.
sta secuencia de presionamientos de teclas ingresa xy.

Aqu la expresin completa y+z est en el exponente.

Presionando

(Control-Espacio) baja de la posicin de exponente.

le da un exponente y pensar que


es
Usted puede confundir el hecho que
solamente una forma ms inmediata de ^. Cuando digita usted x^y, Mathematica
dejar esta forma unidimensional sin cambios hasta que la procese explcitamente.
Pero si usted digita x
y entonces Mathematica inmediatamente le dar un
exponente.
En un teclado estndar de lengua inglesa, el carcter ^ aparece en la parte superior
de la tecla 6. Mathematica por lo tanto acepta
como una alternativa a
.
Tenga presente que si usted usa un teclado diferente, Mathematica casi siempre
aceptar
, pero puede que no acepte
.
174

sta es una forma alternativa de entrada que evita el uso de la tecla Control.

Con esta forma de la entrada, Mathematica entiende automticamente que


+z no debe ir en el exponente.

La utilizacin de la tecla Control reduce al mnimo el nmero de presionamientos


de teclas que tiene que hacer para incorporar un exponente. Pero en particular si
quiere guardar su entrada en un archivo, o enviarlo a otro programa, a menudo es
ms conveniente usar una forma que no involucre la tecla Control. Usted puede
hacer esto utilizando secuencias de .
Si usted copia una secuencia de en Mathematica, sta automticamente aparecer
en forma bidimensional. Pero si ingresa la secuencia directamente del teclado,
tiene que escoger explcitamente el tem Make 2D del men Edit para conseguir la
forma bidimensional.
Cuando ingresa desde el teclado secuencias de
en forma literal.

, stas son mostradas

Escogiendo el tem Make 2D en el men Edit convierte estas secuencias en


formas bidimensionales.

seguido por Make 2D

use combinaciones de teclas que existen en


la mayora de teclados
use combinaciones de teclas que deberan
existir en todos los teclados
use slo caracteres imprimibles ordinarios

Formas de ingresar un subndice directamente desde el teclado.

175

Los subndices en Mathematica trabajan de manera muy similar a los superndices.


Sin embargo, mientras que Mathematica interpreta automticamente xy como x
elevada a la potencia y, no tiene ninguna interpretacin similar para xy. Y, slo
trata a xy como un objeto puramente simblico.
Esto ingresa y como un subndice.

He aqu otra forma de ingresar y como un subndice.

seguido por Make 2D

use la tecla Control


use slo caracteres imprimibles ordinarios

Formas de ingresar una fraccin directamente desde el teclado.

Esto ingresa la fraccin

x
.
y

Aqu la expresin completa y+z va al denominador.

Pero presionando Control-Espacio se sale denominador, as que +z no


aparece en el denominador.

Mathematica automticamente interpreta una fraccin como una divisin.

176

He aqu otra forma de ingresar una fraccin.

seguido por Make 2D

use combinaciones de teclas que existen en


la mayora de teclados
use combinaciones de teclas que deberan
existir en todos los teclados
use slo caracteres imprimibles ordinarios

Formas de ingresar una raz cuadrada directamente desde el teclado.

Esto ingresa una raz cuadrada.

Control-Espacio le saca de la raz cuadrada.

He aqu una forma sin usar la tecla Control.

Y he aqu una usual entrada unidimensional en Mathematica que da la


misma expresin como salida.
Sqrt[x] + y

va a la posicin de superndice
va a la posicin de subndice
va al subradical de una raz cuadrada
va de subndice a exponente o viceversa, o a
la posicin de ndice radical
va al denominador de una fraccin
retorna de una posicin especial
(Control-Espacio)
177

Formas especiales de entrada usando la tecla Control. La segunda forma dada debera
trabajar en cualquier teclado.

Esto pone tanto subndice como superndice en x.

He aqu otra forma de ingresar la misma expresin.

agrupacin de toda entrada bidimensional


superndice
con
subndice
con
subndice y superndice
con
raz cuadrada
con
fraccin
con
Formas especiales de entrada que generan entradas bidimensionales con el tem Make 2D.

Usted debe inicializar los

exteriores con .

y para indicar la agrupacin de elementos en una


Usted puede usar
expresin sin introducir parntesis explcitos.

Adems de subndices y superndices, Mathematica tambin soporta la nocin de y


sobreescrituraselementos de que van directamente debajo o encima. Entre otras
cosas, usted puede usar subescrituras y sobreescrituras para ingresar los lmites de
sumas y productos.
crea un subescrito
seguido por Make 2D

crea un subescrito
crea un sobreescrito
178

seguido por Make 2D

crea un sobreescrito

Creacin de subescrituras y sobreescrituras.

11.3. Edicin y evaluacin de expresiones bidimensionales


Cuando usted ve una expresin bidimensional en la pantalla, puede editarla como
lo hace con el texto. Por ejemplo puede colocar su cursor en algn sitio y empezar
a digitar. O puede seleccionar una parte de la expresin, luego quitarla usando la
tecla Surpimir, o insertar una nueva versin digitndola.
selecciona la subexpresin siguiente
mueve a la derecha de la estructura actual
mueve al siguiente caracter
mueve al anterior caracter
Formas de moverse alrededor de expresiones bidimensionales.

Esto muestra una secuencia de subexpreiones seleccionadas al presionar


repetidamente
.

179

Shift-Enter
Shift-Control-Enter

evala la celda actual completa


evala slo la subexpresin seleccionada

Formas de evaluar expresiones bidimensionales.

En la mayor parte de clculos, usted querr ir de un paso al siguiente tomando la


expresin completa que ha generado, y luego evalundola. Pero si por ejemplo
trata de manipular solamente una frmula para expresarla en una forma particular,
puede en cambio hallar ms conveniente el hecho de realizar una secuencia de
operaciones independientes sobre las diferentes partes de la expresin.
Usted hace esto seleccionando cada parte que quiere operar, para luego usar la
combinacin Shift-Control-Enter.
He aqu una expresin con una parte seleccionada.

180

Presionando Shift-Control-Enter evala la parte seleccionada.

11.4. Ingreso de frmulas


caracter

forma corta

forma larga

smbolo

\[Pi]
\[Infinity]
\[Degree]

Pi
Infinity
Degree

Formas especiales de algunos smbolos comunes. se obtienen con la tecla

Esto equivale a Sin[60 Degree].

He aqu la forma larga de la entrada anterior.


Sin[60 \[Degree]]

Esto encuentra los mejores parmetros para un ajuste general.

Aqu el ngulo est en radianes.


181

caracteres
especiales

forma corta

forma larga

caracteres
ordinarios

x\[LessEqual]y
x\[GreaterEqual]y
x\[NotEqual]y
x\[Element]y
x\[Rule]y
Formas especiales para algunos operadores.

Aqu la regla de transformacin es ingresada usando dos caracteres


ordinarios, como ->.
x/(x+1) /. x -> 3 + y

Esto significa exactamente lo mismo.


x/(x+1) /. x \[Rule] 3 + y

Tambin esto.

O esto.

La forma especial de la flecha


Solve[x^2 == 1, x]

es tambin usada por defecto para salidas.


182

caracteres
especiales

forma corta

forma larga

caracteres
ordinarios

x\[Divide]y
x\[Times]y
x\[Cross]y
x\[Equal]y
x\[LongEqual]y
x\[And]y
x\[Or]y
\[Not]x
x\[Implies]y
x\[Union]y
x\[Intersection]y
x\[Invisible
Comma]y
x\[Invisible
Application]y

Cross[x, y]

Implies[x, y]
Union[x, y]
Intersection[
x, y]
x, y

Algunos operadores con formas especiales usados para entradas pero no para salidas.

Mathematica entiende

, pero no lo usa por defecto para salidas.

Las formas de entrada discutidas hasta ahora en esta seccin usan caracteres
especiales, pero de en otros casos slo consisten en lneas ordinarias
unidimensionales de texto. Los cuadernos de Mathematica, sin embargo, tambin
hacen posible el uso de formas bidimensionales de entrada.
bidimensional

unidimensional

potencia
divisin
Sqrt[x]
Sum[f,
{i, imin, imax}]

raz cuadrada
raz n-sima
suma

183

Product[f,
{i, imin, imax}]
Integrate[f, x]
Integrate[f,
{x, xmin, xmax}]
D[f, x]
D[f, x, y]
Conjugate[z]
Transpose[m]
Conjugate
Transpose[m]
Part[expr, i, j, ...]

producto
integral indefinida
integral definida
derivada parcial
derivada parcial
multivariable
conjugado complejo
transpuesta
conjugada transpuesta
extraccin de partes

Algunas formas bidimensionales que pueden usarse en cuadernos de Mathematica.

Usted puede ingresar formas bidimensionales usando cualquiera de los


mecanismos mencionados en la seccin 11.2. Note que lmites superiores e
inferiores para sumas y productos deben ser ingresados como sobreescrituras y
subescriturasno slo como superndices y subndices.
Esto ingresa una integral indefinida. Note el uso de
diferencial d.

para ingresar la

He aqu una integral indefinida que puede ser evaluada explcitamente.

He aqu la entrada usual de Mathematica para esta integral.


Integrate[Exp[-x^2], x]

Esto ingresa exactamente la misma integral.


184

\!\( \[Integral] Exp[-x\^2] \[DifferentialD]x \)

forma corta

forma larga

\[Sum]
\[Product]
\[Integral]
\[DifferentialD]
\[PartialD]
\[Conjugate]
\[Transpose]
\[Conjugate
Transpose]
\[LeftDouble
Bracket],
\[RightDouble
Bracket]

signo de sumatoria
signo de productoria
signo de integral
especial para uso en
integrales
operador de derivada
parcial
smbolo para conjugado
smbolo para transpuesta
smbolo para conjugada
transpuesta
pares de corchetes

Algunos caracteres especiales usados para ingresar frmulas.

Usted debe comprender que aun cuando un signo de sumatoria pueda parecer casi
idntico a una sigma mayscula son tratados de un modo muy diferente por
Mathematica. El punto es que sigma es slo una letra; pero un signo de sumatoria
es un operador que dice a Mathematica que realice una operacin Sum.
La sigma mayscula es slo una letra.
a + \[CapitalSigma]^2

Un signo de sumatoria, por otra parte, es un operador.

He aqu otra forma de ingresar la misma entrada.


\!\( \[Sum] \+ \( n = 0 \) \% m 1 \/ f[n] \)
185

As como Mathematica distingue entre un signo de sumatoria y una sigma


mayscula, tambin distingue entre una d ordinaria y la diferencial especial
que es usada en la notacin estndar para integrales. Es crucial que use esta
diferencialingresada como
cuando digita una integral. Si trata de usar
una d ordinaria, Mathematica la interpretar como un smbolo llamado dno
entender que usted esta ingresando la segunda parte de un operador de
integracin.
Esto calcula la derivada de x n .

He aqu la misma derivada especificada en una forma unidimensional


ordinaria.
D[x^n, x]

Esto calcula la tercera derivada.

He aqu la forma unidimensional equivalente.


D[x^n, x, x, x]

11.5. Ingreso de tablas y matrices


El front end de Mathematica proporciona un tem Create Table/Matrix/Palette que le
permite crear un array en blanco con cualquier nmero especificado de filas y
columnas. Una vez que tiene este array, puede editarlo llenndolo con cualesquiera
elementos que usted desee.
186

Mathematica trata un array como ste como una matriz representada por una
lista de listas.

Poniendo parntesis alrededor del array hacemos que se parezca ms a una


matriz, pero esto no afecta su interpretacin.

Usando MatrixForm le dice a Mathematica que muestre el resultado de


Transpose como una matriz.

agrega una columna


agrega una fila
va al siguiente elemento
lo saca de la tabla o matriz
Ingresando tablas y matrices.

Note que puede usar


y
para empezar a aumentar un array, en particular
para arrays pequeos hacer esto es a menudo ms conveniente que usar el tem
Create Table/Matrix/Palette.
El tem Create Table/Matrix/Palette le permite hacer ajustes bsicos, como el dibujo
de lneas entre filas o columnas.

11.6. Subndices, barras y otros adornos


He aqu una tpica paleta de adornos.

187

Mathematica le permite usar cualquier expresin como subndice.

A menos que usted lo exprese de otro modo, Mathematica interpretar un


superndice como una potencia.

va a la posicin de subndice
va a la posicin de subescritura
va a la posicin de superndice
va a la posicin de sobreescritura
retorna de una posicin especial
(Control-Espacio)
Formas especiales de entrada usando la tecla Control. La segunda forma dada debera
trabajar en cualquier teclado.

Esto ingresa un subndice usando la tecla Control.

y
van a las posiciones de superndice y subndice, tambin
Tal como
y
pueden usarse para ir directamente a las posiciones de superescritura
y subescritura. Con la disposicin de un teclado estndar de lengua inglesa
est directamente a la derecha de
mientras que
est directamente a la
derecha de
.
188

combinacin de teclas

forma en que es mostrada

forma de expresin

OverBar[x]
OverVector[x]
OverTilde[x]
OverHat[x]
OverDot[x]
UnderBar[x]
Algunas formas de ingresar ciertos adornos comunes usando la tecla Control.

He aqu .

Usted puede usar

combinacin de teclas

como variable.

forma en que es mostrada

forma de expresin

Subscript[x, y]
Underscript [x, y]
Superscript[x, y]
(interpretado como
Power[x, y])
Overscript [x, y]
OverBar[x, y]
OverVector[x, y]
OverTilde[x, y]
OverHat[x, y]
OverDot[x, y]
UnderBar[x, y]
Formas de ingresar adornos sin la tecla Control. Todas estas formas slo pueden usarse
.
dentro de

189

11.7. Caracteres no ingleses


Si usted ingresa texto en lenguas que no sean el ingls, tendr que usar varios
caracteres acentuados adicionales y otros. Si su sistema informtico esta
establecido de forma apropiada, entonces usted podr ingresar tales caracteres
directamente usando teclas estndares de su teclado. Pero sino lo est es,
Mathematica siempre proporciona un forma uniforme de manejar tales caracteres.
nombre completo

alias

\[AGrave]
\[ARing]
\[AdoubleDot]
\[CCedilla]
\[CHacek]
\[EAcute]
\[EGrave]
\[IAcute]
\[NTilde]
\[OGrave]

nombre completo

alias

\[OSlash]
\[ODoubleDot]
\[UGrave]
\[UDoubleDot]
\[SZ]
\[CapitalARing]
\[CapitalADoubleDot]
\[CapitalODoubleDot]
\[CapitalUDoubleDot]

Algunos caracteres europeos comunes.

He aqu una funcin cuyo nombre involucra un caracter acentuado.


Lam\[EAcute][x, y]

Esta es otra forma de ingresar la misma entrada.

Usted debe comprender que no hay ningn estndar uniforme para teclados de
computador en el mundo entero, y por consiguiente es inevitable que algunos
detalles que han sido mencionados en este captulo no puedan aplicarse a su
teclado.
con
es vlida slo para
En particular, la identificacin por ejemplo de
teclados en los cuales ^ aparece como Shift-6. En otros teclados, Mathematica usa
para ir a una posicin de superndice, pero no necesariamente
.

190

Independientemente de como est establecido su teclado usted siempre puede usar


paletas o tems de men para establecer superndices y otros tipos de notacin. Y
asumiendo que tiene algn modo de ingresar caracteres como \, usted siempre
puede ingresar entradas que usan nombres completos como \[Infinity] y
formas textuales como \(x\/y\).

11.8. Otras notaciones matemticas


Mathematica soporta una amplia gama de notacin matemtica, aunque a menudo
no le asigne un significado predefinido. As, por ejemplo, usted puede ingresar una
expresin como
, pero Mathematica inicialmente no har ninguna asuncin
sobre lo que usted quiere decir con .
Mathematica sabe que
es un operador, pero no le asigna inicialmente
ningn significado especfico.

Esto da a Mathematica una definicin de lo que hace el operador

Ahora Mathematica puede evaluar operaciones con


evaluacin simblica

. Aqu tenemos una

He aqu evaluaciones numricas.

nombre completo

\[CirclePlus]
\[CircleTimes]
\[PlusMinus]
\[Wedge]
\[Vee]
\[TildeEqual]
\[TildeTilde]

alias

nombre completo

alias

\[LongRightArrow]
\[LeftRightArrow]
\[UpArrow]
\[Equilibrium]
\[RightTee]
\[Superset]
\[SquareIntersection]
191

\[Tilde]
\[Proportional]
\[Congruent]
\[GreaterTilde]
\[GreaterGreater]
\[Succeeds]
\[RightTriangle]

\[Element]
\[NotElement]
\[SmallCircle]
\[Therefore]
\[VerticalSeparator]
\[VerticalBar]
\[Backslash]

Algunos de los operadores cuya entrada es soportada por Mathematica..

Mathematica asigna significado predefinido para


.

, pero no para

Hay algunas formas que se parecen a caracteres sobre un teclado estndar, pero que
son interpretadas de un modo diferente por Mathematica. As, por ejemplo,
\[Backslash]
se muestran como \ pero no es interpretado de la misma
manera que \ digitado directamente en el teclado.
Los caracteres
el teclado.

usados aqu son diferentes a

que usted digita en

La mayor parte de operadores trabajan como y van en medio de sus operandos.


Pero algunos operadores pueden ir en otros sitios. As, por ejemplo,
y

\[LeftAngleBracket] y \[RightAngleBracket] son efectivamente


operadores que envuelven a su operando.

Los elementos del operador ngulo van alrededor de su operando.


\[LeftAngleBracket] 1 + x \[RightAngleBracket]

nombre completo

\[ ScriptL]
\[ ScriptCapitalE]

alias

nombre completo

alias

\[ Angstrom]
\[ HBar]
192

\[ GothicCapitalR]
\[ DoubleStruckCapitalZ]
\[ Aleph]
\[ EmptySet]
\[ Micro]

\[ Sterling]
\[ Angle]
\[ Bullet]
\[ Dagger]
\[ Natural]

Algunas letras adicionales y formas parecidas a letras.

Usted puede usar cualesquiera letras y formas parecidas a letras como


nombres de smbolos.

se asume como un smbolo, y tan solo es multiplicado por a y b.

Tambin es posible generar todas las letras del alfabeto, incluyendo


maysculas y minsculas, en los tres primeros tipos que aparecen en la
ltima tabla, esto es Script, Gothic y DoubleStruck.

11.9. Formas de entrada y salida


Los cuadernos en Mathematica le permiten dar entradas y obtener salidas en una
variedad de formas diferentes. El front end proporciona comandos de men para
convertir celdas de una a otra forma.
InputForm
OutputForm
StandardForm
TraditionalForm

una forma que puede ser digitada directamente usando caracteres en un teclado
estndar
una forma para salida que slo usa caracteres
en un teclado estndar
una forma para entrada y salida que hace uso
de caracteres especiales y posicionamiento
una forma principalmente para salida que
193

imita todos los aspectos de notacin


tradicional matemtica
Formas de entrada y salida.

La entrada de aqu trabaja en las ambas formas InputForm y


StandardForm.
x^2 + y^2/z

He aqu una versin del ingreso apropiado para StandardForm.

InputForm es la forma ms general de entradas para Mathematica: esto trabaja si


usted usa una interfase de cuaderno o una interfase a basada en texto.
Con una interfase de cuaderno, la salida es producida por defecto en
StandardForm.
Sqrt[x] + 1/(2 + Sqrt[y])

Con una interfase basada en texto, en cambio es usada OutputForm.


Sqrt[x] + 1/(2 + Sqrt[y]) // OutputForm

Con una interfase de cuaderno, la forma por defecto tanto para la entrada como
para la salida es StandardForm.
La idea bsica de StandardForm es proporcionar una representacin exacta y
elegante de expresiones en Mathematica, haciendo uso de caracteres especiales,
posicionamientos bidimensionales, etctera.
Entrada y salida son dadas aqu en StandardForm.
194

Una caracterstica importante de StandardForm es que cualquier salida


usted obtiene en esta forma tambin puede usarla directamente como
entrada.

La naturaleza exacta de StandardForm le impide seguir todas las convenciones


algo casuales de la notacin matemtica tradicional. Mathematica sin embargo
tambin soporta TraditionalForm, que usa una amplia coleccin de reglas de
interpretacin bastante completa de notacin matemtica tradicional.
TraditionalForm nombres en minsculas para funciones, y pone sus
argumentos entre parntesis y no entre corchetes.

He aqu algunas transformaciones hechas por TraditionalForm.


{Abs[x], ArcTan[x], BesselJ[0, x], Binomial[i, j]}
// TraditionalForm

TraditionalForm es a menudo til para generar salidas que pueden ser


insertadas directamente en documentos que usen notacin matemtica tradicional.
195

Pero usted debe entender que TraditionalForm se requiere principalmente


para salidas: no tiene la clase de precisin que es necesaria para proporcionar una
entrada confiable a Mathematica.
As, por ejemplo, en TraditionalForm,
es la representacin tanto para
Ci[x] como para CosIntegral[x], as que si esta forma aparece slo como
entrada, Mathematica no tendr ni idea de cul de las dos interpretaciones es
correcta.
En StandardForm estas tres expresiones son mostradas de un modo
nico e inequvoco.
{ Ci[1+x], CosIntegral[1+x], Ci(1+x) } //
StandardForm

En TraditionalForm, sin embargo, las primeras dos son imposibles de


distinguirse, y la tercera se diferencia slo por la presencia de un espacio
adicional.
{ Ci[1+x], CosIntegral[1+x], Ci(1+x) } //
TraditionalForm

Las ambigedades de TraditionalForm lo hacen en general inadecuado para


especificar entradas al ncleo de Mathematica. Pero al menos para casos
suficientemente simples, Mathematica realmente incluye varias reglas heursticas
para tratar de interpretar expresiones TraditionalForm como entradas de
Mathematica.

Se asume que las celdas previstas para dar entradas al ncleo por defecto
contendrn expresiones StandardForm.

196

Aqu al front end le fue dicho que la entrada sera dada especficamente en
TraditionalForm. El corchete de la celda tiene una lnea dentada para
indicar las dificultades implicadas.

La entrada es una copia o una edicin simple de la salida anterior.


La entrada ha sido convertida de StandardForm, quizs con ediciones
simples.
La entrada contiene informacin explcita oculta que da su interpretacin.
La entrada contiene slo las notaciones ms simples y familiares.
Algunas situaciones en que puede esperar que la entrada TraditionalForm trabaje.

Siempre que Mathematica genera una expresin en TraditionalForm,


automticamente inserta varias etiquetas ocultas de modo que ms adelante la
expresin pueda ser interpretada inequvocamente si se da como entrada. E incluso
si usted corrige la expresin, las etiquetas a menudo sern dejadas suficientemente
aceptables de modo que la interpretacin inequvoca sea an posible.
Esto genera una salida en TraditionalForm.
Exp[I Pi x] // TraditionalForm

Aqu le fue dicho a Mathematica que esperara una entrada


TraditionalForm. La entrada fue copiada de la lnea de salida anterior,
y as contiene las etiquetas ocultas que aseguran la interpretacin correcta.

Una edicin simple a menudo no afecta las etiquetas ocultas.

Si usted ingresa una expresin TraditionalForm desde el principio, o la


importa desde fuera de Mathematica, entonces Mathematica har todo lo posible
para averiguar lo que la expresin significa. Cuando hay ambigedades, lo que
197

tpicamente hace es asumir que usted esta usando alguna notacin comn en
aplicaciones de matemticas elementales.
En una entrada TraditionalForm, esto es interpretado como una
derivada.

Esto es interpretado como una integral.

Esto es interpretado como un arco tangente.

Esto es interpretado como el cuadrado de una tangente.

No hay una interpretacin particular estndar tradicional para esto,


Mathematica asume que es 1/Tan[x]^2.

Usted debe comprender que TraditionalForm no proporciona ningn tipo de


forma exacta o completa de especificar expresiones en Mathematica. Sin embargo,
para algunos objetivos elementales puede ser suficiente, en particular si usted usa
algunos trucos adicionales.
Use
Use
Use
Use

para funciones;
para multiplicacin.
para la constante exponencial E.

para la unidad imaginaria I.


para operadores diferenciales en integrales y derivadas.

Algunos trucos para entradas TraditionalForm.

198

es interpretada como multiplicacin. Sin un


Con un espacio
espacio
es interpretada como una funcin.

La e ordinaria es interpretada como un smbolo e. La e exponencial que


se ingresa como
, es interpretada como la constante exponencial.

11.10. Mezcla de texto y frmulas


El modo ms simple de mezclar texto y frmulas en un cuaderno de Mathematica
es poner cada clase de material en una celda separada. A veces, sin embargo, puede
que usted quiera encajar una frmula dentro de una celda de texto, o viceversa.
comience ingresando una frmula dentro del
texto, o el texto dentro de una frmula
termine entrando una frmula dentro del
texto, o el texto dentro de una frmula
Entrada de una frmula dentro de texto, o viceversa.

He aqu un cuaderno con frmulas encajados en una celda de texto.

Los cuadernos de Mathematica a menudo contienen tanto frmulas requeridas para


la evaluacin actual por Mathematica, como texto que es requerido slo para su
lectura en forma pasiva.
Usted debe comprender, sin embargo, que hacer la tipografa detallada de frmulas
tpicas tan buena como sea posible, Mathematica automticamente hace cosas
como insertar espacios alrededor de ciertos operadores. Pero estas clases de ajustes
pueden ser potencialmente inadecuados si usted usa una notacin muy diferente a
la que Mathematica espera.
199

11.11. Creacin de sus propias paletas


El front end de un cuaderno de Mathematica viene con una coleccin de paletas
estndar. Pero tambin le permite crear sus propias paletas.
Genere una paleta en blanco usando Create Table/Matrix/Palette del men Input.
Llene el contenido.
Active la paleta usando Generate Palette from Selection del men File.
Pasos bsicos en la creacin de una paleta.

Create Table/Matrix/Palette crear una paleta en blanco.

Usted entonces puede insertar lo que quiera en cada botn.

El tem Generate Palette from Selection hace una paleta activa separada.

Haciendo clic sobre un botn de la paleta usted inserta el contenido de ste


en su cuaderno.

Create Table/Matrix/Palette
Generate Palette from Selection

genera una paleta en blanco


hace una paleta separada activa
200

Generate Notebook from Palette


Edit Button

convierte una paleta en un cuaderno editable


corrige la escritura asociada a una paleta o
botn

tems para generar paletas.

Cuando usted crea una paleta, puede usar los mismos mecanismos para aadir
columnas y filas que usa cuando crea cualquier otra clase de tabla, matriz o rejilla.
As
aadir una nueva columna de botones, y
(Control-Enter) aadir
una nueva fila.
contenidos de botn

texto que contiene

accin

substituye la seleccin actual por


substituye la seleccin actual por

Contenidos de botones.

En el caso ms simple, cuando usted presiona un botn en una paleta lo que pasar
es que el contenido del botn ser insertado en su cuaderno, substituyendo lo que
era su seleccin actual.
A veces sin embargo puede que usted simplemente no quiera sustituir su seleccin
actual, sino ms bien puede que quiera modificar la seleccin de algn modo.
Como ejemplo, puede ser que desee aplicar una funcin como Expand a su
seleccin actual. Puede hacer esto estableciendo un botn con el contenido
. El
puede ingresarse como
\[SelectionPlace
holder]. En general,
sirve como un guarda lugar para su seleccin actual.
Cuando usted presiona un botn que contiene , el es primero substituido por
su seleccin actual, y slo entonces el resultado es insertado en su cuaderno.
He aqu una celda en la cual la seleccin actual es parte de una expresin.

Presionando un botn que contiene


seleccin actual

, Expand envuelve la

Mathematica le permite asociar cualquier accin que usted quiere con un botn.
Puede establecer algunas acciones comunes usando el men de Edit Button,
seleccionando un solo botn o una paleta entera.
201

Paste
Evaluate
EvaluateCell
CopyEvaluate
CopyEvaluateCell

pega el contenido del botn (accin por


defecto)
pega y luego evala en el lugar que ha sido
pegado
pega y luego evala toda la celda
copia la seleccin actual en una nueva celda,
luego pega y evala en el lugar
copia la seleccin actual en una nueva celda,
luego pega y evala la celda completa

Acciones tpicas para botones.

Con la accin de botn por defecto Paste, al presionar el botn se modifica el


contenido de una celda, pero no se hace ninguna evaluacin. Escogiendo otras
acciones de botn, sin embargo, usted puede decir a Mathematica que realice una
evaluacin siempre que presiona el botn.
Con la accin de botn Evaluate el resultado de esta evaluacin es sobrescrito
sobre su seleccin actual. Esto es til si usted quiere generar un botn que
modifique las partes de una expresin en el lugar.
La accin de botn Evaluate realiza la evaluacin slo sobre lo que fue pegado
en su celda actual. La accin de botn EvaluateCell, por otra parte, realiza la
evaluacin sobre la celda completa, generando una nueva celda para mostrar el
resultado.
He aqu una expresin con una parte seleccionada.

Esto muestra el resultado al presionar un botn que contiene


con una accin de botn EvaluateCell.

202

A veces es til extraer la seleccin actual de una clula, y luego operar esta
seleccin en una nueva celda. Usted puede hacer esto utilizando las acciones de
botn CopyEvaluate y CopyEvaluateCell.
He aqu una expresin con una parte seleccionada.

Un botn con una accin de botn CopyEvaluateCell copia la


seleccin actual en una nueva celda, luego pega el contenido del botn, y
luego realiza una evaluacin, poniendo el resultado en una nueva celda.

Create Table/Matrix/Palette
Create Button
Generate Palette from Selection
Cell Active

genera una paleta en blanco


genera un botn solo en una paleta
crea una ventana aparte
activa botones dentro de una celda en un
cuaderno

Formas de crear elementos activos en el front end.

Mathematica le permite establecer un amplio rango de elementos activos en el


front end de cuaderno. En el caso ms comn, usted tiene una paleta que consiste
en una serie de botones en una ventana aparte. Pero tambin puede tener arrays de
botones, o hasta botones solos, dentro de una celda de un cuaderno comn.
Adems, usted puede hacer que un botn ejecute cualquier accin que usted
quierarealizar clculos en el kernel de Mathematica, o cambiar la configuracin
de cuadernos en el front end.

11.12. Creacin de Hipervnculos


Create Hyperlink

crea un hipervnculo en el objeto


seleccionado

tem para generar hipervculos.

203

Un hipervnculo es una clase especial de botn que brinca a otra parte de un


cuaderno cuando es presionado. Tpicamente los hipervnculo se indican en
Mathematica con texto azul o subrayado.
Para establecer un hipervnculo, solamente seleccione el texto u otro objeto al que
le quiere hacer un hipervnculo. Entonces escoja el tem Create Hyperlink y complete
la especificacin de donde usted quiere que est el destino del hipervnculo.

11.13. Numeracin automtica


Escoja un estilo de celda tal como NumberedEquation.
Use el men Create Automatic Numbering Object, con un
nombre de conteo tal como Section
Dos formas de generar numeracin automtica en un cuaderno de Mathematica.

La entrada para cada celda aqu es exactamente la misma, pero las celdas
contienen un elemento que muestra un nmero que va aumentando
progresivamente cuando avanzamos a travs del cuaderno.

Esta celda est en un estilo NumberedEquation.

204

12. Archivos y operaciones externas


12.1. Lectura y Escritura de archivos en Mathematica
Usted puede usar archivos en su sistema informtico para almacenar definiciones y
resultados de Mathematica. El enfoque ms general es almacenar todo como texto
simple que es apropiado como entrada para Mathematica. Con este enfoque, una
versin de Mathematica corriendo en un sistema informtico produce archivos que
pueden ser ledos por una versin que corre en cualquier sistema informtico.
Adems, tales archivos pueden ser manipulados por otros programas estndar, tales
como editores de textos.
<< name
expr >> name
expr >>> name
!! name

lee en un archivo de entrada de Mathematica


produce expr como un archivo texto simple
aade expr un archivo
muestra el contenido de un archivo de texto
simple

Lectura y escritura de archivos.

Esto expande ( x + y )3 y produce el resultado en un arhivo llamado tmp.


Expand[ (x + y)^3 ] >> tmp
He aqu los contenidos de tmp. Ellos pueden ser usados directamente como
una entrada para Mathematica.
!!tmp
x^3 + 3*x^2*y + 3*x*y^2 + y^3
Esto lee en tmp, evaluando la entrada de Mathematica que contiene.
<<tmp
Si usted esta familiarizado con los sistemas operativos, reconocer la similitud de
los operadores de redireccionamiento de Mathematica >>, >>> y << con los
operadores de command-line >, >> y <.
Los operadores de redireccionamiento >> y >>> son convenientes para almacenar
resultados que usted obtiene de Mathematica. La funcin Save[name, f,
g,...] le permite guardar definiciones para variables y funciones.
205

Save["dir", f, g,...]

guarde definiciones de variables o funciones


en un archivo

Guardando definiciones en archivos de texto simples.

He aqu una definicin para una funcin f.


f[x_] := x^2 + c
Esto le da a c el valor de 17.
c = 17
17
Esto guarda la definicin de f en el archivo ftmp.
Save["ftmp", f]
Mathematica automticamente guarda la definicin actual de f, y la
definicin de c de la cual depende.
!!ftmp
f[x_] := x^2 + c
c = 17
Esto borra las definiciones de f y c.
Clear[f, c]
Usted puede rehabilitar las definiciones que guard simplemente leyendo en
el archivo ftmp.
Exp[I Pi x] // TraditionalForm
17
file.m
file.nb
file.mx

archivo de expresin de Mathematica en


formato de texto simple
archivo de cuaderno de Mathematica
definiciones de Mathematica en formato
DumpSave

Nombres tpicos de archivos de Mathematica.

206

Si usted usa una interfase de cuaderno en Mathematica, entonces el front end de


Mathematica le permite guardar cuadernos completos, incluyendo no slo entradas
y salidas de Mathematica, sino tambin texto, grficos y otro material.
Es convencional dar nombres a los archivos de cuaderno de Mathematica que
terminen en .nb, y la mayor parte de versiones de Mathematica hacen cumplir
esta convencin.
Cuando usted abre un cuaderno en el front end de Mathematica, Mathematica
inmediatamente le mostrar el contenido del cuaderno, pero normalmente no
enviar nada de este contenido al ncleo para su evaluacin hasta que usted lo
solicite explcitamente.
Dentro de un cuaderno de Mathematica, sin embargo, usted puede usar el men
Cell en el front end para identificar ciertas celdas como celdas de inicializacin, y
si usted hace esto, entonces el contenido de estas celdas automticamente ser
evaluado cada vez que abra el cuaderno.
La I en el corchete de la celda indica que la segunda celda es una celda de
inicializacin que ser evaluada cada vez cuaderno sea abierto.

A veces es conveniente mantener el material de Mathematica tanto en un cuaderno


que contiene el texto explicativo, como en un paquete que contiene slo la materia
prima de las definiciones de Mathematica. Usted puede hacer esto poniendo las
definiciones de Mathematica en celdas de inicializacin en el cuaderno. Cuando
usted guarde el cuaderno, el front end le permitir guardar un archivo asociado .m
que slo contiene la materia prima de las definiciones de Mathematica.

12.2. Localizacin y manipulacin de archivos


Aunque los detalles como son llamados y organizados los archivos se diferencian
de un sistema informtico a otro, Mathematica proporciona algunos mecanismos
bastante generales para localizar y manejar archivos.
Mathematica asume que los archivos en su sistema informtico son organizados en
una coleccin de directorios. En cualquier punto, usted tiene un directorio de
207

trabajo actual. Usted siempre puede referirse a archivos en este directorio con tan
solo dar sus nombres.
Directory[ ]
SetDirectory["dir"]
FileNames[ ]
FileNames["form"]
<<name
<<context`
CopyFile["file1", "file2"]
DeleteFile["file"]

da su directorio de trabajo actual


fija su directorio de trabajo actual
lista los archivos en su directorio de trabajo
actual
lista los archivos cuyos nombres se ajustan a
una cierta forma
lee en un archivo con el nombre especificado
lee en un archivo correspondiente al
contexto especificado
copia file1 a file2
borra un archivo

Funciones para localizar y manipular archivos.

Este es un directorio de trabajo actual. La forma que tiene se diferencia de


un sistema informtico a otro.
Directory[ ]
C:\Archivos de programa\Wolfram Research\
Mathematica\5.1
Esto resetea el directorio de trabajo actual.
SetDirectory["Ejemplos"]
C:\Archivos de programa\Wolfram Research\
Mathematica\5.1\Examples
Esto da una lista de todos los archivos en su directorio de trabajo actual
cuyos nombres se ajustan a la forma Test*.m.
FileNames["Prueba*.m"]
{Prueba1.m,Prueba2.m,PruebaFinal.m}
Aunque usted por lo general quiera crear archivos slo en su directorio de trabajo
actual, a menudo tiene que leer en archivos de otros directorios. Por consiguiente,
cuando pide a Mathematica leer en un archivo con un nombre particular,
Mathematica automticamente busca una lista de directorios (especificado por el
valor de la variable de bsqueda de camino $Path) hasta que, en caso de que
exista, encuentra un archivo con aquel nombre.

208

Una cuestin en archivos que se manejan en Mathematica es que la forma de los


archivos y nombres de directorio vara entre sistemas informticos. Esto quiere
decir por ejemplo que los nombres de los archivos que contienen paquetes
estndares de Mathematica pueden ser bastante diferentes en sistemas diferentes.
Con una secuencia de convenciones, es sin embargo posible leer en un paquete
estndar de Mathematica con el mismo comando en todos los sistemas. La forma
en que esto trabaja es que cada paquete de programas define un llamado contexto
de Mathematica, de la forma name`name`. En cada sistema, todos los archivos se
nombran en correspondencia con los contextos que definen. Entonces cuando usted
usa el comando <<name`name` Mathematica automticamente traduce el nombre
de contexto al nombre de archivo apropiado para su sistema informtico particular.
FindList["file", "text"]
FindList[
FileNames[ ], "text"]

da una lista de todas las lneas en un archivo


que contienen el texto especificado
busca en todos los archivos en su directorio
corriente

Nombres tpicos de archivos de Mathematica.

Esto busca todas las lneas en el archivo Prueba1 que contienen


ChordLengths.
FindList["Prueba1.m", "Rotation"]
{(* :Keywords: Traslation, Scaling, Reflection,
Rotation *),
Rotation::usage = "Rotation[].",
Rotation[p_, t_, q_:{0, 0}] :=,
Rotation[ptos : {{_, _} ..}, t_, q_:{0, 0}] :=,
Table[Rotation[ptos[[i]], t, q], {i,
Length[ptos]}]}

12.3. Importacin y exportacin de datos


Import["file", "Table"]
Export["file", list,
"Table"]

importa una tabla de datos desde un archivo


exporta list a un archivo como una tabla de
datos

Importacin y exportacin de datos tabulares.

Esto exporta un array de nmeros al archivo out.dat.


Export["out.dat", {{5.7, 4.3}, {-1.2, 7.8}}]
out.dat
209

He aqu el contenido del archivo out.dat.


!!out.dat

Esto importa el contenido de out.dat como una tabla de datos.


Import["out.dat", "Table"]
{5.7,4.3},{-1.2,7.8}}
Import["file", "Table"] manejar muchas clases de datos tabulares,
automticamente deduciendo los detalles del formato siempre que es posible.
Export["file", list, "Table"] escribe datos separados por espacios, con
nmeros dados en forma parecida a C o Fortran, como en 2.3E5 etctera.
Import["name.ext"]
Export["name.ext", expr]

importa datos asumiendo un formato


deducido del nombre del archivo
importa datos en un formato deducido del
nombre del archivo

Importacin y exportacin de datos generales.

formatos de tabla
formatos de matriz
formatos de datos
especializados

"CSV", "TSV", "XLS"


"HarwellBoeing", "MAT", "MTX"
"DIF", "FITS", "HDF5", "MPS",
"SDTS", etc.

Algunos formatos comunes para datos tabulares.

Import y Export pueden manejar datos no slo tabulares, sino tambin datos
correspondientes a grficos, sonidos, expresiones y an documentos completos
Import y Export a menudo pueden deducir el formato apropiado para datos con
simplemente ver la extensin del nombre del archivo para el archivo en el cual los
datos estn siendo almacenados.
Note que usted tambin puede usar Import y Export para manipular archivos
de datos binarios.
Esto importa un grfico en formato GIF.
Import["girafa.gif"]
210

Esto muestra el grfico.


Show[%]

$ImportFormats
$ExportFormats

importa formatos soportados por su sistema


importa formatos soportados por su sistema

Encuentra la lista completa de formatos de importacin y exportacin soportados.

12.4. Exportacin de grficos y sonidos


Mathematica le permite exportar grficos y sonidos en una amplia variedad de
formatos. Si usted usa el front end de un cuaderno de Mathematica, entonces usted
solamente puede copiar y pegar grficos y sonidos directamente en otros
programas usando el mecanismo estndar disponible en su sistema informtico.

Export["name.ext",
graphics]
Export["file", graphics,
"format"]
Export["!command",
graphics, "format"]

exporta grficos a un archivo en un formato


deducido del nombre del archivo
exporta grficos en el formato especificado
exporta grficos a un comando externo

Exportacin de grficos y sonidos en Mathematica.

formatos de grficos
formatos de sonido

"EPS", "TIFF", "GIF", "JPEG",


"PNG", "PCX", "PDF", "SVG", etc.
"SND", "WAV", "AIFF", "AU", etc.

Algunos formatos comunes para grficos y sonidos.

211

Esto traza un grfico.


Plot[Sin[x] + Sin[Sqrt[2] x], {x, 0, 10}]

Esto exporta el grfico a un archivo en formato PostScript.


Export["sinplot.eps", %]
sinplot.eps

12.5. Exportacin de frmulas de cuadernos


He aqu una celda conteniendo una frmula.

Esto es lo que usted obtiene si copia la frmula y la pega en un programa


externo basado en texto.

Pegando el texto nuevamente en un cuaderno inmediatamente reproduce la


frmula original.

212

Mathematica le permite exportar frmulas tanto textual como visualmente. Usted


puede usar la Export para decir a Mathematica que escriba una representacin
visual de una frmula en un archivo.
Export["file.eps",
ToBoxes[expr]]
Export["file",
ToBoxes[expr], "format"]

guarda la forma visual de expr en un archivo


en formato EPS
guarda la forma visual de expr el formato
especificado

Exportacin de expresiones en forma visual.

12.6. Generacin e Importacin de TeX


Los cuadernos de Mathematica proporcionan un ambiente sofisticado para crear
documentos tcnicos. Pero en particular si usted quiere combinar su trabajo con
material existente en TeX, puede encontrar conveniente usar TeXForm para
convertir expresiones de Mathematica en forma conveniente de entrada para TeX.
TeXForm[expr]

imprime expr en forma de entrada para TeX

Salidas de Mathematica para TeX.

He aqu una expresin, impresa en forma estndar de Mathematica.


(x + y)^2 / Sqrt[x y]

He aqu la expresin en forma de entrada para TeX.


TeXForm[%]
\frac{(x+y)^2}{\sqrt{x y}}
ToExpression["input",
TeXForm]

convierte una entrada para TeX a


Mathematica

Conversin de cadenas TeX a Mathematica.

Esto convierte una cadena TeX a Mathematica. Observe los dobles \


necesarios en la cadena.
ToExpression["\\sqrt{x y}", TeXForm]
213

Adems de la capacidad de convertir expresiones individuales a TeX, Mathematica


tambin proporciona capacidades para traducir cuadernos completos. Estas
capacidades por lo general pueden accederse desde el men Save As Special en el
front end de un cuaderno, donde pueden fijarse varias opciones.

12.7. Cambio de material con la Web


HTMLSave["file.html"]
HTMLSave["file.html",
"source.nb"]

guarda su cuaderno actual completo en


forma HTML
guarda una versin HTML del cuaderno
source.nb

Conversin de cuadernos a HTML.

HTMLSave tiene muchas opciones que le permiten especificar como deberan ser
convertidos los cuadernos para navegadores de Web con capacidades diferentes.
Usted puede encontrar detalles escribiendo HTMLSave en el Help Browser de
Mathematica.
MathMLForm[expr]
MathMLForm[
StandardForm[expr]]
ToExpression["string",
MathMLForm]

imprime expr en forma MathML


use StandardForm antes que la notacin
matemtica tradicional
interpreta una cadena de MathML como
entrada de Mathematica

Conversin a y desde MathML.

He aqu una expresin impresa en forma MathML.


MathMLForm[x^2/z]
<math>
<mfrac>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mi>z</mi>
</mfrac>
</math>
Si usted pega MathML en un cuaderno de Mathematica, Mathematica
automticamente tratar de convertirlo en entrada de Mathematica. Usted puede
214

copiar una expresin de un cuaderno como MathML utilizando el men Copy As en


el front end de un cuaderno.
Export["file.xml",
expr]
Import["file.xml"]
ImportString[
"string", "XML"]

exporta en formato XML


importa desde XML
importa datos de una cadena de XML

Importacin y exportacin XML.

Similar a las expresiones de Mathematica, XML es un formato general para


representar datos. Mathematica automticamente convierte ciertos tipos de
expresiones a y desde tipos especficos de XML. MathML es un ejemplo. Otros
ejemplos incluyen NotebookML para expresiones de cuaderno, y SVG para
grficos.
Si usted pide a Mathematica que importe una parte genrica de XML, esto
producir una expresin SymbolicXML. Cada elemento XML de la forma <elem
attr='val'>data</elem> es traducido a una expresin SymbolicXML de
Mathematica de la forma XMLElement["elem",{"attr"->"val"},{datos}].
Una vez que usted ha importado un parte de XML como SymbolicXML, puede
usar las potentes capacidades de programacin simblica de Mathematica para
manipular la expresin que obtiene. Entonces puede usar la Export para exportar
el resultado en la forma de XML.

Esto genera una expresin SymbolicXML, con un XMLElement


representando el elemento a en la cadena XML.
ImportString["<a aa='va'>s</a>", "XML"]
XMLObject[Document][{},
XMLElement[a,{aava},{s}],{}]
Ahora hay dos niveles anidados en SymbolicXML.
ImportString[ "<a><b bb='1'>ss</b><b
bb='2'>ss</b></a>", "XML"]
XMLObject[Document][{},
XMLElement[
a,{},{XMLElement[b,{bb1},{ss}],
XMLElement[b,{bb2},{ss}]}],{}]
215

Esto hace una transformacin simple en SymbolicXML.


%/."ss" -> XMLElement["c",{},{"xx"}]
XMLObject[Document][{},
XMLElement[a,{},{XMLElement[b,{bb1},
{XMLElement[c,{},{xx}]}],XMLElement[b,
{bb2},{XMLElement[c,{},{xx}]}]}],{}]
Esto muestra el resultado como una cadena XML.
ExportString[%, "XML"]
<a>
<b bb='1'>
<c>xx</c>
</b>
<b bb='2'>
<c>xx</c>
</b>
</a>
Import["http://url", ...]
Import["ftp://url", ...]

importacin de datos de un website


importacin de datos de un servidor FTP

Importacin de datos de fuentes Web.

12.8. Generacin de expresiones C y Fortran


Si usted tiene programas con destino especial escritos en C o Fortran, puede ser
que quiera tomar frmulas que ha generado en Mathematica e insertarlas en el
cdigo original de sus programas. Mathematica le permite convertir expresiones
matemticas en expresiones C y Fortran.
CForm[expr]
FortranForm[expr]

escribe expr para que pueda ser usada en un


programa en C
escribe expr para Fortran

Salidas de Mathematica para lenguajes de programacin.

He aqu una expresin, escrita en forma estndar de Mathematica.


Expand[(1 + x + y)^2]
216

He aqu la expresin en forma Fortran.


FortranForm[%]

He aqu la misma expresin en forma C. Las macros para objetos como


Power son definidas en el archivo mdefs.h que viene con la mayora de
las versiones de Mathematica.
CForm[%]

Usted debe comprender que hay muchas diferencias entre Mathematica y C o


Fortran. Por consiguiente, las expresiones que usted traduce puede que no trabajen
exactamente del mismo modo que en Mathematica. Adems, hay tantas diferencias
en construcciones de programacin que no se hace ninguna tentativa de traducir
stos automticamente.
Compile[x, expr]

compila una expresin en eficiente cdigo


interno

Una forma de compilar expresiones en Mathematica.

Una de las motivaciones comunes para convertir expresiones de Mathematica en C


o Fortran es tratar de hacerlas ms rpidas de evaluar numricamente. Pero la razn
ms importante por la cual C y Fortran son potencialmente ms eficientes que
Mathematica es que en estos lenguajes uno siempre especifica que tipo de cada
variable usarentera, real, array, etc.
La funcin Compile de Mathematica hace tales asunciones dentro de
Mathematica, y genera un cdigo interno sumamente eficiente. Por lo general estas
corridas de cdigo no son ms lentas que las acostumbradas en C o Fortran.

12.9. Empalmar salidas de Mathematica con archivos externos


Si usted quiere hacer uso de una salida de Mathematica en un archivo externo
como un programa o documento, a menudo encontrar til empalmar la salida
automticamente en el archivo.
Splice["file.mx"]

empalma la salida de Mathematica en un


217

Splice["infile",
"outfile"]

archivo externo llamado file.mx, pone los


resultados en el archivo file.x
empalma la salida de Mathematica en infile,
enviando la salida a outfile

Empalmes de salida de Mathematica en archivos.

La idea bsica es establecer las definiciones que usted necesita en una sesin
particular de Mathematica, luego correr Splice para usar las definiciones que ha
hecho para producir la salida apropiada a insertar en los archivos externos.
#include "mdefs.h"
double f(x)
double x;
{
double y;
y = <* Integrate[Sin[x]^5, x] *> ;
return(2*y - 1) ;
}
Un programa simple en C conteniendo una frmula de Mathematica

#include "mdefs.h"
double f(x)
double x;
{
double y;
y = -5*Cos(x)/8 + 5*Cos(3*x)/48 - Cos(5*x)/80 ;
return(2*y - 1) ;
}
El programa anterior en C procesado con Splice

218

Bibliografa
Wolfram Research. The Mathematica Book.

219

También podría gustarte