ecterrab

14540 Reputation

24 Badges

20 years, 25 days

MaplePrimes Activity


These are Posts that have been published by ecterrab


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

• 

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

• 

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

• 

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

• 

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

• 

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

More mathematics

 

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

Examples

   

More powerful symbolic differentiation (nth order derivative)

 

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

Examples

   

Mathematical handling of symbolic sequences

 

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

Examples

   

Visualization of mathematical functions

 

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

Examples

   

Section and subsections displaying properties of mathematical functions

 

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

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

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

Examples

   

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


Download MathematicalFunctionsAndFunctionAdvisor.mw

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


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


One of the interesting things about the Physics package is that it was designed from scratch to extend the domain of operations of the Maple system from commutative variables to one that includes commutative, anticommutative and nonocommutative variables, as well as abstract vectors and related (nabla) differential operators. In this line we have, among others, the following Physics commands working with this extended domain: `*` , `.` , `^` , diff , Expand , Normal , Simplify , Gtaylor , and Coefficients .

 

More recently, Pascal Szriftgiser (from Laboratoire PhLAM, Université Lille 1, France), suggested a similar approach to factorize expressions involving noncommutative variables. This is a pretty complicated problem though. Pascal's suggestion, however, spinned around an idea beautiful for its simplicity, similar to what is done in the experimental Physics command, PerformOnAnticommutativeSystem , that is, to transform the problem into one that can be treated with the command that works only with commutative variables and from there extract the result for noncommutative ones.The approach has limitations but it is surprising how far one can go using imaginative algebraic manipulations to extend these commands that otherwise only work with commutative variables.

 

In brief, we now have a new command, Physics:-Factor, with already powerful performance for factorizing algebraic expressions that involve commutative, noncommutative and anticommutative variables, making Maple's mathematical capabilities more advanced in very interesting directions. This command is in fact useful not just in advanced theoretical physics, but for instance also when working with noncommutative symbols representing abstract matrices (that can have dependency, and so they can be differentiated before saying anything about their components, multiplied, and be present int  expressions that in turn can be expanded, simplified and now also factorized), and also useful with expressions that include differential operators, now that within Physics you can compute with the the covariant and noncovariant derivatives D_  and d_ algebraically. For instance, how about solving differential equations using Physics:-Factor (reducing their order by means of factoring the involved differential operators) ? :)

 

What follows are some basic algebraic examples illustrating the novelty, and as usual to reproduce the results in this worksheet you need to update your Physics library with the one available in the Maplesoft R&D Physics webpage.

 

Physics:-Version()[2]

`2015, September 25, 7:48 hours`

(1)

with(Physics); -1; Setup(quantumoperators = {a, b, c, d, e}, mathematicalnotation = true)

[mathematicalnotation = true, quantumoperators = {a, b, c, d, e}]

(2)

First example, because of using mathematical notation, noncommutative variables are displayed in different color (olive)

Physics:-`*`(Physics:-`^`(alpha, 2), Physics:-`^`(a, 2))+Physics:-`*`(Physics:-`*`(Physics:-`*`(alpha, sqrt(2)), a), b)+Physics:-`*`(Physics:-`*`(Physics:-`*`(Physics:-`*`(4, sqrt(2)), lambda), Physics:-`^`(b, 2)), c)+Physics:-`*`(Physics:-`*`(Physics:-`*`(Physics:-`*`(Physics:-`*`(4, lambda), alpha), b), c), a)+Physics:-`*`(Physics:-`*`(Physics:-`*`(Physics:-`*`(Physics:-`*`(4, lambda), sqrt(2)), b), c), b)+Physics:-`*`(Physics:-`*`(16, Physics:-`^`(lambda, 2)), Physics:-`^`(Physics:-`*`(b, c), 2))+Physics:-`*`(Physics:-`*`(Physics:-`*`(Physics:-`*`(Physics:-`*`(4, alpha), lambda), a), b), c)+Physics:-`*`(Physics:-`*`(Physics:-`*`(sqrt(2), alpha), b), a)+Physics:-`*`(2, Physics:-`^`(b, 2))

alpha^2*Physics:-`^`(a, 2)+alpha*2^(1/2)*Physics:-`*`(a, b)+4*2^(1/2)*lambda*Physics:-`*`(Physics:-`^`(b, 2), c)+4*lambda*alpha*Physics:-`*`(b, c, a)+4*2^(1/2)*lambda*Physics:-`*`(b, c, b)+16*lambda^2*Physics:-`^`(Physics:-`*`(b, c), 2)+4*lambda*alpha*Physics:-`*`(a, b, c)+alpha*2^(1/2)*Physics:-`*`(b, a)+2*Physics:-`^`(b, 2)

