nm

11373 Reputation

20 Badges

13 years, 41 days

MaplePrimes Activity


These are questions asked by nm

Should maple have given solution to x as zero in the following?

solve(x^n=0,x)

What if n is zero? what if n is negative?  

Another program I tried this on gives

Maple 2025

Should solution to a first order ode with IC not have any constant of integration in it? This is what the teacher said at school.

But Maple in this example returns a solution to first order Riccati ode with c1 still in the solution even though it is given IC.

How is this possible? This is problem from Differential equations and their applications, 3rd ed., M. Braun, Section 1.10. Page 80, problem #5

If dsolve was not able to resolve c1 from IC for some reason, should it not have returned any solution in this case? 

btw, I could not verify the solution on the ode itself using odetest, but may be assumptions are needed. Will try and see...

restart;

interface(version);

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

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 19 and is the same as the version installed in this computer, created May 21, 2025, 13:44 hours Eastern Time.`

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.`

restart;

libname;

"/home/me/maple/toolbox/2025/Physics Updates/lib", "/home/me/maple/toolbox/2025/Maple Customer Support Updates/lib", "/home/me/maple2025/lib"

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

diff(y(x), x) = 1+y(x)+y(x)^2*cos(x)

y(0) = 0

y(x) = -(1/2)*csgn(sin((1/2)*x))*(MathieuS(-1, -2, arccos(cos((1/2)*x)))*csgn(sin((1/2)*x))*c__1+4*MathieuS(-1, -2, arccos(cos((1/2)*x)))*cos(x)*c__1-MathieuSPrime(-1, -2, arccos(cos((1/2)*x)))*csgn(sin((1/2)*x))*c__1-c__1*MathieuS(-1, -2, arccos(cos((1/2)*x)))+c__1*MathieuSPrime(-1, -2, arccos(cos((1/2)*x)))-MathieuCPrime(-1, -2, arccos(cos((1/2)*x)))*csgn(sin((1/2)*x))+MathieuC(-1, -2, arccos(cos((1/2)*x)))*csgn(sin((1/2)*x))+4*MathieuC(-1, -2, arccos(cos((1/2)*x)))*cos(x)+MathieuCPrime(-1, -2, arccos(cos((1/2)*x)))-MathieuC(-1, -2, arccos(cos((1/2)*x))))/((c__1*MathieuS(-1, -2, arccos(cos((1/2)*x)))-c__1*MathieuSPrime(-1, -2, arccos(cos((1/2)*x)))-MathieuCPrime(-1, -2, arccos(cos((1/2)*x)))+MathieuC(-1, -2, arccos(cos((1/2)*x))))*cos(x))

lprint(maple_sol);

y(x) = -1/2*csgn(sin(1/2*x))/(c__1*MathieuS(-1,-2,arccos(cos(1/2*x)))-c__1*
MathieuSPrime(-1,-2,arccos(cos(1/2*x)))-MathieuCPrime(-1,-2,arccos(cos(1/2*x)))
+MathieuC(-1,-2,arccos(cos(1/2*x))))*(MathieuS(-1,-2,arccos(cos(1/2*x)))*csgn(
sin(1/2*x))*c__1+4*MathieuS(-1,-2,arccos(cos(1/2*x)))*cos(x)*c__1-MathieuSPrime
(-1,-2,arccos(cos(1/2*x)))*csgn(sin(1/2*x))*c__1-c__1*MathieuS(-1,-2,arccos(cos
(1/2*x)))+c__1*MathieuSPrime(-1,-2,arccos(cos(1/2*x)))-MathieuCPrime(-1,-2,
arccos(cos(1/2*x)))*csgn(sin(1/2*x))+MathieuC(-1,-2,arccos(cos(1/2*x)))*csgn(
sin(1/2*x))+4*MathieuC(-1,-2,arccos(cos(1/2*x)))*cos(x)+MathieuCPrime(-1,-2,
arccos(cos(1/2*x)))-MathieuC(-1,-2,arccos(cos(1/2*x))))/cos(x)

 

 

Download why_c_in_solution_may_23_2025.mw

Update

Looked up the textbook, it says solution exist and unique over 0<=x<=1/3, using these now Maple verifies the ode itself, but does not verify the IC (because c__1 is there). Here is updated worksheet. The bottom line, I think the solution is wrong as it should not have any constant of integration in it. Textbook also does say what the solution should be.

restart;

interface(version);

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

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 20. The version installed in this computer is 19 created May 21, 2025, 13:44 hours Eastern Time, found in the directory /home/me/maple/toolbox/2025/Maple Customer Support Updates/lib/Maple`

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.`

restart;

libname;

"/home/me/maple/toolbox/2025/Physics Updates/lib", "/home/me/maple/toolbox/2025/Maple Customer Support Updates/lib", "/home/me/maple2025/lib"

ode:=diff(y(x),x)=1+y(x)+y(x)^2*cos(x);
IC:=y(0)=0;
maple_sol:=dsolve([ode,IC]):
simplify(maple_sol) assuming x>=0 and x<=1/3;

diff(y(x), x) = 1+y(x)+y(x)^2*cos(x)

y(0) = 0

y(x) = (2*c__1*MathieuS(-1, -2, (1/2)*x)+2*MathieuC(-1, -2, (1/2)*x))/(c__1*MathieuSPrime(-1, -2, (1/2)*x)-c__1*MathieuS(-1, -2, (1/2)*x)+MathieuCPrime(-1, -2, (1/2)*x)-MathieuC(-1, -2, (1/2)*x))

