Maple 2016 Questions and Posts

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

I am puzzled by the strange behaviour of the following exampleSectionaken directly from the Programming Guide section 8.6. When I copy the example from the help to a worksheet as follows, I get an error stating that module m does not evaluate to a module in the use statement. 

> m := module() export a, b; a := 2; b := 3; end module:
use m in a + b end use;

Error: `m` does not evaluateto a module.

However, after a restart, when I execute the two statements as separate statements (separate prompts), the module does evaluate properly.

My question is, what is the safe workaround in coding to avoid this situation.

I have attached the

In the following codes I am very sure exp(-3*q) is a factor both at numerator and denominator. However, I dont know how to annihilate this factor. Can someone kindly help to ensure it cancels out? Thanks and kind regards.


vars:= seq(a[i],i=0..4):
Cc:=eval(<vars>, solve({p||(1..5)}, {vars})):
for i from 1 to 5 do
end do:
T:y[n+2]=collect(simplify(eval(Cf,x=q+2*h)), [y[n],f[n],f[n+1],f[n+3/2],f[n+2]], recursive);



this is my first post here so sorry if it's done wrong...

I'm having difficulties with the following command because maple only returns a solution if the first two boundary conditions of the "if" arguments are true. If the the first or the second condition is false then maple doesn't give a solution solution.

for i to n do if H[i] < 2.7 then if A[i, f] < 12 then if A[i, o] < 1.2 then Q[i, foo] := evalf(610*(A[i, o]*sqrt(H[i])*h[k]*A[i, T])^(1/2)) else Q[i, foo] := evalf(7.8*A[i, t]+378*A[i, o]*sqrt(H[i])) end if end if end if; print(Q[i, foo]); end do;

I've also tried with the elif command but it gives a similar problem

Anyone knows how to solve this?

I am trying to calculate a symbolic complex sequence given in the below picture: 

I have written the following code; however, it is not efficient at all and it takes a very long time to calculate even the first elements of the sequences. Can anyone please help me fix that or suggest an efficient way of doing such calculation in complex domain? Any help is appreciated. Thanks




for k from 0 to 3 do u(k):=-d(k)/M(k);p(k+1):=M__s*u(k)+d__s;d(k+1):=d(k)+gamma*p(k+1)/(nu+abs(u(k))^2);M(k+1):=M(k)+gamma*p(k+1)*conjugate(u(k))/(nu+abs(u(k))^2);od;


I'm trying to solve a system of nonlinear differential equations. As a minimal working example, Maple is able to solve this just fine:


pde_sys :={diff(A(t1),t1)*cos(B(t1)) = 0, diff(A(t1),t1)*sin(B(t1)) = 0}:
solving_vars := {A(t1), B(t1)}:

dsolve(pde_sys, solving_vars);

This returns [{A(t1) = _C1}, {B(t1) = B(t1)}], as expected.

However, when simply adding an arbitrary dependence on a second variable, no solution is generated


pde_sys :={diff(A(t1,t2),t1)*cos(B(t1,t2)) = 0, diff(A(t1,t2),t1)*sin(B(t1,t2)) = 0}:
solving_vars := {A(t1,t2), B(t1,t2)}:

dsolve(pde_sys, solving_vars);

Of course, this has a solution: [{A(t1,t2) = _F1(t2)}, {B(t1) = B(t1,t2)}].

Using printlevel to debug, it seems the behavior diverges when dsolve attempts to call type/ODEtools/F(x). The univariate case correctly determines that A(t1) is of the type F(x); then, these functions are correctly passed to PDEtools/assign and execution continues nominally.

For the multivariate case, A(t1,t2) is not recognized as type F(x), so no functions are passed to PDEtools/assign and execution is dominated by null sets.

Is there something I'm missing here? Or is there another way to approach this problem?


I'm attempting to solve the complex-valued differential equation


pde := diff(A(t),t) - I * conjugate(A(t))*A(t)^2 = 0:

However, it seems Maple attempts to solve it using separation of variables and gives