(3)

Physics:-Factor(alpha^2*Physics:-`^`(a, 2)+alpha*2^(1/2)*Physics:-`*`(a, b)+4*2^(1/2)*lambda*Physics:-`*`(Physics:-`^`(b, 2), c)+4*lambda*alpha*Physics:-`*`(b, c, a)+4*2^(1/2)*lambda*Physics:-`*`(b, c, b)+16*lambda^2*Physics:-`^`(Physics:-`*`(b, c), 2)+4*lambda*alpha*Physics:-`*`(a, b, c)+alpha*2^(1/2)*Physics:-`*`(b, a)+2*Physics:-`^`(b, 2))

Physics:-`^`(4*lambda*Physics:-`*`(b, c)+a*alpha+2^(1/2)*b, 2)

(4)

A more involved example from a physics problem, illustrating that the factorization is also happening within function's arguments, as well as that we can also correctly expand mathematical expressions involving noncommutative variables

PDEtools:-declare((a, b, c, g)(x, y)):

a(x, y)*`will now be displayed as`*a

 

b(x, y)*`will now be displayed as`*b

 

c(x, y)*`will now be displayed as`*c

 

g(x, y)*`will now be displayed as`*g

(5)

Physics:-Intc(Physics:-`^`(Physics:-`*`(Physics:-`*`(Physics:-`*`(4, Physics:-Dagger(b(x, y))), c(x, y)), lambda)+Physics:-`*`(Physics:-`*`(Physics:-`*`(alpha, f(t)), a(x, y)), Physics:-Dagger(a(x, y)))+Physics:-`*`(Physics:-`*`(sqrt(2), g(x, y)), b(x, y)), 2), x, y)

Int(Int(Physics:-`^`(4*lambda*Physics:-`*`(Physics:-Dagger(b(x, y)), c(x, y))+alpha*f(t)*Physics:-`*`(a(x, y), Physics:-Dagger(a(x, y)))+2^(1/2)*g(x, y)*b(x, y), 2), x = -infinity .. infinity), y = -infinity .. infinity)

(6)

So first expand ...

expand(Int(Int(Physics:-`^`(4*lambda*Physics:-`*`(Physics:-Dagger(b(x, y)), c(x, y))+alpha*f(t)*Physics:-`*`(a(x, y), Physics:-Dagger(a(x, y)))+2^(1/2)*g(x, y)*b(x, y), 2), x = -infinity .. infinity), y = -infinity .. infinity))

Int(Int(16*lambda^2*Physics:-`*`(Physics:-Dagger(b(x, y)), c(x, y), Physics:-Dagger(b(x, y)), c(x, y))+4*lambda*alpha*f(t)*Physics:-`*`(Physics:-Dagger(b(x, y)), c(x, y), a(x, y), Physics:-Dagger(a(x, y)))+4*lambda*2^(1/2)*g(x, y)*Physics:-`*`(Physics:-Dagger(b(x, y)), c(x, y), b(x, y))+4*alpha*f(t)*lambda*Physics:-`*`(a(x, y), Physics:-Dagger(a(x, y)), Physics:-Dagger(b(x, y)), c(x, y))+alpha^2*f(t)^2*Physics:-`*`(a(x, y), Physics:-Dagger(a(x, y)), a(x, y), Physics:-Dagger(a(x, y)))+alpha*f(t)*2^(1/2)*g(x, y)*Physics:-`*`(a(x, y), Physics:-Dagger(a(x, y)), b(x, y))+4*2^(1/2)*g(x, y)*lambda*Physics:-`*`(b(x, y), Physics:-Dagger(b(x, y)), c(x, y))+2^(1/2)*g(x, y)*alpha*f(t)*Physics:-`*`(b(x, y), a(x, y), Physics:-Dagger(a(x, y)))+2*g(x, y)^2*Physics:-`^`(b(x, y), 2), x = -infinity .. infinity), y = -infinity .. infinity)

(7)

Now retrieve the original expression by recursing over the arguments and so factoring the integrand

