Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Dear all 
I have Sol=proc(  )
local .... ;
RES:=vector with size fixed 
for k from 1 to 100  # iteration
a:=..
if a < 0.1 then 
break;
end if ;
RES[k]:=a;
end do;
print(RES);
 end proc;

My questions:
1) How can I define the vector RES with no size fixed ( we can not at the begin fix the size of RES)
2) Then how can I plot this vector versus number of iteration  
Thank you

Any chance to have "Evaluate->Remove Output From Worksheet" become active and usable when one is still running something in the worksheet?  May be in 2023 version?

This is something that has been missing in Maple for ages.

Maple definitely slows down when the worksheet becomes full of output (from print messages) when a command has been running for long time. Now there is no way to remove the output in the worksheet until the command completes which can take hours. May be this slow down because the scrolling/writing to the worksheet slows down, and this affects how long it takes to complete as the engine is waiting for the frontend to finish writing to the worksheet?. I do not know. I just know Maple slows down when this happens.

I do not understand why Maple can't implement this. Is there a tehnical reson which will make removing current output in the worksheet not possible while a command is running?

We have just released the 2022.2 updates for Maple and MapleSim. These updates are freely available to all customers who have the 2022 version of these products.

Maple 2022.2 includes improvements to worksheet performance, the math engine, and more. As always, we recommend that all Maple 2022 users install this update. It is available through Tools>Check for Updates in Maple, and is also available from our website on the  Maple 2022.2 download page, where you can also find more details.

The MapleSim 2022.2 family of products offers an enhanced user experience through an expansion of the modeling libraries, a range of new productivity features, and several new options requested by users. See the MapleSim 2022.2 update page for details on new features, and for instruction on how to obtain your update.

How to find the dispersion relation (3) in Maple? I try it by equating the coefficients of cos(kx + wt) and its derivative to zero, but couldn't find it.

restart

with(LinearAlgebra):

alias(E = E(x, t), P = P(x, t), N = N(x, t), Q = Q(x, t));

E, P, N, Q

(1)

d := Matrix([[c*(diff(E, t))+diff(E, x), alpha*P, 0, 0], [N[0]*E, diff(P, t), -sigma[2]*Q[0]*N/N[0], sigma[2]*omega[0]*Q], [0, sigma[1]*sigma[2]*Q[0]*P/N[0], diff(N, t), 0], [0, -omega[0]*P, 0, diff(Q, t)]]) = 0

d := (Matrix(4, 4, {(1, 1) = c*(diff(E(x, t), t))+diff(E(x, t), x), (1, 2) = alpha*P(x, t), (1, 3) = 0, (1, 4) = 0, (2, 1) = N(x, t)[0]*E(x, t), (2, 2) = diff(P(x, t), t), (2, 3) = -sigma[2]*Q(x, t)[0]*N(x, t)/N(x, t)[0], (2, 4) = sigma[2]*omega[0]*Q(x, t), (3, 1) = 0, (3, 2) = sigma[1]*sigma[2]*Q(x, t)[0]*P(x, t)/N(x, t)[0], (3, 3) = diff(N(x, t), t), (3, 4) = 0, (4, 1) = 0, (4, 2) = -omega[0]*P(x, t), (4, 3) = 0, (4, 4) = diff(Q(x, t), t)})) = 0

(2)

re := -c*omega^3-kappa*omega^2+(c*omega[0]*(N[0]^2*sigma[2]+Q[0]^2*sigma[1])/N[0]^2-alpha*N[0])*omega+kappa*omega[0]*(N[0]^2*sigma[2]+Q[0]^2*sigma[1])/N[0]^2 = 0;

-c*omega^3-kappa*omega^2+(c*omega[0]*(Q[0]^2*sigma[1]+N[0]^2*sigma[2])/N[0]^2-alpha*N[0])*omega+kappa*omega[0]*(Q[0]^2*sigma[1]+N[0]^2*sigma[2])/N[0]^2 = 0

(3)

``

``

Download d_relation.mw

Hi everyone 

I have a problem regarding the animation of a flying ball. 

