Maple 2022 Questions and Posts

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

I need to make my base class local variable static, so that when extending the class, the subclass will share these variable and use their current values as set by the base class. If I do not make them static, then the base class when extended, will get fresh instance of these variable, losing their original values, which is not what I want.

To do this, one must make the base class variables static

This works, but now I do not know the syntax where to put the type on the variable. 

I can't write   local m::integer::static; nor local m::static::integer;

I could only write local m::static; but this means I lost the ability to have a type on the variable and lost some of the type checking which is nice to have in Maple. From Maple help:

 

Here is example

restart;

base_class:=module()
  option object;
  local n::static;  #I want this type to ::integer also. But do not know how

  export set_n::static:=proc(_self,n::integer,$)
     _self:-n := n;
  end proc;
  
  export process::static:=proc(_self,$)
    local o;
    o:=Object(sub_class);
    o:-process();
  end proc;
end module;    

sub_class:=module()
   option object(base_class);
   process:=proc(_self,$)
      print("in sub class. _self:-n = ",_self:-n);
   end proc;
end module;

o:=Object(base_class);
o:-set_n(10);
o:-process()


            "in sub class. _self:-n = ", 10

The above is all working OK. I just would like to make n in the base class of type ::integer as well as ::static

Is there a syntax for doing this?

 

The suggested solution in the answer https://mapleprimes.com/questions/234325-Use-Of-self--Inside-Object-Constructor  worked OK in the setup shown in that question.

But it does not work when putting the constructor inside overload

Here is an example where it works (i.e. by removing the type from _self as suggested in the above answer)

restart;

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

    #notice no _self::person, just _self
    export ModuleCopy::static:= proc( _self, proto::person, the_name::string, $ )            
           name:= the_name;
    end proc;

end module;


p:=Object(person,"me")

The above works. But since I have different constructors, once I put the above inside overload, using the same exact syntax, now the error comes back

restart;

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

    export ModuleCopy::static:= overload( 
    [
       proc( _self, proto::person, the_name::string, $ ) option overload;           
           name:= the_name;
      end proc
    ]);

end module;
             

p:=Object(person,"me")

Error, static procedure `ModuleCopy` refers to non-static local or export `name::string` in surrounding scope

I did not expect that using overload will cause any change to how it behaves. Is this a bug?

Below is worksheet also.

interface(version);

`Standard Worksheet Interface, Maple 2022.1, Windows 10, May 26 2022 Build ID 1619613`

restart;

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

    export ModuleCopy::static:= proc( _self, proto::person, the_name::string, $ )            
           name:= the_name;
    end proc;

end module;

_m2950059551392

p:=Object(person,"me")

_m2950172920000

restart;

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

    export ModuleCopy::static:= overload(
    [
       proc( _self, proto::person, the_name::string, $ ) option overload;           
           name:= the_name;
      end proc
    ]);

end module;

_m2950059551392

p:=Object(person,"me")

Error, static procedure `ModuleCopy` refers to non-static local or export `name::string` in surrounding scope

 

Download OO_version.mw

I have a set of formulas I saved in a matrix and the exported the matrix to Excel. However when I open the file in Excel the equations are in prefix notation (I think).  That's not exactly human readable friendly.  If I copy and paste straight into excel they are readable.

It there a way to make the Maple export similar?

EDIT:-  I exported as a.csv file because if export as .xlsx    all the equation change into "#NUM!" in the spreadsheed.

restart

NULL

Digits := 5

5

(1)

interface(displayprecision = 5); interface(rtablesize = 30)

5

(2)

cosrule := proc (a, b, c, A) options operator, arrow; a^2 = b^2+c^2-2*b*c*cos(A) end proc

proc (a, b, c, A) options operator, arrow; a^2 = b^2+c^2-2*b*c*cos(A) end proc

(3)

Ang := solve(cosrule(a, b, c, A), A)

Pi-arccos((1/2)*(a^2-b^2-c^2)/(b*c))

(4)

Formulas := Matrix(20, 4)

 

 

 

 

data := [L[1] = 619.35, L[2] = 891.12, pos = 180, tos = 90, x1 = 600, y1 = -800, z1 = 500, x2 = 900, y2 = -200, z2 = 850, `Θt` = 29.34*Pi*(1/180), `Θp` = 53.98*Pi*(1/180)]
 

 

 

 

