nm

11373 Reputation

20 Badges

13 years, 42 days

MaplePrimes Activity


These are questions asked by nm

The change from _C1 to c__1 is causing me so many problems as I still do not fully understand it.

I have nothing in my Maple ini file. 

I was solving from a solution to an ode for the constant of integration, which I know is c__1 inside a proc.

But this was failing to solve for it. When I copy same code to global (worksheet), it works. So it is clearly issue of name space related to c__1 vs. _C1. 

So even though the solution now has the subscripted version and not the traditional one (since that is the default now), it does not solve for it when inside a proc.

If instead I solve for _C1, then it works. Even though the solution has c__1. This is bizzar to me. 

I also tried adding   global c__1; inside the proc, but this did not help. (did not show this version in the worksheet).

Why is solving for c__1 fail inside a proc but works outside? Clearly the c__1 in the solution of the ode is not the same c__1 I typed in to solve for, even though on the screen they look the same. 

So c__1 is not really the same as _C1 in all aspects. Right?

Here is worksheet. Example 1 below shows how it fails inside proc

Maple 2024.1. Does this happen for others on Linux or the Mac?
 

restart;

interface(version);

`Standard Worksheet Interface, Maple 2024.1, Windows 10, June 25 2024 Build ID 1835466`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1767 and is the same as the version installed in this computer, created 2024, June 28, 12:19 hours Pacific Time.`

Example (1) solving for constant of integration fails inside proc but works outside

 

restart;

foo:=proc(ode::`=`)
local sol,the_constant;
   sol:=dsolve(ode);
   print("sol is ",sol);
   the_constant:=solve(sol,c__1);
   print("the constant is ",the_constant);
end proc;

proc (ode::`=`) local sol, the_constant; sol := dsolve(ode); print("sol is ", sol); the_constant := solve(sol, c__1); print("the constant is ", the_constant) end proc

#this does not work
ode:=diff(y(x),x) = 3/4*y(x)/x;
foo(ode)

diff(y(x), x) = (3/4)*y(x)/x

"sol is ", y(x) = c__1*x^(3/4)

"the constant is "

restart;

#this works
ode:=diff(y(x),x) = 3/4*y(x)/x;
sol:=dsolve(ode);
print("sol is ",sol);
the_constant:=solve(sol,c__1);

diff(y(x), x) = (3/4)*y(x)/x

y(x) = c__1*x^(3/4)

"sol is ", y(x) = c__1*x^(3/4)

y(x)/x^(3/4)

 

Example (2). Solving for _C1 works, even though the ode has c__1  , why??

 

restart;

foo:=proc(ode::`=`)
local sol,the_constant;
   sol:=dsolve(ode);
   print("sol is ",sol);
   the_constant:=solve(sol,_C1);  #notice solving for _C1 now
   print("the constant is ",the_constant);
end proc;

proc (ode::`=`) local sol, the_constant; sol := dsolve(ode); print("sol is ", sol); the_constant := solve(sol, _C1); print("the constant is ", the_constant) end proc

ode:=diff(y(x),x) = 3/4*y(x)/x;
foo(ode)

diff(y(x), x) = (3/4)*y(x)/x

"sol is ", y(x) = c__1*x^(3/4)

"the constant is ", y(x)/x^(3/4)

restart;

ode:=diff(y(x),x) = 3/4*y(x)/x;
sol:=dsolve(ode);
print("sol is ",sol);
the_constant:=solve(sol,c__1); #these both work OK in global
the_constant:=solve(sol,_C1);  #these both work OK in global

diff(y(x), x) = (3/4)*y(x)/x

y(x) = c__1*x^(3/4)

"sol is ", y(x) = c__1*x^(3/4)

y(x)/x^(3/4)

y(x)/x^(3/4)

 

 

Example (3). Forcing arbitraryconstants = subscripted it still does not work inside proc. Why??

 

restart;

foo:=proc(ode::`=`)
local sol,the_constant;
   sol:=dsolve(ode,arbitraryconstants = subscripted);   
   print("sol is ",sol);
   the_constant:=solve(sol,c__1);
   print("the constant is ",the_constant);
end proc;

proc (ode::`=`) local sol, the_constant; sol := dsolve(ode, arbitraryconstants = subscripted); print("sol is ", sol); the_constant := solve(sol, c__1); print("the constant is ", the_constant) end proc

ode:=diff(y(x),x) = 3/4*y(x)/x;
foo(ode)

diff(y(x), x) = (3/4)*y(x)/x

"sol is ", y(x) = c__1*x^(3/4)

"the constant is "

 


 

Download constant_of_integration_solving_july_9_2024_maple_2024.mw

 

I added radnormal(sol) to my solution to workaround bug in solve hanging

But now new problem showed up. sometimes radnormal gives internal error when there are _Z's in solution.

radnormal(sol);
Error, (in RootOf) _Z occurs but is not the dependent variable
 

Attached worksheet. Sorry that the solution is very large and has lots of _Zs and RootOf, but this is the first one I can see so far in the log file of my program running, so I left it as is:

Should I check in my code that solution does not contain _Z before calling radnormal on it?  Is this a bug or known limitation?
 

restart;

interface(version);

`Standard Worksheet Interface, Maple 2024.1, Windows 10, June 25 2024 Build ID 1835466`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1767 and is the same as the version installed in this computer, created 2024, June 28, 12:19 hours Pacific Time.`

