nm

11643 Reputation

20 Badges

13 years, 144 days

MaplePrimes Activity


These are questions asked by nm

I sort of remember there is a special syntax for setting initial condition for an ode derivative as    y'(a)=b, where and are symbols. I forgot what it is, everything I try gives error. (I thought eval was used to work for this, but can't get it to work now).

Any one knows how to set this IC?   For an example, given this ode y''(x)+y'(x)+y(x)=0 I want to solve it with the IC as   y'(a)=b where has no numerical value. Just a symbol.

For an example, using another software, it is done as follows

ClearAll[x,y,a,b];
ode=y''[x]+y'[x]+y[x]==0;
DSolve[{ode,y'[a]==b},y[x],x]

Below is my attempts in Maple. I tried eval, subs, and the normal D(y)(a)=b but none of these works when is symbol. 

I looked at help and all examples I saw use constants, as in D(y)(0)=value. 

Iam sure this is possible to do in Maple, but I forgot how. Below is worksheet.
 

interface(version);

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

restart;

ode:=diff(y(x),x$2)+diff(y(x),x)+y(x)=0;
IC1:=eval(diff(y(x),x),x=a)=b;
IC2:=D(y)(a)=b;
IC3:=subs(x=a,D(y)(x)=b);

diff(diff(y(x), x), x)+diff(y(x), x)+y(x) = 0

diff(y(a), a) = b

(D(y))(a) = b

(D(y))(a) = b

dsolve([ode,IC1]);

Error, (in dsolve) found differentiated functions with same name but depending on different arguments in the given DE system: {y(a), y(x)}

dsolve([ode,IC2]);

Error, (in dsolve) found differentiated functions with same name but depending on different arguments in the given DE system: {y(a), y(x)}

dsolve([ode,IC3]);

Error, (in dsolve) found differentiated functions with same name but depending on different arguments in the given DE system: {y(a), y(x)}

#eval works if the point is actual value as in
IC1:=eval(diff(y(x),x),x=0)=b;

eval(diff(y(x), x), {x = 0}) = b

#but I want x=a in the above.


Download how_to_set_IC_point_to_symbol.mw

There is no issue for dirichlet initial condition, where  y(a)=b works. It is the  neumann one which I can't figure its syntax. So this works OK

ode:=diff(y(x),x$2)+diff(y(x),x)+y(x)=0;
IC1:=y(a)=b;
dsolve([ode,IC1]);

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

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