Physics:-Factor(Int(Int(16*lambda^2*Physics:-`*`(Physics:-Dagger(b(x, y)), c(x, y), Physics:-Dagger(b(x, y)), c(x, y))+4*lambda*alpha*f(t)*Physics:-`*`(Physics:-Dagger(b(x, y)), c(x, y), a(x, y), Physics:-Dagger(a(x, y)))+4*lambda*2^(1/2)*g(x, y)*Physics:-`*`(Physics:-Dagger(b(x, y)), c(x, y), b(x, y))+4*alpha*f(t)*lambda*Physics:-`*`(a(x, y), Physics:-Dagger(a(x, y)), Physics:-Dagger(b(x, y)), c(x, y))+alpha^2*f(t)^2*Physics:-`*`(a(x, y), Physics:-Dagger(a(x, y)), a(x, y), Physics:-Dagger(a(x, y)))+alpha*f(t)*2^(1/2)*g(x, y)*Physics:-`*`(a(x, y), Physics:-Dagger(a(x, y)), b(x, y))+4*2^(1/2)*g(x, y)*lambda*Physics:-`*`(b(x, y), Physics:-Dagger(b(x, y)), c(x, y))+2^(1/2)*g(x, y)*alpha*f(t)*Physics:-`*`(b(x, y), a(x, y), Physics:-Dagger(a(x, y)))+2*g(x, y)^2*Physics:-`^`(b(x, y), 2), x = -infinity .. infinity), y = -infinity .. infinity))

Int(Int(Physics:-`^`(4*lambda*Physics:-`*`(Physics:-Dagger(b(x, y)), c(x, y))+alpha*f(t)*Physics:-`*`(a(x, y), Physics:-Dagger(a(x, y)))+2^(1/2)*g(x, y)*b(x, y), 2), x = -infinity .. infinity), y = -infinity .. infinity)

(8)

This following one looks simpler but it is actually more complicated:

Physics:-`*`(Physics:-Commutator(a, b), c)

Physics:-`*`(Physics:-Commutator(a, b), c)

(9)

expand(Physics:-`*`(Physics:-Commutator(a, b), c))

Physics:-`*`(a, b, c)-Physics:-`*`(b, a, c)

(10)

The complication consists of the fact that the standard factor  command, that assumes products are commutative, can never deal with factors like Physics:-Commutator(a, b) = a*b-a*b because if products were commutative these factors are equal to 0. Of course we not just us factor but include a number of algebraic manipulations before using it, so that the approach handles these cases nicely anyway

Physics:-Factor(Physics:-`*`(a, b, c)-Physics:-`*`(b, a, c))

Physics:-`*`(Physics:-`*`(a, b)-Physics:-`*`(b, a), c)

(11)

This other one is more complicated:

Physics:-`*`(Physics:-`*`(a, b)-Physics:-`*`(b, a), a+Physics:-`*`(beta, b)+Physics:-`^`(c, 2))

Physics:-`*`(Physics:-`*`(a, b)-Physics:-`*`(b, a), a+beta*b+Physics:-`^`(c, 2))

(12)

When you expand,

expand(Physics:-`*`(Physics:-`*`(a, b)-Physics:-`*`(b, a), a+beta*b+Physics:-`^`(c, 2)))

Physics:-`*`(a, b, a)+beta*Physics:-`*`(a, Physics:-`^`(b, 2))+Physics:-`*`(a, b, Physics:-`^`(c, 2))-Physics:-`*`(b, Physics:-`^`(a, 2))-beta*Physics:-`*`(b, a, b)-Physics:-`*`(b, a, Physics:-`^`(c, 2))

(13)

you see that there are various terms involving the same noncommutative operands, just multiplied in different order. Generally speaking the limitation (n this moment) of the approach is: "there cannot be more than 2 terms in the expanded form containing the same operands" . For instance in (13) the 1st and 4th terms have the same operands, that are actually also present in the 5th term but there you also have beta and for that reason (involving some additional manipulations) it can be handled:

Physics:-Factor(Physics:-`*`(a, b, a)+beta*Physics:-`*`(a, Physics:-`^`(b, 2))+Physics:-`*`(a, b, Physics:-`^`(c, 2))-Physics:-`*`(b, Physics:-`^`(a, 2))-beta*Physics:-`*`(b, a, b)-Physics:-`*`(b, a, Physics:-`^`(c, 2)))

Physics:-`*`(Physics:-`*`(a, b)-Physics:-`*`(b, a), a+beta*b+Physics:-`^`(c, 2))

(14)

