Maple 2025 Questions and Posts

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

This is a question on semantics I suppose.

Maple dsolve returns a solution with a limit in it, because the limit do not exist or Maple could not find the limit. Which is fine.

Then why does simplify() applied to the solution returns undefined?  Now it appears that Maple solution is y(x)=undefined, which does not make much sense.

Should it not have left the solution with the limit in place as is? i.e. since dsolve could not find limit, how did simplify managed to replace the limit by undefined?

Is this considered an expected behavior by simplify?

Firewall changed its mind again today and will not let me upload worksheet. Here is code

ode:=4*x*diff(y(x),x$2)+2*diff(y(x),x)+y(x)=(6+x)/x^2;
IC:=y(infinity)=0;
sol:=dsolve([ode,IC],y(x)); #OK, maple can't find limit. No problem
simplify(sol)

I have to ask my school teacher on this when school starts. But is it OK to have infinity in the ode solution itself?

Maple 2025.2 gives

ode:=diff(y(x),x$2)-2*diff(y(x),x)+y(x)=4*exp(-x);
IC:=y(infinity)=0;
sol:=dsolve([ode,IC])

And according to odetest, this does not verify the ode nor the IC

odetest(sol,[ode,IC])

Just asking what others think of this solution and if it should be consider a bug or not?

Maple 2025.2 on windows 10

Solving this ode, Maple says 

But notice, the xi and eta tangent vectors order is reversed. Maple says pattern is [0,F*G], but shows [F*G,0].

Also, when later using DEtools:-symgen with HINT option, it does not return the above result. Tried both patterns with 0 on left and 0 on right. In both cases symgen does not return what shows above. 

Why is that? Am I doing something wrong? Notice also it says   "way=HINT"  but I am not using way option. Only HINT option, Why is it saying way=HINT? it seems argument passing I  am using is wrong, but do not see why it could be wrong.  This is what help says

Worksheet below

interface(version);

`Standard Worksheet Interface, Maple 2025.2, Windows 10, November 11 2025 Build ID 1971053`

restart;

ode:=diff(y(x),x)*cos(y(x))-cos(x)*sin(y(x))^2-sin(y(x)) = 0;
infolevel[dsolve]:=5;
infolevel[symgen]:=5;

(diff(y(x), x))*cos(y(x))-cos(x)*sin(y(x))^2-sin(y(x)) = 0

5

5

dsolve(ode);

Methods for first order ODEs:

--- Trying classification methods ---

trying a quadrature

trying 1st order linear

trying Bernoulli

trying separable

trying inverse linear

trying homogeneous types:

trying Chini

differential order: 1; looking for linear symmetries

trying exact

Looking for potential symmetries

trying inverse_Riccati

trying an equivalence to an Abel ODE

differential order: 1; trying a linearization to 2nd order

--- trying a change of variables {x -> y(x), y(x) -> x}

differential order: 1; trying a linearization to 2nd order

trying 1st order ODE linearizable_by_differentiation

--- Trying Lie symmetry methods, 1st order ---

 -> Computing symmetries using: way = 3

 -> Computing symmetries using: way = 4

 -> Computing symmetries using: way = 5

trying symmetry patterns for 1st order ODEs

 -> Computing symmetries using: way = patterns

-> trying a symmetry pattern of the form [F(x)*G(y), 0]

-> trying a symmetry pattern of the form [0, F(x)*G(y)]

-> The symmetry found is [0 exp(-x)*(2*sin(y)^2+cos(y)^2-1)/cos(y)]

<- symmetry pattern of the form [0, F(x)*G(y)] successful

[exp(-x)*(2*sin(y)^2+cos(y)^2-1)/cos(y), 0]

 <- successful computation of symmetries.

