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.

We’ve just released a major new version of MapleSim. The MapleSim 2017 family of products provides new and improved model development and analysis tools, expands modeling scope, introduces new deployment options, and strengthens toolchain connectivity.  Here are some highlights:

  • The new Initialization Diagnostics App further simplifies the initialization task by helping you determine how your initial values are computed and what you need to do to adjust them.
     
  • The new Modal Analysis App helps you explore and understand the natural vibration modes of your mechanism, so you can determine how to reduce the vibration in the final product. 
     
  • Over 100 new components include expansions to the Electrical and Magnetic libraries.
     
  • A new Modelica® code editor makes it easier to create Modelica-based custom components.
     
  • The MapleSim Heat Transfer Library from CYBERNET, a new add-on component library, provides a comprehensive view into heat transfer effects in your model, enabling you to refine your  design to improve performance and avoid overheating.
     
  • The new MapleSim Explorer product provides a cost-effective deployment solution that allows you to make MapleSim models available to more people in your organization.

 

There’s more, of course.  See What’s New in MapleSim for lots more details.

eithne

A project that I have been working on is adding some functionality for Cluster Analysis to Maple (a small part of a much bigger project to increase Maple’s toolkit for exploratory data mining and data analysis). The launch of the MapleCloud package manager gave me a way to share my code for the project as it evolves, providing others with some useful new tools and hopefully gathering feedback (and collaborators) along the way.

At this point, there aren’t a lot of commands in the ClusterAnalysis package, but I have already hit upon several interesting applications. For example, while working on a command for plotting clusters of points, one problem I encountered was how to draw the minimal volume enclosing ellipsoid around a group (or cluster) of points. After doing some research, I stumbled upon Khachiyan’s Algorithm, which related to solving linear programming problems with rational data. The math behind this is definitely interesting, but I’m not going to spend any time on it here. For further reading, you can explore the following:

Khachiyan’s Algorithm had previously been applied in some other languages, but to the best of my knowledge, did not have any Maple implementations. As such, the following code is an implementation of Khachiyan’s Algorithm in 2-D, which could be extended to N-dimensional space rather easily.

This routine accepts an Nx2 dataset and outputs either a plot of the minimum volume enclosing ellipsoid (MVEE) or a list of results as described in the details for the ‘output’ option below.

MVEE( X :: DataSet, optional arguments, additional arguments passed to the plotting command );

The optional arguments are as follows:

  • tolerance : realcons;  specifies the convergence criterion
  • maxiterations : posint; specifies the maximum number of iterations
  • output : {identical(data,plot),list(identical(data,plot))}; specifies the output. If output includes plot, then a plot of the enclosing ellipsoid is returned. If output includes data, then the return includes is a list containing the matrix A, which defines the ellipsoid, the center of the ellipse, and the eigenvalues and eigenvectors that can be used to find the semi-axis coordinates and the angle of rotation, alpha, for the ellipse.
  • filled : truefalse; specifies if the returned plot should be filled or not

Code:

#Minimum Volume Enclosing Ellipsoid
MVEE := proc(XY, 
              {tolerance::positive:= 1e-4}, #Convergence Criterion
              {maxiterations::posint := 100},
              {output::{identical(data,plot),list(identical(data,plot))} := data},
              {filled::truefalse := false} 
            )

    local alpha, evalues, evectors, i, l_error, ldata, ldataext, M, maxvalindex, n, ncols, nrows, p1, semiaxes, stepsize, U, U1, x, X, y;
    local A, center, l_output; #Output

    if hastype(output, 'list') then
        l_output := output;
    else
        l_output := [output];
    end if;

    kernelopts(opaquemodules=false):

    ldata := Statistics:-PreProcessData(XY, 2, 'copy');

    nrows, ncols := upperbound(ldata);
    ldataext := Matrix([ldata, Vector[column](nrows, ':-fill' = 1)], 'datatype = float');

    if ncols <> 2 then
        error "expected 2 columns of data, got %1", ncols;
    end if;

    l_error := 1;

    U := Vector[column](1..nrows, 'fill' = 1/nrows);

    ##Khachiyan Algorithm##
    for n to maxiterations while l_error >= tolerance do

        X := LinearAlgebra:-Transpose(ldataext) . LinearAlgebra:-DiagonalMatrix(U) . ldataext;
        M := LinearAlgebra:-Diagonal(ldataext . LinearAlgebra:-MatrixInverse(X) . LinearAlgebra:-Transpose(ldataext));
        maxvalindex := max[index](map['evalhf', 'inplace'](abs, M));
        stepsize := (M[maxvalindex] - ncols - 1)/((ncols + 1) * (M[maxvalindex] - 1));
        U1 := (1 - stepsize) * U;
        U1[maxvalindex] := U1[maxvalindex] + stepsize;
        l_error := LinearAlgebra:-Norm(LinearAlgebra:-DiagonalMatrix(U1 - U));
        U := U1;

    end do;

    A := (1/ncols) * LinearAlgebra:-MatrixInverse(LinearAlgebra:-Transpose(ldata) . LinearAlgebra:-DiagonalMatrix(U) . ldata - (LinearAlgebra:-Transpose(ldata) . U) . LinearAlgebra:-Transpose((LinearAlgebra:-Transpose(ldata) . U)));
    center := LinearAlgebra:-Transpose(ldata) . U;
    evalues, evectors := LinearAlgebra:-Eigenvectors(A);
    evectors := evectors(.., sort[index](1 /~ (sqrt~(Re~(evalues))), `>`, ':-output' = ':-permutation'));
    semiaxes := sort(1 /~ (sqrt~(Re~(evalues))), `>`);
    alpha := arctan(Re(evectors[2,1]) / Re(evectors[1,1]));

    if l_output = [':-data'] then
        return A, center, evectors, evalues;
    elif has( l_output, ':-plot' ) then
            x := t -> center[1] + semiaxes[1] * cos(t) * cos(alpha) - semiaxes[2] * sin(t) * sin(alpha);
            y := t -> center[2] + semiaxes[1] * cos(t) * sin(alpha) + semiaxes[2] * sin(t) * cos(alpha);
            if filled then
                p1 := plots:-display(subs(CURVES=POLYGONS, plot([x(t), y(t), t = 0..2*Pi], ':-transparency' = 0.95, _rest)));
            else
                p1 := plot([x(t), y(t), t = 0..2*Pi], _rest);
            end if;
        return p1, `if`( has(l_output, ':-data'), op([A, center, evectors, evalues]), NULL );
    end if;

