Maple 2025 Questions and Posts

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

Is there a trick to make Maple simplify 

to

I can't use the exp() trick given in earlier questions, since there is no exp here. Below are my attempts. Can someone find another smart trick to do this simplification? Should simplify() have simplified it as is with no assumptions or using tricks? This is all done in code, so solutions can not depend on "looking on screen" and deciding what to do for each step.

interface(version);

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

restart;

interface(rtablesize=30);

[10, 10]

A:=-(sqrt(3)*sqrt(-2*C1 - 2*x) - 3)/(3*sqrt(-2*C1 - 2*x)*x);

-(1/3)*(3^(1/2)*(-2*C1-2*x)^(1/2)-3)/((-2*C1-2*x)^(1/2)*x)

B:=-(1/(sqrt(3)*x)) + 1/(sqrt(2)*x*sqrt(-x - C1));

-(1/3)*3^(1/2)/x+(1/2)*2^(1/2)/(x*(-x-C1)^(1/2))

simplify(A-B);

0

MmaTranslator:-Mma:-LeafCount(A);
MmaTranslator:-Mma:-LeafCount(B);

29

26

full_simplify:=proc(e::anything,assum::anything)
   local result::list;

   #add more methods as needed

   result:=[(simplify(e) assuming assum),
            (simplify(e,size=false) assuming assum),
            (simplify(e,size) assuming assum),
            (simplify(e,sqrt) assuming assum),
            (simplify(combine(e)) assuming assum),
            (simplify(combine(e),size) assuming assum),
            (radnormal(evala( combine(e) )) assuming assum),
            (simplify(evala( combine(e) )) assuming assum),
            (evala(radnormal( combine(e) )) assuming assum),
            (simplify(radnormal( combine(e) )) assuming assum),
            (evala(factor(e)) assuming assum),
            (simplify(e,ln) assuming assum),
            (simplify(e,power) assuming assum),
            (simplify(e,RootOf) assuming assum),
            (simplify(e,sqrt) assuming assum),
            (simplify(e,trig) assuming assum),
            (simplify(convert(e,trig)) assuming assum),
            (simplify(convert(e,exp)) assuming assum),
            (combine(e) assuming assum)
   ];   
   RETURN( result )

end proc:

Vector(full_simplify(A,real))

Vector(19, {(1) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (2) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (3) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (4) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (5) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (6) = -(1/3)*(sqrt(-6*C1-6*x)-3)/(sqrt(-2*C1-2*x)*x), (7) = (1/6)*sqrt(-2*C1-2*x)*(sqrt(-6*C1-6*x)-3)/((C1+x)*x), (8) = (1/6)*sqrt(-2*C1-2*x)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/((C1+x)*x), (9) = (1/6)*sqrt(-2*C1-2*x)*(sqrt(-6*C1-6*x)-3)/((C1+x)*x), (10) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (11) = -(1/6)*(2*sqrt(3)*C1+2*sqrt(3)*x+3*sqrt(-2*C1-2*x))/((C1+x)*x), (12) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (13) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (14) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (15) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (16) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (17) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (18) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (19) = -(1/3)*(sqrt(-6*C1-6*x)-3)/(sqrt(-2*C1-2*x)*x)})

Vector(full_simplify(A,positive))

Vector(19, {(1) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (2) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (3) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (4) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (5) = (1/3)*(-sqrt(3)*sqrt(2*C1+2*x)-3*I)/(sqrt(2*C1+2*x)*x), (6) = -(1/3)*(I*sqrt(6*C1+6*x)-3)/(sqrt(-2*C1-2*x)*x), (7) = (1/6)*sqrt(-2*C1-2*x)*(I*sqrt(6*C1+6*x)-3)/((C1+x)*x), (8) = -(1/6)*sqrt(2*C1+2*x)*(sqrt(3)*sqrt(2*C1+2*x)+3*I)/((C1+x)*x), (9) = (1/6)*sqrt(-2*C1-2*x)*(I*sqrt(6*C1+6*x)-3)/((C1+x)*x), (10) = (1/3)*(-sqrt(3)*sqrt(2*C1+2*x)-3*I)/(sqrt(2*C1+2*x)*x), (11) = -(1/6)*(2*sqrt(3)*C1+2*sqrt(3)*x+3*sqrt(-2*C1-2*x))/((C1+x)*x), (12) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (13) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (14) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (15) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (16) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (17) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (18) = -(1/3)*(sqrt(3)*sqrt(-2*C1-2*x)-3)/(sqrt(-2*C1-2*x)*x), (19) = -(1/3)*(I*sqrt(6*C1+6*x)-3)/(sqrt(-2*C1-2*x)*x)})

 

 

