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.
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)
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),
/, ^
Mathematica incorpora muchas funciones
predefinidas.
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] |
|
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 |
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 |
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 |
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 |
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 |
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 |
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. |
Mathematica realiza cálculos simbólicos, esto es, cálculos cuyo resultado es una expresión matemática.
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 |
Función |
Descripción |
TrigExpand [expresión] |
|
TrigFactor [expresión] |
|
TrigReduce [expresión] |
|
TrigToExp [expresión] |
|
ExpToTrig [expresión] |
|
PowerExpand [expresión] |
|
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, ... |
Función |
Descripción |
Integrate [f, x] |
Integra la función f en x |
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. |
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. |
Operador |
Descripción |
X == y |
Igualdad |
X != y |
Desigualdad |
X > y |
Mayor |
X >= y |
Mayo igual |
X < y |
Menor |
X <= y |
Menor igual |
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 |
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. |
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. |
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] |
|
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