Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

DLMF offers different encodings for mathematical expressions. Example:

 

I was wondering if TeX or pMML (never seen before)  can be imported into Maple and subsequently be used as  Maple Input.

When taking notes I sometimes use the palette to insert a matrix into a worksheet. When I do this, the main aspect that is useful to me is being able to visualize matrix expressions as I would write them.

I would like to do the same but for determinants of matrices. Is there a way to get almost the same thing as with the matrix palette, but with vertical bars denoting a determinant rather than the brackets used for matrices?

How do we compute integrals of functions or expressions that have units attached?
For example

v__1 := proc (t) options operator, arrow; 3*Unit('m'/'s') end proc

proc (t) options operator, arrow; 3*Unit('m'/'s') end proc

(1)

v__2 := 4*Unit('m'/'s')

4*Units:-Unit(m/s)

(2)

s__1 := int(v__1(t), t = 0 .. 5)

15*Units:-Unit(m/s)

(3)

s__2 := int(v__2, t = 0 .. 5)

20*Units:-Unit(m/s)

(4)

NULL


The results of the integrals have the wrong units.

Download integration_with_units.mw

I have X=+-1,

and I want to calculate X^n.

 Thank's

Dear members of the forum, please tell me if it is possible to calculate the series presented below by Maple 2022. As far as I understand, first you need to calculate the inner and then the outer sum, but I don’t know how to do this with the help of the program, this series does not converge, as it seems to me, but I can be wrong, if the series diverges, then I need to show it.

Sorry for my ignorance, but maybe I wrong apply such commands for calculation this sums:

Sum(F, a = 1 .. infinity, b = 1 .. infinity) = DefiniteSummation(F, a = 1 .. infinity, b = 1 .. infinity)

I understand, that Sum () not be able to recive more than one args, but I don't understand how to make this calculation...

Any idea? Thanks for advices and help!

Dear All,

I have an executable program which I have generated with Fortran. Is it possible to run such a program from Maple? It sounds a bit weird but that would simplify my computation, since I would not need to use scripts in Linux. Thank you very much.

Cheers.

Let's say we have four equations and four unknowns and we use solve to find a solution.

The return value of solve is a set.

Here is an example

solve({T__1 = m__1*a, a = R*alpha, -R*T__1+R*T__2 = I__s*a/R, g*m__2-T__2 = m__2*a}, {T__1, T__2, a, alpha})

{T__1 = R^2*g*m__2*m__1/(R^2*m__1+R^2*m__2+I__s), T__2 = m__2*g*(R^2*m__1+I__s)/(R^2*m__1+R^2*m__2+I__s), a = R^2*g*m__2/(R^2*m__1+R^2*m__2+I__s), alpha = R*g*m__2/(R^2*m__1+R^2*m__2+I__s)}

(1)

NULL


If we want to make the four expressions above procedures, the manual way is to basically copy the right-hand side of each expression and then write

T__1 := (R,m__1, m__2, g, I__s) -> ...

T__2 := (R,m__1, m__2, g, I__s) -> ...

a := (R,m__1, m__2, g, I__s) -> ...

alpha := (R,m__1, m__2, g, I__s) -> ...

Is there a way to do this automatically from the return value of solve?

If the return value were a list, I would use something like

T__1 := unapply(result[1], R, m__1, m__2, g, I__s)

T__2 := unapply(result[2], R, m__1, m__2, g, I__s)

a := unapply(result[3], R, m__1, m__2, g, I__s)

alpha := unapply(result[4], R, m__1, m__2, g, I__s)

But the return value is not a list.

So, in summary my quesions are

1) what, in general, is the best way to obtain the desired procedures?

2) is there a way to use the strategy I suggested if the result were a list, but for sets?

Download solveEqs.mw

i need to differentiate this equation 

Potential energy eq:
p := (m1*a1 + m2*(a123 + z(t)))*sin(theta(t))*g + m3*(sin(theta(t))*(a1234 + z(t)) + cos(theta(t))*a5)*g;


  p := (m1 a1 + m2 (a123 + z(t))) sin(theta(t)) g    + m3 (sin(theta(t)) (a1234 + z(t)) + cos(theta(t)) a5) g

i have tried these 2 methods

diff(p, theta)

diff(p, theta(t))

