Items tagged with maple


We have just released the 3rd edition of the Mathematics Survival Kit – Maple Edition.

The Math Survival Kit helps students get unstuck when they are stuck. Sometimes students are prevented from solving a problem, not because they haven’t understood the new concept, but because they forget how to do one of the steps, like completely the square, or dealing with log properties.  That’s where this interactive e- book comes in. It gives students the opportunity to review exactly the concept or technique they are stuck on, work through an example, practice as much (or as little) as they want using randomly generated, automatically graded questions on that exact topic, and then continue with their homework.

This book covers over 150 topics known to cause students grief, from dividing fractions to integration by parts. This 3rd edition contains 31 additional topics, deepening the coverage of mathematical topics at every level, from pre-high school to university.

See the Mathematics Survival Kit for more information about this updated e-book, including the complete list of topics.


With Maple, you can create amazing visualizations that go far beyond the standard mathematical plots that you might typically expect (I wince every time I see yet another sine curve).

At your fingertips, you have

  • plotting primitives that can be assembled in new and novel ways
  • precise control over coloring (yay for ColorTools) and placement
  • an interactive coding environment with inline plots, giving you quick visual feedback over aesthetic changes
  • and a comprehensive mathematical programming language to glue everything together

Here, I thought I'd share a few of the visualizations I've really enjoyed creating over the last few years (and I'd like to emphasize 'enjoy' - doing this stuff is fun!)

Let me know if you want any of the worksheets.


Psychrometric chart with historical weather data for Waterloo, Ontario.


Ternary plot of the color of gold-silver-copper alloys


Spectrogram of a violin note played with vibrato


Colored zoom of the Mandelbrot set


Reporting dashboard for an Organic Rankine Cycle


Temperature-entropy plot of an ideal Rankine Cycle


Quaternion fractal


Historical sunpot data


Earthquake data


African literacy rates

Do you have Maple content that you want to protect from editing and viewing, while still allowing others to execute the code within and obtain results? In Maple, worksheets can be password protected so the users of your Maple application can benefit from the specialized routines you've created while the details remain hidden.

The password protection feature can be useful for a variety of situations, such as:

  • • Providing a Maple-based solution while protecting the intellectual property embodied in your algorithms
  • • Ensuring the users of your application can not accidentally make changes that break your code


To learn more about this feature in Maple, you can download the free Tips & Techniques from the Application Center.

We have just released an update to Maple, Maple 2017.1.  It includes improvements to the display on high resolution monitors for the debugger, MapleCloud, and help system table of contents. It also contains a variety of small improvements to the math engine, including in limit, series, Physics, typesetting, and PackageTools. This update is available through Tools>Check for Updates in Maple, and is also available from our website on the Maple 2017.1 download page.


We just posted a submission to the Maple Application Center that I thought people might be interested in. Mathematics for Chemistry isn't a typical application - it's an e-book, written in Maple by J.F. Ogilvie. It covers both standard mathematics topics chemistry students are expected to know,  such as calculus and linear algebra, as well as chemistry-specific topics like chemical equilbrium, quantum chemistry, and nuclear-magnetic-resonance spectra.

There's lots of interesting content on the Application Center, and the range of topics is always fascinating, but it's not every day I see an entire e-book come across my desk(top)!

If you are interested, you can find it on the Application Center, here: Mathematics for Chemistry


   It’s that time of year again for the University of Waterloo’s Submarine Racing Team – international competitions for their WatSub are set to soon begin. With a new submarine design in place, they’re getting ready to suit up, dive in, and race against university teams from around the world.


   The WatSub team has come a long way from its roots in a 2014 engineering project. Growing to over 100 members, students have designed and redesigned their submarine in efforts to shave time off their race numbers while maintaining the required safety and performance standards. Their submarine – “Bolt,” as it’s named – was officially unveiled for the 2017 season on Thursday, June 1st.



   As the WatSub team says, "Everything is simple, until you go underwater."



    Designing a working submarine is no easy task, and that’s before you even think about all the details involved. Bolt needs to accommodate a pilot, be transported around the world, and cut through the water with speed, to name a few of the requirements if the WatSub team is to be a serious competitor.


    To help squeeze even more performance out of their design, the team has been using Maple to fine tune and optimize some of their most important structural components. At Maplesoft, we’ve been excited to maintain our sponsorship of the WatSub team as they continue to find new ways to push Bolt’s performance even further.



   The 2017 design unveiling on June 1st. After adding decals and final touches, Bolt will soon be ready to race.


   This year, the WatSub team has given their sub a whole new design, machining new body parts, optimizing the weight distribution of their gearbox, and installing a redesigned propeller system. Using Maple, they could go deep into design trade-offs early, and come away knowing the optimal gearbox design for their submarine.


   In just over a month, the WatSub team will take Bolt across the pond and compete in the European International Submarine Races (eISR). Many teams competing have been in existence for well over a decade, but the leaps and strides taken by the WatSub team have made them a serious competitor for this year.

  Best of luck to the WatSub team and their submarine, Bolt – we’re all rooting for you!

We have just released an update to Maple.  It includes updates to the Maple Workbook, the video component, the Physics package, and many other small improvements throughout the product. It is available through Tools>Check for Updates in Maple, and is also available from our website on the Maple 2016.2 download page.


Ian Thompson has written a new book, Understanding Maple.

I've been browsing through the book and am quite pleased with what I've read so far. As a small format paperback of just over 200 pages it packs in a considerable amount of useful information aimed at the new Maple user. It says, "At the time of writing the current version is Maple 2016."

The general scope and approach of the book is explained in its introduction, which can currently be previewed from the book's page on (Click on the image of the book's cover, to "Look inside", and then select "First Pages" in the "Book sections" tab in the left-panel.)

