Mathematica es un programa
utilizado en áreas científicas, de ingeniería, matemáticas y áreas
computacionales. Originalmente fue concebido por Stephen Wolfram, quien
continúa siendo el líder del grupo de matemáticos y programadores que desarrollan
el producto en Wolfram Research, compañía ubicada en Champaign, Illinois.
Comúnmente considerado como un sistema de álgebra computacional, Mathematica es
también un poderoso lenguaje de programación de propósito general.
Reseña
La primera versión de
Mathematica se puso a la venta en 1988. La versión 7, la más reciente salió el
18 de noviembre de 2008 y se encuentra disponible para una gran variedad de
sistemas operativos.
Mathematica se divide en 2 partes, el
"kernel" o núcleo que desempeña los cálculos. Y el "front
end" o interfaz, que despliega los resultados y permite al usuario
interactuar con el núcleo como si fuera un documento. En la comunicación entre
el kernel y la interfaz (o cualquier otro cliente) Mathematica 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, tratando
de alcanzar un punto estable
Características generales
El lenguaje de programación de
Mathematica está basado en re-escritura de términos (que se identifica también
como computación simbólica), 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.
Algunas de
las características de Mathematica incluyen:
* Bibliotecas de funciones elementales y
especiales para matemáticas.
*
Herramientas de visualización de datos en 2D y 3D.
*
Matrices y manipulación de datos, así como soporte de matrices tipo"
sparse".
*
Capacidad de solucionar sistemas de ecuaciones, ya sea ordinarias, parciales o
diferenciales, así como relaciones de recurrencia y algebraicas en general.
*
Herramientas numéricas y simbólicas para cálculo de variable continua o
discreta.
*
Estadística multivariable.
*
Restringida y no restringida optimización de local y global .
*
Lenguaje de programación que soporta programación funcional.
* Un
kit de herramientas para añadir interfaces de usuario para cálculos y
aplicaciones.
*
Herramientas para procesamiento de imágenes.
*
Herramientas de análisis y visualización.
*
Minería de datos, como análisis de clusters, alineamiento de secuencias, y
"pattern matching".
* Bibliotecas
de funciones para teoría de números.
*
Transformaciones de integrales continuas y discretas.
*
Capacidades de importación y exportación de información de datos, imágenes,
vídeo y sonido, así como otros formatos biomédicos y de intercambio de
documentos en general.
*
Una colección de bases de datos incluidas de matemáticas, ciencia e información
socio económica (astronomía, diccionarios, clima, poliedros, países,
instrumentos financieros, componentes químicos, el genoma humano, entre otros).
*
Soporte para variable compleja, aritmética de precisión infinita y computación
simbólica para todas las funciones incluidas.
*
Interfaz de tipo documento que permite la reutilización de entradas y salidas
previas, incluidas gráficas y anotaciones de texto.
*
Funcionalidad como procesador de palabras técnico (cuaderno de notas),
incluyendo un editor de fórmulas.
Interfaces
La interfaz preseleccionada por Mathematica
tiene extensas características y capacidades gráficas, ofreciendo analogías a
un cuaderno de trabajo: la entrada de datos por parte del usuario y 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
seguir con facilidad la secuencia de las manipulaciones algebraicas o cálculos
que se están desarrollando en una sesión. Comenzando con la versión 3.0 del
software, los cuadernos se representan como expresiones que puedan ser
manipuladas, a su vez, por el núcleo.
Para permitir a aquellos usuarios que no
tienen una licencia, la visualización de los cuadernos de trabajo escritos en
Mathematica, se creó un paquete de lectura dedicado. Este paquete, llamado
MathReader puede bajarse de la red gratuitamente.
Otras interfaces se encuentran disponibles,
como, JMath o mash, pero la interfaz estándar de Mathematica es la más
popular
Conexiones con otras aplicaciones
[align=center]Las comunicaciones con otras
aplicaciones ocurren a través del protocolo llamado MathLink. Este protocolo
permite no solo comunicaciones entre el núcleo de Mathematica y las pantallas,
sino que 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 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 devuelva los resultados, también los desarrolladores de Mathematica
pueden acceder con facilidad a la funcionalidad de la plataforma .NET.
Funcionalidades de Mathematica para Internet
Wolfram Research cuenta con un
programa denominado webMathematica que añade funcionalidades para publicación
Web capaz de hacer cálculos y desplegar visualizaciones de Mathematica en
línea.
Como demostración de las capacidades de
Mathematica y webMathematica, Wolfram Research mantiene un sitio web en la que
es posible realizar integrales indefinidas simples "The Integrator"
en http://integrals.wolfram.com/index.jsp así como el "Demonstrations
project" que consiste en pequeños programas encapsulados que muestran un
concepto matemático o una función de Mathematica de manera simplificada, visual
y libre ya que el código fuente también puede descargarse. Estos pequeños
programas pueden visualizarse incluso sin contar con Mathematica sino
directamente en el browser o con el Mathematica Player que es gratuito y puede
descargarse en la página de Wolfram Research.