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
  • Disclaimer: This blog post has been contributed by Dr. Nicola Wilkin, Head of Teaching Innovation (Science), College of Engineering and Physical Sciences and Jonathan Watkins from the University of Birmingham Maple T.A. user group*.

     

    If you have arrived at this post you are likely to have a STEM background. You may have heard of or had experience with Maple T.A or similar products in the past. For the uninitiated, Maple T.A. is a powerful system for learning and assessment designed for STEM courses, backed by the power of the Maple computer algebra engine. If that sounds interesting enough to continue reading let us introduce this series of blog posts for the mapleprimes website contributed by the Maple T.A. user group from the University of Birmingham(UoB), UK.

    These posts mirror conversations we have had amongst the development team and with colleagues at UoB and as such are likely of interest to the wider Maple T.A. community and potential adopters. The implementation of Maple T.A. over the last couple of years at UoB has resulted in a strong and enthusiastic knowledge base which spans the STEM subjects and includes academics, postgraduates, undergraduates both as users and developers, and the essential IT support in embedding it within our Virtual Learning Environment (VLE), CANVAS at UoB.

    By effectively extending our VLE such that it is able to understand mathematics we are able to deliver much wider and more robust learning and assessment in mathematics based courses. This first post demonstrates that by comparing the learning experience between a standard multiple choice question, and the same material delivered in a Maple TA context.

    To answer this lets compare how we might test if a student can solve a quadratic equation, and what we can actually test for if we are not restricted to multiple choice. So we all have a good understanding of the solution method, let's run through a typical paper-based example and see the steps to solving this sort of problem.

    Here is an example of a quadratic

    To find the roots of this quadratic means to find what values of x make this equation equal to zero. Clearly we can just guess the values. For example, guessing 0 would give

    So 0 is not a root but -1 is.

    There are a few standard methods that can be used to find the roots. The point though is the answer to this sort of question takes the form of a list of numbers. i.e. the above example has the roots -1, 5. For quadratics there are always two roots. In some cases two roots could be the same number and they are called repeated roots. So a student may want to answer this question as a pair of different numbers 3, -5, the same number repeated 2, 2 or a single number 2. In the last case they may only list a repeated roots once or maybe they could only find one root from a pair of roots. Either way there is quite a range of answer forms for this type of question.

    With the basics covered let us see how we might tackle this question in a standard VLE. Most are not designed to deal with lists of variable length and so we would have to ask this as a multiple choice question. Fig. 1, shows how this might look.

    VLE Question

    Fig 1: Multiple choice question from a standard VLE

    Unfortunately asking the question in this way gives the student a lot of implicit help with the answer and students are able to play a process of elimination game to solve this problem rather than understand or use the key concepts.

    They can just put the numbers in and see which work...

    Let's now see how we may ask this question in Maple T.A.. Fig. 2 shows how the question would look in Maple T.A. Clearly this is not multiple choice and the student is encouraged to answer the question using a simple list of numbers separated by commas. The students are not helped by a list of possible answers and are left to genuinely evaluate the problem. They are able to provide a single root or both if they can find them, and moreover the question is not fussy about the way students provide repeated roots. After a student has attempted the question, in the formative mode, a student is able to review their answer and the teacher's answer as well as question specific feedback, Fig. 3. We'll return to the power of the feedback that can be incorporated in a later post.

    Maple T.A. Question

    Fig. 2: Free response question in Maple T.A.

      

    Maple T.A. Answer

    Fig. 3: Grading response from Maple T.A.

    The demo of this question and others presented in this blog, are available as live previews through the UoB Maple T.A. user group site.

    Click here for a live demo of this question.

    The question can be downloaded from here and imported as a course module to your Maple T.A. instance. It can also be found on the Maple TA cloud by searching for "Find the roots of a quadratic". Simply click on the Clone into my class button to get your own version of the question to explore and modify.

    * Any views or opinions presented are solely those of the author(s) and do not necessarily represent those of the University of Birmingham unless explicitly stated otherwise.

    This post is my attempt to answer the question from   here : how to find all integer points (all points with integer coordinates) in the intersection of two cubes. The following procedure  IntegerPoints  solves a more general problem: it finds all the integer points of a bounded polyhedral region of arbitrary dimension, defined by a system of linear inequalities and / or equations.

    Required parameters of the procedure: SN is a set or a list of linear inequalities and/or equations with any number of variables, the Var is the list of variables. The procedure returns the set of all integer points, satisfying the conditions  SN .

    Code of the procedure:

    restart;

    IntegerPoints := proc (SN::{list, set}, Var::list)

    local SN1, sn, n, Sol, k, i, s, S, R;

    uses PolyhedralSets, SolveTools[Inequality];

    SN1 := convert(evalf(SN), fraction);

    for sn in SN1 do

    if type(sn, `<`) then SN1 := subs(sn = (`<=`(op(sn))), SN1)

    end if; end do;

    if IsBounded(PolyhedralSet(SN1)) = false then error "The region should be bounded" end if;

    n := nops(Var);

    Sol := LinearMultivariateSystem(SN, Var);

    if Sol = {} then return {} else

    k := 0;

    for s in Sol do if nops(indets(s[1])) = 1 then

    S[0] := [[]];

    for i to n do

    S[i] := [seq(seq([op(j1), op(j2)], j2 = [isolve(eval(s[i], j1))]), j1 = S[i-1])] end do;

    k := k+1; R[k] := op(S[n]);

    end if; end do;

    convert(R, set);

    map(t->rhs~(t), %);

    end if;

    end proc:

     

    Examples of use:

    IntegerPoints({x > 0, y > 0, z > 0, 2*x+3*y+z < 12}, [x, y, z]);

           

      {[1, 1, 1], [1, 1, 2], [1, 1, 3], [1, 1, 4], [1, 1, 5], [1, 1, 6], [1, 2, 1], [1, 2, 2], [1, 2, 3], [2, 1, 1], [2, 1, 2],

                                       [2, 1, 3], [2, 1, 4], [2, 2, 1], [3, 1, 1], [3, 1, 2]}

     

    IntegerPoints({x > 0, y > 0, z > 0, 2*x+3*y+z = 12}, [x, y, z]);

                                        {[1, 1, 7], [1, 2, 4], [1, 3, 1], [2, 1, 5], [2, 2, 2], [3, 1, 3], [4, 1, 1]}

     

    IntegerPoints([x > 0, y > 0, z > 0, 2*x+3*y+z = 12, x+y+z <= 6], [x, y, z]);

                                                               {[1, 3, 1], [2, 2, 2], [4, 1, 1]}

    isolve({x > 0, y > 0, z > 0, 2*x+3*y+z < 12});  #  isolve fails with these examples

                  Warning, solutions may have been lost

    isolve({x > 0, y > 0, z > 0, 2*x+3*y+z = 12});

                  Warning, solutions may have been lost

     

    In the following example (with a visualization) we find all integer point in the intersection of a square and a triangle:

    S1 := {x > 0, y > 0, x < 13/2, y < 13/2}:

    S2 := {y > (1/4)*x+1, y < 2*x, y+x < 12}:

    S := IntegerPoints(`union`(S1, S2), [x, y]):

    Region := plots[inequal](`union`(S1, S2), x = 0 .. 7, y = 0 .. 7, color = "LightGreen", nolines):

    Points := plot([op(S)], style = point, color = red, symbol = solidcircle):

    Square := plottools[curve]([[0, 0], [13/2, 0], [13/2, 13/2], [0, 13/2], [0, 0]], color = blue, thickness = 3):

    Triangle := plottools[curve]([[4/7, 8/7], [4, 8], [44/5, 16/5], [4/7, 8/7]], color = blue, thickness = 3):

    plots[display](Square, Triangle, Points, Region, scaling = constrained);

                                               

     

     

    In the following example (with a visualization) we find all integer point in the intersection of two cubes. The second cube is obtained from the first cube by rotation with orthogonal matrix  A  and by a translation:

    A := <1/3, 2/3, 2/3; -2/3, 2/3, -1/3; -2/3, -1/3, 2/3>:

    f := unapply(A^(-1).<x+5, y-4, z-7>, x, y, z):

    S1 := {x > 0, y > 0, z > 0, x < 6, y < 6, z < 6}:

    S2 := eval(S1, {x = f(x, y, z)[1], y = f(x, y, z)[2], z = f(x, y, z)[3]}):

    S := IntegerPoints(`union`(S1, S2), [x, y, z]);

    Points := plots[pointplot3d](S, color = red, symbol = box):

    Cube := plottools[cuboid]([0, 0, 0], [6, 6, 6], color = blue, linestyle = solid):

    F := plottools[transform]((x, y, z)->convert(A.<x, y, z>+<-5, 4, 7>, list)):

    plots[display](Cube,  F(Cube), Points, scaling = constrained, linestyle = solid, transparency = 0.7, orientation = [25, 75], axes = normal);

     

     

     

    In the example below, all the ways to exchange $ 1 coins of 1, 5, 10, 25 and 50 cents, if the number of coins no more than 8, there is no pennies and there is at least one 50-cent coin:

    IntegerPoints({x1 = 0, x2 >= 0, x3 >= 0, x4 >= 0, x5 >= 1,  x1+5*x2+10*x3+25*x4+50*x5 = 100, x1+x2+x3+x4+x5 <= 8}, [x1, x2, x3, x4, x5]);

    nops(%);

                                  {[0, 0, 0, 0, 2], [0, 0, 0, 2, 1], [0, 0, 5, 0, 1], [0, 1, 2, 1, 1], [0, 2, 4, 0, 1],

                                                     [0, 3, 1, 1, 1], [0, 4, 3, 0, 1], [0, 5, 0, 1, 1]}

                                                                                        8

     

    Integer_points.mw

     

    Addition: Below in my comments another procedure  IntegerPoints1  is presented that solves the same problem.

    Some Maple 18 short (and I believe elegant) code for doing gravitational simulations with N bodies in space:

     

    N_body_problem.mw

     

    Initial velocities have been tweaked to keep the system stable for the duration of the animation.

     

    Please feel free to fiddle with its parameters, velocities and positions and/or N itself, to produce more interesting animations or re-use the code therein (You can safely ignore the (c), it's there just for archiving purposes).

     

    The following are animations from three runs with N=4, N=3 and N=2, no other parameters changed.

     

    There has been a spate of Questions posted in the past week about computing eigenvalues. Invariably, the Questioners have computed some eigenvalues by applying fsolve to a characteristic polynomial obtained from a floating-point matrix via LinearAlgebra:-Determinant. They are then surprised when various tests show that these eigenvalues are not correct. In the following worksheet, I show that the eigenvalues computed by the fsolve@Determinant method (when applied to a floating-point matrix) are 100% garbage for dense matrices larger than about Digits x Digits. The reason for this is that computing the determinant introduces too much round-off error into the coefficients of the characteristic polynomial. The best way to compute the eigenvalues is to use LinearAlgebra:-Eigenvalues or LinearAlgebra:-Eigenvectors. Furthermore, very accurate results can be obtained without increasing Digits.

     

    The correct and incorrect ways to compute floating-point eigenvalues

    Carl Love 2016-Jan-18

    restart:

    Digits:= 15:

    macro(LA= LinearAlgebra):

    n:= 2^5:  #Try also 2^3 and 2^4.

    A:= LA:-RandomMatrix(n):

    A is an exact matrix of integers; Af is its floating-point counterpart.

    Af:= Matrix(A, datatype= float[8]):

    P:= LA:-CharacteristicPolynomial(A, x):

    P is the exact characteristic polynomial with integer coefficients; Pf is the floating-point characteristic polynomial computed by the determinant method.

    Pf:= LA:-Determinant(Af - LA:-DiagonalMatrix([x$n])):

    RP:= [fsolve(P, complex)]:

    RP is the list of floating-point eigenvalues computed from the exact polynomial; RPf is the list of eigenvalues computed from Pf.

    RPf:= [fsolve(Pf, complex)]:

    RootPlot:= (R::list(complexcons))->
         plot(
              [Re,Im]~(R), style= point, symbol= cross, symbolsize= 24,
              axes= box, color= red, labels= [Re,Im], args[2..]
         )
    :

    RootPlot(RP);

    RootPlot(RPf);

    We see that the eigenvalues computed from the determinant are completely garbage. The characteristic polynomial might as well have been x^n - a^n for some positive real number a > 1.

     

    Ef is the eigenvalues computed from the floating-point matrix Af using the Eigenvalues command.

    Ef:= convert(LA:-Eigenvalues(Af), list):

    RootPlot(Ef, color= blue);

    We see that this eigenvalue plot is visually indistinguishable from that produced from the exact polynomial. This is even more obvious if I plot them together:

    plots:-display([RootPlot(Ef, color= blue), RootPlot(RP)]);

    Indeed, we can compare the two lists of  eigenvalues and show that the maximum difference is exceedingly small.

     

    The following procedure is a novel way of sorting a list of complex numbers so that it can be compared to another list of almost-equal complex numbers.

    RootSort:= (R::list(complexcons))-> sort(R, key= abs*map2(`@`, signum+2, Re+Im)):


    max(abs~(RootSort(RP) -~ RootSort(Ef)));

    HFloat(1.3258049636636544e-12)

     

     

    ``

     

    Download Eigenvalues.mw

    A new Maple e-book, Multivariate Calculus Study Guide, is now available. Part of the Clickable Calculus collection of interactive Maple e-books, this guide takes full advantage of Maple’s Clickable Math approach. It has over 600 worked examples, the vast majority of which are solved using interactive, Clickable Math techniques. 

    Deisgned to help students taking this course, instructors may also find this e-book useful as a guide to using Clickable Math to teach Multivariate Calculus.

    See Multivariate Calculus Study Guide for more information.

     

    eithne

    In addition to the Maple 2015.2 and MapleSim 2015.2 updates for Mac, we have just released updates to both Maple and MapleSim for Windows and Linux.

    Maple 2015.2a provides a fix for the sum bug reported here.

    MapleSim 2015.a provides a variety of interface improvements, and updates to the MapleSim Battery Library and MapleSim CAD Toolbox.

    For Mac users, these improvements are included with the Maple 2015.2/MapleSim 2015.2 updates.

    All updates are available through the Check for Updates system, and are also available from our website on the downloads section of our website.

    eithne

    We have just released updates to Maple 2015 and MapleSim 2015 that fix the problems on Mac OS X 10.11 (El Capitan).  If you want to use the new OS, you should update your products.

    Updates are available through Check for Updates and from the Downloads section of our website. See Maple 2015.2 and MapleSim 2015.2 for details. MapleSim users, please note that this update also gives you all the new features in MapleSim 2015.2.

    If you are using earlier versions of these products, please read the  Maple and MapleSim on Mac OS X 10.11 FAQ for more information about your options.

     

    eithne

    Consider the well-known Euler's formula  

     eix = cos x + i sin x   

    When we calculate that for  x = π  we get:

    eiπ = cos π + i sin π   or

    eiπ = −1 + i × 0   (because cos π = −1 and sin π = 0)  or

    eiπ = −1  or  eiπ + 1 = 0

    It seems absolutely magical that such a neat equation combines  5  fundamental constants: e ,  i ,  π , 1 , 0

    The purpose of this post - to give a simple visualization of equality  eiπ = −1  (statical and animated) by expanding  eiπ  in a series of complex numbers. These numbers we represent as vectors in the plane. We will see that the partial sums of this series are broken lines like a spiral, twisting around the point -1 steadily approaching to it.

    Euler procedure has one required parameter  n is positive integer - the number of displayed terms of the series  for  eiπ  

    Optional parameter  a  is any symbol (by default  a=NULL). We use this option if  instead of a static spiral want to see an animated spiral. 

    Procedure code can be found in the attached file  Euler.mw

     

    Examples of use.

    The first example shows  8 terms of the series (broken line of 8 units):

    Euler(8);

                    

     

     

    The terms of the series where  n> = 10  on the same plot can not be seen as very small. In this case, we use  the second plot with magnification of  100 : 1 .  

    The second example:

    Euler(14);

     

     

     

    In the third example, we see an animated broken line. It's  first 9 units represented  on the left plot, and then for n> = 10 on the right plot:

    Euler(13, a);

      

     

    Euler.mw

    This January 28th, we will be hosting another full-production, live streaming webinar featuring an all-star cast of Maplesoft employees: Andrew Rourke (Director of Teaching Solutions), Jonny Zivku (Maple T.A. Product Manager), and Daniel Skoog (Maple Product Manager). Attend the webinar to learn how educators all around the world are using Maple and Maple T.A. in their own classrooms.

    Any STEM educator, administrator, or curriculum coordinator who is interested in learning how Maple and Maple T.A. can help improve student grades, reduce drop-out rates, and save money on administration costs will benefit from attending this webinar.

    Click here for more information and registration.

    In this paper we will demonstrate the importance of using simple to complex algorithms applied to complex systems in civil and mechanical engineering. In order to develop solutions that developers need to be involved in issues of advanced dynamic computer science. We show how is that with the Maple scientific program and through component-based algorithms can generate power then then be inserted into specific algorithms. Will form patterns with movements of rotation and revolution of their axes, in each case to model and analyze the curves thereof comprising. With these modelalos and curve analysis we can predict manufacturing costs, freight, inter alia estrcturas which they can be used with the correct use of Maplesoft.

     

    IX_Fast_2016.pdf

    Solid_Algorithms_applied_in_complex_3D_structures_for_Civil_Engineering_with_Maplesoft.mw

    (in spanish)

    Lenin Araujo Castillo

     

     

     

     

    The Joint Mathematics Meetings are taking place this week (January 6 – 9) in Seattle, Washington, U.S.A. This will be the 99th annual winter meeting of the Mathematical Association of America (MAA) and the 122nd annual meeting of the American Mathematical Society (AMS).

    Maplesoft will be exhibiting at booth #203 as well as in the networking area. Please stop by our booth or the networking area to chat with me and other members of the Maplesoft team, as well as to pick up some free Maplesoft swag or win some prizes.

    Given the size of the Joint Math Meetings, it can be challenging to pick which events to attend. Hopefully we can help by suggesting a few Maple-related talks and events:

    Maplesoft is hosting a catered reception and presentation ‘Challenges of Modern Education: Bringing Math Instruction Online’ on Thursday, January 7th at 18:00 in the Cedar Room at the Seattle Sheraton. You can find more details and registration information here: www.maplesoft.com/jmm

    Another not to miss Maple event is “30 Years of Digitizing Mathematical Knowledge with Maple”, presented by Edgardo Cheb-Terrab, on Thursday, January 7 at 10:00 in Room 603 of the Convention Center.


    Here’s a list of Maple-related events and talks:


    Exploration of Mathematics Teaching and Assessment through Maple-Software Projects of Art Diagram Design as Undergraduate Student Research Projects

    Wednesday, Jan 6, 10:20, Room 2B, Convention Center

    Lina Wu

     

    30 Years of Digitizing Mathematical Knowledge with Maple

    Thursday, Jan 7, 10:00, Room 603, Convention Center

    Edgardo Cheb-Terrab

     

    MAA Poster Session – Collaborative Research: Maplets for Calculus

    Thursday, Jan 7, 14:00, Hall 4F, 4th Floor, Convention Center

     

    Challenges of Modern Education: Bringing Math Instruction Online

    Thursday, Jan 7, 18:00, Cedar Room, 2nd Floor, Sheraton Center

     

    Using Maple to Promote Modelling in Differential Equations

    Friday, Jan 8, 10:40, Room 617, Convention Center

    Patrice G Tiffany; Rosemary C Farley

     

    If you are presenting at Joint Math and would like to advertise your Maple-related talk, please feel free to comment below, or send me a message with your event and I’ll add it to the list above.

     

    See you in Seattle!

    Daniel

    Maple Product Manager

    This post is my attempt to answer the question from here .  

    The procedure  ContoursWithLabels  has 2 required parameters: Expr  is an expression in  x  and  y  variables,  Range1  and  Range2  are ranges for  x  and  y . In this case, the output is the list of floats for the contours and 8 black contours (with labels) (the axis of coordinates as a box). 

    The optional parameters: Number is positive integer - the number of contours (by default Number=8),  S is a set of real numbers  C  for contours (for which Expr=C) (by default  S={}),  GraphicOptions  is a list of graphic options for plotting (by default  GraphicOptions=[color = black, axes = box]),  Coloring  is an equality  Coloring=list of color options for  plots[dencityplot]  command (by default Coloring=NULL). 

    The code of the procedure:

    restart;

    ContoursWithLabels := proc (Expr, Range1::(range(realcons)), Range2::(range(realcons)), Number::posint := 8, S::(set(realcons)) := {}, GraphicOptions::list := [color = black, axes = box], Coloring::`=` := NULL)

    local r1, r2, L, f, L1, h, S1, P, P1, r, M, C, T, p, p1, m, n, A, B, E;

    uses plots, plottools;

    f := unapply(Expr, x, y);

    if S = {} then r1 := rand(convert(Range1, float)); r2 := rand(convert(Range2, float));

    L := [seq([r1(), r2()], i = 1 .. 205)];

    L1 := convert(sort(select(a->type(a, realcons), [seq(f(op(t)), t = L)]), (a, b) ->is(abs(a) < abs(b))), set);

    h := (L1[-6]-L1[1])/Number;

    S1 := [seq(L1[1]+(1/2)*h+h*(n-1), n = 1 .. Number)] else

    S1 := convert(S, list)  fi;

    print(Contours = evalf[2](S1));

    r := k->rand(20 .. k-20); M := []; T := [];

    for C in S1 do

    P := implicitplot(Expr = C, x = Range1, y = Range2, op(GraphicOptions), gridrefine = 3);

    P1 := [getdata(P)];

    for p in P1 do

    p1 := convert(p[3], listlist); n := nops(p1);

    if n < 500 then m := `if`(40 < n, (r(n))(), round((1/2)*n)); M := `if`(40 < n, [op(M), p1[1 .. m-11], p1[m+11 .. n]], [op(M), p1]); T := [op(T), [op(p1[m]), evalf[2](C)]] else

    if 500 <= n then h := floor((1/2)*n); m := (r(h))(); M := [op(M), p1[1 .. m-11], p1[m+11 .. m+h-11], p1[m+h+11 .. n]]; T := [op(T), [op(p1[m]), evalf[2](C)], [op(p1[m+h]), evalf[2](C)]]

    fi; fi; od; od;

    A := plot(M, op(GraphicOptions));

    B := plots:-textplot(T);

    if Coloring = NULL then E := NULL else E := ([plots:-densityplot])(Expr, x = Range1, y = Range2, op(rhs(Coloring)))  fi;

    display(E, A, B);

    end proc:

     

    Examples of use:

    ContoursWithLabels(x^2+y^2, -3 .. 3, -3 .. 3);

                                 

     

     

    ContoursWithLabels(x^2-y^2, -5 .. 5, -5 .. 5, {-20, -15, -10, -5, 0, 5, 10, 15, 20}, [color = black, thickness = 2, axes = box], Coloring = [colorstyle = HUE, colorscheme = ["White", "Red"], style = surface]);

                               

     

     

    The next example, I took from here:

    ContoursWithLabels(sin(1.3*x)*cos(.9*y)+cos(.8*x)*sin(1.9*y)+cos(.2*x*y), -5 .. 0, 2 .. 5, {seq(-2 .. 2, 0.5)}, [color = black, axes = box], Coloring = [colorstyle = HUE, colorscheme = ["Cyan", "Red"], style = surface]);

                                     

     

    There are many more examples can be found in the attached file. 

    ContoursWithLabels1.mw

     

    Edit. The attached file has been corrected.


    The year 2015 has been one with interesting and relevant developments in the MathematicalFunctions  and FunctionAdvisor projects.

    • 

    Gaps were filled regarding mathematical formulas, with more identities for all of BesselI, BesselK, BesselY, ChebyshevT, ChebyshevU, Chi, Ci, FresnelC, FresnelS, GAMMA(z), HankelH1, HankelH2, InverseJacobiAM, the twelve InverseJacobiPQ for P, Q in [C,D,N,S], KelvinBei, KelvinBer, KelvinKei, KelvinKer, LerchPhi, arcsin, arcsinh, arctan, ln;

    • 

    Developments happened in the Mathematical function package, to both compute with symbolic sequences and symbolic nth order derivatives of algebraic expressions and functions;

    • 

    The input FunctionAdvisor(differentiate_rule, mathematical_function) now returns both the first derivative (old behavior) and the nth symbolic derivative (new behavior) of a mathematical function;

    • 

    A new topic, plot, used as FunctionAdvisor(plot, mathematical_function), now returns 2D and 3D plots for each mathematical function, following the NIST Digital Library of Mathematical Functions;

    • 

    The previously existing FunctionAdvisor(display, mathematical_function) got redesigned, so that it now displays more information about any mathematical function, and organized into a Section with subsections for each of the different topics, making it simpler to find the information one needs without getting distracted by a myriad of formulas that are not related to what one is looking for.

    More mathematics

     

    More mathematical knowledge is in place, more identities, differentiation rules of special functions with respect to their parameters, differentiation of functions whose arguments involve symbolic sequences with an indeterminate number of operands, and sum representations for special functions under different conditions on the functions' parameters.

    Examples

       

    More powerful symbolic differentiation (nth order derivative)

     

    Significative developments happened in the computation of the nth order derivative of mathematical functions and algebraic expressions involving them.

    Examples

       

    Mathematical handling of symbolic sequences

     

    Symbolic sequences enter various formulations in mathematics. Their computerized mathematical handling, however, was never implemented - only a representation for them existed in the Maple system. In connection with this, a new subpackage, Sequences , within the MathematicalFunctions package, has been developed.

    Examples

       

    Visualization of mathematical functions

     

    When working with mathematical functions, it is frequently desired to have a rapid glimpse of the shape of the function for some sampled values of their parameters. Following the NIST Digital Library of Mathematical Functions, a new option, plot, has now been implemented.

    Examples

       

    Section and subsections displaying properties of mathematical functions

     

    Until recently, the display of a whole set of mathematical information regarding a function was somehow cumbersome, appearing all together on the screen. That display was and is still available via entering, for instance for the sin function, FunctionAdvisor(sin) . That returns a table of information that can be used programmatically.

    With time however, the FunctionAdvisor evolved into a consultation tool, where a better organization of the information being displayed is required, making it simpler to find the information we need without being distracted by a screen full of complicated formulas.

    To address this requirement, the FunctionAdvisor now returns the information organized into a Section with subsections, built using the DocumentTools package. This enhances the presentation significantly.

    Examples

       

    These developments can be installed in Maple 2015 as usual, by downloading the updates (bundled with the Physics and Differential Equations updates) from the Maplesoft R&D webpage for Mathematical Functions and Differential Equations


    Download MathematicalFunctionsAndFunctionAdvisor.mw

    Edgardo S. Cheb-Terrab
    Physics, Differential Equations and Mathematical Functions, Maplesoft

    Just a simple little proc that grabs and displays some simple data for general stars (I've only listed a couple for starters).  It wasn't till later that I realized it's not an up to date database as it doesn't contain more recent interesting stars like Kepler 452.  One would have to go to the SIMBAD astronomical database for which I have not yet devoted any time for .. at least not yet. 

    StarData := proc (a::string) local b, c, d, e1, e2, e3; b := StringTools:-DeleteSpace(StringTools:-Substitute(a, " ", "+")); c := HTTP:-Get(cat("http://www.stellar-database.com/Scripts/search_star.exe?Name=", b)); d := convert(c[2], string); e1 := d[StringTools:-Search("<H1>", d)+4 .. StringTools:-Search("</H1>", d)-1]; e2 := d[StringTools:-Search("Right", d) .. StringTools:-Search("Standard error in distance", d)-8]; e3 := StringTools:-SubstituteAll(StringTools:-SubstituteAll(StringTools:-SubstituteAll(e2, "<BR>", ""), "<B>", ""), "</B>", ""); print(e1); print(e3) end proc:

    StarData("Sun")

    "Right Ascension and Declination: 0h0m0s, +0&deg;0'0" (epoch 2000.0)
Distance from Sol: 0 light-years (0 parsecs)
"

    (1)

    StarData("Wolf 1061")

    "Right Ascension and Declination: 16h30m18.097s, -12&deg;39'45.17" (epoch 2000.0)
Distance from Sol: 13.91 light-years (4.264 parsecs)
"

    (2)

    StarData("Alpha Centauri")

    "Right Ascension and Declination: 14h39m35.88s, -60&deg;50'7.4" (epoch 2000.0)
Distance from Sol: 4.395 light-years (1.347 parsecs)
"

    (3)

    StarData("Sirius")

    "Right Ascension and Declination: 6h45m8.871s, -16&deg;42'57.99" (epoch 2000.0)
Distance from Sol: 8.601 light-years (2.637 parsecs)
"

    (4)

    ````


    Download StarData3.mw

     

     

     

     

    I'd like to pay attention to an article J, B. van den Berg and J.-P. Lessard, Notices of the AMS, October 2015, p. 1057-1063.  We know numerous  applications of CASes to algebra. The authors present such  applications to dynamics. It would be interesting and useful to obtain  opinions of Maple experts on this topic.

    Here is its introduction:

    "Nonlinear dynamics shape the world around us, from the harmonious movements of celestial bod-
    ies,  via  the  swirling  motions  in  fluid  flows,  to the  complicated  biochemistry  in  the  living  cell.
    Mathematically  these  beautiful  phenomena  are modeled by nonlinear dynamical systems, mainly
    in  the  form  of  ordinary  differential  equations (ODEs), partial differential equations (PDEs) and
    delay differential equations (DDEs). The presence of nonlinearities severely complicates the mathe-
    matical analysis of these dynamical systems, and the difficulties are even greater for PDEs and DDEs,
    which are naturally defined on infinite-dimensional function spaces. With the availability of powerful
    computers and sophisticated software, numerical simulations have quickly become the primary tool
    to study the models. However, while the pace of progress increases, one may ask: just how reliable
    are our computations? Even for finite-dimensional ODEs, this question naturally arises if the system
    under  study  is  chaotic,  as  small  differences  in initial conditions (such as those due to rounding
    errors  in  numerical  computations)  yield  wildly diverging outcomes. These issues have motivated
    the development of the field of rigorous numerics in dynamics"

    First 72 73 74 75 76 77 78 Last Page 74 of 308