Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Dear Power Users, Dataframes are a powerful tool within Maple. However, when I have 'undefined' in cells "Aggregate" or "DataSummary" does not provide answers. However, when I use "Statistics:-Mean" with the additional option "ignore=true" I can get an answer for one column (see attached worksheet). Adding "ignore" to aggregate apparently does not work. What is the method for ignoring the undefined data? In Excel when a cell is blank it will be ignored. Thank you for any help given.MP_Aggregate.mw

From a discussion about expanding unit expressions with compound units I concluded that expanding derived units such as Newton, Watt, Volt, Tesla,... to SI base units is difficult in Maple.

Unintentionally, I came across a rather simple solution for SI units.

toSIbu := x -> x = Units:-Unit(simplify(x/Unit('kg'))*Unit('kg'));

converts derived SI units to SI base units. It’s the inverse of what the units packages and simplify do (i.e. simplification to derived units).

What makes it maybe more interesting: It also works, again unintentionally, on other units than SI units. If, one day, you come along an erg or a hartree or or a kyne and you cannot guess the SI units convert/units needs, try

toSIbu(Unit('pound'));
toSIbu(Unit('hp'));
toSIbu(Unit('electron'));
toSIbu(Unit('hartree'));
toSIbu(Unit('bohr'));
toSIbu(Unit('barye'));
toSIbu(Unit('kyne'));
toSIbu(Unit('erg'));
toSIbu(Unit(mile/gal(petroleum)));

Maybe handy one day when you do not trust AI or the web.


 

NULL 

toSIbu := x -> x = Units:-Unit(simplify(x/Unit('kg'))*Unit('kg')):
toSIbu(Unit('N'));
toSIbu(Unit('J'));
toSIbu(Unit('W'));
toSIbu(Unit('Pa'));
toSIbu(Unit('C'));
toSIbu(Unit('F'));
toSIbu(Unit('S'));
toSIbu(Unit('H'));
toSIbu(Unit('T'));
toSIbu(Unit('V'));
toSIbu(Unit('Wb'));
toSIbu(Unit('Omega'));
toSIbu(Unit('lx'));
toSIbu(Unit('lm'));
toSIbu(Unit('degC'));
toSIbu(Unit('rad'));
toSIbu(Unit('sr'));

Units:-Unit(N) = Units:-Unit(m*kg/s^2)

 

Units:-Unit(J) = Units:-Unit(m^2*kg/s^2)

 

Units:-Unit(W) = Units:-Unit(m^2*kg/s^3)

 

Units:-Unit(Pa) = Units:-Unit(kg/(m*s^2))

 

Units:-Unit(C) = Units:-Unit(A*s)

 

Units:-Unit(F) = Units:-Unit(A^2*s^4/(m^2*kg))

 

Units:-Unit(S) = Units:-Unit(A^2*s^3/(m^2*kg))

 

Units:-Unit(H) = Units:-Unit(m^2*kg/(A^2*s^2))

 

Units:-Unit(T) = Units:-Unit(kg/(A*s^2))

 

Units:-Unit(V) = Units:-Unit(m^2*kg/(A*s^3))

 

Units:-Unit(Wb) = Units:-Unit(m^2*kg/(A*s^2))

 

Units:-Unit(`Ω`) = Units:-Unit(m^2*kg/(A^2*s^3))

 

Units:-Unit(lx) = Units:-Unit(cd/m^2)

 

Units:-Unit(lm) = Units:-Unit(cd)

 

Units:-Unit(`°C`) = Units:-Unit(K)

 

Units:-Unit(rad) = Units:-Unit(m/m(radius))

 

Units:-Unit(sr) = Units:-Unit(m^2/m(radius)^2)

(1)

NULL


 

Download toSIbu.mw


(All done with Maple 2024 without loading any package)

 

 

 

Hello. I am trying to use the Remove() command to remove a column of a dataframe. I applied the command like its shown in the help section and I get an error. I don't see how I am applying this command incorrectly. Where am I going wrong? Below is a screenshot of the error output and the .mw file used to generate the output.

