Academia.eduAcademia.edu

A tutorial introduction to Maple

1986, Journal of Symbolic Computation

Abstract

The Maple computer algebra system is described. Brief sample sessions show the user syntax and the mathematical power of the system for performing arithmetic, factoring, simplification, differentiation, integration, summation, solving algebraic equations, solving differential equations, series expansions, and matrix manipulations. Time and space statistics for each sample session show that the Maple system is very efficient in memory space utilisation, as well as in time. The Maple programming language is presented by describing the most commonly used features, using some non-trivial computations to illustrate the language features. 1. Overview Maple is an interactive system for algebraic computation. It is designed for the calculations one learns in high school algebra and university mathematics-integers, rational numbers, polynomials, equations, sets, derivatives, indefinite integrals, etc. This article explains how to use Maple interactively as an algebraic calculator, for casual users. It also explains the basic elements of Maple's programming language, giving examples of how to use it for programming extended algebraic calculations. The Maple project was started at Waterloo in 1980. While the facilities provided by Maple are, at a superficial level, similar to the facilities of other computer algebra systems such as MACSYMA (Pavelle & Wang, 1985) and REDUCE (Fitch, 1985), several design features make Maple unique. The most distinctive feature is Maple's compactness which reduces the basic computer memory requirements per user to a few hundred kilobytes rather than the few thousand kilobytes typically required by MACSYMA or REDUCE. (Of course, Maple's data space may grow to a few thousand kilobytes when performing difficult mathematical computations, if necessary, but this is not generally the case for the calculations required by undergraduate student users nor for many research calculations .) Maple was also designed to allow portability to a variety of different operating systems. Concurrent with the above goals, Maple incorporates an extensive set of mathematical knowledge via a library of functions. The library functions are coded in the user-level Maple programming language which was designed to facilitate the expression of, and the efficient execution of, mathematical operations. A consequence of Maple's design is user extensibility since user-defined functions are equal in status to the system's library functions. These design goals led to several novel design features. Maple's fundamental data structures are tagged objects represented internally as dynamic vectors (variable-length arrays). Specifically, each instance of a data structure is a vector in which the first component encodes the following information : the length of the structure, the type of data object (such as sum, product, set, rational number, etc.

Key takeaways

  • The kernel contains code for doing integer, rational, polynomial and series arithmetic, the Maple programming language interpreter, input/output routines, and other essential system services .
  • When Maple fails to solve an integration problem, the request for the calculation is returned as the symbolic "answer" (Fig . 5) .
  • The notation used for equations and sets in Maple is natural .
  • What is desired is replacing every f in the expression by m*a, or every v by i*r. This can be done in Maple with the subs command .
  • In this section we describe the Maple programming language .