Education

Teaching and learning about math, Maple and MapleSim

Formulating and solving the equivalence problem for Schwarzschild metric in a simple case

 

In connection with the digitizing in Maple 2016 of the database of solutions to Einstein's equations of the book Exact Solutions to Einstein Field Equations. I was recently asked about a statement found in the "What is new in Physics in Maple 2016" page:

  

In the Maple PDEtools package, you have the mathematical tools - including a complete symmetry approach - to work with the underlying [Einstein’s] partial differential equations. [By combining that functionality with the one in the Physics and Physics:-Tetrads package] you can also formulate and, depending on the metrics also resolve, the equivalence problem; that is: to answer whether or not, given two metrics, they can be obtained from each other by a transformation of coordinates, as well as compute the transformation.

This question posed is a reasonable one: "could you please provide one example?" This post provides that example.

 

First of all the existing science behind: in my opinion, the main reference regarding the equivalence problem is at the paper "A Review of the Geometrical Equivalence of Metrics in General Relativity", General Relativity and Gravitation, Vol. 12, No. 9, 1980, by A. Karlhede (University of Stockholm). This approach got refined later by others and, generally speaking, it is currently know as the Cartan-Karlhede method, summarized in chapter 9.2 of the book Exact Solutions to Einstein Field Equations. whose solutions were all digitized within the Physics and DifferentialGeometry packages for Maple 2016. This method of Chapter 9.2 (see also Tetrads and Weyl scalars in canonical form, Mapleprimes post), however, is not the only approach to the problem, and sometimes simpler methods can handle the problem faster, or just in simpler forms.

 

The example worked out below is actually the example from Karlhede's paper just mentioned, on pages 704 - 706: "Show that the Schwarzschild metric and its form written in terms of isotropic spherical coordinates are equivalent, and derive the transformation that relates them". Because this problem happens to be simple for nowadays computer algebra, below I also tackle it modified, slightly more difficult variants of it. The approach shown works for more complicated cases as well.

 

Below we tackle Karlhede's paper-problem using: one PDEtools command, the Physics:-TransformCoordinates, the Physics:-Weyl command to compute the Weyl scalars and the Physics:-Tetrads:-PetrovType to see the Petrov type of the metrics involved. The transformation resolving the equivalence is explicitly derived.

 

Start loading the Physics and Tetrads package. To reproduce the computations below, as usual, update your Physics library with the one available for download at the Maplesoft R&D Physics webpage

with(Physics); with(Tetrads); Setup(auto = true, tetradmetric = null, signature = `+---`)

`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

 

`* Partial match of  'auto' against keyword 'automaticsimplification'`

 

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

(1)

To formulate the problem, set first some symbols to represent the changed metric, changed mass and changed coordinates - no mathematics at this point

gt, mt, tt, rt, thetat, phit := `𝔤`, `𝔪`, `𝔱`, `𝔯`, `ϑ`, `ϕ`

`𝔤`, `𝔪`, `𝔱`, `𝔯`, vartheta, varphi

(2)

Set now a new coordinates system, call it Y, involving the new coordinates (in the paper they are represented with a tilde on top of the letters)

Coordinates(Y = [tt, rt, thetat, phit])

`Default differentiation variables for d_, D_ and dAlembertian are: `*{Y = (`𝔱`, `𝔯`, `ϑ`, `ϕ`)}

 

`Systems of spacetime Coordinates are: `*{Y = (`𝔱`, `𝔯`, `ϑ`, `ϕ`)}

 

{Y}

(3)

According to eq.(7.6) of the paper, the line element of Schwarzschild solution in isotropic spherical coordinates is given by

`#msup(mi("ds"),mn("2"))` := ((1-mt/(2*rt))/(1+mt/(2*rt)))^2*d_(tt)^2-(1+mt/(2*rt))^4*(d_(rt)^2+rt^2*d_(thetat)^2+rt^2*sin(thetat)^2*d_(phit)^2)

(-2*`𝔯`+`𝔪`)^2*Physics:-d_(`𝔱`)^2/(2*`𝔯`+`𝔪`)^2-(1/16)*(2*`𝔯`+`𝔪`)^4*(Physics:-d_(`𝔯`)^2+`𝔯`^2*Physics:-d_(vartheta)^2+`𝔯`^2*sin(vartheta)^2*Physics:-d_(varphi)^2)/`𝔯`^4

(4)

Set this to be the metric

Setup(metric = `#msup(mi("ds"),mn("2"))`)

Check it out

g_[]

Physics:-g_[mu, nu] = Matrix(%id = 18446744078306516254)

(5)

In connection with the transformation used further below, compute now the Petrov type and the Weyl scalars for this metric, just to have an idea of what is behind this metric.

PetrovType()

"D"

(6)

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = -64*`𝔯`^3*`𝔪`/(2*`𝔯`+`𝔪`)^6, psi__3 = 0, psi__4 = 0

(7)

We see that the Weyl scalars are already in canonical form (see post in Mapleprimes about canonical forms): only `&Psi;__2` <> 0 and the important thing: it depends on only one coordinate, `&rfr;` .

 

Now: we want to see if this metric (5) is equivalent to Schwarzschild metric in standard spherical coordinates

g_[sc]

`Systems of spacetime Coordinates are: `*{X = (t, r, theta, phi), Y = (`&tfr;`, `&rfr;`, `&vartheta;`, `&varphi;`)}

 

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

 

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

 

`Parameters: `[m]

 

Physics:-g_[mu, nu] = Matrix(%id = 18446744078795590102)

(8)

The equivalence we want to resolve is regarding an arbitrary relationship `&mfr;`(m)between the masses used in (5) and (8) and a generic change of variables from X to Y

TR := {phi = Phi(Y), r = R(Y), t = Tau(Y), theta = Theta(Y)}

{phi = Phi(Y), r = R(Y), t = Tau(Y), theta = Theta(Y)}

(9)

Using a differential equation mindset, the formulation of the equivalence between (8) and (5) under the transformation (9) is actually simple: change variables in (8), using (9) and the Physics:-TransformCoordinates command (this is the command that changes variables in tensorial expressions), then equate the result to (5), then try to solve the problem for the unknowns `&mfr;`(m), Phi(Y), R(Y), Theta(Y) and Tau(Y).

 

We note at this point, however, that the Weyl scalars for Schwarzschild metric in this standard form (8) are also in canonical form of Petrov type D and also depend on only one variable, r 

PetrovType()

"D"

(10)

Weyl[scalars]

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

(11)

The fact that the Weyl scalars in both cases ((7) and (11)) are in canonical form (only `&Psi;__2` <> 0 ) and in both cases this scalar depends on only one coordinate is already an indicator that the transformation involved changes only one variable in terms of the other one. So one could just search for a transformation of the form r = R(`&rfr;`) and resolve the problem instantly. Still, to make the problem slightly more general, consider instead a generic transformation for r in terms of all of Y = (`&tfr;`, `&rfr;`, `&vartheta;`, `&varphi;`)

tr := r = R(Y)

r = R(Y)

(12)

PDEtools:-declare(r = R(Y))

R(`&tfr;`, `&rfr;`, vartheta, varphi)*`will now be displayed as`*R

(13)

Transform the  coordinates in the metric (because of having used PDEtools:-declare, derivatives of the unknowns R are displayed indexed, for compact notation)

