Maple 2017 Questions and Posts

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

Hello people in mapleprimes,
I have two files: a batchfile named test.command, and a mpl file,
both in <<my home directory>>.

And, the codes written there are, for the test.command,

/Library/Frameworks/Maple.framework/Versions/2017/bin/maple test.mpl > output.txt

And, for the mpl file,


The test.command was made executable with chmod u+x  test.command, in advance.

From my home directory, I can run the test.command, and obtain output.txt with the result of the calculation of 
the mpl file. The above things have no problem. 

My question is a following.

When I moved the two files, the batch file and the mpl file, to /Users/myname/Desktop/maple_test, 
I cannot get maple to exhaust the appropriate output.txt but an error message, saying it could not read the mpl file.
What should be done to the contents of two files?

I hope you will teach me about this.

Thanks in advance.





I tried to open Maple but it just won't launch it just stays in the loading screen but it doesn't load. I tried everything Uninstalled it and installed it again, uninstalled Java and installed it again, updated all my drivers but it just seems like it doesn't work. Please help if you can.


I have been using Maple for the last three years with almost no complaints. Great product. 
However recently I have acquired a new laptop and upon installing Maple I noticed the GUI appeared different from my past experience. Some "buttons" are now tiny and severely impractical to click:


As you can see the X-icon use to close individual sheets is tiny and so are the "click and drag" squares in the corners of the plot. The problem extends to other objects/buttons not shown in the picture.

The toolbar icons are NOT a problem.

My screen resolution is 3840x2160 and the high resolution must be the problem but when i lower my display resolution nothing changes. 

Any help will be greatly appreciated!


     I'm attempting to solve a rather trivial trigonometric equation, but solve seems to be behaving rather inconsistently. If I attempt this equation

eq := G*cos(x+C1) = A*sin(x):
vars :=  {G, C1, x}:

solve(eq, vars);

it returns the correct, expected result

{C1 = -1/2*Pi, G = A, x = x}, {C1 = 1/2*Pi, G = -A, x = x}, {C1 = C1, G = G, x = arctan(cos(C1)*G/(G*sin(C1)+A))}

However, if I remove x from the list vars of variables for which to solve, I expect it to return the first two elements, {C1 = -1/2*Pi, G = A}, {C1 = 1/2*Pi, G = -A}. However, this isn't what happens. Instead, solve returns {C1 = C1, G = A*sin(x)/cos(x+C1)}; it's true that this is a valid solution, but it seems to be missing the two I want. Is there a way to recover the desired solutions?

And a related question: even without removing x from vars, solve appears to have trouble with the equation. Simply changing sin to cos, as so

eq := G*cos(x+C1) = A*cos(x):
vars :=  {G, C1, x}:

solve(eq, vars);

Now only returns

{C1 = C1, G = G, x = arctan((G*cos(C1)-A)/sin(C1)/G)}, {C1 = C1, G = G, x = arctan((-G*cos(C1)-A)/sin(C1)/G)}

That is, it is missing the expected solutions {C1 = 0, G = A}, {C1 = Pi, G = -A}. Is there a reason for this difference?

Thank you very much!


I would like to do some computations with Maple using elliptic functions. The implementation in Maple wants me to provide the g2 and g3 invariants. However, what I have is the half-periods. Does Maple have a function, that calculates the invariants from the half-periods? I know I can do that myself, but I'd like to write something concise and probably the output of a built-in function will be precisely, what the other functions are looking for.

Thanks in advance

Hello, I have a simple system that I'm attempting to solve:

eq:={r*cos(c) = a, r*sin(c) = 0}:

If I pass this system to solve(eq, {r,c}), it correctly returns the results {c = 0, r = a}, {c = Pi, r = -a}. However, PDEtools:-Solve(eq, {r,c}) does not find a solution. Even adding the option 'solver'='solve' doesn't help.

