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
  • I would like to pay attention to http://www.scientificcomputing.com/atlas-032408.aspx . It seems to be a powerful tool to research, to teach, and to learn.

    On Monday, August 6 at 1:31 a.m. EDT, NASA will attempt the landing of a new planetary rover, named Curiosity, on the surface of Mars.  The Mars Science Laboratory project is managed by the NASA Jet Propulsion Laboratory (JPL) in Pasadena, California, a world-renowned center for robotic space exploration and advanced science and engineering.  JPL recently began a widespread adoption of Maplesoft technology, and Maplesoft’s products are expected to help JPL save...

    With the addition of ten new Clickable-Calculus examples to the Teaching Concepts with Maple section of the Maplesoft website, we've now posted 63 of the 154 solved problems in my data-base of syntax-free calculations. Once again, these examples and associated videos illustrate point-and-click computations, but more important, they embody the

    Apart from the online description of this new Maple 16 feature here, there is also the help-page for subexpressionmenu.

    I don't know of a complete listing of its current functionality, but the key thing is that it acts in context. By that I mean that the choice of displayed actions depends on the kind of subexpression that one has selected with the mouse cursor.

    Apart from arithmetic operations, rearrangements and some normalizations of equations, and plot previews, one of the more interesting pieces of functionality is the various trigonometric substitutions. Some of the formulaic trig substitutions provide functionality that has otherwise been previously (I think) needed in Maple.

    In Maple 16 it is now much easier to do some trigonometric identity solving, step by step.

    Here is an example executed in a worksheet. (This was produced by merely selecting subexpressions of the output at each step, and waiting briefly for the new Smart Popup menus to appear automatically. I did not right-click and use the traditional context-sensitive menus. I did not have to type in any of the red input lines below: the GUI inserts them as a convenience, for reproduction. This is not a screen-grab movie, however, and doesn't visbily show my mouse cursor selections. See the 2D Math version further below for an alternate look and feel.)

    expr:=sin(3*a)=3*sin(a)-4*sin(a)^3:

    expr;

    sin(3*a) = 3*sin(a)-4*sin(a)^3

    # full angle reduction identity: sin(3*a)=-sin(a)^3+3*cos(a)^2*sin(a)
    -sin(a)^3+3*cos(a)^2*sin(a) = 3*sin(a)-4*sin(a)^3;

    -sin(a)^3+3*cos(a)^2*sin(a) = 3*sin(a)-4*sin(a)^3

    # subtract -sin(a)^3 from both sides
    (-sin(a)^3+3*cos(a)^2*sin(a) = 3*sin(a)-4*sin(a)^3) -~ (-sin(a)^3);

    3*cos(a)^2*sin(a) = 3*sin(a)-3*sin(a)^3

    # divide both sides by 3
    (3*cos(a)^2*sin(a) = 3*sin(a)-3*sin(a)^3) /~ (3);

    cos(a)^2*sin(a) = sin(a)-sin(a)^3

    # divide both sides by sin(a)
    (cos(a)^2*sin(a) = sin(a)-sin(a)^3) /~ (sin(a));

    cos(a)^2 = (sin(a)-sin(a)^3)/sin(a)

    # normal 1/sin(a)*(sin(a)-sin(a)^3)
    cos(a)^2 = normal(1/sin(a)*(sin(a)-sin(a)^3));

    cos(a)^2 = 1-sin(a)^2

    # Pythagoras identity: cos(a)^2=1-sin(a)^2
    1-sin(a)^2 = 1-sin(a)^2;

    1-sin(a)^2 = 1-sin(a)^2

     

    The very first step above could also be done as a pair of simpler sin(x+y) reductions involving sin(2*a+a) and sin(a+a), depending on what one allows onself to use. There's room for improvement to this whole approach, but it looks like progress.

    Download trigident1.mw

    In a Document, rather than using 1D Maple notation in a Worksheet as above, the actions get documented in the more usual way, similar to context-menus, with annotated arrows between lines.

    expr := sin(3*a) = 3*sin(a)-4*sin(a)^3:

    expr

    sin(3*a) = 3*sin(a)-4*sin(a)^3

    (->)

    2*cos(a)*sin(2*a)-sin(a) = 3*sin(a)-4*sin(a)^3

    (->)

    4*cos(a)^2*sin(a)-sin(a) = 3*sin(a)-4*sin(a)^3

    (->)

    4*cos(a)^2*sin(a) = 4*sin(a)-4*sin(a)^3

    (->)

    cos(a)^2*sin(a) = sin(a)-sin(a)^3

    (->)

    cos(a)^2 = (sin(a)-sin(a)^3)/sin(a)

    (->)

    cos(a)^2 = 1-sin(a)^2

    (->)

    1-sin(a)^2 = 1-sin(a)^2

    (->)

    1 = 1

    ``

    Download trigident2.mw

     

    I am not quite sure what is the best way to try and get some of the trig handling in a more programmatic way, ie. by using the "names" of the various transformational formulas. But some experts here may discover such by examination of the code. Ie,

    eval(SubexpressionMenu);
    
    showstat(SubexpressionMenu::TrigHandler);
    

    The above can leads to noticing the following (undocumented) difference, for example,

    > trigsubs(sin(2*a));
                  
                                     1       2 tan(a)
    [-sin(-2 a), 2 sin(a) cos(a), --------, -----------,
                                  csc(2 a)            2
                                            1 + tan(a)
    
        -1/2 I (exp(2 I a) - exp(-2 I a)), 2 sin(a) cos(a), 2 sin(a) cos(a)]
    
    > trigsubs(sin(2*a),annotate=true);
    
    ["odd function" = -sin(-2 a), "double angle" = 2 sin(a) cos(a),
    
                                   1                       2 tan(a)
        "reciprocal function" = --------, "Weierstrass" = -----------,
                                csc(2 a)                            2
                                                          1 + tan(a)
    
        "Euler" = -1/2 I (exp(2 I a) - exp(-2 I a)),
    
        "angle reduction" = 2 sin(a) cos(a),
    
        "full angle reduction" = 2 sin(a) cos(a)]
    

    And that could lead one to try constructions such as,

    > map(rhs,indets(trigsubs(sin(a),annotate=true),
    >                identical("double angle")=anything));
    
                                 {2 sin(a/2) cos(a/2)}
    

    Since the `annotate=true` option for `trigsubs` is not documented in Maple 16 there is more potential here for useful functionality.

    At first I wanted to post this message as a response to a question

    http://www.mapleprimes.com/questions/136153-AnimateDisplay 

    But for some reason the message is not loaded.

    Look at the example of animation of astroid. First you need to create animation frames as separate graphical structure (in my example - it is E[k] ). And only then by  plots [display]

    It appears the wikipedia entry for Maple (software) is deeply in need of an overhaul to reflect new graphic modifications and for better eye candy. 

    Not that it really matters but the graphics there are rather primitive and outdated. 

    When using "plotsetup(png,...)" the third rotational angle is ignored.  Attached are a worksheet and the corresponding three plots that demonstrate this bug.

    The explosion of cloud this - cloud that, is rather obvious now.

     

    SO, I decided to check-out the cloud feature to my Maple? One problem, I cannot see - what is in it?

    • Yes, I understand, you use the cloud palette in Maple.
    • It shows the group, who the document / notebook is from, what it's title is? And such.
    • _
    • BUT, is there a web page - listing? hidden somewhere, on MaplePrimes or someplace on Maplesoft's service? (

    Some Maplesoft users have been receiving emails that indicate a new patch for Maple software is available. Recipients of this message receive an attachment called Maple_Patch.zip which they are asked to extract using the password MapleSecuirityUpdate1707. Please be advised that this patch did not originate from Maplesoft and should not be opened under any circumstances. Maplesoft is currently investigating further. Please contact

    Hello,

    I am experiencing wrong results using the PolynomialIdeals package in Maple 16 (see radical_error.mw). Creating the same ideal with different generators, the radicals computed differ which of course is wrong:

    with(PolynomialIdeals);
    J := <t*(a+A), A*(b+B+t), b*(a+A), B*a-A*(b+t), (variables = {A, B, a, b, t})>:
    J2 := <t*(a+A), A*(b+B+t), b*(a+A), B*(a+A...

    The MRB constant can be computed in Maple by evalf(sum((-1)^n*(n^(1/n)-1),n=1..infinity)).

    On my laptop restart; st := time(); evalf(sum((-1)^n*(n^(1/n)-1), n = 1 .. infinity), 500); time()-st gives a timming of 37.908 seconds.

    Using the procedure posted at the bottom of this message st := time(); A037077(500); time()-st gives a much faster timing of 1.903 seconds.

    My fastest timing for 500 digits of MRB comes from my...

    Here is a hacked-up and short `convert/identifier` procedure.

    The shortness of the procedure should is a hint that it's not super robust. But it can be handy, in some simple display situations.

    If I had made into a single procedure (named `G`, or whatever) then I could have declared its first parameter as x::uneval and thus avoided the need for placing single-right (uneval) quotes around certain examples. But for fun I wanted it to be an extension of `convert`. And while I could code special-evaluation rules on my `convert` extension I suppose that there no point in doing so since `convert` itself doesn't have such rules.

    For the first two examples below I also typed in the equivalent expressions in 2D Math input mode, and then used the right-click context-menu to convert to Atomic Identifier. Some simple items come out the same, while some other come out with a different underlying structure and display.

     

    restart:

    `convert/identifier`:=proc(x)
       cat(`#`,convert(convert(:-Typesetting:-Typeset(x),`global`),name));
    end proc:

    convert( 'sqrt(4)', identifier);

    `#msqrt(mn("4"))`

    eval(value(%));
    lprint(%);

    `#msqrt(mn("4"))`

    `#msqrt(mn("4"))`

    `#msqrt(mn("4"))`

    `#msqrt(mn("4"))`

    lprint(%);

    `#msqrt(mn("4"))`

    convert( 'int(BesselJ(0,Pi*sqrt(t)),t)', identifier);

    `#mrow(mo("&int;"),mrow(msub(mi("J",fontstyle = "normal",msemantics = "BesselJ"),mn("0")),mo("&ApplyFunction;"),mfenced(mrow(mi("&pi;"),mo("&InvisibleTimes;"),msqrt(mi("t"))))),mspace(width = "0.3em"),mo("&DifferentialD;"),mi("t"))`

    eval(value(%));
    #lprint(%);

    `#mrow(mo("&int;"),mrow(msub(mi("J",fontstyle = "normal",msemantics = "BesselJ"),mn("0")),mo("&ApplyFunction;"),mfenced(mrow(mi("&pi;"),mo("&InvisibleTimes;"),msqrt(mi("t"))))),mspace(width = "0.3em"),mo("&DifferentialD;"),mi("t"))`

    `#mrow(mo("&int;"),msub(mo("J"),mn("0")),mfenced(mrow(mi("&pi;",fontstyle = "normal"),mo("&InvisibleTimes;"),msqrt(mi("t")))),mo("&InvisibleTimes;"),mo("&DifferentialD;"),mi("t"))`

    `#mrow(mo("&int;"),msub(mo("J"),mn("0")),mfenced(mrow(mi("&pi;",fontstyle = "normal"),mo("&InvisibleTimes;"),msqrt(mi("t")))),mo("&InvisibleTimes;"),mo("&DifferentialD;"),mi("t"))`

    #lprint(%);

    convert( Vector[row](['Zeta(0.5)', a.b.c, 'limit(sin(x)/x,x=0)', q*s*t]), identifier);

    Vector[row](4, {(1) = Zeta(.5), (2) = a.b.c, (3) = limit(sin(x)/x, x = 0), (4) = q*s*t})

    eval(value(%));
    #lprint(%);

    Vector[row](4, {(1) = Zeta(.5), (2) = a.b.c, (3) = limit(sin(x)/x, x = 0), (4) = q*s*t})

     

    Download atomic1.mw

    As it stands this hack may be useful in a pinch for demos and purely visual effect, but unless it's robustified then it won't allow you to programmatically generate atomic names which match and inter-operate computationally with those from the context-menu conversion. Identifiers (names) with similar typeset appearance still have to match exactly if they are to be properly compared, added, subtracted with each other.

    Extra points for commenting that the round-brackets (eg. in function-application) are displayed as black while the rest is in blue by default, if you have a workaround.  That also happens when using the usual context-menu driven convert-to-atomic-identifier of the Standard GUI.

    Extra points for noticing that function names like `sin` are italicized and not in an upright font, if you have a workaround. How to discern which instances of fontstyle="normal" should be removed?

    Points off for commenting that this whole hack doesn't provide anything new or extra for getting around automatic simplification.  :)

    This is a one-liner hack. But maybe together we could turn it into something that closely matched what the context-menu generates.

    Many of us know that issuing plotting commands produces various kinds of plot data structure, the details of which are documented on the plot,structure help-page. That page covers most of the details, and a thorough read can reveal that the numeric data of a plot is often stored within such structures as either Array or Matrix.

    But what about the result of a call to

    MapleNet 16 is now available. New features include the ability to programmatically execute Maple documents from your MapleNet application and support for the Symbolic Computation Software Composability Protocol (SCSCP) framework, which promotes interoperability with special-purpose computer algebra systems. For more details, see What’s New in MapleNet 16.

     

    eithne

    My list of problems solved with Clickable-Calculus syntax-free techniques now numbers 154, spread over eight subject areas. Recently, Maplesoft posted to its website 44 of these problems, along with videos of their point-and-click solutions. Not only do these solutions demonstrate Maple functionalities, but they also have a pedagogic message, that is resequencing skills and concepts. They show how Maple can be used to obtain a solution, then show how Maple can be used to implement...

    First 107 108 109 110 111 112 113 Last Page 109 of 306