odetest(%,[ode,IC]);

[0, -2/(c__1-1)]

 

 

Download why_c_in_solution_may_23_2025_v2.mw

Same exact code. When adding Physics:-Setup(assumingusesAssume = true):  before, now pdsolve do not give solution.

Removing Physics:-Setup(assumingusesAssume = true): now it works.

Why? Should not solution be returned in both cases?

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 1872 and is the same as the version installed in this computer, created 2025, May 17, 22:58 hours Pacific Time.`

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 17 and is the same as the version installed in this computer, created May 5, 2025, 12:37 hours Eastern Time.`

restart;

Example 1. Adding Physics:-Setup(assumingusesAssume = true): makes pdsolve fail

 

Physics:-Setup(assumingusesAssume = true):

pde := diff(u(r, t), t) = k*diff(u(r, t), r$2):
ic  := u(r,0)=r*f(r):
bc  := u(0,t)=0,u(a,t)=a*phi(t):
sol:= pdsolve({pde, ic, bc}, u(r, t));

 

 

Example 2. Same code but removing Physics:-Setup(assumingusesAssume = true): makes it work

 

restart;

pde := diff(u(r, t), t) = k*diff(u(r, t), r$2):
ic  := u(r,0)=r*f(r):
bc  := u(0,t)=0,u(a,t)=a*phi(t):
sol:= pdsolve({pde, ic, bc}, u(r, t));

u(r, t) = Sum(2*sin(n*Pi*r/a)*exp(-k*Pi^2*n^2*t/a^2)*(Int(r*(-phi(0)+f(r))*sin(n*Pi*r/a), r = 0 .. a))/a, n = 1 .. infinity)+Int(Sum(2*sin(n*Pi*r/a)*exp(-k*Pi^2*n^2*(t-tau)/a^2)*(diff(phi(tau), tau))*a*(-1)^n/(n*Pi), n = 1 .. infinity), tau = 0 .. t)+r*phi(t)

 


 

Download pdsolve_fail_when_adding_assuming.mw

This below shows strange side effect of calling latex(sol,'output'='string'):

calling pdsolve on one pde, followed by latex() call, cause the next call after that to pdsolve to fail.

Any idea why this happens and any workaround so code can call latex in between without getting this error?

i.e.   sol:=pdsolve(...);  sol:=pdsolve(...);  WORKS

But    sol:=pdsolve(...); latex(sol,output=string);   sol:=pdsolve(...);  FAIL

Clearly there is some global/buffering issue somewhere. Why is calling latex makes pdsolve fail?

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 1871 and is the same as the version installed in this computer, created 2025, May 15, 11:28 hours Pacific Time.`

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 17 and is the same as the version installed in this computer, created May 5, 2025, 12:37 hours Eastern Time.`

restart;

pde :=  diff(u(x,t),t)=k*diff(u(x,t),x$2)+(exp(-c*t)*sin(2*Pi*x/L));
ic  :=  u(x,0)=f(x);
bc  :=  D[1](u)(0,t)=0, D[1](u)(L,t)=0;
sol:=pdsolve([pde,ic,bc],u(x,t)) assuming L>0,t>0,k>0:

diff(u(x, t), t) = k*(diff(diff(u(x, t), x), x))+exp(-c*t)*sin(2*Pi*x/L)

u(x, 0) = f(x)

(D[1](u))(0, t) = 0, (D[1](u))(L, t) = 0

the_latex:=latex(sol,'output'='string'): #THIS CAUSE ERROR in next command, if this was not here, next call works

pde := diff(u(x,t),t)=k*diff(u(x,t),x$2)-beta*u(x,t);
bc:= D[1](u)(0,t)=0,D[1](u)(Pi,t)=0;
ic  := u(x,0)=x;
sol:=pdsolve([pde,bc,ic],u(x,t)) assuming beta>0;

diff(u(x, t), t) = k*(diff(diff(u(x, t), x), x))-beta*u(x, t)

(D[1](u))(0, t) = 0, (D[1](u))(Pi, t) = 0

u(x, 0) = x

Error, (in assuming) when calling 'unknown'. Received: 'invalid input: diff received Pi, which is not valid for its 2nd argument'

 


 

Download strange_latex_effect.mw

 

This solution by dsolve is correct. I get same solution. The problem is odetest does not give zero.

All my simplification attempts failed and adding assumptions to call to odetest does not change anything for what I tried. i.e. could not make Maple show that the result of odetest is zero.

Any one can come up with smart way to verify this solution is correct? 

interface(version);

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

restart;

ode:=diff(y(x),x)*(x-ln(diff(y(x),x))) = 1;
maple_sol:=dsolve(ode);

(diff(y(x), x))*(x-ln(diff(y(x), x))) = 1

y(x) = -(1+LambertW(-exp(-x))*x+LambertW(-exp(-x))^2)/LambertW(-exp(-x))+c__1

the_residue:=odetest(maple_sol,ode);

(-x+ln(-1/LambertW(-1/exp(x)))-LambertW(-1/exp(x)))/LambertW(-1/exp(x))

Digits:=100;
plot(the_residue,x=0..10)

100

 

 

Download odetest_challange_may_15_2025.mw

Note that coulditbe(the_residue=0) gives true, but this is not reliable way to check, so this method does not coumt.

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