Mathematica 3.0

Fecha de primera versión: 27-02-99
Fecha de última actualización: 19-11-00

Mathematica hace básicamente tres cosas:

Cálculos numéricos
Cálculos simbólicos
Gráficos

Mathematica también incorpora un lenguaje de programación.

Cálculos numéricos

Mathematica realiza cálculos numéricos, esto es, cálculos cuyo resultado es un número. 

Esto es, las operaciones que habitualmente hacemos con las calculadoras, las realiza Mathematica, pero con la ventaja que su precisión es ilimitada. 

Por ejemplo, si queremos calcular 2^81 la calculadora tiene que presentarlo en notación exponencial y nos dirá que 2^81 = 2,41785164.10^24, en cambio Mathematica nos dará como resultado 2.417.851.639.229.258.349.412.352.

Mathematica representa los resultados con la mayor precisión posible. Esto es, si el número que se obtiene es un número fraccionario el resultado se expresará como un número fraccionario, y si el resultado es un número irracional o complejo, el resultado se expresará en estos números.

Por ejemplo: 1/3 + 1/5 = 8/15

Mathematica también calcula el valor numérico de una expresión. Para calcular el valor de la expresión x^4 - 3x^2 + 5, cuando x = 5, introducimos  x^4 - 3x^2 + 5/.x -> 5 y obtendremos el resultado (555) 

Cálculos Aritméticos

Mathematica realiza las operaciones de suma (a+b), resta (a-b), multiplicación (a*b o a b), división (a/b), potenciación (a^b)

Las operaciones aritméticas se pueden hacer con cualquier tipo de número (entero, fraccionario, real, complejo).

Los operadores son: +, -, * (o espacio en blanco), /, ^

Cálculo de funciones

Mathematica incorpora muchas funciones predefinidas.

Trigonométricas

Función

Descripción

Sin[x]

Calcula el seno de x (x en radianes).

Cos[x]

Calcula el coseno de x (x en radianes).

Tan[x]

Calcula la tangente de x (x en radianes).

Csc[x]

Calcula la cosecante de x (x en radianes).

Sec[x]

Calcula la secante de x (x en radianes).

Cot[x]

Calcula la cotangente de x (x en radianes).

Arcsin[x]

Calcula el ángulo cuyo seno es x. El resultado se obtiene en radianes

Arccos[x]

Calcula el ángulo cuyo coseno es x. El resultado se obtiene en radianes.

Arctan[x]

Calcula el ángulo cuya tangente es x. El resultado se obtiene en radianes

Arccsc[x]

Calcula el ángulo cuya cosecante es x. El resultado se obtiene en radianes.

Arcsec[x]

Calcula el ángulo cuya secante es x. El resultado se obtiene en radianes.

Arctan[x]

Calcula el ángulo cuya tangente es x. El resultado se obtiene en radianes.

Sinh[x]

 

Cosh[x]

 

Tanh[x]

 

Csch[x]

 

Sech[x]

 

Coth[x]

 

Arcsinh[x]

 

Arccosh[x]

 

Arctanh[x]

 

Arccsch[x]

 

Arcsech[x]

 

Arctanh[x]

 

Cálculo combinatorio

Función

Descripción

Permutations[lista]

Calcula las permutaciones posibles de la lista

n!

Calcula el factorial de n (n(n-1)(n-2)(n-3)...1)

n!!

Calcula el doble factorial de n (n(n-2)(n-4)...)

Binomial[m,n]

Calcula el coeficiente binomial

Fibonacci[n]

Calcula el número de Fibonacci de orden n

Cálculos de teoría de números

Función

Descripción

Mod[k,n]

Calcula el resto de dividir k entre n

Quotient[a,b]

Calcula el cociente de dividir a entre b

Divisors[n]

Calcula la lista de los numeros que dividen a n

GCD[lista]

Calcula el máximo común divisor de una lista de números

LCM[lista]

Calcula el mínimo comun multiplo de una lista de números

FactorInteger[n]

Calcula la lista de los factores primos de n (factor y exponente)

Prime[n]

Calcula el número primo n-simo

PrimePi[n]

 Número de números primos menores o iguales a n

PrimeQ[n]

 Nos dice si n es primo o no

Matrices

Función

Descripción

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

