MaplePrimes Questions

When I have an operation to perform with Maple, my first reflex is to use the "native" Maple procedure(s) because it seems logical to think that they have been written in order to reduce the memory used and/or the execution time.
Unfortunately, this feeling is not confirmed by reading some of the answers provided on this site.

The attached file shows 4 ways (among probably several others) to center and reduce (by columns) a random matrix.
Amid them is the Statistics:-Scale procedure which appears not to be the most efficient (even a double loop outperforms in term of time).
This is just an example among many others (for instance Statistics:-Select can be easily outperformed)

So my question: why deceive the user with magic functions which sometimes have a very relative efficiency?

Scaling_efficiency.mw

Hello

I have used Maple almost daily for the last four years, but a few days ago two students approached me with an issue I had never encountered before. However, it had happened to both of them within a few weeks.

They described the issue as follows: When they opened a random Maple document and they tried to type in simple operators (like +, - or *), Maple would instead write an odd symbol, which none of them recognised as a mathematical symbol.

As they could not find a way to solve the problem within Maple, they tried restarting their computers. When they afterwards reopened Maple, the problem was gone and the operators worked as expected again. Neither of the students has experienced the issue since.

During the last few days, I have been trying to replicate the issue myself without success. Therefore, I also don't have any screenshots to share, so hopefully my simple explanation is enough.

My questions are: Has anyone heard about this issue before? Does anyone know what might have caused it? Is there a way to replicate it and/or prevent it from happening again in the future?

I hope someone is able to clarify it a bit for me! :)

Regards,

Frederik

How to find the location of the poles of a normal chord in an ellipse ?
Here is my code :

restart; with(geometry); with(plots); `local`(O);
_EnvHorizontalName := x; _EnvVerticalName := y;
corde := a*x/cos(theta)-b*y/sin(theta) = a^2-b^2;
isolate(corde, a/cos(theta));
Error, (in isolate) a*x/cos(theta)-b*y/sin(theta) = a^2-b^2 does not contain a/cos(theta)
eq1 := (a^2-b^2)*X/a^2 = a/cos(theta);
c := solve(eq1, cos(theta));
eq2 := (a^2-b^2)*Y/b^2 = -b/sin(theta);
s := solve(eq2, sin(theta));
lieu := simplify(expand((a^2-b^2)^2*X^2*Y^2*(c^2+s^2 = 1)));
allvalues(eliminate({eq1, eq2}, theta))[1][2];
ell := x^2/a^2+y^2/b^2 = 1;
P := [a*cos(theta), b*sin(theta)];
tgP := x*P[1]/a^2+y*P[2]/b^2 = 1;

sol := solve({corde, ell}, {x, y});
tgP1 := simplify(x*rhs(sol[2][1])/a^2+y*rhs(sol[2][2])/b^2 = 1);

Drawing in a case
a := 5; b := 3; theta := (1/6)*Pi;

line(l1, corde); conic(co, ell);
Pole(P1, l1, co); coordinates(P1);
a := 5; b := 3; theta := (1/6)*Pi;
Ell := implicitplot(ell, x = -a .. a, y = -b .. b, color = red);
Cor := implicitplot(corde, x = -a-1 .. a, y = -b-1 .. b, color = blue);
TgP := implicitplot(tgP, x = 0 .. 10, y = -5 .. 10, color = magenta);
TgP1 := implicitplot(tgP1, x = -5 .. 10, y = -5 .. 10, color = magenta);
lieu := subs(X = x, Y = y, lieu);
subs(x = 125*sqrt(3)*(1/24), y = -27/8, lieu);
Lieu := implicitplot(lieu, x = -a .. a, y = -b .. b, color = green);
dr := draw(P1);
display([Ell, Cor, Lieu, TgP, TgP1, dr], axes = normal, view = [-10 .. 10, -10 .. 10], scaling = constrained);

Why the drawin of the location (lieu) does not appear ? Thank you.

Hello,

For a quite long program, i have to use the Maple debugger. But, i have never used it before.

For a package containing subpackages like this :

Package 

    Subpackage1

         proc 1

         proc 2

     Subpackage 2

It seems that i have a mistake for one of procedure.

Consequently, for using the Maple debugger, i have tried this : 
with(package);
with(subpackage1);
stopat(proc 1) 

But, it does nothing.

May you explain me how i can use the Maple debugger in a package ?

I find in the web this vidéo : https://www.youtube.com/watch?v=cUVbMOTQzRA

It describes how to use the Maple debugger but only on a very short procedure and not in a package.