TransformCoordinates(tr, g_[mu, nu])

Matrix(%id = 18446744078873927542)

(14)

Proceed equating (14) to (5) to obtain a set of equations that entirely formulates the problem

"convert(rhs(?)=? ,setofequations)"

{0 = (diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), (-2*`&rfr;`+`&mfr;`)^2/(2*`&rfr;`+`&mfr;`)^2 = ((diff(R(Y), `&tfr;`))^2*R(Y)^2-4*(-(1/2)*R(Y)+m)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+`&mfr;`)^4/`&rfr;`^4 = (diff(R(Y), `&rfr;`))^2*R(Y)/(-R(Y)+2*m), -(1/16)*(2*`&rfr;`+`&mfr;`)^4/`&rfr;`^2 = -(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+`&mfr;`)^4*sin(vartheta)^2/`&rfr;`^2 = 2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)/(-R(Y)+2*m)}

(15)

This problem, shown in Karlhede's paper as the example of the approach he summarized, is solvable using the differential equation commands of PDEtools (in this case casesplit) in one go and no time, obtaining the same solution shown in the paper with equation number (7.10), the problem actually admits two solutions

PDEtools:-casesplit({0 = (diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), (-2*`&rfr;`+`&mfr;`)^2/(2*`&rfr;`+`&mfr;`)^2 = ((diff(R(Y), `&tfr;`))^2*R(Y)^2-4*(-(1/2)*R(Y)+m)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+`&mfr;`)^4/`&rfr;`^4 = (diff(R(Y), `&rfr;`))^2*R(Y)/(-R(Y)+2*m), -(1/16)*(2*`&rfr;`+`&mfr;`)^4/`&rfr;`^2 = -(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+`&mfr;`)^4*sin(vartheta)^2/`&rfr;`^2 = 2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)/(-R(Y)+2*m)}, [R, mt])

`casesplit/ans`([R(Y) = -(1/4)*(m-2*`&rfr;`)^2/`&rfr;`, `&mfr;` = -m], []), `casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;` = m], [])

(16)

By all means this does not mean this differential equation approach is better than the general approach mentioned in the paper (also in section 9.2 of the Exact Solutions book). This presentation above only makes the point of the paragraph mentioned at the beginning of this worksheet "... [in Maple 2016] you can also formulate and, depending on the the metrics also resolve, the equivalence problem; that is: to answer whether or not, given two metrics, they can be obtained from each other by a transformation of coordinates, as well as compute the transformation." 

 

In any case this problem above is rather easy for the computer. Consider a slightly more difficult problem, where `&mfr;` <> m. For example:

"subs(mt = 1/(mt^(2)),?)"

Physics:-g_[mu, nu] = Matrix(%id = 18446744078854733566)

(17)

Tackle now the same problem

"convert(rhs(?)=? ,setofequations)"

{0 = (diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), (-2*`&rfr;`+1/`&mfr;`^2)^2/(2*`&rfr;`+1/`&mfr;`^2)^2 = ((diff(R(Y), `&tfr;`))^2*R(Y)^2-4*(-(1/2)*R(Y)+m)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^4 = (diff(R(Y), `&rfr;`))^2*R(Y)/(-R(Y)+2*m), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^2 = -(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4*sin(vartheta)^2/`&rfr;`^2 = 2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)/(-R(Y)+2*m)}

(18)

The solutions to the equivalence between (17) and (5) are then given by

PDEtools:-casesplit({0 = (diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), (-2*`&rfr;`+1/`&mfr;`^2)^2/(2*`&rfr;`+1/`&mfr;`^2)^2 = ((diff(R(Y), `&tfr;`))^2*R(Y)^2-4*(-(1/2)*R(Y)+m)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^4 = (diff(R(Y), `&rfr;`))^2*R(Y)/(-R(Y)+2*m), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^2 = -(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4*sin(vartheta)^2/`&rfr;`^2 = 2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)/(-R(Y)+2*m)}, [R, mt])

`casesplit/ans`([R(Y) = -(1/4)*(m-2*`&rfr;`)^2/`&rfr;`, `&mfr;`^2 = -1/m], [`&mfr;` <> 0]), `casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m], [`&mfr;` <> 0])

(19)

Moreover, despite that the Weyl scalars suggest that a transformation of only one variable is sufficient to solve the problem, one could also consider a more general transformation, of more variables. Provided we exclude theta (because there is cos(theta) around and that would take us to solve differential equations for Theta(theta), that involve things like cos(Theta(theta))), and also to speed up matters let's remove the change in phi, consider an arbitrary change in r and t

TR := select(has, {phi = Phi(Y), r = R(Y), t = Tau(Y), theta = Theta(Y)}, {r, t})

{r = R(Y), t = Tau(Y)}

(20)

PDEtools:-declare({r = R(Y), t = Tau(Y)})

R(`&tfr;`, `&rfr;`, vartheta, varphi)*`will now be displayed as`*R

 

Tau(`&tfr;`, `&rfr;`, vartheta, varphi)*`will now be displayed as`*Tau

(21)

So our transformation now involve two arbitrary variables, each one depending on all the four coordinates, and a more complicated function `&mfr;`(m). Change variables (because of having used PDEtools:-declare, derivatives of the unknowns R and Tau are displayed indexed, for compact notation)

TransformCoordinates(TR, g_[mu, nu])

Matrix(%id = 18446744078309268046)

(22)

Construct the set of Partial Differential Equations to be tackled

"convert(rhs(?)=?,setofequations)"

{0 = (-4*(diff(Tau(Y), `&rfr;`))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))+(diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), vartheta))+(diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), vartheta))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))+(diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), vartheta))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), (-2*`&rfr;`+1/`&mfr;`^2)^2/(2*`&rfr;`+1/`&mfr;`^2)^2 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))^2+(diff(R(Y), `&tfr;`))^2*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^4 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))^2+(diff(R(Y), `&rfr;`))^2*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^2 = (diff(Tau(Y), vartheta))^2*(R(Y)-2*m)/R(Y)-(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4*sin(vartheta)^2/`&rfr;`^2 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), varphi))^2+2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)^2)/(R(Y)*(-R(Y)+2*m))}

(23)

Solve the problem running a differential elimination (actually without solving any differential equations): there are more than two solutions

sol := PDEtools:-casesplit({0 = (-4*(diff(Tau(Y), `&rfr;`))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))+(diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), vartheta))+(diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), vartheta))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))+(diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), vartheta))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), (-2*`&rfr;`+1/`&mfr;`^2)^2/(2*`&rfr;`+1/`&mfr;`^2)^2 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))^2+(diff(R(Y), `&tfr;`))^2*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^4 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))^2+(diff(R(Y), `&rfr;`))^2*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^2 = (diff(Tau(Y), vartheta))^2*(R(Y)-2*m)/R(Y)-(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4*sin(vartheta)^2/`&rfr;`^2 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), varphi))^2+2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)^2)/(R(Y)*(-R(Y)+2*m))}, [R, mt])

`casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m, diff(Tau(Y), `&tfr;`) = -1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0]), `casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m, diff(Tau(Y), `&tfr;`) = 1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0]), `casesplit/ans`([R(Y) = -(1/4)*(m-2*`&rfr;`)^2/`&rfr;`, `&mfr;`^2 = -1/m, diff(Tau(Y), `&tfr;`) = -1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0]), `casesplit/ans`([R(Y) = -(1/4)*(m-2*`&rfr;`)^2/`&rfr;`, `&mfr;`^2 = -1/m, diff(Tau(Y), `&tfr;`) = 1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0])

(24)

Consider for instance the first one

sol[1]

`casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m, diff(Tau(Y), `&tfr;`) = -1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0])