Crea una matriz. F es una función de i y j. m y n son el número de filas y columnas.

Table [-3i+2j,{i,2},{j,5}]

Array [f,{m,n}]

Crea una matriz de m filas y n columnas.

MatrixForm [lista]

Visualiza la lista en forma matricial

IdentityMatrix [n]

Genera la matriz identidad (solo unos en la diagonal) de n filas y n columnas

DiagonalMatrix [lista]

Genera una matriz con los elementos incluidos en lista en la diagonal

Transpose [m]

Matriz traspuesta

Inverse [m]

Matriz inversa

Det [m]

Determinante de la matriz cuadrada m

MatrixPower [m,n]

Potencia n-sima de la matriz m

MatrixExp [m]

Matriz exponencial de m.

Número {lista}

Producto de número por el vector o matriz lista

 {lista}.{lista}

 Producto escalar

 Outer [Número, matriz1, matriz2]

 Producto externo de matrices

 

Integrales definidas

Función

Descripción

Integrate [f, {x, minx,maxx}]

Integral definida de la funcion f(x) en el intervalo minx, maxx

Integrate [f, {x, minx,maxx}, {y, miny, maxy}]

Integral doble definida de la funcion f(x,y) en el intervalo minx, maxx, miny, maxy

 

Ecuaciones

Función

Descripción

Solve [izq1 == der1,x]

Resuelve una ecuación polinómica

NSolve [izq1 == der1,x]

Aproximación numérica a una ecuación polinómica

 

Sistema de ecuaciones

Función

Descripción

Solve [{izq1 == der1, izq2 == der2, ...}, {x1,x2,x3}]

Resuelve un sistema de ecuaciones polinómicas

NSolve [{izq1 == der1, izq2 == der2, ...}, {x1,x2,x3}]

Aproximación numérica

 

Listas

Mathematica utiliza mucho el concepto de lista.

Una lista es un conjunto de datos. Cada elemento de este conjunto se separa por comas y todos ellos se encierran dentro de llaves { }.

Mathematica incorpora funciones para tratar los elementos de la lista.

Función

Descripción

Array[f,n]

 

 

Construye un vector simbólico donde cada elemento tiene la forma f[i].

"n" debe ser un entero y "f" una expresión simbólica.

Array[f,n,k]

 

Construye un vector simbólico de n componentes de la forma f[j] con j = k + i, "i" perteneciente a {0,...,n-1}, y "k" real.

Array[f,n,k,d]

Construye una matriz multidimensional simbólica

Array[f,{n1,....,nk}]

 

Construye una matriz multidimensional (n1*.....*nk) simbólica de valores f[i1,...,ik] donde ij pertenece a {1,...,nj}.

Array[f,{n1,...,nk},t]

Construye una matriz multidimensional simbólica, pero ahora cada una de las variables del elemento simbólico comienzan a partir de t que es un real.

Drop [lista,n]

Devuelve una lista sin los n primeros elementos

Drop [lista,-n]

Devuelve una lista sin los n últimos elementos

Drop [lista,{m,n}]

Devuelve una lista sin los elementos entre los subíndices m y n

Extract [lista {i, j, ...}]

Extrae el elemento de subíndice i, j, ...

Extract [lista {{i1, j1,...}, {i2, j2, ...}, ...}]

Extrae los elementos de subíndices i1, j1, .., i2, j2,...

First [lista]

Primer elemento de la lista

Last [lista]

Último elemento de la lista

Lista [[-n]]

n-simo elemento de la lista

Part [lista,-n]

n-simo elemento de la lista

Range[n]

Devuelve una lista de valores enteros consecutivos desde 1 hasta el entero igual a la parte entera de n.

Range[m,n]

Devuelve una lista de valores consecutivos a partir de m.

Cada termino an+1 = an + 1.

Range[m,n,d]

Construye una lista de números empezando en m y terminando en n. Cada termino an+1 = an + d.

Table[expr,{i}]

 

Genera una lista de i elementos, donde cada elemento se calcula a partir de la expresión especificada.

Table[expr,{i,imax}]

Igual que el anterior pero i toma valores desde 1 hasta imax

Table[expr,{i,imin,imax}]

Igual que el anterior pero i toma valores desde imin hasta imax.

