Maple (software)

Last updated
Maple
Developer(s) Waterloo Maple (Maplesoft)
Initial release1982
Stable release
2023 (9 March 2023;11 months ago (2023-03-09)) [±] [1]
Written in C, Java, Maple
Platform Windows (7, 8 and 10), macOS, Linux
Available in English, Japanese, and limited support in additional languages [2]
Type Computer algebra system, Numeric computation
License Proprietary commercial software
Website www.maplesoft.com/products/Maple/

Maple is a symbolic and numeric computing environment as well as a multi-paradigm programming language. It covers several areas of technical computing, such as symbolic mathematics, numerical analysis, data processing, visualization, and others. A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation.

Contents

Maple's capacity for symbolic computing include those of a general-purpose computer algebra system. For instance, it can manipulate mathematical expressions and find symbolic solutions to certain problems, such as those arising from ordinary and partial differential equations.

Maple is developed commercially by the Canadian software company Maplesoft. The name 'Maple' is a reference to the software's Canadian heritage.

Overview

Core functionality

Users can enter mathematics in traditional mathematical notation. Custom user interfaces can also be created. There is support for numeric computations, to arbitrary precision, as well as symbolic computation and visualization. Examples of symbolic computations are given below.

Maple incorporates a dynamically typed imperative-style programming language (resembling Pascal), which permits variables of lexical scope. [3] There are also interfaces to other languages (C, C#, Fortran, Java, MATLAB, and Visual Basic), as well as to Microsoft Excel.

Maple supports MathML 2.0, which is a W3C format for representing and interpreting mathematical expressions, including their display in web pages. [4] There is also functionality for converting expressions from traditional mathematical notation to markup suitable for the typesetting system LaTeX.

Architecture

Maple is based on a small kernel, written in C, which provides the Maple language. Most functionality is provided by libraries, which come from a variety of sources. Most of the libraries are written in the Maple language; these have viewable source code. Many numerical computations are performed by the NAG Numerical Libraries, ATLAS libraries, or GMP libraries.

Different functionality in Maple requires numerical data in different formats. Symbolic expressions are stored in memory as directed acyclic graphs. The standard interface and calculator interface are written in Java.

History

The first concept of Maple arose from a meeting in late 1980 at the University of Waterloo. [5] Researchers at the university wished to purchase a computer powerful enough to run the Lisp-based computer algebra system Macsyma. Instead, they opted to develop their own computer algebra system, named Maple, that would run on lower cost computers. Aiming for portability, they began writing Maple in programming languages from the BCPL family (initially using a subset of B and C, and later on only C). [5] A first limited version appeared after three weeks, and fuller versions entered mainstream use beginning in 1982. [6] By the end of 1983, over 50 universities had copies of Maple installed on their machines.[ citation needed ]

In 1984, the research group arranged with Watcom Products Inc to license and distribute the first commercially available version, Maple 3.3. [6] In 1988 Waterloo Maple Inc. (Maplesoft) was founded. The company's original goal was to manage the distribution of the software, but eventually it grew to have its own R&D department, where most of Maple's development takes place today (the remainder being done at various university laboratories [7] ).

In 1989, the first graphical user interface for Maple was developed and included with version 4.3 for the Macintosh. X11 and Windows versions of the new interface followed in 1990 with Maple V. In 1992, Maple V Release 2 introduced the Maple "worksheet" that combined text, graphics, and input and typeset output. [8] In 1994 a special issue of a newsletter created by Maple developers called MapleTech was published. [9]

In 1999, with the release of Maple 6, Maple included some of the NAG Numerical Libraries. [10] In 2003, the current "standard" interface was introduced with Maple 9. This interface is primarily written in Java (although portions, such as the rules for typesetting mathematical formulae, are written in the Maple language). The Java interface was criticized for being slow; [11] improvements have been made in later versions, although the Maple 11 documentation [12] recommends the previous ("classic") interface for users with less than 500 MB of physical memory.

Between 1995 and 2005 Maple lost significant market share to competitors due to a weaker user interface. [13] With Maple 10 in 2005, Maple introduced a new "document mode" interface, which has since been further developed across several releases.

In September 2009 Maple and Maplesoft were acquired by the Japanese software retailer Cybernet Systems. [14]

Version history

Features

Features of Maple include: [30]

Examples of Maple code

The following code, which computes the factorial of a nonnegative integer, is an example of an imperative programming construct within Maple:

myfac:=proc(n::nonnegint)localout,i;out:=1;forifrom2tondoout:=out*ienddo;outendproc;

Simple functions can also be defined using the "maps to" arrow notation:

myfac:=n->product(i,i=1..n);

Integration

Find

.
int(cos(x/a),x);

Output:

Determinant

Compute the determinant of a matrix.

M:=Matrix([[1,2,3],[a,b,c],[x,y,z]]);#exampleMatrix
LinearAlgebra:-Determinant(M);

Series expansion

series(tanh(x),x=0,15)

Solve equations numerically

The following code numerically calculates the roots of a high-order polynomial:

f:=x^53-88*x^5-3*x-5=0fsolve(f)-1.097486315,-.5226535640,1.099074017

The same command can also solve systems of equations:

f:=(cos(x+y))^2+exp(x)*y+cot(x-y)+cosh(z+x)=0:g:=x^5-8*y=2:h:=x+3*y-77*z=55;fsolve({f,g,h});{x=-2.080507182,y=-5.122547821,z=-0.9408850733}

Plotting of function of single variable

Plot with ranging from -10 to 10:

plot(x*sin(x),x=-10..10);
Maple1DPlot.PNG

Plotting of function of two variables

Plot with and ranging from -1 to 1:

plot3d(x^2+y^2,x=-1..1,y=-1..1);
Maple163DPlot.jpg

Animation of functions

plots:-animate(subs(k=0.5,f),x=-30..30,t=-10..10,numpoints=200,frames=50,color=red,thickness=3);
2D bell solution Bellsoliton2.gif
2D bell solution
plots:-animate3d(cos(t*x)*sin(3*t*y),x=-Pi..Pi,y=-Pi..Pi,t=1..2);
3D animation of function 3dsincos animation.gif
3D animation of function
M:=Matrix([[400,400,200],[100,100,-400],[1,1,1]],datatype=float[8]):plot3d(1,x=0..2*Pi,y=0..Pi,axes=none,coords=spherical,viewpoint=[path=M]);
Maple plot3D fly-through Maple plot3D flythrough.gif
Maple plot3D fly-through

Laplace transform

f:=(1+A*t+B*t^2)*exp(c*t);
inttrans:-laplace(f,t,s);
inttrans:-invlaplace(1/(s-a),s,x);

Fourier transform

inttrans:-fourier(sin(x),x,w)

Integral equations

Find functions that satisfy the integral equation

.
eqn:=f(x)-3*Int((x*y+x^2*y^2)*f(y),y=-1..1)=h(x):intsolve(eqn,f(x));

Use of the Maple engine

The Maple engine is used within several other products from Maplesoft:

Listed below are third-party commercial products that no longer use the Maple engine:

See also

Related Research Articles

<span class="mw-page-title-main">MATLAB</span> Numerical computing environment and programming language

MATLAB is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages.

A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The development of the computer algebra systems in the second half of the 20th century is part of the discipline of "computer algebra" or "symbolic computation", which has spurred work in algorithms over mathematical objects such as polynomials.

<span class="mw-page-title-main">Maxima (software)</span> Computer algebra system

Maxima is a computer algebra system (CAS) based on a 1982 version of Macsyma and is still in development today. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).

