Maple (software)

From Wikipedia, the free encyclopedia
  (Redirected from Maple computer algebra system)
Jump to: navigation, search
Maple
Maple 2016 Core Screenshots.jpg
Maple interface
Developer(s) Waterloo Maple (Maplesoft)
Initial release 1982
Stable release
2016 / March 2, 2016 (2016-03-02)
Written in C, Java, Maple
Platform Microsoft Windows (7, 8 and 10), Apple OS X, Linux
Available in English, Japanese, and limited support in additional languages[1]
Type Computer algebra system, Numeric computation
License Proprietary commercial software
Website www.maplesoft.com/products/maple/

Maple is a symbolic and numeric computing environment, and is also a multi-paradigm programming language.

Developed by Maplesoft, Maple also covers other aspects of technical computing, including visualization, data analysis, matrix computation, and connectivity.

A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation.

Overview[edit]

Core functionality[edit]

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.[2] 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.[3]

Architecture[edit]

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[edit]

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 the first commercially available version, Maple 3.3.[4] 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[who?].

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

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

Between the mid 1995 and 2005 Maple lost significant market share to competitors due to a weaker user interface.[10] In 2005, Maple 10 introduced a new “document mode”, as part of the standard interface that it has been further developed over the following years.

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

Features[edit]

Features of Maple include:[11]

  • Support for symbolic and numeric computation with arbitrary precision
  • Elementary and Special mathematical function libraries
  • Complex numbers and interval arithmetic
  • Arithmetic, greatest common divisors and factorization for multivariate polynomials over the rationals, finite fields, algebraic number fields, and function fields
  • Limits, series and asymptotic expansions
  • Groebner bases
  • Differential Algebra
  • Matrix manipulation tools including support for sparse arrays
  • Mathematical function graphing and animation tools
  • Solvers for systems of equations, diophantine equations, ODEs, PDEs, DAEs, DDEs and recurrence relations
  • Numeric and symbolic tools for discrete and continuous calculus including definite and indefinite integration, definite and indefinite summation, automatic differentiation and continuous and discrete integral transforms
  • Constrained and unconstrained local and global optimization
  • Statistics including model fitting, hypothesis testing, and probability distributions
  • Tools for data manipulation, visualization and analysis
  • Tools for probability and combinatoric problems
  • Support for time-series and unit based data
  • Connection to online collection of financial and economic data
  • Tools for financial calculations including bonds, annuities, derivatives, options etc.
  • Calculations and simulations on random processes
  • Tools for text mining including regular expressions
  • Tools for signal processing and linear and non-linear Control systems
  • Discrete math tools including number theory
  • Tools for visualizing and analysing directed and undirected graphs
  • Group theory including permutation and finitely presented groups
  • Symbolic tensor functions
  • Import and export filters for data, image, sound, CAD, and document formats
  • Technical word processing including formula editing
  • Programming language supporting procedural, functional and object-oriented constructs
  • Tools for adding user interfaces to calculations and applications
  • Tools for connecting to SQL, Java, .NET, C++, Fortran and http
  • Tools for generating code for C, C#, Fortran, Java, JavaScript, Julia, Matlab, Perl, Python, R, and Visual Basic
  • Tools for parallel programming

Examples of Maple code[edit]

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[edit]

Find

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

Answer:


Determinant[edit]

Compute the determinant of a matrix.

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

Series expansion[edit]

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

Solve equation numerically[edit]

High order polynomial equation

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

 fsolve(f)

 -1.097486315, -.5226535640, 1.099074017

Solve equation set[edit]

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

Plotting of function of single variable[edit]

  • Plot with ranging from -10 to 10
plot(x*sin(x),x=-10..10);
Maple1DPlot.PNG

Plotting of function of two variables[edit]

  • Plot with and ranging from -1 to 1
plot3d(2-x-(y^2-x^2)^0.5), x=0..1, y=0..1);
Maple163DPlot.jpg

Animation of functions[edit]

  • animation of function of two variables
plots:-animate(subs(k = .5, f), x=-30..30, t=-10..10, numpoints=200, frames=50, color=red, thickness=3);
2D bell solution
  • animation of functions of three variables
plots:-animate3d(cos(t*x)*sin(3*t*y), x=-Pi..Pi, y=-Pi..Pi, t=1..2);
3D animation of function
  • Fly-through animation of 3-D plots.[12]
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

Laplace transform[edit]

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

Fourier transform[edit]

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

Integral equations[edit]

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[edit]

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

  • Maple T.A., Maplesoft’s online testing suite, uses Maple to algorithmically generate questions and grade student responses.
  • MapleNet allows users to create JSP pages and Java Applets. MapleNet 12 and above also allow users to upload and work with Maple worksheets containing interactive components.
  • MapleSim, an engineering simulation tool.[13]

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

  • Versions of Mathcad released between 1994 and 2006 included a Maple-derived algebra engine (MKM, aka Mathsoft Kernel Maple), though subsequent versions use MuPAD.
  • Symbolic Math Toolbox in MATLAB contained a portion of the Maple 10 engine, but now uses MuPAD (starting with MATLAB R2007b+ release).[14]
  • Older versions of the mathematical editor Scientific Workplace included Maple as a computational engine, though current versions include MuPAD.

See also[edit]

References[edit]

  1. ^ "International Language Support in Maple". Maplesoft. Retrieved 2 June 2016. 
  2. ^ Power of two Bitwise Magazine
  3. ^ http://www.maplesoft.com/standards/MathML/info.html
  4. ^ History of Maple Alexander F. Walz, 1998
  5. ^ Maple V Release 2 Notes Maplesoft
  6. ^ MapleTech Special Issue, Birkhäuser-Boston, (1994)
  7. ^ Maple 6.0 Macworld, Feb 2001
  8. ^ Capturing knowledge with pure maths, Scientific Computing World.
  9. ^ Maple 11 Installation Guide Maplesoft
  10. ^ Interview with Gaston Gonnet, co-creator of Maple, SIAM History of Numerical Analysis and Computing, March 16, 2005
  11. ^ Maplesoft Support and Documentation Page
  12. ^ Using the New Fly-through Feature in Maple 13 Maplesoft
  13. ^ 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. 
  14. ^ "Release Notes for Symbolic Math Toolbox". MathWorks. Retrieved 10 July 2014. 

External links[edit]