i := 3

res0 := `ΔZ` = z2-z1; Formulas[i, 1] := lhs(res0); Formulas[i, 2] := rhs(res0)

`ΔZ` = z2-z1

(5)

res0 := eval(res0, data); Formulas[i, 3] := rhs(res0); Formulas; i := i+1

`ΔZ` = 350

(6)

res1 := dt[1] = sqrt(tos^2+L[1]^2); Formulas[i, 1] := lhs(res1); Formulas[i, 2] := rhs(res1); res1 := eval(res1, data); Formulas[i, 3] := rhs(res1); Formulas; i := i+1

dt[1] = 625.85

(7)

NULL

res2 := d[1] = sqrt(pos^2+tos^2+L[1]^2); Formulas[i, 1] := lhs(res2); Formulas[i, 2] := rhs(res2); res2 := eval(res2, data); Formulas[i, 3] := rhs(res2); Formulas; i := i+1

d[1] = 651.22

(8)

res3 := dt[2] = sqrt(tos^2+L[2]^2); Formulas[i, 1] := lhs(res3); Formulas[i, 2] := rhs(res3); res3 := eval(res3, data); Formulas[i, 3] := rhs(res3); Formulas; i := i+1

dt[2] = 895.65

(9)

NULL

res4 := d[2] = sqrt(pos^2+tos^2+L[2]^2); Formulas[i, 1] := lhs(res4); Formulas[i, 2] := rhs(res4); res4 := eval(res4, data); Formulas[i, 3] := rhs(res4); Formulas; i := i+1

d[2] = 913.56

(10)

NULL

res7 := tau = arctan(tos/L[1]); Formulas[i, 1] := lhs(res7); Formulas[i, 2] := rhs(res7); res7 := eval(res7, data); Formulas[i, 3] := rhs(res7); 180*(eval(rhs(`%%`), data))/Pi; Formulas[i, 4] := %; Formulas; i := i+1

8.2678

(11)

NULL

res8 := rho = arctan(tos/L[2]); Formulas[i, 1] := lhs(res8); Formulas[i, 2] := rhs(res8); res8 := eval(res8, data); Formulas[i, 3] := rhs(res8); 180*(eval(rhs(`%%`), data))/Pi; Formulas[i, 4] := %; Formulas; i := i+1; data := [op(data), res0, res1, res2, res3, res4, res7, res8]

5.7674

(12)

NULL

res9 := alpha = `Θt`+tau-rho; Formulas[i, 1] := lhs(res9); Formulas[i, 2] := rhs(res9); res9 := eval(res9, data); Formulas[i, 3] := rhs(res9); 180*(eval(rhs(`%%`), data))/Pi; Formulas[i, 4] := %; Formulas; i := i+1; data := [op(data), res9]

31.840

(13)

NULL

NULL

NULL

res10 := dt[3] = solve(cosrule(dt[3], dt[2], dt[1], alpha), dt[3])[1]; Formulas[i, 1] := lhs(res10); Formulas[i, 2] := rhs(res10); res10 := eval(res10, data); Formulas[i, 3] := rhs(res10); Formulas; i := i+1; data := [op(data), res10]

dt[3] = 491.45

(14)

NULL

NULL

res11 := beta = solve(cosrule(dt[1], dt[2], dt[3], beta), beta); Formulas[i, 1] := lhs(res11); Formulas[i, 2] := rhs(res11); res11 := eval(res11, data); Formulas[i, 3] := rhs(res11); 180*(eval(rhs(`%%`), data))/Pi; Formulas[i, 4] := %; Formulas; i := i+1; data := [op(data), res11]

42.215

(15)

NULL

NULL

NULL

NULL

res12 := Zeta = arccos(`ΔZ`/dt[3]); Formulas[i, 1] := lhs(res12); Formulas[i, 2] := rhs(res12); res12 := eval(res12, data); Formulas[i, 3] := rhs(res12); 180*(eval(rhs(`%%`), data))/Pi; Formulas[i, 4] := %; Formulas; i := i+1; data := [op(data), res12]

44.588

(16)

NULL

NULL

