MaplePrimes Posts

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

Latest Post
  • Latest Posts Feed
  • I have just posted an article with this title at Maplesoft Application Center here.
    It was motivated by a question posed by  Markiyan Hirnyk  here and a test problem proposed there by Kitonum.

    Now I just want to give the promissed complete solution to Kitonum's test:

    Compute the plane area of the region defined by the inequalities:

    R := [ (x-4)^2+y^2 <= 25, x^2+(y-3)^2 >= 9, (x+sqrt(7))^2+y^2 >= 16 ];

    plots:-inequal(R, x=-7..10, y=-6..6, scaling=constrained);

    The used procedures (for details see the mentioned article):

    ranges:=proc(simpledom::list(relation), X::list(name))
    local rez:=NULL, r,z,k,r1,r2;
    if nops(simpledom)<>2*nops(X) then error "Domain not simple!" fi;
    for k to nops(X) do    r1,r2:=simpledom[2*k-1..2*k][]; z:=X[k];
      if   rhs(r1)=z and lhs(r2)=z then rez:=z=lhs(r1)..rhs(r2),rez; #a<z,z<b
      elif lhs(r1)=z and rhs(r2)=z then rez:=z=lhs(r2)..rhs(r1),rez  #z<b,a<z
      else error "Strange order in a simple domain" fi
    od;
    rez
    end proc:
    
    MultiIntPoly:=proc(f, rels::list(relation(ratpoly)), X::list(name))
    local r,rez,sol,irr,wirr, rels1, w;
    irr:=[indets(rels,{function,realcons^realcons})[]];
    wirr:=[seq(w[i],i=1..nops(irr))];
    rels1:=eval(rels, irr=~wirr);
    sol:=SolveTools:-SemiAlgebraic(rels1,X,parameters=wirr):
    sol:=remove(hastype, eval(sol,wirr=~irr), `=`); 
    add(Int(f,ranges(r,X)),r=sol)
    end proc:
    
    MeasApp:=proc(rel::{set,list}(relation), Q::list(name='range'(realcons)), N::posint)
    local r, n:=0, X, t, frel:=evalf(rel)[];
    if indets(rel,name) <> indets(Q,name)  then error "Non matching variables" fi;
    r:=[seq(rand(evalf(rhs(t))), t=Q)];
    X:=[seq(lhs(t),t=Q)];
    to N do
      if evalb(eval(`and`(frel), X=~r())) then n:=n+1 fi;
    od;
    evalf( n/N*mul((rhs-lhs)(rhs(t)),t=Q) );
    end proc:
    

    Problem's solution:

    MultiIntPoly(1, R, [x,y]):  # Unfortunately it's slow; patience needed!
    radnormal(simplify(value(%)));

    evalf(%) = MeasApp(R, [x=-7..10,y=-6..6], 10000); # A rough numerical check
               61.16217534 = 59.91480000

     

    This presentation is about magnetic traps for neutral particles, first achieved for cold neutrons and nowadays widely used in cold-atom physics. The level is that of undergraduate electrodynamics and tensor calculus courses. Tackling this topic within a computer algebra worksheet as shown below illustrates well the kind of advanced computations that can be done today with the Physics package. A new feature minimizetensorcomponents and related functionality is used along the presentation, that requires the updated Physics library distributed at the Maplesoft R&D Physics webpage.
     

     

    Magnetic traps in cold-atom physics

     

    Pascal Szriftgiser1 and Edgardo S. Cheb-Terrab2 

    (1) Laboratoire PhLAM, UMR CNRS 8523, Université Lille 1, F-59655, France

    (2) Maplesoft

     

    We consider a device constructed with a set of electrical wires fed with constant electrical currents. Those wires can have an arbitrary complex shape. The device is operated in a regime such that, in some region of interest, the moving particles experience a magnetic field that varies slowly compared to the Larmor spin precession frequency. In this region, the effective potential is proportional to the modulus of the field: LinearAlgebra[Norm](`#mover(mi("B"),mo("&rarr;"))`(x, y, z)), this potential has a minimum and, close to this minimum, the device behaves as a magnetic trap.

     

     

     

    Figure 1: Schematic representation of a Ioffe-Pritchard magnetic trap. It is made of four infinite rods and two coils.

    _________________________________________

     

    Following [1], we show that:

     

      

    a) For a time-independent magnetic field  `#mover(mi("B"),mo("&rarr;"))`(x, y, z) in vacuum, up to order two in the relative coordinates X__i = [x, y, z] around some point of interest, the coefficients of orders 1 and 2 in this expansion, `v__i,j` and `c__i,j,k` , respectively the gradient and curvature, contain only 5 and 7 independent components.

      

    b) All stationary points of LinearAlgebra[Norm](`#mover(mi("B"),mo("&rarr;"))`(x, y, z))^2 (nonzero minima and saddle points) are confined to a curved surface defined by det(`&PartialD;`[j](B[i])) = 0.

      

    c) The effective potential, proportional to LinearAlgebra[Norm](`#mover(mi("B"),mo("&rarr;"))`(x, y, z)), has no maximum, only a minimum.

     

    Finally, we draw the stationary condition surface for the case of the widely used Ioffe-Pritchard magnetic trap.

      

     

      

    Reference

      

    [1] R. Gerritsma and R. J. C. Spreeuw, Topological constraints on magnetostatic traps,  Phys. Rev. A 74, 043405 (2006)

      

     

    The independent components of `v__i,j` and `c__i,j,k` entering B[i] = u[i]+v[i, j]*X[j]+(1/2)*c[i, j, k]*X[j]*X[k]

       

    The stationary points are within the surface det(`&PartialD;`[j](B[i])) = 0

       

    U = LinearAlgebra[Norm](`#mover(mi("B",fontweight = "bold"),mo("&rarr;",fontweight = "bold"))`)^2 has only minima, no maxima

       

    Drawing the Ioffe-Pritchard Magnetic Trap

       


     

    MagneticTraps.mw or in pdf format with the sections open: MagneticTraps.pdf

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

    Much of this topic is developed using traditional techniques. Maple modernizes and optimizes solutions by displaying the necessary operators and simple commands to solve large problems. Using the conditions of equilibrium for both moment and force we find the forces and moments of reactions for any type of structure. In spanish.

    Equlibrium.mw

    https://www.youtube.com/watch?v=7zC8pGC4F2c

    Lenin Araujo Castillo

    Ambassador of Maple

    Since 2002, the Texas A&M Math Department has sponsored a Summer Educational Enrichment in Math (SEE-Math) Program for gifted middle school students entering the 6th, 7th or 8th grade under the direction of Philip Yasskin and David Manuel.  Students spend two weeks exploring ideas from algebra, geometry, graph theory, topology, and other mathematical topics. 

    The program’s primary goal is to help students find excitement in the discovery of mathematics and science concepts, and to provide them with the knowledge and confidence to continue their studies in math and science related fields. “I love working with the bright young kids who come to SEE-Math, they keep me young,” said Yasskin, one of the programs directors.


    Maplesoft has been a sponsor of SEE-Math for many years and are happy to see the students explore math at this young age. Research into the importance of early math skills shows that children who are taught math early and learn the basics at a young age are set up for a lifetime of achievement in all aspects of their academic performance.  Every year, Maplesoft commits time, funds and people to various organizations to enhance the quality of math-based learning and discovery and to encourage students to strengthen their math skills.

    One of the major activities of the SEE-Math program, and something the students really enjoy doing, is creating computer animations in Maple. The kids are divided into 3 groups; the Euler group is mostly made up of 6th graders with a few younger, the Fibonacci group is mostly 6th and 7th graders, and the Gauss group is 7th and 8th graders.

     Here are the 2017 first place winners from each group and their animations:

    Euler Group - Nigel M "Buckets"

    Fibonacci Group - Gabriel M "Skillz"

    Gauss Group - Michael C - "Newton's Castle"

     

     

    To learn more about this program visit: http://see-math.math.tamu.edu/2017/

    Good book to start studying maple for engineering.

     


     

    restart; with(plots)

    Australopithecus := [[75, 25], [97, 30], [93, 40], [93, 45], [83, 50], [80, 55], [79, 60], [81, 73], [74, 76], [68, 81], [60, 82], [50, 83], [40, 80], [30, 71], [25, 60], [24, 50], [25, 37], [15, 33], [10, 30], [45, 10], [55, 16], [65, 10], [80, 8], [93, 14], [96, 24]]:

    man := [[95, 39], [113, 40], [111, 47], [118, 53], [113, 62], [109, 72], [112, 88], [112, 95], [107, 112], [99, 117], [85, 122], [72, 122], [49, 117], [36, 104], [31, 78], [39, 52], [43, 43], [44, 34], [39, 16], [73, 3], [81, 17], [98, 14], [105, 17], [104, 26], [111, 33]]:

    morph := proc (poly1, poly2, t) if nops(poly1) <> nops(poly2) then ERROR("mensaje.") end if; [seq([(1-t)*op(1, op(k, poly1))+t*op(1, op(k, poly2)), (1-t)*op(2, op(k, poly1))+t*op(2, op(k, poly2))], k = 1 .. nops(poly1))] end proc:

    display([seq(polygonplot(morph(Australopithecus, man, (1/20)*k), scaling = constrained), k = 0 .. 19)], insequence = true, axes = none);

     

    NULL


     

    Download Australopithecus_updated.mw

    http://www.gatewaycoalition.org/includes/display_project.aspx?ID=279&maincatid=105&subcatid=1019&thirdcatid=0

    Lenin Araujo Castillo

    Ambassador of Maple

    In this application you can visualize the impulse generated by a constant and variable force for the interaction of a particle with an object in a state of rest or movement. It is also the calculation of the momentum-momentum equation by entering the mass of the particle to solve initial and final velocities respectively according to the case study. Engineering students can quickly display the calculations and then their interpretation. In spanish.

    Plot_of_equation_impulse-momentum.mw

    Exercises_of_Momentum-Impulse_Linear.mw

    Lenin Araujo Castillo

    Ambassador of Maple

    While many of us in North America were getting re-acquainted with the Fall routine, Maplesoft was involved in a major event, the Maple T.A. and Möbius User Summit. In the past, the Summit has alternated locations between Europe and North America, but following the success of last year’s Summit in Vienna, Austria, we recently broke new ground and expanded the reach of the event to include more countries around the world in order to localize the themes and to meet the growing demand from educators to take learning online.

    The first event, organized by Cybernet, took place in China. The second of five events on the calendar took place in London, England. Held from September 7-8, this installment was a major stop in the tour, drawing many residents of the UK to hear talks from some of our strongest proponents of Möbius in Europe. The London Summit drew several delegates from the UK alone, many of whom were completely new contacts for us! Other attendees came from as far away as Russia, Pakistan, Sri Lanka, and Australia, as well as some from Sweden, Denmark, Italy and the Netherlands. The turnout was brilliant!

    Make progress or make excuses

    The bulk of the London Summit was divided into three driving themes: Showcasing the Successful Delivery of Online Education; Best Practices for Digital Testing and Assessment; and Creating Engaging and Interactive Online STEM Content. Each theme consisted of 3 user presentations delivered by representatives from renowned institutions like University of Manchester, University of Birmingham, London Imperial College, University of Waterloo, Chalmers University of Technology, and more.

    Maplesoft Application Engineer Surak Perera may have inadvertently set the tone for the day when he kicked off theme 1 with a quote from Tony Robbins: Make progress, or make excuses. One thing’s for sure – excuses were nowhere to be found at One Moorgate Place. The audience was captivated and engaged, and wasted no time bouncing questions and ideas off of our presenters. In fact, they were so eager to learn from our Maple T.A. and Möbius users that Jonny Zivku, Maple T.A. Product Manager, had to interject several times in order to keep the schedule moving! Each presentation reinforced the ability of Maple T.A. and Möbius to be used for diverse purposes such as distance education or analyzing incoming students, and in a range of subjects including multidisciplinary engineering cohorts, or simply core mathematics. Each presenter demonstrated that these tools can take you as far as the user’s mind is willing to be stretched.




     

    Evening Reception

    As heads were getting full and bellies were getting empty, the group left the luxuries of modern day and stepped back into what must have felt like a scene from Downton Abbey in the Main Reception Room of the venue. On the menu was the most culturally appropriate dish: fish and chips! Oh, and don’t forget the tea and wine!

    There was no better way to wrap up the Summit than with Steve Furino’s interactive presentation and open discussion “Collecting Data about Collecting Data.” Small group discussion enabled the attendees to reconcile their inspiration from Day 1 with the practicality of putting it into practice once they return to their schools.

    Overall, the London Summit was a smashing hit. The centralized location drew attendees who had a lot of common experiences which made for optimal discussion. The final question posted was the most revealing of everyone’s experience: where will the Summit be next year?

    While that’s not yet decided, the Toronto Summit – the next stop in the Summit Series – is just a fortnight away (November 2-3). So for now, we’re saying “Cheers” to jolly good times in London, and “Can I get a double-double, eh” to Toronto!

    Until then, you can experience the London Summit as if you were there with the full presentation proceedings and videos. They’re now available on our website!

    So I have recently finished up a project that took different sounds found in nature, and through the Spectrogram command, plotted the frequency of each sound over time with some really cool results!

    https://www.maplesoft.com/applications/view.aspx?SID=154346 

    The contrast between sounds produced by the weather such as tornadoes, thunder, and hail versus something as innocuous as a buzzing bee, a chorus of crickets, or a purring cat really shows the variance in the different sounds we hear in our day to day life, while also creating some very interesting imagery.

    My personal favourite was the cricket chorus, producing a very ordered image with some really cool spikes through many different frequencies as the crickets chirped, as shown here:

    Using this plot, we can do some interesting things, like count the number of chirps in 8 seconds, which turns out to be 18-18.5. Why Is this important? Well, there’s a law known as Dolbear’s Law(shown here: https://en.wikipedia.org/wiki/Dolbear%27s_law)  which uses the number of chirps in a minute for Fahrenheit, or 8 seconds for Celsius to calculate the temperature. Celsius is very simple, and just requires adding 5 to the number of chirps in 8 seconds, which gets us a temperature of 23C.

    Tc= 5 + N8

    For Fahrenheit, it’s a bit more complicated, as we need the chirps in a minute. This is around 132 chirps in our case. Putting that into the formula:

    TF= 50 +((N60 – 40)/4)

    Which gets us 73F, or 22.7C, so you can see that it works pretty well! Pretty cool, huh?

     

    There was also some really cool images that were produced, like the thunder plot:

    Which I personally really like due to the contrasting black and yellow spike that occurs. Overall this was a very fun project to do, getting to tweak the different colours and scales of each spectrogram, creating a story out of a sound. Hope you all enjoy it!

     I accidentally stumbled on this problem in the list of tasks for mathematical olympiads. I quote its text in Russian-English translation:

    "The floor in the drawing room of Baron Munchausen is paved with the identical square stone plates.
     Baron claims that his new carpet (made of one piece of a material ) covers exactly 24 plates and
     at the same time each vertical and each horizontal row of plates in the living room contains 
    exactly 4 plates covered with carpet. Is not the Baron deceiving?"

    At first glance this seems impossible, but in fact the Baron is right. Several examples can be obtained simply by hand, for example

                                            or        

     

    The problem is to find all solutions. This post is dedicated to this problem.

    We put in correspondence to each such carpet a matrix of zeros and ones, such that in each row and in each column there are exactly 2 zeros and 4 ones. The problem to generate all such the matrices was already discussed here and Carl found a very effective solution. I propose another solution (based on the method of branches and boundaries), it is less effective, but more universal. I've used this method several times, for example here and here.
    There will be a lot of such matrices (total 67950), so we will impose natural limitations. We require that the carpet be a simply connected set that has as its boundary a simple polygon (non-self-intersecting).

    Below we give a complete solution to the problem.


    restart;
    R:=combinat:-permute([0,0,1,1,1,1]);
    # All lists of two zeros and four units

    # In the procedure OneStep, the matrices are presented as lists of lists. The procedure adds one row to each matrix so that in each column there are no more than 2 zeros and not more than 4 ones

    OneStep:=proc(L::listlist)
    local m, k, l, r, a, L1;
    m:=nops(L[1]); k:=0;
    for l in L do
    for r in R do
    a:=[op(l),r];
    if `and`(seq(add(a[..,j])<=4, j=1..6)) and `and`(seq(m-add(a[..,j])<=2, j=1..6)) then k:=k+1; L1[k]:=a fi;
    od; od;
    convert(L1, list);
    end proc:

    # M is a list of all matrices, each of which has exactly 2 zeros and 4 units in each row and column

    L:=map(t->[t], R):
    M:=(OneStep@@5)(L):
    nops(M);

                                                67950

    M1:=map(Matrix, M):

    # From the list of M1 we delete those matrices that contain <1,0;0,1> and <0,1;1,0> submatrices. This means that the boundaries of the corresponding carpets will be simple non-self-intersecting curves

    k:=0:
    for m in M1 do
    s:=1;
    for i from 2 to 6 do
    for j from 2 to 6 do
    if (m[i,j]=0 and m[i-1,j-1]=0 and m[i,j-1]=1 and m[i-1,j]=1) or (m[i,j]=1 and m[i-1,j-1]=1 and m[i,j-1]=0 and m[i-1,j]=0) then s:=0; break fi;
    od: if s=0 then break fi; od:
    if s=1 then k:=k+1; M2[k]:=m fi;
    od:
    M2:=convert(M2, list):
    nops(M2);

                                                 394

    # We find the list T of all segments from which the boundary consists

    T:='T':
    n:=0:
    for m in M2 do
    k:=0: S:='S':
    for i from 1 to 6 do
    for j from 1 to 6 do
    if m[i,j]=1 then
    if j=1 or (j>1 and m[i,j-1]=0) then k:=k+1; S[k]:={[j-1/2,7-i-1/2],[j-1/2,7-i+1/2]} fi;
    if i=1 or (i>1 and m[i-1,j]=0) then k:=k+1; S[k]:={[j-1/2,7-i+1/2],[j+1/2,7-i+1/2]} fi;
    if j=6 or (j<6 and m[i,j+1]=0) then k:=k+1; S[k]:={[j+1/2,7-i+1/2],[j+1/2,7-i-1/2]} fi;
    if i=6 or (i<6 and m[i+1,j]=0) then k:=k+1; S[k]:={[j+1/2,7-i-1/2],[j-1/2,7-i-1/2]} fi; 
    fi;
    od: od:
    n:=n+1; T[n]:=[m,convert(S,set)];
    od:
    T:=convert(T, list):

    # Choose carpets with a connected border

    C:='C': k:=0:
    for t in T do
    a:=t[2]; v:=op~(a);
    G:=GraphTheory:-Graph([$1..nops(v)], subs([seq(v[i]=i,i=1..nops(v))],a));
    if GraphTheory:-IsConnected(G) then k:=k+1; C[k]:=t fi;
    od:
    C:=convert(C,list):
    nops(C);
                                                 
     208

    # Sort the list of border segments so that they go one by one and form a polygon

    k:=0: P:='P':
    for c in C do
    a:=c[2]: v:=op~(a);
    G1:=GraphTheory:-Graph([$1..nops(v)], subs([seq(v[i]=i,i=1..nops(v))],a));
    GraphTheory:-IsEulerian(G1,'U');
    U; s:=[op(U)];
    k:=k+1; P[k]:=[seq(v[i],i=s[1..-2])];
    od:
    P:=convert(P, list):

    # We apply AreIsometric procedure from here to remove solutions that coincide under a rotation or reflection

    P1:=[ListTools:-Categorize( AreIsometric, P)]:
    nops(P1);

                                                     28


    We get 28 unique solutions to this problem.

    Visualization of all these solutions:

    interface(rtablesize=100):
    E1:=seq(plottools:-line([1/2,i],[13/2,i], color=red),i=1/2..13/2,1):
    E2:=seq(plottools:-line([i,1/2],[i,13/2], color=red),i=1/2..13/2,1):
    F:=plottools:-polygon([[1/2,1/2],[1/2,13/2],[13/2,13/2],[13/2,1/2]], color=yellow):
    plots:-display(Matrix(4,7,[seq(plots:-display(plottools:-polygon(p,color=red),F, E1,E2), p=[seq(i[1],i=P1)])]), scaling=constrained, axes=none, size=[800,700]);

     

     

    Carpet1.mw

    The code was edited.

     

     

    The Railway Challenge is a competition designed by the Institute of Mechanical Engineers (IMechE), aimed at engaging young engineers with the rail industry.  The challenge, now in its seventh successive year, brings together teams of university students, as well as apprentices and graduates working in industry across the world to test their business knowledge, design ability and technical skills in a live test environment.

    The Railway Challenge at Sheffield (RCAS) is an extracurricular student-led activity within the Mechanical Engineering department at the university of Sheffield, that designs, codes and manufactures a 10 1/4 inch gauge miniature locomotive to compete in the IMechE’s  Railway Challenge.  The locomotive is assessed in accordance with a set of strict rules and a detailed technical specification, such as traction, ride comfort, and a business case. The locomotives are tested live at a competition, which takes place in June at the Stapleford Miniature Railway in Leicestershire, where several categories of winners and an overall Railway Challenge champion is crowned.

    The team consists of around twenty members, and students studying Mechanical Engineering and even cross discipline can get involved as soon as they come to the University, getting into to the design of components within the suspension or braking systems for example, before proceeding to manufacture and test; allowing the students to experience all the stages of an engineering product as well as skills gained by working in the team such as effective communication, time management and financial planning.

    Last year the team was granted a sponsorship from Maplesoft, and as a result, huge improvements were made within the team. Overall the team jumped from finishing in 7th place to in the summer winning the maintainability challenge and finishing in 4th place overall – mostly down to the electronics working for the first year ever!

     

    Using Maplesoft’s donation the team switched form a central CRIO control system to a distributed network using I2C protocols and Arduino hardware. This did away with some of the electrical teething problems the team has suffered in previous years. It also introduced our Mechanical Engineers to coding that they would otherwise not do in their course.

    This year Maplesoft have again sponsored RCAS. The team is hoping to use the licenses to perform their structures calculations in an easy way to keep track of them for use in the design report. They are also hoping to use MapleSim for dynamics modelling, to assist with suspension design, and designing any electronics or control elements, such as filter design and motor control.

    We’re so excited to bring you guys #MapleOfficeHours! This is a program we’ve designed for students (but open to everyone) to connect via social media for help with Maple. Maple can play a really important part in your courses and can sometimes be intimidating for new users. We get it, there’s a lot of ground to cover. With #MapleOfficeHours, we will use social media as a live Q&A platform to help you figure out how to use Maple for your homework, assignments and more. Having trouble with a command or function? #MapleOfficeHours. Need help finding a specific resource or app? #MapleOfficeHours. You get the idea…

    Just like the office hours your professors hold, #MapleOfficeHours is going to be available on a regular basis for support. More events will be scheduled soon, but look out for Twitter chats, mini-webinars, Facebook live events and more. Once we get going, we’d love to hear your feedback on what other types of events we can offer and what topics you’d like to see covered.

    Our first #MapleOfficeHours event will be a live Twitter chat. On October 16th at 2PM EDT, I will be joined with Maple Product Manager, @DanielSkoog and Tech Support Team Lead, Dr. Matt Calder to answer as many questions about Maple that we can possibly fit into an hour’s time.

    To join the Twitter chat, use the hashtag #MapleOfficeHours when posting your questions and/or mention us with @maplesoft.

    Looking forward to seeing everyone at our first #MapleOfficeHours event on October 16th, 2PM EDT!

    Using the syntax in Maple we develop the energy with conservation equations here we are applying the commands int, factor, solve among others. We also integrate vector functions through the scalar product and finally we calculate conservative fields applying the rotational to a field of force. Exclusive for engineering students. In spanish.

    Work_of_a_Force.mw

    Lenin Araujo castillo

    Ambassafor of Maple


     

    Maple 2017.1 and 2017.2 introduced several improvements in the solution of PDE & Boundary conditions problems (exact solutions).  Maple 2017.3 includes more improvements in this same area.

     

    The following is a set of 25 examples of different PDE & Boundary Conditions problems that are solvable in Maple 2017.3 but not in Maple 2017.2 or previous releases. In the examples that follow, in some cases the PDE is different, in other cases the boundary conditions are of a different kind or solving the problem involves different computational strategies.

    As usual, at the end there is a link pointing to the corresponding worksheet.

     

    pde[1] := diff(u(x, t), t) = k*(diff(u(x, t), x, x)); bc[1] := u(x, 0) = 6+4*cos(3*Pi*x/L), (D[1](u))(0, t) = 0, (D[1](u))(L, t) = 0

    diff(u(x, t), t) = k*(diff(diff(u(x, t), x), x))

     

    u(x, 0) = 6+4*cos(3*Pi*x/L), (D[1](u))(0, t) = 0, (D[1](u))(L, t) = 0

    (1)

    `assuming`([pdsolve([pde[1], bc[1]], u(x, t))], [L > 0, k > 0])

    u(x, t) = 6+4*cos(3*Pi*x/L)*exp(-9*k*Pi^2*t/L^2)

    (2)

    pde[2] := diff(g(t, x), t) = diff(g(t, x), x, x)+a*g(t, x); bc[2] := g(0, x) = 1

    diff(g(t, x), t) = diff(diff(g(t, x), x), x)+a*g(t, x)

     

    g(0, x) = 1

    (3)

    pdsolve([pde[2], bc[2]])

    g(t, x) = exp(a*t)

    (4)

    pde[3] := diff(u(x, t), t) = diff(u(x, t), x, x)

    bc[3] := u(x, 0) = f(x), u(-1, t) = 0, u(1, t) = 0

    diff(u(x, t), t) = diff(diff(u(x, t), x), x)

     

    u(x, 0) = f(x), u(-1, t) = 0, u(1, t) = 0

    (5)

    pdsolve([pde[3], bc[3]], u(x, t))

    u(x, t) = Sum((Int(f(x)*sin(n*Pi*x), x = -1 .. 1))*sin(n*Pi*x)*exp(-Pi^2*n^2*t), n = 1 .. infinity)

    (6)

    pde[4] := diff(u(x, t), t) = k*(diff(u(x, t), x, x)); bc[4] := u(0, t) = 0, u(L, t) = 0, u(x, 0) = piecewise(0 < x and x <= (1/2)*L, 1, (1/2)*L < x and x < L, 2)

    pde[4] := diff(u(x, t), t) = k*(diff(u(x, t), x, x))

     

    u(0, t) = 0, u(L, t) = 0, u(x, 0) = piecewise(0 < x and x <= (1/2)*L, 1, (1/2)*L < x and x < L, 2)

    (7)

    `assuming`([pdsolve([pde[4], bc[4]], u(x, t))], [L > 0])

    u(x, t) = Sum((2*cos((1/2)*Pi*n)+2+4*(-1)^(1+n))*sin(n*Pi*x/L)*exp(-k*Pi^2*n^2*t/L^2)/(Pi*n), n = 1 .. infinity)

    (8)

    pde[5] := diff(u(x, t), t) = k*(diff(u(x, t), x, x))

    bc[5] := (D[1](u))(0, t) = 0, (D[1](u))(L, t) = 0, u(x, 0) = -3*cos(8*Pi*x/L)

    diff(u(x, t), t) = k*(diff(diff(u(x, t), x), x))

     

    (D[1](u))(0, t) = 0, (D[1](u))(L, t) = 0, u(x, 0) = -3*cos(8*Pi*x/L)

    (9)

    `assuming`([pdsolve([pde[5], bc[5]], u(x, t))], [0 < L, 0 < k])

    u(x, t) = -3*cos(8*Pi*x/L)*exp(-64*k*Pi^2*t/L^2)

    (10)

    pde[6] := diff(u(x, t), t) = k*(diff(u(x, t), x, x))+f(x, t); bc[6] := u(0, t) = 0, u(l, t) = 0, u(x, 0) = g(x)

    diff(u(x, t), t) = k*(diff(diff(u(x, t), x), x))+f(x, t)

     

    u(0, t) = 0, u(l, t) = 0, u(x, 0) = g(x)

    (11)

    pdsolve([pde[6], bc[6]], u(x, t))

    u(x, t) = Sum(2*(Int(g(tau1)*sin(Pi*n1*tau1/l), tau1 = 0 .. l))*sin(Pi*n1*x/l)*exp(-k*Pi^2*n1^2*t/l^2)/l, n1 = 1 .. infinity)+Int(Sum(2*(Int(f(x, tau1)*sin(Pi*n*x/l), x = 0 .. l))*sin(Pi*n*x/l)*exp(-k*Pi^2*n^2*(t-tau1)/l^2)/l, n = 1 .. infinity), tau1 = 0 .. t)

    (12)

    pde[7] := diff(u(x, t), t) = diff(u(x, t), x, x); bc[7] := u(x, 0) = f(x), u(-1, t) = 0, u(1, t) = 0

    diff(u(x, t), t) = diff(diff(u(x, t), x), x)

     

    u(x, 0) = f(x), u(-1, t) = 0, u(1, t) = 0

    (13)

    pdsolve([pde[7], bc[7]], u(x, t))

    u(x, t) = Sum((Int(f(x)*sin(n*Pi*x), x = -1 .. 1))*sin(n*Pi*x)*exp(-Pi^2*n^2*t), n = 1 .. infinity)

    (14)

    pde[8] := diff(u(x, t), t) = k*(diff(u(x, t), x, x))-h*u(x, t); bc[8] := u(x, 0) = sin(x), u(-Pi, t) = u(Pi, t), (D[1](u))(-Pi, t) = (D[1](u))(Pi, t)

    diff(u(x, t), t) = k*(diff(diff(u(x, t), x), x))-h*u(x, t)

     

    u(x, 0) = sin(x), u(-Pi, t) = u(Pi, t), (D[1](u))(-Pi, t) = (D[1](u))(Pi, t)

    (15)

    pdsolve([pde[8], bc[8]], u(x, t))

    u(x, t) = sin(x)*exp(-t*(k+h))

    (16)

    pde[9] := diff(u(x, t), t) = diff(u(x, t), x, x)

    bc[9] := u(0, t) = 20, u(1, t) = 50, u(x, 0) = 0

    diff(u(x, t), t) = diff(diff(u(x, t), x), x)

     

    u(0, t) = 20, u(1, t) = 50, u(x, 0) = 0

    (17)

    pdsolve([pde[9], bc[9]], u(x, t))

    u(x, t) = 20+Sum((-40+100*(-1)^n)*sin(n*Pi*x)*exp(-Pi^2*n^2*t)/(Pi*n), n = 1 .. infinity)+30*x

    (18)

    pde[10] := diff(u(x, y), x, x)+diff(u(x, y), y, y) = 0; bc[10] := u(x, 0) = 0, u(x, 1) = 0, u(0, y) = y^2-y, u(1, y) = 0

    diff(diff(u(x, y), x), x)+diff(diff(u(x, y), y), y) = 0

     

    u(x, 0) = 0, u(x, 1) = 0, u(0, y) = y^2-y, u(1, y) = 0

    (19)

    pdsolve([pde[10], bc[10]], u(x, y))

    u(x, y) = Sum(-4*((-1)^n-1)*sin(Pi*y*n)*(exp(Pi*n*(2*x-1))-exp(Pi*n))*exp(-Pi*n*(x-1))/((exp(2*Pi*n)-1)*Pi^3*n^3), n = 1 .. infinity)

    (20)

    pde[11] := diff(u(x, y), x, x)+diff(u(x, y), y, y) = 0

    bc[11] := (D[1](u))(0, y) = 0, (D[1](u))(L, y) = 0, u(x, H) = f(x), u(x, 0) = 0

    diff(diff(u(x, y), x), x)+diff(diff(u(x, y), y), y) = 0

     

    (D[1](u))(0, y) = 0, (D[1](u))(L, y) = 0, u(x, H) = f(x), u(x, 0) = 0

    (21)

    `assuming`([pdsolve([pde[11], bc[11]], u(x, y))], [0 < L, 0 < H])

    u(x, y) = Sum(2*(Int(cos(Pi*x*n/L)*f(x), x = 0 .. L))*cos(Pi*x*n/L)*exp(Pi*n*(H-y)/L)*(exp(2*Pi*y*n/L)-1)/(L*(exp(2*Pi*H*n/L)-1)), n = 1 .. infinity)

    (22)

    pde[12] := diff(u(x, y), x, x)+diff(u(x, y), y, y) = 0

    bc[12] := (D[1](u))(L, y) = 0, u(x, H) = 0, u(x, 0) = 0, (D[1](u))(0, y) = g(y)

    diff(diff(u(x, y), x), x)+diff(diff(u(x, y), y), y) = 0

     

    (D[1](u))(L, y) = 0, u(x, H) = 0, u(x, 0) = 0, (D[1](u))(0, y) = g(y)

    (23)

    `assuming`([pdsolve([pde[12], bc[12]], u(x, y))], [0 < x, x <= L, 0 < y, y <= H])

    u(x, y) = Sum(-2*(Int(sin(Pi*y*n/H)*g(y), y = 0 .. H))*sin(Pi*y*n/H)*(exp(-Pi*n*(L-2*x)/H)+exp(Pi*L*n/H))*exp(Pi*n*(L-x)/H)/(Pi*n*(exp(2*Pi*L*n/H)-1)), n = 1 .. infinity)

    (24)

    pde[13] := diff(u(x, y), x, x)+diff(u(x, y), y, y) = 0

    bc[13] := (D[1](u))(0, y) = 0, u(x, 0) = 0, u(x, H) = 0, u(L, y) = g(y)

    diff(diff(u(x, y), x), x)+diff(diff(u(x, y), y), y) = 0

     

    (D[1](u))(0, y) = 0, u(x, 0) = 0, u(x, H) = 0, u(L, y) = g(y)

    (25)

    `assuming`([pdsolve([pde[13], bc[13]], u(x, y))], [0 < L, 0 < H])

    u(x, y) = Sum(2*(Int(sin(Pi*y*n/H)*g(y), y = 0 .. H))*sin(Pi*y*n/H)*exp(Pi*n*(L-x)/H)*(exp(2*Pi*x*n/H)+1)/(H*(exp(2*Pi*L*n/H)+1)), n = 1 .. infinity)

    (26)

    pde[14] := diff(u(x, y), x, x)+diff(u(x, y), y, y) = 0

    bc[14] := u(0, y) = g(y), u(L, y) = 0, (D[2](u))(x, 0) = 0, u(x, H) = 0

    diff(diff(u(x, y), x), x)+diff(diff(u(x, y), y), y) = 0

     

    u(0, y) = g(y), u(L, y) = 0, (D[2](u))(x, 0) = 0, u(x, H) = 0

    (27)

    `assuming`([pdsolve([pde[14], bc[14]], u(x, y))], [0 < x, x <= L, 0 < y, y <= H])

    u(x, y) = Sum(-2*(exp(-(L-2*x)*(1/2+n)*Pi/H)-exp((1/2)*Pi*(1+2*n)*L/H))*cos((1/2)*Pi*(1+2*n)*y/H)*(Int(cos((1/2)*Pi*(1+2*n)*y/H)*g(y), y = 0 .. H))*exp((1/2)*Pi*(1+2*n)*(L-x)/H)/(H*(exp(Pi*(1+2*n)*L/H)-1)), n = 0 .. infinity)

    (28)

    pde[15] := diff(u(x, y), x, x)+diff(u(x, y), y, y) = 0

    bc[15] := u(0, y) = 0, u(L, y) = 0, u(x, 0) = (D[2](u))(x, 0), u(x, H) = f(x)

    diff(diff(u(x, y), x), x)+diff(diff(u(x, y), y), y) = 0

     

    u(0, y) = 0, u(L, y) = 0, u(x, 0) = (D[2](u))(x, 0), u(x, H) = f(x)

    (29)

    `assuming`([pdsolve([pde[15], bc[15]], u(x, y))], [0 < x, x <= L, 0 < y, y <= H])

    u(x, y) = Sum(2*exp(Pi*n*(H-y)/L)*sin(Pi*x*n/L)*((Pi*n+L)*exp(2*Pi*y*n/L)+Pi*n-L)*(Int(sin(Pi*x*n/L)*f(x), x = 0 .. L))/(L*((Pi*n+L)*exp(2*Pi*H*n/L)+Pi*n-L)), n = 1 .. infinity)

    (30)

    pde[16] := diff(u(x, t), t, t) = c^2*(diff(u(x, t), x, x))

    bc[16] := u(0, t) = 0, (D[1](u))(L, t) = 0, (D[2](u))(x, 0) = 0, u(x, 0) = f(x)

    diff(diff(u(x, t), t), t) = c^2*(diff(diff(u(x, t), x), x))

     

    u(0, t) = 0, (D[1](u))(L, t) = 0, (D[2](u))(x, 0) = 0, u(x, 0) = f(x)

    (31)

    `assuming`([pdsolve([pde[16], bc[16]], u(x, t))], [0 < x, x <= L])

    u(x, t) = Sum(2*cos((1/2)*c*Pi*(1+2*n)*t/L)*(Int(sin((1/2)*Pi*(1+2*n)*x/L)*f(x), x = 0 .. L))*sin((1/2)*Pi*(1+2*n)*x/L)/L, n = 0 .. infinity)

    (32)

    pde[17] := diff(w(x1, x2, x3, t), t) = diff(w(x1, x2, x3, t), x1, x1)+diff(w(x1, x2, x3, t), x2, x2)+diff(w(x1, x2, x3, t), x3, x3)

    bc[17] := w(x1, x2, x3, 0) = exp(x1)+x2*x3^5

    diff(w(x1, x2, x3, t), t) = diff(diff(w(x1, x2, x3, t), x1), x1)+diff(diff(w(x1, x2, x3, t), x2), x2)+diff(diff(w(x1, x2, x3, t), x3), x3)

     

    w(x1, x2, x3, 0) = exp(x1)+x2*x3^5

    (33)

    pdsolve([pde[17], bc[17]])

    w(x1, x2, x3, t) = Sum(t^n*((proc (U) options operator, arrow; diff(diff(U, x1), x1)+diff(diff(U, x2), x2)+diff(diff(U, x3), x3) end proc)@@n)(exp(x1)+x2*x3^5)/factorial(n), n = 0 .. infinity)

    (34)

    pde[18] := diff(u(x, t), t)+u(x, t)*(diff(u(x, t), x)) = -x

    bc[18] := u(x, 0) = x

    diff(u(x, t), t)+u(x, t)*(diff(u(x, t), x)) = -x

     

    u(x, 0) = x

    (35)

    pdsolve([pde[18], bc[18]], u(x, t))

    u(x, t) = x/tan(t+(1/4)*Pi)

    (36)

    pde[19] := diff(u(x, t), t)-u(x, t)^2*(diff(u(x, t), x)) = 3*u(x, t)

    bc[19] := u(x, 0) = x

    diff(u(x, t), t)-u(x, t)^2*(diff(u(x, t), x)) = 3*u(x, t)

     

    u(x, 0) = x

    (37)

    pdsolve([pde[19], bc[19]], u(x, t))

    u(x, t) = -exp(3*t)*((-6*exp(6*t)*x+6*x+9)^(1/2)-3)/(exp(6*t)-1)

    (38)

    pde[20] := diff(u(x, t), t)-x*u(x, t)*(diff(u(x, t), x)) = 0

    bc[20] := u(x, 0) = x

    diff(u(x, t), t)-x*u(x, t)*(diff(u(x, t), x)) = 0

     

    u(x, 0) = x

    (39)

    pdsolve([pde[20], bc[20]], u(x, t))

    u(x, t) = -LambertW(-t*x)/t

    (40)

    pde[21] := diff(u(x, t), t)+u(x, t)*(diff(u(x, t), x)) = 0

    bc[21] := u(x, 0) = x

    diff(u(x, t), t)+u(x, t)*(diff(u(x, t), x)) = 0

     

    u(x, 0) = x

    (41)

    pdsolve([pde[21], bc[21]], u(x, t))

    u(x, t) = x/(t+1)

    (42)

    pde[22] := (t+u(x, t))*(diff(u(x, t), x))+t*(diff(u(x, t), t)) = 0; bc[22] := u(x, 1) = x

    (t+u(x, t))*(diff(u(x, t), x))+t*(diff(u(x, t), t)) = 0

     

    u(x, 1) = x

    (43)

    pdsolve([pde[22], bc[22]], u(x, t))

    u(x, t) = (t-x-1)/(ln(1/t)-1)

    (44)

    pde[23] := (diff(r*(diff(u(r, theta), r)), r))/r+(diff(u(r, theta), theta, theta))/r^2 = 0; bc[23] := u(a, theta) = f(theta), u(r, -Pi) = u(r, Pi), (D[2](u))(r, -Pi) = (D[2](u))(r, Pi)

    (diff(u(r, theta), r)+r*(diff(diff(u(r, theta), r), r)))/r+(diff(diff(u(r, theta), theta), theta))/r^2 = 0

     

    u(a, theta) = f(theta), u(r, -Pi) = u(r, Pi), (D[2](u))(r, -Pi) = (D[2](u))(r, Pi)

    (45)

    `assuming`([pdsolve([pde[23], bc[23]], u(r, theta), HINT = boundedseries)], [a > 0])

    u(r, theta) = (1/2)*(2*(Sum(r^n*(sin(n*theta)*(Int(f(theta)*sin(n*theta), theta = -Pi .. Pi))+cos(n*theta)*(Int(f(theta)*cos(n*theta), theta = -Pi .. Pi)))*a^(-n)/Pi, n = 1 .. infinity))*Pi+Int(f(theta), theta = -Pi .. Pi))/Pi

    (46)

    pde[24] := diff(g(t, x), t) = diff(g(t, x), x, x)+a*g(t, x); bc[24] := g(0, x) = f(x)

    diff(g(t, x), t) = diff(diff(g(t, x), x), x)+a*g(t, x)

     

    g(0, x) = f(x)

    (47)

    pdsolve([pde[24], bc[24]])

    g(t, x) = exp(a*t)*invfourier(fourier(f(x), x, s1)*exp(-t*s1^2), s1, x)

    (48)

    pde[25] := diff(u(x, y), x, x)+diff(u(x, y), y, y) = 0; bc[25] := u(0, y) = y*(-y+1), u(1, y) = 0, (D[2](u))(x, 0) = 0, (D[2](u))(x, 1) = 0

    diff(diff(u(x, y), x), x)+diff(diff(u(x, y), y), y) = 0

     

    u(0, y) = y*(-y+1), u(1, y) = 0, (D[2](u))(x, 0) = 0, (D[2](u))(x, 1) = 0

    (49)

    pdsolve([pde[25], bc[25]], u(x, y))

    u(x, y) = Sum(2*((-1)^n+1)*cos(Pi*y*n)*(exp(Pi*n*(2*x-1))-exp(Pi*n))*exp(-Pi*n*(x-1))/((exp(2*Pi*n)-1)*Pi^2*n^2), n = 1 .. infinity)

    (50)

    ``


     

    Download ImprovementsInPdsolve.mw

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

    And the Nobel prize in physics 2017 went for work in General Relativity ! Actually, experimental work involving sophisticated detectors and Numerical Relativity, one of the branches of GR. The prize was awarded to Rainer Weiss (85 years old, 1/2 of the prize), Barry Barish (81 years old, 1/4 of the prize) and Kip Thorne (77 years old, 1/4 of the prize) who have "shaken the world again" with their work on Ligo experiment, which was able to detect ripples in the fabric of spacetime.

    General Relativity continues to be at the center of work in theoretical and experimental physics. I take this opportunity to note that, in Maple 2017, among the several improvements in the Physics package regarding General Relativity, there is a new package, Physics:-ThreePlusOne, all dedicated to the symbolic manipulations necessary to formulate problems in Numerical Relativity.

    The GR functionality implemented in Physics, Physics:-Tetrads and Physics:-ThreePlusOne is unique in computer algebra systems and reflects the Maplesoft intention, for several years now, to provide the very best possible computer algebra environment for Physics, regarding current research activity as well as related education in advanced mathematical-physics methods.

    For what is going on in theoretical physics nowadays and its connection with General Relativity, in very short: the unification of gravity with the other forces, check for instance this map from Aug/2015 (by the way a very nice summary for whoever is interested):

    It is also interesting the article behind this map of topics as well as this brilliant and accessible presentation by Nima Arkani-Hamed (Princeton):  Quantum Mechanics and Spacetime in the 21st Century, given in the Perimeter Institute for Theoretical Physics (Waterloo), November 2014. 

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

    We have released a small maintenance update to Maple. Maple 2017.3 provides enhancements in several areas, including mathematical typesetting, pdsolve, and the Physics package. It also provides improvements to the MapleCloud, including a fix for a problem that prevented some Mac users from logging on with their Google credentials.

    This update is available through Tools>Check for Updates in Maple, and is also available from our website on the Maple 2017.3 download page.

     

    First 34 35 36 37 38 39 40 Last Page 36 of 289