Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

is been a while i work on it but i can't figure out where is problem and even my solution is so far from it when numerically i tested , i got same outcome as the paper did maybe is  long but it is same and maybe have some typical different but they are same , the problem in here is that which when i substitue is not my answer i don't know where is my mistake ?

pde-te.mw

f18.mw

f19.mw

Dear All,

I am currently encountering an issue while solving my boundary value problem in Maple. The following error message appears:
"Error, (in dsolve/numeric/bvp) cannot determine a suitable initial profile; please specify an approximate initial solution."

This problem arises when I attempt to generate plots by varying the parameters λl, λu, βl, βu, etc.

Lamda_l_new.mw


I recently got access to a 12-core Intel MacPro with 64 GB main memory. This motivated me to try parallel programming again, even though in prior years I have never been successfull. The project I am trying to do is particle tracking through a circular accelerator, an embarassingly parallel problem in the sense that you can track n particles in parallel through your machine for many turns and then gather up the results for analysis. The function describing the tracking is a 6-component polynomial function acting on 6-vectors and yielding a 6-Vector as a result. Each accelerator component (magnet, drift section, rf, ...) is described by such a function. I am simplifying this a bit here, but in the problem at hand this is what I am doing. The point is that each particle gets treated independently from the others, hence parallelization should be trivial.

Using an existing package (Lattice, which I published with Maple) as framework I set this up such that the tracking proc for n turns of one particle in the accelerator is a member of a module. This module is in the body of a proc and gets returned when the proc is called, essentially instantiating the tracking object and assigning it to a Vector with as many elements as I have particles to track. The tracking function returns a 6-Vector with the coordinates after all turns are complete. 
A separate proc does the instantiation of all tracking objects, gives each one its particle number (from a Beam object it is being given) and sends it off using Threads:-Create. It then waits until every task is done (using Threads:-Wait) and assembles the result in another Beam object which it returns. Please refer to the enclosed Maple worksheet for how it is done.

This actually all appears to work. MacOS is 15.7.2 (Sequoia); Maple is 2023.2. The results are identical both parallel and serial.

The "interesting" result however, is that usage of the available CPU cores saturates at about 4. In the graph shown below, the green line shows the CPU usage of the mserver process, and it saturates between 400 & 500%, actually going down to 360% as more particles get added. 100% is one core, so I am never getting more than about 4 cores to work for me. Correspondingly, the no. of seconds per particle goes up from about 3 s (particle 1 to 4) up to about 15 s/particle, settling at about 10 s/particle as 12 particles are approached. Below is a graph against no. of particles (n) of running time (red), CPU time (dark blue), CPU usage (yellow) and # or mkernel threads (green). 

Bottom line: I am only getting 4 cores out of the 12. Process limits of MacOS (ulimit -a) do not indicate any limit that would cause this (and I have had build jobs that would merrily use all 12 cores).

Is there a limit in Maple that prevents using all available cores? Am I doing something inefficient that could cause this?? This is the first time I actually got parallel operations in Maple to work, so I am happy about that, but my happiness is tempered by not getting it to work at the level I was aiming for. I did google around a bit and found some prior conversations on MP (mostly involving @acer and @Carl Love) about parallel threads which indicated that (a) environment variable OMP_NUM_THREADS should be set and (b) that numcpus can only be set at the very beginning of a Maple session (which I interpret as "right after firing up Maple"). Did both (and verified the settings were in) but no change in behaviour of this code; I only get four cpu cores to work.

Thanks,

Mac Dude

Parallel_tracking_attempt.mw

Edit: Added graph, fixed up graph.

I do not think I've ever seen this before.

I have Maple set up to use one engine per one worksheet.

 

Today, when I tried to open new worksheet (after Maple had an internal error running some code in another worksheet), I was not able to execute anything in the new worksheet. I get this message

Looking at task manager, I see the front end running at high CPU

Stange thing, there was nothing else running at the time.

Had to kill all of Maple.

Just wondering if any one saw this message before and what could cause it?

