Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Good day, all.

Please, I am working on the following code but found out that the command solve is not displaying any result. Your assistance and suggestions would be appreciated. Thank you, and best regards.

 

restart;
NULL;
t := sum(a[j]*q^j, j = 0 .. 9);
H := diff(t, q);
F := diff(t, q $ 2);
p1 := simplify(eval(t, q = x)) = y[n];
p2 := simplify(eval(F, q = x)) = f[n];
p3 := simplify(eval(F, q = x + h/4)) = f[n + 1/4];
p4 := simplify(eval(F, q = x + h/2)) = f[n + 1/2];
p5 := simplify(eval(F, q = x + (3*h)/4)) = f[n + 3/4];
p6 := simplify(eval(F, q = x + h)) = f[n + 1];
p7 := simplify(eval(F, q = x + (5*h)/4)) = f[n + 5/4];
p8 := simplify(eval(F, q = x + (3*h)/2)) = f[n + 3/2];
p9 := simplify(eval(F, q = x + (7*h)/4)) = f[n + 7/4];
p10 := simplify(eval(F, q = x + 2*h)) = f[n + 2];
r := seq(a[i], i = 0 .. 9);
s := p || (1 .. 10);

solve({s}, {r});

in a lot of paper i see that they just use the Auxiliary function without mention any detail but now i have to find out how i can reach this function, always i used u=Rdiff(ln(f),x#1,2) or u=Rdiff(ln(f),y,x)  (eq17) in mw. and it is answer for me untill now without knowing finding, but i have to figure out how they reach this in more than 1000 paper i didn't see any explanation about that they just used just in one of the paper mentioned something  like a series which i think they used this series but again is so complicated for undrestanding , i will put some problem picture and now i want to know how find them  eq17 for any equation based on the series in last picture mentioned

 

second example

third example which is so  different from other and i don't know how author reach this point 

i have to find this auxiliary function by using something like series  as mentioned in other question? how i can use this series for finding my auxiliary function u= u_0+R*diff(ln(f),x)  


 

#picture one

NULL

restart

with(PDEtools)

with(LinearAlgebra)

NULL

with(SolveTools)

_local(gamma)

Warning, A new binding for the name `gamma` has been created. The global instance of this name is still accessible using the :- prefix, :-`gamma`.  See ?protect for details.

 

undeclare(prime)

`There is no more prime differentiation variable; all derivatives will be displayed as indexed functions`

(1)

declare(u(x, y, z, t))

u(x, y, z, t)*`will now be displayed as`*u

(2)

declare(f(x, y, z, t))

f(x, y, z, t)*`will now be displayed as`*f

(3)

pde := diff(diff(u(x, y, z, t), t)+6*u(x, y, z, t)*(diff(u(x, y, z, t), x))+diff(u(x, y, z, t), `$`(x, 3)), x)+diff(alpha*(diff(u(x, y, z, t), x))+beta*(diff(u(x, y, z, t), y))+delta*(diff(u(x, y, z, t), z)), x)+mu*(diff(u(x, y, z, t), `$`(t, 2)))

diff(diff(u(x, y, z, t), t), x)+6*(diff(u(x, y, z, t), x))^2+6*u(x, y, z, t)*(diff(diff(u(x, y, z, t), x), x))+diff(diff(diff(diff(u(x, y, z, t), x), x), x), x)+alpha*(diff(diff(u(x, y, z, t), x), x))+beta*(diff(diff(u(x, y, z, t), x), y))+delta*(diff(diff(u(x, y, z, t), x), z))+mu*(diff(diff(u(x, y, z, t), t), t))

(4)

pde_linear, pde_nonlinear := selectremove(proc (term) options operator, arrow; not has((eval(term, u(x, y, z, t) = a*u(x, y, z, t)))/a, a) end proc, expand(pde))

diff(diff(u(x, y, z, t), t), x)+diff(diff(diff(diff(u(x, y, z, t), x), x), x), x)+alpha*(diff(diff(u(x, y, z, t), x), x))+beta*(diff(diff(u(x, y, z, t), x), y))+delta*(diff(diff(u(x, y, z, t), x), z))+mu*(diff(diff(u(x, y, z, t), t), t)), 6*(diff(u(x, y, z, t), x))^2+6*u(x, y, z, t)*(diff(diff(u(x, y, z, t), x), x))

(5)

thetai := k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i]; eval(pde_linear, u(x, y, z, t) = exp(thetai)); eq15 := isolate(%, w[i])

k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i]

 

k[i]^2*w[i]*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+k[i]^4*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+alpha*k[i]^2*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+beta*k[i]^2*l[i]*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+delta*k[i]^2*r[i]*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+mu*k[i]^2*w[i]^2*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])

 

w[i] = (1/2)*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu

(6)

eqf := f(x, y, z, t) = 1+eval(exp(thetai), eq15)

