nm

11483 Reputation

20 Badges

13 years, 83 days

MaplePrimes Activity


These are questions asked by nm

Is this a valid behvior by int?   

int(A,x,method=_RETURNVERBOSE) hangs.

But  int(simplify(A),x,method=_RETURNVERBOSE) returns in few seconds with "default" result same as int(A,x)

Should this have happen? I try to avoid calling simplify unless neccessary because it can add csgn's and signums and so on to the result. 

But the question is: Should one really need to simplify the integrand to get the result in this example? Does this mean one should call simplify on the integrand to avoid the hang that can show up? 

This only happens when using method=_RETURNVERBOSE 

Just trying to find out if this is normal behavior and can be expected sometimes.

25844

interface(version);

`Standard Worksheet Interface, Maple 2024.0, Windows 10, March 01 2024 Build ID 1794891`

restart;

25844

A:=exp(-1/2*cos(2*x))*exp(-sin(x)^2);
int(A,x);

exp(-(1/2)*cos(2*x))*exp(-sin(x)^2)

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

int(A,x,method=_RETURNVERBOSE);  #hangs

int(simplify(A),x,method=_RETURNVERBOSE)

["default" = x*exp(-1/2), "risch" = x*exp(-1/2), "orering" = x*exp(-sin(x)^2-(1/2)*cos(2*x)), FAILS = ("gosper", "lookup", "derivativedivides", "norman", "trager", "meijerg", "elliptic", "pseudoelliptic", "parallelrisch", "parts")]

 

 

Download why_int_hang_unless_simplify_june_15_2024.mw

odetest should be made more robust.

Here is an example where the same exact solution and same exact IC, but when solution is just writtent in a  little different form, odetest no longer verifies it.

Do you consider this a bug? How is the user supposed to know their solution is correct or not now, since it depends on how it is written? What can a user then do to help odetest in this case verify the solution?


 

interface(version);

`Standard Worksheet Interface, Maple 2024.0, Windows 10, March 01 2024 Build ID 1794891`

ode:=diff(y(x), x)*x^2 + cos(2*y(x)) = 1;
ic:=y(infinity)=10/3*Pi;
e1:=2/x+1/3*sqrt(3);
SOL1:=y(x)=arccot(e1) + Pi*3;
odetest(SOL1,[ode,ic]);

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

y(infinity) = (10/3)*Pi

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

y(x) = arccot(2/x+(1/3)*3^(1/2))+3*Pi

[0, 0]

#now we rewrite the solution a little different. But same solution
e2:=simplify(e1);

(1/3)*(3^(1/2)*x+6)/x

#Now maple no longer verifies the solution

SOL2:=y(x)=arccot(e2) + Pi*3;
odetest(SOL2,[ode,ic])

y(x) = arccot((1/3)*(3^(1/2)*x+6)/x)+3*Pi

[0, -(1/6)*Pi]

 


 

Download same_solution_not_verified_june_13_2024.mw

Maple gives same solution for two different equations.

eq1 := 1/5*sqrt(-20*y + 1) - 1/5*ln(1 + sqrt(-20*y + 1)) = x + 2;
eq2 := -1/5*sqrt(-20*y + 1) - 1/5*ln(1 - sqrt(-20*y + 1)) = x + 2;

Solving these for y, gives same exact solution. But this is not correct. As this worksheet shows.

Is this a bug? How could two different equations give same solution?
 

15172

interface(version);

`Standard Worksheet Interface, Maple 2024.0, Windows 10, March 01 2024 Build ID 1794891`

Case 1. Solve first then plugin x value in solution

 

eq1:=(sqrt(a^2 - 4*b*y) - a*ln(a + sqrt(a^2 - 4*b*y)))/b=x+c__1;
eq2:=(-sqrt(a^2 - 4*b*y) - a*ln(a - sqrt(a^2 - 4*b*y)))/b=x+c__1;

eq1:=eval(eq1,[a=1,b=5,c__1=2]);
eq2:=eval(eq2,[a=1,b=5,c__1=2]);

((a^2-4*b*y)^(1/2)-a*ln(a+(a^2-4*b*y)^(1/2)))/b = x+c__1

(-(a^2-4*b*y)^(1/2)-a*ln(a-(a^2-4*b*y)^(1/2)))/b = x+c__1

(1/5)*(-20*y+1)^(1/2)-(1/5)*ln(1+(-20*y+1)^(1/2)) = x+2

-(1/5)*(-20*y+1)^(1/2)-(1/5)*ln(1-(-20*y+1)^(1/2)) = x+2

sol1:=simplify(solve(eq1,y));

-(1/20)*LambertW(-exp(-11-5*x))*(LambertW(-exp(-11-5*x))+2)

sol2:=simplify(solve(eq2,y));

-(1/20)*LambertW(-exp(-11-5*x))*(LambertW(-exp(-11-5*x))+2)

eval(sol1,x=10.);

