Maple 2020 Questions and Posts

These are Posts and Questions associated with the product, Maple 2020

The uploaded worksheet begins to uniformly tile the Poincare disk with pentagons using hyperbolic reflection .

Although relatively easy to create the central pentagon and the first adjacent pentagon, it becomes increasingly difficult to determine which lines to reflect to create the remaining pentagons in the first tier adjacent to the central pentagon and more so to create the pentagons of the second tier adjacent to those in the first tier and so on.

Is there a better technique for accomplishing this?

In particular can Mobius tranformations be employed to do this? If so, please replay with or point to a working example of this for me to follow.

 Tile_Poincare_disk.mw

Sorry, I forgot that respondents to this question must establich their own link to the DirectSearch package.

Hello
I have a problem in writing the Maple code of the image below, I don't know why the 3.5 answers are not available?

which one is better?

123.mw

0123.mw

Why aren't all the variables in fin 1 equation?

And the answers are different from the solutions?

 

restart

with(student)

eq1 := 12*gamma^3*rho[3]^2*(diff(w(psi), `$`(psi, 2)))+(-3*gamma*rho[2]^2+4*omega*rho[3]^2)*w(psi)+gamma*rho[3]^2*(rho[1]+2*rho[3])*w(psi)^3

12*gamma^3*rho[3]^2*(diff(diff(w(psi), psi), psi))+(-3*gamma*rho[2]^2+4*omega*rho[3]^2)*w(psi)+gamma*rho[3]^2*(rho[1]+2*rho[3])*w(psi)^3

(1)

NULL

"w(psi):=kappa[0]+sum(kappa[i]*((diff(E,psi))^(i))/((E(psi))^(i)),i=1..1)+sum(h[i]*(((diff(E,psi))^())/((E(psi))^()))^(-i),i=1..1);"

proc (psi) options operator, arrow, function_assign; kappa[0]+sum(kappa[i]*(diff(E, psi))^i/E(psi)^i, i = 1 .. 1)+sum(h[i]*((diff(E, psi))/E(psi))^(-i), i = 1 .. 1) end proc

(2)

"E(psi):=((epsilon[1]*jacobiCN(Zeta[1]*psi))+(epsilon[2]*jacobiSN(Zeta[2]*psi)))/((epsilon[3]*jacobiCN(Zeta[3]*psi))+(epsilon[4]*jacobiSN(Zeta[4]*psi))) ;"

proc (psi) options operator, arrow, function_assign; (varepsilon[1]*jacobiCN(Zeta[1]*psi)+varepsilon[2]*jacobiSN(Zeta[2]*psi))/(varepsilon[3]*jacobiCN(Zeta[3]*psi)+varepsilon[4]*jacobiSN(Zeta[4]*psi)) end proc

(3)

 

NULL

fin1 := simplify(eq1)

kappa[0]*(gamma*rho[3]^2*(rho[1]+2*rho[3])*kappa[0]^2-3*gamma*rho[2]^2+4*omega*rho[3]^2)

(4)

Sol := solve(fin1, {omega, Zeta[1], Zeta[2], Zeta[3], Zeta[4], epsilon[1], epsilon[2], epsilon[3], epsilon[4], h[1], kappa[0], kappa[1]})

{omega = omega, Zeta[1] = Zeta[1], Zeta[2] = Zeta[2], Zeta[3] = Zeta[3], Zeta[4] = Zeta[4], h[1] = h[1], kappa[0] = 0, kappa[1] = kappa[1], varepsilon[1] = varepsilon[1], varepsilon[2] = varepsilon[2], varepsilon[3] = varepsilon[3], varepsilon[4] = varepsilon[4]}, {omega = -(1/4)*gamma*(kappa[0]^2*rho[1]*rho[3]^2+2*kappa[0]^2*rho[3]^3-3*rho[2]^2)/rho[3]^2, Zeta[1] = Zeta[1], Zeta[2] = Zeta[2], Zeta[3] = Zeta[3], Zeta[4] = Zeta[4], h[1] = h[1], kappa[0] = kappa[0], kappa[1] = kappa[1], varepsilon[1] = varepsilon[1], varepsilon[2] = varepsilon[2], varepsilon[3] = varepsilon[3], varepsilon[4] = varepsilon[4]}