y(x) = arctan(-2*exp(x)/(exp(x)*cos(x)+exp(x)*sin(x)+2*c__1), ((2*cos(x)*sin(x)*(exp(x))^2+4*c__1*sin(x)*exp(x)+4*cos(x)*c__1*exp(x)+4*c__1^2+(exp(x))^2)*(2*cos(x)*sin(x)*(exp(x))^2+4*c__1*sin(x)*exp(x)+4*cos(x)*c__1*exp(x)-3*(exp(x))^2+4*c__1^2))^(1/2)/(2*cos(x)*sin(x)*(exp(x))^2+4*c__1*sin(x)*exp(x)+4*cos(x)*c__1*exp(x)+4*c__1^2+(exp(x))^2)), y(x) = arctan(-2*exp(x)/(exp(x)*cos(x)+exp(x)*sin(x)+2*c__1), -((2*cos(x)*sin(x)*(exp(x))^2+4*c__1*sin(x)*exp(x)+4*cos(x)*c__1*exp(x)+4*c__1^2+(exp(x))^2)*(2*cos(x)*sin(x)*(exp(x))^2+4*c__1*sin(x)*exp(x)+4*cos(x)*c__1*exp(x)-3*(exp(x))^2+4*c__1^2))^(1/2)/(2*cos(x)*sin(x)*(exp(x))^2+4*c__1*sin(x)*exp(x)+4*cos(x)*c__1*exp(x)+4*c__1^2+(exp(x))^2))

infolevel[dsolve]:=0;

0

DEtools:-symgen(ode,y(x),HINT = [ 0,F(x)*G(y)]); #why this does not return the symmetries found by dsolve above?

 -> Computing symmetries using: way = HINT

DEtools:-symgen(ode,y(x),HINT = [ F(x)*G(y),0]); #why this does not return the symmetries found by dsolve above?

 -> Computing symmetries using: way = HINT

DEtools:-symgen(ode)

 -> Computing symmetries using: way = 2

 -> Computing symmetries using: way = 3

 -> Computing symmetries using: way = 4

 -> Computing symmetries using: way = abaco1

[0, exp(-x)*(-1+cos(2*y))/cos(y)]

 <- successful computation of symmetries.

[_xi = 0, _eta = exp(-x)*(-1+cos(2*y))/cos(y)]

 

 

Download symgen_confusion_jan_9_2026.mw

Has anybody seen the unit palette beeing empty? 

This is new to me. I normally use the unit entry in the favourites but this time wanted to try Maple presets.

I have written about unit problems before. I thought an update would solve the problems, but no.

I have a very simple example here where the unit can't be changed:

In the first example I am using capital M for mass; now I can change unit on density.

I know this is a "silly" question but just recently my Tool Ribbon disapears or "retracts" into thin air and I have to first click on it to get it to "deploy" downward and then when I click on it to "Insert, View, Edit..." it then retracts and is gone once I do the click.  I am forced to do 2 clicks when before I had only to do one click.  This is not efficient.  I like the Ribbon concept for Maple 2025 but this is an irritating annoyance.  If some one knowlegeable could please take a few seconds to reply to this, I would greatly appreciate it.  BTW, this just started.  In an other machine I have where Maple 2025 is located, it doesn't do this.   I am sure it is a simple setting somewhere.  I just can't find that setting.  Thank you in advance 

Hello Ladies and Genlemen,

What is the command to display a list of *all* the packages in Maple ?

How do you insert an output for exemple (2.1.1) in a worksheet?

CTRL+K is inactive for me...it just adds a CRLF.

Thank you very much and kind regards,

Jean-Michel

Do not know if this known or reported or not. Just in case. Here is an example where odetest gives internal error when adding integer to assuming. 

Maple 2025.2. Firewall will not let me upload now. Here is code

sol:=y(x) = -4/9*I*(x+1)^(1/4)*(x-1)^(1/4)*2^(1/2)*x^2+4/9*(x+1)^(1/4)*(x-1)^(1/4)*2^(1/2)*x^2+4/9*I*(x+1)^(1/4)*(x-1)^(1/4)*2^(1/2)+1/9*x^4-4/9*(x+1)^(1/4)*(x-1)^(1/4)*2^(1/2)-16/9*I*(x+1)^(1/2)*(x-1)^(1/2)-2/9*x^2+1/9;
ode:=(-x^2+1)*diff(y(x),x)+x*y(x) = x*(-x^2+1)*y(x)^(1/2);
IC:=y(0) = 1;

odetest(sol,[ode,IC]) assuming integer,positive;

Screen shot

I wanted to trick odetest and see what it does. I gave it solution to ode with IC. The solution was in form of implicit solution.

odetest verified it.