(25)

Compute the actual solution behind this case :

pdsolve(`casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m, diff(Tau(Y), `&tfr;`) = -1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0]), {R, Tau, mt})

{`&mfr;` = -1/m^(1/2), R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, Tau(Y) = -`&tfr;`+_C1}, {`&mfr;` = 1/m^(1/2), R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, Tau(Y) = -`&tfr;`+_C1}

(26)

The fact that the time t appears defined in terms of the transformed time Tau(Y) = -`&tfr;`+_C1 involving an arbitrary constant is expected: the time does not enter the metric, it only enters through derivatives of Tau(Y) entering the Jacobian of the transformation used to change variables in tensorial expressions (the metric) in (22).

 

Summary: the approach shown above, based on formulating the problem for the transformation functions of the equivalence and solving for them the differential equations using the commands in PDEtools, after restricting the generality of the transformation functions by looking at the form of the Weyl scalars, works well for other cases too, specially now that, in Maple 2016, the Weyl scalars can be expressed also in canonical form in one go (see previous Mapleprimes post on "Tetrads and Weyl scalars in canonical form").  Also important: in Maple 2016 it is present the functionality necessary to implement the approach of section 9.2 of the Exact solutions book as well.

  

 

 

Download Equivalence_-_Schwarzschild.mw

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

Tetrads and Weyl scalars in canonical form

 

The material below is about a new development that didn't arrive in time for the launch of Maple 2016 (March) and that complements in a relevant way the ones introduced in Physics in Maple 2016. It is at topic in general relativity, the computation of a canonical form of a tetrad, so that, generally speaking (skipping a technical description) the Weyl scalars are fixed as much as possible (either equal to 0 or to 1) regarding transformations that leave invariant the tetrad metric in a tetrad system of references. Bringing a tetrad in canonical form is a relevant step in the tackling of the equivalence problem between two spacetime metrics (Mapleprimes post), and it is relevant in connection with the digitizing in Maple 2016 of the database of solutions to Einstein's equations of the book Exact Solutions to Einstein Field Equations.

The reference for this development is the book "General Relativity, an Einstein century survey", edited by S.W. Hawking (Cambridge) and W. Israel (U. Alberta, Canada), specifically Chapter 7 written by S. Chandrasekhar, and more specifically exploring what is said in page 388 about the Petrov classification.


A canonical form for the tetrad and Weyl scalars admits alternate forms; the implementation is as implicit in page 388:

 

`&Psi;__0`

`&Psi;__1`

`&Psi;__2`

`&Psi;__3`

`&Psi;__4`

Residual invariance

Petrov type I

0

"<>0"

"<>0"

1

0

none

Petrov type II

0

0

"<>0"

1

0

none

Petrov type III

0

0

0

1

0

none

Petrov type D

0

0

"<>0"

0

0

`&Psi;__2`  remains invariant under rotations of Class III

Petrov type N

0

0

0

0

1

`&Psi;__4` remains invariant under rotations of Class II

 

The transformations (rotations of the tetrad system of references) used are of Class I, II and III as defined in Chandrasekar's chapter - equations (7.79) in page 384, (7.83) and (7.84) in page 385. Transformations of Class I can be performed with the command Physics:-Tetrads:-TransformTetrad using the optional argument nullrotationwithfixedl_, of Class II using nullrotationwithfixedn_ and of Class III by calling TransformTetrad(spatialrotationsm_mb_plan, boostsn_l_plane), so with the two optional arguments simultaneously.

 

In this development, a new optional argument, canonicalform got implemented to TransformTetrad so that the whole sequence of three transformations of Classes I, II and III is performed automatically, in one go. Regarding the canonical form of the tetrad, the main idea is that from the change in the Weyl scalars one can derive the parameters entering tetrad transformations that result in a canonical form of the tetrad. 

 

with(Physics); 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, PetrovType, SimplifyTetrad, TransformTetrad, e_, eta_, gamma_, l_, lambda_, m_, mb_, n_]

(1)

(Note the Tetrads:-PetrovType command, unfinished in the first release of Maple 2016.) To run the following computations you need to update your Physics library to the latest version from the Maplesoft R&D Physics webpage, so with this datestamp or newer:

Physics:-Version()

"/Users/ecterrab/Maple/lib/Physics2016.mla", `2016, April 20, 12:56 hours`

(2)

An Example of Petrov type I

There are six Petrov types: I, II, III, D, N and O. Start with a spacetime metric of Petrov type "I"  (the numbers always refer to the equation number in the "Exact solutions to Einstein's field equations" textbook)

g_[[12, 21, 1]]

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

 

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

 

`The McLenaghan, Tariq (1975), Tupper (1976) metric in coordinates `[t, x, y, phi]

 

`Parameters: `[a, k, kappa0]

 

"`Comments: `_k parametrizes the most general electromagnetic invariant with respect to the last 3 Killing vectors"

 

`Resetting the signature of spacetime from "+ - - -" to \`- + + +\` in order to match the signature in the database of metrics:`

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = -1, (1, 2) = 0, (1, 3) = 0, (1, 4) = 2*y, (2, 1) = 0, (2, 2) = a^2/x^2, (2, 3) = 0, (2, 4) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = a^2/x^2, (3, 4) = 0, (4, 1) = 2*y, (4, 2) = 0, (4, 3) = 0, (4, 4) = x^2-4*y^2}))

(3)

The Weyl scalars

Weyl[scalars]

psi__0 = (1/4)*((4*I)*x^3*abs(x)^3-abs(x)^6+abs(x)^4*x^2+abs(x)^2*x^4-x^6)/(a^2*abs(x)^4*x^2), psi__1 = 0, psi__2 = -(1/4)*(x^2+abs(x)^2)*(x^4+abs(x)^4)/(a^2*abs(x)^4*x^2), psi__3 = 0, psi__4 = (1/4)*((4*I)*x^3*abs(x)^3-abs(x)^6+abs(x)^4*x^2+abs(x)^2*x^4-x^6)/(a^2*abs(x)^4*x^2)

(4)

... there is abs around. Let's assume everything is positive to simplify formulas, use Capital Physics:-Assume  (the lower case assume  command redefines the assumed variables, so it is not compatible with Physics, DifferentialGeometry and VectorCalculus among others).

Assume(x > 0, y > 0, a > 0)

{a::(RealRange(Open(0), infinity))}, {x::(RealRange(Open(0), infinity))}, {y::(RealRange(Open(0), infinity))}

(5)

The scalars are now simpler, although still not in "canonical form" because `&Psi;__4` <> 0 and `&Psi;__3` <> 1.

Weyl[scalars]

psi__0 = I/a^2, psi__1 = 0, psi__2 = -1/a^2, psi__3 = 0, psi__4 = I/a^2

(6)

The Petrov type