res13 := dt[4] = dt[3]*sin(Zeta); Formulas[i, 1] := lhs(res13); Formulas[i, 2] := rhs(res13); res13 := eval(res13, data); Formulas[i, 3] := rhs(res13); Formulas; i := i+1; data := [op(data), res13]

Matrix(%id = 36893490716944981036)

(17)

 

``

NULL

``

NULL

currentdir()

"C:\Users\Ronan\Documents\MAPLE\A & Q Maple primes"

(18)

NULL

with(ExcelTools)

[Export, Import, WorkbookData]

(19)

NULLExport(Formulas, "Frmls.csv")NULL

Download test_eqn_export.mw

I noticed in object constructor I had to write  _self:-name  to refer to object own variable called name.  But inside a another proc I can use just name without having to add _self:- to it. It also works when adding _self:-

Is this becuase constructor is special proc, and the object is not yet full constructed?  Here is a MWE

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

    export ModuleCopy::static:= proc( _self::person, proto::person, the_name::string, $ ) 
            print("Enter  constructor");
           _self:-name:= the_name;

           #Why this fails here, but not in process proc? Is it because of special
           #case since done inside constructor?
           #print(name); 

           print(_self:-name);
    end proc;
 
   export process::static :=proc(_self,$)
     #here both cases work
     print(_self:-name);
     print(name);
   end proc;

end module;

#and now

p:=Object(person,"me")

The above works. But if I uncomment #print(name); inside the constructor, maple gives error

p:=Object(person,"me")
Error, static procedure `ModuleCopy` refers to non-static local or export `name::string` in surrounding scope

But this works with no error

p:-process()

                              "me"
                              "me"

But no such error when doing same thing inside a local static proc inside same module.

Is this special just for the constructor than one must use :-self ? Just wanted to make sure.

Maple 2022.1

Hi.

What wrong could be there with the color line?

restart:

with(plots):

equ1 := BesselJ(sqrt(17)/2, 10*sqrt(t)*sqrt(2))/t^(1/4) + BesselY(sqrt(17)/2, 10*sqrt(t)*sqrt(2))/t^(1/4):

equ2 := BesselJ(sqrt(17)/2, 10*sqrt(t)*sqrt(2))/t^(1/4) + 5*BesselY(sqrt(17)/2, 10*sqrt(t)*sqrt(2))/t^(1/4):

equ3 := BesselJ(sqrt(17)/2, 10*sqrt(t))/t^(1/4) + 5*BesselY(sqrt(17)/2, 10*sqrt(t))/t^(1/4):

tmax   := 30:
colors := ["Red", "Violet", "Blue"]:

p1 := plot([equ1, equ2, equ3], t = 0 .. tmax, labels = [t, T[2](t)], tickmarks = [0, 0], labelfont = [TIMES, ITALIC, 12], axes = boxed, color = colors):

ymin := min(op~(1, op~(2, op~(2, [plottools:-getdata(p1)])))):
ymax := max(op~(2, op~(2, op~(2, [plottools:-getdata(p1)])))):
dy   := 2*ymax:

legend1 := typeset(C[3] = 1, ` , `, C[4] = 1, ` , `, Omega^2 = 50):
legend2 := typeset(C[3] = 1, ` , `, C[4] = 5, ` , `, Omega^2 = 50):
legend3 := typeset(C[3] = 1, ` , `, C[4] = 5, ` , `, Omega^2 = 25):

p2 := seq(textplot([tmax-2, ymax-k*dy/20, legend||k], align=left), k=1..3):

p3 := seq(plot([[tmax-2, ymax-k*dy/20], [tmax-1, ymax-k*dy/20]], color=colors[k]), k=1..3):
display(p1, p2, p3, view=[default, -ymax..ymax], size=[800, 500])

Error, (in plot) invalid color specification: colors[1]

 

display(p1, p2, p3, view = [default, -ymax .. ymax], size = [800, 500])

(1)

 

Download Legend_Inside.mw

NULL

Loading Student:-ODEs

xi^2*(diff(psi[m](xi), xi, xi))+2*xi*(diff(psi[m](xi), xi))+(xi^2-m*(m+1))*psi[m](xi) = 0

xi^2*(diff(diff(psi[m](xi), xi), xi))+2*xi*(diff(psi[m](xi), xi))+(xi^2-m*(m+1))*psi[m](xi) = 0