I get the coordinates and rotation in rad/s out of differential equations. Now I want to show the movement of the ball including the rotation in an animation. 

With just the coordinates it works just fine, but when I try do add the rotation the error message "number of elements in lust must be a multiple of 2" appears

I would be grateful for some advice. Thank you in advance.

I added my file, hope it helps.

how_rot.mw

Hi

My third-party soft is fussy: it will only accept pasted plaintext, with no spaces in between, for example:

1407,1411,2,1408,1409,0
1407,1408,2,1409,1411,0

#My input is 
ans1 := [1407, 1408, 2, 1409, 1411, 0], [1407, 1409, 2, 1408, 1411, 0], [1407, 1411, 2, 1408, 1409, 0];

#I am "trying" to remove the whitespace and convert it to plain text

with(StringTools):
for i to 3 do
seq(parse(DeleteSpace(convert(ans1[i][j],string))),j=1..6);
next i
od;

#But the whitespace is still there....

lprint(%%%);lprint(%%);lprint(%)
ans1 := [1407, 1408, 2, 1409, 1411, 0], 

  [1407, 1409, 2, 1408, 1411, 0], [1407, 1411, 2, 1408, 1409, 0]


                  1407, 1408, 2, 1409, 1411, 0

                  1407, 1409, 2, 1408, 1411, 0

                  1407, 1411, 2, 1408, 1409, 0

Dear all

My code give me the following error 
Error, (in SOR) invalid left hand side in assignment
I don't understand its origin.

coore_invalid.mw

Thank you

I'm working on finding the analytic expression of the PDF of a sum of abstract Uniform Random Variables URV).
Here "abstract" means that the supports are not numeric but litteral.

Maple is capable to find such a PDF for numeric supports but unable to determine the PDF of U1+U2 where 

U1 := RandomVariable(Uniform(a1, b1)):
U2 := RandomVariable(Uniform(a2, b2)):

A way to deal with abstract URV is to complute explicitely the convolution product of th PDFs.
Ir seems that this fails (MAPLE 2015.2) for these PDF are piecewise functions.
A workaround is to convert them first into Heaviside(s).

One done the explicit expression of the convolution product can be obtained for a sum of 2 abstract URVs, but not for a sum of a larger number of abstract URVs.

Thus the second workaround which consists in using direct and inverse Fourier transform.

The question is :
obviously, the PDF f(t ; a1...aN, b1...bN) of  U1 + ... + UN is a continuous function of t: why does discont(f(t ; ...), t) returns the non empty set of the values where the Heaviside functions are undefined ?

Here is a very simple result

u1 := RandomVariable(Uniform(-1, 1)): 
u2 := RandomVariable(Uniform(-1, 1)):
p := PDF(u1+u2, t):
discont(p, t);

print("-------------------------------------");

f1 := convert(PDF(u1, t), Heaviside):
f2 := convert(PDF(u2, t), Heaviside):
g1 := fourier(f1, t, xi):
g2 := fourier(f2, t, xi):
g  := g1*g2:
f  := invfourier(g, xi, t):
discont(f, t);

                               {}
            "-------------------------------------"
                           {-2, 0, 2}

The problem is (IMO) that discont(f, t) should return { }, but that some function (does it exists) should say that d is undefined at points t=-2, t=0, t=2.
The output of discont(f, t) doesn't seem consistent with the definition of the continuity

limit(f, t=-2, left);
limit(f, t=-2, right);
eval(f, t=-2)
                               0
                               0
                           undefined

restart:

with(inttrans);
with(Statistics):

[addtable, fourier, fouriercos, fouriersin, hankel, hilbert, invfourier, invhilbert, invlaplace, invmellin, laplace, mellin, savetable]

(1)

N := 3:
for n from 1 to N do
  U||n := RandomVariable(Uniform(a__||n, b__||n)):
end do;

_R

 

_R0

 

_R1

(2)

# Maple fails to compute the PDF of a sum of abstract (meaning with symbolic support) uniform RVS
# PDF(U1+U2, t)