Remove_a_column_from_a_dataframe.mw

I attempted to create a phase plot using the Odeplot command in Maple, but the resulting plot isn't as smooth as I'd like. To improve the smoothness, I tried increasing the numpoints parameter to 20,000, but this resulted in the error message: [Length of output exceeds limit of 1000000]. What adjustments should I make to obtain a smoother phase plot without encountering this error?

 

restart;
r := 1;
b := 1;
c := 0.01;
a := 0.36;
mu := 0.4;
beta := 0.75;

sys := {diff(x(t), t) = r*x(t) - b*x(t)^2 - c*x(t)*y(t) - beta*x(t)*y(t)/(a + x(t)), diff(y(t), t) = -mu*y(t) + beta*x(t)*y(t)/(a + x(t))};
 
ics := {x(0) = 0.2, y(0) = 0.05};

sol := dsolve(sys union ics, {x(t), y(t)}, numeric, range = 0 .. 20000, maxfun = 0, output = listprocedure, abserr = 0.1e-7, relerr = 0.1e-7)

with(DEtools);
DEplot3d(sys, {x(t), y(t)}, t = 0 .. 20000, [[x(0) = 0.2, y(0) = 0.05]], maxfun = 0, numpoints = 35000, thickness = 1, linestyle = solid);
 

 

 

 

with(plots);
phaseplot := odeplot(sol, [x(t), y(t)], 0 .. 20000, numpoints = 10000, color = red, thickness = 2, axes = boxed, gridlines, title = "Phase-space Diagram");

 

 

Download extra_steps.mw

Dear All,

I am facing some problems. This kind of error has been shown "Error, (in Engine:-Dispatch) badly formed input to solve: not fully algebraic"

eqn1 := {((1+1/beta).(diff(f(eta), eta, eta, eta))-(1+F[s]).((diff(f(eta), eta))^2)+(diff(f(eta), eta, eta)).f(eta)+M.(A-(diff(f(eta), eta)))-1/(R.D[a]).(diff(f(eta), eta)) = 0, diff(theta(eta), eta, eta)+4/3.N.(diff((1+(K-1).theta(eta))^3.(diff(theta(eta), eta)), eta)))+Pr.f(eta).(diff(theta(eta), eta))+(1+1/beta).Pr.Ec.((diff(f(eta), eta, eta))^2)+M.Ec.((diff(f(eta), eta)-A)^2) = 0, f(0) = 0, theta(0) = 1+alpha.(D(theta))(0), theta(10) = 0, (D(f))(0) = 1+(1+1/beta).lambda.(D(D(f)))(0), (D(f))(10) = 0};
;
sys1 := eval(eqn1, {A = 1, Ec = .2, K = 2.5, M = .5, N = .5, Pr = 6.5, R = 1, alpha = .5, beta = 2, lambda = .5, D[a] = .3, F[s] = 1});
sol1 := dsolve(sys1, numeric);
Error, (in Engine:-Dispatch) badly formed input to solve: not fully algebraic
with(plots);
t1 := odeplot(sol1, [eta, diff(f(eta), eta)], eta = 0 .. 10, numpoints = 65, thickness = 0, color = green, linestyle = solid);
plots[plots:-display]({t1})

MAXR.mw

If I have an equation:

-2*a[0]*((x^3*a[1] + 42)*diff(y(x), x, x) - 6*y(x)*x*a[1])*sqrt(-a[0]*(a[1]^2 + 3)) - 3*x^2*((1/3*a[1]^3 + a[0] + a[1])*x + (8*a[1]^2 + 24)*a[0])*diff(y(x), x, x)

I want to obtain a differential algebraic equation for y(x)without the parameters a[1] and a[0]. My idea is to first compute the derivative of U to get:

V:=-2*a[0]*(3*x^2*a[1]*diff(y(x), x, x) + (x^3*a[1] + 42)*diff(y(x), x, x, x) - 6*diff(y(x), x)*x*a[1] - 6*a[1]*y(x))*sqrt(-a[0]*(a[1]^2 + 3)) - 6*x*((1/3*a[1]^3 + a[0] + a[1])*x + (8*a[1]^2 + 24)*a[0])*diff(y(x), x, x) - 3*x^2*(1/3*a[1]^3 + a[0] + a[1])*diff(y(x), x, x) - 3*x^2*((1/3*a[1]^3 + a[0] + a[1])*x + (8*a[1]^2 + 24)*a[0])*diff(y(x), x, x, x)

Then, compute the resultant: resultant(U,V,a[0]). However, since a[0] is algebraic, we cannot compute the resultant directly. I want to substitute:

algsubs((−a[0](a[1]2+3))2=c2,U)

Then, eliminate c, a[0], and a[1] using the resultant. However, I find that this substitution command does not work. Is there a method to help eliminate the parameters a[0]and a[1]?

This expression is easy i think but i can't get any results with same shape  how i can simplify to the same equation in the paper

i am looking for equation 9 and every thing is clear how i can get

mp1.mw

Today in class, we presented an exercise based on the paper titled "Analysis of regular and chaotic dynamics in a stochastic eco-epidemiological model" by Bashkirtseva, Ryashko, and Ryazanova (2020). In this exercise, we kept all parameters of the model the same as in the paper, but we varied the parameter β, which represents the rate of infection spread. The goal was to observe how changes in β impact the system's dynamics, particularly focusing on the transition between regular and chaotic behavior.

This exercise involves studying a mathematical model that appears in eco-epidemiology. The model is described by the following set of equations:

dx/dt = rx-bx^2-cxy-`βxz`/(a+x)-a[1]*yz/(e+y)

dy/dt = -`μy`+`βxy`/(a+x)-a[2]*yz/(d+y)

" (dz)/(dt)=-mz+((c[1 ]a[1])[ ]xz)/(e[]+x)+((c[1 ]a[2])[ ]yz)/(d+y)"

 

where r, b, c, β, α,a[1],a[2], e, d, m, c[1], c[2], μ>0 are given parameters. This model generalizes the classic predator-prey system by incorporating disease dynamics within the prey population. The populations are divided into the following groups:

 

• 

Susceptible prey population (x): Individuals in the prey population that are healthy but can become infected by a disease.

• 

Infected prey population (y): Individuals in the prey population that are infected and can transmit the disease to others.

• 

Predator population (z): The predator population that feeds on both susceptible (x) and infected (y) prey.

 

The initial conditions are always x(0)=0.2, y(0)=0.05, z(0)=0.05,  and we will vary the parameter β.;

 

For this exercise, the parameters are fixed as follows:

 

"r=1,` b`=1,` c`=0.01, a=0.36 ,` a`[1]=0.01,` a`[2]=0.05,` e`[]=15,` m`=0.01,` d`=0.5,` c`[1]=2,` `c[2]==1,` mu`=0.4."

NULL

Task (a)

• 

Solve the system numerically for the given parameter values and initial conditions with β=0.6 over the time interval t2[0,20000].

• 

Plot the solutions x(t), y(t), and  z(t) over this time interval.

• 

Comment on the model's predictions, keeping in mind that the time units are usually days.

• 

Also, plot the trajectory in the 3D space (x,y,z).

 

restart

r := 1; b := 1; f := 0.1e-1; alpha := .36; a[1] := 0.1e-1; a[2] := 0.5e-1; e := 15; m := 0.1e-1; d := .5; c[1] := 2; c[2] := 1; mu := .4; beta := .6

sys := {diff(x(t), t) = r*x(t)-b*x(t)^2-f*x(t)*y(t)-beta*x(t)*y(t)/(alpha+x(t))-a[1]*x(t)*z(t)/(e+x(t)), diff(y(t), t) = -mu*y(t)+beta*x(t)*y(t)/(alpha+x(t))-a[2]*y(t)*z(t)/(d+y(t)), diff(z(t), t) = -m*z(t)+c[1]*a[1]*x(t)*z(t)/(e+x(t))+c[2]*a[2]*y(t)*z(t)/(d+y(t))}