(1)

Student:-ODEs:-ODESteps(xi^2*(diff(psi[m](xi), `$`(xi, 2)))+2*xi*(diff(psi[m](xi), xi))+(xi^2-m*(m+1))*psi[m](xi) = 0, psi[m](xi))

"[[,,"Let's solve"],[,,xi^2 (((ⅆ)^2)/(ⅆxi^2) psi[m](xi))+2 xi ((ⅆ)/(ⅆxi) psi[m](xi))+(xi^2-m (m+1)) psi[m](xi)=0],["•",,"Highest derivative means the order of the ODE is" 2],[,,((ⅆ)^2)/(ⅆxi^2) psi[m](xi)],["•",,"Isolate 2nd derivative"],[,,((ⅆ)^2)/(ⅆxi^2) psi[m](xi)=((m^2-xi^2+m) psi[m](xi))/(xi^2)-(2 ((ⅆ)/(ⅆxi) psi[m](xi)))/xi],["•",,"Group terms with" psi[m](xi) "on the lhs of the ODE and the rest on the rhs of the ODE; ODE is linear"],[,,((ⅆ)^2)/(ⅆxi^2) psi[m](xi)+(2 ((ⅆ)/(ⅆxi) psi[m](xi)))/xi-((m^2-xi^2+m) psi[m](xi))/(xi^2)=0],["▫",,"Check to see if" xi[0]=0 "is a regular singular point"],[,"?","Define functions"],[,,[P[2](xi)=2/xi,P[3](xi)=-(m^2-xi^2+m)/(xi^2)]],[,"?",xi*P[2](xi) "is analytic at" xi=0],[,,([]) ? ()|() ? (xi=0)=2],[,"?",xi^2*P[3](xi) "is analytic at" xi=0],[,,([]) ? ()|() ? (xi=0)=-m^2-m],[,"?",xi=0 "is a regular singular point"],[,,"Check to see if" xi[0]=0 "is a regular singular point"],[,,xi[0]=0],["•",,"Multiply by denominators"],[,,(-m^2+xi^2-m) psi[m](xi)+2 xi ((ⅆ)/(ⅆxi) psi[m](xi))+xi^2 (((ⅆ)^2)/(ⅆxi^2) psi[m](xi))=0],["•",,"Assume series solution for" psi[m](xi)],[,,psi[m](xi)=(∑)a[k] xi^(k+r)],["▫",,"Rewrite ODE with series expansions"],[,"?","Convert" xi^m*psi[m](xi) "to series expansion for" m=0..2],[,,[]=(∑)a[k] xi^(k+r+m)],[,"?","Shift index using" k "->" k-m],[,,[]=(∑)a[k-m] xi^(k+r)],[,"?","Convert" xi*((ⅆ)/(ⅆxi) psi[m](xi)) "to series expansion"],[,,[]=(∑)a[k] (k+r) xi^(k+r)],[,"?","Convert" xi^2*(((ⅆ)^2)/(ⅆxi^2) psi[m](xi)) "to series expansion"],[,,[]=(∑)a[k] (k+r) (k+r-1) xi^(k+r)],[,,"Rewrite ODE with series expansions"],[,,a[0] (r+1+m) (r-m) xi^r+a[1] (r+2+m) (r-m+1) xi^(1+r)+((∑)(a[k] (r+1+m+k) (r-m+k)+a[k-2]) xi^(k+r))=0],["•",,a[0] "cannot be 0 by assumption, giving the indicial equation"],[,,(r+1+m) (r-m)=0],["•",,"Values of r that satisfy the indicial equation"],[,,r in {m,-m-1}],["•",,"Each term must be 0"],[,,a[1] (r+2+m) (r-m+1)=0],["•",,"Solve for the dependent coefficient(s)"],[,,a[1]=0],["•",,"Each term in the series must be 0, giving the recursion relation"],[,,a[k] (r+1+m+k) (r-m+k)+a[k-2]=0],["•",,"Shift index using" k "->" k+2],[,,a[k+2] (r+3+m+k) (r-m+k+2)+a[k]=0],["•",,"Recursion relation that defines series solution to ODE"],[,,a[k+2]=-(a[k])/((r+3+m+k) (r-m+k+2))],["•",,"Recursion relation for" r=m],[,,a[k+2]=-(a[k])/((2 m+3+k) (k+2))],["•",,"Solution for" r=m],[,,[psi[m](xi)=(∑)a[k] xi^(k+m),a[k+2]=-(a[k])/((2 m+3+k) (k+2)),a[1]=0]],["•",,"Recursion relation for" r=-m-1],[,,a[k+2]=-(a[k])/((k+2) (-2 m+1+k))],["•",,"Solution for" r=-m-1],[,,[psi[m](xi)=(∑)a[k] xi^(k-m-1),a[k+2]=-(a[k])/((k+2) (-2 m+1+k)),a[1]=0]],["•",,"Combine solutions and rename parameters"],[,,[psi[m](xi)=((∑)a[k] xi^(k+m))+((∑)b[k] xi^(k-m-1)),a[k+2]=-(a[k])/((2 m+3+k) (k+2)),a[1]=0,b[k+2]=-(b[k])/((k+2) (-2 m+1+k)),b[1]=0]]]6""