Table[expr,{i,imin,imax,ipaso}]

Igual que el anterior pero el incremento es ipaso.

Table[lista,iterador]

Genera una lista donde cada elemento es una lista.

Table[expr(i,j),iteradori,iteradorj]

Genera una matriz de dos dimensiones fijando la "i" y moviendo la "j" para cada "i".

Table[expr(i,j,k},iteradori,iteradorj,iteradork]

Genera una matriz de tres dimensiones, fijando los anteriores iteradores y moviendo el último.

Take [lista,n]

Extrae una lista con los n primeros elementos de la lista original

Take [lista,-n]

Extrae una lista con los n últimos elementos de la lista original

Rest [lista]

Devuelve una lista sin su primer elemento

 

Estas son las funciones que Mathematica utiliza para tratar las listas:

Función

Descripción

Apply[operación,lista]

Realiza la operación especificada tomando los elementos de la lista como los argumentos de la operación.

Append[lista,elem]

Devuelve una nueva lista donde se ha añadido el elemento elem al final de la lista entrada.

La diferencia entre Append-Prepend y AppendTo-PrepenTo está en que AppedTo-PrependTo modifican la lista original, y en cambio Append-Prepend crean una nueva lista sin modificar la original.

AppendTo[lista,elem]

Se modifica la lista entrada añadiendo el elemento elem al final de la lista.

La diferencia entre Append-Prepend y AppendTo-PrepenTo está en que AppedTo-PrependTo modifican la lista original, y en cambio Append-Prepend crean una nueva lista sin modificar la original.

Complement[lista1,lista2,...,listak]

Devuelve una nueva lista formada por los elementos de lista1 que no se encuentran en lista2,....,listak ordenados y suprimidos los duplicados.

Complement-Intersection-Union devuelven listas donde los elementos se encuentran ordenados y sin duplicados. En cambio Join, no.

Dimensions[lista anidada rectangular]

Devuelve el número de filas y el número de elementos que forman las filas.

lista anidada rectangular: lista que contiene sublistas de la misma longitud.

Drop[lista,n]

Devuelve una nueva lista donde se han eliminado "n" elementos de la lista entrada.

Si n>0, se quitan los primeros "n" elementos.

Si n<0, se quitan los últimos "|n|" elementos.

Drop[lista,{n1,...,nk}]

Devuelve una nueva lista donde se han eliminado los elementos que ocupan los lugares n1,...,nk de la lista entrada.

expr[[i]]

Si i>0, devuelve la i-ésima parte de la expresión indicada (ya sea vector,matriz,lista de listas).

Si i<0, devuelve la |i|-ésima parte de la expresión indicada (ya sea vector, matriz, lista de listas), contando a partir del final.

Si i = 0, devuelve la cabecera de la expresión.

expr[[i,j,....,r]]

Devuelve expr[[i]][[j]]...[[r]].

expr[[{i1,...,ik}]]

Devuelve una nueva lista formada por los elementos i1,...,ik de la expresión indicada.

First[lista]

Devuelve el primer elemento de la lista especificada.

Flatten[lista]

Devuelve una lista obtenida por eliminación de listas anidadas en la lista entrada.

función /@ lista

Devuelve una nueva lista donde se ha aplicada la función especificada a cada elemento de la lista.

Es equivalente a la instrucción:            Map[función,lista].

Insert[lista,elem,n]

Si n>0, devuelve una nueva lista donde se ha añadido el elemento elem en la posición "n" de la lista entrada.

Si n<0, devuelve una nueva lista donde se ha añadido el elemento elem en la posición "|n|" de la lista entrada contando a partir del final de la lista.

Intersection[lista1,...,listak]

Devuelve una nueva lista formada por los elementos comunes a todas las listas, ordenados y suprimidos los duplicados.

Complement-Intersection-Union devuelven listas donde los elementos se encuentran ordenados y sin duplicados. En cambio Join, no.

Join[lista1,...,listak]

Devuelve una nueva lista obtenida por yuxtaposición de los elementos de todas las tiras.

Last[lista]

Devuelve el último elemento de la lista especificada.

Length[lista]

Determina el número de elementos de una lista.

m[[i,j]]

Devuelve el j-ésimo elemento de la i-ésima fila de la matriz m.

Map[función,lista]

