Maple 2017 Questions and Posts

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

Hello Everyone,

I am currently trying to tidy up my worksheet and hide all of the script/code that I wrote in the Maple 2D-Math within the execution script of buttons etc.
Was going well so far until I started transferring code where I was using a lot of symbolic math (if I understood correctly)
There is one instance where I have a variable chi which equals x divided by a.
a being a number, e.g. 5000, while x is and remains a variable.
No problem in 2D-Math as the unknown x is dragged through all following equations.

Not so in the code editor, I think. Doing the calculation results not in x/5000, but in this:

It keeps getting worse because this term will be derived, assembled into a matrix, etc. where the expressions are getting ridiculous:

Without getting into the details of what my script should do, I believe this is a very general issue, not specific to my code.

Is the code editor / "Code when Used/Clicked" not capable of symbolic math? Oder is there some setting that could potentially help me?

Best Regards,

Hello Everyone,

Me Again... So I have been working do create a procedure, but I started the coding without encasing it in the proc() / end proc; brackets, thinking I could add it later.
What the script does is take parameters and create a matrix and determines the determinant of that matrix.
When I let the script run on its own, it is working perfectly, but when I activate the proc() / end proc; brackets it suddenly gives me a number of errors, telling me the matrix is not square or that the if-loop misses its 2nd argument.

I am kind of suspecting this happens because I take the variable "NumberPlies" from a Table that exists outside the proc(), but on the same work sheet, but I am not 100% sure.
I have uploaded the code, so one of you experts could perhaps have a look and tell me where I am wrong. Why is the script behaving differently on its own compared to when I call it as a procedure?

Any help would be fantastic!

Best Regards,


Anzahl Lagen des Laminates (Ohne Mittellage, eine Seite der Symmetrie):