Then I solved for y(x) from the implicit solution and passed each now explicit solution to odetest, now it does not verify either one. (two explicit solutions resulted)

I would have thought that odetest to not verify the implicit solution as well. Is this a bug or an expected behavior when using implicit?

Does this mean, to be safe, one should try to solve for y(x) explicitly before using odetest? But sometimes this can be expensive or not possible nor practical to do as implicit solution can be complicated to solve for y(x).

Maple 2025.2 on windows 10.

Firewall now suddently will not let me upload a worksheet again for some reason. Firewall did not have a problem yesterday, but today it complained.

So here code and screen shot

restart;
ode:=2*y(x) + 2*x*y(x)^2 + (2*x + 2*x^2*y(x))*diff(y(x), x) = 0;
IC:=y(0) = 1;
maple_sol:=dsolve([ode,IC]);
#                         maple_sol := ()

my_sol_1:=x*y(x)*(2+y(x)*x)=0;
odetest(my_sol_1,[ode,IC])

#                             [0, 0]

PDEtools:-Solve(my_sol_1,y(x));
map(X->odetest(X,[ode,IC]),[%])

#   [[0, 1], [0, undefined]]

Hi Maplesoft Support / Community,

I've encountered a critical and bizarre bug involving Bits:-And correctness on large integers (~30 digits) derived from repeated integerdivq2exp operations.

  • Maple 2023 (Linux x86_64)
  • Maple 2025 (Linux x86_64)
  • Maple 2025 (Windows x86_64)

The correctness of Bits:-And depends on the order of execution

(See attached common.mpl, bug_test2.mpl, bug_test3.mpl logic).

Case "Fail" (bug_test2.mpl):

  1. Run operation (loops `integerdivq2exp`).
  2. Print result num1 (semicolon).
  3. Define num1_clean (hardcoded same value).
  4. Bits:-And(num1) -> INCORRECT.
  5. Bits:-And(num1_clean) -> INCORRECT.

Case "Pass" (bug_test3.mpl):

  1. Define num1_clean.
  2. Run operation (loops integerdivq2exp).
  3. Bits:-And(num1) -> CORRECT.
  4. Bits:-And(num1_clean) -> CORRECT.

The same behaviour can be observed in Worksheet mode using read.  (See worksheet_driver.mw)

But the result cannot be reproduced if not using read. (See worksheet_version.mw and worksheet_version2.mw)

Code below:

N := 2100:
n := 1000:
num := rand(0 .. 2^N)():
operation := proc(num, n)
    local q, k;
    q := num;
    for k from 1 to 2 do
        q := integerdivq2exp(q, n); 
    end do;
    q;
end proc:
read "common.mpl";

num1 := operation(num, n);
num1_clean := 1083029963437854242395921050992;

num1_clean_And_result := Bits:-And(num1_clean, integermul2exp(1, n) - 1);
num1_And_result := Bits:-And(num1, integermul2exp(1, n) - 1);

##################################

expected_result := irem(num1_clean, integermul2exp(1, n));

if num1 <> num1_clean then
    error "num1 does not match num1_clean";
end if;
print("num1 matches num1_clean");

if num1_And_result <> num1_clean_And_result then
    error "num1_And_result does not match num1_clean_And_result";
end if;
print("num1_And_result matches num1_clean_And_result");

if num1_And_result <> expected_result then
    error "num1_And_result does not match expected_result";
end if;
print("num1_And_result matches expected_result");
read "common.mpl";

num1_clean := 1083029963437854242395921050992:
num1 := operation(num, n):

num1_clean_And_result := Bits:-And(num1_clean, integermul2exp(1, n) - 1):
num1_And_result := Bits:-And(num1, integermul2exp(1, n) - 1);

##################################

expected_result := irem(num1_clean, integermul2exp(1, n));

if num1 <> num1_clean then
    error "num1 does not match num1_clean";
end if;
print("num1 matches num1_clean");

if num1_And_result <> num1_clean_And_result then
    error "num1_And_result does not match num1_clean_And_result";
end if;
print("num1_And_result matches num1_clean_And_result");

if num1_And_result <> expected_result then
    error "num1_And_result does not match expected_result";
end if;
print("num1_And_result matches expected_result");

I noticed today only 2 cases where calling simplify, with no options, made things worst.