In symbolic computation, the Risch algorithm is a method of indefinite integration used in some computer algebra systems to find antiderivatives. It is named after the American mathematician Robert Henry Risch, a specialist in computer algebra who developed it in 1968.

In mathematics, and more specifically in computer algebra, computational algebraic geometry, and computational commutative algebra, a Gröbner basis is a particular kind of generating set of an ideal in a polynomial ring K[x1, ..., xn] over a field K. A Gröbner basis allows many important properties of the ideal and the associated algebraic variety to be deduced easily, such as the dimension and the number of zeros when it is finite. Gröbner basis computation is one of the main practical tools for solving systems of polynomial equations and computing the images of algebraic varieties under projections or rational maps.

In mathematics, an expression is in closed form if it is formed with constants, variables and a finite set of basic functions connected by arithmetic operations and function composition. Commonly, the allowed functions are nth root, exponential function, logarithm, and trigonometric functions. However, the set of basic functions depends on the context.

<span class="mw-page-title-main">Numerical differentiation</span> Use of numerical analysis to estimate derivatives of functions

In numerical analysis, numerical differentiation algorithms estimate the derivative of a mathematical function or function subroutine using values of the function and perhaps other knowledge about the function.

<span class="mw-page-title-main">Differential equation</span> Type of functional equation (mathematics)

In mathematics, a differential equation is an equation that relates one or more unknown functions and their derivatives. In applications, the functions generally represent physical quantities, the derivatives represent their rates of change, and the differential equation defines a relationship between the two. Such relations are common; therefore, differential equations play a prominent role in many disciplines including engineering, physics, economics, and biology.

In calculus, symbolic integration is the problem of finding a formula for the antiderivative, or indefinite integral, of a given function f(x), i.e. to find a formula for a differentiable function F(x) such that

In mathematics, a differential-algebraic system of equations (DAE) is a system of equations that either contains differential equations and algebraic equations, or is equivalent to such a system.

<span class="mw-page-title-main">Mathomatic</span> Computer algebra system

Mathomatic is a free, portable, general-purpose computer algebra system (CAS) that can symbolically solve, simplify, combine and compare algebraic equations, and can perform complex number, modular, and polynomial arithmetic, along with standard arithmetic. It does some symbolic calculus (derivative, extrema, Taylor series, and polynomial integration and Laplace transforms), numerical integration, and handles all elementary algebra except logarithms. Trigonometric functions can be entered and manipulated using complex exponentials, with the GNU m4 preprocessor. Not currently implemented are general functions like f(x), arbitrary-precision and interval arithmetic, and matrices.

