nm

11483 Reputation

20 Badges

13 years, 83 days

MaplePrimes Activity


These are questions asked by nm

Maple help pages keep getting worst with each release.

I want all input to be displayed using Maple 1D notation, so I can copy the example to my worksheet since I only use worksheet and not document (2D) mode.

So even though the first thing I do when I open help it to turn off the 

                     view->Display examples with 2D

So it is no longer checked, I still see many pages using 2D math for input. 

Here is one example ?D  page

If I copy one such input to my worksheet now it looks like this

eveything in 2D becomes ?? when I copy it.

So one can only look but not copy?

Is there any other option to make sure, really make sure, all examples have 1D as input?

The problem is that it is all not consistent. Some examples have a mix of 2D and 1D as the above page. Some are in 2D and some are in 1D.

And this is all on the same help page!

Does no one inside Maplesoft even look at their own help pages?
 

At school the teacher always said that if we have second order ode and only one initial conditions (say y'(0)=0 or y(0)=0) then the solution should have one constant of integration in it.

And if we have no initial conditions, then the solution should have 2 constants of integrations in it.

And if we have two initial conditions, then the solution should have zero constants of integrations in it.

In this example, Maple is given second order ode with one IC. But the solution it gives when asked to solve it explicit, has no constant of integration in it at all. 

When asked to solve it using implicit, then the constant of integration shows up. 

Both solutions actually verify to be fully correct using odetest. So it looks like the solution as explicit is particular solution and not a general solution.

Why is that? Why it did not give general solution when asked to solve the ode as explicit?

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 1793 and is the same as the version installed in this computer, created 2024, August 25, 9:6 hours Pacific Time.`

libname;

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

restart;

ode:=y(x)*diff(y(x),x$2)+diff(y(x),x)^2+1=0;
IC:=D(y)(0)=1;

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

(D(y))(0) = 1

sol1:=dsolve([ode,IC],explicit);
 

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

sol2:=dsolve([ode,IC],implicit);

-(1/2)*y(x)^2+x*y(0)-(1/2)*x^2+c__2 = 0

odetest(sol1,[ode,IC]);
odetest(sol2,[ode,IC]);

[0, 0]

[0, 0]

 

 

Download why_missing_constant_of_integration_august_25_2024.mw

I've modified my call to coulditbe() to always use assuming real to prevent false positives.

Now I find it gives internal error Error, (in type/complex) too many levels of recursion which can not even be trapped when the thing I am checking happened to have complex I in it. (This is done in code).

So I modied the code to only do this check if there is no complex in the expression being checked.

But I think Maple should not generate such error in first place. This indicates some internal problem in Maple, correct?

Here is worksheet. (ps. updated, wrong worksheet for somereason was uploaded).

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 1792 and is the same as the version installed in this computer, created 2024, August 22, 12:6 hours Pacific Time.`

libname;

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

the_residual:=-1/4*I*x^(1/2)/(8*x^(3/2)+12*c__1)^(1/3)*(-(8*x^(3/2)+12*c__1)^(2/3)-I*(8*x^(3/2)+12*c__1)^(2/3)*3^(1/2))^(1/2)*6^(1/2)-1/4*x^(1/2)/(8*x^(3/2)+12*c__1)^(1/3)*2^(1/2)*(-(8*x^(3/2)+12*c__1)^(2/3)-I*(8*x^(3/2)+12*c__1)^(2/3)*3^(1/2))^(1/2)-x^(1/2);
try
    coulditbe(the_residual=0) assuming real;
catch:
   print("error");
end try;

-((1/4)*I)*x^(1/2)*(-(8*x^(3/2)+12*c__1)^(2/3)-I*(8*x^(3/2)+12*c__1)^(2/3)*3^(1/2))^(1/2)*6^(1/2)/(8*x^(3/2)+12*c__1)^(1/3)-(1/4)*x^(1/2)*2^(1/2)*(-(8*x^(3/2)+12*c__1)^(2/3)-I*(8*x^(3/2)+12*c__1)^(2/3)*3^(1/2))^(1/2)/(8*x^(3/2)+12*c__1)^(1/3)-x^(1/2)

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

the_residual:=-1/4*I*x^(1/2)/(8*x^(3/2)+12*c__1)^(1/3)*(-(8*x^(3/2)+12*c__1)^(2/3)-I*(8*x^(3/2)+12*c__1)^(2/3)*3^(1/2))^(1/2)*6^(1/2)-1/4*x^(1/2)/(8*x^(3/2)+12*c__1)^(1/3)*2^(1/2)*(-(8*x^(3/2)+12*c__1)^(2/3)-I*(8*x^(3/2)+12*c__1)^(2/3)*3^(1/2))^(1/2)-x^(1/2);
try
    if not has(the_residual,I) then
       coulditbe(the_residual=0) assuming real;
    else
       print("by passing, since residual is complex");
    fi;
catch:
   print("error");
end try;

-((1/4)*I)*x^(1/2)*(-(8*x^(3/2)+12*c__1)^(2/3)-I*(8*x^(3/2)+12*c__1)^(2/3)*3^(1/2))^(1/2)*6^(1/2)/(8*x^(3/2)+12*c__1)^(1/3)-(1/4)*x^(1/2)*2^(1/2)*(-(8*x^(3/2)+12*c__1)^(2/3)-I*(8*x^(3/2)+12*c__1)^(2/3)*3^(1/2))^(1/2)/(8*x^(3/2)+12*c__1)^(1/3)-x^(1/2)

"by passing, since residual is complex"

 


 

Download internal_error_too_many_Levels_from_coulditbe_august_23_2024.mw

This ode has solution when solving for the IC by hand. But Maple gives new error I did not see before when asking it to solve the ode with IC. 

No error if asked to solve the ODE without the IC.

Is this new error in dsolve? I have no earlier Maple versions to check. Below is worksheet. Solving for the IC by hand gives the solution which odetest verified.

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 1789 and is the same as the version installed in this computer, created 2024, August 10, 8:50 hours Pacific Time.`

ode := diff(y(x), x) = sqrt(2)*sqrt(-(y(x) - 6)*(2*y(x) - 3))/(-y(x) + 6);
IC:=y(0)=3;

diff(y(x), x) = 2^(1/2)*(-(y(x)-6)*(2*y(x)-3))^(1/2)/(-y(x)+6)

y(0) = 3

sol:=dsolve(ode);

x-(1/4)*(-4*y(x)^2+30*y(x)-36)^(1/2)-(9/8)*arcsin((4/9)*y(x)-5/3)+c__1 = 0

sol_with_IC:=dsolve([ode,IC]); #why this error??

Error, (in dsolve) when calling 'series/RootOf'. Received: 'unable to compute series'

#lets solve for the IC by hand:
eq:=eval(sol,[y(x)=3,x=0])

-(1/4)*18^(1/2)+(9/8)*arcsin(1/3)+c__1 = 0

C_sol:=PDEtools:-Solve(eq,_C1);

c__1 = (3/4)*2^(1/2)-(9/8)*arcsin(1/3)

my_new_sol:=eval(sol,C_sol)

x-(1/4)*(-4*y(x)^2+30*y(x)-36)^(1/2)-(9/8)*arcsin((4/9)*y(x)-5/3)+(3/4)*2^(1/2)-(9/8)*arcsin(1/3) = 0

odetest(my_new_sol,[ode,IC])

[0, 0]

 


 

Download internal_error_when_unable_to_find_solution_august_22_2024.mw

I was looking at coulditbe  to see if I can use it to check if odetest result can be zero or not.

But I am finding very strange results. It gives false positive too many times.

Here is an expression in x only. Plotting this it is clear it is never zero for any x value. Also asking Maple to solve this expression=0 for x, it finds no solution.  Yet, when I say coulditbe(e=0) it says true. also is(e=0) returns false.

How could this be possible?  How did coulditbe determine there is some x which makes this expression zero? Is there a way to make sure this function do not give false positive in this example? do I need to add some assumptions may be? 

Should I use is(e=0) instead of coulditbe(e=0) if  the is is more reliable?  have not used these commands much before and was looking for better ways to check if the residual from odetest can be verified it is zero or not.

I also added _EnvTry:='hard'; but it made no difference.  It still gives true.

Maple 2024.1 on windows.

restart;

e:=sqrt(2)*sqrt((3*x^3 + 5*sqrt(x^2 + 8)*x^2 + 24*x + 36*sqrt(x^2 + 8))/sqrt(x^2 + 8))/8 + x/8 + (3*x^2)/(8*sqrt(x^2 + 8)) + 3/sqrt(x^2 + 8);

(1/8)*2^(1/2)*((3*x^3+5*(x^2+8)^(1/2)*x^2+24*x+36*(x^2+8)^(1/2))/(x^2+8)^(1/2))^(1/2)+(1/8)*x+(3/8)*x^2/(x^2+8)^(1/2)+3/(x^2+8)^(1/2)

plot(e,x=-10..10,y=0..4 );

is(e=0);

false

solve(e=0,x); #no solution

x

coulditbe(e=0)

true

_EnvTry:='hard';

hard

coulditbe(e=0)

true

 


 

Download coulditbe_question.mw

Update

I just found out that by adding  assume(x::real); before the call to coulditbe or by adding assuming, then it no longer returns true, but now returns FAIL.

This is much better. At least not a false positive.

So it looks like it was assuming x (and any other parameter than can be in the expression) can be complex and for some complex x, this expression can be zero.

So I will add this assumption now. So I think this will work. But need to test it more.

coulditbe(e=0) assuming x::real;

            FAIL

First 22 23 24 25 26 27 28 Last Page 24 of 202