Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

I have Maple 2016 and Matlab 2016b installed on my Windows destop.

When I run

with(Matlab);
openlink()

in a Maple worksheet the following error window appears.

After closing the window I also see the following error message,

Error, (in Matlab:-openlink) there was a problem finding or loading matlink.dll. Refer to ?Matlab,setup for help configuring your system to work with the Matlab-link.

How to fix the connection from Maple to Matlab?


A classical probability result says that if G1 and G2 are two independent Gamma random variables with same scale parameter (let's say 1 to simplify) and shape parameters a1 and a2 respectively, then Gk / (G1 + G2 ) is a Beta random variable with parameters (ak , a3-k ) (k=1..2).

In the attached file it is shown that (Maple 2015) function Statistics:-PDF fails in computing the PDF of Gk.
Noting strange here if you observe that even in the extremely simple case Z = X / (X+Y), where both X and Y are independent Uniform random variable with support [0, 1), Maple 2015 already fails in computing PDF(Z).

An alternative to Statistics:-PDF is to write explicitely the double integration which defines CDF(Z) (to begin with, and later PDF(Gk)) and ask Maple to do the integrations.
This approach works for Z but requires helping Maple when X and Y are still independent Uniform random variables but with respective non instanciated supports [0, a1) and [0, a2).

Applying to the Gamma-Gamma case the recipies I introduced in the Uniform-Uniform case does not give any result, unless in the very particular case where the shape parameters a1 and a2 are (strictly) positive integers.

All the details are in X_over_(X_plus_Y).mw

Do you have any idea how to prove with Maple the probability result mentioned at the head of this question?

PS: The "classical method" to do compute PDF(Z) consists in changing the integration variables < x1, x2 > into < x1 = v1v2, x2 = v2 (1-v1) > (see for instance Stack exchange)... but even after having dome it I still cannot get the desired result.

Thanks in advance.

I experience the following quirk using maple 2025 in worksheet mode: copy a formula and then paste it can often freeze the program. Termination only via ctrl-Alt-delete task manager. Has anybody similar problems or should i think that is happening only in my case?

f(a).b;            #ok
                           (f(a)) . b

op(0, f(a).b);     #ok
                               .

lprint(f(a).b);    #ok
f(a) . b

f(7).b;            #???
                             f(7) b

op(0, f(7).b);     #???
                               *

lprint(f(7).b);    #???
f(7)*b

 

I'm working on a system of coupled ordinary differential equations with multiple degrees of freedom. I would like to explore the existence of multiple solutions by using a bifurcation diagram. To this end, I tried using the built-in Bifurcation command in Maple. However, the command repeatedly returns errors and fails to produce the expected plots.

Has anyone successfully used the Bifurcation command in Maple for coupled ODE systems? Are there specific settings or prerequisites that I might be missing? I would greatly appreciate any guidance or example code demonstrating how to properly use this command for such systems.
bifurcation.mw

To organize windows, Windows 11 provides a new function "Snap Layout". The example screen shot below shows options to place the Maple 2025 Screen Reader window.  

Ein Bild, das Screenshot, Reihe, Software, Multimedia-Software enthält.

KI-generierte Inhalte können fehlerhaft sein.

Draging now Maple 2025.1 Screen Reader to the left window of the third option results in the following selection screen

Ein Bild, das Text, Screenshot, Software, Computersymbol enthält.

KI-generierte Inhalte können fehlerhaft sein.

where on the right a list of tasks to chose from is presented. In this list Maple 2025.1 is missing. However Maple 2025.1 was running as can be seen from the task bar.

Has anybody managed to position Maple 2025.1 windows with the Snap Layout (or alternatively with Win+Arrow keys) or at least reproduce what I see on my computer?

Why can a Maple 2025.1 window be adjusted by hand but Windows does not do this in Snap Layout?

(Dragging and adjusting a Maple window by hand is not an option. This is how we had to work before Windows 7.)

what is problem in here

restart;

with(plots):

with(LinearAlgebra):

with(DEtools):

diff(u(x), x) = f(u(x), v(x)), diff(v(x), x) = g(u(x), v(x)) for the two differential equations.

f := (u,v) -> u+cos(v);
g := (u,v) -> u*v-v+sin(v);

proc (u, v) options operator, arrow; u+cos(v) end proc

 

proc (u, v) options operator, arrow; v*u-v+sin(v) end proc

(1)

The equilibria:

equilibria := solve({f(u,v)=0, g(u,v)=0}, {u,v},explicit);

{u = 1, v = Pi}, {u = -cos(RootOf(sin(_Z)*_Z^2+sin(_Z)-2*_Z)), v = RootOf(sin(_Z)*_Z^2+sin(_Z)-2*_Z)}

(2)

allvalues(RootOf(sin(_Z)*_Z^2+sin(_Z)-2*_Z))

RootOf(sin(_Z)*_Z^2+sin(_Z)-2*_Z, 1.306542374), RootOf(sin(_Z)*_Z^2+sin(_Z)-2*_Z, -1.306542374), RootOf(sin(_Z)*_Z^2+sin(_Z)-2*_Z, -2.331122370), RootOf(sin(_Z)*_Z^2+sin(_Z)-2*_Z, 2.331122370), 0

(3)
 

NULL

Download remove.mw

i want plot a system of differential equation and do phaseportrait i did but when i want make it a little bit more clear and colorfull like rainbow when i find the C.Q i don't know how set the option for ploting?

e1.mw

Someone should please help me compute the left and right eigenvectors of the system below. The purpose is to compute values for 'a' and 'b' in the bifurcation formula.

Thank you

``

with(VectorCalculus)

 

(1)

interface(imaginaryunit = I)

I

(2)

I

I

(3)
 

diff(S(t), t) := `&Lambda;__p`-(`#mrow(mi("&varphi;",fontstyle = "normal"),mo("&sdot;"),msub(mi("&theta;",fontstyle = "normal"),mi("B")),mo("&sdot;"),msub(mi("I"),mi("B")))`/N[p]+µ__C)*S+`&omega;__B`*I__B

Lambda__p-(`#mrow(mi("&varphi;",fontstyle = "normal"),mo("&sdot;"),msub(mi("&theta;",fontstyle = "normal"),mi("B")),mo("&sdot;"),msub(mi("I"),mi("B")))`/N[p]+µ__C)*S+omega__B*I__B

(4)

diff(I__B(t), t) := `#mrow(mi("&varphi;",fontstyle = "normal"),mo("&sdot;"),msub(mi("&theta;",fontstyle = "normal"),mi("B")),mo("&sdot;"),msub(mi("I"),mi("B")))`*S/N[p]-`&omega;__B`*I__B-(`&sigma;__B`+µ__C)*I__B

`#mrow(mi("&varphi;",fontstyle = "normal"),mo("&sdot;"),msub(mi("&theta;",fontstyle = "normal"),mi("B")),mo("&sdot;"),msub(mi("I"),mi("B")))`*S/N[p]-omega__B*I__B-(sigma__B+µ__C)*I__B

(5)

NULL

``

(6)

diff(S__A(t), t) := `&Lambda;__A`-(µ__A+`#mrow(mi("&varphi;",fontstyle = "normal"),mo("&sdot;"),msub(mi("&alpha;",fontstyle = "normal"),mi("B")),mo("&sdot;"),msub(mi("I"),mi("B")))`/N[p])*S__A+`&delta;__A`*I__A

Lambda__A-(µ__A+`#mrow(mi("&varphi;",fontstyle = "normal"),mo("&sdot;"),msub(mi("&alpha;",fontstyle = "normal"),mi("B")),mo("&sdot;"),msub(mi("I"),mi("B")))`/N[p])*S__A+delta__A*I__A

(7)

diff(I__A(t), t) := `#mrow(mi("&varphi;",fontstyle = "normal"),mo("&sdot;"),msub(mi("&alpha;",fontstyle = "normal"),mi("B")),mo("&sdot;"),msub(mi("I"),mi("B")))`*S__A/N[p]-(µ__A+`&delta;__A`)*I__A

`#mrow(mi("&varphi;",fontstyle = "normal"),mo("&sdot;"),msub(mi("&alpha;",fontstyle = "normal"),mi("B")),mo("&sdot;"),msub(mi("I"),mi("B")))`*S__A/N[p]-(µ__A+delta__A)*I__A

(8)

NULL

``

(9)

Download CBD2.mw

It is not difficult to manually check the validity of the identity  sqrt(x+2*sqrt(x-1)) = sqrt(x-1)+1 , which is true at least for all  x>=1 . I don't know of any Maple command that directly makes this simplification:

expr:=sqrt(x+2*sqrt(x-1));
simplify(expr);
simplify(expr) assuming x>=1;

                          


It was possible to simplify it only by making a variable substitution  x=y+1 (and then a reverse substitution  y=x-1 ) :

expr1:=subs(x=y+1,expr);
simplify(expr1);
subs(y=x-1, %);

                               


By the way,  the CAS Mathematica also cannot cope with simplifying the expression  expr .

Wondering what the experts here think of this. Should not simplify have worked on this automatically? By trial and error, found that combine command is what simplified it the best.

But I think simplify should also have done the same.  

Interested to hear what others think, and why simplify (even using trig option) did not do it.   

The issue is that this is done in code, without lookin at the screen and deciding what to do based on what the expression "looks like".

interface(version);

`Standard Worksheet Interface, Maple 2025.0, Linux, March 24 2025 Build ID 1909157`

A:=(((sin(sqrt(3)/2)*sqrt(3) - 3*cos(sqrt(3)/2))*cos(sqrt(3)*x/2) - sin(sqrt(3)*x/2)*(sqrt(3)*cos(sqrt(3)/2) + 3*sin(sqrt(3)/2)))*exp(-1/2 + x/2))/3 ;

(1/3)*((sin((1/2)*3^(1/2))*3^(1/2)-3*cos((1/2)*3^(1/2)))*cos((1/2)*3^(1/2)*x)-sin((1/2)*3^(1/2)*x)*(3^(1/2)*cos((1/2)*3^(1/2))+3*sin((1/2)*3^(1/2))))*exp(-1/2+(1/2)*x)

B:=- exp(-1/2 + x/2)*(sqrt(3)*sin(sqrt(3)*(x - 1)/2) + 3*cos(sqrt(3)*(x - 1)/2))/3;

-(1/3)*exp(-1/2+(1/2)*x)*(3^(1/2)*sin((1/2)*3^(1/2)*(x-1))+3*cos((1/2)*3^(1/2)*(x-1)))

simplify(A-B); #show these are same

0

simplify(A,trig)

-(1/3)*((-sin((1/2)*3^(1/2))*3^(1/2)+3*cos((1/2)*3^(1/2)))*cos((1/2)*3^(1/2)*x)+sin((1/2)*3^(1/2)*x)*(3^(1/2)*cos((1/2)*3^(1/2))+3*sin((1/2)*3^(1/2))))*exp(-1/2+(1/2)*x)

simplify(A)

-(1/3)*((-sin((1/2)*3^(1/2))*3^(1/2)+3*cos((1/2)*3^(1/2)))*cos((1/2)*3^(1/2)*x)+sin((1/2)*3^(1/2)*x)*(3^(1/2)*cos((1/2)*3^(1/2))+3*sin((1/2)*3^(1/2))))*exp(-1/2+(1/2)*x)

simplify(A,size)

-(1/3)*((-sin((1/2)*3^(1/2))*3^(1/2)+3*cos((1/2)*3^(1/2)))*cos((1/2)*3^(1/2)*x)+sin((1/2)*3^(1/2)*x)*(3^(1/2)*cos((1/2)*3^(1/2))+3*sin((1/2)*3^(1/2))))*exp(-1/2+(1/2)*x)

simplify(normal(A))

-(1/3)*((-sin((1/2)*3^(1/2))*3^(1/2)+3*cos((1/2)*3^(1/2)))*cos((1/2)*3^(1/2)*x)+sin((1/2)*3^(1/2)*x)*(3^(1/2)*cos((1/2)*3^(1/2))+3*sin((1/2)*3^(1/2))))*exp(-1/2+(1/2)*x)

combine(A); #finally

(-(1/3)*3^(1/2)*sin((1/2)*3^(1/2)*(x-1))-cos((1/2)*3^(1/2)*(x-1)))*exp(-1/2+(1/2)*x)

 

 

Download simplify_vs_combine_june_4_2025.mw

Hello, 

I'm working on a Maple package that manages external processes via TCP connections. I'm using ModuleUnload for cleanup, but I need to better understand how it behaves during Maple termination.

The issue:
- I have a module that manages external processes (via TCP connections)
- I implemented ModuleUnload to kill these processes when the module is unloaded
- ModuleUnload works perfectly when using 'restart' 
- However, when closing the Maple window, the external processes remain active

Investigation:
Using 'lsof', I observed that:
   - When Maple closes, it properly closes its TCP connection (goes to CLOSE_WAIT state)
   - But the external processes remain active

Questions:
1. Is this the expected behavior of ModuleUnload during session termination?
2. Are there alternative approaches to ensure cleanup when Maple is closed?

Any insights or suggestions would be greatly appreciated!
Thanks!

I used Maple’s odetest to check the validity of 36 exact solutions.

About half of them return zero, meaning they satisfy the ODE correctly. But the other half don’t — odetest gives nonzero expressions.

My question is:

Could there be a mistake in my assumptions, or are some of these solutions only valid under specific conditions?

I’d appreciate any clarification or suggestions.

ode-test-36.mw

Respected sir,

I sincerly apologize to take your valuable time.

kind help with construction of function for the question in the word file attached.

Kind help please it may be simple too.

Kind_help.pdf

I've been debugging this for 20 hrs and finally able to make an example.

I noticed that solve() suddenly no longer works and times out.

First time calling solve() works. Second time it I see message

               Warning, solve may be ignoring assumptions on the input variables.

And it hangs.  Same exact code.   It has to do with calling odetest before and using Physics:-Setup('assumingusesAssume' = false):

i.e. this works
  
     odetest(...) assuming integer
     solve(....) #no hang
     odetest(....) assuming positive

     odetest(...)  assuming integer
     solve(....)  #no hang


But this does not work

     odetest(...) assuming integer
     solve(....) #no hang
     Physics:-Setup('assumingusesAssume' = false):
     odetest(....) assuming positive
     Physics:-Setup('assumingusesAssume' = true):

     odetest(...) assuming integer
     solve(...)   #HANGS
     

Here is worksheet showing the problem. If I remove first call to odetest, solve do not hang.

Also removing Physics:-Setup('assumingusesAssume' = false):, solve also works OK. (ie. does not hang)

So it has to do with some internal caching which causes solve to stop working.

Can others reproduce this and can cause it and how to fix it so solve do not hang second time?

The input used below is not important. It is just what I found to cause this. One would expect solve() to work same way for same input all the time.

Also, same problem happens when using PDEtools:-Solve instead of solve. It hangs second time.

interface(version);

`Standard Worksheet Interface, Maple 2025.0, Linux, March 24 2025 Build ID 1909157`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1873 and is the same as the version installed in this computer, created 2025, May 18, 21:44 hours Pacific Time.`

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 20 and is the same as the version installed in this computer, created May 23, 2025, 23:34 hours Eastern Time.`

restart

DEFINE input

 

ode:=y(x)*sqrt(1 + diff(y(x), x)^2) - a*y(x)*diff(y(x), x) - a*x = 0:
sol:=-_C4^2 + (-y(x)*sqrt(_C4^2/y(x)^2) + a*x)^2/a^2 + y(x)^2 = 0:
ode_to_test:=y(x)*(1+diff(y(x),x)^2)^(1/2)-a*y(x)*diff(y(x),x)-a*x = 0:

FIRST TIME solve works

 

    try
        timelimit(30,(odetest(sol,ode,y(x)) assuming integer));
    catch:
        NULL;
    end try:

    try
        timelimit(30,[solve(ode_to_test,diff(y(x),x))]);
        print("SOLVE worked");              
    catch:
        print("WHY TIMED OUT??");              
    end try:

    Physics:-Setup('assumingusesAssume' = false):
    try
        timelimit(30, (odetest(sol,ode,y(x)) assuming positive) );
    catch:
        NULL;
    end try:
    Physics:-Setup('assumingusesAssume' = true):

"SOLVE worked"

 

 

RUN SAME CODE AS ABOVE again, now it does not work

 

    try
        timelimit(30,(odetest(sol,ode,y(x)) assuming integer));
    catch:
        NULL;
    end try:

    try
        timelimit(30,[solve(ode_to_test,diff(y(x),x))]);
        print("SOLVE worked");              
    catch:
        print("WHY TIMED OUT??");              
    end try:

    Physics:-Setup('assumingusesAssume' = false):
    try
        timelimit(30, (odetest(sol,ode,y(x)) assuming positive) );
    catch:
        NULL;
    end try:
    Physics:-Setup('assumingusesAssume' = true):

Warning, solve may be ignoring assumptions on the input variables.

"WHY TIMED OUT??"

 

 

 

 

Download why_solve_stops_working_maple_2025_may_28_2025.mw

This worksheet below shows that by removing Physics:-Setup('assumingusesAssume' = false): now solve works OK second time. (I turn on/off Physics:-Setup('assumingusesAssume' since I found sometimes it can help with odetest to turn it off in some other cases. But now I am scared of touching this setting as it seems to have side effects internally)

interface(version);

`Standard Worksheet Interface, Maple 2025.0, Linux, March 24 2025 Build ID 1909157`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1873 and is the same as the version installed in this computer, created 2025, May 18, 21:44 hours Pacific Time.`

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 20 and is the same as the version installed in this computer, created May 23, 2025, 23:34 hours Eastern Time.`

restart

DEFINE input

 

ode:=y(x)*sqrt(1 + diff(y(x), x)^2) - a*y(x)*diff(y(x), x) - a*x = 0:
sol:=-_C4^2 + (-y(x)*sqrt(_C4^2/y(x)^2) + a*x)^2/a^2 + y(x)^2 = 0:
ode_to_test:=y(x)*(1+diff(y(x),x)^2)^(1/2)-a*y(x)*diff(y(x),x)-a*x = 0:

FIRST TIME solve works

 

    try
        timelimit(30,(odetest(sol,ode,y(x)) assuming integer));
    catch:
        NULL;
    end try:

    try
        timelimit(30,[solve(ode_to_test,diff(y(x),x))]);
        print("SOLVE worked");              
    catch:
        print("WHY TIMED OUT??");              
    end try:

    try
        timelimit(30, (odetest(sol,ode,y(x)) assuming positive) );
    catch:
        NULL;
    end try:

"SOLVE worked"

 

 

RUN SAME CODE AS ABOVE again, now it does not work

 

    try
        timelimit(30,(odetest(sol,ode,y(x)) assuming integer));
    catch:
        NULL;
    end try:

    try
        timelimit(30,[solve(ode_to_test,diff(y(x),x))]);
        print("SOLVE worked");              
    catch:
        print("WHY TIMED OUT??");              
    end try:

    try
        timelimit(30, (odetest(sol,ode,y(x)) assuming positive) );
    catch:
        NULL;
    end try:

"SOLVE worked"

 

 

 

 

Download why_solve_stops_working_maple_2025_may_28_2025_V2.mw

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