I'll try to see if I can reproduce it again by running same code which caused that initial Maple error in the first worksheet. But as I said, this is the first I see such a problem in Maple.

I was connected to the network at the time, if this makes any difference.

Does anyone have any exoerience playing with this topic?

Hello everyone
Dear experienced and expert friends
As a beginner, I would like to ask if any of my friends can guide me.
The following commands are related to Mathematica:

plots = Table[n = sValues[[i]];
   ParametricPlot[{1 - 2/n - 1.5/n^2 + (1.33 - 2/n) \[Gamma] - 
      0.0740741 (15 + 4*n) \[Gamma]^2, 
     12/n^2 + (16 \[Gamma])/n + (80 \[Gamma]^2)/9}, {\[Gamma], 0, 
     0.06}, PlotStyle -> colors[[i]], 
    PlotRange -> {{-10, 10}, {-10, 10}}], {i, Length[sValues]}];

Show[plots, Frame -> True, FrameLabel -> {"\!\(\*
StyleBox[SubscriptBox[\"n\", \"s\"],\nFontSize->16,\n\
FontColor->GrayLevel[0]]\)", "\!\(\*
StyleBox[\"r\",\nFontSize->16,\nFontColor->GrayLevel[0]]\)"}, 
 GridLinesStyle -> Black, PlotRange -> {{0.94, 1}, {0, 0.06}}, 
 PlotLegends -> 
  Placed[LineLegend[sValues, LegendLabel -> "s,w"], {0.5, 0.5}], 
 ImageSize -> 400]

I want to rewrite this process in Maple for my own functions.
I would be grateful if it is possible or if these commands are rewritten in a complete and executable form in Maple for me so that I can understand the working pattern. Or at least an equivalent command that can do this in Maple is introduced
Thank you all

I require the condition for equations  C1<C2<C4​, with all parameters strictly positive and subject to the constraint t > t1​.
I want to solve for the variables t and s. Specifically, what are the analytical conditions on t that ensure C2>C1​, and what are the analytical conditions on s that ensure C4 > C2 >C1​ ?

I attempted to solve this , but I keep encountering errors.
Q_solving_t_and_s.mw

Hello all,

I just need a hint how to enter "matrices" in Maple which are lists of lists and so on.

Since I gave up on "math"ematica I would like to be able to enter what is just

below (with the dimension).

Is it doable in Maple...I guess yes :)

M = {{a, {1, a, -0.5}}
, {{b, {1}}}, c + d}
Out[5]= {a, {1, a, -0.5}, {{b, {1}}}, c + d}
In[8]:= MatrixForm[M]
Out[8]//MatrixForm=
a
{1, a, -0.5}
{{b, {1}}}
c + d
In[9]:= Dimensions[M]
Out[9]= {4}

PS: Is a moderator ready to make me with a reputation of 100 in order I can enter tags.

Thank you for everything.

Regards,

JM

I am not able to find place in help which lists which changes interface(typesetting = extended); makes compared to interface(typesetting = standard);

Reason  I am asking, is that in interface(typesetting = extended); Maple adds a small annoying "dot"  between each term for multiplication, which is not there in standard.

Is there a place in documentation that mentions this as part of extended? Where to find it?

What does Error, (in dsolve/numeric/bvp) bad index into Matrix mean?
Also, I'm trying to run it, it is slow, any suggestions?

restart;
with(Student[VectorCalculus]);
with(DynamicSystems);
with(DEtools);
with(PDEtools, ReducedForm, declare, diff_table, dsubs);
NULL;
 #Digits:= trunc(evalhf(Digits)); #generally a very efficient setting

# Here we solve a 1D problem in 3 regions. In each region, we have concentration and potential (c,phi) distributions,
# We first solve the unperturbed steady-state problem and then the linearized perturbation problem (which rely on the steady state).
# Each region is defined in x = 0..1, and the regions are connected by interface conditions that 
# connect (c1(1),phi1(1)) to (c2(0),phi2(0)) and (c2(1),phi2(1)) to (c3(0),phi3(0))

Q:=10;   omega:=100;     J0:= 0.01;   # parameters
                            Q := 10

                          omega := 100

                           J0 := 0.01

# The unperturbed steady-state

c1:=1-J0/2*x: 
c3:=1-J0/2*(x-1):  
c12:= eval(c1,x=1); 
c32 := eval(c3,x=0); 
S1:=sqrt(Q^2+4*c12^2): 
S3:=sqrt(Q^2+4*c32^2):  
c21:=eval((S1-Q)/2); 
c23:=eval((S3-Q)/2);  
I0:=fsolve(Q*i0/2/J0*ln((J0*S1-Q*i0)/(J0*S3-Q*i0))=(J0-S1+S3)/2,i0);  
V:=(I0/J0+1)*ln(c32/c12)+ln((c21+Q)/(c23+Q))+(J0+2*c23-2*c21)/Q; # the potential drop across the system 
c2:=solve(y-c21+Q*I0/2/J0*ln((Q*I0-Q*J0-2*J0*y)/(Q*I0-Q*J0-2*J0*c21))=-J0/2*x,y):  
phi1:=I0/J0*ln(c1)+V: 
phi3:=I0/J0*ln(c3): 
dphi1:=diff(phi1,x); 
dphi3:=diff(phi3,x); 
phi21:=I0/J0*ln(c12)+V-0.5*ln((c21+Q)/c21); 
phi2:=(2*c21-2*c2+Q*phi21-J0*x)/Q: 
dphi2:=diff(phi2,x); 
dphi12 := eval(dphi1, x=1); 
dphi21 := eval(dphi2, x=0); 
dphi23 := eval(dphi2, x=1); 
dphi32 := eval(dphi3, x=0); 
INT1 := int(1/(2*c1), x = 0 .. 1); 
INT2 := int(1/(2*c2 + Q), x = 0 .. 1); 
INT3 := int(1/(2*c3), x = 0 .. 1); 
INT := INT1 + INT2 + INT3;
                      c12 := 0.9950000000

                       c32 := 1.005000000

                      c21 := 0.09804129000

                      c23 := 0.1000024500

                      I0 := 0.01419804328

                       V := 0.02539628566

                              0.007099021640   
                dphi1 := - --------------------
                           1 - 0.005000000000 x

                              0.007099021640        
           dphi3 := - ------------------------------
                      1.005000000 - 0.005000000000 x

                     phi21 := -2.299074561

dphi2 := (0.001000000000 LambertW(-0.2818670588 exp(-0.2818670588

   - 0.0007043224058 x)))/(1

   + LambertW(-0.2818670588 exp(-0.2818670588 - 0.0007043224058 x)

  )) - 0.001000000000


                   dphi12 := -0.007134695118

                   dphi21 := -0.001392499832

                   dphi23 := -0.001391964358

                   dphi32 := -0.007063703124

                      INT1 := 0.5012541824

                     INT2 := 0.09805801917

                      INT3 := 0.4987541511

                       INT := 1.098066353


sys1 := {
-omega*C11(x)+diff(diff(C12(x), x), x)=0,
omega*C12(x)+diff(diff(C11(x), x), x) = 0,
-omega*C21(x)+diff(diff(C22(x), x)+(c2*sigma2-C22(x)*dphi2*Q)/(2*c2+Q), x) =0,
 omega*C22(x)+diff(diff(C21(x), x)+(c2*sigma1-C21(x)*dphi2*Q)/(2*c2+Q), x) = 0,
-omega*C31(x)+diff(diff(C32(x), x), x)=0,
omega*C32(x)+diff(diff(C31(x), x), x) = 0
}:

sys2 := {
diff(FA1(x), x) = C11(x)*dphi1/c1,
diff(FA2(x), x) = C21(x)*dphi2/(c2+Q/2),
diff(FA3(x), x) = C31(x)*dphi3/c3,
diff(FB1(x), x) = C12(x)*dphi1/c1,
diff(FB2(x), x) = C22(x)*dphi2/(c2+Q/2),
diff(FB3(x), x) = C32(x)*dphi3/c3
}: 

Bc := {
C11(0) = 0, C12(0) = 0,  C31(1) = 0, C32(1) = 0,
FA1(0) = 0, FB1(0) = 0,  FA3(1) = 0, FB3(1) = 0, 

2*C11(1)/c12 = C21(0)/(c21+Q)+C21(0)/c21, 
2*C12(1)/c12 = C22(0)/(c21+Q)+C22(0)/c21,
C21(1)/(c23+Q)+C21(1)/c23 = 2*C31(0)/c32,
C22(1)/(c23+Q)+C22(1)/c23 = 2*C32(0)/c32,

D(C11)(1)+dphi12*C11(1)-sigma1/2-c12*D(FA1)(1) = D(C21)(0)+dphi21*C21(0)-(c21+Q)*sigma1/(2*c21+Q)-(c21+Q)*D(FA2)(0),
D(C12)(1)+dphi12*C12(1)-sigma2/2-c12*D(FB1)(1) = D(C22)(0)+dphi21*C22(0)-(c21+Q)*sigma2/(2*c21+Q)-(c21+Q)*D(FB2)(0),
D(C11)(1)-dphi12*C11(1)+sigma1/2+c12*D(FA1)(1) = D(C21)(0)-dphi21*C21(0)+c21*sigma1/(2*c21+Q)+c21*D(FA2)(0),
D(C12)(1)-dphi12*C12(1)+sigma2/2+c12*D(FB1)(1) = D(C22)(0)-dphi21*C22(0)+c21*sigma2/(2*c21+Q)+c21*D(FB2)(0),

D(C31)(0)+dphi32*C31(0)-sigma1/2-c32*D(FA3)(0) = D(C21)(1)+dphi23*C21(1)-(c23+Q)*sigma1/(2*c23+Q)-(c23+Q)*D(FA2)(1),
D(C32)(0)+dphi32*C32(0)-sigma2/2-c32*D(FB3)(0) = D(C22)(1)+dphi23*C22(1)-(c23+Q)*sigma2/(2*c23+Q)-(c23+Q)*D(FB2)(1),
D(C31)(0)-dphi32*C31(0)+sigma1/2+c32*D(FA3)(0) = D(C21)(1)-dphi23*C21(1)+c23*sigma1/(2*c23+Q)+c23*D(FA2)(1),
D(C32)(0)-dphi32*C32(0)+sigma2/2+c32*D(FB3)(0) = D(C22)(1)-dphi23*C22(1)+c23*sigma2/(2*c23+Q)+c23*D(FB2)(1)
}:
 
 


all_sys := sys1 union sys2 union Bc:
sol1 := dsolve(all_sys, initmesh = 100, maxmesh = 15000, numeric, method = bvp[midrich], output = listprocedure):
#(all_sys, numeric, method = bvp[midrich]);

Error, (in dsolve/numeric/bvp) bad index into Matrix

I am looking for ways to clear remember tables in a Maple session to ensure that a Maple command/procedure is executed as if it were being called for the first time. I currently use

map(forget, [anames()])

but I am not sure if that statement clears all existing remeber tables (i.e. including system remember tables)?

Are there other ways to do this? Restart is not an option since it clears almost everything.

Edit: This question is not about disabling remember tables.

I'm looking for the general solution to the attached differential equation. Maple doesn't provide it. What am I doing wrong?

restart

ode5 := diff(y(x), x) = (8*y(x)*b-32*b^2*x/y(x)-64*b^2*x^2*y(x))/(3*y(x)^2+8*b*x-16*b^2*x^2/y(x)^2)

diff(y(x), x) = (8*y(x)*b-32*b^2*x/y(x)-64*b^2*x^2*y(x))/(3*y(x)^2+8*b*x-16*b^2*x^2/y(x)^2)

(1)

simplify(ode5)

diff(y(x), x) = ((64*b^2*x^2-8*b)*y(x)^3+32*b^2*x*y(x))/(-3*y(x)^4-8*b*x*y(x)^2+16*b^2*x^2)

(2)

dsolve(ode5, y(x))

NULLNULL

Download testdgl5.mw

I was wondering which theorem the following result is based on, and what the name of the sequence used is.

restart; with(LinearAlgebra)

K := proc (i::integer, j::integer) local M; M := Matrix(5, 5); M[i, i] := 1; M[j, j] := 1; return M end proc

F := proc (r, c, g, h) options operator, arrow; Adjoint(A.K(r, c).B.K(g, h).C) end proc

d1 := 3; d2 := 5; A := Matrix(d1, d2, symbol = a); B := Matrix(d2, d2, symbol = b); C := Matrix(d2, d1, symbol = c)

d1 := 3

 

d2 := 5

 

Matrix(3, 5, {(1, 1) = a[1, 1], (1, 2) = a[1, 2], (1, 3) = a[1, 3], (1, 4) = a[1, 4], (1, 5) = a[1, 5], (2, 1) = a[2, 1], (2, 2) = a[2, 2], (2, 3) = a[2, 3], (2, 4) = a[2, 4], (2, 5) = a[2, 5], (3, 1) = a[3, 1], (3, 2) = a[3, 2], (3, 3) = a[3, 3], (3, 4) = a[3, 4], (3, 5) = a[3, 5]})

 

Matrix(5, 5, {(1, 1) = b[1, 1], (1, 2) = b[1, 2], (1, 3) = b[1, 3], (1, 4) = b[1, 4], (1, 5) = b[1, 5], (2, 1) = b[2, 1], (2, 2) = b[2, 2], (2, 3) = b[2, 3], (2, 4) = b[2, 4], (2, 5) = b[2, 5], (3, 1) = b[3, 1], (3, 2) = b[3, 2], (3, 3) = b[3, 3], (3, 4) = b[3, 4], (3, 5) = b[3, 5], (4, 1) = b[4, 1], (4, 2) = b[4, 2], (4, 3) = b[4, 3], (4, 4) = b[4, 4], (4, 5) = b[4, 5], (5, 1) = b[5, 1], (5, 2) = b[5, 2], (5, 3) = b[5, 3], (5, 4) = b[5, 4], (5, 5) = b[5, 5]})

 

Matrix(%id = 36893489807004764868)

(1)

simplify(Adjoint(A.B.C)-add([F(1, 2, 1, 2), F(1, 2, 1, 3), F(1, 2, 1, 4), F(1, 2, 1, 5), F(1, 2, 2, 3), F(1, 2, 2, 4), F(1, 2, 2, 5), F(1, 2, 3, 4), F(1, 2, 3, 5), F(1, 2, 4, 5), F(1, 3, 1, 2), F(1, 3, 1, 3), F(1, 3, 1, 4), F(1, 3, 1, 5), F(1, 3, 2, 3), F(1, 3, 2, 4), F(1, 3, 2, 5), F(1, 3, 3, 4), F(1, 3, 3, 5), F(1, 3, 4, 5), F(1, 4, 1, 2), F(1, 4, 1, 3), F(1, 4, 1, 4), F(1, 4, 1, 5), F(1, 4, 2, 3), F(1, 4, 2, 4), F(1, 4, 2, 5), F(1, 4, 3, 4), F(1, 4, 3, 5), F(1, 4, 4, 5), F(1, 5, 1, 2), F(1, 5, 1, 3), F(1, 5, 1, 4), F(1, 5, 1, 5), F(1, 5, 2, 3), F(1, 5, 2, 4), F(1, 5, 2, 5), F(1, 5, 3, 4), F(1, 5, 3, 5), F(1, 5, 4, 5), F(2, 3, 1, 2), F(2, 3, 1, 3), F(2, 3, 1, 4), F(2, 3, 1, 5), F(2, 3, 2, 3), F(2, 3, 2, 4), F(2, 3, 2, 5), F(2, 3, 3, 4), F(2, 3, 3, 5), F(2, 3, 4, 5), F(2, 4, 1, 2), F(2, 4, 1, 3), F(2, 4, 1, 4), F(2, 4, 1, 5), F(2, 4, 2, 3), F(2, 4, 2, 4), F(2, 4, 2, 5), F(2, 4, 3, 4), F(2, 4, 3, 5), F(2, 4, 4, 5), F(2, 5, 1, 2), F(2, 5, 1, 3), F(2, 5, 1, 4), F(2, 5, 1, 5), F(2, 5, 2, 3), F(2, 5, 2, 4), F(2, 5, 2, 5), F(2, 5, 3, 4), F(2, 5, 3, 5), F(2, 5, 4, 5), F(3, 4, 1, 2), F(3, 4, 1, 3), F(3, 4, 1, 4), F(3, 4, 1, 5), F(3, 4, 2, 3), F(3, 4, 2, 4), F(3, 4, 2, 5), F(3, 4, 3, 4), F(3, 4, 3, 5), F(3, 4, 4, 5), F(3, 5, 1, 2), F(3, 5, 1, 3), F(3, 5, 1, 4), F(3, 5, 1, 5), F(3, 5, 2, 3), F(3, 5, 2, 4), F(3, 5, 2, 5), F(3, 5, 3, 4), F(3, 5, 3, 5), F(3, 5, 4, 5), F(4, 5, 1, 2), F(4, 5, 1, 3), F(4, 5, 1, 4), F(4, 5, 1, 5), F(4, 5, 2, 3), F(4, 5, 2, 4), F(4, 5, 2, 5), F(4, 5, 3, 4), F(4, 5, 3, 5), F(4, 5, 4, 5)]))

Matrix(%id = 36893489807027993164)

(2)

nops([F(1, 2, 1, 2), F(1, 2, 1, 3), F(1, 2, 1, 4), F(1, 2, 1, 5), F(1, 2, 2, 3), F(1, 2, 2, 4), F(1, 2, 2, 5), F(1, 2, 3, 4), F(1, 2, 3, 5), F(1, 2, 4, 5), F(1, 3, 1, 2), F(1, 3, 1, 3), F(1, 3, 1, 4), F(1, 3, 1, 5), F(1, 3, 2, 3), F(1, 3, 2, 4), F(1, 3, 2, 5), F(1, 3, 3, 4), F(1, 3, 3, 5), F(1, 3, 4, 5), F(1, 4, 1, 2), F(1, 4, 1, 3), F(1, 4, 1, 4), F(1, 4, 1, 5), F(1, 4, 2, 3), F(1, 4, 2, 4), F(1, 4, 2, 5), F(1, 4, 3, 4), F(1, 4, 3, 5), F(1, 4, 4, 5), F(1, 5, 1, 2), F(1, 5, 1, 3), F(1, 5, 1, 4), F(1, 5, 1, 5), F(1, 5, 2, 3), F(1, 5, 2, 4), F(1, 5, 2, 5), F(1, 5, 3, 4), F(1, 5, 3, 5), F(1, 5, 4, 5), F(2, 3, 1, 2), F(2, 3, 1, 3), F(2, 3, 1, 4), F(2, 3, 1, 5), F(2, 3, 2, 3), F(2, 3, 2, 4), F(2, 3, 2, 5), F(2, 3, 3, 4), F(2, 3, 3, 5), F(2, 3, 4, 5), F(2, 4, 1, 2), F(2, 4, 1, 3), F(2, 4, 1, 4), F(2, 4, 1, 5), F(2, 4, 2, 3), F(2, 4, 2, 4), F(2, 4, 2, 5), F(2, 4, 3, 4), F(2, 4, 3, 5), F(2, 4, 4, 5), F(2, 5, 1, 2), F(2, 5, 1, 3), F(2, 5, 1, 4), F(2, 5, 1, 5), F(2, 5, 2, 3), F(2, 5, 2, 4), F(2, 5, 2, 5), F(2, 5, 3, 4), F(2, 5, 3, 5), F(2, 5, 4, 5), F(3, 4, 1, 2), F(3, 4, 1, 3), F(3, 4, 1, 4), F(3, 4, 1, 5), F(3, 4, 2, 3), F(3, 4, 2, 4), F(3, 4, 2, 5), F(3, 4, 3, 4), F(3, 4, 3, 5), F(3, 4, 4, 5), F(3, 5, 1, 2), F(3, 5, 1, 3), F(3, 5, 1, 4), F(3, 5, 1, 5), F(3, 5, 2, 3), F(3, 5, 2, 4), F(3, 5, 2, 5), F(3, 5, 3, 4), F(3, 5, 3, 5), F(3, 5, 4, 5), F(4, 5, 1, 2), F(4, 5, 1, 3), F(4, 5, 1, 4), F(4, 5, 1, 5), F(4, 5, 2, 3), F(4, 5, 2, 4), F(4, 5, 2, 5), F(4, 5, 3, 4), F(4, 5, 3, 5), F(4, 5, 4, 5)])

100

(3)
 

NULL

Download Adjoint353.mw

Given first order nonlinear ode which is hard to solve using standard methods, the smart dsolve sometimes uses a method where it linearizes the first order ode to a linear second order ode and solves that.

Then with that solution to the linear second order ode, it is able to find the solution of the first order ode (need to resolve the constants of integration to merge them into one, but this part is easy to do).

My question is, how and what method it uses to "linearizes by differentation"? I could not find this in any textbook I have, and not able to see how it does.

Here is an example where it uses this method to solving this first order ode

restart;

Typesetting:-Unsuppress('all'); #always do this.
Typesetting:-Settings(prime=x,'typesetprime'=true); #this says to use y'(x) instead of dy/dx    
Typesetting:-Suppress(y(x)); # this says to use y' and not y'(x)

ode:=diff(y(x),x) = (-y(x)^2+4*a*x)^2/y(x); 
infolevel[dsolve]:=5;
dsolve(ode,y(x), singsol=all);

Tracing says 

So it says, if I understand, that it differentiated the original given first order ode and then linearized the resulting second order ode to the above, which is    y''=-64 a^2 x^2 y - 16 a x y' which is certainly linear second order ode and now can be solved using kovacic algorithm. Now the solution to the first order ode can be obtained.

But when differentiating the first order ode, this is the result

expand(diff(ode,x))

So the question is, did Maple mean it "linearized" the above to y''=-64 a^2 x^2 y - 16 a x y' 

If so, then how? Did it use Taylor series? but if so, where it expanded about? Or did it use some other method?  One thing I noticed is that by multiplying the RHS above by y^2 it becomes

And "removing" the nonlinear terms (say expansion is around y=0, so higher order y terms are very small and can be removed) the RHS above becomes

    y'' y^2 = -16 y' a^2 x^2 + 32 a^2 x y

Which is close to Maple shows, but 32 instead of 64, and what about the y^2 on the left side?  Is this method even valid mathematically to do? Since solution that result will be correct only near y=0?

So far, trying to step in the debugger to find how, I was not able to find where it does that but will keep trying.

Any idea what Maple means by linearization to 2nd order and how it does it?

ps. only case I know about, where nonlinear first order ode can be transformed to linear second order ode is the Riccati ode using transformation y=u'/u. But this  first order ode is not Riccati.

I just installed Maple 2023 on a MacPro running macOS Sequoia 15.7.2. Update to latest .version and activation worked without a hitch.

When I try to run it from the Finder it immediately puts up a dialog saying something like "Java not found". There is a webpage by Maplesoft addressing this, but it is completely uninformative and unhelpful.

I can get Maple to run using the cli (in Terminal) opening the Maple 2023 .app file, at which point Maple (running the standard GUI) works just as one would expect. So it is not a crisis but I'd like to be able to open it through the Finder as well. The Maple .app folder appears to have all the Java stuff in it, and clearly it is somewhere.

Anyone seen and solved this before?

Thanks,

Mac Dude

1 2 3 4 5 6 7 Last Page 1 of 2241