t-Intat(-I/conjugate(_a)/_a^2,_a = A(t))+_C1 = 0

Unless I'm mistaken, a complex integral such as this isn't even defined without a contour.

Working the integral out by hand, I know the solution to be


Is there a trick I'm missing to get Maple to find this solution? Or is this outside the scope of what Maple can handle on it's own?


Please I am trying to get a compact result for this code in particular the lines assigne "a" and "b" respectively. I am sure the result shoud not be more than two lines. Can someone be of help? 

e1:=simplify(eval(P, x=q))=y[n]:
var:=seq(a[i], i=0..3):
Cc:=eval(<var>, solve(eval({M}),{var}) ):
for i from 1 to 4 do
end do:
a:=y[n+1]=collect(simplify(eval(Cf, x=q+h)),[y[n], f[n], f[n+1],g[n+1]], recursive):
b:=map(eval@allvalues, [a]);


I'm receiving a very interesting error when attempting to solve a system of differntial equations:

{sqrt(2)*sqrt(F1(t))*diff(F2(t),t) = 0}:
% union {F3(t) = 0}:
pdsolve(%, {F1(t),F2(t),F3(t)});

When attempting to run this code, I get the following error:

Error, (in pdsolve/sys) invalid input: DifferentialAlgebra:-DifferentialRing expects value for keyword parameter blocks to be of type {undefined, Or(list({name, unknown, list({name,unknown})}),name,unknown)}, but received [F3, F2, _F1 = (NULL), F1 = [_F1, F1], _F2] 

Interestingly, removing the second line, or even the sqrt(2), allows the calculation to proceed correctly. It this a bug, or am I doing something wrong?

Thank you very much!

(I'm aware this would technically be a system of ODEs, not PDEs; my actual code includes additional partial derivatives. Additionally, dsolve appears to only generate a trivial solution in this case).

please how can I simplify the results of assigned K cum each of the coefficients further in the following code? the results are too large.

vars:= seq(a[i],i=0..6):
Cc:=eval(<vars>, solve({p||(1..7)}, {vars})):
for i from 1 to 7 do
end do:

K:= collect(combine(simplify(eval(Cf,x=q+2*h),size),trig),{y[n+1],f[n],f[n+1],f[n+2],g[n],g[n+1],g[n+2]},factor):



For my own use, I am attempting to port Joe Riel’s glyph package for geometric algebra into a module more compatible with recent versions of Maple. To this end, I have been testing individual procedures extracted from the package into Maple 2016, both to understand the algorithms and to check for glitches caused by the code running in more current Maple 2016. The procedure for carrying out the exterior multiplication of blades does not seem to work reliably, and I haven’t the necessary knowledge of Maple language to determine whether this is due to an error on my part or a feature of Maple V that no longer works.  I have attached a worksheet,,  that includes the procedures necessary for the multiplication routine to work, but I can’t get any consistency in the results.  Can anyone advise me what is the problem?  

As I understand the routine, setup defines a anti-symmetric root blade table with an indexing function that precludes assignment to the table. Clifford blades are then represented as indexed variables using the root table. The process is as follows see worksheet for actual code):

initialize := proc ()
 global _e, tableroot;
tableroot := table(antisymmetric, blade);
tableroot[] := 1;
_e := tableroot;
end proc:
#The index function `blade` is as follows:

`index/blade` := proc (Indices, tableau)
 if nargs = 2 then if Indices = [] then 1
          else tableau[op(checkindices(Indices))] end if
elif Indices = [] then tableau[Indices[]] := 1
 else ERROR("cannot assign to a blade", Indices) end if
end proc;

#Exterior multiplication is performed by the following routine.
b_exteriorp := proc (u, v)
option remember;
 if  u = 1 or v = 1 then u*v
else _e[op(u), op(v)] end if
end proc:

As near as I understand, the procedure joins the lists representing the two input blade into a single list that is processed by the antisymmetric indexing function and outputs the indexes as the product blade. I don’t understand how the case of duplicate indexes (which should return 0) is supposed to be handled by the procedure.  What the procedure usually returns is simply the appended list of the two blades without modification by the indexing function.

Can anyone give me a hint about how to fix this procedure?

The question is sort of convoluted, but I hope somebody can help.

I have a data set I pulled from an Excel Sheet of the temperature for every day for a year.

Currently, it's in an Array 365x2, where the first column is what day of the year it is and the second column is the temperature. I want to create a plot that on the x-axis shows the day, but on the y-axis shows the amount of a certain chemical in the trees. I have a function of temperature vs chemicals, but I want my graph to show the day of the year vs amount of chemical. How would I go about making such a plot? I don't know how to connect all three. 



hello guys,
in the bellow, screen shot that I have sent to you.
how can I solve this three equations and obtain a1 a2 a3??? in fact non zero answers.
also is this possible to learn me how to write my codes that I have written in maple in the form that others send to you for their questions??? I dont know how to do that...and send screen shot!!
thank you


I am confused by the Syntax of maple. When does maple numerically evaluates an expression? I know that maple cannot distinguish the variable "e" from the exponential function "e". So I have to use the command palette or enter the 1-D sequence "exp(1)". Maple shows the symbols if not told otherwise. I can numerically evaluate the expression using "evalf(exp(1))". 

But if I enter "I^2" for example maple behaves in a different way. It does not show "I^2" but it evaluates the expression. Same with "2+2". Maple shows me the result "4". So when does Maple numerically evaluate an expression and when does not?

Second question: When I enter "evalf(exp((I*2)*Pi))" I get "1.". What is the meaning of the point? Using "evalc(exp((I*2)*Pi))" I do not get the point - just "1".

Thank you in advance!



Please download and check the attached file.
It seems when you run the code more than one time, various results are obtained each time.

What is the reason? How it can be fixed?



restart; Digits := 20; tm := time(); with(LinearAlgebra); m := 6; a := .1; b := 10*a; E := 1; h := 1; nu := .3; ur := -w*z+u0; u0 := 0; ut := add(add(T[n, i]*r^n*t^(i-n), n = 0 .. i), i = 0 .. m); w := (r-b)^2*(r-a)^2*add(add(W[n, i]*r^n*t^(i-n), n = 0 .. i), i = 0 .. m); er := diff(ur, r); et := ur/r+(diff(ut, t))/r; ert := 1/2*(diff(ut, r)-ut/r+(diff(ur, t))/r); u := -(1/2)*E*(2*er*et*nu+er^2+et^2)/(nu^2-1)+2*E*ert^2/(2+2*nu); N := sum(i+1, i = 0 .. m); PI := int(int(int(u*r, z = -(1/2)*h .. (1/2)*h), t = 0 .. 2*Pi), r = a .. b)-.5*P*(int(int(r*(diff(w, r))^2, r = a .. b), t = 0 .. 2*Pi)); s1 := seq(indets(add(add(T[n, i], n = 0 .. i), i = 0 .. m))[k] = c[k], k = 1 .. N); s2 := seq(indets(add(add(W[n, i], n = 0 .. i), i = 0 .. m))[k] = c[k+N], k = 1 .. N); PI := subs(s1, s2, PI); for k to 2*N do diff(PI, c[k]); if % = 0 then ex := `union`({}, {k}) else eq[k] := % end if end do; NE := seq(ex[j], j = 1 .. numelems(ex)); M := GenerateMatrix([`$`(eq[j], j = 1 .. 2*N)], [`$`(c[j], j = 1 .. 2*N)])[1]; M := DeleteColumn(DeleteRow(M, NE), NE); Determinant(M); 12*fsolve(%, P = 0 .. 1)*(-nu^2+1)*a^2/(E*h^3); Time = time()-tm

Time = 85.363





hello guys, I can't take the real part of this formula that you can see in the picture that I upload for you.
please help me!!!!!!!!
sorry for uploading surry

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