end proc:

 

You can run this as follows:

M:=Matrix(10,2,rand(0..3)):

plots:-display([MVEE(M,output=plot,filled,transparency=.3),
                plots:-pointplot(M, symbol=solidcircle,symbolsize=15)],
size=[0.5,"golden"]);

 

 

As it stands, this is not an export from the “work in progress” ClusterAnalysis package – it’s actually just a local procedure used by the ClusterPlot command. However, it seemed like an interesting enough application that it deserved its own post (and potentially even some consideration for inclusion in some future more geometry-specific package). Here’s an example of how this routine is used from ClusterAnalysis:

with(ClusterAnalysis);

X := Import(FileTools:-JoinPath(["datasets/iris.csv"], base = datadir));

kmeans_results := KMeans(X[[`Sepal Length`, `Sepal Width`]],
    clusters = 3, epsilon = 1.*10^(-7), initializationmethod = Forgy);

ClusterPlot(kmeans_results, style = ellipse);

 

 

The source code for this is stored on GitHub, here:

https://github.com/dskoog/Maple-ClusterAnalysis/blob/master/src/MVEE.mm

Comments and suggestions are welcomed.

 

If you don’t have a copy of the ClusterAnalysis package, you can install it from the MapleCloud window, or by running:

PackageTools:-Install(5629844458045440);

 

This is Maple:

These are some primes:

22424170499, 106507053661, 193139816479, 210936428939, 329844591829, 386408307611,
395718860549, 396412723027, 412286285849, 427552056871, 454744396991, 694607189303,
730616292977, 736602622363, 750072072203, 773012980121, 800187484471, 842622684461

This is a Maple prime:


In plain text (so you can check it in Maple!) that number is:

111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111116000808880608061111111111111111111111111111111
111111111111111111111111111866880886008008088868888011111111111111111111111111
111111111111111111111116838888888801111111188006080011111111111111111111111111
111111111111111111110808080811111111111111111111111118860111111111111111111111
111111111111111110086688511111111111111111111111116688888108881111111111111111
111111111111111868338111111111111111111111111111880806086100808811111111111111
111111111111183880811111111111111111100111111888580808086111008881111111111111
111111111111888081111111111111111111885811188805860686088111118338011111111111
111111111188008111111111111111111111888888538888800806506111111158500111111111
111111111883061111111111111111111116580088863600880868583111111118588811111111
111111118688111111111001111111111116880850888608086855358611111111100381111111
111111160831111111110880111111111118080883885568063880505511111111118088111111
111111588811111111110668811111111180806800386888336868380511108011111006811111
111111111088600008888688861111111108888088058008068608083888386111111108301111
111116088088368860808880860311111885308508868888580808088088681111111118008111
111111388068066883685808808331111808088883060606800883665806811111111116800111
111581108058668300008500368880158086883888883888033038660608111111111111088811
111838110833680088080888568608808808555608388853680880658501111111111111108011
118008111186885080806603868808888008000008838085003008868011111111111111186801
110881111110686850800888888886883863508088688508088886800111111111111111118881
183081111111665080050688886656806600886800600858086008831111111111111111118881
186581111111868888655008680368006880363850808888880088811111111111111111110831
168881111118880838688806888806880885088808085888808086111111111111111111118831
188011111008888800380808588808068083868005888800368806111111111111111111118081
185311111111380883883650808658388860008086088088000868866808811111111111118881
168511111111111180088888686580088855665668308888880588888508880800888111118001
188081111111111111508888083688033588663803303686860808866088856886811111115061
180801111111111111006880868608688080668888380580080880880668850088611111110801
188301111111111110000608808088360888888308685380808868388008006088111111116851
118001111111111188080580686868000800008680805008830088080808868008011111105001
116800111111118888803380800830868365880080868666808680088685660038801111180881
111808111111100888880808808660883885083083688883808008888888386880005011168511
111688811111111188858888088808008608880856000805800838080080886088388801188811
111138031111111111111110006500656686688085088088088850860088888530008888811111
111106001111111111111111110606880688086888880306088008088806568000808508611111
111118000111111111111111111133888000508586680858883868000008801111111111111111
111111860311111111111111111108088888588688088036081111860803011111111863311111
111111188881111111111111111100881111160386085000611111111888811111108833111111
111111118888811111111111111608811111111188680866311111111111811111888861111111
111111111688031111111111118808111111111111188860111111111111111118868811111111
111111111118850811111111115861111111111111111888111111111111111080861111111111
111111111111880881111111108051111111111111111136111111111111188608811111111111
111111111111116830581111008011111111111111111118111111111116880601111111111111
111111111111111183508811088111111111111111111111111111111088880111111111111111
111111111111111111600010301111111111111111111111111111688685811111111111111111
111111111111111111111110811801111111111111111111158808806881111111111111111111
111111111111111111111181110888886886338888850880683580011111111111111111111111
111111111111111111111111111008000856888888600886680111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111