(5)

for i to 2 do Case[i] := allvalues(Sol[i]) end do

{omega = omega, Zeta[1] = Zeta[1], Zeta[2] = Zeta[2], Zeta[3] = Zeta[3], Zeta[4] = Zeta[4], h[1] = h[1], kappa[0] = 0, kappa[1] = kappa[1], varepsilon[1] = varepsilon[1], varepsilon[2] = varepsilon[2], varepsilon[3] = varepsilon[3], varepsilon[4] = varepsilon[4]}

 

{omega = -(1/4)*gamma*(kappa[0]^2*rho[1]*rho[3]^2+2*kappa[0]^2*rho[3]^3-3*rho[2]^2)/rho[3]^2, Zeta[1] = Zeta[1], Zeta[2] = Zeta[2], Zeta[3] = Zeta[3], Zeta[4] = Zeta[4], h[1] = h[1], kappa[0] = kappa[0], kappa[1] = kappa[1], varepsilon[1] = varepsilon[1], varepsilon[2] = varepsilon[2], varepsilon[3] = varepsilon[3], varepsilon[4] = varepsilon[4]}

(6)

NULL

NULL

Download 0123.mw

So I have a complex-valued function f that depends on two real variables x and y. I want to plot its range, i.e. the set of all values f(x,y), where x and y vary over their entire domain (which is a compact subset of R^2). Since I did not find of a direct way to do this, I decided to just compute the output f(x,y) at a finite set of points and plot these values in the complex plane. This gives me a rough idea of what the range should look like. However, this process is very slow (even though it should not be that slow, in my opinion). Here is the code I have used:

f := x -> exp(2*I*Pi*x);
S1 := (x, y) -> Matrix(3, 3, [[f(x - y), 0, 0], [0, 1, 0], [0, 0, f(-y)]]);
S2 := (x, y) -> Matrix(3, 3, [[f(y), 0, 0], [0, f(y - x), 0], [0, 0, 1]]);
C := Typesetting[delayDotProduct](1/sqrt(3), Matrix(3, 3, [[1, 1, 1], [1, f(1/3), f(2/3)], [1, f(2/3), f(1/3)]]), true);
with(LinearAlgebra);
d := LinearAlgebra[Determinant](C . C);
V := (x, y) -> (((S1(x, y)/d^(1/3)) . C) . (S2(x, y))) . C;
tracevals := [];

for i from 0 to 100 do
    for j from 0 to 100 do tracevals := [op(tracevals), Trace(V(0.01*i, 0.01*j))]; end do;
end do;
with(plots);
P2 := complexplot(tracevals, x = -2 .. 3, y = -3 .. 3);

Note that the specific example (i.e. plotting the trace of a unitary matrix V(x,y)) is not really important to this question. We could instead think of any complex-valued function f(x,y), it should not have any impact on the problem. Maple generates the following output:

Even though this output shows quite well the range that the function will take, it takes almost two minutes to generate. Is there a quicker or more elegant way to compute the range of a function?

I am working with a family of unitary matrices, that depend on two parameters x and y in a smooth way. Their eigenvalues are thus complex numbers of absolute value 1. My goal is to plot the bands (i.e. the argument of the eigenvalues). I know that there exists a parametrization of the eigenvalues such that the corresponding bands are continuous. In particular, I use the following code:

f := x -> exp(2*I*Pi*x);
S1 := (x, y) -> Matrix(3, 3, [[f(x - y), 0, 0], [0, 1, 0], [0, 0, f(-y)]]);
S2 := (x, y) -> Matrix(3, 3, [[f(y), 0, 0], [0, f(y - x), 0], [0, 0, 1]]);
C := Typesetting[delayDotProduct](1/sqrt(3), Matrix(3, 3, [[1, 1, 1], [1, f(1/3), f(2/3)], [1, f(2/3), f(1/3)]]), true);
d := LinearAlgebra[Determinant](C . C);
V := (x, y) -> (((S1(x, y)/d^(1/3)) . C) . (S2(x, y))) . C;
with(LinearAlgebra);
bands := (x, y) -> -I*ln~(Eigenvalues(V(x, y)));

