Maple 2021 Questions and Posts

These are Posts and Questions associated with the product, Maple 2021

It seem like there is an (unwanted) difference between the latex() command and the newly introduced "Copy as LaTeX" in handling of \left and \right delimiters. A trivial example

>latex(sin(b/a));
\sin \! \left(\frac{b}{a}\right)

but if I instead use the new "Copy as LaTeX" command I get the result

\sin(\frac{b}{a})

These should of course be the same and I consider the first one to be the better conversion. It seems a very strange problem since it surely must be the same library routine that does the conversion in both cases? From a small set of examples I tried on it seem that the "Copy as .."  command never uses \left and \right which in several cases is absolutely necessary to get acceptable result.

 

I run Maple on two different computers each with 2 4k monitors running Windows 10 Pro.  Everything appears to work fine on one computer but on the other one, the display gets corrupted when moving the mouse under certain conditions.  I have eliminated the mouse and the video card as the problem because the same problem occurs after replacing them with other manufacturers components.  I have a document that generates a few plots that I can run from both computers.  At first all seems fine and the mouse can be moved across the display and plots without corruption.  But as soon as I try to enable any "Probe Info" via right clicking a plot or from the side pane when the plot is selected, moving the mouse over the plot will cause a continuous corruption that continuous to change as I move the mouse.  The only way I have found to recover from this is to close Maple and resart it.

It appears the problem has to do with redrawing the display after the mouse moves.  Below is an example:

Has anyone experienced this?

Thank you, David

 

The background of my question comes from graph theory. But the essence of the problem has nothing to do with graph theory, and it only involves programming.

For the graph g1 below, the paired crossing edges  are marked as wine red.

with(GraphTheory):
with(SpecialGraphs):
g:=CompleteGraph(6);
g1:=DeleteEdge(g, {3,2}, inplace = false);

Paircrossedges:=[[{1,6},{3,5}],[{2,5},{1,4}],[{2,6},{3,4}]];

For each pair of crossed edges, I choose one to delete and get a plane graph g1', and then I consider the edge connectivity of g1', if the edge connectivity is equal 3, stop the calculation and return to the deleted edge set, otherwise continue to look for.

The following code is my attempt, break does not seem to work.

Conremovedges:= proc(G::Graph,Paircrossedges)
local i,j,k,dedges;
for i from 1 to 2 do
   for j from 1 to 2 do
     for k from 1 to 2 do
dedges:={Paircrossedges[1][i],Paircrossedges[2][j],Paircrossedges[3][k]};
              if EdgeConnectivity(DeleteEdge(G, dedges, inplace = false))=3 then
print(dedges);
break;
end if;
end do:
end do: 
end do:
end proc:
Conremovedges(g1,Paircrossedges)

 

My idea is that as long as the edge set that meets the condition appears for the first time, it should stop. If none are satisfied, return "not found".

Another question:

The above is just my example. In fact, the graph I want to consider is more complicated. If there are 18 pairs of crossing edges, do I need to write 18th-order for-loops? This seems very troublesome. Is there an easier way? Maximum number of for loops is 2^18 that is equal to 262144, which is still acceptable.

Conremovedges:= proc(G::Graph,Paircrossedges)
local a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,dedges;

for a1 from 1 to 2 do
for a2 from 1 to 2 do
for a3 from 1 to 2 do
for a4 from 1 to 2 do
for a5 from 1 to 2 do
for a6 from 1 to 2 do
for a7 from 1 to 2 do
for a8 from 1 to 2 do

for a9 from 1 to 2 do
for a10 from 1 to 2 do
for a11 from 1 to 2 do
for a12 from 1 to 2 do
for a13 from 1 to 2 do
for a14 from 1 to 2 do
for a15 from 1 to 2 do
for a16 from 1 to 2 do
for a17 from 1 to 2 do
for a18 from 1 to 2 do