Download simplification_may_8_2025.mw

For reference, using another software

I asked similar question 5 years ago about Physics update but it was not possible to find this information

How-To-Find-What-Changed-In-Physics

I'd like to ask now again same about  SupportTools. Can one find out what update is actually included in new version?

Even if it is just 2-3 lines. It will be good if users had an idea what was fixed or improved in the new version.

Any update to software should inlcude such information. Not asking for details, just general information will be nice. Right now one does an update and have no idea at all what the new update fixed or improved which is not good.

May be such information can be displayed on screen after a user updates?

Hi!

Sorry if I am missing something or not following any implicit rules, I am really new to Maple and this forum.

For the sake of completeness, here the code that is given:

Ve := Vector([VeX, VeY, VeZ]);
with(LinearAlgebra);
Vh := Normalize(Vector([alphaX*Ve(1), alphaY*Ve(2), Ve(3)]), Euclidean, conjugate = false);
lensq := Vh(1)*Vh(1) + Vh(2)*Vh(2);
T1 := Vector([-Vh(2), Vh(1), 0])/sqrt(lensq);
T2 := CrossProduct(Vh, T1);
r := sqrt(x);
phi := 2*Pi*y;
t1 := r*cos(phi);
t2 := r*sin(phi);
s := 1/2*(1 + Vh(3));
t22 := (1 - s)*sqrt(1 - t1*t1) + s*t2;
Nh := t1*T1 + t22*T2 + sqrt(1 - t1*t1 - t22*t22)*Vh;
NULL;
Ne := Normalize(Vector([alphaX*Nh(1), alphaY*Nh(2), Nh(3)]), Euclidean, conjugate = false);
AV := (-1 + sqrt(1 + (alphaX^2*Ve(1)^2 + alphaY^2*Ve(2)^2)/Ve(3)^2))/2;
G1 := 1/(1 + AV);
DN := 1/(Pi*alphaX*alphaY*(Ne(1)^2/alphaX^2 + Ne(2)^2/alphaY^2 + Ne(3)^2)^2);

DVN := G1*DotProduct(Ve, Ne, conjugate = false)*DN/DotProduct(Ve, Vector([0, 0, 1]), conjugate = false);
PDF := DVN/(4*DotProduct(Ve, Ne, conjugate = false));

 

So far, so good. Now what I want to do is:

PDFint := int(PDF, [x = xInf .. xSup, y = yInf .. ySup]);

to calculate the symbolic integral of PDF over x and y. The issue is that I keep running out of memory after a few hours and my operating system (Linux Fedora) automatically shuts Maple down.

I am convinced that there must be a way to either preprocess PDF so that the int(...) command doesn't eat up all the RAM, or some different way to calculate an integral that maybe has a different structure?

I have tried codegen[optimize](PDF) and liked what it did, but I don't know how to progress with the result of it, if at all possible.

I know that there is also a way to calculate the integral numerically, but I need the analytic integral, so numerical solutions are of no use to me.

If there is really no way for me to obtain this integral, I would really appreciate an explanation of why, so that I can rest at night finally lol.

Thank you in advance,

Jane

according to what is new in Maple 2025, it says

  • Maple 2025 introduces several important improvements to simplify regarding expressions containing exponential, trigonometric, hyperbolic, and/or inverse trigonometric functions, resulting in more compact results. Other commands in the math library also provide simpler results due to these improvements.

But I still see weakness in simplify. (see also recent question).

Here is an example, A and B below are equivalent mathematically. But A is almost twice as big. So one would expect simplify(A) to return B. right? But it does not. Also using size option has no effect.  

Does one need more tricks in Maple to make it simplify this? Is this not something that a powerful CAS software like Maple should have been able to do?

interface(version);

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


A:=(-8*x - 16)*exp(x/2) + x^2 + 4*x + 16*exp(x) + 4;
B:=(4*exp(x/2)-x-2)^2;