I thank you in advance for your help and tips

Hi there.

It seems like EllipticCPi(n,k) has a bug when n close to 1:

Both answers should be equal by definition and first is true.

ell_error.mw

I have the following program in Maple:

with(plots);
my_array := [[.1, .1], [.3, .45], [.55, .78], [.8, .9]]; #define an array of points
my_graph := pointplot(my_array, connect = true); #plot the array on a graph, connecting points
line := plot(.7, x = 0 .. 1); #plotting a horizontal line
display(my_graph, line); #displaying on the same graph

The output looks as follows:

 

I want to add a vertical line corresponding to the intersection of these two lines. Is there a way to do it?

Hi,

I have two coupled algebraic equations (not differential equations; but only simple algebraic equations; call them "equ1" and "equ2") in which there are three parameters: "x", "y", and "z".

I want to use "fsolve" (Numerical solve) for solving them and then plotting. But since there are three parameters and two equations hence one of the parameters must be given. I want to give a range for "z", for example [2..9], and step size, for example "0.5", such that maple first puts "2" in both equations and solve them numerically and get the values of "x" and "y" and then record them, and then set the value "2.5" for "z" and again repeat the above cycle until the value "z=9". Finally plot both "x" and "y" in terms of "z".

How do I write this?

Thanks in advance

hello dear fellows maple users,

I need help to find a relation between multiples expressions (A,B..etc) and one term (R). (otherwise, I want to write those expressions in terms of R).

#A is given by

A:=nu^(2/3)*B/(g^(1/3)*(sin(beta))^(1/3)*h):

#and R is defined as:

R:=h^3*g*sin(beta)/(3*nu^2):

I hope I expressed myself clearly.

thank you for any help you can offer.

Is there any way to use DIFF for the function formula in IF..THEN..?

g := proc(x) if x <= 0 then x^2 + x; else if x < 3*Pi then sin(x); else x^2 - 6*x*Pi + 9*Pi^2 - x + 3*Pi; end if; end if; end proc;

diff(g, x);
                              

Like the above example, but the diff result is 0.....

Vector calculus is very nicely handled in Maple's Physics package:

with(Physics[Vectors]):

The gradient of a scalar field in Cartesian coordinates

Gradient(f(x,y,z));

(diff(f(x, y, z), x))*_i+(diff(f(x, y, z), y))*_j+(diff(f(x, y, z), z))*_k

The gradient of a scalar field in cylindrical coordinates

Gradient(f(rho,phi,z));

(diff(f(rho, phi, z), rho))*_rho+(diff(f(rho, phi, z), phi))*_phi/rho+(diff(f(rho, phi, z), z))*_k

But the gradient of a vector field is not available:

Gradient(_rho*f(rho,phi,z) + _phi*g(rho,phi,z) + _k*h(rho,phi,z));

Error, (in Physics:-Vectors:-Nabla) Physics:-Vectors:-Gradient expected a scalar function, but received the vector function: _rho*f(rho, phi, z)+_phi*g(rho, phi, z)+_k*h(rho, phi, z)

I suppose this is because the gradient of a vector field needs to be
expressed in terms a basis consisting of the dyadic products  of the basis vectors

as in _i  _j, _rho_phi, etc., which does not seem to be implemented.

 

That said, it is quite possible that this is already done and I have missed it in
the documentation since the Physics package is so huge.  But if it's truly not there,
it would be a very useful feature to add.  Calculating gradients of vector fields

is central to continuum mechanics (including elasticity and fluid mechanics).

They are easy to represent in Cartesian coordinates but their calculation in the

frequently needed cylindrical and spherical coordinates are nontrivial and can use

Maple's help.

 

Hi,

 

I want my vector field plot to have more arrows, and am wondering how to do this.  Here is the file:

How_to_add_more_arrows.mw

 

Thanks in advance!

 

The changecoords command in the procedure below executes the plots:-changecoords command despite the preceding unwith(plots) command.

How can I execute the non-plot version of the changecoords command in the procedure. It would be very inconvenient of all the various commented plot commands had to be preceded by plots:-

restart; with(plots):   # first command in the worksheet


  # many statements executing various plot commands

 
P := proc()

unwith(plots):

changecoords([x, y, z], [x, y, z], spherical):

with(plots):

end proc:


P();
Error, (in plots/changecoords) changecoords does not accept plot options or other additional arguments
 

  # many more statements executing various plot commands

 

 # last command in the worksheet

Hello everybody

In a course on numerical calculation in seismology (with jupyter notebook but I tried to adapt them in Maple), we use the Lagrangian interpolation:

First, have done the calculation and get the right answer. But I had to do it manually in Maple (see document below for the question and my solution. The question is describe more explicitly. What I want to do is to make Maple do it automatically and taking into account that there is the restriction i<>j. Then when the lagrangian is calculated, it will be easy to calculate u bar.

Thank you in advance for your help.

Mario

Lagrange_interpolation.mw

I got some planar graphs and I 'd like show their planar drawing. But the graph layout displayed by maple may not so balanced.

In the example below, we can see that the area of ​​the triangle 678 is too small, vertices 9, 10, 11 are crowded inside. I need to reduce the vertex size to better show it. Three vertices, say 9,10,11, in following planar drawing are not the right size.

with(GraphTheory):
d:=ConvertGraph("J|tZHkD@gF_"):
DrawPlanar (d, stylesheet=[ ],font=["Courier",10])

 

 

 

 

 

 

Vertexpadding doesn’t seem to help with vertex size reduction.

Ps:The algorithm used is Tutte's spring (or rubber) method. 

 

Maybe there is a better solution.

If we don’t adjust the vertex size, I don’t know if there is any other solution to improve the overall layout. It is best not to appear crowded.

 

I am solving this question :the line joining the ends of 2 rectangular diameters of an ellipse, remains tangent to a fixed circumference. My code is :

restart; with(geometry); with(plots); unprotect(O);
_EnvHorizontalName := x; _EnvVerticalName := y;
ell := x^2/a^2+y^2/b^2 = 1;
a := 5; b := 3; alpha := (1/6)*Pi; p := sqrt(a^2*b^2/(a^2+b^2));
PQ := x*cos(alpha)+y*sin(alpha)-p; drPQ := solve(PQ, y);
OPQ := x^2/a^2+y^2/b^2-((x*cos(alpha)+y*sin(alpha))/p)^2;
sol := solve({OPQ, ell}, {x, y}, explicit); P := [subs(sol[1], x), subs(sol[1], y)]; Q := [subs(sol[3], x), subs(sol[3], y)];
O := [0, 0];
Ell := implicitplot(ell, x = -a .. a, y = -b .. b, color = red);
DrOPQ := implicitplot(OPQ, x = -a .. a, y = -b .. b, color = magenta, numpoints = 5000);
DrPQ := plot(drPQ, x = -6 .. 6, color = green);
line(OP, 2*x-y); line(OQ, -(1/2)*x-y);

Points := pointplot([O[],P[],Q[]], symbol = solidcircle, color = red, symbolsize = 10):

T := textplot([[O[], "O"],[P[],"P"],[Q[],"Q"]], font = [times, 15], align = {below, right}):
cir := x^2+y^2 = p^2;
Cir := implicitplot(cir, x = -a .. a, y = -b .. b, color = black);
display([Ell, Cir, DrPQ, DrOPQ, Points, T], view = [-6 .. 6, -4 .. 6], axes = normal, scaling = constrained);
Fig := proc (k) local alpha, PQ, drPQ, DrPQ, OPQ, DrOPQ, sol, P, Q, Points, T; global a, b, p, ell, Ell, Cir; alpha := k; PQ := x*cos(alpha)+y*sin(alpha)+p; drPQ := solve(PQ, y); OPQ := x^2/a^2+y^2/b^2-(x*cos(alpha)+y*sin(alpha))^2/p^2; sol := solve({ell, OPQ}, {x, y}, explicit); P := [subs(sol[1], x), subs(sol[1], y)]; Q := [subs(sol[3], x), subs(sol[3], y)]; Points := pointplot([P[], Q[]], symbol = solidcircle, color = red, symbolsize = 10);
T := textplot([[P[], "P"], [Q[], "Q"]], font = [times, 15], align = {below, right}); DrPQ := plot(drPQ, x = -6 .. 6, color = green);µ DrOPQ := implicitplot(OPQ, x = -a .. a, y = -b .. b, color = magenta, numpoints = 5000);
display([Ell, Cir, DrPQ, DrOPQ, Points, T], view = [-a .. a, -b .. b], axes = normal, scaling = constrained) end proc;

Fig((1/4)*Pi);
Error, (in Fig) invalid subscript selector
nframes := 100; plots:-display([seq(Fig(2*Pi*i/nframes), i = 0 .. nframes)], insequence, scaling = constrained);
Error, (in Fig) invalid subscript selector
Explore(Fig(n), n = 0 .. 2*Pi);
Thank you for your help.

First 413 414 415 416 417 418 419 Last Page 415 of 2431