Recalling, in all these examples, the task is actually accomplished by the standard factor  command, and the manipulations consist of ingeniously rewriting the given problem as one that involves only commutative variables, and from extract the correct result for non commutative variables.

 

To conclude, here is an example where the approach implemented does not work (yet) because of the limitation mentioned in the previous paragraph:

Physics:-`^`(Physics:-Commutator(a, b)+c, 2)

Physics:-`^`(Physics:-Commutator(a, b)+c, 2)

(15)

expand(Physics:-`^`(Physics:-Commutator(a, b)+c, 2))

Physics:-`*`(a, b, a, b)-Physics:-`*`(a, Physics:-`^`(b, 2), a)+Physics:-`*`(a, b, c)-Physics:-`*`(b, Physics:-`^`(a, 2), b)+Physics:-`*`(b, a, b, a)-Physics:-`*`(b, a, c)+Physics:-`*`(c, a, b)-Physics:-`*`(c, b, a)+Physics:-`^`(c, 2)

(16)

In this expression, the 1st, 2nd, 4th and 5th terms have the same operands a, b, a, b and then there are four terms containing the operands a, b, c. We do have an idea of how this could be done too ... :) To be there in one of the next Physics updates.

NULL

NULL


Download Physics[Factor].mw

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


The PDE & BC project , a very nice and challenging one, also one where Maple is pioneer in all computer algebra systems, has restarted, including now also the collaboration of Katherina von Bülow.

Recapping, the PDE & BC project started 5 years ago implementing some of the basic methods found in textbooks to match arbitrary functions and constants to given PDE boundary conditions of different kinds. At this point we aim to fill gaps, and the first one we tackled is the case of 1st order PDE that can be solved without boundary conditions in terms of an arbitrary function, and where a single boundary condition (BC) is given for the PDE unknown function, and this BC does not depend on the independent variables of the problem. It looks simple ... It can be rather tricky though. The method we implemented is a simple however ingenious use of differential invariants  to match the boundary condition.


The resulting new code, the portion already tested, is available for download in the Maplesoft R&D webpage for Differential Equations and Mathematical Functions (the development itself is bundled within the library that contains the new developments for the Physics package, in turn within the zip linked in the webpage).


The examples that can now be handled, although restricted in generality to "only one 1st order linear or nonlinear PDE and only one boundary condition for the unknown function itself", illustrate well how powerful it can be to use more advanced methods to tackle these tricky situations where we need to match an arbitrary function to a boundary condition.


To illustrate the idea, consider first a linear example, among the simplest one could imagine:

PDEtools:-declare(f(x, y, z))

f(x, y, z)*`will now be displayed as`*f

(1)

pde := diff(f(x, y, z), x)+diff(f(x, y, z), y)+diff(f(x, y, z), z) = f(x, y, z)

diff(f(x, y, z), x)+diff(f(x, y, z), y)+diff(f(x, y, z), z) = f(x, y, z)

(2)

Input now a boundary condition (bc) for the unknownf(x, y, z) such that this bc does not depend on the independent variables {x, y, z}; this bc can however depend on arbitrary symbolic parameters, for instance

bc := f(alpha+beta, alpha-beta, 1) = alpha*beta

f(alpha+beta, alpha-beta, 1) = alpha*beta

(3)

With the recent development, this kind of problem can now be solved in one go:

sol := pdsolve([pde, bc])

f(x, y, z) = (1/4)*(x-2*z+2+y)*(x-y)*exp(z-1)

(4)

Nice! And how do you verify this result for correctness? With pdetest , which actually also tests the solution against the boundary conditions:

pdetest(sol, [pde, bc])

[0, 0]

(5)

And what has been done to obtain the solution (4)? First the PDE was solved regardless of the boundary condition, so in general, obtaining:

pdsolve(pde)

f(x, y, z) = _F1(-x+y, -x+z)*exp(x)

(6)

In a second step, the arbitrary function _F1(-x+y, -x+z) got determined such that the boundary condition f(alpha+beta, alpha-beta, 1) = alpha*beta is matched. Concretely, the mapping _F1 is what got determined. You can see this mapping reversing the solving process in two steps. Start taking the difference between the general solution (6) and the solution (4) that matches the boundary condition

(f(x, y, z) = _F1(-x+y, -x+z)*exp(x))-(f(x, y, z) = (1/4)*(x-2*z+2+y)*(x-y)*exp(z-1))