(2)

Solving for Sum(a[k]*xi^(k+m), k = 0 .. infinity)

 

q := a(k+2) = -a(k)/((2*m+3+k)*(k+2))

a(k+2) = -a(k)/((2*m+3+k)*(k+2))

(1.1)

``

When m =1

 

NULL

m[1] := eval(q, m = 1)

a(k+2) = -a(k)/((5+k)*(k+2))

(2.1)

A := rsolve({m[1], a(0) = 1, a(1) = 0}, a(k))

3*(k+2)*cos((1/2)*k*Pi)/GAMMA(k+4)

(2.2)

add(A*(eval(xi^(k+m), m = 1)), k = 0 .. 16)

xi-(1/10)*xi^3+(1/280)*xi^5-(1/15120)*xi^7+(1/1330560)*xi^9-(1/172972800)*xi^11+(1/31135104000)*xi^13-(1/7410154752000)*xi^15+(1/2252687044608000)*xi^17

(2.3)

``

When m =2

 

 

NULL

m[2] := eval(q, m = 2)

a(k+2) = -a(k)/((7+k)*(k+2))

(3.1)

A := rsolve({m[2], a(0) = 1, a(1) = 0}, a(k))

105*(k+4)*(k+2)*(k+6)*cos((1/2)*k*Pi)/GAMMA(k+8)

(3.2)

add(A*(eval(xi^(k+m), m = 2)), k = 0 .. 16)

xi^2-(1/18)*xi^4+(1/792)*xi^6-(1/61776)*xi^8+(1/7413120)*xi^10-(1/1260230400)*xi^12+(1/287332531200)*xi^14-(1/84475764172800)*xi^16+(1/31087081215590400)*xi^18

(3.3)

NULL

When m=3

 

NULL

m[3] := eval(q, m = 3)

a(k+2) = -a(k)/((9+k)*(k+2))

(4.1)

A := rsolve({m[3], a(0) = 1, a(1) = 0}, a(k))

105*(k+4)*(k+2)*(k+6)*cos((1/2)*k*Pi)/GAMMA(k+8)

(4.2)

add(A*(eval(xi^(k+m), m = 3)), k = 0 .. 16)

xi^3-(1/18)*xi^5+(1/792)*xi^7-(1/61776)*xi^9+(1/7413120)*xi^11-(1/1260230400)*xi^13+(1/287332531200)*xi^15-(1/84475764172800)*xi^17+(1/31087081215590400)*xi^19

(4.3)

NULL

When m=4

 

NULL

m[4] := eval(q, m = 4)

a(k+2) = -a(k)/((11+k)*(k+2))

(5.1)

A := rsolve({m[4], a(0) = 1, a(1) = 0}, a(k))

945*(k+4)*(k+8)*(k+2)*(k+6)*cos((1/2)*k*Pi)/GAMMA(k+10)

(5.2)

add(A*(eval(xi^(k+m), m = 4)), k = 0 .. 16)

xi^4-(1/22)*xi^6+(1/1144)*xi^8-(1/102960)*xi^10+(1/14002560)*xi^12-(1/2660486400)*xi^14+(1/670442572800)*xi^16-(1/215882508441600)*xi^18+(1/86353003376640000)*xi^20

(5.3)

``

When m=5

 