According to its help page, PDEtools/Solve is a unified command for solving algebraic or differential equations, so I would expect it to easily handle this system. Is there an additional option I should be passing PDEtools/Solve to make it work like solve in this case?



I am trying to plot some movement equations, but the following error keeps happening:

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

when I tryed to rewrite the equation the error became:

Error, (in DEtools/convertsys) invalid specification of initial conditions

Can someone help me with those errors?

Here is the code:


DGsetup([t, x, y, z], M)

g1 := evalDG(N(t)^2*`&t`(dt, dt)-a(t)^2*(`&t`(dx, dx)+`&t`(dy, dy)+`&t`(dz, dz)))

g1inv := InverseMetric(g1)

C1 := Christoffel(g1)

RM1 := CurvatureTensor(C1)

RM1g := CurvatureTensor(g1)

ContractIndices(RM1, [[1, 3]])

ContractIndices(RM1g, [[1, 3]])

RT := RicciTensor(g1, RM1)

ContractIndices(RT, g1inv, [[1, 1], [2, 2]])

S1 := RicciScalar(g1, RM1)

ContractIndices(RT, g1inv, [[1, 1], [2, 2]])

RM1contra := RaiseLowerIndices(g1inv, RM1, [2, 3, 4])

RM1cov := RaiseLowerIndices(g1, RM1, [1])

Kret1 := ContractIndices(RM1contra, RM1cov, [[1, 1], [2, 2], [3, 3], [4, 4]])

eval(simplify(subs(N(t) = 1, Kret1)))

Lag := a(t)^3*N(t)*Kret1

phi = phi(t)

Lam := -(1/2)*a(t)^3*N(t)*((diff(phi, t))^2/N(t)^2+m^2*phi)

Ltot := Lag+Lam

EqELN := EulerLagrange(Ltot, t, N(t))

EqN := eval(simplify(subs(N(t) = 1, EqELN)))

Eqa := subs(N(t) = 1, Ltot)

EqELa := EulerLagrange(EqaD, t, a(t))

tini := 0



tfin = 10

(D(a))(tini) = 0

((D@@2)(a))(tini) = 0

((D@@3)(a))(tini) = 0

phi := a^-3

Dphi := 0

(D(N))(tini) = 0

((D@@2)(N))(tini) = 0

((D@@3)(N))(tini) = 0

sys1 := {EqN, a(tini) = 0.1e-2, (D(a))(tini) = 0.1e-2, ((D@@2)(a))(tini) = 0.1e-2, ((D@@3)(a))(tini) = 1}

tfin = 2

p1 := dsolve(sys1, type = numeric, abserr = 1.*10^(-8), relerr = 1.*10^(-8), range = tini .. tfin)

figN := odeplot(p1, [t, a(t)])

sys2 := {EqELa, a(tini) = 0.1e-6, (D(a))(tini) = 0.1e-4, ((D@@2)(a))(tini) = 0.1e-5, ((D@@3)(a))(tini) = 1, ((D@@4)(a))(tini) = 0.1e-5}

p2 := dsolve(sys2, type = numeric, abserr = 1.*10^(-8), relerr = 1.*10^(-8), range = tini .. tfin)

figa := odeplot(p2, [t, a(t)])


For my differential equations class we have to input the following problem into Maple, I've never used maple before and I was wondering if someone who is experienced with maple could help me out with the code to put into Maple. Thanks I appreciate it!


Using the Maple program, Write the procedure RungeKutta(f, a, b, aplpha, n) which use the improved Euler's method to approximate the solution of the initial-value problem y'=f(t,y), a\leqt\leqb, y(a)= alpha at (n+1) equally spaced numbers in the interval [a,b]

The input parameters are as follow:

f is the name of the function f(t,y);

a and b are the end points of the interval of integration;

alpha is the initial condition.

The output: array w is the approximation of y at the (n+1) values of t.