PetrovType()

"I"

(7)

The  call to Tetrads:-TransformTetrad two lines below transforms the current tetrad ,

e_[]

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

(8)

into another tetrad such that the Weyl scalars are in canonical form, which for Petrov "I" type happens when `&Psi;__0` = 0, `&Psi;__4` = 0 and `&Psi;__3` = 1.

TransformTetrad(canonicalform)

Matrix(%id = 18446744078500192254)

(9)

Despite the fact that the result is a much more complicated tetrad, this is an amazing result in that the resulting Weyl scalars are all fixed (see below).  Let's first verify that this is indeed a tetrad, and that now the Weyl scalars are in canonical form

"IsTetrad(?)"

`Type of tetrad: null `

 

true

(10)

Set (9) to be the tetrad in use and recompute the Weyl scalars

"Setup(tetrad = ?):"

Inded we now have `&Psi;__0` = 0, `&Psi;__4` = 0 and `&Psi;__3` = 1 

simplify([Weyl[scalars]])

[psi__0 = 0, psi__1 = (-1/2-(3/2)*I)/a^4, psi__2 = (-1+I)/a^2, psi__3 = 1, psi__4 = 0]

(11)

So Weyl scalars computed after setting the canonical tetrad (9) to be the tetrad in use are in canonical form. Great! NOTE: computing the canonicalWeyl scalars is not really the difficult part, and within the code, these scalars (11) are computed before arriving at the tetrad (9). What is really difficult (from the point of view of computational complexity and simplifications) is to compute the actual canonical form of the tetrad (9).

 

An Example of Petrov type II

Consider this other solution to Einstein's equation (again, the numbers in g_[[24,37,7]] always refer to the equation number in the "Exact solutions to Einstein's field equations" textbook)

g_[[24, 37, 7]]

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

 

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

 

`The Stephani metric in coordinates `[u, v, x, y]

 

`Parameters: `[f(x), a, Psi1(u, x, y)]

 

"`Comments: `Case 6 from Table 24.1:_Psi1(u,x,y): diff(_Psi1(u,x,y),x,x)+diff(_Psi1(u,x,y),y,y)=0, diff(x*diff(_M(u,x,y),x),x)+x*diff(_M(u,x,y),y,y)=_kappa0*(diff(_Psi(u,x,y),x)^2+diff(_Psi(u,x,y),y)^2)"

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = -2*x*(f(x)+y*a), (1, 2) = -x, (1, 3) = 0, (1, 4) = 0, (2, 2) = 0, (2, 3) = 0, (2, 4) = 0, (3, 3) = 1/x^(1/2), (3, 4) = 0, (4, 4) = 1/x^(1/2)}, storage = triangular[upper], shape = [symmetric]))

(12)

Check the Petrov type

PetrovType()

"II"

(13)

The starting tetrad

e_[]

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

(14)

results in Weyl scalars not in canonical form:

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = (1/8)/x^(3/2), psi__3 = 0, psi__4 = -((3*I)*a-2*x*(diff(diff(f(x), x), x))-3*(diff(f(x), x)))/(x^(1/2)*(4*y*a+4*f(x)))

(15)

For Petrov type "II", the canonical form is as for type "I" but in addition `&Psi;__1` = 0. Again let's assume positive, not necessary, but to get simpler formulas around

Assume(f(x) > 0, x > 0, y > 0, a > 0)

{a::(RealRange(Open(0), infinity))}, {x::(RealRange(Open(0), infinity)), (-f(x))::(RealRange(-infinity, Open(0))), (f(x))::(RealRange(Open(0), infinity))}, {y::(RealRange(Open(0), infinity))}

(16)

Compute now a canonical form for the tetrad, to be used instead of (14)

TransformTetrad(canonicalform)

Matrix(%id = 18446744078835949430)

(17)

Set this tetrad and check the Weyl scalars again

"Setup(tetrad = ?):"

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = (1/8)/x^(3/2), psi__3 = 1, psi__4 = 0

(18)

This result (18) is fantastic. Compare these Weyl scalars with the ones (15) before transforming the tetrad.

 

An Example of Petrov type III

g_[[12, 35, 1]]

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

 

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

 

`The Kaigorodov (1962), Cahen (1964), Siklos (1981), Ozsvath (1987) metric in coordinates `[u, x, y, z]

 

`Parameters: `[Lambda]

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = 0, (1, 2) = exp(-2*z), (1, 3) = 0, (1, 4) = 0, (2, 2) = exp(4*z), (2, 3) = 2*exp(z), (2, 4) = 0, (3, 3) = 2*exp(-2*z), (3, 4) = 0, (4, 4) = 3/abs(Lambda)}, storage = triangular[upper], shape = [symmetric]))

(19)

Assume(z > 0, Lambda > 0)

{Lambda::(RealRange(Open(0), infinity))}, {z::(RealRange(Open(0), infinity))}

(20)

The Petrov type and the original tetrad

PetrovType()

"III"

(21)

e_[]

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

(22)

This tetrad results in the following scalars

Weyl[scalars]

psi__0 = -2*Lambda*2^(1/2)+(11/4)*Lambda, psi__1 = -(1/2)*Lambda*2^(1/2)+(3/4)*Lambda, psi__2 = (1/4)*Lambda, psi__3 = -(1/2)*Lambda*2^(1/2)-(3/4)*Lambda, psi__4 = 2*Lambda*2^(1/2)+(11/4)*Lambda

(23)

that are not in canonical form, which for Petrov type III is as in Petrov type II but in addition we should have `&Psi;__2` = 0.

Compute now a canonical form for the tetrad

TransformTetrad(canonicalform)

Matrix(%id = 18446744078500057566)

(24)

Set this one to be the tetrad in use and recompute the Weyl scalars

"Setup(tetrad = ?):"

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = 0, psi__3 = 1, psi__4 = 0

(25)

Great!``

An Example of Petrov type N

g_[[12, 6, 1]]

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

 

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

 

`The Defrise (1969) metric in coordinates `[u, v, y, z]

 

`Parameters: `[Lambda, kappa0]

 

"`Comments: `_Lambda < 0 required for a pure radiation solution"

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = 0, (1, 2) = -(3/2)/(y^2*Lambda), (1, 3) = 0, (1, 4) = 0, (2, 2) = -3/(y^4*Lambda), (2, 3) = 0, (2, 4) = 0, (3, 3) = 3/(y^2*Lambda), (3, 4) = 0, (4, 4) = 3/(y^2*Lambda)}, storage = triangular[upper], shape = [symmetric]))

(26)

Assume(y > 0, Lambda > 0)

{Lambda::(RealRange(Open(0), infinity))}, {y::(RealRange(Open(0), infinity))}

(27)

PetrovType()

"N"

(28)

The original tetrad and related Weyl scalars are not in canonical form:

e_[]

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

(29)

Weyl[scalars]

psi__0 = -(1/4)*Lambda, psi__1 = -((1/4)*I)*Lambda, psi__2 = (1/4)*Lambda, psi__3 = ((1/4)*I)*Lambda, psi__4 = -(1/4)*Lambda

(30)

For Petrov type "N", the canonical form has `&Psi;__4` <> 0 and all the other `&Psi;__n` = 0.

Compute a canonical form, set it to be the tetrad in use and recompute the Weyl scalars

