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.

While many of us in North America were getting re-acquainted with the Fall routine, Maplesoft was involved in a major event, the Maple T.A. and Möbius User Summit. In the past, the Summit has alternated locations between Europe and North America, but following the success of last year’s Summit in Vienna, Austria, we recently broke new ground and expanded the reach of the event to include more countries around the world in order to localize the themes and to meet the growing demand from educators to take learning online.

The first event, organized by Cybernet, took place in China. The second of five events on the calendar took place in London, England. Held from September 7-8, this installment was a major stop in the tour, drawing many residents of the UK to hear talks from some of our strongest proponents of Möbius in Europe. The London Summit drew several delegates from the UK alone, many of whom were completely new contacts for us! Other attendees came from as far away as Russia, Pakistan, Sri Lanka, and Australia, as well as some from Sweden, Denmark, Italy and the Netherlands. The turnout was brilliant!

Make progress or make excuses

The bulk of the London Summit was divided into three driving themes: Showcasing the Successful Delivery of Online Education; Best Practices for Digital Testing and Assessment; and Creating Engaging and Interactive Online STEM Content. Each theme consisted of 3 user presentations delivered by representatives from renowned institutions like University of Manchester, University of Birmingham, London Imperial College, University of Waterloo, Chalmers University of Technology, and more.

Maplesoft Application Engineer Surak Perera may have inadvertently set the tone for the day when he kicked off theme 1 with a quote from Tony Robbins: Make progress, or make excuses. One thing’s for sure – excuses were nowhere to be found at One Moorgate Place. The audience was captivated and engaged, and wasted no time bouncing questions and ideas off of our presenters. In fact, they were so eager to learn from our Maple T.A. and Möbius users that Jonny Zivku, Maple T.A. Product Manager, had to interject several times in order to keep the schedule moving! Each presentation reinforced the ability of Maple T.A. and Möbius to be used for diverse purposes such as distance education or analyzing incoming students, and in a range of subjects including multidisciplinary engineering cohorts, or simply core mathematics. Each presenter demonstrated that these tools can take you as far as the user’s mind is willing to be stretched.




 

Evening Reception

As heads were getting full and bellies were getting empty, the group left the luxuries of modern day and stepped back into what must have felt like a scene from Downton Abbey in the Main Reception Room of the venue. On the menu was the most culturally appropriate dish: fish and chips! Oh, and don’t forget the tea and wine!

There was no better way to wrap up the Summit than with Steve Furino’s interactive presentation and open discussion “Collecting Data about Collecting Data.” Small group discussion enabled the attendees to reconcile their inspiration from Day 1 with the practicality of putting it into practice once they return to their schools.

Overall, the London Summit was a smashing hit. The centralized location drew attendees who had a lot of common experiences which made for optimal discussion. The final question posted was the most revealing of everyone’s experience: where will the Summit be next year?

While that’s not yet decided, the Toronto Summit – the next stop in the Summit Series – is just a fortnight away (November 2-3). So for now, we’re saying “Cheers” to jolly good times in London, and “Can I get a double-double, eh” to Toronto!

Until then, you can experience the London Summit as if you were there with the full presentation proceedings and videos. They’re now available on our website!

The Railway Challenge is a competition designed by the Institute of Mechanical Engineers (IMechE), aimed at engaging young engineers with the rail industry.  The challenge, now in its seventh successive year, brings together teams of university students, as well as apprentices and graduates working in industry across the world to test their business knowledge, design ability and technical skills in a live test environment.

The Railway Challenge at Sheffield (RCAS) is an extracurricular student-led activity within the Mechanical Engineering department at the university of Sheffield, that designs, codes and manufactures a 10 1/4 inch gauge miniature locomotive to compete in the IMechE’s  Railway Challenge.  The locomotive is assessed in accordance with a set of strict rules and a detailed technical specification, such as traction, ride comfort, and a business case. The locomotives are tested live at a competition, which takes place in June at the Stapleford Miniature Railway in Leicestershire, where several categories of winners and an overall Railway Challenge champion is crowned.

The team consists of around twenty members, and students studying Mechanical Engineering and even cross discipline can get involved as soon as they come to the University, getting into to the design of components within the suspension or braking systems for example, before proceeding to manufacture and test; allowing the students to experience all the stages of an engineering product as well as skills gained by working in the team such as effective communication, time management and financial planning.

Last year the team was granted a sponsorship from Maplesoft, and as a result, huge improvements were made within the team. Overall the team jumped from finishing in 7th place to in the summer winning the maintainability challenge and finishing in 4th place overall – mostly down to the electronics working for the first year ever!

 

Using Maplesoft’s donation the team switched form a central CRIO control system to a distributed network using I2C protocols and Arduino hardware. This did away with some of the electrical teething problems the team has suffered in previous years. It also introduced our Mechanical Engineers to coding that they would otherwise not do in their course.

This year Maplesoft have again sponsored RCAS. The team is hoping to use the licenses to perform their structures calculations in an easy way to keep track of them for use in the design report. They are also hoping to use MapleSim for dynamics modelling, to assist with suspension design, and designing any electronics or control elements, such as filter design and motor control.

We’re so excited to bring you guys #MapleOfficeHours! This is a program we’ve designed for students (but open to everyone) to connect via social media for help with Maple. Maple can play a really important part in your courses and can sometimes be intimidating for new users. We get it, there’s a lot of ground to cover. With #MapleOfficeHours, we will use social media as a live Q&A platform to help you figure out how to use Maple for your homework, assignments and more. Having trouble with a command or function? #MapleOfficeHours. Need help finding a specific resource or app? #MapleOfficeHours. You get the idea…

Just like the office hours your professors hold, #MapleOfficeHours is going to be available on a regular basis for support. More events will be scheduled soon, but look out for Twitter chats, mini-webinars, Facebook live events and more. Once we get going, we’d love to hear your feedback on what other types of events we can offer and what topics you’d like to see covered.

Our first #MapleOfficeHours event will be a live Twitter chat. On October 16th at 2PM EDT, I will be joined with Maple Product Manager, @DanielSkoog and Tech Support Team Lead, Dr. Matt Calder to answer as many questions about Maple that we can possibly fit into an hour’s time.

To join the Twitter chat, use the hashtag #MapleOfficeHours when posting your questions and/or mention us with @maplesoft.

Looking forward to seeing everyone at our first #MapleOfficeHours event on October 16th, 2PM EDT!

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.

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