This is a 3900 digit prime number. It took me about 400 seconds of computation to find using Maple.  Inspired by the Corpus Christi College Prime, I wanted to make an application in Maple to make my own pictures from primes.

It turns out be be really easy to do because prime numbers are realy quite common.  If you have a piece of ascii art where all the characters are numerals, you could just call on it and get a prime number that is still ascii art with a couple digits in the corner messed up (for a number this size, I expect fewer than 10 of the least significant digits would be altered).  You may notice, however, that my Maple Prime has beautiful corners!  This is possible because I found the prime in a slightly different way.

To get the ascii art in Maple, I started out by using to import ( )  and process the original image.  First then and to get a nice 78 pixel wide image.  Then to make it a pure 1-bit black or white image.

Then, from the image, I create a new Array of the decimal digits of the ascii art and my prime number.  For each of the black pixels I randomly use one of the digits or and for the white pixels (the background) I use 's.  Now I convert the Array to a large integer and test if it is prime using (it probably isn't) so, I just randomly change one of the black pixels to a different digit (there are 4 other choices) and call again. For the Maple Prime I had to do this about 1000 times before I landed on a prime number. That was surprisingly fast to me! It is a great object lesson in how dense the prime numbers really are.

So that you can join the fun without having to replicate my work, here is a small interactive Maple document that you can use to find prime numbers that draw ascii art of your source images. It has a tool that lets you preview both the pixelated image and the initial ascii art before you launch the search for the prime version.

Prime_from_Picture.mw

With the launch of Maple 2017, we really wanted to showcase some of the amazing people that work so hard to make Maple. We wanted to introduce our developers to our awesome user community, put names to faces, and have some fun in the process.

We’ll be doing this Q&A session from time to time with team members from the Maple, MapleSim, Maple T.A. and Möbius development groups.

My first Q&A is with Math Architect, Paulina Chin. If you’re a regular MaplePrimes user, you’ll know her as @pchin. Let’s get right into the questions.

  1. What do you do at Maplesoft?

I’m a member of the Math Software group. Much of my time goes toward developing and maintaining parts of the Maple library, but I occasionally develop Maple content related to math education as well.

  1. What did you study in school?

I started in Applied Mathematics and then continued with graduate work in Computer Science and Electrical Engineering. My graduate and post-doc research  were in the area of numeric computation.

  1. What area(s) of Maple are you currently focusing on in your development?

For many years, I’ve been working on the plotting and typesetting features in Maple. I also work on the Grading package and related applications.

  1. What’s the coolest feature of Maple that you’ve had a hand in developing?

The Typesetting (2-D math) system in Maple is undoubtedly the most challenging and complex project I’ve worked on, and it involves careful coordination among a team of developers. I’m not sure others would see it as cool, because the features are not flashy like some of the visualization features I’ve worked on. However, whenever we implement a new feature and it works well, it’s really satisfying because it makes mathematics that much more accessible to users.

  1. What do you like most about working at Maplesoft? How long have you worked here?

I’ve been at Maplesoft 17 years and my work has never been boring. I especially enjoy being surrounded by a very diverse and dedicated group of co-workers, and it’s terrific when we get new students, interns and visitors who come from all parts of the world. All of these people contribute to the great atmosphere here.

  1. Favorite hobby?

I like discussing books as much as reading them. I run several book clubs, including the one here at Maplesoft. I also enjoy working with young people and volunteer at my daughter’s high school, helping students train for programming contests.

  1. What do you like on your pizza?

