Maplesoft Blog

The Maplesoft blog contains posts coming from the heart of Maplesoft. Find out what is coming next in the world of Maple, and get the best tips and tricks from the Maple experts.

Latest Posts Latest Blog Posts Feed

This week, I had the pleasure of attending a rock concert with my son Eric who is now about to turn 15 and who has turned out to possess non-trivial interests and talents in music. The concert was by the band Rush who, to the uninitiated, would be yet another big, loud, over-produced rock band. But to a generation of technocrats (e.g. yours truly) educated from the late 1970’s and on, they are the band of choice due to an intriguing mix of musicianship, technological...

The greatest benefits from bringing Maple into the classroom are realized when the static pedagogy of a printed textbook is enlivened by the interplay of symbolic, graphic, and numeric calculations made possible by technology.  It is not enough merely to compute or check answers with Maple.  To stop after noting that indeed, Maple can compute the correct answer is not a pedagogical breakthrough.

...

It has been a while since my last post, mostly because of a combination of getting Maple 14 ready to ship and a lack of meaty topics to write about. I am trying to get back into the habit of posting more regularly. You can help me achieve my goal by posting questions about parallel programming. I'll do my best to answer. However for now, I'll give a brief overview of the new parallel programming features in Maple 14.

A new function has been added to the Task Programming Model. The Threads:-Task:-Return function allows a parallel algorithm implemented on top of the Task Programming Model to perform an early bail out. Lets imagine that you have implemented a parallel search. You are looking for a particular element in a large set of data. Using the Task Programming Model, you've created a bunch of tasks, each searching a particular subset of the data. However one of the first tasks to execute finds the element you are looking for. In Maple 13, there was no built in way of telling the other tasks that the result have been found and they they should not execute. In Maple 14, the Return function allows one task to specify a return value (which will be returned from Threads:-Task:-Start) and signal the other tasks that the algorithm is complete and that additional tasks should not be executed. Tasks that are already running will still run to completion, but tasks that have not started executing will not be started.

You may have noticed that there is a race condition with Return. What happens if two tasks both call Return in parallel? Only one of the values will become the value that is passed to Threads:-Task:-Start. I suppose I could say the "first" value is the one that is used, but really, what does that mean? If you call Return, then the value passed to Return should be an acceptable result for the algorithm.  If you call Return more than once, any of those values should be valid, thus it shouldn't matter which one becomes the return value.  That said, the Return function does give some feedback. In the task that succeeds in having its value accepted, Return will return true. In all other tasks that call Return, it will return false. This allows the code to know if a particular result was or was not accepted.

Maple 14 also adds the Task Programming Model to the C External Calling API. This means that you can write your algorithms in C and make use of the Task Programming Model. The C API is similar to the Maple API, with a few differences. In particular, you need to create each child task individually, instead of as a single call to Continue, as you would in Maple. As well, because it is C code, you need to worry about a few details like memory management that are handled automatically in Maple.  Using External Call is fairly advanced, so I won't go into too much detail here.  If you'd like to see more details of using the Task Programming Model in External Calling, I can write a seperated post dedicated to that.

As with every release of Maple, we spent some time trying to make our existing functionality faster and more stable. For parallel programming, we reduced the overhead of using the Task Programming Model, as well as reducing the locking in the kernel (which should help improve parallelism). Of course many bugs have been fixed, which should make parallel programming more reliable in Maple 14.

The term “from months to days” is a favorite slogan of mine and I have relied on it religiously for over two decades to illustrate the fundamental benefit of symbolic computation. Whether it’s the efficient development of complex physical models using MapleSim, or exploration of parametric design surface equations (my dissertation) using good old fashioned Maple V Release 2, the punch that symbolic computation provided was to automate the algebraic mechanics...

 

In a recent blog post, I pointed out that Maple did not have a built-in functionality for drawing graphs that arise in computing volumes by slices. However, I did provide several examples of ad-hoc visualizations that one could build with the graphing tools in Maple.

 

Recently, a user called attention to a weakness in the Student Calculus 1 command, VolumeOfRevolution. This command (and the tutor built on it) will draw a surface of revolution bounded by the surfaces generated by revolving the graph of one or two functions.

Points and lines, and the relationships between them, are essential ingredients of so many problems in, for example, calculus. In particular, obtaining the equation of the perpendicular bisector of a line segment, dropping a perpendicular from a point to a given line, and calculating the distance from a point to a line are three tasks treated in elementary analytic geometry that recur in the applications....