(-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4

(4*exp((1/2)*x)-x-2)^2

#check leaf size
MmaTranslator:-Mma:-LeafCount(A);

22

MmaTranslator:-Mma:-LeafCount(B);

13

#check they are the same
simplify(A-B);

0

#then why Maple can not simplify A to B ??
simplify(A);
simplify(A,size);
simplify(A,size,exp);
simplify(A) assuming real;

(-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4

(-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4

(-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4

(-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4

Student:-Precalculus:-CompleteSquare(A)

(-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4

 

 

Download why_can_not_simplify_may_4_2025.mw

Using another software, all what is needed is call to Simpify to do it:

I also tried my most power full_simplify() function in Maple, and it had no effect

full_simplify:=proc(e::anything)
   local result::list;
   local f:=proc(a,b)
      RETURN(MmaTranslator:-Mma:-LeafCount(a)<MmaTranslator:-Mma:-LeafCount(b))
   end proc;

   #add more methods as needed

   result:=[simplify(e),
            simplify(e,size),
            simplify(combine(e)),
            simplify(combine(e),size),
            radnormal(evala( combine(e) )),
            simplify(evala( combine(e) )),
            evala(radnormal( combine(e) )),
            simplify(radnormal( combine(e) )),
            evala(factor(e)),
            simplify(e,ln),
            simplify(e,power),
            simplify(e,RootOf),
            simplify(e,sqrt),
            simplify(e,trig),
            simplify(convert(e,trig)),
            simplify(convert(e,exp)),
            combine(e)
   ];   
   RETURN( sort(result,f)[1]);   

end proc:

Calling full_simplify(A) did not simplify it.

I wanted to search for all files with some extention in directory tree. But when adding depth=infinity and also adding 'select'="*.log" (or whatever the extension I want is), then it returns an empty list even though there are files with this extension but deep in the tree.

If I remove select, then it does work, but it returns list of the files in the tree. Which I do not want. I want to filter these by select.

If I remove depth=infinity then select works but only finds such files at top level of the directory and does look down the tree where there are more such files.

It seems select and depth conflict with each others.  Adding 'all' option makes no difference.

I do not remember now if I reported this before or not.

Here is worksheet showing this problem

interface(version);

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

folder_name:="/home/me/maple2025"; #fails to find all such files
FileTools:-ListDirectory(folder_name,'select'="*.wav",depth=infinity);

"/home/me/maple2025"

[]

folder_name:="/home/me/maple2025"; #works but only top level
FileTools:-ListDirectory(folder_name,'select'="*.log");

"/home/me/maple2025"

["Maple_2025_Install_2025_04_03_12_34_10.log"]

folder_name:="/home/me/maple2025"; #works but this finds everything
FileTools:-ListDirectory(folder_name,depth=infinity);

"/home/me/maple2025"

`[Length of output exceeds limit of 10000]`

 


 

Download listdirectory_may_3_2025.mw

How can one get list of files with specific extension in the whole tree? And why is adding select makes it not work? Help does not say anything about select does not work when adding depth=infinity.

I suppose I can get list of all files in tree, then iterate over the list and remove all entries that do not end with the extension I wanted. But this is what select is supposed to do. For example

folder_name:="/home/me/maple2025/"; #works but this finds everything
L:=FileTools:-ListDirectory(folder_name,depth=infinity):
map(X->`if`(FileTools:-Extension(X)="wav",X,NULL),L);

Gives list of only files with extension "wav". So the above is workaround for now.

These are the same (i.e. mathematically equivalent for real x)

A:=-x*(x - 4*exp(x/2) + 2);
B:=x*sqrt((-8*x - 16)*exp(x/2) + x^2 + 4*x + 16*exp(x) + 4);

But can't see how to use Maple to show this, other than numerically and by plotting.

Any one knows of a trick? Below is worksheet. Using another software, it was able to show they are same:

Here are my attempts in Maple 2025
 

interface(version);

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

restart;

A:=-x*(x - 4*exp(x/2) + 2);
B:=x*sqrt((-8*x - 16)*exp(x/2) + x^2 + 4*x + 16*exp(x) + 4);

-x*(x-4*exp((1/2)*x)+2)

x*((-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4)^(1/2)

plots:-display(Array([plot(A,x=-3..3),plot(B,x=-3..3)]))

 

 

Digits:=16;
seq(MmaTranslator:-Mma:-Chop(A-B),x=-2..2,.1)

16

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

simplify(A-B);

-x*(((-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4)^(1/2)-4*exp((1/2)*x)+x+2)

simplify(A-B) assuming real;

-x*(((-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4)^(1/2)-4*exp((1/2)*x)+x+2)

simplify(evala(A-B)) assuming real;

-x*(((-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4)^(1/2)-4*exp((1/2)*x)+x+2)

simplify(normal(A-B)) assuming real;

-x*(((-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4)^(1/2)-4*exp((1/2)*x)+x+2)

simplify(A-B,exp) assuming real;

-x*(((-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4)^(1/2)-4*exp((1/2)*x)+x+2)

simplify(evalc(A-B)) assuming real;

-x*(((-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4)^(1/2)-4*exp((1/2)*x)+x+2)

 

 

Download show_same_may_3_2025.mw

For compution this is not important, for latex, I find  n>0 little more clear to read than 0<n 

Is there a way to tell Maple not to reverse terms on each side of the > just for latex purposes?

It seems Maple does this only for   > and not for  <

I know the latex output follows what is displayed on the screen in Maple. And that is what happens also for display. Maple rewrites n>0 as   0<n.   

I tried changing display->Typesetting level from extended to maple standard but this had no effect. 

Is there a trick to make Maple not all the > to  <  ?

Again, I wanted to do this just for the latex output because for computation and for screen display in worksheet, it is not an the issue for me, as I only use Latex output.

It seems Maple like to make everything  based on "<" internally and that is why it reverses it?

interface(version);

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

restart;

latex(n>0,'output'='string'); #why this is reverse on output?

"0<n"

latex(n>m,'output'='string'); #why this is reverse on output?

"m <n"

latex(n<0,'output'='string'); #but this stays the same

"n <0"

latex(n<m,'output'='string'); #but this stays the same

"n <m"

n>0

0 < n

 

 

Download why_reverses_may_1_2025.mw

This happens in Maple 2025, but when I checked Maple 2024.2, same thing happen.

To reproduce, I typed ?coeff in the worksheet. Now the help page for coeff comes up OK. On the right, there are some links below "see also". 

Clicking on the one that says PolynomialTools[CoefficientVector] and now an EMPTY page opens up.

Also, typing ?PolynomialTools in worksheet, opens the help page for Overview of the PolynomialTools Package. Now clicking on CoefficientList link, opens an EMPTY page. Same when clicking on CoefficientVector, an EMPTY page !

Have not checked all the links in the help page, but why are some commands have empty help pages?

 

 

The series to ode using 'series' option (if it exists) should always be series(...), i.e. with big O at end. but sometimes Maple forgets to add this. Here is an example

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 1862 and is the same as the version installed in this computer, created 2025, April 25, 10:33 hours Pacific Time.`

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 15 and is the same as the version installed in this computer, created April 27, 2025, 23:18 hours Eastern Time.`

restart;

ode:=diff(y(x),x)+y(x)=1+x;
IC:=y(0)=0;
sol:=dsolve([ode,IC],y(x),'series')

diff(y(x), x)+y(x) = 1+x

y(0) = 0

y(x) = x

lprint(sol); # notice solution is not series, it should be

y(x) = x

#above solution should be
y(x) = series(x+O(x^6),x,6)

y(x) = series(x+O(x^6),x,6)

#this example below is correct
ode:=diff(y(x),x)+y(x)=1+x;
IC:=y(0)=1;
sol:=dsolve([ode,IC],y(x),'series')

diff(y(x), x)+y(x) = 1+x

y(0) = 1

y(x) = series(1+(1/2)*x^2-(1/6)*x^3+(1/24)*x^4-(1/120)*x^5+O(x^6),x,6)

lprint(sol); #solution is series

y(x) = series(1+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5+O(x^6),x,6)

 

 

Download bug_report_dsolve_series_april_28_2025.mw

Hello everyone,

I am creating this post to begin a thread where I will share a series of worksheets on important topics in Complex Analysis, written as part of my notes for my classes. Complex_Analysis_Notes.pdf

The planned sections include:

  • Section 1: Infinite Series

  • Section 2: Power Series

  • Section 3: The Radius of Convergence of a Power Series

  • Section 4: The Riemann Zeta Function and the Riemann Hypothesis

  • Section 5: The Prime Number Theorem

Each worksheet will include calculations, plots, and examples using Maple to illustrate key ideas.

I plan to upload one worksheet every week to keep a steady pace and allow time for discussion and feedback between posts.

I hope this thread will be helpful both for learning and for deeper exploration.
Feel free to comment, suggest improvements, or ask questions as I post the materials.

Thank you!

restart; interface(imaginaryunit = 'I'); z := I*(1/3); S_N := proc (n) options operator, arrow; sum(z^k, k = 0 .. n) end proc; limit(S_N(n), n = infinity); S_N(10); S_N(100); S_N(1000); with(plots); points := [seq([Re(evalf(S_N(n))), Im(evalf(S_N(n)))], n = 0 .. 50)]; pointplot(points, connect = true, symbol = solidcircle, symbolsize = 10, color = blue, labels = ["Re", "Im"])

proc (n) options operator, arrow; sum(z^k, k = 0 .. n) end proc

 

9/10+(3/10)*I

 

53144/59049+(5905/19683)*I

 

 

restart; interface(imaginaryunit = 'I'); z := I*(1/2); S_N := proc (n) options operator, arrow; sum(z^k, k = 0 .. n) end proc; limit(S_N(n), n = infinity); S_N(10); S_N(100); S_N(1000); with(plots); points := [seq([Re(evalf(S_N(n))), Im(evalf(S_N(n)))], n = 0 .. 50)]; pointplot(points, connect = true, symbol = solidcircle, symbolsize = 10, color = blue, labels = ["Re", "Im"])

proc (n) options operator, arrow; sum(z^k, k = 0 .. n) end proc

 

4/5+(2/5)*I

 

819/1024+(205/512)*I

 

 

NULL

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum(((1/2)*I)^n, n = 0 .. N) end proc; fullsum := sum(((1/2)*I)^n, n = 0 .. infinity); realpts := [seq([n, Re(S(n))], n = 0 .. 30)]; imagpts := [seq([n, Im(S(n))], n = 0 .. 30)]; limit(Re(S(n)), n = infinity); limit(Im(S(n)), n = infinity); horiz_reallimit := plot(4/5, k = 0 .. 30, color = black, linestyle = 2, thickness = 2); horiz_imaglimit := plot(2/5, k = 0 .. 30, color = black, linestyle = 2, thickness = 2); plots[display]([pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Value"], legend = "Real Part"), pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Value"], legend = "Imaginary Part"), horiz_reallimit, horiz_imaglimit], axes = boxed, labels = ["n", "Partial Sum Value"])

4/5+(2/5)*I

 

4/5

 

2/5

 

 

restart; with(plots); interface(imaginaryunit = 'I'); H := proc (N) local n; sum(1/n, n = 1 .. N) end proc; limit(H(n), n = infinity); limit(Re(H(n)), n = infinity); limit(Im(H(n)), n = infinity); harmonic_pts := [seq([n, H(n)], n = 1 .. 100)]; harmonic_plot := pointplot(harmonic_pts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], axes = boxed)

infinity

 

infinity

 

0

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum(I^k/k, k = 1 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 1 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 1 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 1 .. 100)]; S_infinite := sum(I^k/k, k = 1 .. infinity); Re(S_infinite); Im(S_infinite); horiz_reallimit := plot(-(1/2)*ln(2), k = 0 .. 100, color = black, linestyle = 2, thickness = 2); horiz_imaglimit := plot((1/4)*Pi, k = 0 .. 100, color = black, linestyle = 2, thickness = 2); real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], axes = boxed, legend = "Real Part"); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum Value"], axes = boxed, legend = "Imaginary Part"); plots[display]([real_plot, horiz_reallimit, imag_plot, horiz_imaglimit]); plots[pointplot](complex_pts, symbol = solidcircle, style = pointline, color = blue, axes = boxed, labels = ["Re", "Im"])

-(1/2)*ln(2)+((1/4)*I)*Pi

 

-(1/2)*ln(2)

 

(1/4)*Pi

 

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum((-(2/3)*I)^n, n = 0 .. N) end proc; fullsum := sum((-2*I*(1/3))^n, n = 0 .. infinity); realpts := [seq([n, Re(S(n))], n = 0 .. 30)]; imagpts := [seq([n, Im(S(n))], n = 0 .. 30)]; limit(Re(S(n)), n = infinity); limit(Im(S(n)), n = infinity); horiz_reallimit := plot(9/13, k = 0 .. 30, color = black, linestyle = 2, thickness = 2); horiz_imaglimit := plot(-6/13, k = 0 .. 30, color = black, linestyle = 2, thickness = 2); plots[display]([pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Value"], legend = "Real Part"), pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Value"], legend = "Imaginary Part"), horiz_reallimit, horiz_imaglimit], axes = boxed, labels = ["n", "Partial Sum Value"])

9/13-(6/13)*I

 

9/13

 

-6/13

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum((I*Pi)^n, n = 0 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 0 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 0 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 0 .. 100)]; limit(S(N), N = infinity); limit(Re(S(n)), n = infinity); limit(Im(S(n)), n = infinity); real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum (Real Part)"], title = "Real Part of Partial Sums of (Pi i)^n", axes = boxed); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum (Imaginary Part)"], title = "Imaginary Part of Partial Sums of (Pi i)^n", axes = boxed); complex_plot := pointplot(complex_pts, symbol = solidcircle, style = pointline, color = blue, labels = ["Re", "Im"], title = "Partial Sums in Complex Plane (Pi i)^n", axes = boxed)

undefined

 

undefined

 

undefined

 

 

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; sum(2*I^k/k, k = 1 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 1 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 1 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 1 .. 100)]; S_infinite := sum(2*I^k/k, k = 1 .. infinity); Re(S_infinite); Im(S_infinite); horiz_reallimit := plot(-ln(2), k = 0 .. 100, color = black, linestyle = 2, thickness = 2); horiz_imaglimit := plot((1/2)*Pi, k = 0 .. 100, color = black, linestyle = 2, thickness = 2); real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], axes = boxed, legend = "Real Part"); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum Value"], axes = boxed, legend = "Imaginary Part"); plots[display]([real_plot, horiz_reallimit, imag_plot, horiz_imaglimit]); plots[pointplot](complex_pts, symbol = solidcircle, style = pointline, color = blue, axes = boxed, labels = ["Re", "Im"])