# For N <=3 the computation of the convolution product is possible.
#
# For N > 4 (Maple 2015) it seems this is no longer the case. The trick used here is based on
# the fact that Fourier(Conv(f, g)) : Fourier(f)*Fourier(g)
# Thus PDF(U1+U2) = conv(PDF(U1), PDF(U2)) = invFourier(Fourier(PDF(U1)).Fourier(PDF(U1)))


for n from 1 to N do
  f||n := convert(PDF(U||n, t), Heaviside):
end do:

for n from 1 to N do
  g||n := fourier(f||n, t, xi):
end do:
g := mul(g||n, n=1..N):

hyp := seq(b__||n > a__||n, n=1..N);
f   := invfourier(g, xi, t) assuming hyp;

a__1 < b__1, a__2 < b__2, a__3 < b__3

 

((1/2)*(t-a__1-a__2-a__3)^2*Heaviside(-t+a__1+a__2+a__3)-(1/2)*(t-a__1-a__2-b__3)^2*Heaviside(-t+a__1+a__2+b__3)-(1/2)*(t-a__1-a__3-b__2)^2*Heaviside(-t+a__1+a__3+b__2)+(1/2)*(t-a__1-b__2-b__3)^2*Heaviside(-t+a__1+b__2+b__3)-(1/2)*(t-a__2-a__3-b__1)^2*Heaviside(-t+a__2+a__3+b__1)+(1/2)*(t-a__2-b__1-b__3)^2*Heaviside(-t+a__2+b__1+b__3)+(1/2)*(t-b__1-a__3-b__2)^2*Heaviside(-t+b__1+a__3+b__2)-(1/2)*(t-b__1-b__2-b__3)^2*Heaviside(-t+b__1+b__2+b__3))/((-b__1+a__1)*(-b__2+a__2)*(-b__3+a__3))

(3)

# f is obviously a continuous function of t, but I get this strange result

discont(f, t);

{a__1+a__2+a__3, a__1+a__2+b__3, a__1+a__3+b__2, a__1+b__2+b__3, a__2+a__3+b__1, a__2+b__1+b__3, b__1+a__3+b__2, b__1+b__2+b__3}

(4)

# note that this "error" also appears if the a__n's and b__n's are numeric

r := rand(0. .. 1.):
P := convert(indets(g, name) minus{xi}, list):
E := NULL:
for n from 1 to N do
  a := r():
  b := a + r():
  E := E, a__||n = a, b__||n = b
end do:
E := [E];

G := eval(g, E):
f := invfourier(G, xi, t);
discont(f, t);

[a__1 = .3055679837, b__1 = .7906643786, a__2 = .8311025583, b__2 = .9857257095, a__3 = .4223879539, b__3 = .7034757826]

 

0.1333206533e-8*(-0.1000000000e11*t+0.1136670542e11)*Heaviside(-t+1.136670542)+0.1333206533e-8*(0.1000000000e11*t-0.1291293693e11)*Heaviside(-t+1.291293693)+0.1333206533e-8*(0.1000000000e11*t-0.1621766937e11)*Heaviside(-t+1.621766937)+0.1333206533e-8*(-0.1000000000e11*t+0.1776390088e11)*Heaviside(-t+1.776390088)

 

{1.136670542, 1.291293693, 1.621766937, 1.776390088}

(5)

u1 := RandomVariable(Uniform(-1, 1)):
u2 := RandomVariable(Uniform(-1, 1)):
p := PDF(u1+u2, t):
discont(p, t);

print("-------------------------------------");

f1 := convert(PDF(u1, t), Heaviside):
f2 := convert(PDF(u2, t), Heaviside):
g1 := fourier(f1, t, xi):
g2 := fourier(f2, t, xi):
g  := g1*g2:
f  := invfourier(g, xi, t):
discont(f, t);
 

{}

 

"-------------------------------------"

 

{-2, 0, 2}

(6)

limit(f, t=-2, left);
limit(f, t=-2, right);
eval(f, t=-2);

print("-------------------------------------");

limit(f, t=0, left);
limit(f, t=0, right);
eval(f, t=0)