NULL

m[5] := eval(q, m = 5)

a(k+2) = -a(k)/((13+k)*(k+2))

(6.1)

A := rsolve({m[5], a(0) = 1, a(1) = 0}, a(k))

10395*(k+10)*(k+4)*(k+8)*(k+2)*(k+6)*cos((1/2)*k*Pi)/GAMMA(k+12)

(6.2)

add(A*(eval(xi^(k+m), m = 5)), k = 0 .. 16)

xi^5-(1/26)*xi^7+(1/1560)*xi^9-(1/159120)*xi^11+(1/24186240)*xi^13-(1/5079110400)*xi^15+(1/1401834470400)*xi^17-(1/490642064640000)*xi^19+(1/211957371924480000)*xi^21

(6.3)

NULL

Now solving  for Sum(b[k]*xi^(k-m-1), k = 0 .. infinity)

 

s := b(k+2) = -b(k)/((k+2)*(-2*m+1+k))

b(k+2) = -b(k)/((k+2)*(-2*m+1+k))

(7.1)

NULL

The final solution is the sum of 2 terms and I am doing it individually for 1st term. I think I am doing it wrong because answer did not match when comparing with textbook answer. Can anyone teach me or hint me compute the final series for m=1 to 10. An example of final series for m=1 would be helpful. 

Download ODE_sol.mw

 I came across this question while trying to verify the equality of expressions containing elliptic integrals.

 

That's what Maple returns for EllipticK(1)

EllipticK(1)

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

 

However

evalf(EllipticK(1.))

Float(infinity)

(1)

limit(EllipticK(k), k = 1, left)

infinity

(2)

indicate infinity.

Float(infinity) = infinity

Float(infinity) = infinity

(3)

is(Float(infinity) = infinity)

true

(4)

NULL

Download EllpticK(1).mw

I have no experience with elliptic integrals. Can I assume in this case that infinity is correct?

When The subgraph is too many, the label will hide automatically. Such as:

DrawSubgroupLattice(SmallGroup(200, 31), labels = ids)

But the labels is important to me. I can accept a more larger graph and more smaller text in labels. Is it possible?

Generators(SmallGroup(60, 10))

Wii get this result:

But I hope to copy this junk information into my clipboard.

But my clipboard just get such information:

[module() ... end module,module() ... end module,module() ... end module,module() ... end module]

Or I copy it as Latex format, I will get those extra \left\right:


\left[\left(1,4,5\right)\left(2,9,10\right)\left(3,13,14\right)\left(6,17,19\right)\left(7,18,20\right)\left(8,23,24\right)
\\
\left(11,27,29\right)\left(12,28,30\right)\left(15,33,35\right)\left(16,34,36\right)\left(21,39,41\right)
\\
\left(22,40,42\right)\left(25,43,45\right)\left(26,44,46\right)\left(31,49,51\right)\left(32,50,52\right)
\\
\left(37,53,55\right)\left(38,54,56\right)\left(47,57,59\right)\left(48,58,60\right),
\\
\left(1,6,21,22,7\right)\left(2,11,31,32,12\right)\left(3,15,37,38,16\right)
\\
\left(4,17,39,40,18\right)\left(5,19,41,42,20\right)\left(8,25,47,48,26\right)
\\
\left(9,27,49,50,28\right)\left(10,29,51,52,30\right)\left(13,33,53,54,34\right)
\\
\left(14,35,55,56,36\right)\left(23,43,57,58,44\right)\left(24,45,59,60,46\right),
\\
\left(1,2\right)\left(3,8\right)\left(4,9\right)\left(5,10\right)\left(6,12\right)\left(7,11\right)\left(13,23\right)\left(14,24\right)
\\
\left(15,26\right)\left(16,25\right)\left(17,28\right)\left(18,27\right)\left(19,30\right)\left(20,29\right)\left(21,32\right)
\\
\left(22,31\right)\left(33,44\right)\left(34,43\right)\left(35,46\right)\left(36,45\right)\left(37,48\right)\left(38,47\right)
\\
\left(39,50\right)\left(40,49\right)\left(41,52\right)\left(42,51\right)\left(53,58\right)\left(54,57\right)\left(55,60\right)
\\
\left(56,59\right),
\\
\left(1,3\right)\left(2,8\right)\left(4,13\right)\left(5,14\right)\left(6,15\right)\left(7,16\right)\left(9,23\right)\left(10,24\right)
\\
\left(11,25\right)\left(12,26\right)\left(17,33\right)\left(18,34\right)\left(19,35\right)\left(20,36\right)\left(21,37\right)
\\
\left(22,38\right)\left(27,43\right)\left(28,44\right)\left(29,45\right)\left(30,46\right)\left(31,47\right)\left(32,48\right)
\\
\left(39,53\right)\left(40,54\right)\left(41,55\right)\left(42,56\right)\left(49,57\right)\left(50,58\right)\left(51,59\right)
\\
\left(52,60\right)\mathrm{
\\}\right]