{diff(x(t), t) = x(t)-x(t)^2-0.1e-1*x(t)*y(t)-.6*x(t)*y(t)/(.36+x(t))-0.1e-1*x(t)*z(t)/(15+x(t)), diff(y(t), t) = -.4*y(t)+.6*x(t)*y(t)/(.36+x(t))-0.5e-1*y(t)*z(t)/(.5+y(t)), diff(z(t), t) = -0.1e-1*z(t)+0.2e-1*x(t)*z(t)/(15+x(t))+0.5e-1*y(t)*z(t)/(.5+y(t))}

(1)

ics := {x(0) = .2, y(0) = 0.5e-1, z(0) = 0.5e-1}

{x(0) = .2, y(0) = 0.5e-1, z(0) = 0.5e-1}

(2)

NULL

sol := dsolve(`union`(sys, ics), {x(t), y(t), z(t)}, numeric, range = 0 .. 20000, maxfun = 0, output = listprocedure, abserr = 0.1e-7, relerr = 0.1e-7)

`[Length of output exceeds limit of 1000000]`

(3)

X := subs(sol, x(t)); Y := subs(sol, y(t)); Z := subs(sol, z(t))

``

plot('[X(t)]', t = 0 .. 20000, numpoints = 350, title = "Trajectory of x(t)", axes = boxed, gridlines, color = ["#40e0d0"])

 

plot('[Y(t)]', t = 0 .. 20000, numpoints = 350, title = "Trajectory", axes = boxed, gridlines, title = "Trajectory of y(t)", color = ["SteelBlue"])

 

``

plot('[Z(t)]', t = 0 .. 20000, numpoints = 350, title = "Trajectory", axes = boxed, gridlines, title = "Trajectory of Z(t)", color = "Black"); with(DEtools)

 

with(DEtools)

DEplot3d(sys, {x(t), y(t), z(t)}, t = 0 .. 20000, [[x(0) = .2, y(0) = 0.5e-1, z(0) = 0.5e-1]], numpoints = 35000, color = blue, thickness = 1, linestyle = solid)

 

Task (b)

• 

Repeat the study in part (a) with the same initial conditions but set β=0.61.

NULL

restart

r := 1; b := 1; f := 0.1e-1; alpha := .36; a[1] := 0.1e-1; a[2] := 0.5e-1; e := 15; m := 0.1e-1; d := .5; c[1] := 2; c[2] := 1; mu := .4; beta := .61

NULL

sys := {diff(x(t), t) = r*x(t)-b*x(t)^2-f*x(t)*y(t)-beta*x(t)*y(t)/(alpha+x(t))-a[1]*x(t)*z(t)/(e+x(t)), diff(y(t), t) = -mu*y(t)+beta*x(t)*y(t)/(alpha+x(t))-a[2]*y(t)*z(t)/(d+y(t)), diff(z(t), t) = -m*z(t)+c[1]*a[1]*x(t)*z(t)/(e+x(t))+c[2]*a[2]*y(t)*z(t)/(d+y(t))}

{diff(x(t), t) = x(t)-x(t)^2-0.1e-1*x(t)*y(t)-.61*x(t)*y(t)/(.36+x(t))-0.1e-1*x(t)*z(t)/(15+x(t)), diff(y(t), t) = -.4*y(t)+.61*x(t)*y(t)/(.36+x(t))-0.5e-1*y(t)*z(t)/(.5+y(t)), diff(z(t), t) = -0.1e-1*z(t)+0.2e-1*x(t)*z(t)/(15+x(t))+0.5e-1*y(t)*z(t)/(.5+y(t))}

(4)

NULL

ics := {x(0) = .2, y(0) = 0.5e-1, z(0) = 0.5e-1}

{x(0) = .2, y(0) = 0.5e-1, z(0) = 0.5e-1}