0.3221340286e-27

eval(sol2,x=10.);

0.3221340286e-27

Case 2. Plugin in same x value in equation and then solve, we get different answers

 

eq1:=(sqrt(a^2 - 4*b*y) - a*ln(a + sqrt(a^2 - 4*b*y)))/b=x+c__1;
eq2:=(-sqrt(a^2 - 4*b*y) - a*ln(a - sqrt(a^2 - 4*b*y)))/b=x+c__1;

eq1:=eval(eq1,[a=1,b=5,c__1=2,x=10]);
eq2:=eval(eq2,[a=1,b=5,c__1=2,x=10]);

((a^2-4*b*y)^(1/2)-a*ln(a+(a^2-4*b*y)^(1/2)))/b = x+c__1

(-(a^2-4*b*y)^(1/2)-a*ln(a-(a^2-4*b*y)^(1/2)))/b = x+c__1

(1/5)*(-20*y+1)^(1/2)-(1/5)*ln(1+(-20*y+1)^(1/2)) = 12

-(1/5)*(-20*y+1)^(1/2)-(1/5)*ln(1-(-20*y+1)^(1/2)) = 12

sol1:=evalf(solve(eq1,y));

-205.8850616

sol2:=evalf(solve(eq2,y));

0.3221340286e-27


 

Download different_equations_give_same_solution_june_12_2024.mw

 

These are two examples of challenging ode solutions to show they satisfy the ode.

I tried many things myself but can't do it. Feel free to use any method or trick you want. The goal is simply to show that the solution is correct. The solutions are correct as far as I know, but hard to show by back substitution since the solutions are given in form of integrals and RootOf in them.

Extra credit points will be awarded for those who manage to do both.

28148

interface(version);

`Standard Worksheet Interface, Maple 2024.0, Windows 10, March 01 2024 Build ID 1794891`

Example 1

 

_EnvTry:='hard';
ode:=y(x) = arcsin(diff(y(x), x)) + ln(1 + diff(y(x), x)^2);
sol:=dsolve(ode);
r:=odetest(sol,ode);
coulditbe(r=0);

hard

y(x) = arcsin(diff(y(x), x))+ln(1+(diff(y(x), x))^2)

x-Intat(1/sin(RootOf(-_a+_Z+ln(sin(_Z)^2+1))), _a = y(x))-c__1 = 0

-arcsin(sin(RootOf(-y(x)+_Z+ln(3/2-(1/2)*cos(2*_Z)))))+RootOf(-y(x)+_Z+ln(3/2-(1/2)*cos(2*_Z)))

FAIL

Example 2

 

ode:=(1 + diff(y(x), x)^2)*(arctan(diff(y(x), x)) + a*x) + diff(y(x), x) = 0;
sol:=dsolve(ode);
r:=odetest(sol,ode);
coulditbe(r=0)

(1+(diff(y(x), x))^2)*(arctan(diff(y(x), x))+a*x)+diff(y(x), x) = 0

y(x) = Int(tan(RootOf(a*x*tan(_Z)^2+tan(_Z)^2*_Z+a*x+tan(_Z)+_Z)), x)+c__1

(-arctan(tan(RootOf(2*a*x+sin(2*_Z)+2*_Z)))+RootOf(2*a*x+sin(2*_Z)+2*_Z))*tan(RootOf(2*a*x+sin(2*_Z)+2*_Z))/(a*x+RootOf(2*a*x+sin(2*_Z)+2*_Z))

FAIL

 

 

Download showing_solution_satisfies_ode.mw

How to make Maple simplify a/sqrt(tan(x+c__1)^2+1); to a/sqrt(sec(x+c__1)^2);  ?

Below is worksheet. since the second one is smaller in leaf size, expected simplify(...,size) to do it, But it did not. Any suggestions?

24832

LC:=MmaTranslator:-Mma:-LeafCount;
e1:=a/sqrt(tan(x+c__1)^2+1);
e2:=a/sqrt(sec(x+c__1)^2);

MmaTranslator:-Mma:-LeafCount

a/(tan(x+c__1)^2+1)^(1/2)

a/(sec(x+c__1)^2)^(1/2)

LC(e1);

12

LC(e2);

10

#we see they are same
simplify(e1-e2);

0

#both nothing below make e1 to e2
simplify(e1); #not good simplification at all. Adds csgn.
LC(%);

a*csgn(sec(x+c__1))*cos(x+c__1)

11

#expected this to do it but no
simplify(e1,size);
LC(%);

a/(tan(x+c__1)^2+1)^(1/2)

12

simplify(e1,trig);

a/(tan(x+c__1)^2+1)^(1/2)

combine(e1,trig);

a/(tan(x+c__1)^2+1)^(1/2)

 


Using some other software:

 

 

 

Download tan_sec_simplification_june_9_2024.mw

First 30 31 32 33 34 35 36 Last Page 32 of 202