Maple 2022 Questions and Posts

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

Hi,

I use Maple version 2022.1 on macOS 10.14.6.

I have big problems with the parabolic groups in the "LieAlgebra" package.

First of all in the help for "Query > Parabolic", the link refers to the help page for the commands "CylinderU, CylinderV, CylinderD" which have nothing to do with it. Also, the command "Query(Alg, "Parabolic")" does not work.

Below is a list of commands that give an error for "Query".

restart:with(LinearAlgebra):with(DifferentialGeometry):with(LieAlgebras):

L:=[
Matrix(5, 5, [[0, 0, 1, 1, 1], [0, 0, 0, 0, 0], [-1, 0, 0, 0, 0], [-1, 0, 0, 0, 0], [-1, 0, 0, 0, 0]]), 
Matrix(5, 5, [[0, 1, 0, 1, 1], [-1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [-1, 0, 0, 0, 0], [-1, 0, 0, 0, 0]]), 
Matrix(5, 5, [[0, 1, 1, 0, 1], [-1, 0, 0, 0, 0], [-1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [-1, 0, 0, 0, 0]]), 
Matrix(5, 5, [[0, 1, 1, 1, 0], [-1, 0, 0, 0, 0], [-1, 0, 0, 0, 0], [-1, 0, 0, 0, 0], [0, 0, 0, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, 1, 1], [0, 0, 0, 0, 0], [0, -1, 0, 0, 0], [0, -1, 0, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 1, 0, 1], [0, -1, 0, 0, 0], [0, 0, 0, 0, 0], [0, -1, 0, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 1, 1, 0], [0, -1, 0, 0, 0], [0, -1, 0, 0, 0], [0, 0, 0, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, -1, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 0, 0], [0, 0, -1, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, -1, 0, 0], [0, 1, 0, 1, 0], [0, 0, -1, 0, 0], [0, 0, 0, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, -1, 0], [0, 0, 0, -1, 0], [0, 1, 1, 0, 0], [0, 0, 0, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 1], [0, 0, -1, 0, 0], [0, 0, -1, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, -1, 0], [0, 0, 1, 0, 1], [0, 0, 0, -1, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, -1], [0, 0, 0, 0, -1], [0, 0, 1, 1, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, -1, 0], [0, 0, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, -1, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, 0, -1], [0, 0, 0, 0, 0], [0, 0, 0, 0, -1], [0, 1, 0, 1, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, 0, -1], [0, 0, 0, 0, -1], [0, 0, 0, 0, 0], [0, 1, 1, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, -1/2*sqrt(2), -1/2*sqrt(2), -1/2*sqrt(2)], [0, 1/2*sqrt(2), 0, 0, 0], [0, 1/2*sqrt(2), 0, 0, 0], [0, 1/2*sqrt(2), 0, 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 1/2*sqrt(6), 1/6*sqrt(6), 1/6*sqrt(6)], [0, -1/2*sqrt(6), 0, -1/3*sqrt(6), -1/3*sqrt(6)], [0, -1/6*sqrt(6), 1/3*sqrt(6), 0, 0], [0, -1/6*sqrt(6), 1/3*sqrt(6), 0, 0]]), 
Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, 2/3*sqrt(3), 1/6*sqrt(3)], [0, 0, 0, 2/3*sqrt(3), 1/6*sqrt(3)], [0, -2/3*sqrt(3), -2/3*sqrt(3), 0, -1/2*sqrt(3)], [0, -1/6*sqrt(3), -1/6*sqrt(3), 1/2*sqrt(3), 0]]), Matrix(5, 5, [[0, 0, 0, 0, 0], [0, 0, 0, 0, 1/2*sqrt(5)], [0, 0, 0, 0, 1/2*sqrt(5)], [0, 0, 0, 0, 1/2*sqrt(5)], [0, -1/2*sqrt(5), -1/2*sqrt(5), -1/2*sqrt(5), 0]])];

LieP:=LieAlgebraData(L,Alg):
DGsetup(LieP);
Query(Alg,"Parabolic");

 

I use Int to show some step before evaluating it to become normal int

I'd like to show the following when the integrand is one:

But Int(x) does not work, and Int(,x) gives syntax error. So only choice is to use Int(1,x) which does not look as nice as the above

Is there a trick to use? i.e. when the integrand is one, I want to display it as the first image and not as the second image. This is just to make the Latex look a little nicer only.

