nm

11353 Reputation

20 Badges

13 years, 12 days

MaplePrimes Activity


These are questions asked by nm

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

Maple gives type of this first order ode as _homogeneous, `class C`, but it is also dAlembert ode.

When asking it to solve as  dAlembert using the method option, it solves it.

But it returns singular solution which is wrong as it does not satisfy the IC. Singular solution should also satisfy IC like particular solutions do.

Is this a bug or Am I overlooking something?

Should not the solution returned satisfy the IC even though method used is not listed from odeadvisor?
 

29028

interface(version);

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

Physics:-Version();

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

restart;

29028

ode:=diff(y(x), x) = (3*x - y(x) + 1)/(3*y(x) - x + 5);
ic:=y(0)=0;

diff(y(x), x) = (3*x-y(x)+1)/(3*y(x)-x+5)

y(0) = 0

sol:=dsolve([ode,ic],[dAlembert]); #this solution is singular solution.

y(x) = x-1

odetest(sol,[ode,ic]); #notice, solution do not satisfy IC

[0, 1]

sol2:=dsolve([ode,ic]):
odetest(sol2,[ode,ic]); #this is OK since used default method, not dAlembert

[0, 0]

DEtools:-odeadvisor(ode)

[[_homogeneous, `class C`], _rational, [_Abel, `2nd type`, `class A`]]

 


 

Download dsolve_dalembert_july_2_2024.mw

There is an integration method called orering in Maple. But see no mention on it at help page 

It shows up when using option 

method=_RETURNVERBOSE

And that is how I knew about it.

It gives division by zero when asked to integrate zero !

Any one knows what is this method? Will send bug email to Maplesoft suport just in case also.
 

interface(version);

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

int(0,x)

0

int(0,x,method=orering)

Error, (in IntegrationTools:-Indefinite) numeric exception: division by zero

int(1,x,method=orering)

x

 


 

Download division_by_zero_int_orering_method.mw

 

 

I wanted to keep a running total over a number of independent batch mode Maple scripts.

So I figured I use .m file.   

Each run will read the old variable from .m file, update it, and write it again.

All what it need to do is just check if the .m file exist or not to account for the very first run.

But to my surprise, I found the variable content do not update after doing SAVE A,"TMP.m"

It seems Maple sees A variable already in TMP.m and does not save the new value of A again?. Just guessing. I was expecting that after I do  read "TMP.m" that the variable in the file will overwrite same variable value in the local proc. 

After one time update, each time I read the variable, its value is same.

First time using save myself, so may be I am doing something wrong but do not see it. I was expecting to see   10,20,30,40,50,..... running total, but I see 10,20,20,20,20,...../

What Am I doing wrong? do I need to make the variable global for this to work?

Here is worksheet. Maple 2024 on windows 10.


 

24344

restart;

24344

currentdir("G:/public_html/my_notes/solving_ODE/new_version/tests/");
try  #remove TMP.m first time
    FileTools:-Remove("TMP.m");
catch:
    NULL;
end try;

#this function is called many times.
foo:=proc()
 local A:=0,B;
 A:=A+10;
 if FileTools:-Exists("TMP.m") then
     print("TMP.m exists, will read its content");
     B:=A; #save copy
     read "TMP.m";
     print("Read old value of A from file",A);
     A:= A + B; #update running total
     print("Now A is ",A," will now save this new value");     
     save A,"TMP.m";
  else
     print("TMP.m do not exist, first time saving to it");
     save A,"TMP.m";
  fi;
  print("A=",A);
end proc:
 

"C:\Program Files\Maple 2024"

foo();

"TMP.m do not exist, first time saving to it"

"A=", 10

foo();

"TMP.m exists, will read its content"

"Read old value of A from file", 10

"Now A is ", 20, " will now save this new value"

"A=", 20

foo();

"TMP.m exists, will read its content"

"Read old value of A from file", 10

"Now A is ", 20, " will now save this new value"

"A=", 20

foo();

"TMP.m exists, will read its content"

"Read old value of A from file", 10

"Now A is ", 20, " will now save this new value"

"A=", 20

foo();

"TMP.m exists, will read its content"

"Read old value of A from file", 10

"Now A is ", 20, " will now save this new value"

"A=", 20

 


 

Download T.mw

Just found very serious problem.

Was trying my code in command line maple (cmaple.exe) only to find latex() command fails now.

Same code works with no problem in worksheet.  Here is first the worksheet version.
 

33308

restart;

33308

interface(version);

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

ode:=diff(y(x),x)=x;
try
    s:=latex(ode,'output'=string):
    print("Latex command worked on ode");
catch:
    error lastexception;
end try:


the_output:=Student:-ODEs:-ODESteps(ode,y(x)):
try
    s:=latex(the_output,'output'=string):
    print("Latex command worked");
catch:
    error lastexception;
end try:

diff(y(x), x) = x

"Latex command worked on ode"

"Latex command worked"

 


 

Download worksheet_version_latex_OK_june_21_2024.mw

Now I do same thing but from command line. I put the above code in A.mpl file in some folder on windows:

ode:=diff(y(x),x)=x;
try
    s:=latex(ode,'output'=string):
    print("Latex command worked on ode");
catch:
    error lastexception;
end try:


the_output:=Student:-ODEs:-ODESteps(ode,y(x)):
try
    s:=latex(the_output,'output'=string):
    print("Latex command worked");
catch:
    error lastexception;
end try:

 

Then opened a command windows terminal and cd to the above folder and typed this command

"C:\Program Files\Maple 2024\bin.X86_64_WINDOWS\cmaple.exe"  -q A.mpl

And this is what happens. Latex works OK on generating latex for the ode, but not for the steps!It gives error

 

Error, latex, invalid input: %1 uses a %-2 argument, %3 (of type %4), which is missing, latex:-ModuleApply, 1, e, anything

Also I was not able to suppress the display of the odesteps on the terminal even though they do not display in worksheet, they still print in the terminal. But this is a side issue.

Why does Latex gives error in command line? 

I think it is related to those funny looking characters (bullets?) signs at the start of each ODE step that show in the terminal? 

But in worksheet latex has no problem converting the ODE steps to Latex. It is only in cmaple. 

Is there a way to correct this? It seems to be some character encoding is causing the problem for Latex on command line vs. worksheet.

 

Windows 10, Maple 2024

 

 

 

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