with(plots);
plot3d({bands(x, y)[1], bands(x, y)[2], bands(x, y)[3]}, x = 0 .. 1, y = 0 .. 1);

However, the output is the following plot:

One can see that the bands can technically be chosen in a way such that they are continuous and we dont have those weird vertical jumps. Is there a way to make Maple choose them like this? Or is there a way to at least surpress these vertical jumps in the plot, so that the plot is a bit more ordered? Ideally I would like a way that works for more examples than the one I gave above (I'd like to do these plots for different matrices C), but any help is appreciated!

 

Edit: Maybe an easier starting point is the following: If I choose the matrix C to be the identity matrix, the bands are of a nicer form:

We can see that Maple parametrizes the bands in a continuous way. The only problem is the vertical jumps that happen when the argument switches from pi to -pi. Is there a way to avoid plotting these jumps, so the plot does not include these vertical lines?

The worksheet below includes a sample use of the Mobius transformation which produces a hyperbolic reflection of a point in the Poincare disk, followed by my attempt to produce the same result from first principles in a procedure.

Do I misunderstand the Mobius transformation and its use and/or is my procedure incorrect? 

InversePoint.mw

Hello

I want to write a program to get unknown coefficients of multiple polynomials. I have a problem with this program. The code sometimes doesn't work. Can anyone help me? It's very important to me.

restart

with(student)

``

EQ[0] := tanh(d)*b[1]*(b[1]+1)

tanh(d)*b[1]*(b[1]+1)

(1)

EQ[1] := -(-1+(a[1]-b[1]-1)*tanh(d)^2+(a[0]+1)*tanh(d))*b[1]

-(-1+(a[1]-b[1]-1)*tanh(d)^2+(a[0]+1)*tanh(d))*b[1]

(2)

EQ[2] := tanh(d)*((a[1]-b[1])*(a[0]+1)*tanh(d)-b[1]^2-a[1])

tanh(d)*((a[1]-b[1])*(a[0]+1)*tanh(d)-b[1]^2-a[1])

(3)

EQ[3] := (-a[1]^2+(2*b[1]-1)*a[1]-b[1]^2-b[1])*tanh(d)^2+(a[1]+b[1])*(a[0]+1)*tanh(d)-a[1]-b[1]

(-a[1]^2+(2*b[1]-1)*a[1]-b[1]^2-b[1])*tanh(d)^2+(a[1]+b[1])*(a[0]+1)*tanh(d)-a[1]-b[1]

(4)

EQ[4] := -tanh(d)*((a[1]-b[1])*(a[0]+1)*tanh(d)+a[1]^2+b[1])

-tanh(d)*((a[1]-b[1])*(a[0]+1)*tanh(d)+a[1]^2+b[1])

(5)

EQ[5] := -a[1]*(-1+(-a[1]+b[1]-1)*tanh(d)^2+(a[0]+1)*tanh(d))

-a[1]*(-1+(-a[1]+b[1]-1)*tanh(d)^2+(a[0]+1)*tanh(d))

(6)

EQ[6] := (a[1]+1)*a[1]*tanh(d)

(a[1]+1)*a[1]*tanh(d)

(7)

Eqs := {seq(EQ[i], i = 0 .. 6)}

Sol := solve(Eqs, {a[0], a[1], b[1]})NULL

{a[0] = a[0], a[1] = 0, b[1] = 0}, {a[0] = (tanh(d)^2-tanh(d)+1)/tanh(d), a[1] = -1, b[1] = -1}, {a[0] = -(tanh(d)-1)/tanh(d), a[1] = -1, b[1] = 0}, {a[0] = -(tanh(d)-1)/tanh(d), a[1] = 0, b[1] = -1}

(8)

for i from 2 to 4 do Case[i] := allvalues(Sol[i]) end do

{a[0] = -(tanh(d)-1)/tanh(d), a[1] = 0, b[1] = -1}

(9)

``

T1.mw

T2.mw

Hi,

`[Length of output exceeds limit of 1000000]`

Hello, I want to get the the homogeneous balance principle for the Differential-Difference Equation with Maple. Can anyone help?

the homogeneous balance principle:The balance is made between sentences with the highest degree of nonlinearity and the highest order of the available derivative. We consider the power of terms like u^p as pM and u(q) as M + q and put them equal (pM=M+q) and get the value of M. Now, if M = 1/n (where m is an integer), then we use the transformation U= W^n, where W is a new function.

example:

hello,

I computed some algebraic calculation, but near point -1 there is some issue like disconvergencies. Can anyone help in this regard? In the final graph, as seen the paths of the curves are close together and convergence does not occur AROUND POINT -1.

restart

Digite := 30

30

(1)

beta := 2.5; lambda := 0.1e-1; b := Pi; a := Pi; alpha := 0; y[1] := 1.5; y[2] := 1.5; x[1] := -1; x[2] := 1; Q[1] := 40; Q[2] := 35; T[1] := 20

2.5

 

0.1e-1

 

Pi

 

Pi

 

0

 

1.5

 

1.5

 

-1

 

1

 

40

 

35

(2)

v := (2*n-1)*Pi/(2*b)

Delta := exp(2*v*a)*(alpha*v+beta)*(1+lambda)-(1-lambda)*(alpha*v-beta)

omega := Pi/(2*b)

P[1] := ((1+lambda)*exp(-v*abs(x-xi))+(1-lambda)*exp(v*(x+xi)))*exp(2*v*a)+(1+lambda)*exp(-v*(x+xi))+(1-lambda)*exp(v*abs(x-xi))

P[2] := ((1+lambda)*exp(-v*abs(x-xi))+(1-lambda)*exp(v*(x+xi)))*exp(2*v*a)-(1+lambda)*exp(-v*(x+xi))-(1-lambda)*exp(v*abs(x-xi))

P[3] := P[1]*(-alpha^2*v-alpha*beta+alpha*v)+beta*P[2]

G[11] := (sum((alpha*P[1]*(1-lambda)*(alpha*v-beta)*exp(-2*v*a)+(1+lambda)*P[3])*(cos(v*(y-eta))-cos(v*(y+eta)))/(v*(exp(2*v*a)*(alpha*v+beta)*(1+lambda)-(1-lambda)*(alpha*v-beta))), n = 1 .. 80))/(2*b*(1+lambda))+(2*(1+lambda)*alpha*b/Pi*.25)*ln((1+2*exp(-omega*abs(x-xi))*cos(omega*(y-eta))+exp(-2*omega*abs(x-xi)))*(1-2*exp(-omega*abs(x-xi))*cos(omega*(y+eta))+exp(-2*omega*abs(x-xi)))*(1+2*exp(-omega*(2*a+x+xi))*cos(omega*(y-eta))+exp(-2*omega*(2*a+x+xi)))*(1-2*exp(-omega*(2*a+x+xi))*cos(omega*(y+eta))+exp(-2*omega*(2*a+x+xi)))/((1-2*exp(-omega*abs(x-xi))*cos(omega*(y-eta))+exp(-2*omega*abs(x-xi)))*(1+2*exp(-omega*abs(x-xi))*cos(omega*(y+eta))+exp(-2*omega*abs(x-xi)))*(1-2*exp(-omega*(2*a+x+xi))*cos(omega*(y-eta))+exp(-2*omega*(2*a+x+xi)))*(1+2*exp(-omega*(2*a+x+xi))*cos(omega*(y+eta))+exp(-2*omega*(2*a+x+xi)))))/(2*b*(1+lambda))+(2*(1-lambda)*alpha*b/Pi*.25)*ln((1+2*exp(omega*(x+xi))*cos(omega*(y-eta))+exp(2*omega*(x+xi)))*(1-2*exp(omega*(x+xi))*cos(omega*(y+eta))+exp(2*omega*(x+xi)))*(1+2*exp(-omega*(2*a-abs(x-xi)))*cos(omega*(y-eta))+exp(-2*omega*(2*a-abs(x-xi))))*(1-2*exp(-omega*(2*a-abs(x-xi)))*cos(omega*(y+eta))+exp(-2*omega*(2*a-abs(x-xi))))/((1-2*exp(omega*(x+xi))*cos(omega*(y-eta))+exp(2*omega*(x+xi)))*(1+2*exp(omega*(x+xi))*cos(omega*(y+eta))+exp(2*omega*(x+xi)))*(1-2*exp(-omega*(2*a-abs(x-xi)))*cos(omega*(y-eta))+exp(-2*omega*(2*a-abs(x-xi))))*(1+2*exp(-omega*(2*a-abs(x-xi)))*cos(omega*(y+eta))+exp(-2*omega*(2*a-abs(x-xi))))))/(2*b*(1+lambda))

g[12] := lambda*((alpha*v+beta)*exp(v*(2*a+x))+(alpha*v-beta)*exp(-v*x))*exp(-v*xi)/(v*Delta)

G[12] := (sum(g[12]*(cos(v*(y-eta))-cos(v*(y+eta))), n = 1 .. 80))/b

phi[1] := int(int(G[11]*Q[1]*Dirac(xi-x[1])*Dirac(eta-y[1]), xi = -a .. 0), eta = 0 .. b)+int(int(G[12]*Q[2]*Dirac(xi-x[2])*Dirac(eta-y[2]), xi = 0 .. infinity), eta = 0 .. b)

Z[1] := diff(phi[1], x)

psi[1] := int(Z[1], y)

plot3d(psi[1], x = -a .. 0, y = 0 .. b)

 

with(plots)

contourplot(psi[1], x = -a .. 0, y = 0 .. b)

 

 

Download sai_1.mw

Hello everyone, 

I am trying to solve 6 equations with 6 unknowns in maple. I tried to simplify them and they are shown below. Unfortunately, after using solve I get:

Warning, solutions may have been lost
                            sol := ()

Can you help me with it, please? I tried to solve it with Matlab and got a warning that no explicit solution could be found and had no luck with mathematica either.  Thank you very much!!

restart;

omega_1 := 1;
beta_1 = 0.2;
omega_2 := 0.15;
beta_2 := 0.15;
mu := 0.4;
g := 9.81;
K := 5;
vb := 0.5;
tc := arccos(vb/(A*omega));

Ns := mu*(omega_2^2 - K)*B*(2*omega*tc - sin(2*omega*tc) - pi)/pi;

Nc := 4*mu*(omega_2^2 - K)*x2*sin(omega*tc)/pi + mu*(omega_2^2 - K)*C*(2*omega*tc + 2*sin(2*omega*tc) - pi)/pi;

a0 := -mu*(omega_2^2 - K)*x2*(1 - 2*omega*tc/pi) + 2*mu*(omega_2^2 - K)*C*sin(omega*tc)/pi;

eq1 := -A*omega^2 + A*omega_1^2 - B*K - Ns;

eq2 := 2*A*beta_1*omega*omega_1 - C*K - Nc;

eq3 := -2*C*beta_2*omega*omega_2 - B*omega^2 + B*omega_2^2 - A*K;

eq4 := 2*B*beta_2*omega*omega_2 - C*omega^2 + C*omega_2^2;

eq5 := omega_1^2*x1 - K*x2 - a0;

eq6 := omega_2^2*x2 - K*x1 - g;

sol := solve({eq1, eq2, eq3, eq4, eq5, eq6}, {A, B, C, omega, x1, x2});

This worksheet contains an unnamed theorem on page 202 of David Wells's book The Penguin Dictionary of Curious and Interesting Geometry.

Somehow I have uploaded both its contents and (a) link(s) to it.

What Maple code can animate and display, in turn, each of the portrayed pursuit paths?

Pursuit_problem.mw

 

Consider a target point T which moves at constant speed along a straight line, and a moving point P which at all times moves directly towards T. If P starts anywhere on the outermost ellipse, and T starts from a focus of the outer ellipse, then P always captures T at the same point, the centre of the ellipse.

 

``

 

The concentric ellipses, whose shape depends on the relative velocities of T and P, are isochrones, and the curves of pursuit are their isoclinal trajectories

 

Download Pursuit_problem

Hi,

I am using Maple 2020 to numerically solve/generate numerical plots for my impulsive control problem.

The optimal control problem is:

T is time from0 to T where T is the terminal time

K(t), B(t) and M(t) are state variables

w(t) is a control variable

a(ti) is the impulsive control variable at time ti,

a(ti) \in [0,1] for i=1,2,…,N

ggamma, ttheta, ddelta1, ddelta 2, c1 and c2 are constants

K(T)=M(T)=0 B(T)>0

K'(t)=ggamma*K(t)*w(t)-ttheta*M(t)

B’(t)=ggamma*K(t)+ttheta*M(t)*B(t)

M’(t)=M(t)-ggamma*w(t)

M(ti)=M(ti-)+a(ti)M(ti)*ddelta1

K(ti)=K(ti-)-a(ti)K(ti)*ddelta2

Objective: maximize B(T)-integral from 0 to T of c1*(w(t))^2dt-sum i=1 to N of c2*a(ti)

Here is the code I enter to MAple:

restart;

# Define the constants
ggamma := 1.0;
ttheta := 2.0;
ddelta1 := 0.1;
ddelta2 := 0.2;
c1 := 0.5;
c2 := 0.3;
T := 5.0; # Terminal time

# Define the impulsive changes in M(t)
impulse_changes := proc (t)
    local ti_values, imp_values, result;
    ti_values := [1.0, 2.0, 3.0]; # Example impulsive time instants
    imp_values := [0.2, 0.1, 0.3]; # Corresponding impulsive control values
    result := 0;
    for i from 1 to nops(ti_values) do
        if t = ti_values[i] then
            result := result + imp_values[i]*M(ti_values[i])*(ddelta1 - ddelta2);
        end if;
    end do;
    return result;
end proc;

# Define the system of differential equations
diffeqs := {diff(K(t), t) = ggamma*K(t)*w(t) - ttheta*M(t),
            diff(B(t), t) = ggamma*K(t) + ttheta*M(t)*B(t),
            diff(M(t), t) = M(t) - ggamma*w(t)};

# Define the impulsive controls
impulse_controls := [1.0, 0.5, 0.8]; # Example impulsive control values

# Define the initial values and conditions
initial_values := [K(0) = 0, B(0) = 0, M(0) = 0];

# Define the final conditions
final_conditions := [K(T) = 0, M(T) = 0, B(T) > 0];

# Define the objective function to be maximized
objective := B(T) - int(c1*w(t)^2, t = 0 .. T) - add(c2*impulse_changes(ti), ti = 1.0 .. 3.0);

# Solve the system of differential equations numerically
sol := dsolve({diffeqs, initial_values, final_conditions}, numeric, output = listprocedure);

# Find the optimal control trajectory w(t) using optimization
w_optimal := optimize(objective, numeric, maximize);

# Evaluate the optimal control and state trajectories
optimal_controls := [seq(w_optimal(t), t = 0.0 .. T, 0.1)];
state_trajectories := [sol[2](t), sol[3](t), sol[4](t)];

optimal_controls, state_trajectories;

I am getting the error:

"Error, (in dsolve/numeric/process_input) system must be entered as a set/list of expressions/equations"

as soon I run after the sol:= function.

I would appreciate any help with fixing my code!

Thank you very much!

Hi,

How can I find the same result reported in the figure for dsolve the differential equation?

nima.mw

 

 

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