But I just want to copy the output what I have seen

Hello there, 

Would you allow me to ask this question?

Is there any way to apply 'collect' command using a term by multiplication of variables?

The following worksheet shows an example. What I wanted to see is the 'desired' expression, while multiple attempts with 'collect' command failed. 


 

restart;

eq_e5_10z := Psi[q0]*Delta*delta = 1/(omega[0])*p(Delta*Psi[q])+Delta*Psi[d]+Psi[d0]*1/(omega[0])*p(Delta*delta);

Psi[q0]*Delta*delta = p(Delta*Psi[q])/omega[0]+Delta*Psi[d]+Psi[d0]*p(Delta*delta)/omega[0]

(1)

eq_e5_10za := Delta*Psi[d] = Psi[q0]*Delta*delta - op(1, rhs(eq_e5_10z)) - op(3, rhs(eq_e5_10z));

Delta*Psi[d] = Psi[q0]*Delta*delta-p(Delta*Psi[q])/omega[0]-Psi[d0]*p(Delta*delta)/omega[0]

(2)

eq_e5_10zb := subs({p(Delta*Psi[q])=0}, eq_e5_10za);

Delta*Psi[d] = Psi[q0]*Delta*delta-Psi[d0]*p(Delta*delta)/omega[0]

(3)

collect(rhs(eq_e5_10zb), {Delta*delta});# error

Error, (in collect) cannot collect Delta*delta

 

collect(rhs(eq_e5_10zb), [Delta*delta]);# error

Error, (in collect) cannot collect Delta*delta

 

collect(rhs(eq_e5_10zb), [Delta, delta]);# did not work  

Psi[q0]*Delta*delta-Psi[d0]*p(Delta*delta)/omega[0]

(4)

Desired := (psi__q0 - psi__d0*p/omega__0)*(Delta*delta);

(psi__q0-psi__d0*p/omega__0)*Delta*delta

(5)

 


 

Download Q20220602.mw

We have just released an update to Maple, Maple 2022.1.

Maple 2022.1 includes improvements to the math engine, Plot Builder, Print Layout mode, and more.  We strongly recommend that all Maple 2022 users install these updates.

This update is available through Tools>Check for Updates in Maple, and is also available from our website on the Maple 2022.1 download page, where you can also find more details.

In particular, please note that this update includes fixes to problems with Units:-Simple (here and here), evala, sum, and deleting tasks from a task template, all reported on MaplePrimes. As always, thanks for the feedback!

pointplot works with units, textplot apparently doesn't

"with(DocumentTools):   with(Units[Simple]):  with(plots):"

 

    a := 15*Unit('m')

15*Units:-Unit(m)

(1)

b := 10*Unit('m')

10*Units:-Unit(m)

(2)

displayPoints := pointplot([a, b])

 

displayText := textplot([a, b, "text"])

Error:TEXT location must be numeric; received: [`+`(`*`(15., `*`(Unit(m)))), `+`(`*`(10., `*`(Unit(m))))]

 

NULL

Download Textplot.mw

  1. I use both Maple and Matlab
  2. I also install (a stripped down version of) Maple as the "symbolic toolbox" for Matlab using the executable MapleToolbox2022.0WindowsX64Installer.exe, which lives in C:\Program Files\Maple 2022. This gives me acces to (some) symbolic computation capability from within Matlab.
  3. This installation process has been working for as long as I remember, certainly more than 10 years
  4. With Maple 2022 and Matlab R2022a, this installation process ran with no problems and I can perform symbolic computation within Matlab
  5. However, although the Matlab help lists the Maple toolbox as supplemental software (as in all previous releases), I can no longer acces help for Maple from within Matlab - I just get a "Page not found" message
  6. The relevant Maple "help" is at the same place within the Matlab folder structure which is C:\Program Files\MATLAB\R2022a\toolbox\maple\html
  7. I have just spoken to support at Matlab and they claim tha this must be a Maple (or Maple toolbox installer issue) - so nothing to do with them!
  8. Has anyone else had a similar problem andd found a workaround?