(5)

sol := dsolve(`union`(sys, ics), {x(t), y(t), z(t)}, numeric, range = 0 .. 20000, maxfun = 0, output = listprocedure, abserr = 0.1e-7, relerr = 0.1e-7)

`[Length of output exceeds limit of 1000000]`

(6)

X := subs(sol, x(t)); Y := subs(sol, y(t)); Z := subs(sol, z(t))

NULL

plot('[X(t)]', t = 0 .. 20000, numpoints = 350, title = "Trajectory of x(t)", axes = boxed, gridlines, color = ["Blue"])

 

plot('[Y(t)]', t = 0 .. 20000, numpoints = 350, title = "Trajectory of  Y(t)", axes = boxed, gridlines, color = "Red")

 

plot('[Z(t)]', t = 0 .. 20000, numpoints = 350, title = "Trajectory of  Y(t)", axes = boxed, gridlines, color = "Black")

 

NULL

with(DEtools)

DEplot3d(sys, {x(t), y(t), z(t)}, t = 0 .. 20000, [[x(0) = .2, y(0) = 0.5e-1, z(0) = 0.5e-1]], maxfun = 0, numpoints = 35000, color = blue, thickness = 1, linestyle = solid)

 

The rate of the infection spread is affected by the average number of contacts each person has (β=0.6) and increases depending on the degree of transmission within the population, in particular within specific subpopulations (such as those in rural areas). A detailed epidemiological study showed that the spread of infection is most significant in urban areas, where population density is higher, while in rural areas, the rate of infection remains relatively low. This suggests that additional public health measures are needed to reduce transmission in densely populated areas, particularly in regions with high population density such as cities

``

Download math_model_eco-epidemiology.mw

Hello,

I'm having trouble updating an old Maple package to work with the latest version of Maple. In the package, there are several commands that modify predefined procedures and then rename them (see the example below). I need to save all these new procedures to a text file so I can further modify them and better understand their functionality. How can I achieve this?

d_remset := subs(`class`=`d_class`,`remseta`=`d_remseta`,`premas`=`d_premas`,op(`remset`)):

remset is a procedure previously defined.  

Many thanks.

Obs.: If you have a better idea on how to deal with the procdures, please let me know. 

Dear power users, I was wondering whether it is possible to import a xlsx file in such a way that the first row of the file is imported as column headers of the dataframe in Maple? Thank you in advance for any help given.

intersections := proc(P, Q, T)
local R, W, w, t, a, b, sol, buff, v;
sol := NULL;
if T = Y then W := X; else
W := Y; end if;
R := resultant(P, Q, T);
print(`Résultant :`); print(R);
w := fsolve(R, W); t := NULL;
for v in [w] do t := t, fsolve(subs(W = v, P), T); end do;
for a in {w} do for b in {t} do if T = Y then
buff := abs(subs(X = a, Y = b, P)) + abs(subs(X = a, Y = b, Q));
printf(`X=%a,   Y=%a   --->  %a\\n`, a, b, buff); if buff < 1/100000000 then sol := sol, [a, b]; end if;
else buff := abs(subs(X = b, Y = a, P)) + abs(subs(X = b, Y = a, Q));
printf(`X=%a,   Y=%a   --->  %a\\n `, a, b, buff); if buff < 1/100000000 then sol := sol, [b, a]; end if; end if; end do; end do; printf(`Nombre de solutions :  %a\\n`, nops({sol})); print({sol}); end proc:
intersections(X^2 + Y^2 - 1, X - Y, X);
X=-.7071067812,   Y=-.7071067812   --->  0.\n 
I do not wish to find \n in the answer

Here is another ode solution by Maple, I am not able to get zero from odetest. 

If someone could come up with a trick or method to verify this, that will be great. I tried all sort of assumptions and not able to get zero. Even coulditbe() could not give zero. 

It is a Chini ode and also homogeneous, `class G`.