TransformTetrad(canonicalform)

Matrix(%id = 18446744078518486190)

(31)

"Setup(tetrad = ?):"

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = 0, psi__3 = 0, psi__4 = 1

(32)

All as expected.

An Example of Petrov type D

 

g_[[12, 8, 4]]

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

 

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

 

`The  metric in coordinates `[t, x, y, z]

 

`Parameters: `[A, B]

 

"`Comments: `k = 0, kprime = 1, not an Einstein metric"

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = -B^2*sin(z)^2, (1, 2) = 0, (1, 3) = 0, (1, 4) = 0, (2, 2) = A^2, (2, 3) = 0, (2, 4) = 0, (3, 3) = A^2*x^2, (3, 4) = 0, (4, 4) = B^2}, storage = triangular[upper], shape = [symmetric]))

(33)

Assume(A > 0, B > 0, x > 0, 0 <= z and z <= (1/4)*Pi)

{A::(RealRange(Open(0), infinity))}, {B::(RealRange(Open(0), infinity))}, {x::(RealRange(Open(0), infinity))}, {z::(RealRange(0, (1/4)*Pi))}

(34)

PetrovType()

"D"

(35)

The default tetrad and related Weyl scalars are not in canonical form, which for Petrov type "D" is with `&Psi;__2` <> 0 and all the other `&Psi;__n` = 0

e_[]

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

(36)

Weyl[scalars]

psi__0 = (1/4)/B^2, psi__1 = 0, psi__2 = (1/12)/B^2, psi__3 = 0, psi__4 = (1/4)/B^2

(37)

Transform the  tetrad, set it and recompute the Weyl scalars

TransformTetrad(canonicalform)

Matrix(%id = 18446744078814996830)

(38)

"Setup(tetrad=?):"

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = -(1/6)/B^2, psi__3 = 0, psi__4 = 0

(39)

Again the expected canonical form of the Weyl scalars, and `&Psi;__2` <> 0 remains invariant under transformations of Class III.

 

An Example of Petrov type O

 

Finally an example of type "O". This corresponds to a conformally flat spacetime, for which the Weyl tensor (and with it all the Weyl scalars) vanishes. So the code just interrupts with "not implemented for conformally flat spactimes of Petrov type O"

g_[[8, 33, 1]]

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

 

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

 

`The  metric in coordinates `[t, x, y, z]

 

`Parameters: `[K]

 

"`Comments: `_K=3*_Lambda, _K>0 de Sitter, _K<0 anti-de Sitte"

 

g[mu, nu] = z

(40)

PetrovType()

"O"

(41)

The Weyl tensor and its scalars all vanish:

Weyl[nonzero]

Physics:-Weyl[mu, nu, alpha, beta] = {}

(42)

simplify(evala([Weyl[scalars]]))

[psi__0 = 0, psi__1 = 0, psi__2 = 0, psi__3 = 0, psi__4 = 0]

(43)

TransformTetrad(canonicalform)

Error, (in Tetrads:-CanonicalForm) canonical form is not implemented for flat or conformally flat spacetimes of Petrov type "O"

 

NULL

 

Download TetradsAndWeylScalarsInCanonicalForm.mw

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

In a recent post, the following inequality was proved with Maple:



(a,b,c,d >= 0).

Here is another direct proof attempt.

f:=(a+b+c+d)^2*(a*b+a*c+a*d+b*c+b*d+c*d)^2-144*(a^2+b^2+c^2+d^2)*a*b*c*d:
g:=expand(eval(f,d=1)):
s:=minimize(g, [a=0..infinity,b=0..infinity,c=0..infinity]):
length(s);   # huge
        304856
map(evalf@evalf[500],s);

map(evalf@evalf[1000],s);


So, Maple returns the expression

min(0,r1,r2,r3)


where r1,r2,r3 are huge expressions containing RootOfs. In order to evaluate them, several hundreds of digits are needed.
The solution seems to be correct, but the question is: may we (mathematically) accept it? What do you think?

 

I’m pleased to announce the release of Maple T.A. 2016, our online assessment system.

For this release, we put a lot of effort into streamlining the authoring experience. We worked closely with customers to find out how they authored content, the places where they found the interface awkward, the tasks that took longer than they should have, and what they’d like to see changed. Then we made it better.

Right away you’ll notice that questions and assignments are no longer in separate places in Maple T.A. All your content is stored in a convenient location that makes it simple to browse your content. Contextual navigation, filtering options, sorting tools, question details, drag and drop organization, combined import feature, and more make it easier than ever to find and organize your content. The Maple T.A. Cloud also sees improvements. Not only can questions be shared, but assignments and entire course modules can be as well.

For question creation, we consolidated all question authoring into the question designer, so you have a single starting point no matter what kind of question you want to create. We have also refined the text editor to help authors find the tools they need to modify their questions. This includes embedding external content, importing questions from the repository, text formatting options, and more.

Of course, once you have questions, you’ll want to put them into an assignment, and assignment creation is now easier than ever. A key change is that you can now create and modify questions while you are creating an assignment, without having to leave the assignment editor. There are also changes to how you preview questions, set properties, and even save your assignments, all of which contribute to making assignment creation simpler and faster.

Of course, there’s more than just a significantly improved author workflow. Here are some highlights:

  • Assignment groups for efficient organization, both in the content repository and on the class homepage.
  • Easy-to-create sorting questions – no coding required!
  • HTML questions, which can be authored directly in the question designer.
  • Clickable image questions are Java-free and easier to author.
  • Maximum word counts and other improvements to the essay question type.
  • A new scanned document feature lets instructors upload and even grade scanned documents.
  • Officially certified LTI integration for connectivity with a wide range of course management systems

See What’s New in Maple T.A. 2016 for more information on these and other new features.

Jonny Zivku
Maplesoft Product Manager, Online Education Products

 

How to prove the inequality 12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d) <= (a+b+c+d)*(a*b+a*c+a*d+b*c+b*d+c*d) , assuming that the  variables are nonnegative? That hard question  was asked by arqady in dxdy and answered  by himself  in a complicated way. Maple proves the inequality by the LagrangeMultipliers command which is strong. I think these calculations cannot be done by hand at all. Without loss of generality one may assume a+b+c+d = 1. Then

 restart:with(Student[MultivariateCalculus]):

ans := [LagrangeMultipliers((a+b+c+d)*(a*b+a*c+a*d+b*c+b*d+c*d)-12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d), [a+b+c+d-1], [a, b, c, d], output = detailed)]:

We have to remove complex solutions by
ans1:=remove(c -> has(evalf(c), I),ans):

The next big output is  only partly seen in the post (look in the attached file for the whole one).

ans2:=simplify(ans1,radical);