0

 

0

 

undefined

 

"-------------------------------------"

 

1/2

 

1/2

 

undefined

(7)

 

Download Sum_of_Uniform_RVs.mw

Please show me how to enter "positive infinity" value in the dialog box of "Maple Tutors". Thanks!i

Hi.  I am using the linux version of Maple.  I seem to experience more bombs in Maple/Linux vs MathCad/Windows.  The program just froze as I was entering text.  Just text.  It is not a disaster since I make very frequent saves.  But it is very annoying.  I was a heavy user of MathCad from about 2005 to 2019.  In the early days, it bombed a lot.  But I do not recall that it ever bombed when I was entering text.  Any suggestions?  Would there be a limition on the number of text characters?  Is it Linux?  Other than this problem, it is a great program.

I made an error by trying to multiply two nonconformable matrices. I think, I should receive an error message. But in this example this did not occur.

Strange.mw

restart; with(LinearAlgebra); alias(`&bigotimes;` = LinearAlgebra:-KroneckerProduct); interface(rtablesize = 16); kernelopts(version); interface(version)

`&bigotimes;`

[10, 10]

`Maple 2021.2, X86 64 LINUX, Nov 23 2021, Build ID 1576349`

`Standard Worksheet Interface, Maple 2021.2, Linux, November 23 2021 Build ID 1576349`

Matrices nonconformable, Maple should give error message:

`&bigotimes;`(Matrix(1, 4, 1), IdentityMatrix(4)); Dimension(%); M := Matrix(4, 4, shape = symmetric, symbol = m); Dimension(%)

Matrix([[1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1]])

4, 16

M := Matrix(4, 4, {(1, 1) = m[1, 1], (1, 2) = m[1, 2], (1, 3) = m[1, 3], (1, 4) = m[1, 4], (2, 2) = m[2, 2], (2, 3) = m[2, 3], (2, 4) = m[2, 4], (3, 3) = m[3, 3], (3, 4) = m[3, 4], (4, 4) = m[4, 4]}, storage = triangular[upper], shape = [symmetric])

4, 4

MatrixMatrixMultiply(`&bigotimes;`(Matrix(1, 4, 1), IdentityMatrix(4)), DiagonalMatrix(Diagonal(M)))

Matrix([[m[1, 1], 0, 0, 0], [0, m[2, 2], 0, 0], [0, 0, m[3, 3], 0], [0, 0, 0, m[4, 4]]])

`&bigotimes;`(Matrix(1, 4, 1), IdentityMatrix(4)).DiagonalMatrix(Diagonal(M))

Matrix([[m[1, 1], 0, 0, 0], [0, m[2, 2], 0, 0], [0, 0, m[3, 3], 0], [0, 0, 0, m[4, 4]]])

KroneckerProduct(Matrix(1, 4, 1), IdentityMatrix(4)).DiagonalMatrix(Diagonal(M))

Matrix([[m[1, 1], 0, 0, 0], [0, m[2, 2], 0, 0], [0, 0, m[3, 3], 0], [0, 0, 0, m[4, 4]]])

(Matrix(4, 16, {(1, 1) = 1, (1, 2) = 0, (1, 3) = 0, (1, 4) = 0, (1, 5) = 1, (1, 6) = 0, (1, 7) = 0, (1, 8) = 0, (1, 9) = 1, (1, 10) = 0, (1, 11) = 0, (1, 12) = 0, (1, 13) = 1, (1, 14) = 0, (1, 15) = 0, (1, 16) = 0, (2, 1) = 0, (2, 2) = 1, (2, 3) = 0, (2, 4) = 0, (2, 5) = 0, (2, 6) = 1, (2, 7) = 0, (2, 8) = 0, (2, 9) = 0, (2, 10) = 1, (2, 11) = 0, (2, 12) = 0, (2, 13) = 0, (2, 14) = 1, (2, 15) = 0, (2, 16) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = 1, (3, 4) = 0, (3, 5) = 0, (3, 6) = 0, (3, 7) = 1, (3, 8) = 0, (3, 9) = 0, (3, 10) = 0, (3, 11) = 1, (3, 12) = 0, (3, 13) = 0, (3, 14) = 0, (3, 15) = 1, (3, 16) = 0, (4, 1) = 0, (4, 2) = 0, (4, 3) = 0, (4, 4) = 1, (4, 5) = 0, (4, 6) = 0, (4, 7) = 0, (4, 8) = 1, (4, 9) = 0, (4, 10) = 0, (4, 11) = 0, (4, 12) = 1, (4, 13) = 0, (4, 14) = 0, (4, 15) = 0, (4, 16) = 1})).DiagonalMatrix(Diagonal(M))