Solving using either method, odetest do not returns zero.  There are no initial conditions. I am sure the solutions are correct, but odetest need some help or may be this requires different method to verify not using odetest?

Worksheet below.

 

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

libname;

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

restart;

ode:=diff(y(x),x) = a*x^(n/(1-n))+b*y(x)^n;
DEtools:-odeadvisor(ode,y(x));

diff(y(x), x) = a*x^(n/(1-n))+b*y(x)^n

[[_homogeneous, `class G`], _Chini]

maple_sol:=dsolve(ode,y(x),[Chini],useInt,implicit); #explicit makes it take very long time
 

Intat(1/(_a^n/(b^(-n-1)*(a*x^(-n/(-1+n)))^(-2*n+1)*(-x^(-n/(-1+n)-1)*a*n*b/(-1+n))^n*n^(-n))-_a+1), _a = -y(x)/((-1+n)*x*a*x^(-n/(-1+n))))-(Int(-1/((-1+n)*x), x))+c__1 = 0

residual:=odetest(maple_sol,ode); #how to show this is zero?

n^n*(-y(x)*x^(1/(-1+n))/(a*(-1+n)))^n*(a*x^(-n/(-1+n)))^(2*n)*(-a*b*n*x^(-2*n/(-1+n)+1/(-1+n))/(-1+n))^(-n)*b^(n+1)-b*y(x)^n

coulditbe(residual=0) assuming real;

FAIL

#now solving as homog. (which gives simpler looking solution

maple_sol:=dsolve(ode,y(x),[homogeneous]);

Int(x^(n/(-1+n))/((b*x*(-1+n)*_a^n+_a)*x^(n/(-1+n))+a*x*(-1+n)), _a = _b .. y(x))-c__1 = 0

residual:=odetest(maple_sol,ode); #how to show this is zero?

-b*y(x)^n*n/(-1+n)-x^(-1-1/(-1+n))*a*n/(-1+n)+b*y(x)^n/(-1+n)+x^(-1-1/(-1+n))*a/(-1+n)-y(x)/(x*(-1+n))

coulditbe(residual=0) assuming real;

FAIL

 


 

Download challenge_odetest_sept_1_2024.mw

 

how to evaluate summation upto infinity in maple including exponential function too if it is possible or we can evaluate it upto finite number of terms?. kindly explain with example

Ive been wondering what i can use this for and where maybe it has been overlooked ,if any one has any ideas im really interested, that pi^ cubed

360°/rad/pi^2

 

I

What is the correct syntax in Maple to do integration of variables on 

So that the new integration variable is using the mapping    u=y*x^(1/3) so that the result is 

The problems seems is that there is no option to tell Maple what the new integration variable is. So it does not know it should be y or x?

I looked at help and all my tries failed. Below is worksheet and also examples from another software as reference. The other software has argument to tell change of variable what is the new integration variable should be. But in Maple, there is no such option.,  Does this mean in Maple change of integration variables only works when the right hand side of the transformation has only one symbol and not two or more? i.e. this works   u=y, but not u=y*x

restart;

interface(version);

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

T:=Student:-MultivariateCalculus;
e:=Int(1/(3*u^4 + u + 3),u);
T:-ChangeOfVariables(e,[u=y*x^(1/3)]);
T:-ChangeOfVariables(e,[y=u*x^(-1/3)]);

Student:-MultivariateCalculus

Int(1/(3*u^4+u+3), u)

Error, (in Student:-MultivariateCalculus:-ChangeOfVariables) unable to complete the change-of-variables operation

Error, (in Student:-MultivariateCalculus:-ChangeOfVariables) unable to complete the change-of-variables operation

Student[Calculus1][IntTutor](); #did not help either

 

 

Download change_of_variables_integration_august_31_2024.mw

I searched help and see nothing specific to change of variable for integration, so I assumed the above is the command to use. Am I using the wrong command for integration change of variables in Maple?

For reference, I need to duplicate this in Maple:

First 77 78 79 80 81 82 83 Last Page 79 of 2217