-ln(2)+((1/2)*I)*Pi

 

-ln(2)

 

(1/2)*Pi

 

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; add(exp(Pi*I*n)/n, n = 1 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 1 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 1 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 1 .. 100)]; S_infinite := sum(exp(Pi*I*n)/n, n = 1 .. infinity); limit_Re := Re(S_infinite); limit_Im := Im(S_infinite); limit_Re; limit_Im; real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], title = "Real Part of Partial Sums", axes = boxed); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum Value"], title = "Imaginary Part of Partial Sums", axes = boxed); complex_plot := pointplot(complex_pts, symbol = solidcircle, style = pointline, color = blue, labels = ["Re", "Im"], title = "Partial Sums in Complex Plane", axes = boxed); plots[display]([real_plot, imag_plot]); plots[display](complex_plot)

-ln(2)

 

-ln(2)

 

0

 

-ln(2)

 

0

 

 

 

restart; with(plots); interface(imaginaryunit = 'I'); S := proc (N) local n; add(exp(2*Pi*I*n), n = 0 .. N) end proc; realpts := [seq([n, Re(S(n))], n = 0 .. 100)]; imagpts := [seq([n, Im(S(n))], n = 0 .. 100)]; complex_pts := [seq([Re(S(n)), Im(S(n))], n = 0 .. 100)]; S_infinite := sum(exp(2*Pi*I*n), n = 1 .. infinity); limit_Re := Re(S_infinite); limit_Im := Im(S_infinite); real_plot := pointplot(realpts, symbol = solidcircle, style = pointline, color = blue, labels = ["n", "Partial Sum Value"], title = "Real Part of Partial Sums", axes = boxed); imag_plot := pointplot(imagpts, symbol = solidbox, style = pointline, color = red, labels = ["n", "Partial Sum Value"], title = "Imaginary Part of Partial Sums", axes = boxed); complex_plot := pointplot(complex_pts, symbol = solidcircle, style = pointline, color = blue, labels = ["Re", "Im"], title = "Partial Sums in Complex Plane", axes = boxed); plots[display]([real_plot, imag_plot]); plots[display](complex_plot)