f(x, y, z, t) = 1+exp(k[i]*((1/2)*t*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu+y*l[i]+z*r[i]+x)+eta[i])

(7)

eq17 := u(x, y, z, t) = R*(diff(ln(f(x, y, z, t)), `$`(x, 2)))

u(x, y, z, t) = R*((diff(diff(f(x, y, z, t), x), x))/f(x, y, z, t)-(diff(f(x, y, z, t), x))^2/f(x, y, z, t)^2)

(8)

eval(eq17, eqf); simplify(eval(pde, %)); sort([solve(%, R)]); eq17 := eval(eq17, R = simplify(%[2]))

u(x, y, z, t) = R*(k[i]^2*exp(k[i]*((1/2)*t*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu+y*l[i]+z*r[i]+x)+eta[i])/(1+exp(k[i]*((1/2)*t*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu+y*l[i]+z*r[i]+x)+eta[i]))-k[i]^2*(exp(k[i]*((1/2)*t*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu+y*l[i]+z*r[i]+x)+eta[i]))^2/(1+exp(k[i]*((1/2)*t*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu+y*l[i]+z*r[i]+x)+eta[i]))^2)

 

12*R*k[i]^6*exp(((1+(-4*beta*l[i]-4*delta*r[i]-4*k[i]^2-4*alpha)*mu)^(1/2)*t*k[i]+((2*y*l[i]+2*z*r[i]+2*x)*mu-t)*k[i]+2*eta[i]*mu)/mu)*(exp(((1+(-4*beta*l[i]-4*delta*r[i]-4*k[i]^2-4*alpha)*mu)^(1/2)*t*k[i]+((2*y*l[i]+2*z*r[i]+2*x)*mu-t)*k[i]+2*eta[i]*mu)/mu)-3*exp((1/2)*((1+(-4*beta*l[i]-4*delta*r[i]-4*k[i]^2-4*alpha)*mu)^(1/2)*t*k[i]+((2*y*l[i]+2*z*r[i]+2*x)*mu-t)*k[i]+2*eta[i]*mu)/mu)+1)*(R-2)/(1+exp((1/2)*((1+(-4*beta*l[i]-4*delta*r[i]-4*k[i]^2-4*alpha)*mu)^(1/2)*t*k[i]+((2*y*l[i]+2*z*r[i]+2*x)*mu-t)*k[i]+2*eta[i]*mu)/mu))^6

 

[0, 2]

 

u(x, y, z, t) = 2*(diff(diff(f(x, y, z, t), x), x))/f(x, y, z, t)-2*(diff(f(x, y, z, t), x))^2/f(x, y, z, t)^2

(9)

eq19 := eval(eq17, eqf)

u(x, y, z, t) = 2*k[i]^2*exp(k[i]*((1/2)*t*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu+y*l[i]+z*r[i]+x)+eta[i])/(1+exp(k[i]*((1/2)*t*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu+y*l[i]+z*r[i]+x)+eta[i]))-2*k[i]^2*(exp(k[i]*((1/2)*t*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu+y*l[i]+z*r[i]+x)+eta[i]))^2/(1+exp(k[i]*((1/2)*t*(-1+(-4*beta*mu*l[i]-4*delta*mu*r[i]-4*mu*k[i]^2-4*alpha*mu+1)^(1/2))/mu+y*l[i]+z*r[i]+x)+eta[i]))^2

(10)

simplify(eq19)

u(x, y, z, t) = 2*k[i]^2*exp((1/2)*((1+(-4*beta*l[i]-4*delta*r[i]-4*k[i]^2-4*alpha)*mu)^(1/2)*t*k[i]+((2*y*l[i]+2*z*r[i]+2*x)*mu-t)*k[i]+2*eta[i]*mu)/mu)/(1+exp((1/2)*((1+(-4*beta*l[i]-4*delta*r[i]-4*k[i]^2-4*alpha)*mu)^(1/2)*t*k[i]+((2*y*l[i]+2*z*r[i]+2*x)*mu-t)*k[i]+2*eta[i]*mu)/mu))^2

(11)

pdetest(eq19, pde)

0

(12)

#second example

NULL

restart

with(PDEtools)

with(LinearAlgebra)

NULL

with(SolveTools)

_local(gamma)

``

`There is no more prime differentiation variable; all derivatives will be displayed as indexed functions`

(13)

declare(u(x, y, t))

u(x, y, t)*`will now be displayed as`*u

(14)

declare(f(x, y, t))

f(x, y, t)*`will now be displayed as`*f

(15)

pde := diff(u(x, y, t), x, t)+alpha*(diff(u(x, y, t), `$`(x, 4))+6*(diff(u(x, y, t), x))*(diff(u(x, y, t), `$`(x, 2))))+beta*(diff(u(x, y, t), `$`(y, 2)))+a*(diff(u(x, y, t), `$`(x, 2)))+b*(diff(u(x, y, t), x, y))