I tried few things, but nothing worked so far, as Int needs something there where I want the empty spot to be (There is actually 1 there ofcourse, but I do not want to show the 1).

May be we need a Latex settings for this?  Or interface setting?

Maple 2022.1

I recently got introduced to fractional calculus, I saw this image on the internet and went to verify the 3rd block of image i.e fractional differentiation on Maple 2022. But Maple returned answer which does not match the result claimed in the image i.e x. I want to know what I am missing here. But when used fracdiff() the answer matches.I also wanted to know how its done by using showSolution command but didn't get the answer. Can I get the steps? meme.mw


f := diff(x, [`$`(x, 1/2)])

x

(1)

``

evalb(diff(x, [`$`(x, 1/2)]) = x)

true

(2)

evalb(diff(x, [`$`(x, 1/2)]) = 2*sqrt(x/Pi))

false

(3)

ShowSolution(diff(x, x^(1/2)))

Error, invalid input: diff received x^(1/2), which is not valid for its 2nd argument

 

fracdiff(x, x, 1/2)

2*x^(1/2)/Pi^(1/2)

(4)

ShowSolution(fracdiff(x, x, 1/2))

Error, (in Student:-Calculus1:-ShowSolution) input expression does not have any incomplete calculus operations

 

NULL


Download meme.mw

 

I am curious to know steps of integration for e^(t^3)*(cos(t))^3 as Maple found the answer correctly. So I wanted to know how it got to that solution. I applied the commands shown in document but unable to get steps. I want to know the reason for this and is it possible to get it work.
 

``

exp(t^2)*cos(t)^3

int(exp(t^2)*cos(t)^3, t)

-((1/16)*I)*Pi^(1/2)*exp(9/4)*erf(I*t+3/2)-((3/16)*I)*Pi^(1/2)*exp(1/4)*erf(I*t+1/2)-((3/16)*I)*Pi^(1/2)*exp(1/4)*erf(I*t-1/2)-((1/16)*I)*Pi^(1/2)*exp(9/4)*erf(I*t-3/2)

(1)

Student[Calculus1][IntTutor]()

eval(-((1/16)*I)*Pi^(1/2)*exp(9/4)*erf(I*t+3/2)-((3/16)*I)*Pi^(1/2)*exp(1/4)*erf(I*t+1/2)-((3/16)*I)*Pi^(1/2)*exp(1/4)*erf(I*t-1/2)-((1/16)*I)*Pi^(1/2)*exp(9/4)*erf(I*t-3/2), [t = 1])

-((1/16)*I)*Pi^(1/2)*exp(9/4)*erf(3/2+I)-((3/16)*I)*Pi^(1/2)*exp(1/4)*erf(1/2+I)+((3/16)*I)*Pi^(1/2)*exp(1/4)*erf(1/2-I)+((1/16)*I)*Pi^(1/2)*exp(9/4)*erf(3/2-I)

(2)

evalf[10](-((1/16)*I)*Pi^(1/2)*exp(9/4)*erf(3/2+I)-((3/16)*I)*Pi^(1/2)*exp(1/4)*erf(1/2+I)+((3/16)*I)*Pi^(1/2)*exp(1/4)*erf(1/2-I)+((1/16)*I)*Pi^(1/2)*exp(9/4)*erf(3/2-I))

.8154967124+0.*I

(3)

        
with(Student:-Calculus1):

 

 

Understand(Int, constant, constantmultiple, sum, difference)

ShowSolution(Int(exp(t^2)*cos(t)^3, t), maxsteps = 1000)

Error, (in Student:-Calculus1:-ShowSolution) unable to compute solution steps

 

NULL


 

Download e.mwe.mw

 

Given

restart;
eq:=A=(1/2+x+y)^(3);
the_rhs:=solve(eq,A);

I asked solve to solve the above equation for A, expecting to get back (1/2+x+y)^(3), but it returns instead this

I looked at solve options, and tried number of them, but no change. I was looking for option to tell Maple not to simplify as it solves.

I also tried to see if the solution returned can be put back to the original form, and could not so far find a way, tried simplify and some options. But I did not try every possible method as there are do many.

Compare to Mathematica, which keeps the solution the same, as what one would expect. I see no reason to change it

ClearAll[A,x,y]
eq=A==(1/2+x+y)^3
Solve[eq,A]

The reason I am asking, is that it now makes parsing a little harder as I am looking for something in the form (expression)^power   as the solution.  i.e. the type to be `^`.    Now the type shows up as `*` because Maple for some reason changed it. 

