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
  • restart;

    with(LinearAlgebra):

    Recently @Nour asked (in part) if Maple can simplify 2*(x^2 - x*y - x*z + y^2) to (x - y)^2 + (y - z)^2 + (z - x)^2. User @vv pointed out that a sum of squares form is not unique. I'm not sure if @Nour's intent was to show that this was always non-negative, but even if the sum of squares form is not unique, it does help to demonstrate that the expression will be nonnegative for all real x,y,z. This reminded me that I have over the years had cases where I wanted to know if a quadratic form (multivariate polynomial with all terms of degree 2) would always be non-negative (a quadratic form will be zero if all variables are zero, so we know it won't always be positive). I have typically done this by hand in the following way, which I demonstrate for the simpler case

    p1:=2*x^2-3*x*y+4*y^2;

    2*x^2-3*x*y+4*y^2

    We make a (column) vector of the variables, v = [x,y] and then construct the symmetric Matrix A for which Transpose(v).A.v is the required expression. For the squared term 2*x^2, the coefficient 2 is put in the diagonal entry A[1,1] and likewise 4*y^2 leads to A[2,2] = 4. The term -3*x*y comes from the sum A[1,2]+A[2,1] and so half of the coefficient -3 goes to each of A[2,1] and A[1,2]. The Matrix is therefore

    A:=Matrix(2,2,[2,-3/2,-3/2,4]);v:=Vector([x,y]):simplify(v^+.A.v);

    A := Matrix(2, 2, {(1, 1) = 2, (1, 2) = -3/2, (2, 1) = -3/2, (2, 2) = 4})

    2*x^2-3*x*y+4*y^2

    The Matrix is found to be positive definite (positive eigenvalues), which means that the quadratic form is positive for all non-zero real vectors v.

    IsDefinite(A,query='positive_definite');evalf(Eigenvalues(A));

    true

    Vector[column]([[4.802775638], [1.197224362]])

    One way to get the sum of squares form is to use the Cholesky decomposition (for positive definite or semidefinite matrices), which yields A = L.Transpose(L) = L.I.Transpose(L), and then note that Transpose(L).v is a change of variables to a diagonal quadratic form

    L:=LUDecomposition(A,method='Cholesky');
    L.L^+;

    L := Matrix(2, 2, {(1, 1) = 2^(1/2), (2, 1) = -(3/4)*2^(1/2), (2, 2) = (1/4)*46^(1/2)}, storage = triangular[lower], shape = [triangular[lower]])

    Matrix([[2, -3/2], [-3/2, 4]])

    so we have

    v2:=L^+.v;
    v2^+.v2;
    map(simplify,%);

    v2 := Vector(2, {(1) = 2^(1/2)*x-(3/4)*2^(1/2)*y, (2) = (1/4)*46^(1/2)*y})

    (2^(1/2)*x-(3/4)*2^(1/2)*y)^2+(23/8)*y^2

    (1/8)*(4*x-3*y)^2+(23/8)*y^2

    and we have rewritten the quadratic form in an explicitly nonnegative form.

     

    Another way to the sum of squares would be via the othogonal similarity A = U.Lambda.Transpose(U), where U is an orthogonal matrix of eigenvectors and Lambda is diagonal with eigenvalues on the diagonal. This form works even if the matrix is not positive (semi)definite.

     

    In this simple case, Maple has some other ways of showing that the quadratic form is non-negative for real x,y

    Student[Precalculus]:-CompleteSquare(p1,x);

    2*(x-(3/4)*y)^2+(23/8)*y^2

    Without assumptions, is correctly decides p1 is not always nonnegative, and an example of this for complex x and y is easily found. With assumptions, is fails.

    is(p1,nonnegative);
    eval(p1,{x=I,y=I});
    is(p1,nonnegative) assuming real;

    false

    -3

    FAIL

    At least in Maple 2017, solve suggests any x and y will do, which is not quite right

    solve(p1>=0);

    {x = x, y = y}

    In the next worksheet, I implement this method in a general procedure IsQformNonNeg, which works as well as IsDefinite does. For most cases of interest (integer or rational coefficients) there are no problems. For floating point coefficients, as always, numerical roundoff issues arise, and I dealt with this by giving warnings. (Rank is more robust in these cases than IsDefinite, but since this case can be better dealt with by converting floats to rationals, I haven't worked too hard on this - perhaps IsDefinite will be improved.)

     

    The original example 2*(x^2 - x*y - x*z + y^2)  is dealt with as an example in the next worksheet

     

     

    Download QformPost.mw

     

    I’ll admit it. There are times when I don't fully understand every mathematical advancement each release of Maple brings. Given the breadth of what Maple does, I guess that isn't surprising.

    In development meetings, I make the pretence of keeping up by looking serious, nodding knowingly and occasionally asking to go back to the previous slide “for a minute”. I’ve been doing this since 2008 and no one’s caught on yet.

    But I do understand

    • the joy on a user’s (Zoom) face when they finally solve a complex problem with a new version of Maple
    • the smiley emojis that students send us when they understand a tricky math concept with the help of an improved Maple tutor
    • and the wry smile on a developer’s face when they get to work on a project they really want to work on, and the bigger smile when that project gets positive feedback

    These are all moments that give me that magic dopamine hit.

    The job that Karishma and I have is to make users happy. We don’t have to be top-flight mathematicians, engineers or computer scientists to do that. We just have to know what itch to scratch.

    Here’s some things I think might give you that dopamine hit when you get your hands on Maple 2021. You can also explore the new release yourself at What’s New in Maple 2021.

    Worksheet mode has been my go-to interface for when I just want to get stuff done. This is mostly because worksheet mode always felt like a more structured environment for developing math when I didn’t have all the steps planned out in advance, and I found that structure helpful. I’d use Document mode when I needed to use the Context Panel for math operations and didn’t want to see the commands, or I needed to create a nice looking document without input carets. And this was fine – each mode has its own strengths and uses – but I what I really wanted was the best of both worlds in a single environment.

    This year, we’ve made one change that has let me transition far more of my work into Document mode.

    In Document Mode, pressing Enter in a document block (math input) now always moves the cursor to the next math input (in previous releases, the cursor may have moved to the start of the next line of text).

    This means you can now quickly update parameters and see the downstream effects with just the Enter key – previously, a key benefit of worksheet mode only.

    There’s another small change we’ve made - inserting new math inputs.  In previous releases of Maple, you could only insert new document blocks above the in-focus block using a menu item or a three-key shortcut.

    In Maple 2021, if you move the insertion point to the left of a document block (Home position), the cursor is now bold, as illustrated here:

    Now, if you press Enter, the in-focus prompt is moved down and a new empty math input is created.

    Once you get used to this change, Ctrl+Shift+K seems like a distance memory!

    @Scot Gould logged a request that Maple numerically solve a group of differential equations collected together in a vector. And now you can!

    Before Maple 2021, this expression was unchanged after evaluation. Now, it is satisfyingly simpler.

    We’ve dramatically increased the scope of the signal processing package.             

    My favorite addition is the MUSIC function. With some careful tuning, you can generate a pseudo power spectrum at frequencies smaller than one sample.

    First generate a noisy data set with three frequencies (two frequencies are closer than one DFT bin).

    with(SignalProcessing): 
    num_points:= 2^8: 
    sample_rate := 100.0:
    T := Vector( num_points, k -> 2 * Pi * (k-1) / sample_rate, 'datatype' = 'float[8]' ): 
    noisy_signal:=Vector( num_points, k -> 5 * sin( 10.25 * T[k] ) + 3 * sin( 10.40 * T[k] ) - 7 * sin( 20.35 * T[k] )) + LinearAlgebra:-RandomVector(num_points, generator=-10..10):
    dataplot(noisy_signal, size = [ 800, 400 ], style = line)

     

    Now generate a standard periodogram

    Periodogram( noisy_signal, samplerate = sample_rate, size = [800, 400] )

    This approach can’t discriminate between the two closely spaced frequencies.

    And now the MUSIC pseudo spectrum

    MUSIC( noisy_signal, samplerate = sample_rate, dimension = 6, output = plot );

    The Maple Quantum Chemistry Toolbox from RDMChem, a separate add-on product to Maple, is a powerful environment for the computation and visualization of the electronic structure of molecules. I don’t pretend to understand most of what it does (more knowing nods are required). But I did get a kick out of its new molecular dictionary. Did you know that caffeine binds to adenosine receptors in the central nervous system (CNS), which inhibits adenosine binding? Want to know more about the antiviral drug remdesivir? Apparently it looks like this:

    We put a lot of work into resources for students and educators in this release, including incorporating study guides for Calculus, Precalculus, and Multivariate Calculus, a new student package for ODEs, and the ability to obtain step-by-step solutions to even more problems.  But my favourite thing out of all this work is the new SolvePractice command in the Grading Tools package.  Because it lets you build an application that does this:

    I like this for three main reasons:

    1. It lets students practise solving equations in a way that actually helps them figure out what they’ve done wrong, saving them from a spiral of frustration and despair
    2. The same application can be shared via Maple Learn for students to use in that environment if they don’t have Maple
    3. The work we did to create that “new math entry box” can also be used to create other Maple applications with unknown numbers of inputs (see DocumentTools). I’m definitely planning on using this feature in my own applications.

    Okay, yes, we know. Up until recently, our LaTeX export has been sadly lacking. It definitely got better last year, but we knew it still wasn’t good enough. This year, it’s good. It’s easy. It works.  And it’s not just me saying this. The feedback we got during the beta period on this feature was overwhelmingly positive.

    That’s just the tip of the Maple 2021 iceberg of course. You can find out more at What’s New in Maple 2021.  Enjoy!

     

    Maple strings contain extended ASCII characters (codes 1..255). 
    The international characters such as  î, ș, Å, Ø ,Ă, Æ, Ç are multi-byte encoded. They are ignored by the Maple engine but are known to the user interface which uses the UTF-8 encoding.
    The package StringTools does not support this encoding. However it is not difficult to manage these characters using Python commands (included in the Maple distribution now).
    Here are the UTF-8 versions of the Maple procedures length and substring.
    You may want to improve these procedures, or to add new ones (my knowledge of Python is very limited).

    LEN:=proc(s::string) Python:-EvalFunction("len",s) end proc:
    
    SS:=proc(s::string, mn::{integer, range(({integer,identical()}))})
      local m,n;
      if type(mn,integer) then m,n := mn$2 else m:=lhs(mn); n:=rhs(mn) fi; 
      if m=NULL then m:=1 fi; if n=NULL then n:=-1 fi;
      if n=-1 then n:=LEN(s) elif n<0 then n:=n+1 fi;
      if m=-1 then m:=LEN(s) elif m<0 then m:=m+1 fi;
      Python:-EvalString(cat("\"",  s, "\"", "[", m-1, ":", n, "]"  ));
    end proc:
    

    LEN("Canada"), length("Canada");
                                  6, 6

    s:="România":
    LEN(s), length(s);
                                  7, 8

    SS(s, 1..), SS(s, 1..-3), SS(s, 1..1), SS(s, -7..2), SS(s,1), SS(s,-1); 
                "România", "Român", "R", "Ro", "R", "a"

    Hi Mapleprimes,

    Per your request.

    A_prime_producing_quadratic_expression_2019_(2).pdf

    bye

     

    Download FeynmanIntegrals.mw

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

    diff(abs(z), z)  returns abs(1, z)  and the latter, for a numeric z, is defined only for a nonzero real z.
    However,  functions such as abs(I+sin(t)) are (real) differentiable for a real t and diff should work. It usually does, but not always.

    restart
    f:= t -> abs(GAMMA(2*t+I)):  # We want D(f)(1)
    D(f)(1): 
    evalf(%);  # Error, (in simpl/abs) abs is not differentiable at non-real arguments
    D(f)(1); simplify(%); 
    evalf(%);   # 0.3808979508 + 1.161104935*I,  wrong
    

    The same wrong results are obtained with diff instead of D

    diff(f(t),t):   # or  diff(f(t),t) assuming t::real; 
    eval(%,t=1);
    simplify(%); evalf(%);   # wrong, should be real
    

    To obtain the correct result, we could use the definition of the derivative:

    limit((f(t)-f(1))/(t-1), t=1); evalf(%); # OK 
    fdiff(f(t), t=1);    # numeric, OK
    

       

           0.8772316598
           0.8772316599

    Note that abs(1, GAMMA(2 + I)); returns 1; this is also wrong, it should produce an error because  GAMMA(2+I) is not real;
     

    Let's redefine now `diff/abs`  and redo the computations.

    restart
    `diff/abs` := proc(u, z)   # implements d/dx |f(x+i*y|) when f is analytic and f(...)<>0
    local u1:=diff(u,z);
    1/abs(u)*( Re(u)*Re(u1) + Im(u)*Im(u1) )
    end:
    f:= t -> abs(GAMMA(2*t+I));
    D(f)(1); evalf(%);   # OK now
    

                   

             0.8772316597

    Now diff works too.

    diff(f(t),t);
    eval(%,t=1);
    simplify(%); evalf(%);   # it works
    

    This is a probably a very old bug which may make diff(u,x)  fail for expressions having subespressions abs(...) depending on x.

    However it works  using assuming x::real, but only if evalc simplifies u.
    The problem is actually more serious because diff/ for Re, Im, conjugate should be revized too. Plus some other related things. 

    The Putnam 2020 Competition (the 81st) was postponed to February 20, 2021 due to the COVID-19 pandemic, and held in an unofficial mode with no prizes or official results.

    Four of the problems have surprisingly short Maple solutions.
    Here they are.

    A1.  How many positive integers N satisfy all of the following three conditions?
    (i) N is divisible by 2020.
    (ii) N has at most 2020 decimal digits.
    (iii) The decimal digits of N are a string of consecutive ones followed by a string of consecutive zeros.

    add(add(`if`( (10&^m-1)*10&^(n-m) mod 2020 = 0, 1, 0), 
    n=m+1..2020), m=1..2020);
    

           508536

     

    A2.  Let k be a nonnegative integer.  Evaluate  

    sum(2^(k-j)*binomial(k+j,j), j=0..k);
    

            4^k

     

    A3.  Let a(0) = π/2, and let a(n) = sin(a(n-1)) for n ≥ 1. 
    Determine whether the series   converges.

    asympt('rsolve'({a(n) = sin(a(n-1)),a(0)=Pi/2}, a(n)), n, 4);
    

                

    a(n) ^2 being equivalent to 3/n,  the series diverges.

     

    B1.  For a positive integer n, define d(n) to be the sum of the digits of n when written in binary
     (for example, d(13) = 1+1+0+1 = 3). 

    Let   S =  
    Determine S modulo 2020.

    d := n -> add(convert(n, base,2)):
    add( (-1)^d(k) * k^3, k=1..2020 ) mod 2020; 
    

            1990

     

    Presenters:

    Affiliated Research Professor Mohammad Khoshnevisan

    Physics Department, Northeastern University

    United States of America

    &

    Behzad Mohasel Afshari, Admitted Ph.D. student

    School of Advanced Manufacturing & Mechanical Engineering

    University of South Australia

    Australia

    Note: This webinar is free. For registration, please send an e-mail to m.khoshnevisan@ieee.org. The registration link will be sent to all the participants on April 26, 2021. Maximum number of participants =60

     

    Vibrational Mechanics - Practical Applications- Animation 1

    Vibrational Mechanics - Practical Applications- Animation 2

    Vibrational Mechanics - Practical Applications- Animation 3

    I’m very pleased to announce that the Maple Calculator app now offers step-by-step solutions. Maple Calculator is a free mobile app that makes it easy to enter, solve, and visualize mathematical problems from algebra, precalculus, calculus, linear algebra, and differential equations, right on your phone.  Solution steps have been, by far, the most requested feature from Maple Calculator users, so we are pretty excited about being able to offer this functionality to our customers. With steps, students can use the app not just to check if their own work is correct, but to find the source of the problem if they made a mistake.  They can also use the steps to learn how to approach problems they are unfamiliar with.

    Steps are available in Maple Calculator for a wide variety of problems, including solving equations and systems of equations, finding limits, derivatives, and integrals, and performing matrix operations such as finding inverses and eigenvalues.

    (*Spoiler alert* You may also want to keep a look-out for more step-by-step solution abilities in the next Maple release.)

    If you are unfamiliar with the Maple Calculator app, you can find more information and app store links on the Maple Calculator product page.  One feature in particular to note for Maple and Maple Learn users is that you can use the app to take a picture of your math and load those math expressions into Maple or Maple Learn.  It makes for a fast, accurate method for entering large expressions, so even if you aren’t interested in doing math on your phone, you still might find the app useful.

    I make a maple worksheet for generating Pythagorean Triples Ternary Tree :

    Around 10,000 records in the matrix currently !

    You can set your desire size or export the Matrix as text ...

    But yet ! I wish to understand from you better techniques If you have some suggestion ?

    the mapleprimes Don't load my worksheet for preview so i put a screenshot !

    Pythagoras_ternary.mw

    Pythagoras_ternary_data.mw

    Pythagoras_ternary_maple.mw

     

     

     

                We announce the release of a new book, of title Fourier Transforms for Chemistry, which is in the form of a Maple worksheet.  This book is freely available through Maple Application Centre, either as a Maple worksheet with no output from commands or as a .pdf file with all output and plots.

                This interactive electronic book in the form of a Maple worksheet comprises six chapters containing Maple commands, plus an overview 0 as an introduction.  The chapters have content as follows.

      -   1    continuous Fourier transformation

      -   2    electron diffraction of a gaseous sample

      -   3    xray diffraction of a crystal and a powder

      -   4    microwave spectrum of a gaseous sample

      -   5    infrared and Raman spectra of a liquid sample

      -   6    nuclear magnetic resonance of various samples

                This book will be useful in courses of physical chemistry or devoted to the determination of molecular structure by physical methods.  Some content, duly acknowledged, has been derived and adapted from other authors, with permission.

    Hi all,

    Look at my pretty plot.  It is defined by

    x=sin(m*t);
    y=sin(n*t);

    where n and m are one digit positive integers.

    You can modify my worksheet with different values of n and m.

    pillow_curve.mw

    pillow_curve.pdf

    The name of the curve may be something like Curve of Lesotho.  I saw this first in one of my father's books.

    Regards,
    Matt

     

    This doc is just an example for uploading with my post.

    DocumentsAttachmentUsingLinks_in_MaplePrimes_Post.mw

    The above doc/worksheet can be clicked and viewed.

    Youtube URL is given below. This also can be clicked and viewed. Thanks to Carl Love's suggestion, I modified using the chain link in the editor.

    https://youtu.be/0pDa4FWMSQo

     

     

     

     

     

    Hello Congratulations on the great product! Isn't time time Maple got a dark theme for us night owls ! Thanx

    First 11 12 13 14 15 16 17 Last Page 13 of 289