infinity

 

infinity

 

0

 

 

 
 

``

Download infinite_series.mw

These two expressions are the same, just pulled minus sign out

But look what happens when integrating them. the anti derivative of one is much more complicated than the other and contains complex numbers and logs. And no matter what I tried, I could not convert the complicated one to look same as the simpler result. Also could not verify the complicated one by back differentiating.

integrand_1:=x^2*(-arctan(x) + x)*exp(-arctan(x) + x)/(x^2 + 1);

x^2*(-arctan(x)+x)*exp(-arctan(x)+x)/(x^2+1)

integrand_2:=evala(integrand_1);

-x^2*(arctan(x)-x)*exp(-arctan(x)+x)/(x^2+1)

simplify(integrand_1 - integrand_2)

0

anti_1:=int(integrand_1,x);

(-arctan(x)+x)*exp(-arctan(x)+x)-exp(-arctan(x)+x)

anti_2:=int(integrand_2,x);

-(1-x+((1/2)*I)*ln(1-I*x)-((1/2)*I)*ln(1+x*I))*(1-I*x)^(-(1/2)*I)*(1+x*I)^((1/2)*I)*exp(x)

simplify(diff(anti_1,x)-integrand_1);

0

simplify(diff(anti_2,x)-integrand_2);

Error, (in simpl/simpl/ReIm/sum) too many levels of recursion