but both of them comes out 0 

where they should give 

diff((m1*a1 + m2*(a123 + z))*sin(theta)*g + m3*(sin(theta)*(a1234 + z) + cos(theta)*a5)*g, theta);


       (m1 a1 + m2 (a123 + z)) cos(theta) g + m3 (cos(theta) (a1234 + z) - sin(theta) a5) g

how is the syntax for partial differentiating a pre defined equation dependent on time.

I would like to know if there is a difference in the definition of the following words to describe a collection of code in Maple.  Specifically, is there a difference between an internal command, an internal procedure and an internal function?  Or are the folks who wrote Help using the three words interchangeably?  

For example, Help describes "restart" as a command.  That seems reasonable.  It also describes "evalf" as a command. 

Sin, cos and tan are described as functions.  That also appears to be reasonable.  "eval" and "convert" are also labeled as functions. 

However, "unassign" is a procedure as is "animate".  I could understand that since one might assume there is nothing returned. And yet one can assign an animation to a variable/name.

Section 1.4 of the Programming Guide discusses Maple Library Commands under the subheading of "procedures".  However, section 3.15 discusses "function types" which with section 3.8 implies these collections of code might be viewed as functions. (And then there is the function operator of a procedure.) 

I'm trying to compartmentalize the Maple language, but maybe I should not. My inclination is to call everything for which one uses a functional call (section 3.8) as a procedure.  Any assistance would be appreciated.

This year, for Christmas, my children* got a Valve Steam Deck under the Christmas tree.  It's a pretty cool device that looks a little  like a monsterous Nintendo Switch, but it can run an impressive subset of the Steam video game catalog, games mostly designed to run on Windows PCs.  It manages this by sporting a custom x86_64 processor by AMD and running a customized version of Arch Linux that uses Wine via Valve's Proton tool.  The key point here, is that it is a tiny x86_64 compatible computer running Linux. So, of course, I needed to install Maple on it. So, I just paired a bluetooth keyboard, rebooted it into desktop mode and with a few small trick, bam, Maple on the Steam Deck:

There were a few small hiccups that required some work. I had absolutely no problems getting the Maple installer onto the device via a USB drive and no problems running it. I only ran into problems durring license activation:

