Mathematica
Wolfram Mathematica | |||
---|---|---|---|
![]() | |||
![]() | |||
Información general | |||
Tipo de programa | lenguaje de programación | ||
Autor | Stephen Wolfram | ||
Desarrollador | Wolfram Research | ||
Modelo de desarrollo | Software propietario | ||
Lanzamiento inicial | 23/06/1988 | ||
Licencia | Software propietario | ||
Idiomas | Inglés, español, chino, japonés | ||
Información técnica | |||
Programado en | |||
Interfaz gráfica predeterminada | Qt | ||
Versiones | |||
Última versión estable | 14.131 de julio de 2024 | ||
Archivos legibles | |||
| |||
Archivos editables | |||
| |||
Enlaces | |||
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.
Resumen
[editar]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]
Características generales
[editar]![](http://178.128.105.246/content-http-upload.wikimedia.org/wikipedia/commons/thumb/3/30/Mathematica_dinis_surface.png/325px-Mathematica_dinis_surface.png)
Los atributos de Mathematica incluyen:[5]
- Bibliotecas de funciones matemáticas elementales y especiales.
- Matrices y manipulación de datos, así como soporte de matrices tipo sparse.
- Soporte para números complejos, precisión arbitraria, computación de intervalos aritméticos y simbólicos.
- Datos en 2D y 3D, función y visualización geográfica y herramientas de animación.
- Solucionadores para sistemas de ecuaciones, ecuaciones diofánticas, ecuaciones diferenciales ordinarias, parciales, diferenciales algebraicas, de retraso, diferenciales estocásticas y relaciones de recurrencia.
- 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.
- Herramientas de aprendizaje de máquina supervisadas y no supervisadas para datos, imágenes y sonidos.
- Geometría computacional en 2D, 3D y dimensiones mayores.
- Análisis de elementos finitos incluyendo generación de malla adaptiva en 2D y 3D.
- Optimización restringida y no restringida, local y global.
- Lenguaje de programación que da soporte a construcciones de procedimiento, functionales y orientados a objetos.
- Juego de herramientas para agregar interfaces de usuario a cálculos y aplicaciones.
- Herramientas para procesamiento de imágenes[6] en 2D y 3D, y procesamiento morfológico de imágenes incluyendo reconocimiento de imágenes.
- Herramientas para visualización y análisis de grafos dirigidos y no dirigidos.
- Herramientas para problemas combinatorios.
- Herramientas para minería de textos incluyendo expresiones regurales y análisis semántico.
- Herramientas de minería de datos tales como análisis de grupos, alineación de secuencias y búsqueda de patrones.
- Biblioteca de funciones de teoría de números.
- Herramientas para cálculos financieros, incluyendo bonos, anualidades, derivados, opciones, etc.
- Teoría de grupo y funciones de tensor simbólicas.
- Bibliotecas para procesamiento de señales, incluyendo análisis de ondas en sonidos, imágenes y datos.
- Bibliotecas de sistemas de control lineares y no lineares.
- Transformaciones integrales continuas y discretas.
- Importación y exportación de filtros para datos, imágenes, video, sonido, CAD, GIS,[7] formato de documento y biomédicos.
- Colección de base de datos para información matemática, científica y socioeconómica y acceso a datos de WolframAlpha y cálculos.
- Procesamiento de palabras técnicos incluyendo edición de fórmulas y reportes automatizados.
- Herramientas para conectarse a sistemas basados en DLL, SQL, Java, .NET, C++, Fortran, CUDA, OpenCL y http.
- Herramientas para programación paralela.
- Usando ambos "entradas lingüística de forma libre" (una interfaz de usuario de lenguaje natural)[8][9] y Wolfram Language en el cuaderno cuando está conectado a internet.
Interfaces
[editar]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
[editar]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.
Mathematica puede conectarse a una variedad de servicios en la nube para recuperar o enviar datos, incluido ArXiv, Bing, ChemSpider, Dropbox, Facebook, el Sistema de la Reserva Federal, Fitbit, Flickr, Google (Analytics, Calendar, Contacts, Custom search, Plus, Search, translate), Instagram, LinkedIn, Mailchimp, Open Library, PubChem, PubMed, Reddit, SurveyMonkey, Twitter y Wikipedia.
Funcionalidades de Mathematica para Internet
[editar]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.
Ejemplos
[editar]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, comenzando en el punto x = -1
In[2]:= FindRoot[Exp[x] == x^2 + 2, {x, -1}] Out[2]= {x -> 1.3190736768573652}
Múltiples paradigmas como lenguaje de programación
[editar]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 iterativa:
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.
Estructuras comunes, manipulaciones comunes
[editar]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:
In[8]:= FullForm[x^4 + 1] Out[8]= Plus[1, Power[x, 4]]
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:
In[9]:= Expand[(Cos[x] + 2 Log[x^11])/13][[2, 1]] Out[9]= 2/13
Lo contrario también puede ocurrir -- las 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.
Historial de versiones
[editar]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]
Wolfram Research ha lanzado las siguientes versiones de Mathematica:[13]
- Mathematica 1.0 (23 de junio de 1988)[14][15][16][17]
- Mathematica 1.1 (31 de octubre de 1988)
- Mathematica 1.2 (1 de agosto de 1989)[18][17]
- Mathematica 2.0 (15 de enero de 1991)[19][17]
- Mathematica 2.1 (15 de junio de 1992)[17]
- Mathematica 2.2 (1 de junio de 1993)[17][20]
- Mathematica 3.0 (3 de septiembre de 1996)[21]
- Mathematica 4.0 (19 de mayo de 1999)[17][22]
- Mathematica 4.1 (2 de noviembre de 2000)[17]
- Mathematica 4.2 (1 de noviembre de 2002)[17]
- Mathematica 5.0 (12 de junio de 2003)[17][23]
- Mathematica 5.1 (25 de octubre de 2004)[17][24]
- Mathematica 5.2 (20 de junio de 2005)[17][25]
- Mathematica 6.0 (1 de mayo de 2007)[26][27]
- Mathematica 7.0 (18 de noviembre de 2008)[28]
- Mathematica 8.0 (15 de noviembre de 2010)
- Mathematica 9.0 (28 de noviembre de 2012)
- Mathematica 10.0 (9 de julio de 2014)
- Mathematica 10.0.1 (17 de septiembre de 2014)
- Mathematica 10.0.2 (10 de diciembre de 2014)
- Mathematica 10.1 (30 de marzo de 2015)[29]
- Mathematica 10.2 (14 de julio de 2015)[30]
- Mathematica 10.3 (15 de octubre de 2015)
- Mathematica 10.3.1 (16 de diciembre de 2015)
- Mathematica 10.4 (2 de marzo de 2016)
- Mathematica 10.4.1 (18 de abril de 2016)
- Mathematica 11.0.0 (8 de agosto de 2016)
- Mathematica 11.0.1 (28 de septiembre de 2016)
- Mathematica 11.1.0 (marzo de 2017)[31]
- Mathematica 11.1.1 (25 de abril de 2017)[32]
- Mathematica 11.2 (14 de septiembre de 2017)[33]
- Mathematica 11.3 (8 de marzo de 2018)[34]
- Mathematica 12.0 (16 de abril de 2019)
- Mathematica 12.1 (18 de marzo de 2020)[35]
- Mathematica 12.2 (16 de diciembre de 2020)[36]
- Mathematica 13.0.0.0 (diciembre de 2021)
- Mathematica 13.0.1.0 (febrero de 2022)
Véase también
[editar]- Programación funcional
- Programación literaria
- Software matemático
- Wolfram Alpha
- Wolfram (lenguaje de programación)
- Wolfram SystemModeler
Referencias
[editar]- ↑ «Macworld: News: Wolfram intros Workbench IDE for Mathematica». web.archive.org. 2 de julio de 2006. Archivado desde el original el 2 de julio de 2006. Consultado el 21 de febrero de 2024.
- ↑ PhD, Patrick Scheibe. «Wolfram Language Plugin for JetBrains IDEs». Wolfram Language Plugin (en inglés). Consultado el 21 de febrero de 2024.
- ↑ «JMath: A GNU Readline based frontend for Mathematica». robotics.caltech.edu. Consultado el 21 de febrero de 2024.
- ↑ «Última versión de Mathematica e historial de revisiones rápido». www.wolfram.com. Consultado el 5 de agosto de 2024.
- ↑ «Wolfram Language & System Documentation Center». Consultado el 11 de agosto de 2015.
- ↑ Review: Mathematica 7. Technical computing powerhouse gets more oomph Archivado el 16 de noviembre de 2011 en Wayback Machine. Macworld, Jan 2009
- ↑ Mathematica 6 Labs Review Archivado el 25 de marzo de 2022 en Wayback Machine. Cadalyst Feb 1, 2008
- ↑ «The Free-Form Linguistics Revolution in Mathematica». Consultado el 11 de agosto de 2015.
- ↑ «Free-Form Linguistic Input». Consultado el 11 de agosto de 2015.
- ↑ Math, the universe, and Stephen: the author of Mathematica created a whirlwind of scientific controversy this year when, after more than 10 years of research, he published his treatise on the ability of simple structures to create unpredictable complex patterns. (2002 Scientist Of The Year).(Stephen Wolfram) by Tim Studt, R&D, November 1 , 2002.
- ↑ A Top Scientist's Latest: Math Software by Andrew Pollack, The New York Times, June 24, 1988.
- ↑ Wolfram, Stephen (6 de octubre de 2011), STEVE JOBS: A FEW MEMORIES, Wolfram Alpha, consultado el 16 de mayo de 2012.
- ↑ «Mathematica Latest Version and Quick Revision History». Consultado el 11 de agosto de 2015.
- ↑ Mathematica: The Scrapbook, Wolfram, archivado desde el original el 18 de mayo de 2012, consultado el 16 de mayo de 2012.
- ↑ «The Mathematica Journal: Volume 9, Issue 1: News Bulletins». Archivado desde el original el 3 de marzo de 2016. Consultado el 11 de agosto de 2015.
- ↑ Supercomputer Pictures Solve the Once Insoluble, John Markoff, October 30, 1988.
- ↑ a b c d e f g h i j k Nasser M. Abbasi. «A little bit of Mathematica history».
- ↑ Mathematica 1.2 adds new graphics options: upgrade also promises concurrent operations by Elinor Craig, MacWeek, July 25, 1989.
- ↑ Mathematica + 283 functions = Mathematica 2.0 by Raines Cohen, MacWeek, January 15, 1991.
- ↑ New version of Mathematica Archivado el 23 de octubre de 2012 en Wayback Machine., Mechanical Engineering, June 1, 1993.
- ↑ «Wolfram News Archive». Wolfram.com. Archivado desde el original el 2 de marzo de 2013. Consultado el 16 de agosto de 2013.
- ↑ Mathematica 4.0 by Charles Seiters, Macworld, October 1, 1999.
- ↑ Mathematica 5.0 Adds Up: Exactly 15 years after Mathematica's initial release, Wolfram Research has released Mathematica , PC Magazine, September 3, 2003.
- ↑ Mathematica 5.1's Web Services Add Up; Mathematica 5.1 delivers improvements over Version 5.0 that are vastly out of proportion for a .1 upgrade. Archivado el 9 de diciembre de 2012 en Wayback Machine. by Peter Coffee, eWeek, December 6, 2004.
- ↑ Mathematica hits 64-bit Archivado el 10 de junio de 2011 en Wayback Machine., MacWorld UK, July 13, 2005.
- ↑ Today, Mathematica is reinvented - Blog by Stephen Wolfram
- ↑ Mathematica 6: Felix Grant finds that version 6 of Wolfram Research's symbolic mathematical software really does live up to its expectations. Archivado el 13 de enero de 2011 en Wayback Machine. Scientific Computing, 2007.
- ↑ Mathematica 7.0 Released Today! - Blog by Stephen Wolfram
- ↑ «Wolfram Research News » Mathematica 10.1 is Now Available!». Archivado desde el original el 22 de agosto de 2015. Consultado el 11 de agosto de 2015.
- ↑ «Mathematica Latest Version and Quick Revision History». Consultado el 11 de agosto de 2015.
- ↑ Summary of New Features in 11.1
- ↑ «Mathematica Latest Version and Quick Revision History».
- ↑ «Stephen Wolfram blog: It’s Another Impressive Release! Launching Version 11.2 Today». Consultado el 14 de septiembre de 2017.
- ↑ «Stephen Wolfram blog: Roaring into 2018 with Another Big Release: Launching Version 11.3 of the Wolfram Language & Mathematica». Consultado el 8 de marzo de 2018.
- ↑ «In Less Than a Year, So Much New: Launching Version 12.1 of Wolfram Language & Mathematica—Stephen Wolfram Writings». writings.stephenwolfram.com (en inglés). Consultado el 18 de mayo de 2020.
- ↑ «Launching Version 12.2 of Wolfram Language & Mathematica: 228 New Functions and Much More…—Stephen Wolfram Writings». writings.stephenwolfram.com (en inglés). Consultado el 7 de febrero de 2021.
Enlaces externos
[editar]Multimedia en Commons.
- Página web oficial
- Mathematica Documentation Center
- Image identification website powered by Mathematica
- Wolfram Demonstrations Project Mathematica based demonstrations
- A little bit of Mathematica history documenting the growth of code base and number of functions over time
- Software de 1988
- Bases de datos
- Sistemas algebraicos computacionales
- Software multiplataforma
- Software científico
- Paquetes de software estadístico
- Editores de gráficos vectoriales
- Software educativo
- Software para Linux
- Entornos de desarrollo integrados para Windows
- Software para macOS
- Software de análisis numérico
- Optimización de software
- Software matemático
- Software de física
- Software de gráficos
- Qt
- Demostradores de teoremas
- Wolfram Research
- Software de simulación
- Análisis de la regresión
- Análisis de series temporales
- Entornos de desarrollo integrados para Linux