restart; interface(warnlevel = 0); with(DocumentTools); with(LinearAlgebra); with(DocumentTools); with(LinearAlgebra); E1 := 125000; E2 := 10000; v12 := .3; G12 := 5000; t := .25; v21 := E2*v12/E1; Q11 := E1/(-v12*v21+1); Q22 := E2/(-v12*v21+1); Q12 := v21*E1/(-v12*v21+1); Q66 := G12; NumberPlies := GetProperty('ComboBox1', 'selectedindex'); A11 := 0; A12 := 0; A16 := 0; A21 := 0; A22 := 0; A26 := 0; A61 := 0; A62 := 0; A66 := 0; B11 := 0; B12 := 0; B16 := 0; B21 := 0; B22 := 0; B26 := 0; B61 := 0; B62 := 0; B66 := 0; D11 := 0; D12 := 0; D16 := 0; D21 := 0; D22 := 0; D26 := 0; D61 := 0; D62 := 0; D66 := 0; for i to NumberPlies do CurrentAngle := PlyTable1[i, 1]; CurrentHeight := t*i; CurrentHeight := CurrentHeight-.5*t*NumberPlies; CurrentAngleRad := (1/180)*Pi*CurrentAngle; CurrentQMatrix := Matrix(3, 3, {(1, 1) = Q11, (1, 2) = Q12, (1, 3) = 0, (2, 1) = Q12, (2, 2) = Q22, (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = Q66}); TurnMatrix := Matrix(3, 3, {(1, 1) = cos(CurrentAngleRad)^2, (1, 2) = sin(CurrentAngleRad)^2, (1, 3) = -2*cos(CurrentAngleRad)*sin(CurrentAngleRad), (2, 1) = sin(CurrentAngleRad)^2, (2, 2) = cos(CurrentAngleRad)^2, (2, 3) = 2*cos(CurrentAngleRad)*sin(CurrentAngleRad), (3, 1) = -2*cos(CurrentAngleRad)*sin(CurrentAngleRad), (3, 2) = 2*cos(CurrentAngleRad)*sin(CurrentAngleRad), (3, 3) = cos(CurrentAngleRad)^2-sin(CurrentAngleRad)^2}); CurrentQMatrixTurned := Multiply(TurnMatrix, Multiply(CurrentQMatrix, Transpose(TurnMatrix))); Q_11 := CurrentQMatrixTurned[1, 1]; Q_12 := CurrentQMatrixTurned[1, 2]; Q_16 := CurrentQMatrixTurned[1, 3]; Q_21 := CurrentQMatrixTurned[2, 1]; Q_22 := CurrentQMatrixTurned[2, 2]; Q_26 := CurrentQMatrixTurned[2, 3]; Q_61 := CurrentQMatrixTurned[3, 1]; Q_62 := CurrentQMatrixTurned[3, 2]; Q_66 := CurrentQMatrixTurned[3, 3]; A11 := A11+Q_11*(CurrentHeight-CurrentHeight+t); A12 := A12+Q_12*(CurrentHeight-CurrentHeight+t); A16 := A16+Q_16*(CurrentHeight-CurrentHeight+t); A21 := A21+Q_21*(CurrentHeight-CurrentHeight+t); A22 := A22+Q_22*(CurrentHeight-CurrentHeight+t); A26 := A26+Q_26*(CurrentHeight-CurrentHeight+t); A61 := A61+Q_61*(CurrentHeight-CurrentHeight+t); A62 := A62+Q_62*(CurrentHeight-CurrentHeight+t); A66 := A66+Q_66*(CurrentHeight-CurrentHeight+t); B11 := B11+.5*Q_11*(CurrentHeight^2-(CurrentHeight-t)^2); B12 := B12+.5*Q_12*(CurrentHeight^2-(CurrentHeight-t)^2); B16 := B16+.5*Q_16*(CurrentHeight^2-(CurrentHeight-t)^2); B21 := B21+.5*Q_21*(CurrentHeight^2-(CurrentHeight-t)^2); B22 := B22+.5*Q_22*(CurrentHeight^2-(CurrentHeight-t)^2); B26 := B26+.5*Q_26*(CurrentHeight^2-(CurrentHeight-t)^2); B61 := B61+.5*Q_61*(CurrentHeight^2-(CurrentHeight-t)^2); B62 := B62+.5*Q_62*(CurrentHeight^2-(CurrentHeight-t)^2); B66 := B66+.5*Q_66*(CurrentHeight^2-(CurrentHeight-t)^2); D11 := D11+(1/3)*Q_11*(CurrentHeight^3-(CurrentHeight-t)^3); D12 := D12+(1/3)*Q_12*(CurrentHeight^3-(CurrentHeight-t)^3); D16 := D16+(1/3)*Q_16*(CurrentHeight^3-(CurrentHeight-t)^3); D21 := D21+(1/3)*Q_21*(CurrentHeight^3-(CurrentHeight-t)^3); D22 := D22+(1/3)*Q_22*(CurrentHeight^3-(CurrentHeight-t)^3); D26 := D26+(1/3)*Q_26*(CurrentHeight^3-(CurrentHeight-t)^3); D61 := D61+(1/3)*Q_61*(CurrentHeight^3-(CurrentHeight-t)^3); D62 := D62+(1/3)*Q_62*(CurrentHeight^3-(CurrentHeight-t)^3); D66 := D66+(1/3)*Q_66*(CurrentHeight^3-(CurrentHeight-t)^3) end do; A = (Matrix(3, 3, {(1, 1) = A11, (1, 2) = A12, (1, 3) = A16, (2, 1) = A21, (2, 2) = A22, (2, 3) = A26, (3, 1) = A61, (3, 2) = A62, (3, 3) = A66})); B = (Matrix(3, 3, {(1, 1) = B11, (1, 2) = B12, (1, 3) = B16, (2, 1) = B21, (2, 2) = B22, (2, 3) = B26, (3, 1) = B61, (3, 2) = B62, (3, 3) = B66})); D = (Matrix(3, 3, {(1, 1) = D11, (1, 2) = D12, (1, 3) = D16, (2, 1) = D21, (2, 2) = D22, (2, 3) = D26, (3, 1) = D61, (3, 2) = D62, (3, 3) = D66})); Nx := 200; Ny := 0; Nxy := 0; a := 500; b := 500; m := 1; chi := x/a; eta := y/b; alpha := a/b; alphaD := a*(D22/D11)^(1/4)/b; betaM := m*Pi/alphaD; betaD := (D12+2*D66)/sqrt(D11*D22); etaD := D12/sqrt(D11*D22); nyD := etaD/betaD; kx := Nx*b^2/(Pi^2*sqrt(D11*D22)); ky := Ny*b^2/(Pi^2*D22); kxy := Nxy*b^2/(Pi^2*(D11*D22^3)^(1/4)); Omega := betaD^2-1+kx*(alphaD/m)^2; if kx > (m/alphaD)^2 then lambda1 := m*Pi*sqrt(betaD+sqrt(Omega))/alphaD; lambda3 := m*Pi*sqrt(sqrt(Omega)-betaD)/alphaD; GenFunc := W1*cosh(lambda1*eta)+W2*sinh(lambda1*eta)+W3*cos(lambda3*eta)+W4*sin(lambda3*eta); Status := 1 elif kx < (m/alphaD)^2*(-betaD^2+1) then omegaklein := sqrt(.5*(sqrt(betaD^2-Omega)+betaD)); phi := sqrt(.5*(sqrt(betaD^2-Omega)-betaD)); GenFunc := W1*cosh(omegaklein*eta)*cos(phi*eta)+W2*sinh(omegaklein*eta)*cos(phi*eta)+W3*cosh(omegaklein*eta)*sin(phi*eta)+W4*sinh(omegaklein*eta)*sin(phi*eta); Status := 5 elif (m/alphaD)^2 > kx then if kx > (m/alphaD)^2*(-betaD^2+1) then lambda1 := m*Pi*sqrt(betaD+sqrt(Omega))/alphaD; lambda3 := m*Pi*sqrt(sqrt(Omega)-betaD)/alphaD; GenFunc := W1*cosh(lambda1*eta)+W2*sinh(lambda1*eta)+W3*cosh(lambda3*eta)+W4*sinh(lambda3*eta); Status := 3 end if end if; y := 0; EQ1 := GenFunc = 0; unassign('y'); GenFunc; EQHelp := diff(GenFunc, `$`(y, 1)); y := 0; EQ2 := EQHelp = 0; unassign('y')*GenFunc; y := b; EQ3 := GenFunc = 0; unassign('y'); GenFunc; EQHelp2 := diff(GenFunc, `$`(y, 1)); y := b; EQ4 := EQHelp2 = 0; unassign('y'); Test := GenerateMatrix({EQ1, EQ2, EQ3, EQ4}, {W1, W2, W3, W4}); Determinant(Test[1]); return Determinant(Test[1])







Error, (in LinearAlgebra:-Determinant) matrix must be square





Hello Everyone,

Firstly thank you for your help everyone with answering my other question yesterday, it really helped.
Today I present with yet another issue, which is dealing with solving differential equations using the dsolve-command.

I have written a script which is defining the differential equations, (some numbers), and the constraints. However when I let it solve using dsolve, I only get a very very trivial answer, meaning f(x) = 0.
of course this is a valid answer, but not one I can work with... 
(Can I maybe give an additional information, e.g. the function type it is supposed to do this task? In the documentation there is information on setting it up as a series, but what about exponential equations?)

I have uploaded to script (very short), maybe someone knows where I went wrong?
Also, I am assuming that for solving a DE which involves a fourth order derivative I need exactly four boundary conditions, which I provided.
Things are also getting really wonky when I set Nxy to something non-zero... Then I get a solutions which involves a mysterious Z which never happened before and again all four C_x, which I assume resemble missing boundary conditions, reappear.

Any help would be fantastic! :)