While not intended as a substitute for the Maple manuals (which, together, are naturally larger and more comprehensive) the book describes some of the big landscape of Maple, which I expect to help the new user. But it also explains how Maple is working at a lower level. Here are two phrases that stuck out: "This book takes a command driven, or programmatic, approach to Maple, with the focus on the language rather than the interface", followed closely by, "...the simple building blocks that make up the Maple language can be assembled to solve complex problems in an efficient way."




A number of MaplePrimers have asked how one might use the section and subsections of a Maple worksheet to structure the source code of an extended Maple package.  The usual answer is that it cannot be done; a module-based Maple package must be assigned in a single input region in a worksheet.  A recommended alternative is to write the source in text files and use either command line tools or the Maple read command from a worksheet to assign the package.  Because the read command handles Maple preprocessor macros, specifically the $include macro, the source can be conveniently split into smaller files.

I prefer this file-based method for development because text files are generally more robust than Maple worksheets, can be edited with the user's preferred editor, can be put under version control, and can be searched and modified by standard Unix-based tools.  However, not everyone is familiar with this method of development.  With that in mind, I wrote a small Maple package, CodeBuilder, that permits splitting the source of a Maple package (or any Maple code) into separate code edit regions in a standard Maple worksheet, using $include macros to include the source of other regions.  To build the package, the code edit regions are written to external files, using the names of the regions as the local file name relative to a temporary directory.

The package includes a method to run mint on the source code.  The result can be either printed in the worksheet or displayed in a pop-up maplet that allows selecting the infolevel and the region to check.

CodeBuilder includes help pages and a simple example (referenced from the top-level help page) demonstrating the usage.  To install the package, unzip the attached zip file and follow the directions in the README file.

Errata Just noticed that a last minute change broke some of the code.  Do not bother with the 1-0-1 version; I'll upload a new version shortly.  The latest version (1-0-3) is now available.

Just a simple graphical view of Maple releases over the years.

