MaplePrimes Commons General Technical Discussions

The primary forum for technical discussions.

Was just pondering this idea and posted this in the post topic for discussion. 

Each Maple finished version of Maple may still have certain bugs that will not be updated for that version, so I am suggesting (I think anyone could implement it) that if there is a workaround, one could wrap it up in something I would call a patch package updateable by us users we could update here on mapleprimes.  It would be good for people who haven't upgraded or can't upgrade due to costs etc...

For example, there was recent issue with pdsolve that was fixed quite quickly in the seperate updateable Physics package.  Things could be done similarily that might work with other workarounds using this patch package idea. 

If anyone thinks this is good or even viable idea then lets implement it.  I envisioned it with just this one rule to follow - the name of the patch package would reflect the version we are patching (ie. with(patch12) or with(patch2016) for Maple 12 and Maple 2016 respectively etc...)  We could make these patch packages available in this post or start another.

As I said, I'm just throwing the idea out there.  Thoughts?

There seems to be a bug with improper integration:

integrate(cos(t)*exp(-x*t),t=-infinity..infinity)

gives

0

Substituting any number for x, or assuming x >= 0  (or x<=0) does give the correct result,

The problem also persists when assuming x>-1 (or x>-Maple_floats(MIN_FLOAT))

 

Books free. Like!!!

Lenin Araujo Castillo

Yahoo Finance recently discontinued their (largely undocumented) historical stock quote API.

Previously, you get simply send a HTTP:-Get request like this…