simplify(anti_1 - anti_2)

Error, (in simpl/simpl/ReIm/sum) too many levels of recursion

simplify(anti_2);

(1/2)*(I*ln(1+x*I)-I*ln(1-I*x)+2*x-2)*(1-I*x)^(-(1/2)*I)*(1+x*I)^((1/2)*I)*exp(x)

simplify(anti_2,ln);

(1/2)*(I*ln(1+x*I)-I*ln(1-I*x)+2*x-2)*(1-I*x)^(-(1/2)*I)*(1+x*I)^((1/2)*I)*exp(x)

 

 

Download int_strange_result_april_27_2025.mw

I would have expected same anti derivative to show.  To check, I used another software, and that one gave same anti-derivative for both integrands.

The questions I have: Why Maple gives such different result for same integrand? And how could one convert the one with the logs and complex numbers to the first one?

Maple 2025

 I am writing notes on complex analysis, I need to use figures of contour paths to integrate on them, i want to create something like this

I tried to plot the contour for 
\oint_{|z|=2} \frac{1}{z^2+1}\,dz
I need to have connecting lines all around because the poles can not be isolated

with(plots); circle1 := plot([2*cos(t), 2*sin(t), t = 0 .. 2*Pi], color = blue, thickness = 2); circle2 := plot([(1/2)*cos(t), 1+(1/2)*sin(t), t = 0 .. 2*Pi], color = "Green", thickness = 2); circle3 := plot([(1/2)*cos(t), -1+(1/2)*sin(t), t = 0 .. 2*Pi], color = "Red", thickness = 2); sing1 := plottools[disk]([0, 1], 0.2e-1, color = white); sing2 := plottools[disk]([0, -1], 0.2e-1, color = white); label1 := textplot([.1, 1.1, "z = i"], font = [Arial, Bold, 12]); label2 := textplot([.1, -1.1, "z = -i"], font = [Arial, Bold, 12])