MapleVersions := [[1, 1982], [1.1, 1982.05], [2, 1982.33], [2.1, 1982.42], [2.15, 1982.58], [2.2, 1982.92], [3, 1983.17], [3.1, 1983.75], [3.2, 1984.25], [3.3, 1985.17], [4, 1986.25], [4.1, 1987.33], [4.2, 1987.92], [4.3, 1989.17], [5.1, 1990.58], [5.2, 1992.83], [5.3, 1994.17], [5.4, 1996], [5.5, 1997.83], [6, 1999.92], [7, 2001.5], [8, 2002.25], [9, 2003.42], [9.5, 2004.25], [10, 2005.33], [10.01, 2005.58], [10.02, 2005.83], [10.03, 2006.17], [10.04, 2006.42], [10.05, 2006.5], [10.06, 2006.75], [11, 2007.08], [11.01, 2007.5], [11.02, 2007.83], [12, 2008.33], [12.01, 2008.75], [12.02, 2008.92], [13, 2009.25], [13.01, 2009.5], [13.02, 2009.75], [14, 2010.25], [14.01, 2010.75], [15, 2011.25], [15.01, 2011.42], [16, 2012.17], [16.01, 2012.33], [17, 2013.17], [17.01, 2013.5], [18, 2014.17], [18.01, 2014.33], [18.015, 2014.5], [18.02, 2014.83], [19, 2015.17], [19.1, 2015.33], [20, 2016.17], [20.1, 2016.25], [20.15, 2016.30]]
a:=map(ListTools:-Reverse,MapleVersions): #swap x-y axis
plot(a, style = point, symbol = point)

Can anybody please tell, where I can find seminar/workshops on Maple training ?


Walking into the big blue Maplesoft office on August 3rd was a bit nerve wracking. I had no idea who anyone was, what to expect, or even what I would be doing. As I sat in the front hall waiting for someone to receive me, I remember thinking, “What have I gotten myself into?”. Despite my worries on that first day, interning at Maplesoft has been a great experience! I never knew that I would be able to learn so much about programming and working in a company in such a short amount of time. Although Maple was a programming language that was foreign to me a couple weeks ago, I feel like I’m relatively well versed in it now. Trying to learn a new language in this short timespan hasn’t been easy, but I think that I picked it up quickly, even if I’ve had my fair share of frustrations.

Chaos Game example on Rosetta Code

At Maplesoft, I’ve been contributing to the Rosetta Code project by writing short programs using Maple. The Rosetta Code project is dedicated to creating programming examples for many different tasks in different programming languages. My summer project has been to create solutions using Maple for as many tasks as possible and to post these to Rosetta Code; the goal being to have the list of tasks without Maple implementation shrink with each passing day. It’s nice to feel like I’m leaving a mark in this world, even if it is in such a small corner of the internet.

Flipping Bits example on Rosetta Code/MapleCloud

This internship, of course, came with its share of challenges. During my work on the Rosetta Code project, I posted solutions for a total of 38 tasks. Some of them were easy, but some of them took days to complete. On some days, I felt like I was on top of the world. Everything I made turned out great and I knew exactly how to tackle each problem. Other days were slower. I’ve spent ages just staring at a computer monitor trying to figure out just how on earth I was going to make this machine do what I wanted it to do! The 24 Game task was particularly hard, but also very educational. Through this task, I learned about modules, a concept previously unknown to me. I’m fairly sure that the 24 Game also took me the longest, whereas the Increment a numerical string task took me no time at all. Despite it being easy, the Increment a numerical string task wasn’t particularly fun; a bit of a challenge is required for something to be entertaining, after all. My personal favourite was the Fibonacci n-step number sequences task. It was the first really challenging task I encountered, and for after which the feeling of finally completing a task that I spent so long on, of finally overcoming that mountain, was extremely satisfying. Not all challenges end in satisfaction, however. I often found myself accidentally doing something that made the window freeze. I would close the program, then cry a bit on the inside when I realized I just lost the past half an hour’s worth of unsaved work. Nevertheless, I’m glad I got to face all these obstacles because they have made me more resilient and a better programmer.

The following is the code for the Fibonacci n-step number sequences task

numSequence := proc(initValues :: Array)
	local n, i, values;
n := numelems(initValues);
values := copy(initValues);
for i from (n+1) to 15 do
values(i) := add(values[i-n..i-1]);
end do;
return values;
end proc:
initValues := Array([1]):
for i from 2 to 10 do
initValues(i) := add(initValues):
printf ("nacci(%d): %a\n", i, convert(numSequence(initValues), list));
end do:
printf ("lucas: %a\n", convert(numSequence(Array([2, 1])), list));