sol:=1/6*(-a^3 - 3*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)*a^2 + 6*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^2*a + 8*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^3 + 3*sqrt(3)*sqrt(-RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)*(RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)*a^4 + 4*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^2*a^3 + 4*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^3*a^2 + 4*a^3 + 12*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)*a^2 - 24*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^2*a - 32*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^3 - 108*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2))) + 54*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2))^(1/3) + 1/6*(4*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^2 + 2*a*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2) + a^2)/(-a^3 - 3*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)*a^2 + 6*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^2*a + 8*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^3 + 3*sqrt(3)*sqrt(-RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)*(RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)*a^4 + 4*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^2*a^3 + 4*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^3*a^2 + 4*a^3 + 12*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)*a^2 - 24*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^2*a - 32*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2)^3 - 108*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2))) + 54*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2))^(1/3) - 1/6*a + 1/3*RootOf(4*_Z^2 - 4*_Z*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + 2*a*_Z + (8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(2/3) - a*(8*_Z^3 + 6*_Z^2*a - 3*_Z*a^2 - a^3 + 3*sqrt(3)*sqrt(-4*_Z^4*a^2 - 4*_Z^3*a^3 - _Z^2*a^4 + 32*_Z^4 + 24*_Z^3*a - 12*_Z^2*a^2 - 4*_Z*a^3 + 108*_Z^2) + 54*_Z)^(1/3) + a^2):

radnormal(sol);

Error, (in RootOf) _Z occurs but is not the dependent variable

 


 

Download bug_Z.mw

I gave up trying to figure out why Maple sometimes generates solutions from my code that look different, running the same exact code. I know Maple is not deterministic and this can happen sometimes for reasons I will never know.

The following two solutions are the same, it just sometimes Maple shuffles terms a little around. For example SQRT(6) comes out SQRT(2)*SQRT(3).  I have no idea why this happens. It could be how memory inside Maple happened to be at the time and what happened before.

But my question is the following. Here is one ode, and two solutions that are exactly the same. I called one good_sol and one bad_sol.

If I do simplify(bad_sol - good_sol) I get  0 = 0 but here is the problem. When calling odetest on the good_sol, Maple returns 0 instantly,  But on the bad_sol it just hangs.

Even though the two solution are exactly the same. i.e. Mathematically the same.  

I'd like to know why does this happen? And if there is a permanent fix I could always use.

The following worksheet shows this problem.

After much trial and error, I found that if I do radnormal(bad_sol) then now odetest returns zero right away and the hang is gone!

I am just trying to understand why. And why odetest then itself does not use radnormal if this makes it work better?

Do I need to call randormal on every solution before calling odetest then? Will calling randormal on the final solution have any bad side effects on other computation after that?  It should not I would think.

This is all done in code without looking at the screen and having to decide. So I would need a solution that will work for all cases. But for now, I will change my code and add randormal to all solutions and see what happens.

Using 2024.1 on windows.   May be Maple behaves different on macOS, I do not know.

interface(version);

`Standard Worksheet Interface, Maple 2024.1, Windows 10, June 25 2024 Build ID 1835466`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1767 and is the same as the version installed in this computer, created 2024, June 28, 12:19 hours Pacific Time.`

restart;

ode:=4*x*diff(y(x),x)^2-3*y(x)*diff(y(x),x)+3 = 0;

4*x*(diff(y(x), x))^2-3*y(x)*(diff(y(x), x))+3 = 0

bad_sol:=ln(x) - c__1 - 1/2*ln((y(x)^2 - 6*x)/x) - 3*ln((sqrt(3)*y(x) + sqrt((3*y(x)^2 - 16*x)/x)*sqrt(x))/sqrt(x)) + 1/2*arctanh(1/2*(-16*sqrt(x) + 3*y(x)*sqrt(2)*sqrt(3))*sqrt(2)/(sqrt((3*y(x)^2 - 16*x)/x)*sqrt(x))) + 1/2*arctanh(1/2*(16*sqrt(x) + 3*y(x)*sqrt(2)*sqrt(3))*sqrt(2)/(sqrt((3*y(x)^2 - 16*x)/x)*sqrt(x))) = 0;

ln(x)-c__1-(1/2)*ln((y(x)^2-6*x)/x)-3*ln((3^(1/2)*y(x)+((3*y(x)^2-16*x)/x)^(1/2)*x^(1/2))/x^(1/2))+(1/2)*arctanh((1/2)*(-16*x^(1/2)+3*y(x)*2^(1/2)*3^(1/2))*2^(1/2)/(((3*y(x)^2-16*x)/x)^(1/2)*x^(1/2)))+(1/2)*arctanh((1/2)*(16*x^(1/2)+3*y(x)*2^(1/2)*3^(1/2))*2^(1/2)/(((3*y(x)^2-16*x)/x)^(1/2)*x^(1/2))) = 0

good_sol:=ln(x) - c__1 - 1/2*ln((y(x)^2 - 6*x)/x) - 3*ln((sqrt(3)*y(x) + sqrt(x)*sqrt((3*y(x)^2 - 16*x)/x))/sqrt(x)) + 1/12*sqrt(3)*sqrt(6)*sqrt(2)*arctanh(1/2*(-16*sqrt(x) + 3*y(x)*sqrt(6))*sqrt(2)/(sqrt(x)*sqrt((3*y(x)^2 - 16*x)/x))) + 1/12*sqrt(3)*arctanh(1/2*(16*sqrt(x) + 3*y(x)*sqrt(6))*sqrt(2)/(sqrt(x)*sqrt((3*y(x)^2 - 16*x)/x)))*sqrt(6)*sqrt(2) = 0;
 

ln(x)-c__1-(1/2)*ln((y(x)^2-6*x)/x)-3*ln((3^(1/2)*y(x)+((3*y(x)^2-16*x)/x)^(1/2)*x^(1/2))/x^(1/2))+(1/12)*3^(1/2)*6^(1/2)*2^(1/2)*arctanh((1/2)*(-16*x^(1/2)+3*y(x)*6^(1/2))*2^(1/2)/(((3*y(x)^2-16*x)/x)^(1/2)*x^(1/2)))+(1/12)*3^(1/2)*arctanh((1/2)*(16*x^(1/2)+3*y(x)*6^(1/2))*2^(1/2)/(((3*y(x)^2-16*x)/x)^(1/2)*x^(1/2)))*6^(1/2)*2^(1/2) = 0

simplify(bad_sol-good_sol)

0 = 0

odetest(good_sol,ode); #instant answer

0

odetest(bad_sol,ode); #hangs

Warning,  computation interrupted

 

radnormal(bad_sol)

ln(x)-c__1-(1/2)*ln((y(x)^2-6*x)/x)-3*ln((y(x)*x^(1/2)*3^(1/2)+x*(-(-3*y(x)^2+16*x)/x)^(1/2))/x)+(1/2)*arctanh((-(-3*y(x)^2+16*x)/x)^(1/2)*(3*y(x)*x^(1/2)*3^(1/2)-8*2^(1/2)*x)/(3*y(x)^2-16*x))+(1/2)*arctanh((-(-3*y(x)^2+16*x)/x)^(1/2)*(3*y(x)*x^(1/2)*3^(1/2)+8*2^(1/2)*x)/(3*y(x)^2-16*x)) = 0

odetest(%,ode); #instant answer

0

 


 

Download why_same_sol_hangs_july_7_2024.mw

 

Is there a way to install 2024.1 and keep 2024 there also? i.e. install 2024.1 along side 2024? This way if I find a problem and want to check 2024 I still have it? 

i.e. install Maple 2024.1 in its own folder, separate from Maple 2024, and have its own icon on desktop. 

If I install 2024.1 using Tools->Check for update,  it will overwrite 2024 and not ask me if I want to keep it. At least this is what happened in Maple 2023 and earlier versions. So wanted to ask before I try to do this again, else it will be too late.

If I do not use Tools->Check for updates, and instead download 2024.1 manually from the product web page, will one then be able to install 2024.1 and keep 2024? Or will it also overwrite 2024? I have not tried because I do not know if it will ask me or not.

Maple 2024.

What is the command to stopat and showstat the proc  DEtools:-odeadvisor ?

I tried

ode:=y(x)*(2*x^2*y(x)^3+3)+x*(x^2*y(x)^3-1)*diff(y(x),x)=0;
DEtools:-odeadvisor(ode);

showstat(`DEtools/odeadvisor`);

showstat(`ODEtools/odeadvisor`);

And few other variations. It works on other proc's  such as

stopat(`ODEtools/symtest`); 
stopat(`ODEtools/test`); 
stopat(`ODEtools/normal/expanded`); 
stopat(`ODEtools/odepde`); 

But I was never able to figure the name for `DEtools:-odeadvisor`

Is there a general method to determine the correct name to use for printing or stopping at Maple command code to see it?

For me, it seems like trial and error process. For example DEtools:-command   becmes ODEtools:-command to stop at. Notice the extra O needed for tracing or printing. Do not know why extra O is needed. But showstat(`DEtools/symtest`); gives error, and showstat(`ODEtools/symtest`); works even though the command itself has no O.

So my question is, what would be the command to stop at DEtools:-odeadvisor? Is there a place to read more about how to find the correct path to give so do not have to guess?

Maple 2024

First 25 26 27 28 29 30 31 Last Page 27 of 200