It will easier if Maple did not do that, or if there is a way to change the expression back to the way it was. If all this fails, I have to just make the parsing handle this extra case form if needed.

Any suggestions?

Maple 2022.1

Update

Found a way after lots of trials and errors

simplify(the_rhs,[power,symbolic]);

 

But it would have been better if Maple did not do the simplification in the first place. But I could not find an option to tell it to do that while solving.

 

Maple 2022.1 on windows 10

restart;
w:=y-x/(c-x):
p1:=plots:-implicitplot(eval(w,c=2),x=-6..9,y=-3..3):
p2:=plots:-implicitplot(eval(w,c=2),x=-6..10,y=-3..3):
p3:=plots:-implicitplot(eval(w,c=2),x=-6..11,y=-3..3):
[p1,p2,p3]

Gives

 

Notice p2. The vertical line is gone. This happens when the range x=-6..10 and it shows back again when x=-6..11 or x=-6..9

Why does this happen? It is the same equation.

 

I tried different things but can't figure how to make Maple give a simplified result from int command without these RootOf with sums in them. Here is an example.

restart;
anti:=int(1/(a+x^(1/5)),x);

The strange thing is that doing

eval(anti,a=1)

Keeps these rootsOf and Sums there. But doing

anti:=int(1/(1+x^(1/5)),x);

Gives simplified result without RootOf

I tried DEtools:-remove_RootOf and assumptions and value() but nothing worked. I tried assumptions on a, such as assuming a::integer,a>0 and other things. 

I need similar result as Mathematica:

ClearAll[x, a];
Integrate[1/(a + x^(1/5)), x]

I am sure there is an option in Maple to do that, i.e. give result without these RootOf and Sums. But so far, I could not find it. I looked at options to int() command also. 

Any one know what option to use or how to simplifies it the the above result by Mathematica? 

Maple 2022.1 on windows 10

Is it considered OK to give singular solution to an ode which does not satisfy the ode?

I thought may be because it is singular solution and not general solution, then that is allowed sometimes. But it seems strange to me to give a solution which cleary do not satisfy the ode, even if it is singular.  But may be because it is singular, it is not required to satisfy the ode? Here is an example

restart;
ode_1:=diff(y(x),x)=sqrt(1+x+y(x)) ;
sol_1:=DEtools:-dalembertsol(ode_1);

Gives

But the first given "solution" (singular) does not satisfy the ode. Plugging it into the ode gives  -1=1.  Also odetest(y(x)=-x,ode_1) agrees it does not satisfy the ode. It gives -2 and not zero.

What do others think about this?  

This works

restart;
ode := diff(y(x),x)=a0+a1*y(x)+a2*y(x)^2+a3*y(x)^3;
DEtools:-abelsol(ode);

But this does not

restart;
ode := diff(y(x),x)=a0+a1*y(x)+a2*y(x)^2+a3*y(x)^3;
name_of_solver:=abelsol;
DEtools:-name_of_solver(ode);

Then I found this made it work

eval(DEtools:-name_of_solver)(ode);

So I am guessing what happens is this: doing DEtools:-name_of_solver Maple first searched for a proc called name_of_solver inside DEtools package, and found none. So it does not work.

But adding eval first, then name_of_solver is evaluated and replaced by abelsol and after that the call is made, and it then finds this proc inside the DEtools package.

But my question is, why is eval needed here?

Is it not automatically happens that a variable is replaced by its value? So I expected DEtools:-name_of_solver to automatically become DEtools:-abelsol and only then the call is made.

Why the rule of evaluation is different in this case?

Formatting_exponents_in_typesetting_situations.mw
How do I format express an exponent in standard notation when typesetting a caption?  10^2 displays as 100 when I want it to display as 10^2 but without the caret.

restart

with(plots)

logplot(10^x, x = 0 .. 8, size = [300, 300], legend = [y(x) = 10^x], legendstyle = [location = top], caption = typeset("How do I type,", 10^8, ", and have it show up as 10^8 in the caption?"))

 

NULL

Download Formatting_exponents_in_typesetting_situations.mw

Any one knows of a way to have Maple verify that this solution of the ODE is correct?

restart;
ode:=diff(y(x),x)=x*(y(x)^2-1)^(2/3);
sol:=dsolve(ode);
odetest(sol,ode);

gives