The following tables provide a comparison of numerical analysis software.

<span class="mw-page-title-main">Xcas</span> Computer algebra system

Xcas is a user interface to Giac, which is an open source computer algebra system (CAS) for Windows, macOS and Linux among many other platforms. Xcas is written in C++. Giac can be used directly inside software written in C++.

In mathematics, Pythagorean addition is a binary operation on the real numbers that computes the length of the hypotenuse of a right triangle, given its two sides. According to the Pythagorean theorem, for a triangle with sides and , this length can be calculated as

<span class="mw-page-title-main">Computer algebra</span> Scientific area at the interface between computer science and mathematics

In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects. Although computer algebra could be considered a subfield of scientific computing, they are generally considered as distinct fields because scientific computing is usually based on numerical computation with approximate floating point numbers, while symbolic computation emphasizes exact computation with expressions containing variables that have no given value and are manipulated as symbols.

A system of polynomial equations is a set of simultaneous equations f1 = 0, ..., fh = 0 where the fi are polynomials in several variables, say x1, ..., xn, over some field k.

References

  1. "Maplesoft Media Releases". www.maplesoft.com. Retrieved 2023-05-16.
  2. "International Language Support in Maple". Maplesoft . Retrieved 2 June 2016.
  3. Power of two Archived 2010-07-06 at the Wayback Machine Bitwise Magazine
  4. "Welcome to the Maplesoft MathML Home Page". www.maplesoft.com.
  5. 1 2 MacCallum, Malcolm A. H. (2018). "Computer algebra in gravity research". Living Reviews in Relativity. 21 (1): 6. Bibcode:2018LRR....21....6M. doi: 10.1007/s41114-018-0015-6 . ISSN   2367-3613. PMC   6105178 . PMID   30174551.
  6. 1 2 "History of Maple". 1998-12-15. Retrieved 2020-04-06.
  7. Two such university labs are the Symbolic Computation Group at the University of Waterloo and the Ontario Research Centre for Computer Algebra at the University of Western Ontario
  8. Maple V Release 2 Notes Maplesoft
  9. "MTN Special Issue 1994". web.mit.edu.
  10. Maple 6.0 Archived 2008-06-18 at the Wayback Machine Macworld, Feb 2001
  11. Capturing knowledge with pure maths, Scientific Computing World.
  12. Maple 11 Installation Guide Maplesoft
  13. Interview with Gaston Gonnet, co-creator of Maple Archived 2007-12-29 at the Wayback Machine , SIAM History of Numerical Analysis and Computing, 16 March 2005
  14. "Maplesoft Media Releases". www.maplesoft.com.
  15. "MaplePrimes Blog - Maple 13 and MapleSim 2 now available" . Retrieved 28 Apr 2009.
  16. "MaplePrimes Blog - Announcing Maple 14 and MapleSim 4" . Retrieved 29 Apr 2010.
  17. "MaplePrimes Blog - Introducing Maple 15" . Retrieved 11 Apr 2011.
  18. "MaplePrimes Blog - Maple 16 is here" . Retrieved 28 Mar 2012.
  19. "MaplePrimes Blog - Introducing Maple 17" . Retrieved 13 Mar 2013.
  20. "MaplePrimes Blog - Announcing Maple 18" . Retrieved 5 Mar 2014.
  21. "MaplePrimes Blog - Maple 2015 is now available!" . Retrieved 4 Mar 2015.
  22. "MaplePrimes Blog - Announcing Maple 2016" . Retrieved 2 Mar 2016.
  23. "MaplePrimes Blog - Announcing Maple 2017" . Retrieved 25 May 2017.
  24. "MaplePrimes Blog - Maple 2018 is here!" . Retrieved 21 Mar 2018.
  25. "MaplePrimes Blog - Announcing Maple 2019" . Retrieved 14 Mar 2019.
  26. "MaplePrimes Blog - Maple 2020 has launched!" . Retrieved 20 Mar 2020.
  27. "MaplePrimes Blog - Unveiling Maple 2021" . Retrieved 2 Mar 2024.
  28. "MaplePrimes Blog - Unboxing Maple 2022" . Retrieved 2 Mar 2024.
  29. "MaplePrimes Blog - Maple 2023 is here!" . Retrieved 2 Mar 2024.
  30. "What is Maple: Product Features - Math & Engineering Software - Maplesoft". www.maplesoft.com.
  31. Using the New Fly-through Feature in Maple 13 Maplesoft
  32. Mahmud, Khizir; Town, Graham E. (June 2016). "A review of computer tools for modeling electric vehicle energy requirements and their impact on power distribution networks". Applied Energy. 172: 337–359. doi:10.1016/j.apenergy.2016.03.100.
  33. "MaplePrimes Blog - Introducing the Maple Quantum Chemistry Toolbox" . Retrieved 6 May 2019.
  34. "Release Notes for Symbolic Math Toolbox". MathWorks. Retrieved 10 July 2014.