display(circle1, circle2, circle3, sing1, sing2, label1, label2, scaling = constrained, labels = ["Re", "Im"])

 
 

restart; f := proc (z) options operator, arrow; 1/(z^2+1) end proc; z := 2*exp(I*t); dz := diff(z, t); integrand := f(z)*dz; simplify(integrand); value(Int(integrand, t = 0 .. 2*Pi))

0

(1)

Download CIF.mw

Hello all,

After updating the Physics package I have this error :

Physics:-Version();
The "Physics Updates" version "1862" is installed in the

   directory C:\Users\jm\maple\toolbox\2025\Physics Updates but

   is not active. The active version of Physics is within the

   library C:/Users/jm/maple/toolbox/2025/Physics Updates/lib\Ph\

  ysics Updates.maple.

What am I supposed to do next?

Thanks a lot and kind regards to all,

Jean-Michel

FYI;

 

You might have to try the command more than one time to see the above crash. Here is the worksheet

restart;

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 1862 and is the same as the version installed in this computer, created 2025, April 25, 10:33 hours Pacific Time.`

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 13 and is the same as the version installed in this computer, created April 22, 2025, 15:14 hours Eastern Time.`

restart;

ode:=x^2-2*x*y(x)+5*y(x)^2 = (x^2+2*x*y(x)+y(x)^2)*diff(y(x),x);

x^2-2*x*y(x)+5*y(x)^2 = (x^2+2*x*y(x)+y(x)^2)*(diff(y(x), x))

sol:=y(x) = (-1/2*exp(RootOf(-exp(_Z)^2*ln(x*(exp(_Z)-2))+2*_C7*exp(_Z)^2+_Z*exp(_Z)^2+4*exp(_Z)*ln(x*(exp(_Z)-2))-8*_C7*exp(_Z)-4*exp(_Z)*_Z-2*exp(_Z)-4*ln(x*(exp(_Z)-2))+8*_C7+4*_Z+6))^2+3*exp(RootOf(-exp(_Z)^2*ln(x*(exp(_Z)-2))+2*_C7*exp(_Z)^2+_Z*exp(_Z)^2+4*exp(_Z)*ln(x*(exp(_Z)-2))-8*_C7*exp(_Z)-4*exp(_Z)*_Z-2*exp(_Z)-4*ln(x*(exp(_Z)-2))+8*_C7+4*_Z+6))-6+2*(exp(RootOf(-exp(_Z)^2*ln(x*(exp(_Z)-2))+2*_C7*exp(_Z)^2+_Z*exp(_Z)^2+4*exp(_Z)*ln(x*(exp(_Z)-2))-8*_C7*exp(_Z)-4*exp(_Z)*_Z-2*exp(_Z)-4*ln(x*(exp(_Z)-2))+8*_C7+4*_Z+6))^2-6*exp(RootOf(-exp(_Z)^2*ln(x*(exp(_Z)-2))+2*_C7*exp(_Z)^2+_Z*exp(_Z)^2+4*exp(_Z)*ln(x*(exp(_Z)-2))-8*_C7*exp(_Z)-4*exp(_Z)*_Z-2*exp(_Z)-4*ln(x*(exp(_Z)-2))+8*_C7+4*_Z+6))+9)^(1/2))/(1/2*exp(RootOf(-exp(_Z)^2*ln(x*(exp(_Z)-2))+2*_C7*exp(_Z)^2+_Z*exp(_Z)^2+4*exp(_Z)*ln(x*(exp(_Z)-2))-8*_C7*exp(_Z)-4*exp(_Z)*_Z-2*exp(_Z)-4*ln(x*(exp(_Z)-2))+8*_C7+4*_Z+6))^2-3*exp(RootOf(-exp(_Z)^2*ln(x*(exp(_Z)-2))+2*_C7*exp(_Z)^2+_Z*exp(_Z)^2+4*exp(_Z)*ln(x*(exp(_Z)-2))-8*_C7*exp(_Z)-4*exp(_Z)*_Z-2*exp(_Z)-4*ln(x*(exp(_Z)-2))+8*_C7+4*_Z+6)))*x:

odetest(sol,ode);

 

Download crash_maple_2025_april_27_2025.mw

Hopefully a fix could be found for this.

Just found new regression in Maple 2025. This internal error can not be cought and was not there in Maple 2024.2. This is new from the ones reprted earlier in Collection-Of-Problems-In-Maple-2025 

Here it is , using latest SupportTools

restart;

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 1862 and is the same as the version installed in this computer, created 2025, April 25, 10:33 hours Pacific Time.`

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 13 and is the same as the version installed in this computer, created April 22, 2025, 15:14 hours Eastern Time.`

restart;

#17593
eq:=2*A[6]*exp(-2*t)*cos(t)+2*A[3]*exp(-2*t)*sin(t)-2*A[4]*exp(-2*t)*cos(t)-4*A[7]*exp(-t)*sin(2*t)+4*A[8]*exp(-t)*cos(2*t)-2*A[5]*exp(-2*t)*sin(t)+4*A[2]*exp(-t)+4*A[1]*t*exp(-t)+4*A[3]*exp(-2*t)*cos(t)+4*A[4]*exp(-2*t)*sin(t)+2*A[9]*exp(-t)*cos(2*t)-8*A[9]*t*exp(-t)*sin(2*t)+2*A[10]*exp(-t)*sin(2*t)+8*A[10]*t*exp(-t)*cos(2*t)-2*A[5]*exp(-2*t)*cos(t)+2*A[5]*t*exp(-2*t)*sin(t)-2*A[6]*exp(-2*t)*sin(t)-2*A[6]*t*exp(-2*t)*cos(t)+4*A[5]*t*exp(-2*t)*cos(t)+4*A[6]*t*exp(-2*t)*sin(t) = 3*t*exp(-t)*cos(2*t)-2*t*exp(-2*t)*cos(t):


trial_solution_constants:=[A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9], A[10]]:

try
     timelimit(30,[solve(identity(eq,t),trial_solution_constants) ]);
catch:
     print("OK cought error");
end try;

Error, (in type/trig) too many levels of recursion

 

 

Download regression_maple_2025_april_26_2025.mw

Here is the same code in Maple 2024.2 but using windows. No internal error and timeout was cought as expected.

restart;
interface(version);

`Standard Worksheet Interface, Maple 2024.2, Windows 10, October 29 2024 Build ID 1872373`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1862. The version installed in this computer is 1849 created 2025, March 12, 12:37 hours Pacific Time, found in the directory C:\Users\Owner\maple\toolbox\2024\Physics Updates\lib\`

#17593
eq:=2*A[6]*exp(-2*t)*cos(t)+2*A[3]*exp(-2*t)*sin(t)-2*A[4]*exp(-2*t)*cos(t)-4*A[7]*exp(-t)*sin(2*t)+4*A[8]*exp(-t)*cos(2*t)-2*A[5]*exp(-2*t)*sin(t)+4*A[2]*exp(-t)+4*A[1]*t*exp(-t)+4*A[3]*exp(-2*t)*cos(t)+4*A[4]*exp(-2*t)*sin(t)+2*A[9]*exp(-t)*cos(2*t)-8*A[9]*t*exp(-t)*sin(2*t)+2*A[10]*exp(-t)*sin(2*t)+8*A[10]*t*exp(-t)*cos(2*t)-2*A[5]*exp(-2*t)*cos(t)+2*A[5]*t*exp(-2*t)*sin(t)-2*A[6]*exp(-2*t)*sin(t)-2*A[6]*t*exp(-2*t)*cos(t)+4*A[5]*t*exp(-2*t)*cos(t)+4*A[6]*t*exp(-2*t)*sin(t) = 3*t*exp(-t)*cos(2*t)-2*t*exp(-2*t)*cos(t):


trial_solution_constants:=[A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9], A[10]]:

 

try
     timelimit(30,[solve(identity(eq,t),trial_solution_constants) ]);
catch:
     print("OK cought error");
end try;


Download no_problem_in_maple_2024_april_26_2025.mw

2 3 4 5 6 7 8 Page 4 of 8