Maple (software)

Maple

Maple interface
Developer(s) Waterloo Maple (Maplesoft)
Stable release 2016 / March 2, 2016 (2016-03-02)
Written in C, Java
Type Computer algebra system
License Proprietary commercial software
Website www.maplesoft.com/products/maple/

Maple is a commercial computer algebra system developed and sold commercially by Maplesoft, a software company based in Waterloo, Ontario, Canada. The current major version is version 2016, which was released in March 2016.

It was first developed in 1980 by the Symbolic Computation Group at the University of Waterloo. In 1988, Maplesoft (then known as Waterloo Maple Inc.) was founded to commercialize the technology.

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 which resembles Pascal.[1] The language permits variables of lexical scope. There are also interfaces to other languages (C, C#, Fortran, Java, MATLAB, and Visual Basic). There is also an interface to Excel.

Maple supports MathML 2.0, a W3C format for representing and interpreting mathematical expressions, including their display in Web pages.[2]

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 November 1980 at the University of Waterloo. Researchers at the university wished to purchase a computer powerful enough to run Macsyma. Instead, it was decided that they would develop their own computer algebra system that would be able to run on lower cost computers. The first limited version appearing in December 1980 with Maple demonstrated first at conferences beginning in 1982. The name is a reference to Maple's Canadian heritage. By the end of 1983, over 50 universities had copies of Maple installed on their machines.

In 1984, the research group arranged with Watcom Products Inc to license and distribute Maple. In 1988 Waterloo Maple Inc. was founded. The company’s original goal was to manage the distribution of the software. Eventually, the company evolved to have an R&D department where most of Maple's development is done today with the rest done at university research labs worldwide including: the Symbolic Computation Laboratory at the University of Waterloo and the Ontario Research Centre for Computer Algebra at the University of Western Ontario.

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 1994 a special issue of a newsletter created by Maple developers called MapleTech was published.[3]

In 1999, with the release of Maple 6, Maple included some of the NAG Numerical Libraries.[4] 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;[5] improvements have been made in later versions, although the Maple 11 documentation[6] recommends the previous (“classic”) interface for users with less than 500 MB of physical memory. This classic interface is no longer being maintained.

Between the mid 1995 and 2005 Maple lost significant market share to competitors due to a weaker user interface.[7] In 2005, Maple 10 introduced a new “document mode”, as part of the standard interface. The main feature of this mode is that math is entered using two dimensional input. In 2008, Maple 12 added additional user interface features found in Mathematica, including special purpose style sheets, control of headers and footers, bracket matching, auto execution regions, command completion templates, syntax checking and auto-initialization regions. Additional features were added for making Maple easier to use as a MATLAB toolbox.[8]

Maple 13 introduced a fly-through feature for animating 3-D plots.[9]

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

In 2016 the Maple Workbook was introduced, which is a container format for storing Maple documents and data into a single file.

Version History

  • Maple 1.0: January, 1982
  • Maple 1.1: January, 1982
  • Maple 2.0: May, 1982
  • Maple 2.1: June, 1982
  • Maple 2.15: August, 1982
  • Maple 2.2: December, 1982
  • Maple 3.0: May, 1983
  • Maple 3.1: October, 1983
  • Maple 3.2: April, 1984
  • Maple 3.3: March, 1985 (first public available version)
  • Maple 4.0: April, 1986
  • Maple 4.1: May, 1987
  • Maple 4.2: December, 1987
  • Maple 4.3: March, 1989
  • Maple V: August, 1990
  • Maple V R2: November 1992
  • Maple V R3: March 15, 1994
  • Maple V R4: January, 1996
  • Maple V R5: November 1, 1997
  • Maple 6: December 6, 1999
  • Maple 7: July 1, 2001
  • Maple 8: April 16, 2002
  • Maple 9: June 30, 2003
  • Maple 9.5: April 15, 2004
  • Maple 10: May 10, 2005
  • Maple 11: February 21, 2007
  • Maple 11.01: July, 2007
  • Maple 11.02: November, 2007
  • Maple 12: May, 2008
  • Maple 12.01: October, 2008
  • Maple 12.02: December, 2008
  • Maple 13: April, 2009
  • Maple 13.01: July, 2009
  • Maple 13.02: October, 2009
  • Maple 14: April, 2010
  • Maple 14.01: October 28, 2010
  • Maple 15: April 13, 2011
  • Maple 15.01: June 21, 2011
  • Maple 16: March 28, 2012
  • Maple 16.01: May 16, 2012
  • Maple 17: March, 2013
  • Maple 17.01: July, 2013
  • Maple 18: Mar, 2014
  • Maple 18.01: May, 2014
  • Maple 18.01a: July, 2014
  • Maple 18.02: Nov, 2014
  • Maple 2015: Mar, 2015
  • Maple 2015.1: Nov, 2015
  • Maple 2016: March 2, 2016

Examples of Maple code

Sample imperative programming constructs:

myfac := proc(n::nonnegint)
   local out, i;
   out := 1;
   for i from 2 to n do
       out := out * i
   end do;
   out
end proc;

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

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

Integration

Find

\int\cos\left(\frac{x}{a}\right)dx.
int(cos(x/a), x);

Answer:

a \sin\left(\frac{x}{a}\right)

Determinant

Compute the determinant of a matrix.

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

  \begin{bmatrix}
    1 & 2 & 3 \\
    a & b & c \\
    x & y & z
  \end{bmatrix}
LinearAlgebra:-Determinant(M);
bz-cy+3ay-2az+2xc-3xb

Series expansion

series(tanh(x),x=0,15)
x-\frac{1}{3}\,x^3+\frac{2}{15}\,x^5-\frac{17}{315}\,x^7
+\frac{62}{2835}\,x^9-\frac{1382}{155925}\,x^{11}+\frac{21844}{6081075}\,x^{13}+O(x^{15})

Solve equation numerically

High order polynomial equation

 >f := x^53-88*x^5-3*x-5 = 0

 >fsolve(f)

 -1.097486315, -.5226535640, 1.099074017

Solve equation set

 >f := (sin(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 = -1.543352313, y = -1.344549481, z = -.7867142955}

Plotting of function of single variable

Plotting of function of two variables

Animation of functions

f := 2 \cdot k^2/\cosh(k \cdot (x - 4 \cdot k^2 \cdot t))^2
 with(plots);
 animate(subs(k = .5, f), x = -30 .. 30, t = -10 .. 10, numpoints = 200, frames = 50, color = red, thickness = 3);
2D bell soliton
3D animation of function
 with(plots)
 animate3d(cos(t*x)*sin(3*t*y), x = -Pi .. Pi, y = -Pi .. Pi, t = 1 .. 2)

Laplace transform

with(inttrans);
f := (1+A*t+B*t^2)*exp(c*t);
 (1 + A \cdot t + B \cdot t^2) \cdot e^{c \cdot t}
laplace(f, t, s);
\frac{1}{s-c}+\frac{A}{(s-c)^2}+\frac{2B}{(s-c)^3}
invlaplace(1/(s-a),s,x)
e^{ax}

Fourier transform

 with(inttrans):
 fourier(sin(x),x,w)
\mathrm{I}\pi\,(\mathrm{Dirac}(w+1)-\mathrm{Dirac}(w-1))

Integral equations

Find functions f that satisfy the integral equation

f(x)-3\int_{-1}^1(xy+x^2y^2)f(y)dy = h(x).
 eqn:= f(x)-3*Int((x*y+x^2*y^2)*f(y), y=-1..1) = h(x):
 intsolve(eqn,f(x));
f \left( x \right) =\int _{-1}^{1}\! \left( -15\,{x}^{2}{y}^{2}-3\,xy \right) h \left( y \right) {dy}+h \left( x \right)

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

References

External links

Wikibooks has a book on the topic of: Maple
Wikimedia Commons has media related to Maple (software).
This article is issued from Wikipedia - version of the Friday, April 22, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.