Devuelve una nueva lista donde se ha aplicada la función especificada a cada elemento de la lista.

operación @@ lista

Realiza la operación especificada tomando los elementos de la lista como los argumentos de la operación.

Es equivalente a la instrucción:            Apply[operación,lista].

Part[expr,i]

Es equivalente a expr[[i]].

Part[expr,i,j,...,r]

Es equivalente a expr[[i,j,...,r]]

Partition[lista,n]

Devuelve una nueva lista obtenida por partición de la lista en "n" partes iguales.

Partition[lista,n,d]

Parte la lista en partes de n elementos con d elementos comunes

Permutations[lista]

Devuelve una nueva lista formada por todas las posibles permutaciones de los elementos de la lista entrada.

Prepend[lista,elem]

Devuelve una nueva lista donde se ha añadido el elemento elem al principio de la lista entrada.

La diferencia entre Append-Prepend y AppendTo-PrepenTo está en que AppedTo-PrependTo modifican la lista original, y en cambio Append-Prepend crean una nueva lista sin modificar la original.

PrependTo[lista,elem]

Se modifica la lista entrada añadiendo el elemento elem al principio de la lista.

La diferencia entre Append-Prepend y AppendTo-PrepenTo está en que AppedTo-PrependTo modifican la lista original, y en cambio Append-Prepend crean una nueva lista sin modificar la original.

Reverse[lista]

Devuelve una lista con los elementos invertidos.

Rest[lista]

Devuelve una nueva lista donde se ha eliminado el primer elemento de la lista entrada.

RotateRight[lista,n]

Si n es un entero positivo, devuelve una nueva lista donde los "n" últimos elementos de la lista original han sido colocados al principio.

Si n es un entero negativo, devuelve una nueva lista donde los "n" primeros elementos de la lista orginal han sido colocados al final.

RotateLeft[lista,n]

Si n es un entero positivo, devuelve una nueva lista donde los "n" primeros elementos de la lista original han sido colocados al final.

Si n es un entero negativo, devuelve una nueva lista donde los "n" últimos elementos de la lista original han sido colocados al principio.

Select[{e1,e2,...,ek},criterio]

Devuelve una nueva lista formada por los elementos ei que cumplen el criterio especificado.

Un criterio es una función que devuelve los valores True o False. Si el criterio devuelve un valor distinto a True o False, Select lo interpreta como un False.

Los criterios implementados en Mathematica son las funciones que acaban en Q (IntegerQ, OddQ, EvenQ,...). También se pueden implementar nuevos criterios según convenga.

Sort[lista]

Devuelve una lista con los elementos ordenados.

Split[lista]

Parte la lista agrupando en una sublista los elementos iguales

Take[lista,n]

Devuelve una nueva lista formada por "n" elementos de la lista entrada.

Si n>0, la nueva lista está formada por los primeros "n" elementos de la lista entrada.

Si n<0, la nueva lista está formada por los "|n|" últimos elementos de la lista entrada.

Take[lista,{n1,...,nk}]

Devuelve una nueva lista formada por los elementos que ocupan los lugares n1,...,nk de la lista entrada.

Union[lista]

Devuelve una nueva lista donde los elementos de la lista de entrada han sido ordenados eliminando los elementos duplicados.

Complement-Intersection-Union devuelven listas donde los elementos se encuentran ordenados y sin duplicados. En cambio Join, no.

Union[lista1,....,listak]

Devuelve una nueva lista formada por la unión de todas las listas (la lista queda ordenada).

v[[i]]

Si i>0, devuelve el i-ésimo elemento del vector o lista v.

Si i<0, devuelve el |i|-ésimo elemento del vector/lista v contando a partir del final.

Si i>0 y v es una matriz, devuelve el vector i-ésimo (fila i-ésima).

Si i<0 y v es una matriz, devuelve el vector |i|-ésimo (fila |i|-ésima) contando a partir del final.

 

Cálculos simbólicos

Mathematica realiza cálculos simbólicos, esto es, cálculos cuyo resultado es una expresión matemática.

Operaciones algebráicas

Función

Descripción

PolynomialQuotient [polinomio1, polinomio2, x]

Polinomio cociente entre los polinomios 1 y 2

PolynomialRemainder [polinomio1, polinomio2, x]