Just trying to understand why.

Here is one example. Solved an ode. when calling odetest on this solution, it gives zero. But if the solution is simplified first, then odetest no longer gives zero. And it is actually hard to find a trick to make it become zero so far.

But the question is: Is this to be expected sometimes? I use simplify sporadically, but like to get smaller  expression at one point. But now I am not sure if I should even do that.

Could this be a problem in simplify itself somehow?

Here is an example.

interface(version);

`Standard Worksheet Interface, Maple 2025.2, Windows 10, November 11 2025 Build ID 1971053`

restart;

ode:=diff(y(x), x) = y(x)*(-1 - x^(2/(ln(x) + 1))*exp(2*ln(x)^2/(ln(x) + 1))*x^2 - x^(2/(ln(x) + 1))*exp(2*ln(x)^2/(ln(x) + 1))*x^2*ln(x) + x^(2/(ln(x) + 1))*exp(2*ln(x)^2/(ln(x) + 1))*x^2*y(x) + 2*x^(2/(ln(x) + 1))*exp(2*ln(x)^2/(ln(x) + 1))*x^2*y(x)*ln(x) + x^(2/(ln(x) + 1))*exp(2*ln(x)^2/(ln(x) + 1))*x^2*y(x)*ln(x)^2)/((ln(x) + 1)*x);

diff(y(x), x) = y(x)*(-1-x^(2/(ln(x)+1))*exp(2*ln(x)^2/(ln(x)+1))*x^2-x^(2/(ln(x)+1))*exp(2*ln(x)^2/(ln(x)+1))*x^2*ln(x)+x^(2/(ln(x)+1))*exp(2*ln(x)^2/(ln(x)+1))*x^2*y(x)+2*x^(2/(ln(x)+1))*exp(2*ln(x)^2/(ln(x)+1))*x^2*y(x)*ln(x)+x^(2/(ln(x)+1))*exp(2*ln(x)^2/(ln(x)+1))*x^2*y(x)*ln(x)^2)/((ln(x)+1)*x)

sol_1:=dsolve(ode);

y(x) = exp(-(1/4)*x^4)/(x^(-2*ln(x)/(ln(x)+1))*exp(-(1/4)*(x^4*ln(x)+x^4+4*ln(ln(x)+1)*ln(x)-8*ln(x)^2+4*ln(ln(x)+1))/(ln(x)+1))*ln(x)^2+2*x^(-2*ln(x)/(ln(x)+1))*exp(-(1/4)*(x^4*ln(x)+x^4+4*ln(ln(x)+1)*ln(x)-8*ln(x)^2+4*ln(ln(x)+1))/(ln(x)+1))*ln(x)+x^(-2*ln(x)/(ln(x)+1))*exp(-(1/4)*(x^4*ln(x)+x^4+4*ln(ln(x)+1)*ln(x)-8*ln(x)^2+4*ln(ln(x)+1))/(ln(x)+1))+ln(x)*c__1+c__1)

odetest(sol_1,ode)

0

sol_2:=simplify(sol_1);

y(x) = 1/((ln(x)+1)*(exp((1/4)*x^4)*c__1+1))

odetest(sol_2,ode);

c__1*x^(ln(x)/(ln(x)+1)+3/(ln(x)+1))*exp(2*ln(x)^2/(ln(x)+1)+(1/4)*x^4)/((ln(x)+1)*(exp((1/4)*x^4)*c__1+1)^2)-c__1*x^3*exp((1/4)*x^4)/((ln(x)+1)*(exp((1/4)*x^4)*c__1+1)^2)

 

 

Download why_simplify_changes_things_at_dec_27_2025.mw

Notice how much simpler the solution becomes after calling simplify. I'd like to use that. But for some reason, odetest now fails to verify the simpler version. Which tells me simplify did something which made the solution not valid.

Here is second example, where calling simplify in betwen did not give zero as expected.

restart:

f := sqrt(1 + sin(x)^2);
F := int(f, x):
df := diff(F, x):
simplify(df - f);

(1+sin(x)^2)^(1/2)

0

restart;

f := sqrt(1 + sin(x)^2);
F := int(f, x):
F := simplify(F):
df := diff(F, x):
simplify(df - f);