[[a = 1/6, b = 1/2, c = 1/6, d = 1/6, lambda[1] = 0, -12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d)+(b+c+d)*a^2+(b^2+(3*c+3*d)*b+c^2+3*c*d+d^2)*a+(d+c)*b^2+(c^2+3*c*d+d^2)*b+c^2*d+c*d^2 = 0],[a = 1/4, b = 1/4, c = 1/4, d = 1/4, lambda[1] = 0, -12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d)+(b+c+d)*a^2+(b^2+(3*c+3*d)*b+c^2+3*c*d+d^2)*a+(d+c)*b^2+(c^2+3*c*d+d^2)*b+c^2*d+c*d^2 = 0],[a = 13/72-(1/216)*sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(1/216)*sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), b = 11/24+(1/72)*sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-(1/72)*sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), c = 13/72-(1/216)*sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(1/216)*sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), d = 13/72-(1/216)*sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(1/216)*sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), lambda[1] = -(5/36)*(sqrt(2)*(sqrt(3)*(sqrt(13397)-(71/27)*(11548+108*sqrt(13397))^(1/3)-(103/540)*(11548+108*sqrt(13397))^(2/3)+2887/27)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-15*sqrt(13397)+(355/9)*(11548+108*sqrt(13397))^(1/3)+(109/36)*(11548+108*sqrt(13397))^(2/3)-14435/9)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-(133/15)*(11548+108*sqrt(13397))^(2/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(2*((sqrt(13397)+2374/45)*(11548+108*sqrt(13397))^(1/3)+(103/5)*sqrt(13397)+(449/90)*(11548+108*sqrt(13397))^(2/3)+132727/45))*sqrt(3))/((11548+108*sqrt(13397))^(2/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), -12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d)+(b+c+d)*a^2+(b^2+(3*c+3*d)*b+c^2+3*c*d+d^2)*a+(d+c)*b^2+(c^2+3*c*d+d^2)*b+c^2*d+c*d^2 = -(13/46656)*(((2/13)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+sqrt(2)*(sqrt(3)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-(11/13)*(11548+108*sqrt(13397))^(1/3)-(2/13)*(11548+108*sqrt(13397))^(2/3)+568/13))*sqrt(5)*sqrt((sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-33)*(sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+39)*(sqrt(2)*(sqrt(3)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(11/5)*(11548+108*sqrt(13397))^(1/3)+(2/5)*(11548+108*sqrt(13397))^(2/3)-568/5)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-(216/5)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-(328/5*((11548+108*sqrt(13397))^(1/3)+(5/164)*(11548+108*sqrt(13397))^(2/3)-355/41))*sqrt(3))/((11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))))-(180/13)*sqrt(2)*(sqrt(3)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(11/5)*(11548+108*sqrt(13397))^(1/3)+(2/5)*(11548+108*sqrt(13397))^(2/3)-568/5)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-(15552/13)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(11808/13*((11548+108*sqrt(13397))^(1/3)+(5/164)*(11548+108*sqrt(13397))^(2/3)-355/41))*sqrt(3))/((11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))]

(1)

evalf(ans2);

[[a = .1666666667, b = .5000000000, c = .1666666667, d = .1666666667, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .2500000000, b = .2500000000, c = .2500000000, d = .2500000000, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .1666666667, b = .1666666667, c = .5000000000, d = .1666666667, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .1666666667, b = .1666666667, c = .1666666667, d = .5000000000, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .5000000000, b = .1666666667, c = .1666666667, d = .1666666667, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .2118620934, b = .3644137199, c = .2118620934, d = .2118620934, lambda[1] = 0.2834790478e-2, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.9449303017e-3], [a = 0.3692850681e-1, b = .8892144797, c = 0.3692850681e-1, d = 0.3692850681e-1, lambda[1] = 0.9303874297e-1, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.3101291407e-1], [a = .8892144797, b = 0.3692850681e-1, c = 0.3692850681e-1, d = 0.3692850681e-1, lambda[1] = 0.9303874297e-1, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.3101291407e-1], [a = .3644137199, b = .2118620934, c = .2118620934, d = .2118620934, lambda[1] = 0.2834790478e-2, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.9449303017e-3], [a = 0.3692850681e-1, b = 0.3692850681e-1, c = 0.3692850681e-1, d = .8892144797, lambda[1] = 0.9303874297e-1, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.3101291407e-1], [a = .2118620934, b = .2118620934, c = .2118620934, d = .3644137199, lambda[1] = 0.2834790478e-2, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.9449303017e-3], [a = 0.3692850681e-1, b = 0.3692850681e-1, c = .8892144797, d = 0.3692850681e-1, lambda[1] = 0.9303874297e-1, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.3101291407e-1], [a = .2118620934, b = .2118620934, c = .3644137199, d = .2118620934, lambda[1] = 0.2834790478e-2, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.9449303017e-3]]

(2)

Indeed, the minimum value of the target function is exactly 0. Quod erat demonstrantum.

NULL

 inequality.mw

 

The mechanism of transport of the material of the sewing machine M 1022 class: mathematical animation.   BELORUS.mw 




 

How to prove the inequality x^(4*y)+y^(4*x) <= 2 provided x^2+y^2 = 2, 0 <= x, 0 <= y? That problem was posed  by Israeli mathematician nicked by himself as arqady in Russian math forum and was not answered there.I know how to prove that with Maple and don't know how to prove that without Maple. Neither LagrangeMultipliers nor extrema work here. The difficulty consists in the nonlinearity both the target function and the main constraint. The first step is to linearize the main constraint and the second step is to reduce the number of variables to one.

restart; A := eval(x^(4*y)+y^(4*x), [x = sqrt(u), y = sqrt(v)]);

(u^(1/2))^(4*v^(1/2))+(v^(1/2))^(4*u^(1/2))

(1)

 

B := expand(A);

u^(2*v^(1/2))+v^(2*u^(1/2))

(2)

C := eval(B, u = 2-v);

(2-v)^(2*v^(1/2))+v^(2*(2-v)^(1/2))

(3)

It is more or less clear that the plot of F is symmetric wrt  the straight line v=1. This motivates the following change of variable  to obtain an even function.

F := simplify(expand(eval(C, v = z+1)), symbolic, power);

(1-z)^(2*(z+1)^(1/2))+(z+1)^(2*(1-z)^(1/2))

(4)

NULL

The plots suggest the only maximim of F at z=0 and its concavity.

Student[Calculus1]:-FunctionPlot(F, z = -1 .. 1);

 

Student[Calculus1]:-FunctionPlot(diff(F, z, z), z = -1 .. 1);

 

As usually, numeric global solvers cannot prove certain inequalities. However, the GlobalSearch command of the DirectSearch package indicates the only local maximum of  F and F''.NULL

Digits := 25; DirectSearch:-GlobalSearch(F, {z = -1 .. 1}, maximize, solutions = 3, tolerances = 10^(-15)); DirectSearch:-GlobalSearch(diff(F, z, z), {z = -1 .. 1}, maximize, solutions = 3, tolerances = 10^(-15));

Array([[0.8e-23, [z = -0.1980181305884928531875965e-12], 36]])

(5)

The series command confirms a local maximum of F at z=0.

series(F, z, 6);

series(2-(2/3)*z^4+O(z^6),z,6)

(6)

The extrema command indicates only the value of F at a critical point, not outputting its position.

extrema(F, z); extrema(F, z, 's');

{2}

(7)

solve(F = 2);

RootOf((1-_Z)^(2*(_Z+1)^(1/2))+(_Z+1)^(2*(1-_Z)^(1/2))-2)

(8)

DirectSearch:-SolveEquations(F = 2, {z = -1 .. 1}, AllSolutions, solutions = 3);

Matrix(1, 4, {(1, 1) = 0., (1, 2) = Vector(1, {(1) = 0.}), (1, 3) = [z = -0.5463886313e-6], (1, 4) = 27})

