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
  • Has anyone tried to run the following in Maple command-line mode (i.e. in terminal window, type "maple" to start it without the graphic interface),

    "

    expr1:=t1+t2+t3+t4+t5+t6+t7+t8+t9+t10+t11+t12+t13+t14+t15+t16+t17+t18+t19+t20+t21+t22+t0-t0+t23;
    expr2:=t1+t2+t3+t4+t5+t6+t7+t8+t9+t10+t11+t12+t13+t14+t15+t16+t17+t18+t19+t20+t21+t22+t0-t0+t23;
    print(expr1-expr2);

    "

    Surprisingly, I didn't get "0" with my Maple 17 (under Linux platform) or 18 (under Mac OSX platform). Can anyone help me confirm this?

    As an Arts major at the University of Waterloo, my first day as a co-op student in the Maplesoft marketing department was a bit of a blur. I was hearing a lot of mathematical jargon that I did not understand. Other than a mandatory statistics class in my second year at university, I haven’t taken a math course since high school, over two years ago. I spent my first week as the marketing assistant educating myself about the basics of marketing complex math software. My favourite method for doing this was to read through the Maplesoft user stories. As I read, I was amazed by the variety of customers and the endless applications that Maplesoft products had contributed to. It became apparent that math is a part of every industry and it is in the design of many products. There were a few stories from the robotics industry in particular that really sparked my interest in the software that I now market. 

     

    We’ve all seen the futuristic movies where robots gradually get smarter and smarter, developing enough intelligence to control the human race, and eventually, take over the world. As it turns out, Engineered Arts, a UK robotics company, is bringing us one step closer to that reality. Well… they’re maybe not ready for world domination just yet, but they are working on one of the most advanced and human-like robots that the world has seen outside of a Hollywood production, and they are doing this using MapleSim. The first generation of the biologically inspired robot was named RoboThespian. With his ability to speak and sing, he was used to educate, entertain, and investigate new developments in robotics. However, he was largely static. That’s when the engineers began work on generation two of their robot, named Byrun, who has the ability to walk, run, jump, and hop as well as speak and sing. Byrun can even express thousands of different facial features thanks to his projective head display. This makes him even more human-like; scary or cool? I’m thinking a bit of both. If you’re interested in the story, click here to continue reading about it.

     

    Another unexpected use of MapleSim was adopted as a joint research project between Ryerson University and McMaster University. I never would have guessed that math software could be applied to the process of human birth. Nevertheless, a group of researchers used MapleSim to simulate induced labour with a Foley Catheter. In short, this is when a small balloon is inserted through the opening of the cervix creating a downward pressure that effectively tricks the cervix into opening for labour to begin. Though the application of this story surprised me, it makes a lot of sense to use modelling software for a research project like this. It’s more efficient to get all of the kinks out of the virtual model in a simulation program before building a physical model that could end up being dysfunctional. According to Dr. James Andrew Smith, a Biomedical Engineering researcher and Assistant Professor in Electrical and Computer Engineering, who is the lead researcher on the project, “Modern engineering has a lot to offer the medical world,” especially when it saves on time and cost. Click here to read more about this story and to watch a video of the finished model.

     

    After two months at Maplesoft, I have noticed that I don’t look at things in the same way that I used to. I find myself staring at a toaster and imagining how it was designed. Did the engineers use advanced physical simulation and modeling software to make the most efficient toaster possible? Well, if it can still only toast on one side then, my guess is no! Maplesoft has many more user stories that I haven’t had the chance to read yet. With customers ranging from BMW to Pixar, Maplesoft continues to expand its customer base and adapt its software to support more and more unique applications. I can’t wait to hear what new and unexpected things will be done with the software next!

     

    We are looking for enthusiastic Maple users to become Maple Ambassadors, to inspire and educate others about the benefits that Maple brings to education.

     

    As an Ambassador, you will have the opportunity to influence the development of Maple through regular meetings with Maplesoft developers, get advance news of upcoming features and products, get assistance with Maple events on your campus, and more. In return, we ask that you do what you are probably already doing – sharing your experiences with Maple, answer questions on forums (like this one!), sharing your Maple applications, providing us with feedback, etc.

     

    You can find more information and an application form at Maple Ambassador Program. We’re looking forward to hearing from you!

     

    Daniel

    Maple Product Management

    Here at Maplesoft, we like to foster innovation in technological development. Whether that is finding solutions to global warming, making medical discoveries that save millions, or introducing society to very advanced functional robots, Maplesoft is happy to contribute, support and encourage innovative people and organizations researching these complex topics. This year, we are delighted to have sponsored two contests in the robotics field that provide opportunities to think big and make an impact: Create the Future Design Contest and the International Space Apps Challenge. 

    Create the Future Design Contest

    Established in 2002, and organized by TechBriefs, the goal of the Create the Future Design Contest is to help engineers bring their product design ideas to life. The overall ‘mission of the contest is to benefit humanity, the environment, and the economy.’ This year, there were a record 1,159 new product ideas submitted by students, engineers, and entrepreneurs from all over the globe. In the machinery/automation/robotics category, which Maplesoft sponsored, the project with the top votes was designed by two engineers who chose to name their innovation CAP Exoskeleton, a type of assistive robotic machine designed to aid the user in walking, squatting, and carrying heavy loads over considerable distances. It can either be used to enhance physical endurance for military purposes or to help the physically impaired perform daily tasks. A contest like Create the Future is a perfect opportunity, for engineers in particular, to learn, explore, and create. 

    The CAP Exoskeleton - ©2015 Create the Future Design Contest

     

    International Space Apps Challenge

    The exploration of space has always been unique in its search for knowledge. The International Space Apps Challenge, a NASA incubator innovation program, is an ‘international mass collaboration focused on space exploration that takes place over 48-hours in cities around the world’. It is a unique global competition where people rally together to find solutions to real world problems, bringing humanity closer to understanding the Earth, the universe, the human race, and robotics. These goals, the organizers believe, can be reached much faster if we combine the power of the seven billion or so brains that occupy the planet, not forgetting the six that are currently orbiting above us aboard the International Space Station. The competition is open to people of all ages and in all fields, including engineers, technologists, scientists, designers, artists, educators, students, entrepreneurs, and so on. With an astounding 13,846 participants from all over the world, several highly innovative solutions were presented. 

    Maplesoft sponsored the University of York location in the UK where the winning team of five modeled an app called CropOp, a communication tool that connects the government to local farmers with the goal of providing instantaneous, crucial information regarding pest breakout warnings, extreme weather, and other important updates. This UK-based team believes the quality and quantity of food produced will be improved, especially benefiting the undernourished communities in Africa. Maplesoft supports the Space Apps Challenge because it proves that collaboration makes for bigger and better discoveries that can save millions of people.

     

    Donating Maplesoft software for contestants to use is part of the sponsorship. The real delight is to wait and see what innovative concepts they come up with. When we sponsor contests like these, we find it benefits our software as much as it does the participants. Plus, if the contestants can provide solutions to real world issues, well, that benefits everyone! 

    ABSTRACT. In this paper we demonstrate how the simulation of dynamic systems engineering has been implemented with graphics software algorithms using maple and MapleSim. Today, many of our researchers the computational modeling performed by inserting a piece of code from static work; with these packages we have implemented through the automation components of kinematics and dynamics of solids simple to complex.

    It is very important to note that once developed equations study; recently we can move to the simulation; to thereby start the physical construction of the system. We will use mathematical and computational methods using the embedded buttons which lie in the dynamics leaves and viewing platform cloud of Maplesoft and power MapleNet for online evaluation of specialists in the area. Finally they will see some work done; which integrate various mechanical and computational concepts implemented for companies in real time and pattern of credibility.

     

    Selasi_2015.pdf

    (in spanish)

     

    Lenin Araujo Castillo

     

     

    I have two linear algebra texts [1, 2]  with examples of the process of constructing the transition matrix Q that brings a matrix A to its Jordan form J. In each, the authors make what seems to be arbitrary selections of basis vectors via processes that do not seem algorithmic. So recently, while looking at some other calculations in linear algebra, I decided to revisit these calculations in as orderly a way as possible.

     

    First, I needed a matrix A with a prescribed Jordan form. Actually, I started with a Jordan form, and then constructed A via a similarity transform on J. To avoid introducing fractions, I sought transition matrices P with determinant 1.

     

    Let's begin with J, obtained with Maple's JordanBlockMatrix command.

     

    • 

    Tools_Load Package: Linear Algebra

    Loading LinearAlgebra

    J := JordanBlockMatrix([[2, 3], [2, 2], [2, 1]])

    Matrix([[2, 1, 0, 0, 0, 0], [0, 2, 1, 0, 0, 0], [0, 0, 2, 0, 0, 0], [0, 0, 0, 2, 1, 0], [0, 0, 0, 0, 2, 0], [0, 0, 0, 0, 0, 2]])

     

    ``

    The eigenvalue lambda = 2 has algebraic multiplicity 6. There are sub-blocks of size 3×3, 2×2, and 1×1. Consequently, there will be three eigenvectors, supporting chains of generalized eigenvectors having total lengths 3, 2, and 1. Before delving further into structural theory, we next find a transition matrix P with which to fabricate A = P*J*(1/P).

     

    The following code generates random 6×6 matrices of determinant 1, and with integer entries in the interval [-2, 2]. For each, the matrix A = P*J*(1/P) is computed. From these candidates, one A is then chosen.

     

    L := NULL:

     

     

    After several such trials, the matrix A was chosen as

     

    A := Matrix(6, 6, {(1, 1) = -8, (1, 2) = -8, (1, 3) = 4, (1, 4) = -8, (1, 5) = -1, (1, 6) = 5, (2, 1) = -1, (2, 2) = 3, (2, 3) = 1, (2, 4) = -2, (2, 5) = 2, (2, 6) = -1, (3, 1) = -13, (3, 2) = -9, (3, 3) = 8, (3, 4) = -11, (3, 5) = 1, (3, 6) = 5, (4, 1) = 3, (4, 2) = 3, (4, 3) = -1, (4, 4) = 4, (4, 5) = 1, (4, 6) = -2, (5, 1) = 7, (5, 2) = 5, (5, 3) = -3, (5, 4) = 6, (5, 5) = 2, (5, 6) = -3, (6, 1) = -6, (6, 2) = -2, (6, 3) = 3, (6, 4) = -7, (6, 5) = 2, (6, 6) = 3})

     

     

    for which the characteristic and minimal polynomials are

     

    factor(CharacteristicPolynomial(A, lambda))

    (lambda-2)^6

    factor(MinimalPolynomial(A, lambda))

    (lambda-2)^3

     

     

    So, if we had started with just A, we'd now know that the algebraic multiplicity of its one eigenvalue lambda = 2 is 6, and there is at least one 3×3 sub-block in the Jordan form. We would not know if the other sub-blocks were all 1×1, or a 1×1 and a 2×2, or another 3×3. Here is where some additional theory must be invoked.

    ``

    The null spaces M[k] of the matrices (A-2*I)^k are nested: `⊂`(`⊂`(M[1], M[2]), M[3]) .. (), as depicted in Figure 1, where the vectors a[k], k = 1, () .. (), 6, are basis vectors.

     

    Figure 1   The nesting of the null spaces M[k] 

     

     

    The vectors a[1], a[2], a[3] are eigenvectors, and form a basis for the eigenspace M[1]. The vectors a[k], k = 1, () .. (), 5, form a basis for the subspace M[2], and the vectors a[k], k = 1, () .. (), 6, for a basis for the space M[3], but the vectors a[4], a[5], a[6] are not yet the generalized eigenvectors. The vector a[6] must be replaced with a vector b[6] that lies in M[3] but is not in M[2]. Once such a vector is found, then a[4] can be replaced with the generalized eigenvector `≡`(b[4], (A-2*I)^2)*b[6], and a[1] can be replaced with `≡`(b[1], A-2*I)*b[4]. The vectors b[1], b[4], b[6] are then said to form a chain, with b[1] being the eigenvector, and b[4] and b[6] being the generalized eigenvectors.

     

    If we could carry out these steps, we'd be in the state depicted in Figure 2.

     

    Figure 2   The null spaces M[k] with the longest chain determined

     

     

    Next, basis vector a[5] is to be replaced with b[5], a vector in M[2] but not in M[1], and linearly independent of b[4]. If such a b[5] is found, then a[2] is replaced with the generalized eigenvector `≡`(b[2], A-2*I)*b[5]. The vectors b[2] and b[5] would form a second chain, with b[2] as the eigenvector, and b[5] as the generalized eigenvector.

    ``

    Define the matrix C = A-2*I by the Maple calculation

     

    C := A-2

    Matrix([[-10, -8, 4, -8, -1, 5], [-1, 1, 1, -2, 2, -1], [-13, -9, 6, -11, 1, 5], [3, 3, -1, 2, 1, -2], [7, 5, -3, 6, 0, -3], [-6, -2, 3, -7, 2, 1]])

     

    ``

    and note

     

    N := convert(NullSpace(C), list)

    [Vector(6, {(1) = 1/2, (2) = 1/2, (3) = 1, (4) = 0, (5) = 0, (6) = 1}), Vector(6, {(1) = -1/2, (2) = -1/2, (3) = -2, (4) = 0, (5) = 1, (6) = 0}), Vector(6, {(1) = -2, (2) = 1, (3) = -1, (4) = 1, (5) = 0, (6) = 0})]

    NN := convert(LinearAlgebra:-NullSpace(C^2), list)

    [Vector(6, {(1) = 2/5, (2) = 0, (3) = 0, (4) = 0, (5) = 0, (6) = 1}), Vector(6, {(1) = 0, (2) = 0, (3) = 0, (4) = 0, (5) = 1, (6) = 0}), Vector(6, {(1) = -1, (2) = 0, (3) = 0, (4) = 1, (5) = 0, (6) = 0}), Vector(6, {(1) = 2/5, (2) = 0, (3) = 1, (4) = 0, (5) = 0, (6) = 0}), Vector(6, {(1) = -3/5, (2) = 1, (3) = 0, (4) = 0, (5) = 0, (6) = 0})]

     

    ``

    The dimension of M[1] is 3, and of M[2], 5. However, the basis vectors Maple has chosen for M[2] do not include the exact basis vectors chosen for M[1].

     

    We now come to the crucial step, finding b[6], a vector in M[3] that is not in M[2] (and consequently, not in M[1] either). The examples in [1, 2] are simple enough that the authors can "guess" at the vector to be taken as b[6]. What we will do is take an arbitrary vector in M[3] and project it onto the 5-dimensional subspace M[2], and take the orthogonal complement as b[6].

    ``

    A general vector in M[3] is

     

    Z := `<,>`(u || (1 .. 6))

    Vector[column]([[u1], [u2], [u3], [u4], [u5], [u6]])

     

    ``

    A matrix that projects onto M[2] is

     

    P := ProjectionMatrix(NN)

    Matrix([[42/67, -15/67, 10/67, -25/67, 0, 10/67], [-15/67, 58/67, 6/67, -15/67, 0, 6/67], [10/67, 6/67, 63/67, 10/67, 0, -4/67], [-25/67, -15/67, 10/67, 42/67, 0, 10/67], [0, 0, 0, 0, 1, 0], [10/67, 6/67, -4/67, 10/67, 0, 63/67]])

     

    ``

    The orthogonal complement of the projection of Z onto M[2] is then -P*Z+Z. This vector can be simplified by choosing the parameters in Z appropriately. The result is taken as b[6].

     

    b[6] := 67*(eval(Z-Typesetting:-delayDotProduct(P, Z), Equate(Z, UnitVector(1, 6))))*(1/5)

    Vector[column]([[5], [3], [-2], [5], [0], [-2]])

    NULL

     

    ``

    The other two members of this chain are then

     

    b[4] := Typesetting:-delayDotProduct(C, b[6])

    Vector[column]([[-132], [-12], [-169], [40], [92], [-79]])

    b[1] := Typesetting:-delayDotProduct(C, b[4])

    Vector[column]([[-67], [134], [67], [67], [0], [134]])

     

    ``

    A general vector in M[2] is a linear combination of the five vectors that span the null space of C^2, namely, the vectors in the list NN. We obtain this vector as

     

    ZZ := add(u || k*NN[k], k = 1 .. 5)

    Vector[column]([[(2/5)*u1-u3+(2/5)*u4-(3/5)*u5], [u5], [u4], [u3], [u2], [u1]])

     

    ``

    A vector in M[2] that is not in M[1] is the orthogonal complement of the projection of ZZ onto the space spanned by the eigenvectors spanning M[1] and the vector b[4]. This projection matrix is

     

    PP := LinearAlgebra:-ProjectionMatrix(convert(`union`(LinearAlgebra:-NullSpace(C), {b[4]}), list))

    Matrix([[69/112, -33/112, 19/112, -17/56, 0, 19/112], [-33/112, 45/112, 25/112, 13/56, 0, 25/112], [19/112, 25/112, 101/112, 1/56, 0, -11/112], [-17/56, 13/56, 1/56, 5/28, 0, 1/56], [0, 0, 0, 0, 1, 0], [19/112, 25/112, -11/112, 1/56, 0, 101/112]])

     

    ``

    The orthogonal complement of ZZ, taken as b[5], is then

     

    b[5] := 560*(eval(ZZ-Typesetting:-delayDotProduct(PP, ZZ), Equate(`<,>`(u || (1 .. 5)), LinearAlgebra:-UnitVector(4, 5))))

    Vector[column]([[-9], [-59], [17], [58], [0], [17]])

     

    ``

    Replace the vector a[2] with b[2], obtained as

     

    b[2] := Typesetting:-delayDotProduct(C, b[5])

    Vector[column]([[251], [-166], [197], [-139], [-112], [-166]])

     

     

    The columns of the transition matrix Q can be taken as the vectors b[1], b[4], b[6], b[2], b[5], and the eigenvector a[3]. Hence, Q is the matrix

     

    Q := `<|>`(b[1], b[4], b[6], b[2], b[5], N[3])

    Matrix([[-67, -132, 5, 251, -9, -2], [134, -12, 3, -166, -59, 1], [67, -169, -2, 197, 17, -1], [67, 40, 5, -139, 58, 1], [0, 92, 0, -112, 0, 0], [134, -79, -2, -166, 17, 0]])

     

    ``

    Proof that this matrix Q indeed sends A to its Jordan form consists in the calculation

     

    1/Q.A.Q = Matrix([[2, 1, 0, 0, 0, 0], [0, 2, 1, 0, 0, 0], [0, 0, 2, 0, 0, 0], [0, 0, 0, 2, 1, 0], [0, 0, 0, 0, 2, 0], [0, 0, 0, 0, 0, 2]])``

     

    NULL

    The bases for M[k], k = 1, 2, 3, are not unique. The columns of the matrix Q provide one set of basis vectors, but the columns of the transition matrix generated by Maple, shown below, provide another.

     

    JordanForm(A, output = 'Q')

    Matrix([[-5, -43/5, -9/5, 7/5, -14/5, -3/5], [10, -4/5, -6/25, 1/5, -6/25, -3/25], [5, -52/5, -78/25, 13/5, -78/25, -39/25], [5, 13/5, 38/25, -2/5, 38/25, 4/25], [0, 6, 42/25, -1, 42/25, 21/25], [10, -29/5, -11/25, 1/5, -11/25, 7/25]])

     

    ``

    I've therefore added to my to-do list the investigation into Maple's algorithm for determining an appropriate set of basis vectors that will support the Jordan form of a matrix.

     

    References

     

    NULL

    [1] Linear Algebra and Matrix Theory, Evar Nering, John Wiley and Sons, Inc., 1963

    [2] Matrix Methods: An Introduction, Richard Bronson, Academic Press, 1969

     

    NULL

    ``

    Download JordanForm_blog.mw

    There are few ways to determine the day of the year.  The first way I show here is a bug.

    with(Finance):
    FormatDate("Aug-4-2015","%j")
                                                 "%j"

    it was described on the help page that the options can be of the form of any described in StringTools[ParseTime] of which %j did not work.  Fortunately there's other ways.

    with(StringTools):
    ParseTime("%m-%d-%Y", "8-4-2015"):-yearDay
                                                                           216

    with(Finance):
    DayCount("jan-1-2015", "aug-4-2015")+1
                                                                      216

     

     

                                                                  

     

     

    Some time ago, @marc005 asked how he could send an email from the Maple command line.

    Why would you want to do this? Using Maple's functionality, you could programatically construct an email - perhaps with the results of a computation - and email it yourself or someone else.

    I originally posted a solution that involved communicating with a locally-installed SMTP server using the Sockets package. But of course, you need to set up an SMTP server and ensure the appropriate ports are open.

    I recently found a better solution. Mailgun (http://mailgun.com) is a free email delivery service with an web-based API. You can communicate with this API via the URL package; simply send Mailgun a URL:-Post() message that contains account-specific information, and the text of your email.

    The general steps and Maple commands are given below, and you can download the worksheet here.

    Note: Maplesoft have no affiliation with Mailgun.

    Step 1:
    Sign up for a free Mailgun account.

    Step 2:
    In your Mailgun account, go to the Domains section - it should look like the screengrab below (account-specific information has been blanked).

    Note down the API Base URL and the API key.

    • the API Base URL looks like https://api.mailgun.net/v3/sandboxXXXXXXXXXXXXXXXXXXXXXXXXXXX.mailgun.org.  
    • •the API Key looks like key-XXXXXXXXXXXXXXXXXXXXXXXXXX

    Step 3:

    In Maple, define strings containing your own API Base URL and API Key. Also, define the recipient's email address, the email you want the recipient to reply to, the email subject and email body.

    >restart:
    >APIBaseURL := "https://api.mailgun.net/v3/sandboxXXXXXXXXXXXXXXXXXXXXXXXX.mailgun.org":
    >APIKey:="key-XXXXXXXXXXXXXXXXXXXXXXXX":
    >toEmail := "xxxxx@xxxxxx.com":
    >fromEmail:="First Last <FirstLast@Domain.com>":
    >subject:= "Email Subject Goes Here":
    >emailBody := "I'd rather have a bottle in front of me than a frontal lobotomy":

    Step 4:
    Run the following code

    > URL:-Post(cat(APIBaseURL,"/messages"),[
    "from"=fromEmail,"to"=toEmail,
    "subject"=subject,
    "text"= emailBody],
    user="api",password=APIKey);

    If you've successfully sent the email, you should see something like this (account-specific information is blanked out)

    You can also send HTML emails by replacing the "text" line with "html" = str, where str is a string with your HTML code.

    For those who are running Maple and/or MapleSim on the Mac, and who may have missed an earlier question on this site, we wanted to let you know that there are some problems with running Maple and MapleSim on the new Mac OS, Mac OS X 10.11 (El Capitan). We’re working on a solution, which we expect will be ready in a few weeks. We’ll keep you posted, but in the meantime, please delay updating your Mac OS for now to avoid problems.

     

    eithne

    Earlier today, we published some changes to MaplePrimes in order to add some new features that have been requested by our users.

    Delete as Spam

    Users with a reputation score above 500 have always had the ability to remove inappropriate or spam posts using the Delete function. As of this update, a Delete as Spam feature has been added that provides some additional capabilities targeted directly at the spam messages that are posted on MaplePrimes. When this feature is used, the following occurs:

    • The message is deleted
    • The author's account is marked as a spam account and blocked
    • All other messages from the author are removed

    Since this is a powerful feature, there are also some safeguards in place to prevent accidents from occurring:

    • Only users with a reputation less than 10 can be removed in this way
    • In the event that content is ever inadvertently removed, MaplePrimes administrators have the ability to restore content removed in this way.

    Hopefully, these features make it much more difficult for spam accounts to get traction on MaplePrimes, and also reduce the time involved in policing the spam that is posted.

    Draft Messages

    You now have the ability to save a message as a draft so that you can come back to it later. All draft messages are saved in your profile and can be managed by clicking the account option at the top of every page. 

    Advanced Search

    Some powerful searching capabilities have been added to MaplePrimes with the addition of a new Advanced Search feature. Using this search allows you to quickly find questions or posts within a particular date range, by author and/or by tag.

     

    Save page as PDF

    We know that some of our members maintain personal archives of MaplePrimes content, and to make this easier, we have added a feature that generates a PDF copy of a page. This option is available in the More area that appears under every post and question.

     

    View your Replies

    Your MaplePrimes user profile page has always included archives of your posts, questions and answers. With today's update, replies are also available.

     

    In addition to these, some other minor changes & fixes were made.

    As always, thank you very much for your dedication to MaplePrimes and for your suggestions. We hope that you find these features useful and look forward to other ideas that you have!

    Like most companies today, Maplesoft monitors its website traffic, including the traffic coming to MaplePrimes. This allows us to view statistical data such as how many total visits MaplePrimes gets, how many unique visitors it gets, what countries these visitors come from, how many questions are asked and answered, how many people read but never respond to posts, etc. 

    Recently one of our regular MaplePrimes users made the comment that MaplePrimes does not reach new Maple users. We found this comment interesting because our data and traffic numbers show a different trend. MaplePrimes gets unique visitors in the hundreds of thousands each year, and since its inception, it has welcomed unique visitors in the many millions. Based on these unique visitor numbers and the thousands of common searches specifically about Maple that people are doing, we can see that many of these unique visitors are in fact new Maple users looking for resources and support as they begin using Maple. Other visitors to MaplePrimes include people who use Google (or other search engines) to find an answer to a particular mathematics or engineering question, regardless of what mathematics software they choose to use, and Google points them to MaplePrimes. There are some popular posts that were written months, even years ago, that are still getting high visitor views today, showing the longevity of the information on MaplePrimes. 

    MaplePrimes gets the majority of its visible activity from a small number of extremely active members. In public user forums around the world, these types of members are given many names – power users, friendlies, evangelists. Every active public user forum has them. On MaplePrimes, it’s this small number of active members that are highly visible. But, what our traffic data reveals is the silent majority. These people, many of them repeat visitors, are quietly reviewing the questions and answers that our evangelists are posting. The silent majority of MaplePrimes visitors are the readers; they are the quiet consumers of information. For every person that writes, comments on, or likes a post, there are thousands more that read it. 

    Here are a few more MaplePrimes traffic data points for your reference:

    • MaplePrimes is very international and draws people from all around the world. Here are the top 10 countries where the most MaplePrimes visitors come from:
      1. USA
      2. India
      3. Canada
      4. Germany
      5. China
      6. United Kingdom
      7. Brazil
      8. Australia
      9. France
      10. Denmark
    • Here are the top 5 keywords people are using in their searches on MaplePrimes:
      1. Data from plot
      2. Physics
      3. Sprintf
      4. Size of plot
      5. Fractal
    • MaplePrimes is growing at a very fast rate: Traffic (visitors to the site) and membership size is growing at nearly double the pace it was last year. The total number of posts and questions this year is also much higher compared to the same timeframe last year. 
    • Our top 5 MaplePrimes members have each visited MaplePrimes more than 1200 times and viewed a combined total of more than 10,000 pages (that is total page views, not unique page views). Our top 25 MaplePrimes members have visited at least 250 times each (many of them nearly 1000 times each) and our top 50 MaplePrimes members have visited a combined total of over 23,000 times, visiting nearly 200,000 pages. Thank you! We’re glad you like it. :-)

     

    Why hasn't mapleprimes yet been able to solve the spam problem.  There was never this long a problem with Mapleprimes 1, every morning I find spam for the last few weeks. 

    Also the timing still has yet to be fixed.  After 1 hour the times for when a post was made goes back to 0 minutes ago.

     

     

    Mathematica 10.3.0 was announced yesterday. This is the 6th release of Mathematica 10 during 16 months. I wonder its  MathematicaFunctionData and   FindFormula . At first sight, the former is an analog of FunctionAdvisor of Maple, but the latter isn't any analog. Also compare the outputs of

    Residue[Binomial[n,k],{n,-j}]

    (-1)^j/(j!*k!*(-j-k)!)

     and

    >`assuming`([residue(binomial(n, k), n = -j)], [integer, j > 0]);

                    residue(binomial(n, k), n = -j)
    Let us wait for Maple 2016.

     


    Exact solutions to Einstein’s equations” is one of those books that are difficult even to imagine: the authors reviewed more than 4,000 papers containing solutions to Einstein’s equations in the general relativity literature, collecting, classifying, discarding repetitions in disguise, and organizing the whole material into chapters according to the physical properties of these solutions. The book is already in its second edition and it is a monumental piece of work.

     

    As good as it is, however, the project resulted only in printed material, a textbook constituted of paper and ink. In 2006, when the DifferentialGeometry package was rewritten to enter the Maple library, one of the first things that passed through our minds was to bring the whole of “Exact solutions to Einstein’s equations” into Maple.

     

    It took some time to start but in 2010, for Maple 14, we featured the first 26 solutions from this book. In Maple 15 this number jumped to 61. For Maple 17 we decided to emphasize the general relativity functionality of the DifferentialGeometry package, and Maple 18 added 50 more, featuring in total 225 of these solutions - great! but still far from the whole thing …

     

    And this is when we decided to “step on the gas” - go for it, the whole book. One year later, working in collaboration with Denitsa Staicova from Bulgarian Academy of Sciences, Maple 2015 appeared with 330 solutions to Einstein’s equations. Today we have already implemented 492 solutions, and for the first time we can see the end of the tunnel: we are targeting finishing the whole book by the end of this year.

     

    Wow2! This is a terrific result. First, because these solutions are key in the area of general relativity, and at this point what we have in Maple is already the most thorough digitized database of solutions to Einstein’s equations in the world. Second, and not any less important, because within Maple this knowledge comes alive. The solutions are fully searcheable and are set by a simple call to the Physics:-g_  spacetime metric command, and that automatically sets the related coordinates, Christoffel symbols , Ricci  and Riemann  tensors, orthonormal and null tetrads , etc. All of this happens on the fly, and all the mathematics within the Maple library are ready to work with these solutions. Having everything come alive completely changes the game. The ability to search the database according to the physical properties of the solutions, their classification, or just by parts of keywords also makes the whole book concretely more useful.

     

    And, not only are these solutions to Einstein’s equations brought to life in a full-featured way through the Physics  package: they can also be reached through the DifferentialGeometry:-Library:-MetricSearch  applet. Almost all of the mathematical operations one can perform on them are also implemented as commands in DifferentialGeometry .

     

    Finally, in the Maple PDEtools package , we already have all the mathematical tools to start resolving the equivalence problem around these solutions. That is: to answer whether a new solution is or not new, or whether it can be obtained from an existing solution by transformations of coordinates of different kinds. And we are going for it.

     

    What follows is a basic illustration of what has already been implemented. As usual, in order to reproduce these results, you need to update your Physics library from the Maplesoft R&D Physics webpage.

     

    Load Physics , set the metric to Schwarzschild (and everything else automatically) in one go

    with(Physics)

    g_[sc]

    `Systems of spacetime Coordinates are: `*{X = (r, theta, phi, t)}

     

    `Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (r, theta, phi, t)}

     

    `The Schwarzschild metric in coordinates `[r, theta, phi, t]

     

    `Parameters: `[m]

     

    g[mu, nu] = (Matrix(4, 4, {(1, 1) = r/(-r+2*m), (1, 2) = 0, (1, 3) = 0, (1, 4) = 0, (2, 1) = 0, (2, 2) = -r^2, (2, 3) = 0, (2, 4) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = -r^2*sin(theta)^2, (3, 4) = 0, (4, 1) = 0, (4, 2) = 0, (4, 3) = 0, (4, 4) = (r-2*m)/r}))

    (1)

    And that is all we do :) Although the strength in Physics  is to compute with tensors using indicial notation, all of the tensor components and related properties of this metric are also derived on the fly (and no, they are not in any database). For instance these are the definition in terms of Christoffel symbols , and the covariant components of the Ricci tensor

    Ricci[definition]

    Physics:-Ricci[mu, nu] = Physics:-d_[alpha](Physics:-Christoffel[`~alpha`, mu, nu], [X])-Physics:-d_[nu](Physics:-Christoffel[`~alpha`, mu, alpha], [X])+Physics:-Christoffel[`~beta`, mu, nu]*Physics:-Christoffel[`~alpha`, beta, alpha]-Physics:-Christoffel[`~beta`, mu, alpha]*Physics:-Christoffel[`~alpha`, nu, beta]

    (2)

    Ricci[]

    Physics:-Ricci[mu, nu] = Matrix(%id = 18446744078179871670)

    (3)

    These are the 16 Riemann invariants  for Schwarzschild solution, using the formulas by Carminati and McLenaghan

    Riemann[invariants]

    r[0] = 0, r[1] = 0, r[2] = 0, r[3] = 0, w[1] = 6*m^2/r^6, w[2] = 6*m^3/r^9, m[1] = 0, m[2] = 0, m[3] = 0, m[4] = 0, m[5] = 0

    (4)

    The related Weyl scalars  in the context of the Newman-Penrose formalism

    Weyl[scalars]

    psi__0 = 0, psi__1 = 0, psi__2 = -m/r^3, psi__3 = 0, psi__4 = 0

    (5)

     

    These are the 2x2 matrix components of the Christoffel symbols of the second kind (that describe, in coordinates, the effects of parallel transport in curved surfaces), when the first of its three indices is equal to 1

    "Christoffel[~1,alpha,beta,matrix]"

    Physics:-Christoffel[`~1`, alpha, beta] = Matrix(%id = 18446744078160684686)

    (6)

    In Physics, the Christoffel symbols of the first kind are represented by the same object (not two commands) just by taking the first index covariant, as we do when computing with paper and pencil

    Christoffel[1, alpha, beta, matrix]

    Physics:-Christoffel[1, alpha, beta] = Matrix(%id = 18446744078160680590)

    (7)

    One could query the database, directly from the spacetime metrics, about the solutions (metrics) to Einstein's equations related to Levi-Civita, the Italian mathematician

    g_[civi]

    ____________________________________________________________

     

    [12, 16, 1] = ["Authors" = ["Bertotti (1959)", "Kramer (1978)", "Levi-Civita (1917)", "Robinson (1959)"], "PrimaryDescription" = "EinsteinMaxwell", "SecondaryDescription" = ["Homogeneous"]]

     

    ____________________________________________________________

     

    [12, 18, 1] = ["Authors" = ["Bertotti (1959)", "Kramer (1978)", "Levi-Civita (1917)", "Robinson (1959)"], "PrimaryDescription" = "EinsteinMaxwell", "SecondaryDescription" = ["Homogeneous"]]

     

    ____________________________________________________________

     

    [12, 19, 1] = ["Authors" = ["Bertotti (1959)", "Kramer (1978)", "Levi-Civita (1917)", "Robinson (1959)"], "PrimaryDescription" = "EinsteinMaxwell", "SecondaryDescription" = ["Homogeneous"]]

    (8)

    These solutions can be set in one go from the metrics command, just by indicating the number with which it appears in "Exact Solutions to Einstein's Equations"

    g_[[12, 16, 1]]

    `Systems of spacetime Coordinates are: `*{X = (t, x, theta, phi)}

     

    `Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (t, x, theta, phi)}

     

    `The Bertotti (1959), Kramer (1978), Levi-Civita (1917), Robinson (1959) metric in coordinates `[t, x, theta, phi]

     

    `Parameters: `[k, kappa0, beta]

     

    g[mu, nu] = (Matrix(4, 4, {(1, 1) = -k^2*sinh(x)^2, (1, 2) = 0, (1, 3) = 0, (1, 4) = 0, (2, 1) = 0, (2, 2) = k^2, (2, 3) = 0, (2, 4) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = k^2, (3, 4) = 0, (4, 1) = 0, (4, 2) = 0, (4, 3) = 0, (4, 4) = k^2*sin(theta)^2}))

    (9)

    Automatically, everything gets set accordingly; these are the contravariant components of the related Ricci tensor

    "Ricci[~]"

    Physics:-Ricci[`~mu`, `~nu`] = Matrix(%id = 18446744078179869750)

    (10)

    One works with the Newman-Penrose formalism frequently using tetrads (local system of references); the Physics subpackage for this is Tetrads

    with(Tetrads)

    `Setting lowercaselatin letters to represent tetrad indices `

     

    0, "%1 is not a command in the %2 package", Tetrads, Physics

     

    0, "%1 is not a command in the %2 package", Tetrads, Physics

     

    [IsTetrad, NullTetrad, OrthonormalTetrad, SimplifyTetrad, TransformTetrad, e_, eta_, gamma_, l_, lambda_, m_, mb_, n_]

    (11)

    This is the tetrad related to the book's metric with number 12.16.1

    e_[]

    Physics:-Tetrads:-e_[a, mu] = Matrix(%id = 18446744078160685286)

    (12)

    One can check these directly; for instance this is the definition of the tetrad, where the right-hand side is the tetrad metric

    e_[definition]

    Physics:-Tetrads:-e_[a, mu]*Physics:-Tetrads:-e_[b, `~mu`] = Physics:-Tetrads:-eta_[a, b]

    (13)

    This shows that, for the components given by (12), the definition holds

    TensorArray(Physics:-Tetrads:-e_[a, mu]*Physics:-Tetrads:-e_[b, `~mu`] = Physics:-Tetrads:-eta_[a, b])

    Matrix(%id = 18446744078195401422)

    (14)

    One frequently works with a different signature and null tetrads; set that, and everything gets automatically recomputed for the metric 12.16.1 accordingly

    Setup(signature = "+---", tetradmetric = null)

    [signature = `+ - - -`, tetradmetric = {(1, 2) = 1, (3, 4) = -1}]

    (15)

    eta_[]

    eta[a, b] = (Matrix(4, 4, {(1, 1) = 0, (1, 2) = 1, (1, 3) = 0, (1, 4) = 0, (2, 1) = 1, (2, 2) = 0, (2, 3) = 0, (2, 4) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = 0, (3, 4) = -1, (4, 1) = 0, (4, 2) = 0, (4, 3) = -1, (4, 4) = 0}))

    (16)

    e_[]

    Physics:-Tetrads:-e_[a, mu] = Matrix(%id = 18446744078191417574)

    (17)

    TensorArray(Physics:-Tetrads:-e_[a, mu]*Physics:-Tetrads:-e_[b, `~mu`] = Physics:-Tetrads:-eta_[a, b])

    Matrix(%id = 18446744078191319390)

    (18)

    The related 16 Riemann invariant

    Riemann[invariants]

    r[0] = 0, r[1] = 1/k^4, r[2] = 0, r[3] = (1/4)/k^8, w[1] = 0, w[2] = 0, m[1] = 0, m[2] = 0, m[3] = 0, m[4] = 0, m[5] = 0

    (19)

    The ability to query rapidly, set things in one go, change everything again etc. are at this point fantastic. For instance, these are the metrics by Kaigorodov; next are those published in 1962

    g_[Kaigorodov]

    ____________________________________________________________

     

    [12, 34, 1] = ["Authors" = ["Kaigorodov (1962)", "Cahen (1964)", "Siklos (1981)", "Ozsvath (1987)"], "PrimaryDescription" = "Einstein", "SecondaryDescription" = ["Homogeneous"], "Comments" = ["All metrics with _epsilon <> 0 are equivalent to the cases _epsilon = +1, -1, _epsilon = 0 is anti-deSitter space"]]

     

    ____________________________________________________________

     

    [12, 35, 1] = ["Authors" = ["Kaigorodov (1962)", "Cahen (1964)", "Siklos (1981)", "Ozsvath (1987)"], "PrimaryDescription" = "Einstein", "SecondaryDescription" = ["Homogeneous", "SimpleTransitive"]]

    (20)

    g_[`1962`]

    ____________________________________________________________

     

    [12, 13, 1] = ["Authors" = ["Ozsvath, Schucking (1962)"], "PrimaryDescription" = "Vacuum", "SecondaryDescription" = ["Homogeneous", "PlaneWave"], "Comments" = ["geodesically complete, no curvature singularities"]]

     

    ____________________________________________________________

     

    [12, 14, 1] = ["Authors" = ["Petrov (1962)"], "PrimaryDescription" = "Vacuum", "SecondaryDescription" = ["Homogeneous", "SimpleTransitive"]]

     

    ____________________________________________________________

     

    [12, 34, 1] = ["Authors" = ["Kaigorodov (1962)", "Cahen (1964)", "Siklos (1981)", "Ozsvath (1987)"], "PrimaryDescription" = "Einstein", "SecondaryDescription" = ["Homogeneous"], "Comments" = ["All metrics with _epsilon <> 0 are equivalent to the cases _epsilon = +1, -1, _epsilon = 0 is anti-deSitter space"]]

     

    ____________________________________________________________

     

    [12, 35, 1] = ["Authors" = ["Kaigorodov (1962)", "Cahen (1964)", "Siklos (1981)", "Ozsvath (1987)"], "PrimaryDescription" = "Einstein", "SecondaryDescription" = ["Homogeneous", "SimpleTransitive"]]

     

    ____________________________________________________________

     

    [28, 16, 1] = ["Authors" = ["Robinson-Trautman (1962)"], "PrimaryDescription" = "Vacuum", "SecondaryDescription" = ["RobinsonTrautman"], "Comments" = ["The coordinate zeta is changed to xi", "AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)"]]

     

    ____________________________________________________________

     

    [28, 26, 1] = ["Authors" = ["Robinson, Trautman (1962)"], "PrimaryDescription" = "Vacuum", "SecondaryDescription" = ["RobinsonTrautman"], "Comments" = ["One can use the diffeo r -> -r and u -> -u to make the assumption r > 0", "The case _m = 0 is Stephani, [28, 16,1]", "The metric is type D at points where r = 3*_m/(xi1+xi2) and type II on either side of this hypersurface. For convenience, it is assumed that 3*_m  - r*(xi1 + xi2) > 0", "AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)"]]

     

    ____________________________________________________________

     

    [28, 26, 2] = ["Authors" = ["Robinson, Trautman (1962)"], "PrimaryDescription" = "Vacuum", "SecondaryDescription" = ["RobinsonTrautman"], "Comments" = ["One can use the diffeo r -> -r and u -> -u to make the assumption r > 0", "The case _m = 0 is Stephani, [28, 16,1].", "AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)"]]

     

    ____________________________________________________________

     

    [28, 26, 3] = ["Authors" = ["Robinson, Trautman (1962)"], "PrimaryDescription" = "Vacuum", "SecondaryDescription" = ["RobinsonTrautman"], "Comments" = ["One can use the diffeo r -> -r and u -> -u to make the assumption r > 0", "The case _m = 0 is Stephani, [28, 16,1].", "AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)"]]

     

    ____________________________________________________________

     

    [28, 43, 1] = ["Authors" = ["Robinson, Trautman (1962)"], "PrimaryDescription" = "EinsteinMaxwell", "SecondaryDescription" = ["PureRadiation", "RobinsonTrautman"], "Comments" = ["h1(u) is the conjugate of h(u)"]]

    (21)

     

    The search can be done visually, by properties; this is the only solution in the database that is a Pure Ratiation solution, of Petrov Type "D", Plebanski-Petrov Type "O" and that has Isometry Dimension equal to 1:

    DifferentialGeometry:-Library:-MetricSearch()

     

    Set the solution, and everything related to work with it, in one go

    g_[[28, 74, 1]]

    `Systems of spacetime Coordinates are: `*{X = (u, eta, r, y)}

     

    `Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (u, eta, r, y)}

     

    `The Frolov and Khlebnikov (1975) metric in coordinates `[u, eta, r, y]

     

    `Parameters: `[kappa0, m(u), b, d]

     

    "`Comments: `With _m(u) = constant, the metric is Ricci flat and becomes 28.24 in Stephani."

     

    g[mu, nu] = (Matrix(4, 4, {(1, 1) = (2*m(u)^3-6*m(u)^2*eta*r-r^2*(-6*eta^2+b)*m(u)+r^3*(-2*eta^3+b*eta+d))/(r*m(u)^2), (1, 2) = -r^2/m(u), (1, 3) = -1, (1, 4) = 0, (2, 1) = -r^2/m(u), (2, 2) = r^2/(-2*eta^3+b*eta+d), (2, 3) = 0, (2, 4) = 0, (3, 1) = -1, (3, 2) = 0, (3, 3) = 0, (3, 4) = 0, (4, 1) = 0, (4, 2) = 0, (4, 3) = 0, (4, 4) = r^2*(-2*eta^3+b*eta+d)}))

    (22)

     

    The related Riemann invariants:

    Riemann[invariants]

    r[0] = 0, r[1] = 0, r[2] = 0, r[3] = 0, w[1] = 6*m(u)^2/r^6, w[2] = -6*m(u)^3/r^9, m[1] = 0, m[2] = 0, m[3] = 0, m[4] = 0, m[5] = 0

    (23)

    To conclude, how many solutions from the book have we already implemented?

    DifferentialGeometry:-Library:-Retrieve("Stephani", 1)

    [[8, 33, 1], [8, 34, 1], [12, 6, 1], [12, 7, 1], [12, 8, 1], [12, 8, 2], [12, 8, 3], [12, 8, 4], [12, 8, 5], [12, 8, 6], [12, 8, 7], [12, 8, 8], [12, 9, 1], [12, 9, 2], [12, 9, 3], [12, 12, 1], [12, 12, 2], [12, 12, 3], [12, 12, 4], [12, 13, 1], [12, 14, 1], [12, 16, 1], [12, 18, 1], [12, 19, 1], [12, 21, 1], [12, 23, 1], [12, 23, 2], [12, 23, 3], [12, 24.1, 1], [12, 24.2, 1], [12, 24.3, 1], [12, 26, 1], [12, 27, 1], [12, 28, 1], [12, 29, 1], [12, 30, 1], [12, 31, 1], [12, 32, 1], [12, 34, 1], [12, 35, 1], [12, 36, 1], [12, 37, 1], [12, 37, 2], [12, 37, 3], [12, 37, 4], [12, 37, 5], [12, 37, 6], [12, 37, 7], [12, 37, 8], [12, 37, 9], [12, 38, 1], [12, 38, 2], [12, 38, 3], [12, 38, 4], [12, 38, 5], [13, 2, 1], [13, 2, 2], [13, 2, 3], [13, 7, 1], [13, 7, 2], [13, 7, 3], [13, 7, 4], [13, 7, 5], [13, 7, 6], [13, 7, 7], [13, 7, 8], [13, 14, 1], [13, 14, 2], [13, 14, 3], [13, 19, 1], [13, 31, 1], [13, 32, 1], [13, 46, 1], [13, 48, 1], [13, 49, 1], [13, 49, 2], [13, 51, 1], [13, 53, 1], [13, 59, 1], [13, 59, 2], [13, 60, 1], [13, 60, 2], [13, 60, 3], [13, 60, 4], [13, 60, 5], [13, 60, 6], [13, 60, 7], [13, 60, 8], [13, 61, 1], [13, 61, 2], [13, 62, 1], [13, 62, 2], [13, 62, 4], [13, 62, 6], [13, 63, 1], [13, 63, 2], [13, 63, 3], [13, 63, 4], [13, 64, 1], [13, 64, 2], [13, 64, 3], [13, 64, 4], [13, 65, 1], [13, 69, 1], [13, 71, 1], [13, 72, 1], [13, 73, 1], [13, 74, 1], [13, 74, 2], [13, 74, 3], [13, 76, 1], [13, 77, 1], [13, 77, 2], [13, 79, 1], [13, 79, 2], [13, 80, 1], [13, 81, 1], [13, 83, 1], [13, 84, 1], [13, 84, 2], [13, 84, 3], [13, 85, 1], [13, 85, 2], [13, 86, 1], [13, 87, 1], [14, 6.1, 1], [14, 6.2, 1], [14, 6.3, 1], [14, 7, 1], [14, 8.1, 1], [14, 8.2, 1], [14, 8.3, 1], [14, 9.1, 1], [14, 9.2, 1], [14, 10, 1], [14, 10, 2], [14, 12, 1], [14, 12, 2], [14, 12, 3], [14, 14, 1], [14, 14, 2], [14, 15, 1], [14, 15.1, 2], [14, 15.2, 2], [14, 15.3, 2], [14, 16, 1], [14, 16, 2], [14, 17, 1], [14, 18, 1], [14, 18, 2], [14, 19, 1], [14, 20, 1], [14, 21, 1], [14, 21, 2], [14, 21, 3], [14, 22, 1], [14, 23, 1], [14, 24, 1], [14, 25, 1], [14, 26, 1], [14, 26, 2], [14, 26, 3], [14, 26, 4], [14, 27, 1], [14, 28, 1], [14, 28, 2], [14, 28, 3], [14, 29, 1], [14, 30, 1], [14, 31, 1], [14, 32, 1], [14, 33, 1], [14, 35, 1], [14, 37, 1], [14, 38, 1], [14, 38, 2], [14, 38, 3], [14, 39, 1], [14, 39, 2], [14, 39, 3], [14, 39, 4], [14, 39, 5], [14, 39, 6], [14, 40, 1], [14, 41, 1], [14, 42, 1], [14, 46, 1], [15, 3, 1], [15, 3, 2], [15, 4, 1], [15, 4, 2], [15, 4, 3], [15, 9, 1], [15, 10, 1], [15, 12, 1], [15, 12, 2], [15, 12, 3], [15, 12, 4], [15, 12, 5], [15, 12, 6], [15, 17, 1], [15, 17, 2], [15, 17, 3], [15, 17, 4], [15, 18, 1], [15, 19, 1], [15, 19, 2], [15, 20, 1], [15, 21, 1], [15, 21, 2], [15, 22, 1], [15, 23, 1], [15, 23, 2], [15, 24, 1], [15, 24, 2], [15, 25, 1], [15, 25, 2], [15, 26, 1], [15, 26, 2], [15, 27, 1], [15, 27, 2], [15, 27, 3], [15, 27, 4], [15, 27, 5], [15, 27, 6], [15, 27, 7], [15, 27, 8], [15, 28, 1], [15, 29, 1], [15, 30, 1], [15, 31, 1], [15, 32, 1], [15, 34, 1], [15, 34, 2], [15, 34, 3], [15, 43, 1], [15, 43, 2], [15, 43, 3], [15, 50, 1], [15, 50, 2], [15, 50, 3], [15, 50, 4], [15, 50, 5], [15, 50, 6], [15, 62, 1], [15, 62, 2], [15, 62, 3], [15, 63, 1], [15, 63, 2], [15, 63, 3], [15, 65, 1], [15, 65, 2], [15, 66, 1], [15, 66, 2], [15, 66, 3], [15, 75, 1], [15, 75, 2], [15, 75, 3], [15, 77, 1], [15, 77, 2], [15, 77, 3], [15, 78, 1], [15, 79, 1], [15, 81, 1], [15, 81, 2], [15, 81, 3], [15, 82, 1], [15, 82, 2], [15, 82, 3], [15, 83, 1.1], [15, 83, 1.2], [15, 83, 2], [15, 83, 3.1], [15, 83, 3.2], [15, 83, 4], [15, 84, 1], [15, 85, 1], [15, 85, 2], [15, 85, 3], [15, 86, 1], [15, 86, 2], [15, 86, 3], [15, 87, 1], [15, 87, 2], [15, 87, 3], [15, 87, 4], [15, 87, 5], [15, 88, 1], [15, 89, 1], [15, 90, 1], [16, 1, 1], [16, 1, 2], [16, 1, 3], [16, 1, 4], [16, 1, 5], [16, 1, 6], [16, 1, 7], [16, 1, 8], [16, 1, 9], [16, 1, 10], [16, 1, 11], [16, 1, 12], [16, 1, 13], [16, 1, 14], [16, 1, 15], [16, 1, 16], [16, 1, 17], [16, 1, 18], [16, 1, 19], [16, 1, 20], [16, 1, 21], [16, 1, 22], [16, 1, 23], [16, 1, 24], [16, 1, 25], [16, 1, 26], [16, 1, 27], [16, 14, 1], [16, 14, 2], [16, 14, 3], [16, 14, 4], [16, 14, 5], [16, 14, 6], [16, 14, 7], [16, 14, 8], [16, 14, 9], [16, 14, 10], [16, 14, 11], [16, 14, 12], [16, 14, 13], [16, 14, 14], [16, 14, 15], [16, 14, 16], [16, 14, 17], [16, 14, 18], [16, 14, 19], [16, 14, 20], [16, 18, 1], [16, 19, 1], [16, 20, 1], [16, 22, 1], [16, 24, 1], [16, 24, 2], [16, 43, 1], [16, 45, 1], [16, 45, 2], [16, 46, 1], [16, 47, 1], [16, 50, 1], [16, 51, 1], [16, 54, 1], [16, 61, 1], [16, 63, 1], [16, 66, 1], [16, 66, 2], [16, 66, 3], [16, 67, 1], [16, 71, 1], [16, 72, 1], [16, 73, 1], [16, 74, 1], [16, 75, 1], [16, 76, 1], [16, 77, 1], [16, 77, 2], [16, 77, 3], [16, 78, 1], [17, 4, 1], [17, 4, 2], [17, 5, 1], [17, 9, 1], [17, 14, 1], [17, 15, 1], [17, 15, 2], [17, 16, 1], [17, 20, 1], [17, 22, 1], [17, 23, 1], [17, 24, 1], [17, 24, 2], [17, 26, 1], [17, 27, 1], [17, 27, 2], [17, 28, 1], [17, 28, 2], [17, 29, 1], [17, 29, 2], [17, 30, 1], [17, 31, 1], [18, 2, 1], [18, 2, 2], [18, 2, 3], [18, 2, 4], [18, 2, 5], [18, 2, 6], [18, 2, 7], [18, 2, 8], [18, 48, 1], [18, 48, 2], [18, 49, 1], [18, 50, 1], [18, 64, 1], [18, 64, 2], [18, 64, 3], [18, 65, 1], [18, 66, 1], [18, 67, 1], [18, 71, 1], [18, 75, 1], [19, 17, 1], [19, 17, 2], [19, 21, 1], [20, 3, 1], [20, 4, 1], [20, 5, 1], [20, 7, 1], [20, 8, 1], [20, 9, 1], [20, 10, 1], [20, 11, 1], [20, 12, 1], [20, 13, 1], [20, 15, 1], [20, 16, 1], [20, 17, 1], [20, 20, 1], [20, 21, 1], [20, 23, 1], [20, 27, 1], [20, 28, 1], [20, 29, 1], [20, 32, 1], [20, 34, 1], [20, 36, 1], [20, 38, 1], [20, 38, 2], [20, 38, 3], [20, 44, 1], [20, 46, 1], [20, 54, 1], [20, 57, 1], [20, 57, 2], [28, 16, 1], [28, 17, 1], [28, 21, 1], [28, 21, 2], [28, 21, 3], [28, 21, 4], [28, 21, 5], [28, 21, 6], [28, 21, 7], [28, 24, 1], [28, 25, 1], [28, 26, 1], [28, 26, 2], [28, 26, 3], [28, 41, 1], [28, 43, 1], [28, 44, 1], [28, 44, 2], [28, 44, 3], [28, 44, 4], [28, 44, 5], [28, 44, 6], [28, 45, 1], [28, 45, 2], [28, 46, 1], [28, 46, 2], [28, 53, 1], [28, 53, 2], [28, 55, 1], [28, 55, 2], [28, 56.1, 1], [28, 56.2, 2], [28, 56.2, 3], [28, 56.3, 1], [28, 56.4, 1], [28, 56.5, 1], [28, 56.6, 1], [28, 58.2, 1], [28, 58.3, 1], [28, 58.3, 2], [28, 58.4, 1], [28, 60, 1], [28, 61, 1], [28, 64, 1], [28, 66, 1], [28, 67, 1], [28, 68, 1], [28, 72, 1], [28, 73, 1], [28, 74, 1]]

    (24)

    nops([[8, 33, 1], [8, 34, 1], [12, 6, 1], [12, 7, 1], [12, 8, 1], [12, 8, 2], [12, 8, 3], [12, 8, 4], [12, 8, 5], [12, 8, 6], [12, 8, 7], [12, 8, 8], [12, 9, 1], [12, 9, 2], [12, 9, 3], [12, 12, 1], [12, 12, 2], [12, 12, 3], [12, 12, 4], [12, 13, 1], [12, 14, 1], [12, 16, 1], [12, 18, 1], [12, 19, 1], [12, 21, 1], [12, 23, 1], [12, 23, 2], [12, 23, 3], [12, 24.1, 1], [12, 24.2, 1], [12, 24.3, 1], [12, 26, 1], [12, 27, 1], [12, 28, 1], [12, 29, 1], [12, 30, 1], [12, 31, 1], [12, 32, 1], [12, 34, 1], [12, 35, 1], [12, 36, 1], [12, 37, 1], [12, 37, 2], [12, 37, 3], [12, 37, 4], [12, 37, 5], [12, 37, 6], [12, 37, 7], [12, 37, 8], [12, 37, 9], [12, 38, 1], [12, 38, 2], [12, 38, 3], [12, 38, 4], [12, 38, 5], [13, 2, 1], [13, 2, 2], [13, 2, 3], [13, 7, 1], [13, 7, 2], [13, 7, 3], [13, 7, 4], [13, 7, 5], [13, 7, 6], [13, 7, 7], [13, 7, 8], [13, 14, 1], [13, 14, 2], [13, 14, 3], [13, 19, 1], [13, 31, 1], [13, 32, 1], [13, 46, 1], [13, 48, 1], [13, 49, 1], [13, 49, 2], [13, 51, 1], [13, 53, 1], [13, 59, 1], [13, 59, 2], [13, 60, 1], [13, 60, 2], [13, 60, 3], [13, 60, 4], [13, 60, 5], [13, 60, 6], [13, 60, 7], [13, 60, 8], [13, 61, 1], [13, 61, 2], [13, 62, 1], [13, 62, 2], [13, 62, 4], [13, 62, 6], [13, 63, 1], [13, 63, 2], [13, 63, 3], [13, 63, 4], [13, 64, 1], [13, 64, 2], [13, 64, 3], [13, 64, 4], [13, 65, 1], [13, 69, 1], [13, 71, 1], [13, 72, 1], [13, 73, 1], [13, 74, 1], [13, 74, 2], [13, 74, 3], [13, 76, 1], [13, 77, 1], [13, 77, 2], [13, 79, 1], [13, 79, 2], [13, 80, 1], [13, 81, 1], [13, 83, 1], [13, 84, 1], [13, 84, 2], [13, 84, 3], [13, 85, 1], [13, 85, 2], [13, 86, 1], [13, 87, 1], [14, 6.1, 1], [14, 6.2, 1], [14, 6.3, 1], [14, 7, 1], [14, 8.1, 1], [14, 8.2, 1], [14, 8.3, 1], [14, 9.1, 1], [14, 9.2, 1], [14, 10, 1], [14, 10, 2], [14, 12, 1], [14, 12, 2], [14, 12, 3], [14, 14, 1], [14, 14, 2], [14, 15, 1], [14, 15.1, 2], [14, 15.2, 2], [14, 15.3, 2], [14, 16, 1], [14, 16, 2], [14, 17, 1], [14, 18, 1], [14, 18, 2], [14, 19, 1], [14, 20, 1], [14, 21, 1], [14, 21, 2], [14, 21, 3], [14, 22, 1], [14, 23, 1], [14, 24, 1], [14, 25, 1], [14, 26, 1], [14, 26, 2], [14, 26, 3], [14, 26, 4], [14, 27, 1], [14, 28, 1], [14, 28, 2], [14, 28, 3], [14, 29, 1], [14, 30, 1], [14, 31, 1], [14, 32, 1], [14, 33, 1], [14, 35, 1], [14, 37, 1], [14, 38, 1], [14, 38, 2], [14, 38, 3], [14, 39, 1], [14, 39, 2], [14, 39, 3], [14, 39, 4], [14, 39, 5], [14, 39, 6], [14, 40, 1], [14, 41, 1], [14, 42, 1], [14, 46, 1], [15, 3, 1], [15, 3, 2], [15, 4, 1], [15, 4, 2], [15, 4, 3], [15, 9, 1], [15, 10, 1], [15, 12, 1], [15, 12, 2], [15, 12, 3], [15, 12, 4], [15, 12, 5], [15, 12, 6], [15, 17, 1], [15, 17, 2], [15, 17, 3], [15, 17, 4], [15, 18, 1], [15, 19, 1], [15, 19, 2], [15, 20, 1], [15, 21, 1], [15, 21, 2], [15, 22, 1], [15, 23, 1], [15, 23, 2], [15, 24, 1], [15, 24, 2], [15, 25, 1], [15, 25, 2], [15, 26, 1], [15, 26, 2], [15, 27, 1], [15, 27, 2], [15, 27, 3], [15, 27, 4], [15, 27, 5], [15, 27, 6], [15, 27, 7], [15, 27, 8], [15, 28, 1], [15, 29, 1], [15, 30, 1], [15, 31, 1], [15, 32, 1], [15, 34, 1], [15, 34, 2], [15, 34, 3], [15, 43, 1], [15, 43, 2], [15, 43, 3], [15, 50, 1], [15, 50, 2], [15, 50, 3], [15, 50, 4], [15, 50, 5], [15, 50, 6], [15, 62, 1], [15, 62, 2], [15, 62, 3], [15, 63, 1], [15, 63, 2], [15, 63, 3], [15, 65, 1], [15, 65, 2], [15, 66, 1], [15, 66, 2], [15, 66, 3], [15, 75, 1], [15, 75, 2], [15, 75, 3], [15, 77, 1], [15, 77, 2], [15, 77, 3], [15, 78, 1], [15, 79, 1], [15, 81, 1], [15, 81, 2], [15, 81, 3], [15, 82, 1], [15, 82, 2], [15, 82, 3], [15, 83, 1.1], [15, 83, 1.2], [15, 83, 2], [15, 83, 3.1], [15, 83, 3.2], [15, 83, 4], [15, 84, 1], [15, 85, 1], [15, 85, 2], [15, 85, 3], [15, 86, 1], [15, 86, 2], [15, 86, 3], [15, 87, 1], [15, 87, 2], [15, 87, 3], [15, 87, 4], [15, 87, 5], [15, 88, 1], [15, 89, 1], [15, 90, 1], [16, 1, 1], [16, 1, 2], [16, 1, 3], [16, 1, 4], [16, 1, 5], [16, 1, 6], [16, 1, 7], [16, 1, 8], [16, 1, 9], [16, 1, 10], [16, 1, 11], [16, 1, 12], [16, 1, 13], [16, 1, 14], [16, 1, 15], [16, 1, 16], [16, 1, 17], [16, 1, 18], [16, 1, 19], [16, 1, 20], [16, 1, 21], [16, 1, 22], [16, 1, 23], [16, 1, 24], [16, 1, 25], [16, 1, 26], [16, 1, 27], [16, 14, 1], [16, 14, 2], [16, 14, 3], [16, 14, 4], [16, 14, 5], [16, 14, 6], [16, 14, 7], [16, 14, 8], [16, 14, 9], [16, 14, 10], [16, 14, 11], [16, 14, 12], [16, 14, 13], [16, 14, 14], [16, 14, 15], [16, 14, 16], [16, 14, 17], [16, 14, 18], [16, 14, 19], [16, 14, 20], [16, 18, 1], [16, 19, 1], [16, 20, 1], [16, 22, 1], [16, 24, 1], [16, 24, 2], [16, 43, 1], [16, 45, 1], [16, 45, 2], [16, 46, 1], [16, 47, 1], [16, 50, 1], [16, 51, 1], [16, 54, 1], [16, 61, 1], [16, 63, 1], [16, 66, 1], [16, 66, 2], [16, 66, 3], [16, 67, 1], [16, 71, 1], [16, 72, 1], [16, 73, 1], [16, 74, 1], [16, 75, 1], [16, 76, 1], [16, 77, 1], [16, 77, 2], [16, 77, 3], [16, 78, 1], [17, 4, 1], [17, 4, 2], [17, 5, 1], [17, 9, 1], [17, 14, 1], [17, 15, 1], [17, 15, 2], [17, 16, 1], [17, 20, 1], [17, 22, 1], [17, 23, 1], [17, 24, 1], [17, 24, 2], [17, 26, 1], [17, 27, 1], [17, 27, 2], [17, 28, 1], [17, 28, 2], [17, 29, 1], [17, 29, 2], [17, 30, 1], [17, 31, 1], [18, 2, 1], [18, 2, 2], [18, 2, 3], [18, 2, 4], [18, 2, 5], [18, 2, 6], [18, 2, 7], [18, 2, 8], [18, 48, 1], [18, 48, 2], [18, 49, 1], [18, 50, 1], [18, 64, 1], [18, 64, 2], [18, 64, 3], [18, 65, 1], [18, 66, 1], [18, 67, 1], [18, 71, 1], [18, 75, 1], [19, 17, 1], [19, 17, 2], [19, 21, 1], [20, 3, 1], [20, 4, 1], [20, 5, 1], [20, 7, 1], [20, 8, 1], [20, 9, 1], [20, 10, 1], [20, 11, 1], [20, 12, 1], [20, 13, 1], [20, 15, 1], [20, 16, 1], [20, 17, 1], [20, 20, 1], [20, 21, 1], [20, 23, 1], [20, 27, 1], [20, 28, 1], [20, 29, 1], [20, 32, 1], [20, 34, 1], [20, 36, 1], [20, 38, 1], [20, 38, 2], [20, 38, 3], [20, 44, 1], [20, 46, 1], [20, 54, 1], [20, 57, 1], [20, 57, 2], [28, 16, 1], [28, 17, 1], [28, 21, 1], [28, 21, 2], [28, 21, 3], [28, 21, 4], [28, 21, 5], [28, 21, 6], [28, 21, 7], [28, 24, 1], [28, 25, 1], [28, 26, 1], [28, 26, 2], [28, 26, 3], [28, 41, 1], [28, 43, 1], [28, 44, 1], [28, 44, 2], [28, 44, 3], [28, 44, 4], [28, 44, 5], [28, 44, 6], [28, 45, 1], [28, 45, 2], [28, 46, 1], [28, 46, 2], [28, 53, 1], [28, 53, 2], [28, 55, 1], [28, 55, 2], [28, 56.1, 1], [28, 56.2, 2], [28, 56.2, 3], [28, 56.3, 1], [28, 56.4, 1], [28, 56.5, 1], [28, 56.6, 1], [28, 58.2, 1], [28, 58.3, 1], [28, 58.3, 2], [28, 58.4, 1], [28, 60, 1], [28, 61, 1], [28, 64, 1], [28, 66, 1], [28, 67, 1], [28, 68, 1], [28, 72, 1], [28, 73, 1], [28, 74, 1]])

    492

    (25)

    NULL

    :)



    Download Exact_Solutions_to_Einstein_Equations.mw

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

    The engineering design process involves numerous steps that allow the engineer to reach his/her final design objectives to the best of his/her ability. This process is akin to creating a fine sculpture or a great painting where different approaches are explored and tested, then either adopted or abandoned in favor of better or more developed and fine-tuned ones. Consider the x-ray of an oil painting. X-rays of the works of master artists reveal the thought and creative processes of their minds as they complete the work. I am sure that some colleagues may disagree with the comparison of our modern engineering designs to art masterpieces, but let me ask you to explore the innovations and their brilliant forms, and maybe you will agree with me even a little bit.

    Design Process

    Successful design engineers must have the very best craft, knowledge and experience to generate work that is truly worthy of being incorporated in products that sell in the tens, or even hundreds, of millions. This is presently achieved by having cross-functional teams of engineers work on a design, allowing cross checking and several rounds of reviews, followed by multiple prototypes and exhaustive preproduction testing until the team reaches a collective conclusion that “we have a design.” This is then followed by the final design review and release of the product. This necessary and vital approach is clearly a time consuming and costly process. Over the years I have asked myself several times, “Did I explore every single detail of the design fully”? “Am I sure that this is the very best I can do?” And more importantly, “Does every component have the most fine-tuned value to render the best performance possible?” And invariably I am left with a bit of doubt. That brings me to a tool that has helped me in this regard.

    A Great New Tool

    I have used Maple for over 25 years to dig deeply into my designs and understand the interplay between a given set of parameters and the performance of the particular circuit I am working on. This has always given me a complete view of the problem at hand and solidly pointed me in the direction of the best possible solutions.

    In recent years, a new feature called “Explore” has been added to Maple. This amazing feature allows the engineer/researcher to peer very deeply into any formula and explore the interaction of EVERY variable in the formula. 

    Take for example the losses in the control MOSFET in a synchronous buck converter. In order to minimize these losses and maximize the power conversion efficiency, the most suitable MOSFET must be selected. With thousands of these devices being available in the market, a dozen of them are considered very close to the best at any given time. The real question then is, which one is really the very best amongst all of them? 

    There are two possible approaches - one, build an application prototype, test a random sample of each and choose the one that gives you the best efficiency.  Or, use an accurate mathematical model to calculate the losses of each and chose the best. The first approach lacks the variability of each parameter due to the six sigma statistical distribution where it is next to impossible to get a device laying on the outer limits of the distribution. That leaves the mathematical model approach. If you take this route, you can have built-in tolerances in the equations to accommodate all the variabilities and use a simplified equation for the control MOSFET losses (clearly you can use a very detailed model should you chose to) to explore these losses. Luckily you can explore the losses using the Explore function in Maple.

    The figure below shows a three dimensional plot, plus five other variables in the formula that the user can change using sliders that cover the range of values of interest including Minima and Maxima, while observing in real time the effects of the change on the power loss.

    This means that by changing the values of any set of variables, you can observe their effect on the function. To put it simply, this single feature helps you replace dozens of plots with just one, saving you precious time and cost in fine-tuning your design. In my opinion, this is equivalent to an eight-dimensional/axes plot.

    I used this amazing feature in the last few weeks and I was delighted at how simple it is to use and how much it simplifies the study of my approach and my components selection, in record times!

    First 68 69 70 71 72 73 74 Last Page 70 of 302