Mathematica es un programa utilizado en áreas científicas, de ingeniería, matemática 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.
La primera versión de Mathematica salió a la venta en 1988. La versión 10.3, fue lanzada el 15 de octubre de 2015 y se encuentra disponible en una gran variedad de sistemas operativos.
Mathematica está dividido en dos partes: el kernel (o núcleo) y la interfaz. El kernel realiza los cálculos e interpreta expresiones (código de Wolfram Language), devolviendo expresiones de resultado que cuales pueden ser mostradas por la interfaz. La interfaz original, diseñada por Theodore Gray en 1988, consiste de una interfaz de cuaderno y permite la creación y edición de cuadernos que pueden contener código, texto simple, imágenes y gráficos.
Las alternativas a la interfaz de Mathematica incluyen Wolfram Workbench, un entorno de desarrollo integrado (IDE) basado en Eclipse lanzado en 2006 que proporciona herramientas de desarrollo basadas en proyectos para Mathematica, incluyendo gestión de revisiones, depuración, perfilado y pruebas.[1]
Además existe un complemento para IDEs basados en IntelliJ IDEA para trabajar con código de Wolfram Language que es capaz de resaltar sintaxis y analizar y autocompletar variables locales y funciones definidas.[2] El kernel de Mathematica también incluye una interfaz de línea de comandos.
Otras interfaces incluyen JMath[3], basada en GNU Readline y WolframScript, el cual ejecuta programas autocontenidos de Mathematica (con argumentos) desde la línea de comandos de UNIX.
Mathematica ha sido diseñado para ser completamente estable y compatible con versiones anteriores. 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. La extensión para los archivos de Mathematica es .nb, y .m para archivos de configuración.
La versión más reciente de Mathematica es la versión 14.1.[4]
Herramientas numéricas y simbólicas para cálculo de variable continua o discreta.
Bibliotecas de Estadística multivariable, incluyendo ajuste, pruebas de hipótesis, y cálculos de probabilidad y expectativa en más de 140 distribuciones.
Soporte para datos censurados, datos temporales, series temporales y datos basados en unidades.
Cálculos y simulaciones en procesos aleatorios y queues.
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.
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 interfaz 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 hacia 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 cálculos, y devuelva los resultados, también los desarrolladores de Mathematica pueden acceder con facilidad a la funcionalidad de la plataforma .NET.
Mathematica 9 es compatible con varias versiones de Linux, OS X de Apple, Windows (XP SP3, Vista, 7 y 8) de Microsoft y Raspberry Pi. Todas estas plataformas son compatibles con implementaciones de 64 bits. Versiones anteriores de Mathematica hasta la 6.0.3 son compatibles con otros sistemas operativos, incluyendo Solaris, AIX, Convex, HP-UX, IRIX, MS-DOS, NeXTSTEP, OS/2, Ultrix y Windows Me.
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://www.wolframalpha.com/calculators/integral-calculator/ 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.
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.
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 si es entrada será representada como si fuera escrita:
In[7]:= x^4 + 1
Out[7]= 1+x4
Pero si el comando FullForm es usado en esta expresión:
Casi todos los objetos en Mathematica tienen básicamente la forma head [e1, e2, ...] (la cual puede ser mostrada o introducida de otras maneras). 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:
Mathematica fue construido sobre la base del trabajo de Cole y Wolfram Symbolic Manipulation Program (SMP).[10][11] El nombre de "Mathematica" fue sugerido a Stephen Wolfram por el cofundador de Apple Steve Jobs, aunque Stephen Wolfram pensó sobre este nombre anteriormente y rechazó la idea.[12]