-4*x*y(x)^2*hypergeom([3/2, 5/3], [5/2], y(x)^2)*(y(x)^2 - 1)^(2/3)*signum(y(x)^2 - 1)^(1/3) - 9*x*hypergeom([1/2, 2/3], [3/2], y(x)^2)*(y(x)^2 - 1)^(2/3)*signum(y(x)^2 - 1)^(1/3) - 9*x*(-signum(y(x)^2 - 1))^(1/3)

Tried different simplications, but can't get zero.

For reference, this is Mathematica's solution and it verifies it:

Using Maple 2022.1 on windows 10.

Hi, guys. 

I have a question with D(D)^k, where D is a diagonal matrix,k>=0,for example

D:=<<6, 0> | <0, -1>>

I want Dk to be simplified to the form

<<6k, 0> | <0, (-1)k>>

How can I get it?

TKS in advance!

Recently, I tried to write a function to get the lexicographic product of two graphs.

In  graph theory the lexicographic product G ∙ H of graphs G and H is a graph such that
  • the vertex set of G ∙ H is the cartesian product V(G) × V(H); and
  • any two vertices (u,v) and (x,y) are adjacent in G ∙ H if and only if either u is adjacent with x in G or u = x and v is adjacent with y in H.

I'm trying to write this function as defined after making sure it doesn't exist in maple. I saw a similar post by mathematica stack.

There are many answers in the post, the most interesting to me is the following code, which follows the definition of lexicographic product. 

lexicographicProduct[g1_?UndirectedGraphQ, g2_?UndirectedGraphQ, opt : OptionsPattern[]] := 
 RelationGraph[
   (* two nodes are connected if their corresponding nodes in the first graph are connected *)
   EdgeQ[g1, First[#1] \[UndirectedEdge] First[#2]] || 
   (* or their corresponding nodes in the first graph are the same and their corresponding nodes in the second graph are connected *)
   (First[#1] === First[#2] && EdgeQ[g2, Last[#1] \[UndirectedEdge] Last[#2]]) &,

   (* the vertices are the cartesian product of the two vertex sets *)
   Tuples[{VertexList[g1], VertexList[g2]}],

   (* also allow setting graph options *)
   opt
 ]

lexicographicProduct[CycleGraph[5], CycleGraph[3]]

It utilizes the  function RelationGraph in Mathematica. I feel that this function is generic in nature. So here I would ask maple if they had a similar function.

Function RelationGraph is to generate a graph based on data and a binary relation.

For example, using RelationGraph  I  can get easily  the kth power Gk of an graph G which is another graph that has the same set of vertices, but in which two vertices are adjacent when their distance in G is at most k.

Dis[g1_?UndirectedGraphQ, k_] := 
 RelationGraph[
  GraphDistance[g1, #1, #2] <= k && GraphDistance[g1, #1, #2] != 0 &, 
  VertexList[g1]]
Dis[PathGraph[Range[10]], 2]

If I use maple and do not use the built-in function GraphPower, I might deal with the following.

with(GraphTheory):
with(SpecialGraphs):
graphpower:=proc(G,k):
local choo,edge,vex,g;
 vex:=convert(Vertices(G),list);
 choo:= choose(vex, 2):
 g:= Graph(Vertices(G)):
 for edge in choo do 
     if Distance(G, edge[1], edge[2])<=k  then 
        AddEdge(g, convert(edge,set))
     fi;
  end do:
 return g;
end proc:
s:=graphpower(PathGraph(10),2);DrawGraph(s)

 

 

I believe if the RelationGraph function can be  implemented in maple, the function lexicographicProduct would be easier to obtain.

Declaring types of arguments of a procedure or checking type of something when working with lists or Arrays is easy. For example one can easily use A :: list( posint ) or type( B :: 'Array'( polynom ) ), but with MutableSet, the same approach ends with an error;

Error, module does not have a ModuleType member to accept structured type arguments.

I guess it is the same for other objects defined as a module with option object. Is there a recommended way to have type declaration for such objects or MutableSet in specific?

I was surprised to learn that implicitplot doesn't recognize the constant Pi.  I attach a simple example to illustrate.

restart

with(plots)

f := x-y-Pi

x-y-Pi

(1)

implicitplot(f)

Error, (in plots/implicitplot) found 3 variables that the expression depends on ({Pi, x, y}), but expected only 2

 

evalf(Pi)

3.141592654

(2)

g := x-y-3.14

x-y-3.14

(3)

implicitplot(g)

 

NULL

Download implicitplot_error.mw

First 36 37 38 39 40 41 42 Page 38 of 43