0 = _F1(-x+y, -x+z)*exp(x)-(1/4)*(x-2*z+2+y)*(x-y)*exp(z-1)

(7)

and isolate here _F1(-x+y, -x+z)

PDEtools:-Solve(0 = _F1(-x+y, -x+z)*exp(x)-(1/4)*(x-2*z+2+y)*(x-y)*exp(z-1), _F1(-x+y, -x+z))

_F1(-x+y, -x+z) = (1/4)*exp(-x+z-1)*(x^2-2*x*z-y^2+2*y*z+2*x-2*y)

(8)

So this is the value _F1(-x+y, -x+z) that got determined. To see now the actual solving mapping _F1, that takes for arguments -x+y and -x+z and returns the right-hand side of (8), one can perform a change of variables introducing the two parameters `&tau;__1` and `&tau;__2` of the _F1 mapping:

{tau__1 = -x+y, tau__2 = -x+z, tau__3 = z}

{tau__1 = -x+y, tau__2 = -x+z, tau__3 = z}

(9)

solve({tau__1 = -x+y, tau__2 = -x+z, tau__3 = z}, {x, y, z})

{x = -tau__2+tau__3, y = -tau__2+tau__1+tau__3, z = tau__3}

(10)

PDEtools:-dchange({x = -tau__2+tau__3, y = -tau__2+tau__1+tau__3, z = tau__3}, _F1(-x+y, -x+z) = (1/4)*exp(-x+z-1)*(x^2-2*x*z-y^2+2*y*z+2*x-2*y), proc (u) options operator, arrow; simplify(u, size) end proc)

_F1(tau__1, tau__2) = -(1/4)*exp(tau__2-1)*tau__1*(tau__1-2*tau__2+2)

(11)

So the solving mapping _F1 is

_F1 = unapply(rhs(_F1(tau__1, tau__2) = -(1/4)*exp(tau__2-1)*tau__1*(tau__1-2*tau__2+2)), tau__1, tau__2)

_F1 = (proc (tau__1, tau__2) options operator, arrow; -(1/4)*exp(tau__2-1)*tau__1*(tau__1-2*tau__2+2) end proc)

(12)

Wow! Although this pde & bc problem really look very simple, this solution (12) is highly non-obvious, as is the way to get it just from the boundary condition f(alpha+beta, alpha-beta, 1) = alpha*beta and the solution (6) too. Let's first verify that this mapping is correct (even when we know, by construction, that it is correct). For that, apply (12) to the arguments of the arbitrary function and we should obtain (8)

(_F1 = (proc (tau__1, tau__2) options operator, arrow; -(1/4)*exp(tau__2-1)*tau__1*(tau__1-2*tau__2+2) end proc))(-x+y, -x+z)

_F1(-x+y, -x+z) = -(1/4)*exp(-x+z-1)*(-x+y)*(x-2*z+2+y)

(13)

Indeed this is equal to (8)

normal((_F1(-x+y, -x+z) = -(1/4)*exp(-x+z-1)*(-x+y)*(x-2*z+2+y))-(_F1(-x+y, -x+z) = (1/4)*exp(-x+z-1)*(x^2-2*x*z-y^2+2*y*z+2*x-2*y)))

0 = 0

(14)

Skipping the technical details, the key observation to compute a solving mapping is that, given a 1st order PDE where the unknown depends on k independent variables, if the boundary condition depends on k-1 arbitrary symbolic parameters alpha, beta, one can always seek a "relationship between these k-1parameters and the k-1differential invariants that enter as arguments in the arbitrary function _F1 of the solution", and get the form of the mapping _F1 from this relationship and the bc. The method works in general. Change for instance the bc (3) making its right-hand side be a sum instead of a product

bc := f(alpha+beta, alpha-beta, 1) = alpha+beta

f(alpha+beta, alpha-beta, 1) = alpha+beta

(15)

sol := pdsolve([pde, bc])

f(x, y, z) = (x-z+1)*exp(z-1)

(16)

pdetest(sol, [pde, bc])

[0, 0]

(17)

An interesting case happens when the boundary condition depends on less than k-1 parameters, for instance:

bc__1 := subs(beta = alpha, bc)

f(2*alpha, 0, 1) = 2*alpha

(18)

sol__1 := pdsolve([pde, bc__1])

f(x, y, z) = ((x-z+1)*_C1+x-y)*exp(((z-1)*_C1+y)/(1+_C1))/(1+_C1)

(19)