Best Regards,




restart*with(DocumentTools); with(LinearAlgebra); D11 := 10000; D12 := 10000; D22 := 10000; D66 := 10000; Nx := 1000; Ny := 1000; Nxy := 0; a := 5000; b := 5000; w := sin(y)*GenFunc(x); PDGL := D11*(diff(w, `$`(x, 4)))+(2*(D12+2*D66))*(diff(w, `$`(x, 2), `$`(y, 2)))+D22*(diff(w, `$`(y, 4)))+Nx*(diff(w, `$`(x, 2)))+Ny*(diff(w, `$`(y, 2)))+2*Nxy*(diff(w, `$`(x, 1), `$`(y, 1))) = 0; RB := GenFunc(0) = 0, (D(GenFunc))(0) = 0, GenFunc(a) = 0, (D(GenFunc))(a) = 0; dsolve({PDGL, RB}, GenFunc(x))

GenFunc(x) = 0





Hello Everyone,

I am fairly new with Maple, but I am slowly getting the hang of it.

For a university project I need to be able to create a form where a user can input a matrix manually.
Also, I need to have something like a ComboBox where I can input how many rows that matrix will need. (1-20 or so)

I have solved the latter part by adding a "When Use"-Code that sets my Array/Matrix of the DataTable to be a Zero Matrix with the correct dimensions in accordance with the value chosen in the ComboBox.
(This is for a composite calculation, the ComboBox gives the number of plies, the matrix defines the ply orientation)

I then expected that the ZeroMatrix would serve as the baseline and the user can then manually edit the Matrix to be the correct values manually, but this gives me the error message that the DataTable cannot be edited.
I suspect the ZeroMatrix is now the "Master", because I defined it via Code.

Working with "visibleRows" did not help, because it does not change the matrix size only the size of DataTable and the user can still scroll down.

What I need is that I have a fully editable DataTable with exactly the number of rows that I specified using the ComboBox.

Does anyone of you perhaps have an idea what I could do to achieve this?
Any help would be fantastic! :)

Best Regards,

Hello everyone