dedges:={
Paircrossedges[1][a1],Paircrossedges[2][a2],Paircrossedges[3][a3],
Paircrossedges[4][a4],Paircrossedges[5][a5],Paircrossedges[6][a6],
Paircrossedges[7][a7],Paircrossedges[8][a8],Paircrossedges[9][a9],
Paircrossedges[10][a10],Paircrossedges[11][a11],Paircrossedges[12][a12],
Paircrossedges[13][a13],Paircrossedges[14][a14],Paircrossedges[15][a15],
Paircrossedges[16][a16],Paircrossedges[17][a17],Paircrossedges[18][a18]};
              if EdgeConnectivity(DeleteEdge(G, dedges, inplace = false))=3 then
print(dedges);
break;
end if;
end do:
end do: 
end do:
end do:
end do:
end do: 
end do:
end do:
end do:
end do: 
end do:
end do:
end do:
end do: 
end do:
end do:
end do:
end do: 
end proc:

 

 

 

 

 

In Maple, when calling LinearAlgebra:-Eigenvectors the order can change randomally each time. Ofcourse the result is always correct, but can show up in different order. 

I find this confusing, as I am looking at the screen, and see order changed each time. This is the order of how Maple shows the eigenvalues and corresponding eigenvectors.

Why does Maple do this? Is there a way to have same order given each time? Here is an example. If you run this code twice, most likely you will get different order each time. If not, try the command one more time.

restart;
Sy:=1/sqrt(2)*Matrix([[0,-I,0],[I,0,-I],[0,I,0]]);
lambda, v :=LinearAlgebra:-Eigenvectors(Sy);

screen shot

I thought there might be a global option to tell Maple not to do this? 

Again, answer is correct each time. I just like same output to show each time, as it is less confusing. Sometimes I think I did something wrong when I see different output show up for same command.

 

 

sometimes I get expressions with sqrt(n)/n in them where n is positive integer. I'd like Maple to simplify this to 1/sqrt(n).

So sqrt(2)/2 will becomes 1/sqrt(2). I find this simpler.

Here is an example

v:=Vector([1/2, -1/2*sqrt(2), 1/2]);
simplify(v);
simplify(size);
simplify(v,sqrt);
simplify(v,power);

and tried few other things. 

is there a trick to do this? This is the case where all the expression have actual numerical integers in them (not symbolic), just like the above example. These come from numerical examples. 

 

Before I put in a change request to make LinearAlgebra:-Equal the "is" of matrix/vector options, I wonder is there something else I should be doing. 

LinearAlgebra_Equal.mw

Few months ago, someone was kind enough to send me an email letting me know that in Maple 2021 the following new change will be in Object

I am attending a workshop on OOP.  In Maple 2021, one will be able 
to invoke a method of an instance of an object with the  syntax:  object_name:-method_name

However, I am not able to get the above to work in Maple 2021. And I looked at the help pages and see no such example. This is what I tried

restart;
module person()
    option object;
    local name := "me";   

    export get_name::static := proc( self::person, $ )
        self:-name;
    end;

    export set_name::static := proc( self::person, name, $ )
        self:-name:=name;
    end;

end:

p:=Object( person ); #create object

p:-get_name();

Error, invalid input: person:-get_name uses a 1st argument, self (of type person), which is missing

What changes are needed in the above code to be able to use  obj:-method()  syntax?

Or is it possible that this change did not go into Maple 2021?


 

Hey

 

I can't find the toolbar for drawing i Maple 2021. 

Can anyone help me? I'm using Macbook.

 

I try to clik on at picture but I can't see it.

I try to insert a drawnig but I can't see it.

 

Hope someone can help me.

Would be nice if someone could add Maple 2021 to Software Change Requests list.

Right now Maple 2021 is unusable for us due to a big problem related to saving workbooks.

I get the degree sequence of a graph, I want to create more graphs, but maple seems to only get the only graph.

Is there a good way to get more, a foolish dream, can we get all the graphs that satisfy this degree sequence condition?

with(GraphTheory):
L:=[7$1..22,6]:
IsGraphicSequence(L):
G := SequenceGraph(L):
DrawGraph(%)

 

 

 

Anyone have a problem with non-appearance of the animation toolbar in Maple 2021????

 

Whilst coming up with a response for the problem here