I spend much of my time traveling for business. These trips often last a week, and we try to visit as many potential customers as possible, and in the most efficient order. This involves matching our hosts' calendars with our own, booking the most cost effective travel options, and coping with last-minute cancellations and changes. It isn’t easy!

This has become so much easier with the advent of shareable calendars and mapping services, like Google Maps. ...

A long while ago, I wrote a couple posts (part1 and part2) about mining data from the US SSA website.  I subsequently adapted the code from those blog posts into a visual application with sliders and interactive plots.  If you have played with the new ?MapleCloud functionality in Maple 14, you may have seen it posted already.

Back in July of 2005, one of the early Tips & Techniques articles (since updated) in the Maple Reporter was a comparison of two different approaches to fitting a circle to 3D data points. The impetus for the comparison was Carl Cowen's article on the subject. His approach was algebraic - he used the singular value decomposition to obtain a basis for the...

My wife will testify that I am horrible when it comes to keeping things organized and tidy. My colleagues who have seen my office can attest to this as well. My usual defence is that a messy environment is an indication of how busy you are (consequently how productive you are) and basic creativity. But every once in a while, usually when I hit a mental block, I launch into clean up mode to do something completely different hoping that when I’m done, my mental block will be gone. I just went through one of these moments. This time, my cleansing took me to the bottom of one of my office desk drawers to a pile of photos that I had stashed in there ten years ago. Glancing through these, four immediately jumped out and helped me flash back to some key moments in my life. Yes, my 15 minute sabbatical digging through my desk was one of the most productive quarter hours I’ve had in a long time. Here, then, are these four photos that respectively offer a compelling reason to reflect a bit on the past ...

In 1988, Keith Geddes and others involved with the Maple project at the University of Waterloo published a Maple Calculus Workbook of interesting calculus problems and their solutions in Maple. Over the years, I've paged through this book, extracting some of its more unique problems. Recently, I extracted the following problem from this book, and added it to my Clickable Calculus collection, which I use for workshops and web-based presentations.

Three recent articles in the Tips & Techniques series addressed the question of stepwise solutions in Maple. Just what is it that Maple provides by way of stepwise solutions for standard calculations in the mathematical curricula? There are commands, assistants, tutors, and task templates that provide stepwise calculations in precalculus, calculus, linear algebra, and vector calculus. In addition, since Maple can implement nearly any mathematical operation, any stepwise calculation can be reproduced in Maple by assembling the appropriate intermediate steps, just as they would be assembled when working with pencil and paper.

I have to thank my friend John Wass, an editor from Scientific Computing magazine who began a recent article with the clear warning “Attention Engineers! The developers at Maplesoft rarely sit still for very long.”  This was a comment on the thrilling speed that enhancements are flowing from the MapleSim pipeline. Although his quote refers to a MapleSim 3 article he wrote, I chuckled as the sentiment still rings true as my colleagues and I catch our breaths after the recent release of MapleSim 4.  Yes, the engineering community has definitely taken notice that MapleSim, in such a short amount of time, is already making a big difference in the way we do and think about modeling.

Our solar system was created in three hours… well, at least that was how long it took for me to create a model of it in MapleSim. This process started out as an inquiry from a MapleSim user asking if MapleSim can be used to model planetary motions, through the use of Newton’s law of gravity. I view this kind of inquiry as both a challenge (any time someone asks “can MapleSim do such and such” it is an automatic invitation for us Applications Engineers to try it out J ), and an opportunity to learn new things.

While I am somewhat fascinated by astronomy (who isn’t dazzled by all of those pretty photos of various celestial bodies in the universe?!), I have never developed a keen interest in it.  That can be partially attributed to the fact that I grew up in a city that never sleeps, which means serious light pollution (I didn’t realize how beautiful the night sky was and how bright the stars can be until my teenage years on a family camping trip…  but that’s another story). The aspect of astronomy that I understand tells me that the law of gravity applies, to a certain extent, and that the magnitude of the numeric values that we are dealing with (for planetary motion simulation) is astronomical! So for me, these are the two key issues that will need to be addressed when creating a MapleSim model.

Sometimes the obvious escapes me, and it’s only due to some chance observation that I realize the same fundamental principles are everywhere.

A short time ago, I created a simple hydraulic network in MapleSim, and after experimenting with some of the parameters, found it gave the same behaviour as an electric circuit I’d modeled earlier.

5 6 7 8 9 10 11 Last Page 7 of 15