Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

How do I get the Matrix to recalculate?

restart

a := 5

5

(1)

``

M := simplify(Matrix(2, 2, {(1, 1) = a, (1, 2) = 2*a, (2, 1) = 3*a, (2, 2) = a^2}))

M := Matrix(2, 2, {(1, 1) = 5, (1, 2) = 10, (2, 1) = 15, (2, 2) = 25})

(2)

``

unassign('a')

a

a

(3)

 

M

Matrix(2, 2, {(1, 1) = 5, (1, 2) = 10, (2, 1) = 15, (2, 2) = 25})

(4)

expand(M)

Matrix(2, 2, {(1, 1) = 5, (1, 2) = 10, (2, 1) = 15, (2, 2) = 25})

(5)

``

 

Download Re-evaluate_a_Matrix.mw

This is the first of three blog posts about working with data sets in Maple.

In 2013, I wrote a library for Maple that used the HTTP package to access the Quandl data API and import data sets into Maple. I was motivated by the fact that, when I was downloading data, I often used multiple data sources, manually updated data when updates were available, and cleaned or manipulated the data into a standardized form (which left me spending too much time on the data acquisition step).

Simply put, I needed a source for data that would provide me with a searchable, stable data API, which would also return data in a form that did not require too much post-processing.

My initial library had really just scratched the surface of what was possible.

Maple 2015 introduced the new DataSets package, which fully integrated a data set search into core library routines and made its functionality more discoverable through availability in Maple’s search bar.

Accessing online data suddenly became much easier. From within Maple, I could now search through over 12 million time series data sets provided by Quandl, and then automatically import the data into a format that I could readily work with.

If you’re not already aware of this online service, Quandl is an online data aggregator that delivers a wide variety of high quality financial and economic data. This includes the latest data on stocks and commodities, exchange rates, and macroeconomic indicators such as population, inflation, unemployment, and so on. Quandl collects both open and proprietary data sets from many sources, such as the US Federal Reserve System, OECD, Eurostat, The World Bank, and Open Data for Africa. Best of all, Quandl's powerful API is free to use.

One of the first examples for the DataSets package that I constructed was in part based on the inspirational work of Hans Rosling. I was drawn in by his ability to use statistical visualizations to break down complex multidimensional data sets and provide insight into underlying patterns; a key example investigating the correlation between rising incomes and life expectancy.

As well as online data, the DataSets package had a database for country data. Hence it seemed fitting to add an example that explored macroeconomic indicators for several countries. Accordingly, I set out to create an example that visualized variables such as Gross Domestic Product, Life Expectancy, and Population for a collection of countries.

I’ll now describe how I constructed this application.

The three key variables are Gross Domestic Product at Power Purchasing Parity, Life Expectancy, and Population. Having browsed through Quandl’s website for available data sets, the World Bank and Open Data for Africa projects seemingly had the most available relevant data; therefore I chose these as my data sources.

Pulling data for a single country from one of these sources was pretty straight forward. For example, the DataSets Reference for the Open Data for Africa data set on GDP at PPP for Canada is:

DataSets:-Reference("quandl", "ODA/CAN_PPPPC"));

In this command, the second argument is the Quandl data set code. If you are on Quandl’s website, this is listed near the top of the data set page as well as in the last few characters of the web address itself: https://www.quandl.com/data/ODA/CAN_PPPPC . Deconstructing the code, “ODA” stands for Open Data for Africa and the rest of the string is constructed from the three letter country code for Canada, “CAN”, and the code for the GDP and PPP. Looking at a small sample of other data set codes, I theorized that both of the data sources used a standardized data set name that included the ISO-3166 3-letter country code for available data sets. Based on this theory, I created a simple script to query for available data and discovered that there was data available for many countries using this standardized code. However, not every country had available data, so I needed to filter my list somewhat in order to pick only those countries for which information was available.

The script that I had constructed required three letter country codes. In order to test all available countries, I created a table to house the country names and three-letter country codes using data from the built-in database for countries:

ccdata := DataSets:-Builtin:-Reference("country")[.., "3 Letter Country Code"];
cctable := table([seq(op(GetElementNames(ccdata[i])) = ccdata[i, "3 Letter Country Code"], 
i = 1 .. CountRows(ccdata))]):