(1+sin(x)^2)^(1/2)

-csgn(1, cos(x))*sin(x)*EllipticE(sin(x), I)

 

 

Download why_simplify_changes_things_at_dec_27_2025_V2.mw

Just trying to understand why this happens and if this is something that could happen sometimes? May be one should avoid calling simplify in middle of computation and let the user decide if they want to simplify the final result or not?

I do not remember now if this came up before or not. But this has been a problem in Maple for years.

when doing infolevel[dsolve]:=5 and call dsolve(), some of the display on the screen is missing commas and multiplication sign and who know what else. Since it is all replace by space.

This happens only to part of the display. Here is an example (must use restart each time to see the full display)

restart;
ode:=diff(y(x),x) = (-y(x)^2+4*a*x)^2/y(x); 
infolevel[dsolve]:=5;
dsolve(ode);

Here is the output. Using worksheet, V 2025.2 on windows 10 (I am only showing part of the output which has the problem)

Looking at the line where is says "-> Calling odsolve ". Notice the rest. diff(diff(y(x) x) x)  should be diff(diff(y(x),x),x)  and the end of the line has diff(y(x) x)) y(x)  . So one can guess this should be  diff(y(x),x))*y(x) or it could be diff(y(x),x))/y(x) or may be something else.

THis cause a problem when trying to copy it and use it to try it.

Is there something one can do  in settings to fix this part of the display? so nothing is replace by space?

Maple 2025.2 on windows 10

I also tried this in document mode instead of worksheet. Same result. 

Update

Found where this comes from. From `odsolve/2` proc, line 21.

THis is how to see it.

restart;

infolevel[dsolve]:=5;
ode:=diff(y(x),x)=x*y(x)+1/y(x)+y(x)^3;
stopat(`odsolve/2`);
dsolve(ode)

 

Now the debugger will come up. Then do in the debugger:

stopat 21

Click continue, you will now stop at this line

In the worksheet it now shows as

So something in 

 `ODEtools/userinfo`(2,dsolve,`-> Calling odsolve with the ODE`,A);

Is not right. Also the last y(x) was meant to be second item in A which is expression sequence. But in worksheet it all display on one line with no commas between.,

So better formating in ODEtools/useinfo is needed here. For some reason, commas are all replaced by spaces.

 

 

Is it possible to obtain integral of sqrt(1+sin(x)^2) in Maple as known result of elliptic integral of the second kind  E(x,-1) ?

Maple 2025 gives

integrand:=sqrt(1+sin(x)^2);
anti:=int(integrand,x);
anti:=simplify(anti);

Not able to differentiate back:

diff(anti,x);
simplify(%)

Google says:

And the above is also what Mathematica gives

Is it possible to obtain E(x,-1) also in Maple for this integral?

Maple 2025.2

Not able to make an example, since it depends of code flow and not able to reproduce it in small code. I spend hrs trying to make one. It depends on how memory is arranged and this problem shows only when running my large program.

But I can show screen shots from a debugging session showing clearly the problem, and the solution I found.

Maple was giving this result, when calling simplify to simplify a matrix:

Notice what happend. There was a matrix [3/2,-1,-3/2,0],[0,0,0,0],[-2,2,2,0]] before that was simplfied.

Next iteration called simplify on modified version of the matrix, which is  [3/2,-1,-3/2,0],[0,0,0,0],[0,2/3,0,0]].  (called e in the above).

But simplify returned as result the old copy. Which is completely wrong.

It simplified  [3/2,-1,-3/2,0],[0,0,0,0],[0,2/3,0,0]]  to  [3/2,-1,-3/2,0],[0,0,0,0],[-2,2,2,0]]  !

Now see what happes when calling forget(simplify)

You see, now it simplfies it correctly. (there is actually nothing to simplify, so it returned back same matrix as expected, and no copy it had in memory).

So now I went over all my code, and everywhere it calls simplify, added 

     forget(simplify)

right after each call.

Problem fixed.

May be someone can shed a light on why this happens. Any information needed will try to provide. I can reproduce this each time but using the debugger.

restart;

ode:=diff(y(x),x) = 3*(y(x)*x)^(1/2); 
IC:=y(0)=2;
sol:=dsolve([ode,IC])

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