diff(diff(u(x, y, t), t), x)+alpha*(diff(diff(diff(diff(u(x, y, t), x), x), x), x)+6*(diff(u(x, y, t), x))*(diff(diff(u(x, y, t), x), x)))+beta*(diff(diff(u(x, y, t), y), y))+a*(diff(diff(u(x, y, t), x), x))+b*(diff(diff(u(x, y, t), x), y))

(16)

oppde := [op(expand(pde))]; u_occurrences := map(proc (i) options operator, arrow; numelems(select(has, [op([op(i)])], u)) end proc, oppde); linear_op_indices := ListTools:-SearchAll(1, u_occurrences); pde_linear := add(oppde[[linear_op_indices]]); pde_nonlinear := expand(simplify(expand(pde)-pde_linear))

diff(diff(u(x, y, t), t), x)+alpha*(diff(diff(diff(diff(u(x, y, t), x), x), x), x))+beta*(diff(diff(u(x, y, t), y), y))+a*(diff(diff(u(x, y, t), x), x))+b*(diff(diff(u(x, y, t), x), y))

 

6*alpha*(diff(u(x, y, t), x))*(diff(diff(u(x, y, t), x), x))

(17)

thetai := k[i]*(t*w[i]+y*l[i]+x)+eta[i]; eval(pde_linear, u(x, y, t) = 1+exp(thetai)); eq15 := isolate(%, w[i])

k[i]*(t*w[i]+y*l[i]+x)+eta[i]

 

k[i]^2*w[i]*exp(k[i]*(t*w[i]+y*l[i]+x)+eta[i])+alpha*k[i]^4*exp(k[i]*(t*w[i]+y*l[i]+x)+eta[i])+beta*k[i]^2*l[i]^2*exp(k[i]*(t*w[i]+y*l[i]+x)+eta[i])+a*k[i]^2*exp(k[i]*(t*w[i]+y*l[i]+x)+eta[i])+b*k[i]^2*l[i]*exp(k[i]*(t*w[i]+y*l[i]+x)+eta[i])

 

w[i] = -alpha*k[i]^2-beta*l[i]^2-b*l[i]-a

(18)

eqf := f(x, y, t) = 1+eval(exp(thetai), eq15)

f(x, y, t) = 1+exp(k[i]*((-alpha*k[i]^2-beta*l[i]^2-b*l[i]-a)*t+l[i]*y+x)+eta[i])

(19)

eq17 := u(x, y, t) = R*(diff(ln(f(x, y, t)), x))

u(x, y, t) = R*(diff(f(x, y, t), x))/f(x, y, t)

(20)

eval(eq17, eqf); simplify(eval(pde, %)); sort([solve(%, R)]); eq17 := eval(eq17, R = simplify(%[2]))

[0, 2]

 

u(x, y, t) = 2*(diff(f(x, y, t), x))/f(x, y, t)

(21)

eq19 := eval(eq17, eqf)

u(x, y, t) = 2*k[i]*exp(k[i]*((-alpha*k[i]^2-beta*l[i]^2-b*l[i]-a)*t+l[i]*y+x)+eta[i])/(1+exp(k[i]*((-alpha*k[i]^2-beta*l[i]^2-b*l[i]-a)*t+l[i]*y+x)+eta[i]))

(22)

M := eval(rhs(eq19), i = 1)

2*k[1]*exp(k[1]*(t*(-alpha*k[1]^2-beta*l[1]^2-b*l[1]-a)+y*l[1]+x)+eta[1])/(1+exp(k[1]*(t*(-alpha*k[1]^2-beta*l[1]^2-b*l[1]-a)+y*l[1]+x)+eta[1]))

(23)

simplify(eq19)

u(x, y, t) = 2*k[i]*exp(-alpha*t*k[i]^3+((-beta*l[i]^2-b*l[i]-a)*t+y*l[i]+x)*k[i]+eta[i])/(1+exp(-alpha*t*k[i]^3+((-beta*l[i]^2-b*l[i]-a)*t+y*l[i]+x)*k[i]+eta[i]))

(24)

pdetest(eq19, pde)

0

(25)

#third example which is so different and really i don't know how the author reach this point? which is diff(arctan(f),x)?

NULL

restart

with(PDEtools)

with(LinearAlgebra)

NULL

with(SolveTools)

_local(gamma)

undeclare(prime)

`There is no more prime differentiation variable; all derivatives will be displayed as indexed functions`

(26)

declare(u(x, y, z, t))

u(x, y, z, t)*`will now be displayed as`*u

(27)

declare(f(x, y, z, t))

f(x, y, z, t)*`will now be displayed as`*f

(28)

