Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Is there a way to re-index an existing dataframe? See attachment for example.

how_do_i_re-index_a_dataframe.mw

So I have this Maple document that I worked on yesterday, and now when I open it it just opens as the start-up screen where I can choose between document and worksheet mode. I can see that the file is much larger (900 kb) than an empty document, so it should definitely have the data still in there, but opening it with a text editor I couldn't manage to fix my issue. Does anyone have any tips? I have a back-up of the file (from the restore backup menu), but most of the content is not there, so it would be very helpful to get this one fixed.

Exercises.mw
Thanks in advance, 
Kristian.

The problem arose while playing with inscribed circles, as in this post. If anyone is interested, try to find a circle of maximum radius inscribed between the curves
x1^2 + 2*x2^2 - 1 = 0 and (x1 - sin(x1))^2 + (x2 - sin(x2))^2 - 1 = 0.

Curve graphs.

 

By using the second order ODE and its solution how i can get thus changing Rule?  i am looking for equation (8) by assumption of the paper he did, there is a trick but i don't know

 

idea.mw

I see here 
https://mathematica.stackexchange.com/questions/306634/how-can-i-use-dihedralangle-to-get-correct-result/306638?noredirect=1#comment751373_306638

Let $S.ABCD$ be a pyramid, $ABCD$ is a square with $AB = 1$. The line $SA$ perpendicular to the plane $ABC$. 

Calculate dihedral angle of two halfplanes `SBC` and `SCD` if: $SA = 1$, $SA = \dfrac{\sqrt{2}}{2}$.  I tried
restart;
with(Student:-MultivariateCalculus);
a := 1;
h := 1;
pA := [0, 0, 0];
pB := [a, 0, 0];
pC := [a, a, 0];
pD := [0, a, 0];
pS := [0, 0, h];

I am attempting to obtain an equation for battery discharge.

I have data from a battery that will supply 25 amps for 210 minutes. I want to fit this to an equation and then try to adjust the curve to match a battery that will supply 25 amps for 160 minutes.

Here is what I have:

restart; with(Statistics):

## Amps
A := Vector([444, 218, 74,312/10,209/10,119/10,625/100]):
## Time until battery discharges to 10.5 volts
T := Vector([5,15,60,3*60,5*60,10*60,20*60]):
f := x -> a*exp(1-x/b); f(x)
eqset := {seq(T[idx] - f(A[idx]), idx=1..7)}
sol := NonlinearFit(a*exp(1-x/b),A, T, x)
evalf(subs(x=A[6],sol))
P1 := plot(A,T): P2 := plot(sol,x=0..450): plots[display]({P1,P2})

I want the 'knee' of the fitted curve to more closely match the measured data.

How do I do this?

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. 

First 79 80 81 82 83 84 85 Last Page 81 of 2219