(9)

DirectSearch:-SolveEquations(F = 2, {z = -1 .. 1}, AllSolutions, solutions = 3, assume = integer);

Matrix(1, 4, {(1, 1) = 0., (1, 2) = Vector(1, {(1) = 0.}), (1, 3) = [z = 0], (1, 4) = 30})

(10)

NULL

 PS. I see my proof needs an additional explanation. The DirectSearch command establishes the only both local and global  maximum of F is located at z= -1.98*10^(-13) up to default error 10^(-9). After that  the series command confirms a local maximum at z=0. Combining these, one draws the conclusion that the global maximum is placed exactly at z=0 and equals 2. In order to confirm that the only real root of F=2 at z=0  is found approximately and exactly by the DirectSearch.

Download maxi.mw

Maple is a scientific software based on Computational Algebraic System (SAC) which has enabled this work entirely solve applied to Civil Engineering, Mechanical and Mecatrónica.The present problems in education, research and engineering are developed with static work sheets ie coding used innecesaria.Maple proposed models are shown below with an innovative structure; with the method of graphics algorithms and embedded components; putting aside the traditional and obsolete syntax; using dynamic worksheets as viable and optimal solutions to interpret and explain problems Ingineering.Design Advanced Analysis Tools (Applied Mathematics) Sophisticated Applications (efficient algorithms) and Multiple deployment options (different styles); this allowed generate math apps (applications engineering); can be interactive on the internet without the need to have the software installed on our computer; This way our projects can be used with a vision of sustainability around the world. Resulting in the generation of data and curves; which in turn will help you make better decisions analytical and predictive modeling in manufacturing and 3D objects; which would lead to new patterns of contrasting solutions.

ECI_2016.pdf

ECI_2016v_full.mw

Lenin Araujo Castillo

Ambassador of Maple - Perú

 

 

 

The method of solving underdetermined systems of equations, and universal method for calculating link mechanisms. It is based on the Draghilev’s method for solving systems of nonlinear equations. 
When calculating link mechanisms we can use geometrical relationships to produce their mathematical models without specifying the “input link”. The new method allows us to specify the “input link”, any link of mechanism.

Example.
Three-bar mechanism.  The system of equations linkages in this mechanism is as follows:

f1 := x1^2+(x2+1)^2+(x3-.5)^2-R^2;
f2 := x1-.5*x2+.5*x3;
f3 := (x1-x4)^2+(x2-x5)^2+(x3-x6)^2-19;
f4 := sin(x4)-x5;
f5 := sin(2*x4)-x6;

Coordinates green point x'i', i = 1..3, the coordinates of red point x'i', i = 4..6.
Set of x0'i', i = 1..6 searched arbitrarily, is the solution of the system of equations and is the initial point for the solution of the ODE system. The solution of ODE system is the solution of system of equations linkages for concrete assembly linkage.
Two texts of the program for one mechanism. In one case, the “input link” is the red-green, other case the “input link” is the green-blue.
After the calculation trajectories of points, we can always find the values of other variables, for example, the angles.
Animation displays the kinematics of the mechanism.
MECAN_3_GR_P_bar.mw 
MECAN_3_Red_P_bar.mw

(if to use another color instead of color = "Niagara Dark Orchid", the version of Maple <17)

Method_Mechan_PDF.pdf






The method of solving underdetermined systems of equations, and universal method for calculating link mechanisms. It is based on the Draghilev’s method for solving systems of nonlinear equations. 
When calculating link mechanisms we can use geometrical relationships to produce their mathematical models without specifying the “input link”. The new method allows us to specify the “input link”, any link of mechanism.

Example.
Three-bar mechanism.  The system of equations linkages in this mechanism is as follows:

f1 := x1^2+(x2+1)^2+(x3-.5)^2-R^2;
f2 := x1-.5*x2+.5*x3;
f3 := (x1-x4)^2+(x2-x5)^2+(x3-x6)^2-19;
f4 := sin(x4)-x5;
f5 := sin(2*x4)-x6;

Coordinates green point x'i', i = 1..3, the coordinates of red point x'i', i = 4..6.
Set of x0'i', i = 1..6 searched arbitrarily, is the solution of the system of equations and is the initial point for the solution of the ODE system. The solution of ODE system is the solution of system of equations linkages for concrete assembly linkage.
Two texts of the program for one mechanism. In one case, the “input link” is the red-green, other case the “input link” is the green-blue.
After the calculation trajectories of points, we can always find the values of other variables, for example, the angles.
Animation displays the kinematics of the mechanism.
MECAN_3_GR_P_bar.mw 
MECAN_3_Red_P_bar.mw

(if to use another color instead of color = "Niagara Dark Orchid", the version of Maple <17)

Method_Mechan_PDF.pdf






The method of solving underdetermined systems of equations, and universal method for calculating link mechanisms. It is based on the Draghilev’s method for solving systems of nonlinear equations. 
When calculating link mechanisms we can use geometrical relationships to produce their mathematical models without specifying the “input link”. The new method allows us to specify the “input link”, any link of mechanism.

Example.
Three-bar mechanism.  The system of equations linkages in this mechanism is as follows:

f1 := x1^2+(x2+1)^2+(x3-.5)^2-R^2;
f2 := x1-.5*x2+.5*x3;
f3 := (x1-x4)^2+(x2-x5)^2+(x3-x6)^2-19;
f4 := sin(x4)-x5;
f5 := sin(2*x4)-x6;

Coordinates green point x'i', i = 1..3, the coordinates of red point x'i', i = 4..6.
Set of x0'i', i = 1..6 searched arbitrarily, is the solution of the system of equations and is the initial point for the solution of the ODE system. The solution of ODE system is the solution of system of equations linkages for concrete assembly linkage.
Two texts of the program for one mechanism. In one case, the “input link” is the red-green, other case the “input link” is the green-blue.
After the calculation trajectories of points, we can always find the values of other variables, for example, the angles.
Animation displays the kinematics of the mechanism.
MECAN_3_GR_P_bar.mw 
MECAN_3_Red_P_bar.mw

(if to use another color instead of color = "Niagara Dark Orchid", the version of Maple <17)

Method_Mechan_PDF.pdf






In this course you will learn automatically using Maple course Statics applied to civil engineering especially noting the use of components properly. Let us see the use of Maple to Engineering.

Static_for_Engineering.mw

(in spanish)

Atte.

Lenin Araujo Castillo

Ambassador of Maple

IntegerPoints2  procedure generalizes  IntegerPoints1  procedure and finds all the integer points inside a bounded curved region of arbitrary dimension.  We also use a brute force method, but to find the ranges for each variable  Optimization[Minimize]  and   Optimization[Maximize]  is used instead of  simplex[minimize]  or  simplex[minimize] .

Required parameters of the procedure: SN is a set or a list of  inequalities and/or equations with any number of variables, the Var is the list of variables. Bound   is an optional parameter - list of ranges for each variable in the event, if  Optimization[Minimize/Maximize]  fails. By default  Bound  is NULL.

If all constraints are linear, then in this case it is recommended to use  IntegerPoints1  procedure, as it is better to monitor specific cases (no solutions or an infinite number of solutions for an unbounded region).