HTTP:-Get(“http://ichart.yahoo.com/table.csv?s=AAPL&a=00&b=1&c=2016&d=00&e=1&f=2017&g=d&ignore=.csv")

…and get historical OHLCV (open, high, low, close, trading volume) data in your worksheet (in this case for AAPL between 1 January 2016 and 1 January 2017).

This no longer works! Yahoo shut the door on this easy-to-use and widely disseminated API.

You can still download historical stock quotes from Yahoo Finance into Maple, but the process is now somewhat more involved. My complete code in this worksheet but I'll step through the process below.

If you visit the updated Yahoo Finance website and download historical data for a ticker, you see a URL like this in the status bar of your browser

https://query1.finance.yahoo.com/v7/finance/download/AAPL?period1=1497727945&period2=1500319945&interval=1d&events=history&crumb=C9luNcNjVkK

Let's examine how ths URL is constructed.

  • period1 and period2 are Unix time stamps for your start and end date
  • interval is the data retrieval interval (this can be either 1d, 1w or 1m)
  • crumb is an alphanumeric code that’s periodically regenerated every time you download new historical data from from the Yahoo Finance website using your browser. Moreover, crumb is paired with a cookie that’s stored by your browser.

Here’s how to extract and supply the cookie-crumb pair to Yahoo Finance so you can still use Maple to retrieve historical stock quotes

Send a dummy request to get a cookie-crumb pair

res:=HTTP:-Get("https://finance.yahoo.com/lookup?s=bananas"):

Grab the crumb from the response

i:=StringTools:-Search("CrumbStore\":{\"crumb\":\"",res[2]):
crumbValue := res[2][i+22..i+32]
                  crumbValue := "btW01FWTBn3"

Store the cookie from the response

cookieHeader:=res[3]["Set-Cookie"]
    cookieHeader := "B=702eqhdcmq7cl&b=3&s=0t; expires=Mon,17-Jul-2018 20:27:01 GMT; path=/; domain=.yahoo.com

Construct the URL

  • Your desired start and end dates have to be defined as Unix time stamps. Converting a human readable date (like 1st January 2017) to a Unix timestamp is simple, so I won't cover it here.
  • The previously retrieved crumb has to be added to the URL.
ticker:="AAPL":
p1 := 1497709183:
p2 := 1500301183:
url:=cat("https://query1.finance.yahoo.com/v7/finance/download/",ticker,"?period1=",p1,"&period2=",p2,"&interval=1d&events=history&crumb=", crumbValue):

Send the request to Yahoo Finance, including the cookie in the header

data:=HTTP:-Get(url,headers = ["Cookie" = cookieHeader])

Your historical data is now returned

The historical data is now easily parsed into a matrix.

Please note that any use of Yahoo Finance has to be consistent with their terms of service.

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.

In the recent years much software has undergone a change towards allowing for better sharing of documents. As is the case with other software as well, the users are no longer mainly single persons sitting in a dark corner doing their own stuff. Luckily Maplesoft has taken an important step in that direction too by introducing MapleCloud some years ago. This means that it is now possible quite easily to discuss calculations done in Maple in the classroom. One student uploads and the Teacher can find the document seconds later on his own computer connected to a Projector and show the student's solutions for the other  students in the classroom. That's indeed great! Maple is however lacking in one important aspect: It's Graphics User Interface (GUI) is not completely ready to for that challenge! I noticed that quite recently when the entire teaching staff received new netbooks: 14 inch Lenovo Yoga X1 with a resolution of 2560 x 1440 pixels. From factory defaults text zoom was set to 200%. Without it, text would be too small in all applications used on the computer. The Microsoft Office package and most other software has adapted to this new situation dealing with high variation in the users screen resolutions, but not Maplesoft:

  1. Plots and Images inserted become very small
  2. Open File dialogs and the like contain shortened text for folder names ... (you actually have to guess what the folders are)
  3. Help menus are cluttered up and difficult to read.

I show screen images of all three types below.

I know it is possible to make plots larger by using the option size, but since it relies on pixels it doesn't work when documents are shared between students and teachers. You cannot expect the receiving student/teacher to make a lot of changes in the document just to be able to read it. It will completely destroy the workflow!

Why doesn't Maplesoft allow for letting documents display proportionally on the users computer like so many other programs do? Why do it need to be in pixels? If it is possible to make it proportional, it would also solve another issue: Making prints (to a printer or to pdf) look more like they do on the screen than is the case at present.

I really hope Maplesoft will address this GUI challenge, because I am sure the issue will pile up quite rapidly. Due to higher costs, most laptops/netbooks among students don't have that high resolution compared to computer dimensions at the moment, but we already have received a few remarks from students owning such computers. Very soon those highend solution computers will dive into the consumer market and become very common.

I have mentioned this important GUI issue in the beta-testing group, but I don't think those groups really are adapted to discussions, more bug fixes. Therefore I have made this Post in the hope that some Maple users and some chief developers will comment on it!
     

Now I have criticized the Maple GUI, I also feel urged to tell in what departments I think Maple really excels:

  1. The Document-structure is great. One can produce good looking documents containing 'written math' (inactive math) and/or 'calculated math'. All-in-one! Other competting software does need one to handle things separatly.
  2. Sections and subsections. We have actually started using Maple to create documents containing entire chapters or surveys of mathematics or physics subjects, helping students to get a better overview. I am pretty sure the Workbook tool also will help here.
  3. Calculations are all connected. One can recalculate the document or parts of it, eventually using new parameters. Using Maple for performing matematical experiments. Mathematical experiments is a method entering more into the different mathematics curriculums.
  4. MapleCloud. Easy sharing of documents among students and teachers.
  5. Interactive possibilities through the Explore command and other commands. Math Apps as well.
  6. Besides that mathematical symbols can be accessed from the keyboard, they can also be accessed from palettes by less experinced users.  
  7. Good choice by Maple to let the user globally decide the size text and math is displayed in Maple - set globally in the menu Tools < Options.
  8. Maple can handle units in Physics
  9. Maple has World-Class capabilities. If you have a mathematical problem, Maple can probably handle it. You just need to figure out how.
  10. etc.

 

Small plots:

 

Shortened dialog text:

 

Cluttered help menus:

 

Regards,

Erik

 

The is and coulditbe commands of Maple are known to be buggy.
Here are some math inventions done by these commands in Maple 2016.2.

restart; assume(x::real, y::real);
is(exp(x+I*y) <> 0);
                             false
coulditbe(exp(x+I*y) = 0);
                              true
coulditbe(exp(x+I*y) = infinity);
                              true
coulditbe((x+I*y)^2 = infinity);
                              true

It should be noticed that

is((-infinity)::real);
                             false

though

exp(-infinity+0*I);
                               0

The latter means

limit(exp(x),x=-infinity);
                                   0

, no more and no less.

 

I have proposed a SE site for maple.

This will help to put maple on SE.

Please follow this site.

http://area51.stackexchange.com/proposals/107315/maple

 Update

We have moved to the next phase Commitment. Come and join us.

The Joint Mathematics Meetings are taking place this week (January 4 – 7) in Atlanta, Georgia, U.S.A. This will be the 100th annual winter meeting of the Mathematical Association of America (MAA) and the 123nd annual meeting of the American Mathematical Society (AMS).

Maplesoft will be exhibiting at booth #118 as well as in the networking area. Please stop by our booth or the networking area to chat with me and other members of the Maplesoft team, as well as to pick up some free Maplesoft swag or win some prizes.

There are also several interesting Maple-related talks and events happening this week:

 

Teaching Cryptology to Increase Interest in Mathematics for Students Majoring in Non-Technical Disciplines and High School Students

Wednesday, January 4, 0820, L401 & L402, Lobby Level, Marriott Marquis

Neil Sigmon, Radford University

 

Enigma: A Combinatorial Analysis and Maple Simulator

Wednesday, January 4, 0900, L401 & L402, Lobby Level, Marriott Marquis

Rick Klima, Appalachian State University

 

MYMathApps Calculus - Building on Maplets for Calculus

Thursday, January 5, 0800, Courtland, Conference Level, Hyatt Regency

Philip B. Yasskin, Texas A&M University 
Douglas B. Meade, University of South Carolina 
Andrew Crenwelge, Texas A&M University

 

Maple Software Technology as a Stimulant Tool for Dynamic Interactive Calculus Teaching and Learning

Thursday, January 5, 1000, Courtland, Conference Level, Hyatt Regency

Lina Wu, Borough of Manhattan Community College-The City University of New York 

 

Collaborative Research: Maplets for Calculus

Thursday, January 5, 1400, Marquis Ballroom, Marquis Level, Marriott Marquis

Philip Yasskin, Texas A&M University 
Douglas Meade, U of South Carolina

 

Digital Graphic Calculus Art Design in Maple Software

Thursday, January 5, 1420, International 7, International Level, Marriott Marquis

Lina Wu, Borough of Manhattan Community College-The City University of New York 

 

Maplesoft will also be hosting a catered reception and brief presentation on Teaching STEM Online: Challenges and Solutions, Thursday January 5th, from 6:00pm – 7:30pm, at the Hyatt Regency, Hanover AB, on the exhibitor level. Please RSVP at www.maplesoft.com/jmm or at Maplesoft booth #118.

 

If you are attending the Joint Math meetings this week and plan on presenting anything on Maple, please feel free to let me know and I'll update this list accordingly.


See you in Atlanta!

Daniel

Maple Product Manager

Is this a bug?

hypergeom([1, -1, 1/2], [-12,-3], 1);
Error, (in hypergeom/check_parameters) function doesn't exist: missing appropriate negative integers in the first list of parameters to compensate the negatives integer(s): [-3], found in the second list.
 

Yet this hypergeometric series terminates and Maple should be able to handle it, at least according to the Maple help page (the second rule below applies, yet the numerator has a smaller absolute value, so the first rule below applies).

If some   n[i] is a non-positive integer, the series is finite (that is,   F(n, d, z)  is a polynomial in    z).
If some  d[j]  is a non-positive integer, the function is undefined for all non-zero  z, unless there is also a negative upper parameter of smaller absolute value, in which case the previous rule applies.
 

 

Interestingly, the Wolfram Mathematica app can evaluate this to 311/312.

 

 

The DFT windowing functions in the SignalProcessing package seem to be inconsistent in the type of data they will accept, and the type they return.

BartlettHannWindow,  BlackmanHarrisWindow, BlackmanNuttallWindow,   BohmanWindow, CauchyWindow, CosineWindow, ExponentialWindow, FlatTopWindow,  GaussianWindow, HannPoissonWindow, ParzenWindow, PoissonWindow,  RectangleWindow, ReiszWindow, RiemannWindow, TaperedCosineWindow, TriangleWindow, TukeyWindow

accept Arrays, containing almost any data type (haven't tried them all!) as input. and always return a Vector[row].

But

BartlettWindow, BlackmanWindow, HammingWindow, HannWindow, KaiserWindow

require that the option datatype=float[8] be set in the Array() constructor, which is used as input and always return an hfarray.

Thus, for example

with(SignalProcessing);
sig:= Array( -50..50,
                        fill=1
                    ):
BartlettHannWindow(sig); # this works
BartlettWindow(sig);# this fails with datatype unsupported error

Very confusing!!!!

As mentioned a few weeks back, we have been working on an update to MaplePrimes designed to dramatically curtail the amount of spam we have been receiving. I'm happy to say that we implemented these features earlier today, and in the hour or so since publication, they have already helped prevent multiple messages from being posted.

Using content posted to MaplePrimes over the past few months as a baseline, this new feature is successfully able to detect 90% of spam, while maintaining a false positive (i.e., incorrectly identifying a legitimate question or post) rate of 1%.

If a message is detected as spam, it is immediately quarantined and not publicly posted. Importantly, any user who posts a message seen as spam is immediately informed, and is provided with a simple mechanism to let us know so that their post can be reinstated (if it is in fact legimate.)

We will be closely monitoring these services to ensure that they are working as intended. In the meantime, I am very hopeful that they help improve the experience for our members, and require much less effort from our dedicated group of spam fighters.

Today we have published an update to MaplePrimes that includes a variety of improvements. Many of these changes are a direct result of member feedback and suggestions, and I am very appreciative for that!

What follows is a brief summary of the changes. As always, we remain very interested in your thoughts and feedback, and look forward to your further suggestions.

Also, a note that, as mentioned in a previous post, we have already begun working on a further update to address the influx of spam we have been receiving. This update will be published within the next 2-3 weeks.

Updated Look and feel
The most obvious change is the updated interface. With a few exceptions, the previous layout and functionality has been maintained, but with a cleaner, more responsive, and more appealing look.

New message editor
This update includes a new text editor called CKEditor. This editor provides a simpler, cleaner experience for posting your messages and also aligns MaplePrimes more closely with the Maplesoft product suite.

Notifications
You will notice a new flag icon in the upper right hand corner of the interface. This is the new MaplePrimes Notification feature, and it provides similar functionality to what we have become accustomed to on other social media sites. The icon is displayed in an orange color when you have notifications, and then when opened, your new notifications are highlighted in blue. Clicking on a notification will take you directly to the item being referenced.

Improved flow for removing spam messages
As any MaplePrimes moderator could tell you, removing spam on MaplePrimes was a cumbersome process taking 4 clicks. In this update, this process has been streamlined to 2 clicks, which will make the process considerably faster for our legion of spam fighters. In addition, the ability to remove spam is now available on all message types – comments, replies, etc.

Identification Badges
There are now 3 identification badges that are used throughout MaplePrimes wherever member information is displayed. These include:

 Denotes a member who works at Maplesoft

 Site moderators are the heart and soul of MaplePrimes, and are now identified by this new badge

 A member who also particpates in the Maple Ambassador Program

Other fixes and improvements
In addition to the changes mentioned above, several other minor fixes and improvements were made.

After days of fruitlessly searching the help files and the Internet for a means of converting a Dataseries of strings into numeric values in Maple I changed tack and determined how to do it myself.

I was surprised there was no built in Maple function to do this. From searching the Internet I can see I am not alone.
Since there are no other solutions on the net, here is mine:

toNumeric := (y) -> map(x->parse(x),y);

This creates the function toNumeric() that accepts a DataSeries of text values and returns it converted to a Dataseries of numeric values.

thing := DataSeries(["10", "20", "30", "55.9"], 'labels' = ["a", "b", "c", "d"]);
thing := toNumeric(thing); 

dataframething := DataFrame([["cow", "sheep", "goat", "alpaca"], ["10", "20", "30", "55.9"]], rows = ["a", "b", "c", "d"]);
dataframething[2] := toNumeric(dataframething[2]);


If you want to see this in Maple, try:
 typecastdataseries-maple




 

In order to change Maple for the better, I use to submit SCRs. However, as i was kindly
informed by Bryon (a copy of his e-letter on demand), MaplePrimes are under reconstruction and do not
work properly. At least my three messages sent through the Contact button were lost.
I have  unsuccessfully tried to reach beta.maplesoft.com (see the result of ping in the screen screen.29.08.16.docx).
Please, help me!

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