Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

I never used Maplets before.

Been learning Explore, which is OK, but the UI does not look good. Too much white spaces between sliders.  So been looking at Maplets to use instead.

Should one just use Maplets to make interactive demos with sliders, buttons, popup menus and so on or use Explore? Which is better?

I do not waste more time learning Explore more if Maplets is a better choice.

If someone here knows Maplet, here is something I just wrote in Explore.  Could this be coded in Maplet to see how it will look like. It took me 30 minutes to make it using Explore and I am no expert in Explore, so hopefully it should not take someone who knows Maplets much time to produce same thing as Maplet. I wanted to see if the UI will look better or same issues with too wasted spaces between sliders.  I assume with Maplets, there is same concept as Explore, with range of variables, and initial values and so on...

I understand one can run Maplet using Maple viewer without needing to have Maple installed on the PC, so this is an advantage.

 

 

restart;

ode_1 := diff(x(t),t) = r*x(t) *(1-(x(t)+beta*y(t))/k1):
ode_2 := diff(y(t),t) = k*y(t) *(1-(y(t)+alpha*x(t))/k2):

Explore(DEtools:-DEplot(
     [ ode_1, ode_2],[x(t),y(t)],t=0..max_time,[[x(0)=x0,y(0)=y0]],
     x=0..max_x, y=0..max_y,'labels'=["Elk","Deer"],'dirfield'=[ngrid,ngrid],
     'arrows'='SLIM', #'smalltwo',
     'axes'='boxed', 'color' = blue,'linecolor'='red',#color of solution
     'obsrange'=false,
     'title'="Lotka -Volterra Model of Competition"
     ),
    parameters=[
     [r=0..5,'controller' = 'slider','minorticks'=.1,'snaptoticks'=true, 'label' = "Elk growth rate r",'showlabels'=false,placement='right'],
     [alpha=0..2,'controller' = 'slider','minorticks'=.1,'snaptoticks'=true, 'label' = "Elk competition alpha",'showlabels'=false,placement='right'],
     [k1=100..1000,'controller' = 'slider','minorticks'=10,'snaptoticks'=true, 'label' = "Elk carrying capacity",'showlabels'=false,placement='right'],
     [k=0..5,'controller' = 'slider','minorticks'=.1,'snaptoticks'=true, 'label' = "Deer growth rate k",'showlabels'=false,placement='right'],
     [beta=0..2,'controller' = 'slider','minorticks'=.1,'snaptoticks'=true, 'label' = "Deer competition beta",'showlabels'=false,placement='right'],
     [k2=100..1000,'controller' = 'slider','minorticks'=10,'snaptoticks'=true, 'label' = "Deer carrying capacity",'showlabels'=false,placement='right'],
     [max_time=1..200,'controller' = 'slider','minorticks'=1,'snaptoticks'=true, 'label' = "max time",'showlabels'=false,placement='left'],
     [max_x=1..1000,'controller' = 'slider','minorticks'=1,'snaptoticks'=true, 'label' = "max x",'showlabels'=false,placement='left'],
     [max_y=1..1000,'controller' = 'slider','minorticks'=1,'snaptoticks'=true, 'label' = "max y",'showlabels'=false,placement='left'],
     [x0=1..200,'controller' = 'slider','minorticks'=1,'snaptoticks'=true, 'label' = "Deer initial population",'showlabels'=false,placement='left'],
     [y0=1..200,'controller' = 'slider','minorticks'=1,'snaptoticks'=true, 'label' = "Elk initial population",'showlabels'=false,placement='left'],
     [ngrid=10..30,'controller' = 'slider','minorticks'=1,'snaptoticks'=true, 'label' = "arrows",'showlabels'=false,placement='left']     
    ],
    initialvalues=[r=0.12,k1=600,alpha=1.5,k2=600,k=0.18,beta=1.2,x0=75,y0=100,ngrid=24,max_x=700,max_y=700,max_time=100],
    'adaptview'=true
);

 


 

Download lotka_volterra.mw

Screen shot of the UI

 

How would the above look using Maplet instead of Explore?

I am not sure whether this should be in "create a post" or "ask a question." Let me know if this is more appropriate in "ask a question"

The standing wave equation is given by:

PDE:=diff(u(x,t),t,t)=c^2*diff(u(x,t),x,x)

IBC := {u(x, 0) = A0*cos(Pi*x/L), D[1](u)(0, t) = 0, D[1](u)(L, t) = 0, D[2](u)(x, 0) = 0}

pdsolve(PDE,IBC,numeric)

In my problem, the material is a magneto-elastic material where c, the speed of the acoustic wave, is a function of a magnetic field H.  The material is nonlinear and saturable.  I define it by a 3 segment piecewise nonlinear function of H.  The material response is a result of a sinusoidal H field.  I am interested in solving u(x,t).  

With that, c in the PDE has to be rewritten as c(H(t)), pdsolve gives an error as PDE has to be expressed as a function of u,t, or x.  So I redefine c(H(t)) as c(t).  I ran into another error in pdsolve as the piecewise has to be based on t or x and not H.  

The problem is that depending on H I can go through all 3 segments and back in one cycle and I have to find the corresponding t's for the piecewise.  Now I am driving the material with 100 cycles, I have to find and list all those piecewise transition points which is hardly practical.

Is there any other ways to approach and solve this problem?

once i founded but  i lost the technique and i can't remember how i can reach the point how to find thus parameter and find the solution of pde

t1.mw

I just found a rather incredible error in versions 2025.1 and 2025.2.

The function works fine in version 2022.

The drag function in solve does not work, even for solving a very simple problem.

For example, in the equation 1 + 5x = 3x - 1, if I try to do 3x from right to left, a box opens with a good suggestion (subtract   1+2x = -1)

# subtract 3*x from both sides
((1)) + ~(3 * x)
we can see that the correct expression should be ((1)) - ~(3 * x)

I finally get:

1 + 8x = 6x -1 (it added and did not subtract 3x from both sides)

Please correct this...

Dear sir,

i want to draw velocity and temperature plots for fluid and dust phases. but getting error in that showing 12 BC need only 8 
i have tried with 8 Bc also but showing different error how to rectify it

dust_phase_work_error.mw 

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

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