pde := diff(u(x, y, z, t), t)+6*u(x, y, z, t)^2*(diff(u(x, y, z, t), x))+diff(u(x, y, z, t), `$`(x, 3))+alpha*(diff(u(x, y, z, t), x))+beta*(diff(u(x, y, z, t), y))+delta*(diff(u(x, y, z, t), z))+lambda*(diff(u(x, y, z, t), x, t))+mu*(diff(u(x, y, z, t), `$`(t, 2)))

diff(u(x, y, z, t), t)+6*u(x, y, z, t)^2*(diff(u(x, y, z, t), x))+diff(diff(diff(u(x, y, z, t), x), x), x)+alpha*(diff(u(x, y, z, t), x))+beta*(diff(u(x, y, z, t), y))+delta*(diff(u(x, y, z, t), z))+lambda*(diff(diff(u(x, y, z, t), t), x))+mu*(diff(diff(u(x, y, z, t), t), t))

(29)

pde_linear, pde_nonlinear := selectremove(proc (term) options operator, arrow; not has((eval(term, u(x, y, z, t) = a*u(x, y, z, t)))/a, a) end proc, expand(pde))

diff(u(x, y, z, t), t)+diff(diff(diff(u(x, y, z, t), x), x), x)+alpha*(diff(u(x, y, z, t), x))+beta*(diff(u(x, y, z, t), y))+delta*(diff(u(x, y, z, t), z))+lambda*(diff(diff(u(x, y, z, t), t), x))+mu*(diff(diff(u(x, y, z, t), t), t)), 6*u(x, y, z, t)^2*(diff(u(x, y, z, t), x))

(30)

thetai := k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i]; eval(pde_linear, u(x, y, z, t) = exp(thetai)); eq15 := isolate(%, w[i])

k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i]

 

k[i]*w[i]*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+k[i]^3*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+alpha*k[i]*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+beta*k[i]*l[i]*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+delta*k[i]*r[i]*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+lambda*k[i]^2*w[i]*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])+mu*k[i]^2*w[i]^2*exp(k[i]*(t*w[i]+y*l[i]+z*r[i]+x)+eta[i])

 

w[i] = (1/2)*(-lambda*k[i]-1+(-4*beta*mu*k[i]*l[i]-4*delta*mu*k[i]*r[i]+lambda^2*k[i]^2-4*mu*k[i]^3-4*alpha*mu*k[i]+2*lambda*k[i]+1)^(1/2))/(mu*k[i])

(31)

eqf := f(x, y, z, t) = 1+eval(exp(thetai), eq15)

f(x, y, z, t) = 1+exp(k[i]*((1/2)*(-lambda*k[i]-1+(-4*beta*mu*k[i]*l[i]-4*delta*mu*k[i]*r[i]+lambda^2*k[i]^2-4*mu*k[i]^3-4*alpha*mu*k[i]+2*lambda*k[i]+1)^(1/2))*t/(mu*k[i])+l[i]*y+r[i]*z+x)+eta[i])

(32)

eq17 := u(x, y, z, t) = R*(diff(ln(f(x, y, z, t)), x))

u(x, y, z, t) = R*((diff(diff(f(x, y, z, t), y), y))/f(x, y, z, t)-(diff(f(x, y, z, t), y))^2/f(x, y, z, t)^2)

(33)

eval(eq17, eqf); simplify(eval(pde, %)); sort([solve(%, R)]); eq17 := eval(eq17, R = simplify(%[2]))


 

Download F-series.mw

Thanks for any help!

Hi,

Ideas to remove the rank column (i.e., the first column displaying indices 1, 2, 3, ...) from my DataFrame?

Thanks

Q_DataFrame.mw

Hi

does anyone know when Maple Online Help will be up again?

Regards

Henning

Does Maple 2025 have a dark theme or GUI color customization?

Does this happen in Maple 2025?

