Mathematica
De Wikipedia, la enciclopedia libre
Mathematica |
|
---|---|
{{{pie}}} |
|
Wolfram Research | |
Última versión:
|
5.2 / 12 de Julio, 2005 |
S.O.:
|
Multiplataforma (list) |
Sistema algebraico de cómputo | |
Propietario | |
- | |
Página de Mathematica |
Mathematica es un sistema de álgebra computacional originalmente desarrollado por Stephen Wolfram y vendido por su compañía, Wolfram Research. Mathematica es también un poderoso lenguaje de programación que emula múltiples paradigmas utilizando reescritura de términos. Utiliza bloques de código (librerías), para ampliar las capacidades y reorientar el cálculo.
Wolfram y su equipo iniciaron trabajos en este programa en 1986, sacando al mercado la primera versión en 1988. La versión 5.2 salió al mercado en julio 12 de 2005. Se encuentra disponible para una gran variedad de sistemas operativos.
El lenguaje de programación de Mathematica está basado en re-escritura de términos, y soporta el uso de programación funcional y de procedimientos (aunque en general, la programación funcional es más eficiente). Está implementado en una variante del Lenguaje de programación C orientado a objetos, pero el grueso del extenso código de librerías está en realidad escrito en el lenguaje Mathematica, que puede ser usado para extender el sistema algebraico. Usualmente, nuevo código puede ser añadido en forma de paquetes de Mathematica, como los archivos de texto escrito en el lenguaje de Mathematica.
En Mathematica, el lenguaje es interpretado por un kernel o núcleo que desempeña los cálculos. Los resultados se comunican a algún interfaz de usuario. La comunicación entre el kernel y la interfaz (o cualquier otro cliente) usa el protocolo MathLink, a menudo sobre una red. Es posible que diferentes interfaces se conecten al mismo núcleo, y también que una interfaz se conecte a varios núcleos.
A diferencia de otros sistemas de álgebra computacional, por ejemplo Maxima o Maple, Mathematica intenta usar las reglas de transformación que conoce en cada momento tanto como sea posible, hasta alcanzar un punto estable donde no se puedan seguir aplicando transformaciones.
Tabla de contenidos |
[editar] Historia
Wolfram ha sacado al mercado las siguientes versiones:
- Mathematica 1.0 1988
- Mathematica 1.2 1989
- Mathematica 2.0 1991
- Mathematica 2.1 1992
- Mathematica 2.2 1993
- Mathematica 3.0 1996
- Mathematica 4.0 1999
- Mathematica 4.1 2000
- Mathematica 4.2 2002
- Mathematica 5.0 2003
- Mathematica 5.1 2004
- Mathematica 5.2 2005
[editar] Ejemplos
La siguiente secuencia de Mathematica encuentra el determinante de una matriz de 6x6, cuyos i, j enésima entradas contienen ij con todos los ceros reemplazados por 1.
In[1]:= Det[Array[Times, {6, 6}, 0] /. 0 -> 1] Out[1]= 0
Entonces, el determinante de tal matriz es cero.
El siguiente calcula numéricamente la raíz de la ecuación ex = x2 + 2, iniciano en el punto x = -1
In[2]:= FindRoot[Exp[x] == x^2 + 2, {x, -1}] Out[2]= {x -> 1.3190736768573652}
[editar] Múltiples paradigmas, un lenguaje
Mathematica permite múltiples paradigmas de programación. Considere por ejemplo: una tabla con los valores de gcd(x, y) para 1 ≤ x ≤ 5, 1 ≤ y ≤ 5.
La opción más concisa es usar una de las muchas funciones especializadas:
In[3]:= Array[GCD, {5, 5}] Out[3]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}
También se puede de esta forma:
In[4]:= Table[GCD[x, y], {x, 1, 5}, {y, 1, 5}] Out[4]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}
Igualmente se puede:
In[5]:= Outer[GCD, Range[5], Range[5]] Out[5]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}
Outer corresponde al operador del producto externo , Range corresponde al operador iota.
De forma interactiva:
In[6]:= l1 = {}; (* inicia una lista vacía, para obtener una lista al final*) For[i = 1, i <= 5, i++, l2 = {}; For[j = 1, j <= 5, j++, l2 = Append[l2, GCD[i, j]] ]; l1 = Append[l1, l2]; (* añade a la sublista, esto es, la fila *) ]; l1 Out[6]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}
Observe que esta solución es considerablemente más larga que las anteriores.
[editar] Estructuras comunes, manipulaciones comunes
Uno de los principios que guían en Mathematica, es la estructura unificada detrás de todos los objetos representables. Por ejemplo, la expresión x4 + 1 si es entrada será representada como si fuera escrita:
In[7]:= x^4 + 1 Out[7]= 1+x4
Pero si el FullForm comando es usado en esta expresión:
In[8]:= FullForm[x^4 + 1] Out[8]= Plus[1, Power[x, 4]]
Cerca de todos los objetos en Mathematica tienen básicamente la forma head[e1, e2, ...] (la cual puede se mostrada o entrada de otras manera). Por ejemplo, el head del ejemplo de arriba es Plus, y los símbolos tales como x tienen la forma Symbol["x"]. Las listas tienen esta estructura también, donde el head es List.
El principio permite expresiones ordinarias sin relación con listas, ser operadas con operaciones de listas:
In[9]:= Expand[(Cos[x] + 2 Log[x^11])/13][[2, 1]] Out[9]= 2/13
Lo contrario también puede ocurrir -- listas pueden ser modificadas para comportarse como expresiones ordinarias:
In[10]:= Map[Apply[Log, #] &, {{2, x}, {3, x}, {4, x}}] Out[10]= {Log[x]/Log[2], Log[x]/Log[3], Log[x]/Log[4]}
donde la función Apply cambia el head del segundo argumento hacia el primero.
[editar] Interfaces
la interfaz por efecto de Mathematica tiene extensas características y capacidades gráficas, ofreciendo analogías a un cuaderno de trabajo: la entrada de parte del usuario (tanto texto como la entrada hecha en Mathematica), también como de los resultados enviados por el núcleo (incluyendo gráficas y sonidos). Son colocados en forma de celdas jerárquicas (igual que Maple), lo cual permite delinear y/o seccionar un documento. Comenzando con la versión 3.0 del software, los cuadernos se representan como expresiones que se puedan manipular por el núcleo, y las características que componían la interfaz eran juzgadas suficientemente para garantizar la disponibilidad de un software lector dedicado a la exhibición de los cuadernos de Mathematica, el software MathReader el cual no se encuentra atado a una licencia comercial.
Otras interfaces se encuentran disponibles, como, JMath o mash, pero la interfaz estándar de Mathematica es la más popular.
[editar] Conexiones con otras aplicaciones
Las comunicaciones con otras aplicaciones ocurren a través del protocolo llamao MathLink. Esto permite no solo comunicaciones entre el núcleo de Mathematica y las pantallas, como también provee la interface entre el núcleo y aplicaciones arbitrarias. Wolfram Research distribuye de forma gratuita un kit para enlazar aplicaciones escritas en el lenguaje de programación C hacía el núcleo de Mathematica a través de MathLink. Otros os componentes de Mathematica, que usan el protocolo Mathlink, permite a los desarrolladores establecer comunicaciones entre el núcleo y Java o para programas .NET como J/Link y.NET/Link
Usando J/Link, un programa de Java puede decirle a Mathematica que ejecute cálculos; también Mathematica puede cargar cualquier clase de Java, manipular objetos de Java y desempeñar llamadas a métodos, haciendo posible construir interfaces gráficas desde Mathematica. De forma similar, la plataforma .NET puede enviarle órdenes al núcleo para que ejecute calculos, y evuelva los resultados, también los desarrollaores de Mathematica pueen acceder con facilidad a la funcionalidad de la plataforma .NET.
[editar] Mathematica en Internet
Wolfram Research también tienen un programa llamado webMathematica, el añade la posibilidad de hacer cálculos y visualizaciones de Mathematica en una página de internet.
Como demostración de las capacidades de Mathematica y webMathematica, Wolfram Research mantiene una web en la que es posible realizar integrales indefinidas simples. Esta web se llama "The Integrator" y puede encontrarse en http://integrals.wolfram.com/index.jsp
[editar] Véase también
[editar] Enlaces externos
- Wolfram Research ((Inglés))
- Mathematica (Wolfram Research) ((Inglés))
- La Historia y desarrollo de Mathematica ((Inglés))
- Wiki-Mathematica ((Inglés))
- IMTEK Mathematica Supplement (IMS) ((Inglés)) Open Source Add-On