Maple was a great software to program with and a fairly straightforward language to learn. Having previously programmed in Java, I found Maple similar enough that transitioning wasn’t too difficult. In fact, every once in a while when I didn`t know what to do for a task, I would take a look at the Java example in Rosetta Code and it would point me in a direction or give me some hints. While the two languages are similar, there are still many differences. For example, I liked the fact that in Maple, lists started at an index of 1 rather than 0 and arrays could an arbitrary starting index. Although it was different from what I was used to, I found that it made many things much less confusing. Another thing I liked was that the for loop syntax was very simple. I never once had to run through in my head how many times something would loop for. There were such a wide variety of commands in Maple. There was a command for practically anything, and if you knew that it existed and how to use it, then so much power could be at your fingertips. This is where the help system came in extremely handy. With a single search you might find that the solution to the exact problem you were trying to solve already existed as a Maple command. I always had a help window open when I was using Maple.

Multiplication Tables example on Rosetta Code

Spending my summer coding at Maplesoft has been fun, sometimes challenging, but an overall rewarding experience. Through contributing to the Rosetta Code project, I’ve learned so much about computer programming, and it certainly made the 45 minute drive out to Waterloo worth it!

Yili Xu,
Maplesoft SHAD Intern

I have been in touch with Maplesoft trying to get this version for windows (they are not able to create a download for this). I have codes that used to run in Maple 6 but not in Maple 7 or later. (Maple V should work as well).

If you any of have this version, please let me know if I can try it out for a limited time (I have always had licenses from Maple V Release 3 or 4).

I am not able to post those codes for obvious confidentiality reasons.




(I tried my code in Maple 7, but no use). 

 Hello,every one,i want to solve system of equations but i recieve an error ,how can i find the coeffecients c1,c2,c3,c4?thank.





A := 45*x*c4+72*c3 = 0:


B := 56*c2*c4+28*c3^2 = 0:

C := M^2*(-x^5*c4-x^4*c3-x^3*c2-x^2*c1+c1+c2+c3+c4+1)^n*c4+42*beta*c1*c4+42*beta*c2*c3 = 0:

E := M^2*(-x^5*c4-x^4*c3-x^3*c2-x^2*c1+c1+c2+c3+c4+1)^n*c3+30*beta*c1*c3+15*beta*c2 = 0:

F := M^2*(-x^5*c4-x^4*c3-x^3*c2-x^2*c1+c1+c2+c3+c4+1)^n*c2+20*beta*c1*c2-20*beta*c1*c4-20*beta*c2*c4-20*beta*c3*c4-20*beta*c4^2-20*beta*c4-20*c4 = 0:

G := M^2*(-x^5*c4-x^4*c3-x^3*c2-x^2*c1+c1+c2+c3+c4+1)^n*c1+6*beta*c1^2-12*beta*c1*c3-12*beta*c2*c3-12*beta*c3^2-12*beta*c3*c4-12*beta*c3-12*c3 = 0:


beta*c1+beta*c2^2+beta*c2*c3+beta*c2*c4+beta*c2+c2 = 0:

M^2*(-x^5*c4-x^4*c3-x^3*c2-x^2*c1+c1+c2+c3+c4+1)^n = 0:



PolynomialSystem({{45*c4*x+72*c3 = 0}, {30*beta*c1*c3+15*beta*c2 = 0}, {42*beta*c1*c4+42*beta*c2*c3 = 0}, {20*beta*c1*c2-20*beta*c1*c4-20*beta*c2*c4-20*beta*c3*c4-20*beta*c4^2-20*beta*c4-20*c4 = 0}, {6*beta*c1^2-12*beta*c1*c3-12*beta*c2*c3-12*beta*c3^2-12*beta*c3*c4-12*beta*c3-12*c3 = 0}}, {c1, c2, c3, c4}, {beta = 2, x = 1/5})

Error, invalid input: too many and/or wrong type of arguments passed to SolveTools:-PolynomialSystem; first unused argument is {beta = 2, x = 1/5}





















HI.please help me for solve differenrtial equation with finite difference method not dsolve numeric solver in maple


L := 1/50000000; -1; eta := 1; -1; PDE[111] := 7.65692307692309*10^(-8)*(diff(f1(x), x, x, x, x))-1.56784615384616*10^12*(diff(f1(x), x, x))+220.592307692308*(diff(f2(x), x, x, x))-3.52947692307693*10^21*(diff(f2(x), x))+43.7538461538462*(diff(f3(x), x, x, x))+4.81292307692309*10^20*(diff(f3(x), x))+6.50473846153848*10^30*f1(x)-7.90000000000000*10^(-8)*eta*f1(x)

0.7656923077e-7*(diff(diff(diff(diff(f1(x), x), x), x), x))-0.1567846154e13*(diff(diff(f1(x), x), x))+220.592307692308*(diff(diff(diff(f2(x), x), x), x))-0.3529476923e22*(diff(f2(x), x))+43.7538461538462*(diff(diff(diff(f3(x), x), x), x))+0.4812923077e21*(diff(f3(x), x))+0.6504738462e31*f1(x)


PDE[222] := 2.14211538461539*10^(-8)*(diff(f2(x), x, x, x, x))-1.64988461538462*10^12*(diff(f2(x), x, x))+7.90486153846156*10^30*f2(x)-220.592307692308*(diff(f1(x), x, x, x))+3.52947692307693*10^21*(diff(f1(x), x))-5.94323076923080*10^11*(diff(f3(x), x, x))+5.13378461538463*10^30*f3(x)-7.90000000000000*10^(-8)*eta*f2(x)

0.2142115385e-7*(diff(diff(diff(diff(f2(x), x), x), x), x))-0.1649884615e13*(diff(diff(f2(x), x), x))+0.7904861538e31*f2(x)-220.592307692308*(diff(diff(diff(f1(x), x), x), x))+0.3529476923e22*(diff(f1(x), x))-0.5943230769e12*(diff(diff(f3(x), x), x))+0.5133784615e31*f3(x)


PDE[333] := -6.38076923076924*10^(-31)*(diff(f3(x), x, x, x, x, x, x))+9.66537046153848*10^(-8)*(diff(f3(x), x, x, x, x))-3.10154753538461*10^12*(diff(f3(x), x, x))-43.7538461538462*(diff(f1(x), x, x, x))-4.81292307692309*10^20*(diff(f1(x), x))-5.94323076923080*10^11*(diff(f2(x), x, x))+5.13378461538463*10^30*f2(x)+2.29989058707693*10^31*f3(x)-7.90105333333333*10^(-8)*omega^2*f3(x)+6.58333333333333*10^(-31)*eta*(diff(f3(x), x, x))

-0.6380769231e-30*(diff(diff(diff(diff(diff(diff(f3(x), x), x), x), x), x), x))+0.9665370462e-7*(diff(diff(diff(diff(f3(x), x), x), x), x))-0.3101547535e13*(diff(diff(f3(x), x), x))-43.7538461538462*(diff(diff(diff(f1(x), x), x), x))-0.4812923077e21*(diff(f1(x), x))-0.5943230769e12*(diff(diff(f2(x), x), x))+0.5133784615e31*f2(x)+0.2299890587e32*f3(x)-0.7901053333e-7*omega^2*f3(x)


bcs := {f1(0) = 0, f1(L) = 0, f2(0) = 0, f2(L) = 0, f3(0) = 0, f3(L) = 0, ((D@@1)(f1))(0) = 0, ((D@@1)(f1))(L) = 0, ((D@@1)(f2))(0) = 0, ((D@@1)(f2))(L) = 0, ((D@@1)(f3))(0) = 0, ((D@@1)(f3))(L) = 0, ((D@@2)(f3))(0) = 0, ((D@@2)(f3))(L) = 0}

{f1(0) = 0, f1(1/50000000) = 0, f2(0) = 0, f2(1/50000000) = 0, f3(0) = 0, f3(1/50000000) = 0, (D(f1))(0) = 0, (D(f1))(1/50000000) = 0, (D(f2))(0) = 0, (D(f2))(1/50000000) = 0, (D(f3))(0) = 0, (D(f3))(1/50000000) = 0, ((D@@2)(f3))(0) = 0, ((D@@2)(f3))(1/50000000) = 0}




1 2 3 4 5 6 7 Last Page 1 of 250