Hi, I'm currently studying the dynamics of a system of ODEs and I would like to plot a bifurcation diagram using Maple.


The system is:

diff(x(t), t) = -y(t)-z(t)

 diff(y(t), t) = x(t)+a*y(t)

diff(z(t), t) = b+x(t)*z(t)-c*z(t).


Can anyone help me with a procedure to output a bifurcation diagram for the system?

Dear Users,

Recently, I started using Maple2017. In Maple 18, I have used the following commands for import/export and it worked fine.


Digits := 50;

Rhs:= ImportVector("/home/15_degree_3izto1_fixed/Vec.txt", source = delimited);

MatA:=ImportMatrix("/home/15_degree_3izto1_fixed/Mat.txt", source = delimited) ;

Note : Vec.txt contains float with 50 digits, and Mat.txt contains algebraic equation eg. 123456716798271394816*y+173974937*10^(-16)


While maple 18 used to import all the informations with 50 digits of accuracy, Maple2017 only import float[8] ?It only imports first 20 digits and so on..? What has changed in 2017?

Thanks and regards,



Suppose I want to do some manipulations on this inequality:


(1/2)*k*n <= m

(1/2)*k*n <= m


I know I can use the map() function to move terms around, like so:


map(proc (x) options operator, arrow; 2*x end proc, (1/2)*k*n <= m)

k*n <= 2*m


map(proc (x) options operator, arrow; x/n end proc, k*n <= 2*m)

k <= 2*m/n


map(proc (x) options operator, arrow; x/m end proc, k <= 2*m/n)

k/m <= 2/n


But this method fails if I want to multiply both sides of the inequality by a negative number, for example:

map(proc (x) options operator, arrow; -x end proc, k/m <= 2/n)

-k/m <= -2/n``


How do I get Maple to switch the inequality sign to ≥ ?



Say I have an expression like


and I want to evaluate it where the function f(x)=0 (without a priori knowing f(x)). Since cos(0)=1, I expect the answer to be simply diff(f(x),x); in general this won't be identically zero. However, if I try


it replaces f(x) with zero everywhere, including in the derivative (as expected from the documentation) and returns 0.

So, my question: is there a way to evaluate an expression at a known value of a function (f(x)=0) without knowing the function?

It seems using convert/D manages to solve it, but I imagine there's a better way to do this. I've tried using RootOf(f(x)), but can't seem to make that work.

If I try to use unapply on a composition of functions, I seem to get the result in one of two forms:

# Result: f@(x -> g(x))
# Result: x -> 2 f(g(x))

I need the second form (without the @ composition operator): is there any way to instruct Maple to output the first result without the @ sign? Or is there some way to convert the first form to the second form (i.e. x -> f(g(x)))?



I have installed in my UBUNTU 16.04 system matlab 2018a already, I have recently acquired maple 2017.3 (through my university).

Now while trying to install maple in my computer I am at the matlab configuration option, I picked the directory where the matlab installation is situated at, and I get the following error: The directory /home/alon/MATLAB/R2018a/bin/matlab is not writable by the current user

I searched google for this occurrence of error, and found the following suggestion:

the first answer suggests to write in the terminal the following line: sudo chmod 775 /home/alon/MATLAB/R2018a/bin/matlab

which I did but I still get after executing this line in the terminal the above error; what else can I do to fix this problem?



     I'm attempting to use unevaluation quotes on a keyword argument within a procedure. For instance, if I have two procedures with the same keyword arguments, I need to unevaluate one to call the other:

foo1 := proc( {param:={}}, $)
end proc:

foo2 := proc( {param:={}}, $)
end proc:


The above code throws the error,

Error, (in foo1) invalid input: too many and/or wrong type of arguments passed to foo2; first unused argument is 1 = 1

which I take to mean that 'param' in foo1 isn't being unevaluated in the call to foo2. What is the correct way to accomplish this?


First 15 16 17 18 19 20 21 Last Page 17 of 40