Additions and improvements for Understanding Maple

This page lists revisions that will be made in the second edition of Understanding Maple (if a second edition is published).

Inconsistent terminology for Maple Notation

In various places in Maple’s documentation, and in the menus, Maple Notation is also referred to as ‘1-D Math Input,’ ‘Maple Input’ and ‘Text Mode’. The last of these is particularly unfortunate, because there is also a mode for entering plain text (press  ), which is something entirely different. Plain text is one way to annotate a worksheet; it is not processed by the Maple engine.

Related to this is the fact that the button in the context bar near the top of the window has different effects depending on the location of the cursor. Inside an execution group, pressing switches the input mode to Maple Notation. However, inside a paragraph it switches to plain text (if that mode isn't active already). On the other hand, the button is consistent, in that it always switches to 2D Math Input. This should be addressed in section 2.1 (Configuring the Interface).

Sections in Maple 2018

The concept of a section has been simplified in Maple 2018, so the text on page 19 needs to be revised. Subsections no longer exist; instead sections can be nested inside other sections. There doesn't appear to be any limit on the number of levels of nesting (certainly it is greater than anyone is likely to need). Sections are now created by choosing , and removed by choosing . The old terminology (Indent and Outdent) is no longer used.

The assuming command

The assuming command does not need parentheses, so the first example in section 3.10 should be
Q := 1 / ( ( x + a )^2 * ( x + b ) ) :
int( Q , x = 0 .. infinity ) assuming a > 0 and b > 0 ;
In the second line, we can use a comma rather than and. The assuming command also appears on page 75, and the parentheses should be removed from there as well. A useful option is to assume that all names in an expression represent real entities, for example
log( exp( xy ) ) ;
% assuming real ;

Assumptions using types

At the start of section 3.10, it would be useful to insert an example that makes an assumption about the type of an object. One simple possibility is the following.
int( x^2 * sin( j * Pi * x ) , x = 0 .. 1 ) ;
int( x^2 * sin( j * Pi * x ) , x = 0 .. 1 ) assuming j :: integer ;
int( x^2 * sin( j * Pi * x ) , x = 0 .. 1 ) assuming j :: even ;

Series summation in Maple 2016 and later

The rules on series summation were tightened in Maple 2016. For example, in Maple 2015 and earlier, one can do
sum( a^p , p = 0 .. infinity ) ;
to obtain the result 1/(1-a), which is only really true if |a|<1. On the other hand, Maple 2016 will return unevaluated unless a is restricted to lie inside the radius of convergence. For example
sum( a^p , p = 0 .. infinity ) assuming a < 1 and a > -1 ;
This change should be mentioned in section 3.10 (Assumptions).

Grid data and matrix indices

Near the end of section 6.6 (Plots from data), the description of grid data should use an arbitrary matrix entry (i.e. (j,p)), rather than (1,1). It should be emphasised that the grid position does not correspond to the position at which the data would appear if the matrix were to be written out explicitly. On the grid, the first index controls horizontal position (x), but in a matrix the first index is the row number, which determines vertical position (and vertical position decreases as row number increases). The subsequent example could be made less symmetrical to reinforce this point, for example by using
f := ( j , p ) -> ( j - 4 )^2 + ( p - 4 )^3 :
so that the plotted values are greater near the top than they are near the bottom. The example could be further improved by using a matrix that isn't square.

Axis ranges for plots from grid data

(I am grateful to Özgür Selsil for bringing this issue to my attention.)

When a plot is generated from grid data contained in an m × n matrix, the axis ranges are automatically set to 1..m and 1..n. Neither the contourplot command nor the dataplot command has an option to change this behaviour. This issue should be addressed in section 6.6 (Plots from Data). It is particularly important for contour plots, since these can't be generated from mesh data. To get around the problem, we can use contourplot (with an appropriate value for the grid option) on a function that maps the actual x and y values onto row and column numbers in the matrix. This can be wrapped in a procedure, which makes it easy to create contour plots from data with arbitrary ranges on the x and y axes.

Download the procedure and an example.

This procedure would make a useful addition to chapter 9, since it involves a natural use of the _rest parameter, to pass optional arguments on to the contourplot command.

Maplesoft technical support have suggested using plottools[ transform ] to achieve a similar effect. This is a more natural approach, but plottools[ transform ] is often used to change coordinate systems, so it removes any axis labels that may be present. (Originally this page stated that the behaviour was caused by a bug, but that was a mistake on my part.) The labels can be restored from within the procedure by extracting them from the _rest parameter, though this does complicate matters slightly.

Back to main Understanding Maple page