Why when adding Physics:-Setup(assumingusesAssume = true): now Maple gives internal exception which can not even be cought?

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 1849 and is the same as the version installed in this computer, created 2025, March 12, 12:37 hours Pacific Time.`

restart;

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

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

y(x) = exp((-2*_C1)^(1/2))

odetest(sol,ode) assuming positive;

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

restart;

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

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

y(x) = exp((-2*_C1)^(1/2))

Physics:-Setup(assumingusesAssume = true):

odetest(sol,ode) assuming positive;

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

restart;

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

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

y(x) = exp((-2*_C1)^(1/2))

Physics:-Setup(assumingusesAssume = false):

odetest(sol,ode) assuming positive;

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

 

 

Download ode_test_with_physics_march_25_2025.mw

Dear Maple users

I have an Interactive Planck Curve working great in Maple 2023, but not in Maple 2024 and 2025. Can you explain why? When I drag in the Temperature slider it fails with the window: (in plottools:-getdata) range out of bounds. 

Is it a bug or has some command changed?

File attached.

Kind regards,

Erik

Planck_Curve.mw

Neither dragging the Maple Window to the screen edge nor Windows key & Arrow keys works on my
Windows 10 machine.

Is this only my installation?

Anything I can do get normal Windows windows behaviour back?

I've posted this issue in the beta forum for Maple previously, but apparently this issue was never addressed, so I am going to repost it here.

Contrary to Maple 2024, components like TextArea now ignore the general view zoom factor in Maple 2025.

I'll submit it as a software change request once Maple 2025 is on the list.

Hi all, I have recently started playing around with Maple after using Mathematica for years. I am trying to understand how to do pattern matching in Maple, and am being frustrated by the following example using indices:

patmatch(S[a],S[b::symbol])

I would expect this to evaluate to true when none of the symbols have been given other meanings, but this isn't the case. For the life of my I can't work out what I'm doing wrong, and have been unable to find an example of pattern matching with indices online. What am I missing here?

The equivalent statement using functions:

patmatch(S(a),S(b::symbol))

returns true as expected.

Many thanks in advance!

I’m absolutely delighted to announce the launch of Maple 2025!

Although you see a new release every year, new features take anything from a few fast-paced weeks to develop, to months of careful cultivation.

Working on so many features in parallel, each with varying time scales, isn't easy! We have to fastidiously manage and track our work.

So it's easy to lose ourselves in the daily minutiae of software development. To help us maintain perspective, we constantly ask ourselves questions like:

  • What user problem are we solving and how often does this problem occur?
  • Can we validate our proposed solution with preliminary user feedback?
  • Is this a solution to a problem that doesn't exist and will never exist, or are we pre-empting a future need?
  • Are we offering value to our users?

Given the answers, we course-correct to make sure we stay on track for our central mission - to make you happy, and to keep you coming back year-after-year.

With Maple 2025, I think we've smashed that goal. We have many new features that'll appeal to many different types of users - from students, educators and mathematicians, to engineers, scientists and technical professionals

Let me walk you through some of my personal highlights.

It’ll be difficult for anyone to miss this - Maple 2025 has a new interface! It’s a ribbon-based UI that look clean and contemporary, and helps you find and discover tools more quickly than before.

You have large, meaningful icons.

Items are logically grouped.

The ribbons is contextual. If you click on a plot, you get new tabs for interacting with and drawing on the plot.

A new Education tab collects pedagogical resources that were scattered around the interface in prior releases.

This is the biggest visual overhaul to Maple in many years. We hope you like it! 

We also appreciate that changes in look and feel can be divisive. Please rest assured that we will refine and finesse the interface with each successive release; your comments and suggestions are most welcome.

The new interface is available on Windows and Linux, and as a technology preview on Mac.

The right arrow key on my keyboard is wearing out…and it’s all because of Maple. I’m knee deep in Maple nearly every day entering equations, and I’m always using right-arrow to move the cursor. It gets kind of tedious!

This anecdote reflects some investigative work we did. We comprehensively examined our internal library of thousands of Maple worksheets and discovered that these three input patterns are extremely common.

Previously, you’d use the right-arrow key to move the cursor out of the exponential, division or subscript.

Now, in Maple 2025, when you

  • type ^, /, or enter a literal subscript with a double-underscore,
  • followed by a number or symbol
  • and then input another operator (such as +)

the operator is automatically inserted on the baseline (except when y = 1).

Of course, you can also make the cursor return to or stay in the exponent or denominator with a simple keystroke, when that is what is needed.

This is one of those little quality of life refinements that I’m very fond of - it’s a little visual and usability dopamine hit.

The sum command (and its typeset form) now indexes into vectors without you needing to spam unevaluation quotes all over your expression.

Maple 2024

Maple 2025

We’ve been integrating units deeper into the Maple system, release after release. Much of this is driven by our engineering users.

A few releases ago, we made int(numeric) compatible with units. With Maple 2025, you can now numerically differentiate  expressions and procedures that have units.

I’m a grizzled thermodynamics hack, so here’s an example in which I calculate the specific heat capacity of water by differentiating enthalpy with respect to temperature (and then confirm the result with the built-in value):

This is in addition to many other improvements to the units experience.

Although this is a part of Maple that I don’t touch often (my colleague Karishma takes point on the education side), I REALLY wish I’d had this when I was struggling with math.

You can now automatically generate unlimited variants of the same problem for students to solve with the Try Another feature, which has been added to Maple’s Check My Work tools (another feature I really could have used!). This is available for many common math principles, including factorization, simplification, integration and more.

This is just one of the improvements in Maple 2025 for teaching and learning.

 If you’ve ever found yourself going back and forth (and back and forth) between two large, almost identical-looking Maple expressions, trying to figure out how they are different, you’re going to love this one.  ExpressionTools is a new package that lets you compare the differences between two expressions.

I really like the use of color to highlight differences. Less squinting at the screen!

You can now run Maple Flow worksheets from Maple (you don’t need Maple Flow installed to do this). You can send parameters into the Flow worksheet and extract your desired results.

This means you can use the entire flexibility of Maple to analysis and manipulate your Flow worksheet. You could, for example:

  • Attach a Flow worksheet to a Maple workbook and create an interactive application
  • Carry out parameter studies of a Flow worksheet by evaluating it over many parameter sets in Maple
  • Create an Excel interface for a Flow worksheet using the Maple add-in for Excel

Simplify is one of those functions that literally tens of thousands of people use each day. Every time we make an incremental improvement, the cumulative benefits across our entire user base are significant.

We’ve refined simplify in a number of critical ways. For example, simplify now recognizes when exponentials can be profitably converted to hyperbolic trig functions:

The analysis of many scientific phenomena result in Laplace transforms that do not have a symbolic inverse which can be expressed in terms of elementary functions. This includes applications in heat transfer, fluid mechanics, fractional diffusion processes, control systems and electrical transmission.

For example, this monster Laplace transform results from an analysis of voltage on a transmission line:

You can now numerically invert this transform courtesy of an enhancement to inttrans:-invlaplace - a fast quadrature method.

I’ve saved what I think has the most future potential for last.

I’m sure nearly all of you have experimented with the various AI tools. They’re an inevitable part of our present and future, whether we're comfortable with it or not.

This is something we've been mulling over for some time.

  • In Maple 2019, the DeepLearning package made its debut. This package provides tools for machine learning, supporting operations such as classification and regression using neural networks.
  • In Maple 2024, we introduced an AI-powered formula lookup feature.

In Maple 2025, we’re giving you an early-stage technology preview of AI-powered document generation.

You can automatically generate worksheet content by prompting an AI, and then gradually refine the content

If you’re an educator, you might want some content that describes applications of calculus. So you might ask the AI “How do I derive the formula for the area of a circle” by entering your prompt into this text box:

This is the worksheet content that may be returned:

If you’re structural engineer who wants to know how to calculate the hardness of concrete, you might ask the AI: “How do I calculate the compressive strength of slow hardening concrete as a function of time? Use the CEB-FIP Model Code 90. Include a worked example with Maple code”.

This worksheet content that could be generated (note the live Maple code):

We’re labelling AI-generated worksheet content as a technology preview. You might see

  • text that might be misleading (but sounds plausible)
  • code that doesn’t work (but looks plausible)
  • or different results each time you click “Generate Document”

For the moment, I would not rely on AI-generated worksheet content without realistic expectations, a healthy dose of scepticism and a modicum of detached analysis. But AI models are rapidly growing in robustness, and we want to position ourselves to best exploit their future potential. The next few years will be VERY exciting.

We can never cover everything in a short blog post like this. So if you want to know more, head on over to the What’s New pages for Maple 2025!

I have a student who has a problem when closing and opening a Maple file.

It seems as if Maple turns math fields into text, but still execute when using ! or !!!

The dark red part is written in a text field, but Maple still executes

If I try to write in a math field and executes, closes Maple and opens again, this does not happen, so it is not the file that is the problem.  The student is running 2024.2 version.

Can anyone explain the problem and how to solve it.

 

I am unable to add a comment or the file. I have tried several times, without any luck

Update 

Also, is there a way to disable the use of remember tables permanently in Maple? This causes me so much trouble and It is cause of why Maple behave differently at different times.

Help shows how to do it if one knows the name of the module or procedure. But Maple has 1000's of these. There does not seem to be a way to tell maple

          forget(all)

and have set once. (may be something I can put in the ini file, to disable this feature).

At the end of help it says

"As a special case, specifying f as an empty range allows for selective clearing of remember table entries from all remember tables in the system.  This requires a second argument, to indicate which entries to clear. For example, forget(..,x), which will clear all remembered entries in the system that reference x.  "

But what is x in the above?? If I do forget(..) it does not work.

---- end update ------------------------------------------------------------------------------------------------------------------

Adding printlevel:=20, I see simplify generate/runs through longer code the first time. The second time calling the same exact simplify code, now it shows it runs through much shorter code. 

I am assuming printlevel is behaving correctly each time.

This must be due to cache simplifies keeps somewhere, or some internal settings it updates from first time and this is what causes it to do shorter run second time.

Without doing restart, how can make force simplify to run through same code it did the first time and each time? i.e. as if it was called the very first time each time?

I tried forget, but it is not doing anything.

Here is worksheet.  The code is simply this

printlevel:=0;
restart;
printlevel:=20;
simplify(3*x^3/x+sin(x^2)/4);  #long printout

simplify(3*x^3/x+sin(x^2)/4);  #short printout

printlevel:=0;
forget(simplify,forgetpermanent = true,reinitialize=true);

printlevel:=20;
simplify(3*x^3/x+sin(x^2)/4); #still same short printout

So there is something else needs to be cleared? Only way to get the long printout is to do restart. but ofcourse I can't do restart in middle of a loop.

I tried gc() also, but had no effect. 

What other commands are there to do this? I do use Physics and it is on my libname.

printlevel:=0;

0

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 1849 and is the same as the version installed in this computer, created 2025, March 12, 12:37 hours Pacific Time.`

