MaplePrimes Posts

MaplePrimes Posts are for sharing your experiences, techniques and opinions about Maple, MapleSim and related products, as well as general interests in math and computing.

Latest Post
  • Latest Posts Feed


  • It’s hard to believe, but Maplesoft as a company has reached the quarter-century mark.  Twenty-five years ago this month, the founders launched this company as a vehicle to market, distribute and support a symbolic computation program they had created called Maple.  They had...

    My site of Russian Maple's Center (webmath.exponenta.ru) reached the milestone of 8000000 visits.

    Year of foundation - 2000
    Now - 8,000 visitors a day.
    Since the Maplesoft is not interested in this project, I renamed it.
    Current title: Site of Independent Work of students.
    I wish you all good luck!

    Just wanted to let everyone know that the fix provided for the plotting problem discussed here is now available as a Maple 16.02a update.  This update will be available through Check for Updates and through the Maple 16.02a download page.

     

    eithne

    Mechanics of Materials toolbox for Maple: 10 (or bit more :)) free licences for Maple fans.

    For students, engineers and simply creative fans of Maple.

    If you are concerning mechanics of materials or structural mechanics, please feel free to

    send Hardware ID code via e-mail: support@orlovsoft.com after downloading from

    http://www.orlovsoft.com/download.html

    and installing MM Toolbox for Maple.

    (Maple 32 bit only)

    Thanks to Maplesoft for analytic power

    MapleSim 6.1 is now available.  MapleSim 6.1 provides improved performance, more tools for programmatic analysis and custom components, connectivity enhancements, and more.  Here’s a sampling:

    • For all models, the model pre-processing phase is more efficient, so your simulation results appear sooner.
    • New API commands make it easier to analyze the parameters in your model programmatically. These commands can take advantage of the full...

    Given a figure in the plane bounded by the non-selfintersecting piecewise smooth curve. Each segment in the border defined by the list in the following format (variable names  in expressions can be arbitrary):

    1) If this segment is given by an explicit equation, then  [f(x), x=x1..x2)]

    2) If it is given in polar coordinates, then  [f(phi), phi=phi1..phi2, polar] , phi is polar angle

    3) If the segment is given parametrically, then  [[f(t), g(t)], t=t1..t2]

    4) If several consecutive segments or entire border is a broken line, then it is sufficient to set vertices the broken line [ [x1,y1], [x2,y2], .., [xn,yn]]

     

    The first procedure symbolically finds perimeter of the figure. Global variable  Q  saves the lengths of all segments.

    Perimeter := proc (L) #  L is the list of all segments of the border

    local i, var, var1, var2, e, e1, e2, P;

    global Q;

    for i to nops(L) do if type(L[i], listlist(algebraic)) then P[i] := seq(simplify(sqrt((L[i, j, 1]-L[i, j+1, 1])^2+(L[i, j, 2]-L[i, j+1, 2])^2)), j = 1 .. nops(L[i])-1) else

    var := lhs(L[i, 2]); var1 := min(lhs(rhs(L[i, 2])), rhs(rhs(L[i, 2]))); var2 := max(lhs(rhs(L[i, 2])), rhs(rhs(L[i, 2])));

    if type(L[i, 1], algebraic) then e := L[i, 1]; if nops(L[i]) = 3 then P[i] := simplify(int(sqrt(e^2+(diff(e, var))^2), var = var1 .. var2)) else

    P[i] := simplify(int(sqrt(1+(diff(e, var))^2), var = var1 .. var2)) end if else

    e1 := L[i, 1, 1]; e2 := L[i, 1, 2]; P[i] := abs(simplify(int(sqrt((diff(e1, var))^2+(diff(e2, var))^2), var = var1 .. var2))) end if end if end do;

    Q := [seq(P[i], i = 1 .. nops(L))];

    add(Q[i], i = 1 .. nops(Q));

    end proc:

     

    The second procedure symbolically finds the area of the figure. For correct work of the procedure, all the segments in the list L  of border must pass sequentially in clockwise or counter-clockwise direction.

    Area := proc (L)

    local i, var, e, e1, e2, P;

    for i to nops(L) do

    if type(L[i], listlist(algebraic)) then P[i] := (1/2)*add(L[i, j, 1]*L[i, j+1, 2]-L[i, j, 2]*L[i, j+1, 1], j = 1 .. nops(L[i])-1) else

    var := lhs(L[i, 2]);

    if type(L[i, 1], algebraic) then e := L[i, 1];

    if nops(L[i]) = 3 then P[i] := (1/2)*(int(e^2, L[i, 2])) else

    P[i] := (1/2)*simplify(int(var*(diff(e, var))-e, L[i, 2])) end if else

    e1 := L[i, 1, 1]; e2 := L[i, 1, 2]; P[i] := (1/2)*simplify(int(e1*(diff(e2, var))-e2*(diff(e1, var)), L[i, 2])) end if end if

    end do;

    abs(add(P[i], i = 1 .. nops(L)));

    end proc:

     

    The third procedure shows this figure. To paint the interior of the boundary polyline approximation is used. Required parameters: L - a list of all segments of the border and C - the color of the interior of the figure in the format color = color of the figure. Optional parameters: N - the number of parts for the approximation of each segment (default N = 100) and Boundary is defined by a list for special design of the figure's border (the default border is drawed by a thin black line). The border of the figure can be drawn separately without filling the interior by the global variable Border.

    Picture := proc (L, C, N::posint := 100, Boundary::list := [linestyle = 1])

    local i, var, var1, var2, e, e1, e2, P, Q, h;

    global Border;

    for i to nops(L) do

    if type(L[i], listlist(algebraic)) then P[i] := op(L[i]) else

    var := lhs(L[i, 2]); var1 := lhs(rhs(L[i, 2])); var2 := rhs(rhs(L[i, 2])); h := (var2-var1)/N;

    if type(L[i, 1], algebraic) then e := L[i, 1];

    if nops(L[i]) = 3 then P[i] := seq(subs(var = var1+h*i, [e*cos(var), e*sin(var)]), i = 0 .. N) else

    P[i] := seq([var1+h*i, subs(var = var1+h*i, e)], i = 0 .. N) end if else

    e1 := L[i, 1, 1]; e2 := L[i, 1, 2]; P[i] := seq(subs(var = var1+h*i, [e1, e2]), i = 0 .. N) end if end if

    end do;

    Q := [seq(P[i], i = 1 .. nops(L))];

    Border := plottools[curve]([op(Q), Q[1]], op(Boundary));

    [plottools[polygon](Q, C), Border];

    end proc:

     

    Examples of works:

    Example 1.

    L := [[sqrt(-x), x = -1 .. 0], [2*cos(t), t = -(1/2)*Pi .. (1/4)*Pi, polar], [[1, 1], [1/2, 0], [0, 3/2]], [[-1+cos(t), 3/2+(1/2)*sin(t)], t = 0 .. -(1/2)*Pi]];

    Perimeter(L); Q; evalf(`%%`); evalf(`%%`); Area(L); 

    plots[display](Picture(L, color = grey, [color = "DarkGreen", thickness = 4]), scaling = constrained);

    plots[display](Border, scaling = constrained);

    Example 2.

    The easiest way to use this  procedures for polygons.

     L := [[[3, -1], [-2, 2], [5, 6], [2, 3/2], [3, -1]]];

    Perimeter(L), Q;

    Area(L);

    plots[display](Picture(L, color = pink, [color = red, thickness = 3]));

     

     

    Example 3 (more complicated )

    3 circles on the plane C1, C2 and C3 defined by the parametric equations  of their borders. We want to find the perimeter, area, and paint the figure  C3 minus (C1 union C2) . For details see attached file. 

    C1 := {x = -sqrt(7)+4*cos(t), y = 4*sin(t)};

    C2 := {x = 3*cos(s), y = 3+3*sin(s)};

    C3 := {x = 4+5*cos(u), y = 5*sin(u)};

    L := [[[-sqrt(7)+4*cos(t), 4*sin(t)], t = -arccos((1/4)*(7+4*sqrt(7))/(sqrt(7)+4)) .. -arctan((3*(-23+sqrt(7)*sqrt(55)))/(23*sqrt(7)+9*sqrt(55)))], [[3*cos(s), 3+3*sin(s)], s = -arctan((1/3)*(9+sqrt(7)*sqrt(55))/(-sqrt(7)+sqrt(55))) .. arctan((1/3)*(-9+4*sqrt(91))/(4+sqrt(91)))], [[4+5*cos(u), 5*sin(u)], u = arctan((3*(41+4*sqrt(91)))/(-164+9*sqrt(91)))+Pi .. arctan(3/4)-Pi]];

    Perimeter(L), Q; evalf(%);

    Area(L); evalf(%)

     A := plot([[rhs(C1[1]), rhs(C1[2]), t = 0 .. 2*Pi], [rhs(C2[1]), rhs(C2[2]), s = 0 .. 2*Pi], [rhs(C3[1]), rhs(C3[2]), u = 0 .. 2*Pi]], color = black);

    B := Picture(L, color = green, [color = black, thickness = 4]);

    plots[display](A, B, scaling = constrained);

    More examples and all codes see in attached file

    Plane_figure.mw

    Last week we added a new feature to MaplePrimes that provides the ability to sort the answers to a question by votes (default setting), or by date. Based on a few of your suggestions to that post, we have enhanced this feature today.

    First, you now will notice that there are three options for sorting:

    • Sort by votes
    • Sort by date (oldest first)
    • Sort by date (newest first)

    quandl (http://www.quandl.com/) has a great feature called superset (you need a free acount)
    where the user can combine different data variables (4 000 000 to choice from) into a big
    dataset (csv file) that can be downloaded from a permenant web url. This a great data feed
    for maple. The problem is however that you have to use stringtools (quite messy) in maple to
    extract the data. Hence, it would be great to have a simple procedure that only needs the web

    I can confirm the bug is present in Opera/Firefox/Chrome and unpredictable. I just successfully posted a reply elsewhere but got a failure here. I'll try again and if it fails will post by "branching out", which seems to work every time.

    Consider a signal which is a real sine series, f(x)=2*sin(2*Pi*x) + 5*sin(2*Pi*6*x) + 9*sin(2*Pi*11*x).

    Let F(w) be its Fourier transform. Answer F(w) is purely complex and expressed in terms of symbol Dirac.

    Maple "plot" fails.

    Plots of impulse trains like F(w)=sqrt(Pi)*I*(2*Dirac(w-Pi)+4*Dirac(w-4*Pi)) involve user intervention. Maple won't plot such expressions, because they are DISTRIBUTIONS (not FUNCTIONS).

    Try plotting F(w) to see the engine's uninformative error message....

    As others have noticed, after the update MaplePrimes is broken. I was not able to reply to the answers I got to my recent question about bookmarking. If someone listens: I am using Firefox 19.0 on Mac OS X 10.6.8.

    I don't know how others feel, but if this is not addressed I am not sure how much more I will post here. MaplePrimes has been a vital forum for support for me and I have profited from all your help. If there is no more replying and discussion, this place has...

    Since it is not possible for me to reply directly in that new Maple Primes:
    I branched. Feel free to re-join for a reasonable structure. What a mess.

    http://www.mapleprimes.com/questions/145527-Is-This-Matrix-Primitive

     

    I am rusty on such (may be it is 'obvious' via Lie theory). Your group is just the
    group of invertible matrices over the integers (this follows from algebra). And as

    For the last few releases of Maple, we have been adding features to take advantage of multi-core processors.  Most of this work has focused on particular algorithms or on tools that allow users to author their own parallel code.  Although this was very useful for those users who were able to use those tools, many users did not see a performance improvement.  To help all users we need to integrate parallelism into the core algorithms of Maple.  In Maple 17 we have taken the first step towards general parallelism in the core algorithms by implementing a parallel garbage collector.

    I'm branching-off because I can't currently add a comment to the OP nor a reply to the follow-up messages (mapleprimes update bug so far confirmed with Opera, Firefox, and Chrome on both Windows7x64 and kUbuntu12). Mapleprimes administrators: feel free to move this post to where it belongs.

    I think this is an awesome demonstration of Maple's plotting abilities. The first thing that comes to mind is that this worksheet could be used to promote the new Maple Player. 

    @Carl Love 

    Same here, I've tested Opera and Firefox. I haven't bothered trying other browsers because if it doesn't work with Firefox, the most popular browser, it may be considered broken.

    But I can branch out alright...

    Editing:

    @Carl Love 

    First 99 100 101 102 103 104 105 Last Page 101 of 307