Product Tips & Techniques

Tips and Tricks on how to get the most about Maple and MapleSim

A user wondered how to have Maple produce a desired form of a solution

eq1 := `σ__2` = P__2/(Pi*r^2)NULL


r := (1/2)*d


soln := `assuming`([solve(eq1, {d}, useassumptions)], [`σ__2`::real, d > 0, P__2 > 0])

{d = 2*(Pi*sigma__2*P__2)^(1/2)/(Pi*sigma__2)}



Parse:-ConvertTo1D, "first argument to _Inert_ASSIGN must be assignable"


We suggested the closest they might be able to get is using simplify like so:


restart; eq1 := `σ__2` = P__2/(Pi*r^2)


r := (1/2)*d


soln := `assuming`([solve(eq1, {d}, useassumptions)], [`σ__2`::real, d > 0, P__2 > 0])

{d = 2*(Pi*sigma__2*P__2)^(1/2)/(Pi*sigma__2)}



`assuming`([simplify(soln)], [sigma__2::real, P__2 > 0])

{d = 2*P__2^(1/2)/(Pi^(1/2)*sigma__2^(1/2))}




Our user wondered about using PolynomialIdeals:

1.  If we have n+1 polynomials,  f, g1,...,gn,  how to determine if  f  is in the ideal generated by  g1,...,gn?

2.  If so, how to write  f  as a polynomial combination of   g1,...,gn? 

We suggested that;

The nicest interface to answer the first question is given by the ?PolynomialIdeals,Operators page: you can write

J := <g1, g2, ..., gn>;
f in J; # true or false

To answer the second question, you need to use the lower level  package (which underlies the  package). This will also answer the first question for you. In particular the  command. You can write:

G := [g1, g2, ..., gn];
ord := tdeg(x,y,z); # replace x, y, z with the appropriate variables; you can also use other variable orders -- see ?Groebner,MonomialOrders

b := Basis(G, ord);
n := NormalForm(f, b, ord, 'Q');
# if n = 0 then f is in the ideal; Q is the list of coefficients:
f - add(Q[i] * G[i], i = 1 .. numelems(b)); # this will be equal to n.

I’m looking for users’ favourite tips and tricks in Maple Learn. Specifically, small pieces of advice that most people don’t know about, but that helped you create better Maple Learn documents. For instance,

  • A favorite feature that you think is hard to discover;
  • Common techniques you use when creating documents;
  • Things about Maple Learn you wish you knew when you started.

These tricks could be for newbies or for experienced users.

To start off the discussion, let me share three of my own favorite tricks in Maple Learn.

1. Using Documents from the Document Gallery

Writing a Maple Learn document from scratch can seem overwhelming, especially for beginners. A much easier way to create documents is to start with a template from the Document Gallery.

There are hundreds of Maple Learn documents in the Document Gallery, available here. Instead of writing Maple Learn documents from scratch, I like to search the gallery for documents relating to my topic. I then select a document, and just modify it slightly to get what I want.

2. Toggling from Math Mode to Text Mode

If you want to write text in a group element, it’s best to toggle to text mode (otherwise Maple Learn will treat your text as math).

While this can be done using the toolbar, there is a nifty keyboard shortcut to toggle to text mode: place your cursor at the beginning of the group element, and press the space key.

3. Using Double Arrows in Plots to Show Distance

Here’s one for the advanced users. The Vector Command lets you draw arrows on a Maple Learn plot. Combine two such arrows of the same colour going in opposite directions, and you get a double arrow (see below), which I like to use to represent distances in my Maple Learn documents.

Indeed, here is an example document where I use double arrows to provide a visualization of the product rule in calculus (plot pictured below). Notice how the double arrows (created using the vector command) represent distances in the plot.

Comment your favourite tips and tricks down below!

A user would like to know if it is possible to specify a data set say, x:=[1,2,3,4,5,6] and then extract a random sample from that data set, i.e. xsample:=[3,2,4] for a bootstrapping-type calculation.

We suggested they use something like the following:

restart; with(Statistics); my_data := [1, 2, 4, 5.5, 5.5, 6]; X := RandomVariable(EmpiricalDistribution(my_data)); s := Sample(X, 10); Bootstrap(Mean, X, samplesize = 4, replications = 10000)





A user wonders if there is a straightforward way to show US states with names using the WorldMap Data Set in Maple

We suggest something like the attached:


restart; with(DataSets:-Builtin); r := Reference("GeoNames"); states := r[[Country = "United States", Type = "first-order administrative division"]]; w := WorldMap(); w:-AddPoints(w, states); Display(w, mapdata = fine, style = polygonoutline, size = [2000, 1500])



Although not mentioned in the documentation, the flexible beam component of MapleSim allows for simulation of large deflections.  

In the animation, a flexible beam is loaded with a moment (red arrow) at its free end. Assuming a Euler-Bernoulli beam and slow loading (i.e., no dynamic forces), the beam should deform to an arc of constant radiusNot only the deformation of the beam can be described analytically, also the path (red trace) of the free end follows an analytical curve.


I used this test case to get a better understanding of nonlinearities observed in an oscillating system using flexible beams ( The system required tuning of the structure to develop mode coupling. This could not be explained by linear theory. It was unclear whether the large deflections (nonlinear kinematics of the beam) themselves or the implementation of the flexible beam component were responsible for that.  


What I have learned so far with the test case using only default settings: 

  • For moderate deflections there is no difference to textbook formulas.
  • Up to 15 degrees rotation of the end frame, the difference between observed displacement and the Bernoulli beam stays bellow 5%.  
  • Up to 30 degrees rotation of the end frame (as in the mode coupling example) the trace of the end frame conforms well with the analytical path.
  • To simulate verry large deflections beyond 45 degrees rotation, the beam needs to be segmented to closely follow the analytical path.  

For those that are unsure about the fidelity of their models, I can suggest increasing the numbers of flexible beam components and to compare. I did this in the case of the mode coupling example and noticed no difference. So, the component was not responsible for the nonlinearities. It were the kinematics.

It's unclear whether this good performance in large deflections was intended or is a byproduct of the sophisticated multibody dynamics under the hood.  Maybe an expert can tell more.

Overall, to what I have seen the (static) performance was very satisfying. Judging dynamic is performance is much more difficult. Has anyone experience to share with that?



is what I have used.

We’ve been busy! We have just released the 2021.2 updates for Maple, Maple Flow, and MapleSim. Here’s a quick overview. These updates are freely available to all customers who have the 2021 version of these products.


The Maple update includes a variety of corrections and improvements to the math engine and interface. It is available through Tools>Check for Updates in Maple, and is also available from the Maple 2021 download page, where you can also find more details.

In particular, this update includes fixes to the bug in the combine command when working with double summations, and the problems when performing context menu operations on values with units while in Document mode, both of which were reported on MaplePrimes. As always, we appreciate the feedback!

Maple Flow

The Maple Flow 2021.2 update offers a richer range of formatting features for creating professional-looking engineering documents, which have been requested by customers. Highlights include sections, controlling the display of c