My script filtered this table, returning a subset of the original table, something like:

Countries := table( [“Canada” = “CAN”, “Sweden” = “SWE”, … ] );

You can see the filtered country list in the code edit region of the application below.

With this shorter list of countries, I was now ready to download some data. I created three vectors to hold the data sets by mapping in the DataSets Reference onto the “standardized” data set names that I pulled from Quandl. Here’s the first vector for the data on GDP at PPP.

V1 := Vector( [ (x) -> Reference("quandl", cat("ODA/", x, "_PPPPC"))
                   ~([entries(Countries, nolist, indexorder)])]):
#Open Data for Africa GDP at PPP

Having created three data vectors consisting of 180 x 3 = 540 data sets, I was finally ready to visualize the large set of data that I had amassed.

In Maple’s Statistics package, BubblePlots can use the horizontal axis, vertical axis and the relative bubble size to illustrate multidimensional information. Moreover, if incoming data is stored as a TimeSeries object, BubblePlots can generate animations over a common period of time.

Putting all of this together generated the following animation for 180 available countries.

This example will be included with the next version of Maple, but for now, you can download a copy here:DataSetsBubblePlot.mw

*Note: if you try this application at home, it will download 540 data sets. This operation plus the additional BubblePlot construction can take some time, so if you just want to see the finished product, you can simply interact with the animation in the Maple worksheet using the animation toolbar.

A more advanced example that uses multiple threads for data download can be seen at the bottom of the following page: https://www.maplesoft.com/products/maple/new_features/maple19/datasets_maple2015.pdf You can also interact with this example in Maple by searching for: ?updates,Maple2015,DataSets

In my next post, I’ll discuss how I used programmatic content generation to construct an interactive application for data retrieval.

I am using a stoiciometric matrix to generate a system of differential equations (this makes them easier to check). There are 13 chemical species and 16 reactions so I need to make and display vectors of length 13 and 16; as well as a 13x16 matrix.

When I make Vectors of this size they don't get displayed; I just get information about the vector (Fortran order etc) and this is the same for the matrix.

How do i make/edit/display Matrixes nd Vectors of this size?

I had a list of complex numbers that I wanted to find the argument of. Instead of individually inputting each complex number, I was told I could use:

argument~([complexn1,complexn2,complexn3]);

This gave me the argument approximations for each of the complex numbers. When I removed the tilde however, I got an error saying that the argument command could only deal with 1 complex number at a time.

What did the tilde do that allowed me to find all the arguments at once?

I'm trying to plot the varying results to a second degree differential function with different values for one constant in one graph. Here is what I have so far, which is already working.

______________________________________________________________________

> with(plots);
> m := 0.46e-1; d := 0.42e-1; v := 60; alpha0 := convert(12*degrees, radians); g := 9.81; pa := 1.205; cd := .2; n := 4000; omega := 2*Pi*(1/60);
                           
> p := 6*m/(Pi*d^3);
                           
> k1 := (3/4)*cd*pa/(d*p); k2 := (3/8)*omega*n*pa/p;
                  
> gl1 := vx(t) = diff(x(t), t);
                          
> gl2 := vy(t) = diff(y(t), t);
                     
> gl3 := diff(vx(t), t) = -k1*vx(t)*(vx(t)^2+vy(t)^2)^(1/2)-k2*vy(t);
       
> gl4 := diff(vy(t), t) = -g-k1*vy(t)*(vx(t)^2+vy(t)^2)^(1/2)+k2*vx(t);
 
> init1 := x(0) = 0;
> init2 := y(0) = 0;
> init3 := vx(0) = v*cos(alpha0);
> init4 := vy(0) = v*sin(alpha0);
> sol := dsolve({gl1, gl2, gl3, gl4, init1, init2, init3, init4}, {vx(t), vy(t), x(t), y(t)}, type = numeric);

> sol(.5);
> odeplot(sol, [x(t), y(t)], t = 0 .. 6.7);

______________________________________
What I'd like to do now is, for example, plot the solutions in one graph (preferably as a gif) for when n=1500, n=3000, n=4500 etc. Is there a simple way to achieve this? I've tried various methods so far without success.

I resolve the surface flat grinding of a metal pieces in Mathematica, but I would like convert this program in Maple syntaxis. 