Resto de dividir los dos polinomios

PolynomialMod [polinomio, m]

Resto de dividir el polinomio entre m

PolynomialLCM [polinomio1, polinomio2]

Mínimo común múltiplo de los dos polinomios

PolynomialGCD [polinomio1, polinomio2]

Máximo común divisor de dos polinomios

 

Operaciones con expresiones trigonométricas.

Función

Descripción

TrigExpand [expresión]

 

TrigFactor [expresión]

 

TrigReduce [expresión]

 

TrigToExp [expresión]

 

ExpToTrig [expresión]

 

PowerExpand [expresión]

 

 

Derivadas

Función

Descripción

Dt [f]

Calcula la diferencial total de la función f respecto de x

Dt [f, x]

Derivada total respecto de x

Dt [f, x1, x2, ...]

Derivada total respecto de x1, x2, ...

D [f, x]

Derivada parcial de f respecto de x

D [f, {x, n}]

Derivada parcial n-sima de f respecto de x

D [f, x1, x2, ...]

Derivada parcial de f respecto de x1, x2, ...

 

Integrales indefinidas

Función

Descripción

Integrate [f, x]

Integra la función f en x

 

Gráficos

En 2 dimensiones

Función

Descripción

Plot[f,{x,min,max}, opcion -> valor, opcion -> valor, ...]

Dibuja la función f(x) desde x = min hasta x = max

Plot[{f1,f2,...},{x,min,max}, opcion -> valor, opcion -> valor, ...]

Dibuja las funciones f1(x), f2(x), ... entre los valores x = min y x = max.

Las opciones pueden ser:

Opción

Valor por defecto

Comentario

AspectRatio

1/GoldenRatio

Proporción entre altura y anchura

Axes

Automatic

Indica si se dibujan ejes.

AxesLabel

None

Etiqueta para los ejes

AxesOrigin

Automatic

Señala el origen de coordenadas

TextStyle

$TextStyle

Estilo del texto

FormatType

StandardForm

Formato del texto

DisplayFunction

$DisplayFunction

Cómo se visualiza el gráfico

Frame

False

Indica si se dibuja un marco alrededor del gráfico.

FrameLabel

None

Añade etiqueta alrededor del gráfico.

FrameTicks

Automatic

Añade marcas en el borde del marco del gráfico.

GridLines

None

Si Automatic se dibujan rectas que forman cuadrículas.

PlotLabel

None

Texto a escibir como titulo del grafico.

PlotRange

Automatic

Rango de coordenadas entre las ques e dibuaj el gráfico.

Ticks

Automatic

Se añaden marcas en los ejes

 

En muchas ocasiones querrás dibujar más de un gráfico juntos. Esto se hace con la función Show. Esta función tiene varias formas:

Función

Descripción

Show[gráfico]

Vuelve a dibujar un gráfico.

Show[gráfico, opción -> valor]

Igual que el anterior pero cambia las opciones

Show[gráfico1, gráfico2,...]

Superpone varios gráficos

Show[GraphicsArray [{gráfico1, gráfico2, ...}]]

Dibuja varios gráficos uno al lado del otro.

Show[GraphicsArray [{gráfico1}, {gráfico2, ...}]]

Dibuja varios gráficos en columna.

Show[GraphicsArray [gráficos, GraphicsSpacing ->{h,v}]]

Dibuja varios gráficos con la separación horizontal y vertical especificada.

Show[GraphicsArray [{{gráfico1, gráfico2, ...}, ...}]]

Dibuja una matriz rectangular de gráficos.

InputForm [gráfico]

Muestra la información del gráfico.

 

Mathematica también permite dibujar gráficos de curvas de nivel (similares a los mapas topográficos en los que se representan la alturas por curvas) y de densidad (similares a los mapas en que se representan las alturas por colores que se van modificando paulatinamente)  

Función

Descripción

ContourPlot [f,{x, minx, maxx}, {y, miny, maxy}]

Dibuja un gráfico de curvas de nivel

DensityPlot [f,{x, minx, maxx},{y, miny, maxy}]

Dibuja un gráfico de densidad

 

También se puede dibujar un gráfico a partir de una lista de puntos.

Función

Descripción

ListPlot[{{x1,y1}, {x2,y2}, ...}]