Pineapple and hot peppers.

  1. What’s your favourite movie?

I have so many favourites that it’s hard to answer this question. At the moment, I might say Notorious, The Empire Strikes Back, and Annie Hall, but ask me again next week and I’ll probably give you a different list.

  1. What skill would you love to learn? (That you haven’t already) Why?

I wish I could play a musical instrument. I know a number of highly skilled amateur and professional musicians, and I’ve always admired their abilities.

  1. Who’s your favourite mathematician?

I’d have to say it’s Euclid. When I was in Grade 6, my teacher saw I was bored with the math exercises we were doing and gave me a book on geometric constructions. That was the start of a life-long fascination with math. I even named my cat Euclid but she didn’t live up to the name, as she turned out to be lovable but not very smart.

On 5/July/2017, Kitonum responded to the 3/July/2017 MaplePrimes question "How to perform double integration over subdomain" by providing code for a procedure IntOverDomain that implements Green's theorem applied to a planar region whose boundary is a simple, closed, rectifiable, oriented curve (SCROC by some authors).

I was intrigued. First, this is a significant extension of existing Maple functionalities. Second, the implementation admits boundaries defined piecewise with sections defined parametrically; or sections that are polygonal lines defined by a list of nodes.

But how was the line integral around such boundaries coded? In the worksheet "IntOverDomain_Deconstructed," I summarize the existing Maple functionality for implementing iterated double integrals over specified domains, then analyze how Kitonum coded Green's theorem as an extension of Maple's capabilities. After recognizing the great coding skills of Kitonum, I conclude with a short wishlist of related extensions that I would like to see added to Maple in the future.

 

Download the worksheet: IntOverDomain_Deconstructed.mw

As a momentary diversion, I threw together a package that downloads map images into Maple using the Google Static Maps API.

If you have Maple 2017, you can install the package using the MapleCloud Package Manager or by executing PackageTools:-Install("5769608062566400").

This worksheet has several examples, but I thought I'd share a few below .

Here's the Maplesoft office

 

Let's view a roadmap of Waterloo, Ontario.

 

The package features over 80 styles for roadmaps. These are examples of two styles (the second is inspired by the art of Piet Mondrian and the De Stijl movement)

 