As we see in this result, the additional difficulty represented by having few parameters got tackled by introducing an arbitrary constant _C1 (this is likely to evolve into something more general...)

pdetest(sol__1, [pde, bc__1])

[0, 0]

(20)

Finally, consider a nonlinear example

PDEtools:-declare(u(x, y))

u(x, y)*`will now be displayed as`*u

(21)

pde := 3*(u(x, y)-y)^2*(diff(u(x, y), x))-(diff(u(x, y), y)) = 0

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

(22)

Here we have 2 independent variables, so for illustration purposes use a boundary condition that depends on only one arbitrary parameter

bc := u(0, alpha) = alpha

u(0, alpha) = alpha

(23)

All looks OK, but we still have another problem: check the arbitrary function _F1 entering the general solution of pde when tackled without any boundary condition:

pdsolve(pde)

u(x, y) = RootOf(-y^3+3*y^2*_Z-3*y*_Z^2+_Z^3-_F1(_Z)-x)

(24)

Remove this RootOf to see the underlying algebraic expression

DEtools[remove_RootOf](u(x, y) = RootOf(-y^3+3*y^2*_Z-3*y*_Z^2+_Z^3-_F1(_Z)-x))

-y^3+3*y^2*u(x, y)-3*y*u(x, y)^2+u(x, y)^3-_F1(u(x, y))-x = 0

(25)

So this is a pde where the general solution is implicit, actually depending on an arbitrary function of the unknown u(x, y) The code handles this problem in the same way, just that in cases like this there may be more than one solution. For this very particular bc (23) there are actually three solutions:

pdsolve([pde, bc])

u(x, y) = x^(1/3)+y, u(x, y) = -(1/2)*x^(1/3)-((1/2)*I)*3^(1/2)*x^(1/3)+y, u(x, y) = -(1/2)*x^(1/3)+((1/2)*I)*3^(1/2)*x^(1/3)+y

(26)

Verify these three solutions against the pde and the boundary condition

map(pdetest, [u(x, y) = x^(1/3)+y, u(x, y) = -(1/2)*x^(1/3)-((1/2)*I)*3^(1/2)*x^(1/3)+y, u(x, y) = -(1/2)*x^(1/3)+((1/2)*I)*3^(1/2)*x^(1/3)+y], [pde, bc])

[[0, 0], [0, 0], [0, 0]]

(27)

:)


Download PDEs_and_Boundary_Conditions.mw

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


In connection with recent developments for symbolic sequences, a number of improvements were implemented regarding symbolic differentiation, that is the computation of n^th order derivatives were n is a symbol, the simplest example being the n^th derivative of the exponential, which of course is the exponential itself. This post is about these developments, done in collaboration with Katherina von Bülow, and available for download as usual from the Maplesoft R&D web page for Differential Equations and Mathematical functions (the update itself is bundled with the official updates of the Maple Physics package).

 

It is important to note that Maple is pioneer in having an actual implementation of symbolic differentiation, something that works for real, since several releases.  The development, however, was somewhat stuck because we were unable to compute the symbolic n^th derivative of a composite function f(g(z)). A formula for this problem is actually known, it is the Faà di Bruno formula, but, in order to implement it, first we were missing the incomplete Bell functions , that got implemented in Maple 15, nice, but then we were still missing differentiating symbolic sequences, and functions whose arguments are symbolic sequences (i.e. the number of arguments of the function is n, a symbol, of unknown value at the time of differentiating). All this got implemented now within the new MathematicalFunctions:-Sequence package, opening the door widely to these improvements in n^th differentiation.

 

The symbolic differentiation code works as mostly all other computer algebra code, by mapping complicated problems into a composition of simpler problems all of which are tractable; what follows is then an illustration of these basic cases.

 

Among the simplest new case that can now be handled there is that of a power where the exponent is linear in the differentiation variable. This is actually an easy problem

(%diff = diff)(f^(alpha*z+beta), `$`(z, n))

%diff(f^(alpha*z+beta), `$`(z, n)) = alpha^n*f^(alpha*z+beta)*ln(f)^n

(1)

More complicated, consider the k^th power of a generic function; the corresponding symbolic derivative can be mapped into a sum of symbolic derivatives of powers of g(z) with lower degree

(%diff = diff)(g(z)^k, `$`(z, n))

%diff(g(z)^k, `$`(z, n)) = k*binomial(n-k, n)*(Sum((-1)^_k1*binomial(n, _k1)*g(z)^(k-_k1)*(Diff(g(z)^_k1, [`$`(z, n)]))/(k-_k1), _k1 = 0 .. n))