Dibuja los puntos (x1,y1), (x2,y2)

ListPlot[lista, PlotJoined -> True]

Dibuja un gráfico uniendo los puntos.

ListContourPlot [matriz]

Dibuja un gráfico de contorno

ListDensity [matriz]

Dibuja un grafico de densidad.

 

También se pueden representar gráficos en ecuaciones paramétricas

Función

Descripción

ParametricPlot[{fx,fy},{t,mint, maxt}]

Dibuja el gráfico de las funciones fx , fy

ParametricPlot[{fx,fy},{gx,gy},{t,mint, maxt}]

Dibuja varios gráficos solapados.

 

En 3 dimensiones

La función básica para representar gráficamente una función f es esta:

Función

Descripción

Plot3D[f, {x, minx, maxx}, {y, miny, maxy}]

Dibuja la función f(x,y)

 

También se puede dibujar un gráfico en 3 dimensiones a partir de una lista de puntos.

Función

Descripción

ListPlot3D[{{x1,y1,z1}, {x2,y2,z2}, ...}]

Dibuja los puntos (x1,y1,z1), (x2,y2,z2)

También se pueden representar gráficos en 3 dimensiones, en ecuaciones paramétricas

Función

Descripción

ParametricPlot3D[{fx,fy,fz },{t,mint, maxt}]

Dibuja el gráfico de las funciones fx , fy, fz

ParametricPlot3D[{fx,fy,fz },{gx,gy,gz },{t,mint, maxt},{ u,minu, maxu}]

Dibuja varios gráficos solapados.

 

Lenguaje de programación 

Operadores

Operadores relacionales

Operador

Descripción

X == y

Igualdad

X != y

Desigualdad

X > y

Mayor

X >= y

Mayo igual

X < y

Menor

X <= y

Menor igual

 

Operadores lógicos

Operador

Descripción

!expresión

No

¬expresión

No

Expresión1 && expresión2...

Y

Expresión1 ^^ expresión2...

Y

Expresión1 || expresión2...

O

Expresion1 Ú Exprexio2...

O

Xor [expresion1, expresión2,...]

O exclusivo

 

Sentencias condicionales

Sentencia

Descripción

If [condición, expresiones-then, expresiones-else]

 Si condición es True se ejecutan las expresiones-then, si condición es False se ejecutan las expresiones-else.

Switch [expresión, condición1, valor1, condición2, valor2, ...]

Switch calcula expresión, luego compara el resultado con cada una de las condiciones hasta que coincide con una de ellas, evaluando y devolviendo entonces el valor asociado.

Which [condición1, valor1, condicion2, valor2, ...]

Calcula consecutivamente las condiciones 1,2,... hasta que encuentra una que es cierta y devuelve el valor de la expresión asociada.

 

Sentencias repetitivas

Sentencia

Descripción

Do [expresiones,{i}]

Evalúa las expresiones i veces.

Las expresiones deben separarse por ;

Do [expresiones,{i, desde, hasta, incremento}]

Evalúa las expresiones variando i desde el valor desde hasta el valor hasta, incrementando i en cada bucle el valor incremento.

Si no se incluye incremento, se supone que es 1.

Si tampoco se incluye el valor hasta se supone que i varía desde 1 hasta desde.

Si tampoco se incluye el valor desde expresiones se repite i veces.

Las expresiones deben separase por ;

For [expresión, condición, incremento, sentencias]

Se evaluan las sentencias desde el valor expresión, hasta que la condición sea falsa, incrementando en cada bucle expresión en el valor incremento.

While [condición, sentencias]

Se evaluan las sentencias hasta que se cumple la condición.

 

Sentencias de control del flujo de programa

Sentencia

Descripción

Break [ ]

Sale del bucle

Continue [ ]

Salta al siguiente paso del bucle

Goto [nombre]

Salta a la posición indicada por la etiqueta nombre

Return [expresión]

Sale de todos los bucles devolviendo la expresión

Throw [valor]

 

 

Bibliografía

The Mathematica Book
Autor: Stephen Wolfram
Ed. Cambridge University Press

Fundamentos y aplicaciones de Mathematica
Autores: Javier Rodriguez Gómez y Feliz García Merayo
Ed. Paraninfo

Enlaces a otras páginas de mathematica