Product Tips & Techniques

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

One issue that often confuses users is local versus global optimization in Maple. I'm just going to give an overview here and will explore specific optimization topics more deeply in future blog entries. Please note that I'm covering only the numeric optimization methods here. I'll leave discussion of the exact methods in Maple to others more knowledgeable about those areas.

The Optimization package is built into Maple and is available to all users. This is primarily...

Question: How do I generate tickmarks in multiples of Pi? The answer has been posted before but this question comes up often enough that it is worth repeating. In Maple 10 and earlier versions, you had to build a custom list of tickmarks, and the only way you could get the Greek pi symbol was to use the Symbol font. In Maple 11, you can use the new 'spacing' structure with the 'tickmarks' option. To get tickmarks in multiples of Pi, use: > plot(sin(x), x=0..8*Pi, tickmarks=[spacing(Pi), default]); To get tickmarks spaced by 2*Pi, replace spacing(Pi) with spacing(2*Pi). To get the tickmarks occuring on the odd multiples of Pi, use spacing(2*Pi, Pi). The second argument is a fixed value from which the other tickmarks are determined.
Well, that last blog entry sure generated a lot of discussion! I'm going to move on to something a bit more fun and less controversial: how to generate a 3-D plot of a polyhedron. There are different ways to do this in Maple, depending on how complicated the polyhedron is and what else you want to do with it. I've uploaded a worksheet with a few simple examples. View 86_PolyhedraExample.mw on MapleNet or Download 86_PolyhedraExample.mw
View file details

Maple Equation

The last point I would make about the dice problem; is to mention a way to graph the probabilities ... as n increases.

Given that the following function determines the probability of all faces being shown when n dice are rolled (from previous work):

> P := n -> 1 - ((add((-1)^(k+1)*binomial(6,k)*(6-k)^n,k=1..5))/(6^n));

Could some one help me to plot this population balance equation ? see the attached file Download 4968_PBE.doc
View file details

Let's continue on with the dice example; determining the probability of all faces showing when n dice are thrown.   We estimated this by running a simulation in maple; and comparing the frequency of successes to the total number of experiments.

There is a way to determine the probability without running trials. The problem can be solved combinatorially.

One way to determine the probability of all faces shown; is to determine the the probability that all faces are NOT shown (call this probability B). Then the probability that all faces are shown = 1 - B.

I've been asked: how do I include a mathematical expression in a plot caption without having it evaluate? An example is displaying 2(x+y) in the caption without having it appear as 2x+2y. The easiest way to do this is to create an atomic identifier from the expression in the input line. In the 2-D input line, you'll have plot(..., caption=2(x+y)). Select 2(x+y) and right-click to bring up the context menu. Then go to 2-D Math -> Convert To -> Atomic Identifier. This turns the expression into a single name. Note that it is no longer equivalent to the expression 2(x+y), even though it looks exactly like it.
Let's take another look at the dice rolling example:

Simulate rolling 8 dice 10 times.

roll := rand(1..6);
for i from 1 to 10 do;
dice := ['roll()' $8]; # dice contains 8 random values, each from 1..6
end do;

Let's say you want to check the list "dice" to see if all faces are
represented.

One way to do this is to write a proc which creates an array indexed
1..6; and initialize the array to zero; and then check the dice list ...
incrementing the associated array index for each value in the dice list.
Finally ... check the built array to see if all index values are non-zero.
A note added: Although the coding below is correct, it has clearly been superseeded by the following two entries contributed by acer: Entry 1 and Entry 2. As in any fairytale (even though this blog of mine certainly is not) it takes three of something (at least according to the fairytales of my fellow-countryman H. C. Andersen). Todays entry is the third and last (at least for now) in a row of three consecutive ones dealing with manipulations of indices of Arrays. The other two entries are Tip: Index an Array and Tip: Permute the indices of an Array.
In Maple 11, we added the ability to put captions on a plot. To do this, just use the 'caption' option with any plotting command, in the same way you'd use the 'title' option. These options are described in the plot/options help page. One additional change we made in Maple 11 for these two options is to allow the right-hand-side of the option equation to be a list containing the title or caption, followed by a 'font' suboption. So now you can use title=["my title", font=[times, bold, 20]] instead of having to specify the font separately with the 'titlefont' option. You can also display 2-D math in captions, titles and other text elements in a 2-D plot. To do this, simply use the mathematical expression as the option value: e.g. caption=x^2/2. To combine math with plain text, wrap everything in a 'typeset' structure: caption=typeset("my plot of ", x^2/2). If you enter the plotting command in 2-D math, you can use the palettes to build the expression directly in the command.
A note added: Although the coding below is correct, it has clearly been superseeded by the following two entries contributed by acer: Entry 1 and Entry 2 in the blog entry Tip: Transpose a pair of indices of an Array. Yesterday I wrote about a method to index an Array, using a procedure of the type `index/method`. Below, using the same sort of procedure, a method for permuting the indices of an Array is given (please feel free to suggest improvements; probably, the else-statement may be written more concisely):
Sometimes it can be very useful to know the indices of entries (of an Array) which obey some conditions. The following procedure (which works for any Array) makes this possible:
`index/makeIndex` := proc(indices::list,array::Array,value::list)
	# Retrieving from the Array
	if nargs = 2 then return array[op(indices)]: end if:
	# Storing in the Array
	if nargs = 3 then array[op(indices)] := indices = op(value): end if:
end proc:
An example: For Array A find the set S of indices of entries being positive integers, using as an intermediate step the Array B with entries of the form "indices = value":
I am just getting started with Maple TA for Calc III. I am trying to solve LaGrange multipliers. When the solve command returns multiple sets of answers, how do I extract the specific values for the subs command? $f=xyz; $q=x^2+2y^2+3z^2-6; $g=maple("f+mu*$q"); $exp1=maple("diff($g,x)"); $exp2=maple("diff($g,y)"); $exp3=maple("solve({$q,$exp1,$exp2},[x,y,mu])"); $ans1=maple("subs({x = ????,),y =???? )},$f)"); $ans2=maple("subs({x = ????,y = ????},$f)"); The question marks are where I am lost.
I'm finally going to start my MaplePrimes blog, and I will post answers to some of the questions I get about the areas with which I'm familiar. Most of time, I get asked about 2-D plotting. Some of the information here may be repeated from forum comments, but hopefully, this will make it easier to find. Unfortunately, my participation on MaplePrimes comes in spurts, as I try to find time between my other tasks, such as developing features for new releases. I tend to rely on the many Maple experts on MaplePrimes who very competently answer most questions that arise. I will, however, try to be diligent about adding a new tip at least once a week. Let's see if I can live up to my promise and get beyond this first post!
Hi, I am fitting experimental data DATA(t) to a MODEL(t) with LSSolve. What would be the shortest way to plot the residuals(t)? Thanks, Evgeni
First 51 52 53 54 55 56 57 Last Page 53 of 65