I've been asking a similar question:

How does Maple call external programs such as nauty?

Recently I used Mathematica to call these gadgets very succinctly, so I revisit the topic, and maybe Maple can do it as well, but I just didn't do it the right way.

  • nauty and Traces are programs for computing automorphism groups of graphs and digraphs. There is a small suite of programs called gtools included in the package. For example, geng can generate non-isomorphic graphs very quickly. 
  • plantri and fullgen are programs for generation of certain types of planar graph.

We note that binary executables of above two programs for Windows are not officially available. Fortunately, I recently compiled them by cygwin.  Of course, other operating systems can make it easier to use them. See attached two compressed files of compiled nauty and plantri programs for Windows.

The official websites of the two programs are listed below.

So, I found that Mathematica works very well for running these programs by Import. We list the following two examples: first example is to get all non-isomorphic 10-order 2-partite connected graph, and the second example is to get all 14-order non-isomorphic  quadrilateral graphs (the planar graphs in which any face is 4-face).

glist10 = Import["!D:/nauty27r3/geng -c -b 10", "Graph6"]; // AbsoluteTiming
Length[glist10]

g14 = Import["!D:/plantri52/plantri 14 -q -g ", "Graph6"] // AbsoluteTiming

 

I tried maple's Import or ImportGraph functions, but both failed.

restart: 
with(GraphTheory):
L:=ImportGraph("!D:/nauty27r3/geng -c -b 10 -g",output=list):
L2:=Import("!D:/nauty27r3/geng -c -b 10 -g"):

Error, invalid input: GraphTheory:-ImportGraph uses a 2nd argument, format (of type {string, symbol}), which is missing
Error, (in Import) must specify format for this input

The problem seems to be not recognizing compilations symbols " !".  I don't know if Maple can do this like mathematica.

Hi everyone, Could you help me to get a general solution to the following ode? Here rho and z are constants.

ODE := cos(g(t))^2*(diff(T(t), t, t))-3*rho*(diff(g(t), t))*cos(g(t))*sin(g(t))*(diff(T(t), t))+(Omega^2*cos(g(t))^z-8*rho^2*(diff(g(t), t))^2*sin(g(t))^2+2*sin(g(t))*cos(g(t))*(diff(g(t), t, t))*rho+2*(cos(g(t))^2)(diff(g(t), t))^2*rho+2*rho*(diff(g(t), t))^2*sin(g(t))^2)*T(t) = 0

cos(g(t))^2*(diff(diff(T(t), t), t))-3*rho*(diff(g(t), t))*cos(g(t))*sin(g(t))*(diff(T(t), t))+(Omega^2*cos(g(t))^z-8*rho^2*(diff(g(t), t))^2*sin(g(t))^2+2*sin(g(t))*cos(g(t))*(diff(diff(g(t), t), t))*rho+2*(cos(g(t)))(diff(g(t), t))^4*rho+2*rho*(diff(g(t), t))^2*sin(g(t))^2)*T(t) = 0

(1)

dsolve(ODE, T(t))

T(t) = DESol({-(-Omega^2*cos(g(t))^z+8*rho^2*(diff(g(t), t))^2*sin(g(t))^2-2*sin(g(t))*cos(g(t))*(diff(diff(g(t), t), t))*rho-2*(cos(g(t)))(diff(g(t), t))^4*rho-2*rho*(diff(g(t), t))^2*sin(g(t))^2)*_Y(t)/cos(g(t))^2-3*rho*(diff(g(t), t))*sin(g(t))*(diff(_Y(t), t))/cos(g(t))+diff(diff(_Y(t), t), t)}, {_Y(t)})

(2)

NULL


Thanks.

Download ode_rlmt.mw

First 37 38 39 40 41 42 Page 39 of 42