Fortunately, I talked to our crack technical support team and they were able to identify this as a problem with Arch Linux not having full LSB 3.0 support installed by default. The process for fixing that is documented on the Arch Linux Wiki and involves just installing the ld-lsb package via pacman -- with the small additional wrinkle that you need to take the Steam Deck operating system out of 'read-only' mode in order to do that. But once that was done, I had a full version of Maple running well (albeit at 1280x800 resolution on a 7" display).

Since this device is designed for gaming, I was curious how fast it is compared to some other machines I work on. I chose an arbitrary benchmark of exactly solving a random linear system with integer coefficients.

restart;
N := 400;
A := LinearAlgebra:-RandomMatrix(N, N):
b := LinearAlgebra:-RandomVector(N):
v := [seq(cat(v__, i), i = 1 .. N)]:
sys := LinearAlgebra:-GenerateEquations(A, v, b):
CodeTools:-Usage(SolveTools:-LinearSolvers:-Rational(`~`[lhs - rhs](sys), v, dense = false)):

which it solves in decent time:

For comparison, this is 30% faster than the 32 core Xeon e5 workstation I do most of my work on, and only 5% slower than my notebook computer with an 8th gen Intel i7.  Not bad for a toy! (please don't make me sad by telling me how much faster this is on a Mac M1 or M2)

Let me know in the comments if you have other benchmarks you want me to run on the Steam Deck. Also, please let me know if you manage to get your employer to buy you a Steam Deck to do scientific computing.

 

*Okay, maybe it was a gift for me. Shhhh, don't tell.

Dear Maple users

I have encountered a very strange error at one of my students. When using functions from the Expression Palette, she receives an error. It happens every time she is using this Palette. A reinstallation of Maple didn't help solve this issue. When using Command Completion for the very same function (for example cosine or square root), it works properly. 

She did send a Maple file to me in order for me to investigate it. I opened it and reexecuted the entire document. The error messages remained. I tried applying the functions from the Expression Palette myself resulting in the same errors. I even opened a new document and tried it again. Still an error. Then I closed Maple completely and opened it again. Within a new document, I applied a function from the Expression Palette. Now it worked!! I can't seem to understand  the logic behind this behavior. The file sent to me by the student obviously contain some kind of error, but why will this error spread to a new document, which I have opned on my own computer? My own computer does not have any issues with Maple. 

I have attached the Maple file with the errors and a screen shot. I hope someone can explain this strange behavior and tell me how I can help this student make Maple work again. 

Kind regards,

Erik V.

Maple file:

Error.mw

After saving and closing my maple file, it was corrupted when I tried to open it again later. 

I tried searching for a solution without any luck...can someone help me repair it?

Regnede_Eksamenssæt.mw

(When it asks to save it as Regnede_Eksamenssæt_1 only a small part of the document is included)

restart;
with(geometry):
with(plots):
_EnvHorizont:lName = 'x';
_EnvVerticalName = 'y';
Vdot := proc(U, V) local i; add(U[i]*V[i], i = 1 .. 2); end proc;
R := 5;
ang := [3/4*Pi, -(3*Pi)/4, -Pi/6,4*Pi/9];
seq(point(`||`(P, i), [R*cos(ang[i]), R*sin(ang[i])]), i = 1 .. 4);
pts:=[seq(P || i,i=1..4)]:
seq(dsegment(`||`(seg, i), [`||`(P, i), `||`(P, irem(i, 4) + 1)]), i = 1 .. 4);
Triangle(Tr1,[P1,P2,P4]);
EulerCircle(Elc1,Tr1,'centername'=o);
circle(cir, [point(OO, [0, 0]), R]);
dist := proc(M, N) sqrt(Vdot(M - N, M - N)); end proc;
display(draw([P1(color = black, symbol = solidcircle, symbolsize = 12), 
P2(color = black, symbol = solidcircle, symbolsize = 12), 
P3(color = black, symbol = solidcircle, symbolsize = 12), 
P4(color = black, symbol = solidcircle, symbolsize = 12),seg1,
seg2,seg3,seq4,Tr1,Elc1,
cir(color = blue)]), 
textplot([[seq( [ coordinates(`||`(P, i))[], convert(`||`(P, i), string)],i=1..4], 
,align = [above, right]), axes = none);
does not recognize neg4 or tr1? I don't know to manage. Thank you.

When we use Maple input to define a procedure in a worksheet in Document mode, how do we evaluate/execute the command. I am used to just hitting <Enter> when using 2d Math. Today, I've been trying to use Maple input, but when I hit <Enter> nothing happens, or something does happen that messes up the definition such that I get a 

Warning, premature end of input, use <Shift> + <Enter> to avoid this message.

right in the middle of the procedure which then generates a 

Error, global declaration unexpected outside procedure or module
Error, missing operator or `;`

and the only way to even execute and see these errors is by executing the whole worksheet. 

 

Attached is an example: 
 

f := proc(ix,iy)          global T:
        local x := trunc(ix), y := trunc(iy):
        print(x,y," Returning ",T[x][y]):
        return T[x][y]:
end:

g := proc (ix, iy) local x, y; global T; x := trunc(ix); y := trunc(iy); print(x, y, " Returning ", T[x][y]); return T[x][y] end proc

NULL


I can hit enter on the 2d math version, but not on the first 1d math version. On the 1d version, if I go to right after "end:" and hit <Enter> I get an error: Error, reserved word `end` unexpected.

Download 1dmathproc.mw

 

The documentation on plots:-densityplot says

Any additional arguments are interpreted as options which are specified as equations of the form option = value. For example, the option grid = [m, n] where m and n are positive integers specifies that the plot is to be constructed on an m by n grid at equally spaced points in the ranges a..b and c..d respectively. By default a 49 by 49 grid is used; thus 2401 points are generated, and 2401 colored cells are displayed.

Consider the following simple example

g := proc (x, y) print(x, y); return 55 end proc

plots:-densityplot(g, 1 .. 4, 2 .. 8, grid = [5, 5])

 

NULL

NULL


If we look at the output from the print statement inside of we see

Download DensityPlotGridQuestions.mw

That is, there are 16 points in the grid, not 5x5=25.

Is the documentation incorrect or did I miss something?

First 239 240 241 242 243 244 245 Last Page 241 of 2218