libname;

"C:\Users\Owner\maple\toolbox\2024\Physics Updates\lib", "C:\Program Files\Maple 2024\lib"

printlevel:=20;

20

simplify(3*x^3/x+sin(x^2)/4);

{--> enter sin, args = x^2

{--> enter \`type/SymbolicInfinity\`, args = x^2

false

<-- exit \`type/SymbolicInfinity\` (now in sin) = false}

{--> enter \`sin/normal\`, args = x^2

{--> enter \`tools/sign\`, args = x^2

-x^2

1

<-- exit \`tools/sign\` (now in \`sin/normal\`) = 1}

1

-sin(x^2)

sin(x^2)

<-- exit \`sin/normal\` (now in sin) = sin(x^2)}

sin(x^2)

{--> enter \`trig/linear_in_Pi\`, args = x^2

{--> enter collect, args = x^2, Pi

{Pi}

{Pi}

{}

Pi

recursive

proc (x) options operator, arrow; x end proc

x^2

<-- exit collect (now in \`trig/linear_in_Pi\`) = x^2}

x^2

<-- exit \`trig/linear_in_Pi\` (now in sin) = x^2}

x^2

sin(x^2)

<-- exit sin (now at top level) = sin(x^2)}

{--> enter simplify, args = 3*x^2+(1/4)*sin(x^2)

false

{--> enter \`simplify/do\`, args = 3*x^2+(1/4)*sin(x^2)

{--> enter \`tools/membertype\`, args = Not(Or(algebraic, list, set, relation, range)), 3*x^2+(1/4)*sin(x^2)

false

<-- exit \`tools/membertype\` (now in \`simplify/do\`) = false}

{--> enter \`simplify/check_constant\`, args = 3*x^2+(1/4)*sin(x^2)

<-- exit \`simplify/check_constant\` (now in \`simplify/do\`) = false}

false

"top"

3*x^2+(1/4)*sin(x^2)

1

{}

{--> enter \`type/ratpoly\`, args = 3*x^2+(1/4)*sin(x^2), complex(numeric)

{x}

<-- exit \`type/ratpoly\` (now in \`simplify/do\`) = false}

{--> enter \`simplify/recurse\`, args = 3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

<-- exit \`simplify/recurse\` (now in \`simplify/do\`) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

[]

table( [ ] )

{3*x^2+(1/4)*sin(x^2)}

{--> enter \`simplify/check_constant\`, args = 3*x^2+(1/4)*sin(x^2)

<-- exit \`simplify/check_constant\` (now in \`simplify/do\`) = false}

false

{--> enter \`simplify/getkernels\`, args = 3*x^2+(1/4)*sin(x^2), false

{x^2, (1/4)*sin(x^2), 3*x^2+(1/4)*sin(x^2), sin(x^2)}

<-- exit \`simplify/getkernels\` (now in \`simplify/do\`) = {x^2, (1/4)*sin(x^2), 3*x^2+(1/4)*sin(x^2), sin(x^2)}}

{x^2, (1/4)*sin(x^2), 3*x^2+(1/4)*sin(x^2), sin(x^2)}

{--> enter \`simplify/getinds\`, args = {x^2, (1/4)*sin(x^2), 3*x^2+(1/4)*sin(x^2), sin(x^2)}

{power, trig}

<-- exit \`simplify/getinds\` (now in \`simplify/do\`) = {power, trig}}

{power, trig}

{--> enter \`simplify/sortinds\`, args = {power, trig}

53

48

[[power, 53], [trig, 48]]

[trig, power]

[trig, power]

<-- exit \`simplify/sortinds\` (now in \`simplify/do\`) = [trig, power]}

[trig, power]

3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

[trig, power]

1

`simplify/trig`

3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2), [power]

`simplify/power`

3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2), []

3*x^2+(1/4)*sin(x^2)

{--> enter \`simplify/check_constant\`, args = 3*x^2+(1/4)*sin(x^2)

<-- exit \`simplify/check_constant\` (now in \`simplify/do\`) = false}

false

{--> enter \`simplify/getkernels\`, args = 3*x^2+(1/4)*sin(x^2), false

{x^2, (1/4)*sin(x^2), 3*x^2+(1/4)*sin(x^2), sin(x^2)}

<-- exit \`simplify/getkernels\` (now in \`simplify/do\`) = {x^2, (1/4)*sin(x^2), 3*x^2+(1/4)*sin(x^2), sin(x^2)}}

{}

{--> enter \`type/ratpoly\`, args = 3*x^2+(1/4)*sin(x^2), extended_numeric

{x}

<-- exit \`type/ratpoly\` (now in \`simplify/do\`) = false}

{--> enter \`simplify/getinds\`, args = {x^2, (1/4)*sin(x^2), 3*x^2+(1/4)*sin(x^2), sin(x^2)}

{power, trig}

<-- exit \`simplify/getinds\` (now in \`simplify/do\`) = {power, trig}}

{--> enter \`simplify/sortinds\`, args = {power, trig}

53

48

[[power, 53], [trig, 48]]

[trig, power]

[trig, power]

<-- exit \`simplify/sortinds\` (now in \`simplify/do\`) = [trig, power]}

[trig, power]

{--> enter \`simplify/power_exp\`, args = 3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

false

3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

true

<-- exit \`simplify/power_exp\` (now in \`simplify/do\`) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

{--> enter \`simplify/check_constant\`, args = 3*x^2+(1/4)*sin(x^2)

<-- exit \`simplify/check_constant\` (now in \`simplify/do\`) = false}

false

{--> enter \`simplify/do/content\`, args = 3*x^2+(1/4)*sin(x^2)

1/4, 12*x^2+sin(x^2)

<-- exit \`simplify/do/content\` (now in \`simplify/do\`) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

{--> enter \`simplify/recurse_on_constants\`, args = 3*x^2

3, x^2

<-- exit \`simplify/recurse_on_constants\` (now in \`simplify/do\`) = 3*x^2}

{--> enter \`simplify/recurse_on_constants\`, args = (1/4)*sin(x^2)

1/4, sin(x^2)

<-- exit \`simplify/recurse_on_constants\` (now in \`simplify/do\`) = (1/4)*sin(x^2)}

{--> enter \`simplify/recurse_on_constants\`, args = 3*x^2+(1/4)*sin(x^2)

0, 3*x^2+(1/4)*sin(x^2)

<-- exit \`simplify/recurse_on_constants\` (now in \`simplify/do\`) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

<-- exit \`simplify/do\` (now in simplify) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

{--> enter simplify, args = 3*x^2+(1/4)*sin(x^2), size, applysimplifysize = false

{--> enter \`simplify/do\`, args = 3*x^2+(1/4)*sin(x^2), size

false

3*x^2+(1/4)*sin(x^2), size

2

{}

[`simplify/size`]

table( [ ] )

{3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

<-- exit \`simplify/do\` (now in simplify) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

<-- exit simplify (now in simplify) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

<-- exit simplify (now at top level) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

simplify(3*x^3/x+sin(x^2)/4);

value remembered (at top level): sin(x^2) -> sin(x^2)

{--> enter simplify, args = 3*x^2+(1/4)*sin(x^2)

false

value remembered (in simplify): \`simplify/do\`(3*x^2+(1/4)*sin(x^2)) -> 3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

{--> enter simplify, args = 3*x^2+(1/4)*sin(x^2), size, applysimplifysize = false

3*x^2+(1/4)*sin(x^2)

<-- exit simplify (now in simplify) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

<-- exit simplify (now at top level) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

printlevel:=0;
forget(simplify,forgetpermanent = true,reinitialize=true);

0

printlevel:=20;

20

simplify(3*x^3/x+sin(x^2)/4);

value remembered (at top level): sin(x^2) -> sin(x^2)

{--> enter simplify, args = 3*x^2+(1/4)*sin(x^2)

false

value remembered (in simplify): \`simplify/do\`(3*x^2+(1/4)*sin(x^2)) -> 3*x^2+(1/4)*sin(x^2)

3*x^2+(1/4)*sin(x^2)

{--> enter simplify, args = 3*x^2+(1/4)*sin(x^2), size, applysimplifysize = false

3*x^2+(1/4)*sin(x^2)

<-- exit simplify (now in simplify) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

<-- exit simplify (now at top level) = 3*x^2+(1/4)*sin(x^2)}

3*x^2+(1/4)*sin(x^2)

 

 

Download how_to_clear_simplify_cache_march_24_2025.mw

Anyone has Maple 2025 could check if same behaviour there also?

How to I generate and or export a plot without a white border or equivalently , just  the information inside the axes?

See example. Note that when I insert the content below, it fails to accurately copy the information( blue background). If you look at the attached maple file, it should be very clear what I'm after.

kill_plot_border_on_plot_generation_or_export.mw

restart

NULL

How do I make and export a plot without the white border or background? I want my export to only contain information inside the blue region.
 

plot(x^2, x = 0 .. 3, background = "Blue", axes = none)

plot(x^2, x = 0 .. 3, background = "Blue", axes = none)

 

 

When looking at the exported image you see that there is a white border around the blue region.

NULL

NULL

NULL

Download kill_plot_border_on_plot_generation_or_export.mw

Using the attached problem, I want to calculate a term with a constraint that m is not equal to n. How do I insert general constraints into Maple?

test.mw

First 23 24 25 26 27 28 29 Last Page 25 of 2215