Arce (software)
Maple es un entorno informático simbólico y numérico, así como un lenguaje de programación multiparadigma. Abarca varias áreas de la informática técnica, como matemáticas simbólicas, análisis numérico, procesamiento de datos, visualización y otras. Una caja de herramientas, MapleSim, agrega funcionalidad para el modelado físico multidominio y la generación de código.
La capacidad de Maple para la computación simbólica incluye la de un sistema de álgebra computacional de propósito general. Por ejemplo, puede manipular expresiones matemáticas y encontrar soluciones simbólicas a ciertos problemas, como los que surgen de las ecuaciones diferenciales ordinarias y parciales.
Maple es desarrollado comercialmente por la empresa de software canadiense Maplesoft. El nombre 'Maple' es una referencia a la herencia canadiense del software.
Resumen
Funcionalidad principal
Los usuarios pueden ingresar matemáticas en notación matemática tradicional. También se pueden crear interfaces de usuario personalizadas. Hay soporte para cómputos numéricos, con precisión arbitraria, así como cómputo y visualización simbólicos. A continuación se dan ejemplos de cálculos simbólicos.
Maple incorpora un lenguaje de programación de estilo imperativo tipado dinámicamente (similar a Pascal), que permite variables de alcance léxico. También hay interfaces para otros lenguajes (C, C#, Fortran, Java, MATLAB y Visual Basic), así como para Microsoft Excel.
Maple es compatible con MathML 2.0, que es un formato W3C para representar e interpretar expresiones matemáticas, incluida su visualización en páginas web. También hay una funcionalidad para convertir expresiones de la notación matemática tradicional al marcado adecuado para el sistema de composición tipográfica LaTeX.
Arquitectura
Maple se basa en un pequeño núcleo, escrito en C, que proporciona el lenguaje Maple. La mayor parte de la funcionalidad la proporcionan las bibliotecas, que provienen de una variedad de fuentes. La mayoría de las bibliotecas están escritas en el lenguaje Maple; estos tienen un código fuente visible. Muchos cálculos numéricos son realizados por las bibliotecas numéricas NAG, las bibliotecas ATLAS o las bibliotecas GMP.
Diferentes funcionalidades en Maple requieren datos numéricos en diferentes formatos. Las expresiones simbólicas se almacenan en la memoria como gráficos acíclicos dirigidos. La interfaz estándar y la interfaz de la calculadora están escritas en Java.
Historia
El primer concepto de Maple surgió de una reunión a fines de 1980 en la Universidad de Waterloo. Los investigadores de la universidad deseaban comprar una computadora lo suficientemente potente como para ejecutar el sistema de álgebra computacional Macsyma basado en Lisp. En cambio, optaron por desarrollar su propio sistema de álgebra computacional, llamado Maple, que se ejecutaría en computadoras de menor costo. Con el objetivo de la portabilidad, comenzaron a escribir Maple en lenguajes de programación de la familia BCPL (inicialmente usando un subconjunto de B y C, y luego solo C). Una primera versión limitada apareció después de tres semanas, y las versiones más completas entraron en uso generalizado a partir de 1982. A fines de 1983, más de 50 universidades tenían copias de Maple instaladas en sus máquinas.
En 1984, el grupo de investigación acordó con Watcom Products Inc la licencia y distribución de la primera versión disponible comercialmente, Maple 3.3. En 1988 se fundó Waterloo Maple Inc. (Maplesoft). El objetivo original de la empresa era gestionar la distribución del software, pero con el tiempo creció hasta tener su propio departamento de I+D, donde se lleva a cabo la mayor parte del desarrollo de Maple en la actualidad (el resto se realiza en varios laboratorios universitarios).
En 1989, se desarrolló la primera interfaz gráfica de usuario para Maple y se incluyó con la versión 4.3 para Macintosh. Las versiones X11 y Windows de la nueva interfaz siguieron en 1990 con Maple V. En 1992, Maple V Release 2 introdujo la "hoja de trabajo" que combinaba texto, gráficos y entrada y salida tipográfica. En 1994 se publicó un número especial de un boletín creado por los desarrolladores de Maple llamado MapleTech.
En 1999, con el lanzamiento de Maple 6, Maple incluyó algunas de las bibliotecas numéricas de NAG. En 2003, el actual "estándar" La interfaz se introdujo con Maple 9. Esta interfaz está escrita principalmente en Java (aunque partes, como las reglas para escribir fórmulas matemáticas, están escritas en el lenguaje Maple). La interfaz de Java fue criticada por ser lenta; se han realizado mejoras en versiones posteriores, aunque la documentación de Maple 11 recomienda la interfaz anterior ("clásica") para usuarios con menos de 500 MB de memoria física.
Entre 1995 y 2005, Maple perdió una participación de mercado significativa frente a los competidores debido a una interfaz de usuario más débil. Con Maple 10 en 2005, Maple introdujo un nuevo "modo de documento" interfaz, que desde entonces se ha desarrollado aún más en varias versiones.
En septiembre de 2009, el minorista de software japonés Cybernet Systems adquirió Maple y Maplesoft.
Historial de versiones
- Maple 1.0: enero, 1982
- Maple 1.1: enero, 1982
- Maple 2.0: mayo, 1982
- Maple 2.1: junio de 1982
- Maple 2.15: agosto, 1982
- Maple 2.2: diciembre, 1982
- Maple 3.0: mayo, 1983
- Maple 3.1: octubre, 1983
- Maple 3.2: abril de 1984
- Maple 3.3: marzo de 1985 (primera versión pública disponible)
- Maple 4.0: abril de 1986
- Maple 4.1: mayo, 1987
- Maple 4.2: diciembre, 1987
- Maple 4.3: March, 1989
- Maple V: agosto, 1990
- Maple V R2: noviembre 1992
- Maple V R3: 15 de marzo de 1994
- Maple V R4: enero de 1996
- Maple V R5: 1o de noviembre de 1997
- Maple 6: 6 de diciembre de 1999
- Mapale 7: July 1, 2001
- Maple 8: 16 de abril de 2002
- Maple 9: 30 de junio de 2003
- Maple 9.5: 15 de abril de 2004
- Maple 10: 10 de mayo de 2005
- Mapale 11: February 21, 2007
- Maple 11.01: julio de 2007
- Maple 11.02: noviembre, 2007
- Maple 12: mayo, 2008
- Maple 12.01: octubre, 2008
- Maple 12.02: diciembre, 2008
- Maple 13: 28 de abril de 2009
- Maple 13.01: julio, 2009
- Maple 13.02: octubre, 2009
- Maple 14: 29 de abril de 2010
- Maple 14.01: 28 de octubre de 2010
- Maple 15: abril 13, 2011
- Maple 15.01: 21 de junio de 2011
- Maple 16: 28 de marzo de 2012
- Maple 16.01: 16 de mayo de 2012
- Maple 17: Marzo 13, 2013
- Maple 17.01: julio, 2013
- Maple 18: Mar 5, 2014
- Maple 18.01: mayo, 2014
- Maple 18.01a: julio, 2014
- Maple 18.02: Nov, 2014
- Maple 2015.0: Mar 4, 2015
- Maple 2015.1: Nov, 2015
- Maple 2016.0: Marzo 2, 2016
- Maple 2016.1: 20 de abril de 2016
- Maple 2016.1a: 27 de abril de 2016
- Maple 2017.0: 25 de mayo de 2017
- Maple 2017.1: 28 de junio de 2017
- Maple 2017.2: Agosto 2, 2017
- Maple 2017.3: 3 de octubre de 2017
- Maple 2018.0: Marzo 21, 2018
- Maple 2019.0: Marzo 14, 2019
- Maple 2020.0: 12 de marzo de 2020
Características
Las características de Maple incluyen:
- Soporte para computación simbólica y numérica con precisión arbitraria
- Bibliotecas de función matemática elemental y especial
- Números complejos y intervalo aritmético
- Divisores y factorización más comunes y Aritméticos para polinomios multivariados sobre los racionales, campos finitos, campos de número algebraico y campos de función algebraica
- Límites, series y expansiones asintoticas
- Gröbner basis
- Álgebra diferencial
- Herramientas de manipulación de matriz, incluyendo soporte para matrices
- Herramientas de gráficos y animación de funciones matemáticas
- Resoluciones para sistemas de ecuaciones, ecuaciones de diofantina, EOD, EDE, EDAD, EDE, y relaciones de recurrencia
- Herramientas numéricas y simbólicas para el cálculo discreto y continuo, incluyendo la integración definitiva e indefinida, summación definida e indefinida, diferenciación automática y transformaciones integrales continuas y discretas
- Optimización local y mundial constrenada y sin restricciones
- Estadísticas incluyendo ajuste modelo, pruebas de hipótesis y distribuciones de probabilidad
- Herramientas para la manipulación, visualización y análisis de datos
- Herramientas para problemas de probabilidad y combinatoria
- Soporte para series temporales y datos basados en unidades
- Conexión a la recopilación en línea de datos financieros y económicos
- Herramientas para cálculos financieros incluyendo bonos, anualidades, derivados, opciones, etc.
- Cálculos y simulaciones en procesos aleatorios
- Herramientas para la extracción de texto incluyendo expresiones regulares
- Herramientas para el procesamiento de señales y sistemas de control lineales y no lineales
- Discreta herramientas de matemáticas incluyendo la teoría de números
- Herramientas para visualizar y analizar gráficos dirigidos y no dirigidos
- Teoría del grupo incluyendo permutación y grupos finitos
- Funciones de tensor simbólico
- Filtros de importación y exportación para datos, imagen, sonido, CAD y formatos de documentos
- Procesamiento de palabras técnicas incluyendo edición de fórmulas
- Lenguaje de programación que apoya construcciones de procedimiento, funcionales y orientadas a objetos
- Herramientas para agregar interfaces de usuario a cálculos y aplicaciones
- Herramientas para conectarse a SQL, Java,.NET, C++, Fortran y http
- Herramientas para generar código para C, C#, Fortran, Java, JavaScript, Julia, Matlab, Perl, Python, R y Visual Basic
- Herramientas para la programación paralela
Ejemplos de código Maple
El siguiente código, que calcula el factorial de un entero no negativo, es un ejemplo de una construcción de programación imperativa dentro de Maple:
myfac := proc()n:nonnegint) local Fuera., i; Fuera. := 1; para i desde 2 a n do Fuera. := Fuera. * i final do; Fuera.final proc;
Las funciones simples también se pueden definir usando el "mapas a" notación de flecha:
myfac := n - producto()i, i = 1..n);
Integración
Buscar
- .
int()#()x/a), x);
Salida:
Determinante
Calcular el determinante de una matriz.
M := Matriz[[[1,2,3], [a,b,c], [x,Sí.,z]]; # ejemplo Matriz
LinearAlgebra:-Determinant(M);
Expansión de la serie
serie()Tanh()x), x = 0, 15)
Resolver ecuaciones numéricamente
El siguiente código calcula numéricamente las raíces de un polinomio de alto orden:
f := x^53-88*x^5-3*x-5 = 0 fsolve()f) -1.097486315, -.5226535640, 1.099074017
El mismo comando también puede resolver sistemas de ecuaciones:
f := ()#()x+Sí.)^2 + exp()x)*Sí.+cot()x-Sí.)+cosh()z+x) = 0: g := x^5 - 8*Sí. = 2: h := x+3*Sí.-77*z=55; fsolve() {}f,g,h} ); {}x = -2.080507182, Sí. = -5.122547821, z = -0,908850733}
Trazado de la función de una sola variable
Parcela con desde -10 a 10:
parcela()x*pecado()x), x = -10..10);
Trazado de la función de dos variables
Parcela con y desde -1 hasta 1:
plot3d()x^2+Sí.^2, x = -1..1, Sí. = -1..1);
Animación de funciones
- Animación de la función de dos variables
parcelas:-animar()subs()k = 0.5, f), x=30..30, t=10..10, numpoints=200, marcos=50, color=rojo, espesor=3);
- Animación de funciones de tres variables
parcelas:-animate3d()#()t*x)*pecado()3*t*Sí.), x=Pi..Pi, Sí.=Pi..Pi, t=1..2);
- Animación voladora de parcelas 3D.
M := Matriz[[[400,400,200], [100,100,400], [1,1,1]], datatype=flotador[8]): plot3d()1, x=0..2*Pi, Sí.=0..Pi, ejes=ninguno, coords=spherical, mirador=[sendero=M]);
Transformada de Laplace
- Laplace transform
f := ()1+A*t+B*t^2)*exp()c*t);
inttrans:-lugar()f, t, s);
- inverso Laplace transform
inttrans:-invlaplace()1/()s-a), s, x);
Transformada de Fourier
- Transformación de Fourier
inttrans:-Fourier()pecado()x), x, w)
Ecuaciones integrales
Buscar funciones que satisfacen la ecuación integral
- .
eqn:= f()x)-3*Int()x*Sí.+x^2*Sí.^2)*f()Sí.), Sí.=1..1) = h()x):intsolve()eqn,f()x);
Uso del motor Maple
El motor de Maple se utiliza en varios otros productos de Maplesoft:
- Moebius, Digital La suite de pruebas online de Ed, utiliza Maple para generar preguntas y respuestas estudiantiles de grado.
- MapleNet permite a los usuarios crear páginas JSP y Applets Java. MapleNet 12 y arriba también permiten a los usuarios subir y trabajar con hojas de cálculo que contienen componentes interactivos.
- MapleSim, una herramienta de simulación de ingeniería.
- Maple Quantum Paquete de química de RDMChem calcula y visualiza las energías electrónicas y propiedades de las moléculas.
A continuación se enumeran los productos comerciales de terceros que ya no utilizan el motor Maple:
- Versiones de Mathcad publicadas entre 1994 y 2006 incluye un motor de álgebra de Maple (MKM, aka Mathsoft Kernel Maple), aunque versiones posteriores utilizan MuPAD.
- Simbólico Math Toolbox en MATLAB contenía una parte del motor Maple 10, pero ahora utiliza MuPAD (comenzando con MATLAB R2007b+ versión).
- Las versiones más antiguas del editor matemático Scientific Workplace incluye Maple como un motor computacional, aunque las versiones actuales incluyen MuPAD.
Contenido relacionado
Mente cargando
Lince (navegador web)
Protocolo ligero de acceso a directorios