Product Tips & Techniques

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

And so with this provocative title, "pushing dsolve to its limits" I want to share some difficulties I've been having in doing just that. I'm looking at a dynamic system of 3 ODEs. The system has a continuum of stationary points along a line. For each point on the line, there exist a stable (center) manifold, also a line, such that the point may be approached from both directions. However, simulating the converging trajectory has proven difficult.

I have simulated as...

MapleNet 15 has just been released. MapleNet 15 brings the power of Maple 15 to your web sites and applications. New features include support for the new interactive data tables and single-click re-execution of documents.  MapleNet 15  also automatically detects when it is being accessed from a mobile device and adapts the display according to the device capabilities. 

You can learn more about MapleNet 15

Most programs will not produce and assign to a large number of global "top-level" names. But it is interesting that the cost associated with such global name assignment is related to the number of entries in libname.

A possible cause of this cost is the need to check whether the name is protected, before assigning.

The following timings were made on 32bit Maple 15 running on Windows 7, on an Intel i7. The set of four timings is...

Just wanted to let everyone know that there is a Maple 15 update available. Maple 15.01 provides:

  • Enhancements to MapleCloud security settings
  • Improvements to tools supporting multi-process programming on a local grid
  • Extended MATLAB® connectivity to include MATLAB® R2011a
  • Compatibility with MapleSim 5

 

To get this update, you can use Tools>Check for Updates from within Maple, or visit for ...

This is more of a blog entry, mostly a note to myself.

I wanted to generate a list of points on the surface of a deformed sphere. It turns out that Robert recently showed how to do that on a unit sphere.

http://www.mapleprimes.com/questions/35962-Limited-Random-Points-Plot-On-A-Surface#comment66936

Adapting his code is straightforward. So here is what I came up with. One proc generates the random points on the surface of the ellipsoid. Another proc generates...

A short remark. This would be a blog entry if those still existed.

I am comparing plot,options.

The style=point option has versatile options for symbols, their sizes, the number of points:

  , 'style' = point
  , 'numpoints' = 50
  , 'symbol' = solidcircle
  , 'symbolsize' = 8

 

The ability to color a 3D plot using a color function is geared more for functions of x and y only.

But quite often, the surface or pointwise 3D position of the plot is itself being specified as a height z which is a function of x and y. For the plot3d comand, that's pretty much the way it works (whether using an expression or a procedure).

So, of course, the very same rule that...

for the record, I just discovered that while you can save a worksheet with a name like

mywork,mapleprimes.mw

you cannot open it (with Maple 15, June 2011)

Maple will return an error message like "file mapleprimes.mw could not be found" (swallowing up the "mywork," part of the name)

but if you rename it mywork-mapleprimes.mw

it will work fine.

In other words, do not insert commas in file names.

I do not know/remember if...

Answering to that question, I posted several procedures finding minimal polynomials for the elements of finite fields. The best one was the following,

alias(a=RootOf(T^100+T^97+T^96+T^93+T^91+T^89+T^87+T^86+T^82+T^81+T^71+T^70+T^67+T^61+
T^60+T^57+T^54+T^53+T^52+T^49+T^48+T^45+T^44+T^42+T^39+T^36+T^33+T^32+T^31+T^29+T^28+T^27+
T^26+T^24+T^23+T^22+T^18+T^17+T^16+T^14+T^13+T^12+T^10+T^8+T^7+T^6+T^3+T+1)):

F:=GF(2,100,op(a)):
z:=F:-input(2):

MinPolyGF:=proc(x,y:=_X)
local A, i;
A:=Matrix(100,...

I'm learning to handle the output of pdsolve. It is a module and I'm quite new to that. The objective is to plot the solution for different values of, say, time t, in a fairly systematic way. I'll consign here my progress for reference. Feel free to comment if you have suggestions.

 sol := pdsolve
  ( diff(u(x, t), t) = (1/10)*(diff(u(x, t), x, x))
  , {u(0, t) = 0, u(x, 0) = 1, (D[1](u))(1, t) = 0}
  , numeric
  );

Introduction

The Magma package introduced in Maple 15 includes the command Enumerate. This routine allows you to count, or list, isomorphism class representatives of magmas of a given (small) order satisfying a selection of properties that...

 

 

This is the Classroom Tips & Techniques article for the May, 2011 Maplesoft Reporter, which, after publication, finds...

A Plot Component (on the right below) can act as a kind of 2-dimensional "slider" for inputing values of two parameters at once.

The polar plot (on the left below) makes use of both values.

If you click in the right Plot, and drag around the mouse cursor for a while, then the left Plot will be continuously updated.

Make sure to execute the collapsed code-edit region, to initialize it. (Just click on it, to execute. Or expand, look, and right-click on it.)

 

 

 

Click any point above, & Drag

 

Download plotslider1.mw

 

This is in response to a Question about the speed and memory use of an animated DEplot. The problems are that the example's animation was slow to create, and prohibitively expensive to save in a Document.

An alternative approach is to combine multiple calls to plots:-odeplot with a call to plots:-fieldplot to supply the background flow arrows. This is a lot faster. It takes less memory to create and run, but the GUI may still consume too much resources saving it. The good news is that it's so much faster that it's not inconvenient to re-run the entire thing from scratch. And so it's quite feasible to remove all the expensive output from the Document prior to saving and thus avoid the whole resources problem.

The original questioner also wanted to visualize with resect to two varying parameters. So I've also done an implementation of that using Embedded Components and two Sliders.

Here is the old DEplot animation. It takes about 40 sec to create it animation on an Intel i7.

Here is the new combined odeplot+fieldplot animation. It takes a second or two to create its animation on an Intel i7.

Here is the DEplot in Embedded Components. It's very slow, and the image doesn't change smoothly with the sliders.

Here is the new combined odeplot+fieldplot in Embedded Components. Its image changes pretty smoothly with the sliders.

I encourage completely quitting the GUI (not just restart, or close Document and re-Open) between comparison runs of these implementations, of you want to get a really good feel for the effects of both running them as well as saving them (with and without all output).

For the Embedded Component documents, the functioning code resides inside the "initialize" button. (right-click, go to Component Properties, Action When Clicked, only if you want to inspect it.) To run those two  Documents, execute all the commands (use the triple-exclam from the menubar if you like), and then press the "initialize" button, and then move the sliders.

The difference in performance is related partly to the use of hardware datatype Arrays in the PLOT structures generated by odeplot and fieldplot. (But an `arrow` primitive would help even more!)

And (I think) there is improvement by virtue of using dsolve/numeric/parameters in the use of `odeplot`. That saves overhead from repeated cold invocations of dsolve/numeric. And DEplot doesn't support that, since it expects as argument the system of DEs and ICs. The newer `odeplot` command accepts the procedure returned by dsolve/numeric, and thus allows for efficient repeated setting of parameter values. The `fieldplot` command doesn't need the solution of the DE system at all: it just needs the DEs.

I would have considered wrapping the whole combined approach up into a single command, but it might have to accept separate options for the view ranges, in order to always look its best. A smart version might be able to deduce the computed ranges from the odeplot output, and then create the background fieldplot based on that.

The Magma package in Maple 15 includes the command IsSubMagma.  This tests whether a specified subset of a magma is closed under the binary operation that defines the magma.  For example, consider the following Cayley table for a group of order four.

> with( Magma ):
> m := << 1, 2, 3, 4 |
First 29 30 31 32 33 34 35 Last Page 31 of 64