Matrix([[m[1, 1], 0, 0, 0], [0, m[2, 2], 0, 0], [0, 0, m[3, 3], 0], [0, 0, 0, m[4, 4]]])

`&bigotimes;`(Matrix(1, 4, 1), IdentityMatrix(4)).Matrix(4, 4, shape = diagonal, symbol = m)

Matrix([[m[1, 1], 0, 0, 0], [0, m[2, 2], 0, 0], [0, 0, m[3, 3], 0], [0, 0, 0, m[4, 4]]])

whattype(`&bigotimes;`(Matrix(1, 4, 1), IdentityMatrix(4))); Dimension(`&bigotimes;`(Matrix(1, 4, 1), IdentityMatrix(4)))

Matrix

4, 16

whattype(DiagonalMatrix(Diagonal(M))); Dimension(M)

Matrix

4, 4

hereafter results are correct: Matrices

nonconformable, therefore error messages appear.

`&bigotimes;`(Matrix(1, 4, 1), IdentityMatrix(4)).M

Error, (in LinearAlgebra:-Multiply) first matrix column dimension (16) <> second matrix row dimension (4)

`&bigotimes;`(Matrix(1, 4, 1), IdentityMatrix(4)).Matrix(4, 4, shape = symmetric, symbol = m)

Error, (in LinearAlgebra:-Multiply) first matrix column dimension (16) <> second matrix row dimension (4)

Download Strange.mw

Hi! This is probably simple, but
I would like to know if there's an specific algorithm to do this:

let B = {x[i], i=1..n} in such a way that:

f( B ) = Sum(a[i]*b[i], i=1..N); a_i in R; b_i in B; N>n.

so Linearcomb: f->V(R).

Linearcomb( f ) =

 (Sum(a[j],j in J))*x[1]+(Sum(a[k],k in K))*x[2] + ... +(Sum(a[z],z in Z))*x[n].

with V(R) a vector space; R the Real numbers, and B the base. Neither the "factorize", nor the "simplify" are proving useful to this. Is there something i'm missng?

Please answer the commented questions in the uploaded worksheet.

Binary_search.mw

Hi everyone 

I have a problem with an animation that I dont know how to solve. 

Let's say I have three sets of coordinates. (one static and two moving dependet on time)

1:= [x1;z1]

2:= [x2(t);z2(t)]

3:= [x3(t);z3(t)]

Now I want out of these 3 points two lines that are connected  with each other like this:

line 1:= 1 and 2

line 2:= 2 and 3

These lines should move over time in the 2d space. The only point that doesnt move is point 1. In the animation there should only be the 2 lines visible for each frame. (not a trace or something like this) 

does anyone have an idea how I solve this?

Hi

I'm trying to automate this production of doubles combinations with a set scoreline in between. The minimum is 4 players, but we could have many more players, producing many combinations. 

example: 4 players, set score 2-0 for each match

with(combinat):
DBL:=choose([Novice,Weak_Intermediate,Strong_Intermediate,Advanced], 2);
DBL[1],2,DBL[6],0;DBL[2],2,DBL[5],0;DBL[3],2,DBL[4],0

#and the reverse
DBL[6],2,DBL[1],0;DBL[5],2,DBL[2],0;DBL[4],2,DBL[3],0
 

#the output contains square brackets. How do I remove them?

First 266 267 268 269 270 271 272 Last Page 268 of 2218