(2)

In some cases where g(z) is a known function, the computation can be carried on furthermore. For example, for g = ln the result can be expressed using Stirling numbers of the first kind

(%diff = diff)(ln(alpha*z+beta)^k, `$`(z, n))

%diff(ln(alpha*z+beta)^k, `$`(z, n)) = alpha^n*(Sum(pochhammer(k-_k1+1, _k1)*Stirling1(n, _k1)*ln(alpha*z+beta)^(k-_k1), _k1 = 0 .. n))/(alpha*z+beta)^n

(3)

The case of sin and cos are relatively simpler, but then assumptions on the exponent are required in order to proceed further ahead from (2), for example

`assuming`([(%diff = diff)(sin(alpha*z+beta)^k, `$`(z, n))], [k::posint])

%diff(sin(alpha*z+beta)^k, `$`(z, n)) = (-1)^k*piecewise(n = 0, (-sin(alpha*z+beta))^k, alpha^n*I^n*(Sum(binomial(k, _k1)*(2*_k1-k)^n*exp(I*(2*_k1-k)*(alpha*z+beta+(1/2)*Pi)), _k1 = 0 .. k))/2^k)

(4)

The case of functions of arbitrary number of variables (typical situation where symbolic sequences are required) is now handled properly. This is the pFq hypergeometric function of symbolic order p and q 

(%diff = diff)(hypergeom([`$`(a[i], i = 1 .. p)], [`$`(b[j], j = 1 .. q)], z), `$`(z, n))

%diff(hypergeom([`$`(a[i], i = 1 .. p)], [`$`(b[j], j = 1 .. q)], z), `$`(z, n)) = (product(pochhammer(a[i], n), i = 1 .. p))*hypergeom([`$`(a[i]+n, i = 1 .. p)], [`$`(b[j]+n, j = 1 .. q)], z)/(product(pochhammer(b[j], n), j = 1 .. q))

(5)

The case of the MeijerG function is more complicated, but in practice, for the computer, once it knows how to handle symbolic sequences, the more involved problem becomes computable

(%diff = diff)(MeijerG([[`$`(a[i], i = 1 .. n)], [`$`(b[i], i = n+1 .. p)]], [[`$`(b[i], i = 1 .. m)], [`$`(b[i], i = m+1 .. q)]], z), `$`(z, k))

%diff(MeijerG([[`$`(a[i], i = 1 .. n)], [`$`(b[i], i = n+1 .. p)]], [[`$`(b[i], i = 1 .. m)], [`$`(b[i], i = m+1 .. q)]], z), `$`(z, k)) = MeijerG([[-k, `$`(a[i]-k, i = 1 .. n)], [`$`(b[i]-k, i = n+1 .. p)]], [[`$`(b[i]-k, i = 1 .. m)], [0, `$`(b[i]-k, i = m+1 .. q)]], z)

(6)

Not only the mathematics of this result is correct: the object returned is actually computable to the end (if you provide the values of n, p, m and q), and the typesetting is actually fully readable, as in textbooks, including copy and paste working properly; all this is new.

The n^th derivative of a number of mathematical functions that were not implemented before, are now also implemented, covering the gaps, for example:

(%diff = diff)(BellB(a, z), `$`(z, n))

%diff(BellB(a, z), `$`(z, n)) = Sum(Stirling2(a, _k1)*pochhammer(_k1-n+1, n)*z^(_k1-n), _k1 = 0 .. a)

(7)

(%diff = diff)(bernoulli(z), `$`(z, n))

%diff(bernoulli(z), `$`(z, n)) = pochhammer(nu-n+1, n)*bernoulli(nu-n, z)

(8)

(%diff = diff)(binomial(z, m), `$`(z, n))

%diff(binomial(z, m), `$`(z, n)) = (Sum((-1)^(_k1+m)*Stirling1(m, _k1)*pochhammer(_k1-n+1, n)*(z-m+1)^(_k1-n), _k1 = 1 .. m))/factorial(m)

(9)

(%diff = diff)(euler(a, z), `$`(z, n))

%diff(euler(a, z), `$`(z, n)) = pochhammer(a-n+1, n)*euler(a-n, z)

(10)

In the same way the fundamental formulas for the n^th derivative of all the 12 elliptic Jacobi functions  as well as the four elliptic JacobiTheta functions,  the LambertW , LegendreP  and some others are now all implemented.