You can also find the longitude and latitude of a location (courtesy of Google's Geocoding API). Maple returns a nested list if it finds multiple locations.

 

The geocoding feature can also be used to add points to Maple 2017's built-in world maps.

 

Let me know what you think!

A couple of weeks ago, I recorded a short video that discussed various applications for the Statistics:-Fit command. One of the more interesting examples examined how manually adjusting the number of parameters used for a regression model affected the resulting adjusted r-squared value.

I won’t go into detail about r-squared here, but to briefly summarize: In a linear regression model, r-squared measures the proportion of the variation in a model's dependent variable explained by the independent variables. Basically, r-squared gives a statistical measure of how well the regression line approximates the data. R-squared values usually range from 0 to 1 and the closer it gets to 1, the better it is said that the model performs as it accounts for a greater proportion of the variance (an r-squared value of 1 means a perfect fit of the data). When more variables are added, r-squared values typically increase. They can never decrease when adding a variable; and if the fit is not 100% perfect, then adding a variable that represents random data will increase the r-squared value with probability 1. The adjusted r-squared attempts to account for this phenomenon by adjusting the r-squared value based on the number of independent variables in the model.

The formula for the adjusted r-squared is:

Where:

n is the number of points in the data sample

k is the number of independent variables in the model excluding the constant

By taking the number of independent variables into consideration, the adjusted r-squared behaves different than r-squared; adding more variables doesn’t necessarily produce better fitting models. In many cases, more variables can often lead to lower adjusted r-squared values. In particular, if you add a variable representing random data, the expected change in the adjusted r-squared is 0.

As such, the adjusted r-squared has a slightly different interpretation than the r-squared. While r-squared is perceived to give an indication of the measure of fit for a chosen regression model, the adjusted r-squared is perceived more as a comparative tool that can be useful for picking variables and designing models that may require less predictors than other models. The science of “gaming” models is a broad topic, so I won’t go into any more detail here, but there’s lots of great information out there if you are looking to learn more (here’s a good place to start).

The following example adjusts a fitted model by adding or removing variables in order to find better adjusted r-squared values.

with(Statistics):

The Import command reads a datafile into a new DataFrame.

ExperimentalData := Import(FileTools:-JoinPath(["Excel", "ExperimentalData.xls"], base = datadir));

The dataset has seven variables: time and experimental readings for 6 various concentrations. Removing “time” from our variable set, the convert command converts the values in the DataFrame to a Matrix of values.

ExMat := convert( ExperimentalData, Matrix )[..,2..7];

We start by fitting a model that includes predicting variables for each of the columns of data. We mark “Concentration A” as our dependent variable.

Fit( C + C2*v + C3*w + C4*x + C5*y + C6*z, ExMat[..,2..6], ExMat[..,1], [v,w,x,y,z], summarize=embed ):

From the above, we can observe that both the r-squared and adjusted r-squared are reasonably high, however only one of the coefficient values has a significant p-value, C3.

Note: Maple shows all p-values less than 0.05 in bold.

Let's try to fit the data again, this time keeping the two coefficients with the lowest p-values and the intercept.

Fit( C + C3*v + C5*w, ExMat[..,[3,5]], ExMat[..,1], [v,w], summarize=embed ):

From the above, we can see that the r-squared value does go down, however the adjusted r-squared goes up! Let's fit the model one last time to see if removing C5 increases or decreases the adjusted r-squared.

Fit( C + C3*v, ExMat[..,3], ExMat[..,1], [v], summarize=embed ):

We can see that the final adjusted r-squared value is lower than the previous two, so we are probably better to keep the additional C5 coefficient value.

You can see this example as well as a couple of other examples of using the Fit command in the following video:

You can download the worksheet here: https://www.maplesoft.com/applications/view.aspx?SID=154246

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

This Saturday is Canada’s 150th birthday. As you can imagine, the country has been paying a lot more attention to this year’s anniversary than our usual low key approach, and as a Canadian company, we at Maplesoft decided to join in the fun.

And what better way for Maplesoft to celebrate Canada’s birthday than to create a maple leaf in Maple! 

So here is a maple leaf inspired by the Canada 150 logo, which was created by Ariana Cuvin, a student at the University of Waterloo and former co-op here at Maplesoft:

Here’s the code to reproduce this plot (more details can be found in this follow up post):

p:=thickness=5,color="#DC2828":
plots:-display(

    plot([[-.216,-.216],[0,0],[-.216,.216],[-.81,0],[-.216,-.216]],p),  
    plot([[-.55,.095],[-.733,.236],[-.49,.245]],p),
    plot([[-.376,0],[0,0],[0,.376],[-.705,.705],[-.376,0]],p),
    plot([[-.342,.536],[-.355,.859],[-.138,.622]],p),
    plot([[-.267,.267],[0,0],[.267,.267],[0,1],[-.267,.267]],p),
    plot([[.342,.536],[.355,.859],[.138,.622]],p),
    plot([[0.,.376],[0,0],[.376,0],[.705,.705],[0.,.376]],p),
    plot([[.55,.095],[.733,.236],[.49,.245]],p),
    plot([[.216,.216],[0,0],[.216,-.216],[.81,0],[.216,.216]],p),
    plot([[0,-.5],[0,0]],p),

scaling=constrained,view=[-1..1,-.75..1.25],axes=box);

 

Know other ways to plot a maple leaf in Maple?  If so, please share them below - we’d love to see them!

While preparing for a recent webinar, I ran across something that didn't behave the same way in Maple 2017 as it did in previous releases. In particular, it was the failure of the over-dot notation for t-derivatives to display with the over-dot. Turns out that this is due to a change in behavior of typesetting that was detailed in the What's New page for Maple 2017, a page I had looked at many times in the last few months, but apparently didn't comprehend fully. The details are below.

Prior to Maple 2017, under the aegis of extended typesetting, the following two lines of code would alert Maple that the over-dot notation for t-derivatives should be used in the output display.

However, this changed in Maple 2017. Extended typesetting is now the default, but these two lines of code are no longer sufficient to induce Maple to display the over-dot in output. Indeed, we would now have

as output. The change is documented in the following paragraph

lifted from the help page 

Thus, it now takes the additional command

to induce Maple to display the over-dot notation in output.

I must confess that, even though I pored over the "What's New" pages for Maple 2017, I completely missed the import of this change to typesetting. I stumbled over the issue while preparing for an upcoming webinar, and frantically sent out help calls to the developers back in the building. Fortunately, I was quickly set straight on the matter, but was disappointed in my own reading of all the implications of the typesetting changes in Maple 2017. So perhaps this note will alert other users to the changes, and to the help page wherein one finds those essential bits of information needed to complete the tasks we set for ourselves.

And one more thing - I was cautioned that the "= true" was essential. Without it, the command would act as a query, echoing the present state of the setting, and not making the desired change to the setting.
 

Maple 2017 has launched!

Maple 2017 is the result of hard work by an enthusiastic team of developers and mathematicians.

As ever, we’re guided by you, our users. Many of the new features are of a result of your feedback, while others are passion projects that we feel you will find value in.

Here’s a few of my favourite enhancements. There’s far more that’s new - see What’s New in Maple 2017 to learn more.

 

MapleCloud Package Manager

Since it was first introduced in Maple 14, the MapleCloud has made thousands of Maple documents and interactive applications available through a web interface.

Maple 2017 completely refreshes the MapleCloud experience. Allied with a new, crisp, interface, you can now download and install user-created packages.

Simply open the MapleCloud interface from within Maple, and a mouse click later, you see a list of user-created packages, continuously updated via the Internet. Two clicks later, you’ve downloaded and installed a package.

This completely bypasses the traditional process of searching for and downloading a package, copying to the right folder, and then modifying libname in Maple. That was a laborious process, and, unless I was motivated, stopped me from installing packages.

The MapleCloud hosts a growing number of packages.

Many regular visitors to MaplePrimes are already familiar with Sergey Moiseev’s DirectSearch package for optimization, equation solving and curve fitting.

My fellow product manager, @DSkoog has written a package for grouping data into similar clusters (called ClusterAnalysis on the Package Manager)

Here’s a sample from a package I hacked together for downloading maps images using the Google Maps API (it’s called Google Maps and Geocoding on the Package Manager).

You’ll also find user-developed packages for exploring AES-based encryption, orthogonal series expansions, building Maple shell scripts and more.

Simply by making the process of finding and installing packages trivially easy, we’ve opened up a new world of functionality to users.

Maple 2017 also offers a simple method for package authors to upload workbook-based packages to the MapleCloud.

We’re engaging with many package authors to add to the growing list of packages on the MapleCloud. We’d be interested in seeing your packages, too!

 

Advanced Math

We’re committed to continually improving the core symbolic math routines. Here area few examples of what to expect in Maple 2017.

Resulting from enhancements to the Risch algorithm, Maple 2017 now computes symbolic integrals that were previously intractable

Groeber:-Basis uses a new implementation of the FGLM algorithm. The example below runs about 200 times faster in Maple 2017.

gcdex now uses a sparse primitive polynomial remainder sequence together.  For sparse structured problems the new routine is orders of magnitude faster. The example below was previously intractable.

The asympt and limit commands can now handle asymptotic cases of the incomplete Γ function where both arguments tend to infinity and their quotient remains finite.

Among several improvements in mathematical functions, you can now calculate and manipulate the four multi-parameter Appell functions.

 

Appel functions are of increasing importance in quantum mechanics, molecular physics, and general relativity.

pdsolve has seen many enhancements. For example, you can tell Maple that a dependent variable is bounded. This has the potential of simplifying the form of a solution.

 

Plot Builder

Plotting is probably the most common application of Maple, and for many years, you’ve been able to create these plots without using commands, if you want to.  Now, the re-designed interactive Plot Builder makes this process easier and better.

When invoked by a context menu or command on an expression or function, a panel slides out from the right-hand side of the interface.

 

Generating and customizing plots takes a single mouse click. You alter plot types, change formatting options on the fly and more.

To help you better learn Maple syntax, you can also display the actual plot command.

Password Protected Content

You can distribute password-protected executable content. This feature uses the workbook file format introduced with Maple 2016.

You can lock down any worksheet in a Workbook. But from any other worksheet, you can send (author-specified) parameters into the locked worksheet, and extract (author-specified) results.

 

Plot Annotations

You can now get information to pop up when you hover over a point or a curve on a plot.

In this application, you see the location and magnitude of an earthquake when you hover over a point

Here’s a ternary diagram of the color of gold-silver-copper alloys. If you let your mouse hover over the points, you see the composition of the points

Plot annotations may seem like a small feature, but they add an extra layer of depth to your visualizations. I’ve started using them all the time!

 

Engineering Portal

In my experience, if you ask an engineer how they prefer to learn, the vast majority of them will say “show me an example”. The significantly updated Maple Portal for Engineers does just that, incorporating many more examples and sample applications.  In fact, it has a whole new Application Gallery containing dozens of applications that solve concrete problems from different branches of engineering while illustrating important Maple techniques.

Designed as a starting point for engineers using Maple, the Portal also includes information on math and programming, interface features for managing your projects, data analysis and visualization tools, working with physical and scientific data, and a variety of specialized topics.

 

Geographic Data

You can now generate and customize world maps. This for example, is a choropleth of European fertility rates (lighter colors indicate lower fertility rates)

You can plot great circles that show the shortest path between two locations, show varying levels of detail on the map, and even experiment with map projections.

A new geographic database contains over one million locations, cross-referenced with their longitude, latitude, political designation and population.

The database is tightly linked to the mapping tools. Here, we ask Maple to plot the location of country capitals with a population of greater than 8 million and a longitude lower than 30.

 

There’s much more to Maple 2017. It’s a deep, rich release that has something for everyone.

Visit What’s New in Maple 2017 to learn more.

Meta Keijzer-de Ruijter is a Project Manager for Digital Testing at TU Delft, an institution that is at the forefront of the digital revolution in academic institutions. Meta has been using Maple T.A. for years, and offered to provide her insight on the role that automated testing & assessment played in improving student pass rates at TU Delft.

 

Modern technology is transforming many aspects of the world we live in, including education. At TU Delft in the Netherlands, we have taken a leadership role in transforming learning through the use of technology. Our ambition is to get to a point where we are offering fully digitalized degree programs and we believe digital testing and assessment can play an important role in this process.

 

A few years ago we launched a project with the goal of using digital testing to drastically improve the pass rates in our programs. Digital testing helps organize testing more efficiently for a larger number of students, addressing issues of overcrowded classrooms, and high teaching workloads. To better facilitate this transformation, we decided to adopt Maple T.A., the online testing and assessment suite from Maplesoft. Maple T.A. also provides anytime/anywhere testing, allowing students to take tests digitally, even from remote locations.

 

Regular and repeated testing produces the best learning results because progressive monitoring offers instructors the possibility of making adjustments throughout the course. The randomization feature in Maple T.A. provides each student with an individual set of problems, reducing the likelihood that answers will be copied. Though Maple T.A. is specialized in mathematics, it also supports more common question types like multiple choice, multiple selection, fill-in-the-blanks and hot spot. Maple T.A.’s question randomization, possibilities for multiple response fields per question and question workflow (adaptive questions) are superior to other options. By offering regular homework assignments and analyzing the results, we gain better insight into the progress of students and the topics that students perceive as difficult. Our lecturers can use this insight to decide whether to repeat particular material or to offer it in another manner. In many courses, preparing and reviewing practice tests comprise an important, yet time-consuming task for lecturers, and Maple T.A. alleviates that burden.

 

At TU Delft, we require all first-year students to take a math entry test using Maple T.A in order to assess the required level of math. Since the assessment of the student’s ability is so heavily dependent upon qualifying tests, it is extremely important for the test to be completed under controlled conditions. In Maple T.A., it is easy to generate multiple versions of the test questions without increasing the burden of review, as the tests are graded immediately. Students that fail the entry test are offered a remedial course in which they receive explanations and complete exercises, under the supervision of student assistants. The use of Maple T.A. facilitates this process without placing additional burden on the teacher. When the practice tests and the associated feedback are placed in a shared item bank in Maple T.A., teachers are able to offer additional practice materials to students with little effort. It makes it considerably easier on us as teachers to be able to use a variety of question types, thus creating a varied test.

 

Each semester, TU Delft offers an English placement test that is taken by approximately 200 students and 50 PhD candidates, in which students are required to formulate their reasons for their program choices or research topics. It used to take four lecturers working full-time for two days to mark the tests and report the results to participants in a timely manner. The digitization of this test has saved us considerable time. The hundred fill-in-the-blank questions are now marked automatically, and we no longer have to decipher handwriting for the open questions!

 

TU Delft is not alone in its emphasis on digital testing; it has a prominent position on the agendas of many institutions in Europe and elsewhere. These institutions are intensively involved in improving, expanding and advocating the positive results from digital testing and digital learning experiences. Online education solutions like Maple T.A. are playing a key role in improving the quality of digital offerings at institutions.

I am very pleased to announce a new user community centered around Maplesoft's online testing and assessment and courseware products. The new site is specifically for instructors and administrators currently using Maple T.A. or Möbius. This community of users are a small, specialised group who we want to bring together so they can share ideas and best practices. To find the community, go to either mapletacommunity.com or mobiuscommunity.com.

"The Maple T.A. Community has grown organically to support new developers as they pool their knowledge and queries. This has resulted in a fluid searchable structure, with answers available for all levels of question - from beginner to pushing the frontiers of what Maple T.A. has been designed to do. Our summer student interns rely on the Community as they become proficient in their question writing skills - and many have become contributors as they realise that they are in a position to teach others. Opening it out more broadly will be great in sharing good practice on a 'need to know now' basis.”

----Professor Nicola Wilkin, University of Birmingham

 

What content is in the community?

The community has many posts from active Maple T.A. and Möbius users from beginners to advanced users. The site is broken down into categories like 'Best Practices' - longer form posts that cover a broader concept in more detail and 'Quick Code snippets' that are small piece of code that you can drop straight into your question algorithms.

Much of the content is openly available and can be found by google, however there is additional content that can only be accessed by members of the community, such as the Maple T.A. school material which teaches you how to author content in Maple T.A. and Möbius.

 

Who runs the community

The community is jointly run by users based at the University of Birmingham, TU Wien, The University of Turin and TU Delft.

 

How does this fit into Mapleprimes?

It began as an offshoot of a private, internal customer forum. As this community grows, the ultimate goal is to eventually roll it into MaplePrimes proper. But this alternative site gave us the quickest way to get up and running. Maple T.A. and Möbius questions and posts are still welcome on MaplePrimes, and will continue to be monitored by Maplesoft.

 

How do I access the community?

You can find the community by going to either mapletacommunity.com or mobiuscommunity.com.

 

Where else can I get support for Maple T.A. and Mobiüs?

Official support for Maple T.A. and Möbius is provided by the wonderful Customer Success Team at Maplesoft. You can contact them at help@maplesoft.com. For other contact methods see www.maplesoft.com/support/.

 

 

I am pleased to announce the public release of Möbius, the online courseware environment that focuses on science, technology, engineering, and mathematics education. After months of extensive pilot testing at select leading academic institutions around the world, Möbius is now available to everyone for your online learning needs.

We are very excited about Möbius. As you can imagine, many of us here at Maplesoft have backgrounds in STEM fields, and we are truly excited to be working on a project that gives students a hands-on approach to learning math-based content.  You can’t learn math (or science, or engineering, or …) just by reading about it or listening to someone talk about it. You have to do it, and that’s what Möbius lets students do, online, with instant feedback.  Not only can students explore concepts interactively, but they can find out immediately what they’ve understood and what they haven’t - not a few hours after the lecture as they are reviewing their notes, not two weeks later when they get their assignments back, but while they are in the middle of learning the lesson.

During its pilot phase, Möbius was used by multiple institutions around the world for a variety of projects, such as preparing students in advance for their first year math and engineering courses, and for complete online courses.  Over one hundred thousand students have already used Möbius, and the experiences of these students and their instructors has fed back into the development process, resulting in this public release.  You can read about the experiences of the University of Waterloo, the University of Birmingham, and the Perimeter Institute for Theoretical Physics on our web site.

We are also happy to announce that Maplesoft has partnered with the University of Waterloo, one of the largest institutions in the world for STEM education, to provide institutions and professors with rich online courses and materials that enable students to learn by doing.  These Möbius courses are created by experts at the University of Waterloo for use by their own students and for their outreach programs, and will be made available to other Möbius users.  Course materials range from late high school to the graduate level, with initial offerings available soon and many more to follow.

Visit the Möbius section of our web site for lots more information, including videos, whitepapers, case studies, and upcoming user summits.

Ilias Kotsireas is a Professor and Director of the CARGO lab at Wilfrid Laurier University, in Waterloo Ontario.

Throughout my career as a teacher, I’ve had the opportunity to work with students from around the globe. I’ve been able to work with students in other countries, immersing myself in their culture and learning environment. This has allowed me to experience the differences in educational delivery first hand, and to assess how education is viewed in other parts of the world.

On more than one occasion, I’ve visited the city of Guangzhou, China, to teach summer and winter school courses, beginning in 2007 and most recently in 2015 and 2016. During this time, I have witnessed tremendous growth in the development of Chinese Universities, as well as Chinese culture as a whole.  For example, the two largest supercomputers in the world - according to the website www.top500.org  - are located in China.  Another indication of the scale of this extraordinary growth is the fact that China currently has more than 2,000 universities, government research facilities and laboratories.  Furthermore, China Central Television (CCTV) programs report that China is planning the creation of an additional 10 mega-cities, each comparable in size to Shanghai.

Ilias Kotserias stands with students and fellow professors at South China Normal University (SCNU) in Guangzhou, China.

 

Summer and winter school courses in China are incredibly intensive. Such courses can run for one or two weeks and include two lectures per day, one on the morning and one in the afternoon. A tremendous amount of material must be covered in a short amount of time to accommodate the entire course.

Overall, my experiences have shown that students in China are very enthusiastic about education. They are heavily engaged with the learning materials and often spend time with professors at the conclusion of a lecture to converse and ask questions about what they have just learned. Class sizes are significantly smaller and there is a lot of one-on-one time with students. Students in China take their studies very seriously; they are very focused and motivated to do well in their studies, and they bring a great deal of knowledge and curiosity to the classroom.  Professors cannot gloss over material or deliver a scripted lecture. Students hold professors accountable, and expect them to be knowledgeable and have a strong understanding of the material. They have a strong desire to learn and gain experiences and relevant skills that they can carry forward with them in their educational and professional careers.

Maplesoft graciously offered short term licenses to my students in China, so they could use Maple in the mathematics courses I was teaching. Using Maple allowed me to continue using an experimental approach to teaching that I use for my students back home in Canada.  This approach encourages students to start with simple experimentation that may also contain visual components, develop a plausible conjecture and subsequently attempt to solve it step by step.  This promotes a “learn by doing” paradigm that promotes active learning and helps students better understand key mathematical concepts. In a delightful episode, one Chinese student told me “I don’t understand your English accent,” but in teaching with Maple there are no accents I need to worry about!  Chinese students are inquisitive, respectful and conscientious; it is an absolutely gratifying experience working with them. 

I was first introduced to Maple when I was completing my Masters and Ph.D in France in the late 1990s. When I began teaching in 2001, I introduced Maple into my classrooms to improve my students’ ability to learn the materials, understand difficult concepts, and to create more sustainable engagement with them. Initially, it took some work to convince them to use Maple, as it was not among the conventional learning methods they were used to. Eventually students came to embrace Maple as a learning tool and I was able to use visual and interactive examples to engage them. With Maple, experimentation is at your fingertips and it allows me to incorporate an example-driven learning experience for my students.

It was a valuable experience to work with students from another culture and be able to engage them using the same method I use to engage my students back home. Maple is not only a powerful and convenient teaching tool, but it can also assist in bridging cultural gaps and creating a learning experience that is uniform across the globe.

2 3 4 5 6 7 8 Last Page 4 of 23