Thanks in advance!

Hi,

I am trying to calculate the commutator $[v,w]:=vw-wv$.

For the sake of simplicity lets say

$$v=\dfrac{\partial}{\partial x}$$
and

$$w=x\dfrac{\partial}{\partial t}$$

I know how to calculate the commutator by hand, but I would like to learn how I can do these kind of calculations with maple.

**In this example the calculations by hand look like:**

$$[v,w]=\dfrac{\partial}{\partial x}\left( x\dfrac{\partial}{\partial t}\right)-x\dfrac{\partial}{\partial t}\dfrac{\partial}{\partial x}$$
$$=\dfrac{\partial}{\partial t}+x\dfrac{\partial^2}{\partial x \partial t}-x\dfrac{\partial^2}{\partial t \partial x}=\dfrac{\partial}{\partial t}$$

How can I "teach" maple to do this?

Dear All

I have downloaded second version of DGApplications to work with abstract Lie algebra. The file is actually .mla file and it is executale(as when we open it, a prompt ask, "do you want to execute this file"), but when I press ok for execution, a file open with command like as

"march('open',"C:\\Users\\Manjit\\Downloads\\DGApplications.mla");",

what should I do after this, is it a some sort installation procedure. I keep all my Maple file in E drive with following path:

E:\Maple work\General Maple Workout

Please guide me in simple way, as I failed to install Maple package many times.

Regards

Hello everybody,

I've failured cause of a simple parallel computation.

Let us assume I have 3 procedures g,h,i, each of them does the some computation on a different way and returns the same value (for example two of them need a second and the third needs a day).

It's my goal, that if one of the tasks finished, the other tasks stops and my programm continues. But if I use for example

>Threads:-Task:-Start( null, Task=[f := g(100)], Task=[f:= h(100)], Task[f:= i(100)]);

every task computed to the end and after that the program continues. How can I solve this problem?

P.S. Sorry about my english, I do my best

 

Bug_in_integrate.mw

M_Iwaniuk

I have encountered a behavior of Maple that I find hard to explain and I am hoping for help. The command

sum(floor((exp(Pi)-Pi)*n)/3^n,n=0..infinity);

was meant to be an example of "High-precision fraud" as in the 1992 paper of Borwein and Borwein, and indeed it gives 29/2 to within 531 digits. But I am unable to make Maple see this; indeed I get with evalf(%,1000)

14.50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

I find it hard to guess why Maple gets this wrong, actually. The point of the example is that floor((exp(Pi)-Pi)*n)=20*n-1 for many n, but Maple has no problems finding the first failure at n=1112. It must hence be trying something more advanced than just adding up all summands until the tail sum is small enough to satisfy the precision? I guess an alternative approach would indeed be possible since what is being "floored" is relatively simple, but then that seems to be buggy?

Would be very grateful for any assistance!

Best,

Soren Eilers

 

 

 

 

Hi all,

If you want to introduce the Heun Function to someone who dose not know anything about it (in the simple and not boring terms ), what would you do in the best??

As all of us know there are 5 Heun Functions: HeunB, HeunC, HeunD, HeunG and HeunT...

In the Maple help there is not enough and interesting information, and in the net I found complicated things about HeunT Function!!!

 

Dear, I want you to send me a simple definition about    HeunT  Function   in just one word page.

 

Thanks

 

of a (concrete/general) triangle, making use of Maple tools in an efficient way?  Mathematica applies the barycentric coordinates and the Dirichlet distribution to this end. More generally, how to efficiently choose a random point in a given bounded region?

i need this equation solve by maple

eql := alap*[(la(a)^4+6*la(a)+1+alap*(la(a)^4-1)/difl1)*la(a)*j(a)-((la(a)^2+1)*(1+2/difl)+la(a)^2-1)*intdj/a^4+[(4*(la(a)^4-1))/difl-8*la(a)^2]*intdj/a^2]-(4*(la(a)^2+1))*intdj/a^4+(4*(la(a)^4-1))*intdj1/a^2 = 0;

Hello all,

I have a hash structure with arrays in a YAML file that I would like to read in Maple.

Does there exist a module, so I can read it?

 

First 1105 1106 1107 1108 1109 1110 1111 Last Page 1107 of 2224