Code of the procedure:

IntegerPoints2 := proc (SN::{list, set}, Var::(list(symbol)), Bound::(list(range)) := NULL)

local SN1, sn, n, i, p, q, xl, xr, Xl, Xr, X, T, k, t, S;

uses Optimization, combinat;

n := nops(Var);

if Bound = NULL then

SN1 := SN;

for sn in SN1 do

if type(sn, `<`) then

SN1 := subs(sn = (`<=`(op(sn))), SN1) fi od;

for i to n do

p := Minimize(Var[i], SN1); q := Maximize(Var[i], SN1);

xl[i] := eval(Var[i], p[2]); xr[i] := eval(Var[i], q[2]) od else

assign(seq(xl[i] = lhs(Bound[i]), i = 1 .. n));

assign(seq(xr[i] = rhs(Bound[i]), i = 1 .. n)) fi;

Xl := map(floor, convert(xl, list)); Xr := map(ceil, convert(xr, list));

X := [seq([$ Xl[i] .. Xr[i]], i = 1 .. n)];

T := cartprod(X); S := table();

for k while not T[finished] do

t := T[nextvalue]();

if convert(eval(SN, zip(`=`, Var, t)), `and`) then

S[k] := t fi od;

convert(S, set);

end proc:

 

In the first example, we find all the integer points in the four-dimensional ball of radius 10:

Ball := IntegerPoints2({x1^2+x2^2+x3^2+x4^2 < 10^2}, [x1, x2, x3, x4]):  # All the integer points

nops(Ball);  # The total number of the integer points

seq(Ball[1000*n], n = 1 .. 10);  # Some points

                                                                    48945

                  [-8, 2, 0, -1], [-7, 0, 1, -3], [-6, -4, -6, 2], [-6, 1, 1, 1], [-5, -6, -2, 4], [-5, -1, 2, 0],

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

 

 

In the second example, with the visualization we find all the integer points in the inside intersection of  a cone and a cylinder:

A := <1, 0, 0; 0, (1/2)*sqrt(3), -1/2; 0, 1/2, (1/2)*sqrt(3)>:  # Matrix of rotation around x-axis at Pi/6 radians

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

S0 := {4*x^2+4*y^2 < z^2}:  # The inner of the cone

S1 := {x^2+z^2 < 4}:  # The inner of the cylinder

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

S := IntegerPoints2(`union`(S0, S2), [x, y, z]);  # The integer points inside of the intersection of the cone and the rotated cylinder

Points := plots[pointplot3d](S, color = red, symbol = solidsphere, symbolsize = 8):

Sp := plot3d([r*cos(phi), r*sin(phi), 2*r], phi = 0 .. 2*Pi, r = 0 .. 5, style = surface, color = "LightBlue", transparency = 0.7):

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

S11 := plot3d([2*cos(t), y, 2*sin(t)], t = 0 .. 2*Pi, y = -4 .. 7, style = surface, color = "LightBlue", transparency = 0.7):

plots[display]([F(S11), Sp, Points], scaling = constrained, orientation = [25, 75], axes = normal);

      

 

 

In the third example, we are looking for the integer points in a non-convex area between two parabolas. Here we have to specify ourselves the ranges to enumeration (Optimization[Minimize] command fails for this example):

P := IntegerPoints2([y > (-x^2)*(1/2)+2, y < -x^2+8], [x, y], [-4 .. 4, -4 .. 8]);

A := plots[pointplot](P, color = red, symbol = solidcircle, symbolsize = 10):

B := plot([(-x^2)*(1/2)+2, -x^2+8], x = -4 .. 4, -5 .. 9, color = blue):

plots[display](A, B, scaling = constrained);

     

 

 IntegerPoints2.mw

 

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

We all know the problem. During the course of a degree, students become experts at solving problems when they are given the sets of equations that they need to solve. As anyone will tell you, the skill they often lack is the ability to produce these sets of equations in the first place. With Maple T.A. it is a fairly trivial task to ask a student to enter the solution to a system of equations and have the system check if they have entered it correctly. I speak with many lecturers who tell me they want to be able to challenge their students, to think further about the concepts. They want them to be able to test if they can provide the governing equations and boundary conditions to a specific problem.

With Maple T.A. we now have access to a math engine that enables us to test whether a student is able to form this system of equations for themselves as well as solve it.

In this post we are going to explore how we can use Maple T.A. to set up this type of question. The example I have chosen is 2D Couette flow. For those of you unfamiliar with this, have a look at this wikipedia page explaining the important details.

In most cases I prefer to use the question designer to create questions. This gives a uniform interface for question design and the most flexibility over layout of the question text presented to the student.

  1. On the Questions tab, click New question link and then choose the question designer.
  2. For the question title enter "System of equations for Couette Flow".
  3. For the question text enter the text

    The image below shows laminar flow of a viscous incompressible liquid between two parallel plates.



    What is the system of equations that specifies this system. You can enter them as a comma separated list.

    e.g. diff(u(y),y,y)+diff(u(y),y)=0,u(-1)=U,u(h)=0

    You then want to insert a Maple graded answer box but we'll do that in a minute after we have discussed the algorithm.

    When using the questions designer, you often find answers are longer than width of the answer box. One work around is to change the width of all input boxes in a question using a style tag. Click the source button on the editor and enter the following at the start of the question

    <style id="previewTextHidden" type="text/css">
    input[type="text"] {width:300px !important}
    </style>


    Pressing source again will show the result of this change. The input box should now be significantly wider. You may find it useful to know the default width is 186px.
  4. Next, we need to add the algorithm for this question. The teacher's answer for this question is the system of equations for the flow in the picture.

    $TA="diff(u(y),y,y) = 0, u(0) = 0, u(h) = U";
    $sol=maple("dsolve({$TA})");


    I always set this to $TA for consitency across my questions. To check there is a solution to this I use a maple call to the dsolve function in Maple, this returns the solution to the provided system of equations. Pressing refresh on next to the algorithm performs these operations and checks the teacher's answer.

    The key part of this question is the grading code in the Maple graded answer box. Let's go ahead and add the answer box to the question text. I add it at the end of the text we added in step 3. Click Insert Response area and choose the Maple-graded answer box in the left hand menu. For the answer enter the $TA variable that we defined in the algorithm. For the grading code enter

    a:=dsolve({$RESPONSE}):
    evalb({$sol}={a}) 


    This code checks that the students system of equations produces the same solution as the teachers. Asking the question in this way allows a more open ended response for the student.

    To finish off make sure the expression type is Maple syntax and Text entry only is selected.
  5. Press OK and then Finish on the Question designer screen.

That is the question completed. To preview a working copy of the question, have a look here at the live preview of this question. Enter the system of equations and click How did I do?

  

I have included a downloadable version of the question that contains the .xml file and image for this question. Click this link to download the file. The question can also be found on the Maple T.A. cloud under "System of equations for Couette Flow".

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

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

 

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

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

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

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

Here is an example of a quadratic

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

So 0 is not a root but -1 is.

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

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

VLE Question

Fig 1: Multiple choice question from a standard VLE

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

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

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

Maple T.A. Question

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

  

Maple T.A. Answer

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

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

Click here for a live demo of this question.

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

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

First 28 29 30 31 32 33 34 Last Page 30 of 59