The design and implementation of the Maple system is an on-going project of the Symbolic Com putation Group at the University of Waterloo in Ontario, Canada. This manual corresponds with version V (roman numeral five) of the Maple system. The on-line help subsystem can be invoked from within a Maple session to view documentation on specific topics. In particular, the command ?updates points the user to documentation updates for each new version of Maple. The Maple project was first conceived in the autumn of 1980 growing out of discussions on the state of symbolic computation at the University of Waterloo. The authors wish to acknowledge many fruitful discussions with colleagues at the University of Waterloo, particularly Morven Gen tleman, Michael Malcolm, and Frank Tompa. It was recognized in these discussions that none of the locally-available systems for symbolic computation provided the facilities that should be expected for symbolic computation in modern computing environments. We concluded that since the basic design decisions for the then-current symbolic systems such as ALTRAN, CAMAL, REDUCE, and to design a new system MACSYMA were based on 1960's computing technology, it would be wise from scratch taking advantage of the software engineering technology which had become available since then, as well as drawing from the lessons of experience. Maple's basic features (e. g. elementary data structures, input/output, arithmetic with numbers, and elementary simplification) are coded in a systems programming language for efficiency.
Inhalt
1 Introduction.- 1.1 Some General Examples.- 1.1.1 Polynomials.- 1.1.2 Factoring.- 1.1.3 Help.- 1.2 Numbers.- 1.3 Examples from Calculus.- 1.3.1 Differentiation.- 1.3.2 Mathematical Functions.- 1.3.3 Integration.- 1.3.4 Summation.- 1.3.5 Limits.- 1.3.6 Series.- 1.4 Data Structures.- 1.4.1 Sets and Lists.- 1.4.2 Arrays and Tables.- 1.5 Examples from Linear Algebra.- 1.6 Equation Solving.- 1.6.1 General Equations.- 1.6.2 Differential Equations.- 1.6.3 Recurrence Equations.- 1.6.4 Other Solvers.- 1.7 Output and Programming.- 1.7.1 LaTeX Output.- 1.7.2 Fortran and C Code.- 1.7.3 Programming In Maple.- 2 Language Elements.- 2.1 Character Set.- 2.2 Tokens.- 2.3 Escape Characters.- 2.4 Blanks, Lines, Comments, and Continuation.- 2.5 Files.- 3 Statements and Expressions.- 3.1 Types of Statements.- 3.1.1 Assignment Statement.- 3.1.2 Expression.- 3.1.3 Read Statement.- 3.1.4 Save Statement.- 3.1.5 Selection Statement.- 3.1.6 Repetition Statement.- 3.1.7 Empty Statement.- 3.1.8 Quit Statement.- 3.2 Expressions.- 3.2.1 Constants.- 3.2.2 Names and Strings.- 3.2.3 Labels.- 3.2.4 Expression Sequences.- 3.2.5 Sets and Lists.- 3.2.6 Algebraic Operators.- 3.2.7 Neutral Operators.- 3.2.8 Relations and Logical Operators.- 3.2.9 Ranges.- 3.2.10 Selection Operation.- 3.2.11 Unevaluated Expressions.- 3.2.12 Procedures and Functions.- 3.2.13 Functional Operators.- 3.2.14 Precedence of Programming-Language Operators.- 3.3 Formal Syntax.- 4 Data Types.- 4.1 Basic Data Types.- 4.1.1 Integer.- 4.1.2 Fraction.- 4.1.3 Floating-Point Number.- 4.1.4 String.- 4.1.5 Indexed Name.- 4.1.6 Addition, Multiplication, and Exponentiation.- 4.1.7 Series.- 4.1.8 Relation.- 4.1.9 Boolean Expression.- 4.1.10 Range.- 4.1.11 Expression Sequence.- 4.1.12 Set and List.- 4.1.13 Table and Array.- 4.1.14 Procedure Definition.- 4.1.15 Unevaluated Function Invocation.- 4.1.16 Unevaluated Concatenation.- 4.1.17 Unevaluated Expression.- 4.2 Map, Subs, and Subsop.- 4.2.1 Map.- 4.2.2 Subs.- 4.2.3 Subsop.- 5 Type Testing.- 5.1 Definition of a Type in Maple.- 5.2 Simple Types.- 5.3 Structured Types.- 5.4 Surface and Nested Types.- 5.5 Simplification of Types.- 5.6 Parameter Type Testing.- 5.7 Undesirable Simplifications and Evaluations of Types.- 5.8 Type Testing Versus Pattern Matching.- 6 Arrays and Tables.- 6.1 Overview.- 6.2 Creating Tables.- 6.2.1 Explicit Table Creation.- 6.2.2 Implicit Table Creation.- 6.3 Evaluation Rules for Tables and Table Components.- 6.3.1 Evaluation to a Table.- 6.3.2 Evaluating Table Components.- 6.3.3 Assigning and Unassigning Table Components.- 6.3.4 Table Operations.- 6.4 Tables as Objects.- 6.4.1 Copying Tables.- 6.4.2 Mapping Functions Onto Tables.- 6.4.3 Tables Local to a Procedure.- 6.4.4 Tables as Parameters.- 6.4.5 Automatic Loading of Tables.- 6.5 Indexing Functions.- 6.5.1 The Purpose of Indexing Functions.- 6.5.2 Indexing Functions Known to the Basic System.- 6.5.3 User-Defined Indexing Functions.- 7 Procedures.- 7.1 Procedure Definitions.- 7.2 Parameter Passing.- 7.3 Local Variables.- 7.4 Options.- 7.5 Remember Tables.- 7.6 Assigning Values to Parameters.- 7.7 Error Returns and Explicit Returns.- 7.8 Simplification and Returning Unevaluated.- 7.9 Boolean Procedures.- 7.10 Reading and Saving Procedures.- 8 Operators.- 8.1 Operator Definition.- 8.2 Syntactic Definition.- 8.3 Semantic Definition.- 8.3.1 Application Versus Composition.- 8.4 Partial Definition of Operators.- 8.5 Example: The Differentiation Operator D.- 9 Internal Representation and Manipulation.- 9.1 Internal Organization.- 9.2 Internal Representation of Data Types.- 9.3 The Use of Hashing in Maple.- 9.3.1 The Simplification Table.- 9.3.2 The Name Table.- 9.3.3 Put Tables.- 9.3.4 Remember Tables.- 9.3.5 Arrays and Tables in the Maple Language.- 9.4 Portability of the Maple System.- 10 Plotting.- 10.1 Introduction.- 10.1.1 Limitations.- 10.1.2 Device Dependencies.- 10.1.3 Terminal Setup.- 10.1.4 Hard Copy.- 10.2 Plots in 2D.- 10.2.1 A Simple Example.- 10.2.2 Range.- 10.2.3 Style.- 10.2.4 Parametric Plots.- 10.2.5 Polar Plots.- 10.2.6 Infinity Plots.- 10.2.7 Data Plots.- 10.2.8 Multiple Plots.- 10.2.9 Other Options.- 10.2.10 Common Mistakes.- 10.3 Plots in 3D.- 10.3.1 Introduction.- 10.3.2 Explicit Function Surface Plots.- 10.3.3 Parametric Surface Plots.- 10.3.4 Style.- 10.3.5 Color.- 10.3.6 Grid Size.- 10.3.7 Coordinate Systems.- 10.3.8 Viewpoint.- 10.3.9 Scaling of Axes.- 10.3.10 Axes and Labels.- 10.4 Saving Plots.- 10.5 Plots Package.- 10.6 Examples.- 11 Miscellaneous Facilities.- 11.1 Debugging Facilities: Detecting Syntax Errors.- 11.1.1 Mint, The Maple Program Diagnostician.- 11.2 Debugging Facilities: Monitoring Run-Time Execution.- 11.2.1 The printlevel Facility.- 11.2.2 Tracing Specific Procedures.- 11.2.3 Userinfo.- 11.3 Alias and Macro.- 11.3.1 Alias.- 11.3.2 Macro.- 11.4 Monitoring Space and Time.- 11.4.1 Run-Time Messages.- 11.4.2 The status Variable.- 11.4.3 System Functions for Space and Time.- 11.5 Global Variables.- 11.6 User Interface Variables.- 11.7 Maple Command Line Options.- 11.7.1 The Quiet Option.- 11.7.2 The Library Specification Option.- 11.7.3 The Suppress Initialization Option.- 11.8 Other Facilities.- 11.8.1 Executing Other Programs: The system Command.- 11.8.2 Escape to Host.- 11.8.3 Help.- 11.8.4 Interactive Input.- 11.8.5 File Input and Output.- 12 Overview of the Maple Library.- 12.1 Introduction.- 12.2 Description of the Maple Library.- 12.3 Format of Library Function Descriptions.- 12.4 Printing Maple Help Files.- 12.5 Library Index.- A Maple under UNIX.- A.1 Introduction.- A.2 Maple Initialization Files.- A.3 Quit and Interrupt Characters.- A.4 Temporarily Escaping from Maple.- A.5 Redirection of Input and Output.- A.6 Maple Command Line Options for UNIX.- A.6.1 Overview of Maple command line options.- A.6.2 Library Specification Option: -b.- A.6.3 Suppress Initialization Option: -s.- A.6.4 Quiet Option: -q.- A.7 Mint.- A.8 Summary of Site- and UNIX- Dependent Aspects of Maple.- B Using Maple with X.- B.1 Introduction.- B.2 Getting Started.- B.3 Entering Commands in Maple.- B.4 Editing.- B.5 Maple Input and Output Cells.- B.6 Including and Saving Text.- B.7 Searching.- B.8 Resource Usage.- B.9 Interrupt, Pause and Quit Buttons.- B.10 Resizing Windows.- B.11 Help Windows.- B.12 2D Plot Windows.- B.13 3D Plot Windows.- B.14 Customizing Maple Under X.- B.15 Tips.- B.16 Troubleshooting.- B.17 Info…