I am trying to plot some vectors that have both numeric entries and NA. The vectors represent the root of some function depending on certain parameters (NA means that there is no root for these parameters) and I want to represent the value of the root (vertical) vs the vector that store the variable parameter (horizontal) omitting the values that yield NA. Is there a fast way to do that?


Thank you so much in advance


i have expression like

z:=f0(x) + f1(x)*diff(y(x),x) + f2(x)*diff(y(x),x,x) + f4(x)*diff(y(x),x,x,x,x) ... etc ;

always linear terms diff((y(x),x) etc, never like diff((y(x),x)^2

want vector with coeffs of diff((y(x),x) etc in order low to high so want

<f1(x), f2(x), 0, f4(x) ...>

if z:=f0(x) + f2(x)*diff(y(x),x,x) + f4(x)*diff(y(x),x,x,x,x) ... etc ; want <0, f2(x), 0, f4(x) ...>

first term in vector always for diff((y(x),x)

how to do thanks





Any could you please help me to write program using for loop of 

U(0, h, m)=0 for h=1 .. 10, m=0..10.?

Hello everyone,

I am trying to represent a set of data using the errorplot command as follows

plotlims50 := ErrorPlot(xcoords = vectorl, sigmasl50, yerrors = [0.1e-1, 0.4e-1, 0.1e-1, 0.3e-1, 0.3e-1, 0.6e-1, 0.6e-1, 0.1e-1, 0.4e-1, 0.6e-1, 0.5e-1, 0.3e-1, 0.2e-1, 0.2e-1], color = "green")

I guess it's okey, but I would like to have that kind of small lines at the end of the bar and perpendicular to it (like in the image below). Is it possible?

Thank you so much in advance


I'm working on a procedure involving conic equations such as follows... 


and I have a file filled with values in order of the variables I want them assigned to.

e.g 2,-6,3,0,0

I'm only looking for the specific command I need for maple to link the two.

Any help would be greatly apreciated.

Hello everyone,

I'm trying to generate plots in Maple so that I can export the image and be easily read in a document. I usually use the plots [display] command as I often reuse "subplots". The main problem appears when entering a legend, as it disrupts the proportions and I have to rescale everything manually. In doing so I sometimes get small, hard-to-read images or captions. Is there any way to resize the image and caption other than manually? Even better, is there a way to scale both to a certain image size and to make the caption legible at that size (e.g. image 7 cm wide and font equivalent to 10 pt in Word)?

Thank you so much in advance

Hi, I'm having trouble setting up a procedure for an assignment, we're trying to find root mean square error and remove variable by variable to find the best line of fit etc etc... hopefully from the coding you can see what I'm am trying to do, but I don't understand why it is not working? I wonder if it has something to do with the X and Y being read in?
#the next part is incomplete
local i, sq, n, predicted;
for i from 1 to n do
end do:
return sqrt(sq/n);
end proc;
I then test the procedure with 
and the response i get is

Error, (in rmse_mlr) final value in for loop must be numeric or character

I can't figure out how to write a program to work out the classification of a conic and if it is a degenerate given a data file.

So far I have programed the following which reads the conic coefficients (a,h,b,f,g,c) and displays it as an equation: 

conic :=proc(a,h,b,f,g,c)
local C;
C:= a*x^2+h*x*y+b*y^2+f*x+g*y+c=0;
end proc:

Can anyone help me work this out

Hi I have product of function Q along with its derivative.  

Q'j(x)*Qi(x) for j=0,1 and i=0,...n.

how can i make loop  to collect all coefficeints for this function for j=0,1 and i=0,1,..n.

i hope some one will help me.


Hi Everyone, So i have a pretty ugly function which i am interesting in plotting. When i plot it seems that all values are real however when i do evalf with specific values of variable i am plotting over it shows that it is complex. Any thoughts on how to get it to stop plotting once it becomes complex? See attached maple file.


I am trying to count of the number of primes p such that when p is concatenated with 1 (ie p1, or 10*p+1),  if p1 is composite then we record the result 1, else  2. This gives the minimum k for which the concatenation pk is composite, and k is always either 1 or 2. It would be interesting to compare the number of primes with 1 and those with 2 up to a given max. I have already written a code which calculates the 1 or 2 for each prime but have not managed to adapt it keep count.

I would like to have a code to keep a count  of the 1s and 2s, thus being able to say that up to 10^k we see {a, b} where a is the number of primes with "1" and b is the number with "2".

Ideally I would like to be able to output plots of these data for any k =1,2,3,... up to a pre declared maximum k value, so as to make comparative graphs. I do not know how to organise the counting process, or if it is possible to get Maple to do the plots as well. Can anyone please assist me with this? I have Maple 2017.

Best regards,



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