https://www.mapleprimes.com/questions/231862-Have-You-Ever-Heard-Of-Vector-Asterisks-

I found an issue with the non-appearance of the animation toolbar in Maple 2021. This is rather difficult to illustrate without the use of screenshots, for which I apologise.

Normally(?) I would just select a plot and the animation toolbar appears "as if by magic"

First screen shot is using Maple 2020, The blue highlighting rectangle around the plot was visible when I initiated the snip, but disappeared when the snipping tool activated. However this shows that the animation toolbar is available (and works)

I do exactly the same thing in  Maple 2021 and I can't make the animation toolbar appear - see below. Aagain the plot wa highlighted when I initiated the snip but the highlighting disappeared when the snipping tool activated. Now there is no sign of the animation toolbar

It is still possible to do very basic animation in Maple 2021 by clicking on the plot and using the context menu - but this is very basic

The code used in the above plots is given supplied below

  restart;
  kernelopts(version);
  plots:-display
         ( [ seq
             ( plot
               ( Vector([1, 3, 4, 6]),
                 Vector([8, 6, 2, 5]),
                 style = point,
                 symbol = j,
                 symbolsize = 40,
                 color = blue
               ),
               j in [ asterisk, box, circle, cross, diagonalcross,
                      diamond, point, solidbox, solidcircle, soliddiamond
                    ]
             )
           ],
           insequence = true
         );

Is it just me?

Consider an easy example of a table.

myTable:=table(["a"=1,"b"=-1,"c"=1]);

We can give an index to it and get its corresponding entry if exists.

myTable["b"];

We can also get the set of all indices, or the set of all entries. But what about receiving the index or set of indices with a specific entry. for example asking what indices have the entry `1`?

Of course I can define a search procedure myself, but I thought there might be an efficient way which is already implemented as a function/method on tables.

This is new exception generated by Maple pdsolve in 2021. Different from the last post I gave on pdsolve. So I thought it will be better to keep them separate since the causes are different.

interface(version)
restart;
pde :=  diff(w(x,y,z),x)+(a1*x^n1*y+b1*x^m1)*diff(w(x,y,z),y)+(a2*x^n2*y+b2*x^m1)*diff(w(x,y,z),z)= 0;
pdsolve(pde,w(x,y,z));

#another example

restart;
local gamma:
pde := diff(w(x,y,z),x)+(a1*x^n1*y+ b1*x^m1)*diff(w(x,y,z),y)+(a2*x^n2*y+b2*x^m2)*diff(w(x,y,z),z)=c2*x^k2*y+c1*x^k1*z;
pdsolve(pde,w(x,y,z));

 

Error, (in GAMMA) numeric exception: division by zero

The same PDE works in 2020.2. The answer it gives is large so will not show it all below.

Screen shots

Maple 2021

 

Maple 2020.2


All on windows 10.

Do other see the same error? What causes it?

 

I noticed number of pde's now fail in Maple 2021 with the error 

          int/gbinthm/structure INVALID subscript selector

but they do not fail in Maple 2020.2.

Here are few   examples

restart;
pde :=a*x^n*diff(w(x,y),x) + n*x^m*y*diff(w(x,y),y) =s*x^p*y^q+d;
pdsolve(pde,w(x,y));

restart;
pde :=a*x^n*diff(w(x,y),x) + n*x^m*y*diff(w(x,y),y)=c*x^k*y^s+d; 
pdsolve(pde,w(x,y)) 

restart;
pde :=a*x^n*diff(w(x,y),x)+b*x^m*y*diff(w(x,y),y) =  (c*x^k*y^s + d)*w(x,y);
pdsolve(pde,w(x,y))

restart;
pde :=  a*diff(w(x,y),x)+ y*diff(w(x,y),y) = b*w(x,y)+ c*x^n*y^m;
pdsolve(pde,w(x,y))

#etc..

Error, (in int/gbinthm/structure) invalid subscript selector
 

While in Maple 2020.2 they all work. Screen shot

Maple 2021

 

Maple 2020.2

 

Any idea why this happens? Do others see the same error?

 

 

First 37 38 39 40 Page 39 of 40