Finally there is the "holy grail" of this problem: the n^th derivative of a composite function f(g(z)) - this always-unreachable implementation of Faa di Bruno formula. We now have it :)

(%diff = diff)(f(g(z)), `$`(z, n))

%diff(f(g(z)), `$`(z, n)) = Sum(((D@@k)(f))(g(z))*IncompleteBellB(n, k, `$`(diff(g(z), [`$`(z, j)]), j = 1 .. n-k+1)), k = 0 .. n)

(11)

Note the symbolic sequence of symbolic order derivatives of lower degree, both of of f and g, also within the arguments of the IncompleteBellB function. This is a very abstract formula ... And does this really work? Of course it does :). Consider, for instance, a case where the n^th derivatives of f(z) and g(z) can both be computed by the system:

sin(cos(alpha*z+beta))

sin(cos(alpha*z+beta))

(12)

This is the n^th derivative expressed using Faa di Bruno's formula, in turn expressed using symbolic sequences within the IncompleteBellB  function

(%diff = diff)(sin(cos(alpha*z+beta)), `$`(z, n))

%diff(sin(cos(alpha*z+beta)), `$`(z, n)) = Sum(sin(cos(alpha*z+beta)+(1/2)*k*Pi)*IncompleteBellB(n, k, `$`(cos(alpha*z+beta+(1/2)*j*Pi)*alpha^j, j = 1 .. n-k+1)), k = 0 .. n)

(13)

These results can all be verified. Take for instance n = 3

eval(%diff(sin(cos(alpha*z+beta)), `$`(z, n)) = Sum(sin(cos(alpha*z+beta)+(1/2)*k*Pi)*IncompleteBellB(n, k, `$`(cos(alpha*z+beta+(1/2)*j*Pi)*alpha^j, j = 1 .. n-k+1)), k = 0 .. n), n = 3)

%diff(sin(cos(alpha*z+beta)), z, z, z) = Sum(sin(cos(alpha*z+beta)+(1/2)*k*Pi)*IncompleteBellB(3, k, `$`(cos(alpha*z+beta+(1/2)*j*Pi)*alpha^j, j = 1 .. 4-k)), k = 0 .. 3)

(14)

Compute now the inert functions: on the left-hand side this is just the (now explicit) 3rd order derivative, while on the right-hand side we have a sum of IncompleteBellB  functions, where the number of arguments, expressed in (13) using symbolic sequences that depend on the summation index k and the differentiation order n, now in (14) depend only on k, and get transformed into explicit sequences of arguments when the summation is performed and k assumes integer values

value(%diff(sin(cos(alpha*z+beta)), z, z, z) = Sum(sin(cos(alpha*z+beta)+(1/2)*k*Pi)*IncompleteBellB(3, k, `$`(cos(alpha*z+beta+(1/2)*j*Pi)*alpha^j, j = 1 .. 4-k)), k = 0 .. 3))

alpha^3*sin(alpha*z+beta)*cos(cos(alpha*z+beta))-3*alpha^3*cos(alpha*z+beta)*sin(alpha*z+beta)*sin(cos(alpha*z+beta))+alpha^3*sin(alpha*z+beta)^3*cos(cos(alpha*z+beta)) = alpha^3*sin(alpha*z+beta)*cos(cos(alpha*z+beta))-3*alpha^3*cos(alpha*z+beta)*sin(alpha*z+beta)*sin(cos(alpha*z+beta))+alpha^3*sin(alpha*z+beta)^3*cos(cos(alpha*z+beta))

(15)

Take left-hand side minus right-hand side

simplify((lhs-rhs)(alpha^3*sin(alpha*z+beta)*cos(cos(alpha*z+beta))-3*alpha^3*cos(alpha*z+beta)*sin(alpha*z+beta)*sin(cos(alpha*z+beta))+alpha^3*sin(alpha*z+beta)^3*cos(cos(alpha*z+beta)) = alpha^3*sin(alpha*z+beta)*cos(cos(alpha*z+beta))-3*alpha^3*cos(alpha*z+beta)*sin(alpha*z+beta)*sin(cos(alpha*z+beta))+alpha^3*sin(alpha*z+beta)^3*cos(cos(alpha*z+beta))))

0

(16)

NULL

:)


Download SymbolicOrderDifferentiation.mw


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

First 11 12 13 14 15 16 17 Page 13 of 18