Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Computing Einstein's equations using variational principles

Edgardo S. Cheb-Terrab

Freddy Baudine

 

One of the biggest challenges for a computer algebra system is to compute Einstein's equations from first principles, by equating to zero the functional derivative of the Action for gravity, without using human-shortcuts or tricks. Developments during 2024, appearing as new in Maple 2025, broke through that barrier and now the LagrangeEquations  Physics command, introduced in 2023, can perform that elusive computation of Einstein's equations, not using tabulated cases, properly handling several (traditional or not) alternative ways of presenting the Lagrangian (the integrand in the Action), taking advantage of the functional differentiation  capabilities of the Physics  package .

 

The computation can be performed in one call to Physics:-LagrangeEquations, or in steps interactively using the Physics:-Fundiff  and Physics:-Simplify  commands that include newly implemented capabilities for simplifying tensorial expressions in curved spacetimes. This is an exciting breakthrough/milestone in Computer Algebra, also in an area out of reach of neural network AIs.

 

Einstein's equations are a system of second order nonlinear coupled partial differential equations for the 10 components of the spacetime metric g[mu, nu]

with(Physics); Setup(coordinates = cartesian, metric = arbitrary)

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

 

_______________________________________________________

 

`Setting `*lowercaselatin_is*` letters to represent `*space*` indices`

 

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

 

`Signature: `(`- - - +`)

 

_______________________________________________________

 

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

 

_______________________________________________________; "_noterminate"

(1)

In the Lagrangian formulation, the coordinates of the problem are the 10 components of the metric,

CompactDisplay(g_[])

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

(2)

and the parameters of the variational problem are the spacetime coordinates X^alpha.

 

The traditional Lagrangian

 

The simplest case is that of Einstein's equation in vacuum, for which the Lagrangian density is expressed in terms of the trace of the Ricci  tensor and the determinant of the metric by

L := sqrt(-%g_[determinant])*Ricci[alpha, `~alpha`]

(-%g_[determinant])^(1/2)*Physics:-Ricci[alpha, `~alpha`]

(3)

What was almost a dream in previous years, Einstein's equations can now be computed in one simple instruction as the Lagrange equations for this Lagrangian, in the traditional compact form, taking the components of the metric tensor as the coordinates (for an interactive, step by step computation, see further below)

LagrangeEquations(L, g_[mu, nu])

-(1/2)*Physics:-g_[mu, nu]*Physics:-Ricci[alpha, `~alpha`]+Physics:-Ricci[mu, nu] = 0

(4)

The tensorial equation computed is also the definition of the Einstein  tensor

Einstein[definition]

Physics:-Einstein[mu, nu] = -(1/2)*Physics:-g_[mu, nu]*Physics:-Ricci[alpha, `~alpha`]+Physics:-Ricci[mu, nu]

(5)

A Lagrangian depending only on first derivatives of the metric

 

The Lagrangian L used to compute Einstein's equations (4)  contains first and second derivatives of the metric; the latter make the computation significantly more complicated. The second order derivatives, however, can be removed from the formulation. To see that, rewrite L in terms of Christoffel  symbols

L__C := convert(L, Christoffel)

(-%g_[determinant])^(1/2)*Physics:-g_[`~alpha`, `~lambda`]*(Physics:-d_[nu](Physics:-Christoffel[`~nu`, alpha, lambda], [X])-Physics:-d_[lambda](Physics:-Christoffel[`~nu`, alpha, nu], [X])+Physics:-Christoffel[`~beta`, alpha, lambda]*Physics:-Christoffel[`~nu`, beta, nu]-Physics:-Christoffel[`~beta`, alpha, nu]*Physics:-Christoffel[`~nu`, beta, lambda])

(6)

Recalling the definition

Christoffel[definition]

Physics:-Christoffel[alpha, mu, nu] = (1/2)*Physics:-d_[nu](Physics:-g_[alpha, mu], [X])+(1/2)*Physics:-d_[mu](Physics:-g_[alpha, nu], [X])-(1/2)*Physics:-d_[alpha](Physics:-g_[mu, nu], [X])

(7)

in L[C] the two terms containing derivatives of Christoffel symbols contain second order derivatives of g[mu, nu].

 

Now, it is always possible to add a total spacetime derivative to L[C] without changing Einstein's equations (assuming the variation of the metric in the corresponding boundary integrals vanishes), and in that way, in this particular case of L[C], obtain a Lagrangian involving only 1st order derivatives. The total derivative, expressed using the inert `∂` command to see it before the differentiation operation is performed, is

TD := %d_[alpha](g_[`~mu`, `~nu`]*sqrt(-%g_[determinant])*(g_[`~alpha`, mu]*Christoffel[`~beta`, nu, beta]-Christoffel[`~alpha`, mu, nu]))

%d_[alpha](Physics:-g_[`~mu`, `~nu`]*(-%g_[determinant])^(1/2)*(Physics:-g_[mu, `~alpha`]*Physics:-Christoffel[`~beta`, beta, nu]-Physics:-Christoffel[`~alpha`, mu, nu]))

(8)

Adding this term to L[C], performing the `∂` differentiation operation and simplifying we get

L__1 := L__C+TD

(-%g_[determinant])^(1/2)*Physics:-g_[`~alpha`, `~lambda`]*(Physics:-d_[nu](Physics:-Christoffel[`~nu`, alpha, lambda], [X])-Physics:-d_[lambda](Physics:-Christoffel[`~nu`, alpha, nu], [X])+Physics:-Christoffel[`~beta`, alpha, lambda]*Physics:-Christoffel[`~nu`, beta, nu]-Physics:-Christoffel[`~beta`, alpha, nu]*Physics:-Christoffel[`~nu`, beta, lambda])+%d_[alpha](Physics:-g_[`~mu`, `~nu`]*(-%g_[determinant])^(1/2)*(Physics:-g_[mu, `~alpha`]*Physics:-Christoffel[`~beta`, beta, nu]-Physics:-Christoffel[`~alpha`, mu, nu]))

(9)

L__1 := eval(L__1, %d_ = d_)

(-%g_[determinant])^(1/2)*Physics:-g_[`~alpha`, `~lambda`]*(Physics:-d_[nu](Physics:-Christoffel[`~nu`, alpha, lambda], [X])-Physics:-d_[lambda](Physics:-Christoffel[`~nu`, alpha, nu], [X])+Physics:-Christoffel[`~beta`, alpha, lambda]*Physics:-Christoffel[`~nu`, beta, nu]-Physics:-Christoffel[`~beta`, alpha, nu]*Physics:-Christoffel[`~nu`, beta, lambda])+Physics:-d_[alpha](Physics:-g_[`~mu`, `~nu`], [X])*(-%g_[determinant])^(1/2)*(Physics:-g_[mu, `~alpha`]*Physics:-Christoffel[`~beta`, beta, nu]-Physics:-Christoffel[`~alpha`, mu, nu])-(1/2)*Physics:-g_[`~mu`, `~nu`]*(Physics:-g_[mu, `~alpha`]*Physics:-Christoffel[`~beta`, beta, nu]-Physics:-Christoffel[`~alpha`, mu, nu])*%g_[determinant]*Physics:-g_[`~kappa`, `~lambda`]*Physics:-d_[alpha](Physics:-g_[kappa, lambda], [X])/(-%g_[determinant])^(1/2)+Physics:-g_[`~mu`, `~nu`]*(-%g_[determinant])^(1/2)*(Physics:-g_[mu, `~alpha`]*Physics:-d_[alpha](Physics:-Christoffel[`~beta`, beta, nu], [X])-Physics:-d_[alpha](Physics:-Christoffel[`~alpha`, mu, nu], [X]))

(10)

L__1 := Simplify(L__1)

(Physics:-Christoffel[alpha, beta, kappa]*Physics:-Christoffel[`~beta`, `~alpha`, `~kappa`]-Physics:-Christoffel[alpha, beta, `~alpha`]*Physics:-Christoffel[`~beta`, kappa, `~kappa`])*(-%g_[determinant])^(1/2)

(11)

which is a Lagrangian depending only on 1st order derivatives of the metric through Christoffel  symbols. As expected, the equations of motion resulting from this Lagrangian are the same Einstein equations computed in (4); this computation can also now be performed in a single call

LagrangeEquations(L__1, g_[mu, nu])

-(1/2)*Physics:-Ricci[iota, `~iota`]*Physics:-g_[mu, nu]+Physics:-Ricci[mu, nu] = 0

(12)

Simplification capabilities developed to cover these computations

 

To illustrate the new Maple 2025 tensorial simplification capabilities note that `≡`(L[1], (Physics[Christoffel][alpha, beta, kappa]*Physics[Christoffel][`~beta`, `~alpha`, `~kappa`]-Physics[Christoffel][alpha, beta, `~alpha`]*Physics[Christoffel][`~beta`, kappa, `~kappa`])*(-%g_[determinant])^(1/2)) is no just L[C] ≡ (6) after discarding its two terms involving derivatives of Christoffel symbols. To verify this, split L[C] into the terms containing or not derivatives of Christoffel

L__22, L__11 := selectremove(has, expand(L__C), d_)

(-%g_[determinant])^(1/2)*Physics:-d_[nu](Physics:-Christoffel[`~nu`, alpha, lambda], [X])*Physics:-g_[`~alpha`, `~lambda`]-(-%g_[determinant])^(1/2)*Physics:-d_[lambda](Physics:-Christoffel[`~nu`, alpha, nu], [X])*Physics:-g_[`~alpha`, `~lambda`], (-%g_[determinant])^(1/2)*Physics:-Christoffel[`~beta`, alpha, lambda]*Physics:-Christoffel[`~nu`, beta, nu]*Physics:-g_[`~alpha`, `~lambda`]-(-%g_[determinant])^(1/2)*Physics:-Christoffel[`~beta`, alpha, nu]*Physics:-Christoffel[`~nu`, beta, lambda]*Physics:-g_[`~alpha`, `~lambda`]

(13)

Comparing, the total derivative TD≡ (8) is not just -L[22], but

TD = -L__22-2*L__11

%d_[alpha](Physics:-g_[`~mu`, `~nu`]*(-%g_[determinant])^(1/2)*(Physics:-g_[mu, `~alpha`]*Physics:-Christoffel[`~beta`, beta, nu]-Physics:-Christoffel[`~alpha`, mu, nu])) = -(-%g_[determinant])^(1/2)*Physics:-d_[nu](Physics:-Christoffel[`~nu`, alpha, lambda], [X])*Physics:-g_[`~alpha`, `~lambda`]+(-%g_[determinant])^(1/2)*Physics:-d_[lambda](Physics:-Christoffel[`~nu`, alpha, nu], [X])*Physics:-g_[`~alpha`, `~lambda`]-2*(-%g_[determinant])^(1/2)*Physics:-Christoffel[`~beta`, alpha, lambda]*Physics:-Christoffel[`~nu`, beta, nu]*Physics:-g_[`~alpha`, `~lambda`]+2*(-%g_[determinant])^(1/2)*Physics:-Christoffel[`~beta`, alpha, nu]*Physics:-Christoffel[`~nu`, beta, lambda]*Physics:-g_[`~alpha`, `~lambda`]

(14)

Things like these, TD = -L__22-2*L__11, can now be verified directly with the new tensorial simplification capabilities: take the left-hand side minus the right-hand side, evaluate the inert derivative `∂` and simplify to see the equality is true

(lhs-rhs)(%d_[alpha](Physics[g_][`~mu`, `~nu`]*(-%g_[determinant])^(1/2)*(Physics[g_][mu, `~alpha`]*Physics[Christoffel][`~beta`, beta, nu]-Physics[Christoffel][`~alpha`, mu, nu])) = -(-%g_[determinant])^(1/2)*Physics[d_][nu](Physics[Christoffel][`~nu`, alpha, lambda], [X])*Physics[g_][`~alpha`, `~lambda`]+(-%g_[determinant])^(1/2)*Physics[d_][lambda](Physics[Christoffel][`~nu`, alpha, nu], [X])*Physics[g_][`~alpha`, `~lambda`]-2*(-%g_[determinant])^(1/2)*Physics[Christoffel][`~beta`, alpha, lambda]*Physics[Christoffel][`~nu`, beta, nu]*Physics[g_][`~alpha`, `~lambda`]+2*(-%g_[determinant])^(1/2)*Physics[Christoffel][`~beta`, alpha, nu]*Physics[Christoffel][`~nu`, beta, lambda]*Physics[g_][`~alpha`, `~lambda`])

%d_[alpha](Physics:-g_[`~mu`, `~nu`]*(-%g_[determinant])^(1/2)*(Physics:-g_[mu, `~alpha`]*Physics:-Christoffel[`~beta`, beta, nu]-Physics:-Christoffel[`~alpha`, mu, nu]))+(-%g_[determinant])^(1/2)*Physics:-d_[nu](Physics:-Christoffel[`~nu`, alpha, lambda], [X])*Physics:-g_[`~alpha`, `~lambda`]-(-%g_[determinant])^(1/2)*Physics:-d_[lambda](Physics:-Christoffel[`~nu`, alpha, nu], [X])*Physics:-g_[`~alpha`, `~lambda`]+2*(-%g_[determinant])^(1/2)*Physics:-Christoffel[`~beta`, alpha, lambda]*Physics:-Christoffel[`~nu`, beta, nu]*Physics:-g_[`~alpha`, `~lambda`]-2*(-%g_[determinant])^(1/2)*Physics:-Christoffel[`~beta`, alpha, nu]*Physics:-Christoffel[`~nu`, beta, lambda]*Physics:-g_[`~alpha`, `~lambda`]

(15)

eval(%d_[alpha](Physics[g_][`~mu`, `~nu`]*(-%g_[determinant])^(1/2)*(Physics[g_][mu, `~alpha`]*Physics[Christoffel][`~beta`, beta, nu]-Physics[Christoffel][`~alpha`, mu, nu]))+(-%g_[determinant])^(1/2)*Physics[d_][nu](Physics[Christoffel][`~nu`, alpha, lambda], [X])*Physics[g_][`~alpha`, `~lambda`]-(-%g_[determinant])^(1/2)*Physics[d_][lambda](Physics[Christoffel][`~nu`, alpha, nu], [X])*Physics[g_][`~alpha`, `~lambda`]+2*(-%g_[determinant])^(1/2)*Physics[Christoffel][`~beta`, alpha, lambda]*Physics[Christoffel][`~nu`, beta, nu]*Physics[g_][`~alpha`, `~lambda`]-2*(-%g_[determinant])^(1/2)*Physics[Christoffel][`~beta`, alpha, nu]*Physics[Christoffel][`~nu`, beta, lambda]*Physics[g_][`~alpha`, `~lambda`], %d_ = d_)

(-%g_[determinant])^(1/2)*(Physics:-g_[mu, `~alpha`]*Physics:-Christoffel[`~beta`, beta, nu]-Physics:-Christoffel[`~alpha`, mu, nu])*Physics:-d_[alpha](Physics:-g_[`~mu`, `~nu`], [X])-(1/2)*(Physics:-g_[mu, `~alpha`]*Physics:-Christoffel[`~beta`, beta, nu]-Physics:-Christoffel[`~alpha`, mu, nu])*Physics:-g_[`~mu`, `~nu`]*%g_[determinant]*Physics:-g_[`~kappa`, `~lambda`]*Physics:-d_[alpha](Physics:-g_[kappa, lambda], [X])/(-%g_[determinant])^(1/2)+(-%g_[determinant])^(1/2)*(Physics:-g_[mu, `~alpha`]*Physics:-d_[alpha](Physics:-Christoffel[`~beta`, beta, nu], [X])-Physics:-d_[alpha](Physics:-Christoffel[`~alpha`, mu, nu], [X]))*Physics:-g_[`~mu`, `~nu`]+(-%g_[determinant])^(1/2)*Physics:-d_[nu](Physics:-Christoffel[`~nu`, alpha, lambda], [X])*Physics:-g_[`~alpha`, `~lambda`]-(-%g_[determinant])^(1/2)*Physics:-d_[lambda](Physics:-Christoffel[`~nu`, alpha, nu], [X])*Physics:-g_[`~alpha`, `~lambda`]+2*(-%g_[determinant])^(1/2)*Physics:-Christoffel[`~beta`, alpha, lambda]*Physics:-Christoffel[`~nu`, beta, nu]*Physics:-g_[`~alpha`, `~lambda`]-2*(-%g_[determinant])^(1/2)*Physics:-Christoffel[`~beta`, alpha, nu]*Physics:-Christoffel[`~nu`, beta, lambda]*Physics:-g_[`~alpha`, `~lambda`]

(16)

Simplify((-%g_[determinant])^(1/2)*(Physics[g_][mu, `~alpha`]*Physics[Christoffel][`~beta`, beta, nu]-Physics[Christoffel][`~alpha`, mu, nu])*Physics[d_][alpha](Physics[g_][`~mu`, `~nu`], [X])-(1/2)*(Physics[g_][mu, `~alpha`]*Physics[Christoffel][`~beta`, beta, nu]-Physics[Christoffel][`~alpha`, mu, nu])*Physics[g_][`~mu`, `~nu`]*%g_[determinant]*Physics[g_][`~kappa`, `~lambda`]*Physics[d_][alpha](Physics[g_][kappa, lambda], [X])/(-%g_[determinant])^(1/2)+(-%g_[determinant])^(1/2)*(Physics[g_][mu, `~alpha`]*Physics[d_][alpha](Physics[Christoffel][`~beta`, beta, nu], [X])-Physics[d_][alpha](Physics[Christoffel][`~alpha`, mu, nu], [X]))*Physics[g_][`~mu`, `~nu`]+(-%g_[determinant])^(1/2)*Physics[d_][nu](Physics[Christoffel][`~nu`, alpha, lambda], [X])*Physics[g_][`~alpha`, `~lambda`]-(-%g_[determinant])^(1/2)*Physics[d_][lambda](Physics[Christoffel][`~nu`, alpha, nu], [X])*Physics[g_][`~alpha`, `~lambda`]+2*(-%g_[determinant])^(1/2)*Physics[Christoffel][`~beta`, alpha, lambda]*Physics[Christoffel][`~nu`, beta, nu]*Physics[g_][`~alpha`, `~lambda`]-2*(-%g_[determinant])^(1/2)*Physics[Christoffel][`~beta`, alpha, nu]*Physics[Christoffel][`~nu`, beta, lambda]*Physics[g_][`~alpha`, `~lambda`])

0

(17)

That said, it is also true that TD = -L[22]-2*L[11] results in the Lagrangian L[1] = -L[11], and since the equations of movement don't depend on the sign of the Lagrangian, for this Lagrangian `≡`(L[C], (-%g_[determinant])^(1/2)*Physics[g_][`~alpha`, `~lambda`]*(Physics[d_][nu](Physics[Christoffel][`~nu`, alpha, lambda], [X])-Physics[d_][lambda](Physics[Christoffel][`~nu`, alpha, nu], [X])+Physics[Christoffel][`~beta`, alpha, lambda]*Physics[Christoffel][`~nu`, beta, nu]-Physics[Christoffel][`~beta`, alpha, nu]*Physics[Christoffel][`~nu`, beta, lambda])) adding the term TD happens to be equivalent to just discarding the terms of L__C involving derivatives of Christoffel symbols.

 

Derivation step by step using functional differentiation (variational principle)

 

Also new in Maple 2025, due to the extension of Fundiff  to compute in curved spacetimes, it is now possible to compute Einstein's equations from first principles by constructing the action,

S := Intc(L, X)

Int(Int(Int(Int((-%g_[determinant])^(1/2)*Physics:-Ricci[alpha, `~alpha`], x = -infinity .. infinity), y = -infinity .. infinity), z = -infinity .. infinity), t = -infinity .. infinity)

(18)

and equating to zero the functional derivative with respect to the metric. To avoid displaying the resulting large expression, end the input line with ":"

EE__unsimplified := Fundiff(S, g_[alpha, beta]) = 0

Simplifying this result, we get an expression in terms of Christoffel  symbols and its derivatives

EEC := Simplify(EE__unsimplified)

(1/4)*(2*Physics:-Christoffel[chi, iota, kappa]*Physics:-Christoffel[`~iota`, `~chi`, `~kappa`]-2*Physics:-Christoffel[chi, iota, `~chi`]*Physics:-Christoffel[`~iota`, kappa, `~kappa`]-2*Physics:-D_[iota](Physics:-Christoffel[chi, `~chi`, `~iota`], [X])+2*Physics:-D_[chi](Physics:-Christoffel[`~chi`, iota, `~iota`], [X]))*Physics:-g_[`~alpha`, `~beta`]+(1/4)*(Physics:-Christoffel[`~alpha`, chi, `~beta`]+Physics:-Christoffel[`~beta`, chi, `~alpha`])*Physics:-Christoffel[`~chi`, iota, `~iota`]-(1/4)*Physics:-Christoffel[`~beta`, chi, iota]*Physics:-Christoffel[`~chi`, `~alpha`, `~iota`]-(1/2)*Physics:-Christoffel[chi, iota, `~alpha`]*Physics:-Christoffel[`~iota`, `~beta`, `~chi`]+(1/2)*Physics:-Christoffel[chi, `~alpha`, `~beta`]*Physics:-Christoffel[iota, `~chi`, `~iota`]-(1/4)*Physics:-Christoffel[`~alpha`, chi, iota]*Physics:-Christoffel[`~chi`, `~beta`, `~iota`]+(1/4)*Physics:-D_[chi](Physics:-Christoffel[`~alpha`, `~beta`, `~chi`], [X])+(1/4)*Physics:-D_[chi](Physics:-Christoffel[`~beta`, `~alpha`, `~chi`], [X])-(1/2)*Physics:-D_[chi](Physics:-Christoffel[`~chi`, `~alpha`, `~beta`], [X])-(1/4)*Physics:-D_[`~alpha`](Physics:-Christoffel[`~beta`, chi, `~chi`], [X])+(1/2)*Physics:-D_[`~beta`](Physics:-Christoffel[chi, `~alpha`, `~chi`], [X])-(1/4)*Physics:-D_[`~beta`](Physics:-Christoffel[`~alpha`, chi, `~chi`], [X]) = 0

(19)

In this result, we see`▿` derivatives of Christoffel  symbols, expressed using the D_  command for covariant differentiation. Although, such objects have not the geometrical meaning of a covariant derivative, computationally, they here represent what would be a covariant derivative if the Christoffel symbols were a tensor. For example,

"`▿`[chi](GAMMA[]^(alpha,beta,chi)) :"

% = expand(%)

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

(20)

With this computational meaning for the`▿` derivatives of Christoffel symbols appearing in (19), rewrite EEC(19) in terms of the Ricci  and Riemann  tensors. For that, consider the definition

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]

(21)

Rewrite the noncovariant derivatives `∂` in terms of`▿` derivatives using the computational representation (20), simplify and isolate one of them

convert(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], D_)

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

(22)

Simplify(Physics[Ricci][mu, nu] = D_[alpha](Physics[Christoffel][`~alpha`, mu, nu], [X])-Physics[Christoffel][`~alpha`, alpha, kappa]*Physics[Christoffel][`~kappa`, mu, nu]+Physics[Christoffel][`~kappa`, alpha, mu]*Physics[Christoffel][`~alpha`, kappa, nu]+Physics[Christoffel][`~kappa`, alpha, nu]*Physics[Christoffel][`~alpha`, mu, kappa]-D_[nu](Physics[Christoffel][`~alpha`, alpha, mu], [X])-Physics[Christoffel][`~lambda`, mu, nu]*Physics[Christoffel][`~alpha`, alpha, lambda]+Physics[Christoffel][`~beta`, mu, nu]*Physics[Christoffel][`~alpha`, alpha, beta]-Physics[Christoffel][`~beta`, alpha, mu]*Physics[Christoffel][`~alpha`, beta, nu])

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

(23)

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

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

(24)

Analogously, derive an expression to rewrite`▿` derivatives of Christoffel symbols using the Riemann  tensor

Riemann[`~alpha`, beta, mu, nu, definition]

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

(25)

convert(Physics[Riemann][`~alpha`, beta, mu, nu] = Physics[d_][mu](Physics[Christoffel][`~alpha`, beta, nu], [X])-Physics[d_][nu](Physics[Christoffel][`~alpha`, beta, mu], [X])+Physics[Christoffel][`~alpha`, upsilon, mu]*Physics[Christoffel][`~upsilon`, beta, nu]-Physics[Christoffel][`~alpha`, upsilon, nu]*Physics[Christoffel][`~upsilon`, beta, mu], D_)

Physics:-Riemann[`~alpha`, beta, mu, nu] = Physics:-D_[mu](Physics:-Christoffel[`~alpha`, beta, nu], [X])+Physics:-Christoffel[`~kappa`, mu, nu]*Physics:-Christoffel[`~alpha`, beta, kappa]-Physics:-Christoffel[`~alpha`, kappa, mu]*Physics:-Christoffel[`~kappa`, beta, nu]+Physics:-Christoffel[`~kappa`, beta, mu]*Physics:-Christoffel[`~alpha`, kappa, nu]-Physics:-D_[nu](Physics:-Christoffel[`~alpha`, beta, mu], [X])-Physics:-Christoffel[`~lambda`, mu, nu]*Physics:-Christoffel[`~alpha`, beta, lambda]-Physics:-Christoffel[`~lambda`, beta, nu]*Physics:-Christoffel[`~alpha`, lambda, mu]+Physics:-Christoffel[`~alpha`, lambda, nu]*Physics:-Christoffel[`~lambda`, beta, mu]+Physics:-Christoffel[`~alpha`, mu, upsilon]*Physics:-Christoffel[`~upsilon`, beta, nu]-Physics:-Christoffel[`~alpha`, nu, upsilon]*Physics:-Christoffel[`~upsilon`, beta, mu]

(26)

Simplify(Physics[Riemann][`~alpha`, beta, mu, nu] = D_[mu](Physics[Christoffel][`~alpha`, beta, nu], [X])+Physics[Christoffel][`~kappa`, mu, nu]*Physics[Christoffel][`~alpha`, beta, kappa]-Physics[Christoffel][`~alpha`, kappa, mu]*Physics[Christoffel][`~kappa`, beta, nu]+Physics[Christoffel][`~kappa`, beta, mu]*Physics[Christoffel][`~alpha`, kappa, nu]-D_[nu](Physics[Christoffel][`~alpha`, beta, mu], [X])-Physics[Christoffel][`~lambda`, mu, nu]*Physics[Christoffel][`~alpha`, beta, lambda]-Physics[Christoffel][`~lambda`, beta, nu]*Physics[Christoffel][`~alpha`, lambda, mu]+Physics[Christoffel][`~alpha`, lambda, nu]*Physics[Christoffel][`~lambda`, beta, mu]+Physics[Christoffel][`~alpha`, mu, upsilon]*Physics[Christoffel][`~upsilon`, beta, nu]-Physics[Christoffel][`~alpha`, nu, upsilon]*Physics[Christoffel][`~upsilon`, beta, mu])

Physics:-Riemann[`~alpha`, beta, mu, nu] = -Physics:-Christoffel[`~alpha`, kappa, mu]*Physics:-Christoffel[`~kappa`, beta, nu]+Physics:-Christoffel[`~kappa`, beta, mu]*Physics:-Christoffel[`~alpha`, kappa, nu]+Physics:-D_[mu](Physics:-Christoffel[`~alpha`, beta, nu], [X])-Physics:-D_[nu](Physics:-Christoffel[`~alpha`, beta, mu], [X])

(27)

C_to_Riemann := isolate(Physics[Riemann][`~alpha`, beta, mu, nu] = -Physics[Christoffel][`~alpha`, kappa, mu]*Physics[Christoffel][`~kappa`, beta, nu]+Physics[Christoffel][`~kappa`, beta, mu]*Physics[Christoffel][`~alpha`, kappa, nu]+D_[mu](Physics[Christoffel][`~alpha`, beta, nu], [X])-D_[nu](Physics[Christoffel][`~alpha`, beta, mu], [X]), D_[mu](Christoffel[`~alpha`, beta, nu]))

Physics:-D_[mu](Physics:-Christoffel[`~alpha`, beta, nu], [X]) = Physics:-Christoffel[`~alpha`, kappa, mu]*Physics:-Christoffel[`~kappa`, beta, nu]-Physics:-Christoffel[`~kappa`, beta, mu]*Physics:-Christoffel[`~alpha`, kappa, nu]+Physics:-Riemann[`~alpha`, beta, mu, nu]+Physics:-D_[nu](Physics:-Christoffel[`~alpha`, beta, mu], [X])

(28)

Substitute  these two equations, in sequence, into Einstein's equations EEC≡(19)

Substitute(C_to_Riemann, C_to_Ricci, EEC)

(1/4)*(2*Physics:-Christoffel[chi, iota, kappa]*Physics:-Christoffel[`~iota`, `~chi`, `~kappa`]-2*Physics:-Christoffel[chi, iota, `~chi`]*Physics:-Christoffel[`~iota`, kappa, `~kappa`]-2*Physics:-Christoffel[alpha4, alpha5, alpha6]*Physics:-Christoffel[`~alpha6`, `~alpha4`, `~alpha5`]+2*Physics:-Christoffel[alpha4, alpha6, `~alpha5`]*Physics:-Christoffel[`~alpha6`, alpha5, `~alpha4`]-2*Physics:-D_[`~alpha5`](Physics:-Christoffel[alpha4, alpha5, `~alpha4`], [X])+2*Physics:-Christoffel[`~alpha1`, alpha1, alpha3]*Physics:-Christoffel[`~alpha3`, alpha2, `~alpha2`]-2*Physics:-Christoffel[`~alpha1`, alpha3, `~alpha2`]*Physics:-Christoffel[`~alpha3`, alpha1, alpha2]+2*Physics:-Ricci[alpha2, `~alpha2`]+2*Physics:-D_[`~alpha2`](Physics:-Christoffel[`~alpha1`, alpha1, alpha2], [X]))*Physics:-g_[`~alpha`, `~beta`]-Physics:-Ricci[`~alpha`, `~beta`]+(1/2)*Physics:-Christoffel[alpha10, `~alpha`, `~beta`]*Physics:-Christoffel[alpha9, `~alpha10`, `~alpha9`]-(1/2)*Physics:-Christoffel[alpha9, alpha10, `~alpha`]*Physics:-Christoffel[`~alpha10`, `~alpha9`, `~beta`]-(1/4)*Physics:-Christoffel[`~alpha`, chi, iota]*Physics:-Christoffel[`~chi`, `~beta`, `~iota`]-(1/4)*Physics:-Christoffel[`~beta`, chi, iota]*Physics:-Christoffel[`~chi`, `~alpha`, `~iota`]+(1/2)*Physics:-Christoffel[chi, `~alpha`, `~beta`]*Physics:-Christoffel[iota, `~chi`, `~iota`]+(1/4)*(Physics:-Christoffel[`~alpha`, chi, `~beta`]+Physics:-Christoffel[`~beta`, chi, `~alpha`])*Physics:-Christoffel[`~chi`, iota, `~iota`]-(1/2)*Physics:-Christoffel[chi, iota, `~alpha`]*Physics:-Christoffel[`~iota`, `~beta`, `~chi`]-(1/4)*Physics:-Christoffel[`~alpha`, rho, `~beta`]*Physics:-Christoffel[`~rho`, rho1, `~rho1`]+(1/4)*Physics:-Christoffel[`~alpha`, rho, `~rho1`]*Physics:-Christoffel[`~rho`, rho1, `~beta`]-(1/2)*Physics:-Christoffel[omicron, zeta, `~omicron`]*Physics:-Christoffel[`~zeta`, `~alpha`, `~beta`]+(1/2)*Physics:-Christoffel[omicron, zeta, `~beta`]*Physics:-Christoffel[`~zeta`, `~alpha`, `~omicron`]-(1/4)*Physics:-Christoffel[`~beta`, psi, `~alpha`]*Physics:-Christoffel[`~psi`, omega, `~omega`]+(1/4)*Physics:-Christoffel[`~beta`, psi, `~omega`]*Physics:-Christoffel[`~psi`, omega, `~alpha`]+(1/2)*Physics:-Christoffel[`~tau`, upsilon, `~alpha`]*Physics:-Christoffel[`~upsilon`, tau, `~beta`]-(1/2)*Physics:-Christoffel[`~tau`, `~alpha`, `~beta`]*Physics:-Christoffel[`~upsilon`, tau, upsilon]+(1/4)*Physics:-Christoffel[`~beta`, nu, sigma]*Physics:-Christoffel[`~sigma`, `~alpha`, `~nu`]-(1/4)*Physics:-Christoffel[`~beta`, sigma, `~nu`]*Physics:-Christoffel[`~sigma`, nu, `~alpha`]-(1/4)*Physics:-Christoffel[`~alpha`, lambda, `~mu`]*Physics:-Christoffel[`~lambda`, mu, `~beta`]+(1/4)*Physics:-Christoffel[`~alpha`, lambda, mu]*Physics:-Christoffel[`~lambda`, `~beta`, `~mu`]-(1/2)*Physics:-D_[`~beta`](Physics:-Christoffel[`~upsilon`, upsilon, `~alpha`], [X])+(1/4)*Physics:-D_[`~nu`](Physics:-Christoffel[`~beta`, nu, `~alpha`], [X])+(1/4)*Physics:-D_[`~mu`](Physics:-Christoffel[`~alpha`, mu, `~beta`], [X])-(1/4)*Physics:-D_[`~omega`](Physics:-Christoffel[`~beta`, omega, `~alpha`], [X])+(1/2)*Physics:-D_[`~beta`](Physics:-Christoffel[alpha9, `~alpha`, `~alpha9`], [X])-(1/4)*Physics:-D_[`~rho1`](Physics:-Christoffel[`~alpha`, rho1, `~beta`], [X]) = 0

(29)

Simplify  to arrive at the traditional compact form of Einstein's equations

Simplify(-(1/2)*D_[`~beta`](Physics[Christoffel][`~upsilon`, upsilon, `~alpha`], [X])+(1/4)*D_[`~nu`](Physics[Christoffel][`~beta`, nu, `~alpha`], [X])+(1/4)*D_[`~mu`](Physics[Christoffel][`~alpha`, mu, `~beta`], [X])-(1/4)*D_[`~omega`](Physics[Christoffel][`~beta`, omega, `~alpha`], [X])+(1/2)*D_[`~beta`](Physics[Christoffel][alpha9, `~alpha`, `~alpha9`], [X])-(1/4)*D_[`~rho1`](Physics[Christoffel][`~alpha`, rho1, `~beta`], [X])-Physics[Ricci][`~alpha`, `~beta`]-(1/2)*Physics[Christoffel][alpha9, alpha10, `~alpha`]*Physics[Christoffel][`~alpha10`, `~alpha9`, `~beta`]-(1/4)*Physics[Christoffel][`~alpha`, chi, iota]*Physics[Christoffel][`~chi`, `~beta`, `~iota`]-(1/4)*Physics[Christoffel][`~beta`, chi, iota]*Physics[Christoffel][`~chi`, `~alpha`, `~iota`]+(1/2)*Physics[Christoffel][chi, `~alpha`, `~beta`]*Physics[Christoffel][iota, `~chi`, `~iota`]+(1/4)*(Physics[Christoffel][`~alpha`, chi, `~beta`]+Physics[Christoffel][`~beta`, chi, `~alpha`])*Physics[Christoffel][`~chi`, iota, `~iota`]-(1/2)*Physics[Christoffel][chi, iota, `~alpha`]*Physics[Christoffel][`~iota`, `~beta`, `~chi`]-(1/4)*Physics[Christoffel][`~alpha`, rho, `~beta`]*Physics[Christoffel][`~rho`, rho1, `~rho1`]+(1/4)*Physics[Christoffel][`~alpha`, rho, `~rho1`]*Physics[Christoffel][`~rho`, rho1, `~beta`]-(1/2)*Physics[Christoffel][omicron, zeta, `~omicron`]*Physics[Christoffel][`~zeta`, `~alpha`, `~beta`]+(1/2)*Physics[Christoffel][omicron, zeta, `~beta`]*Physics[Christoffel][`~zeta`, `~alpha`, `~omicron`]-(1/4)*Physics[Christoffel][`~beta`, psi, `~alpha`]*Physics[Christoffel][`~psi`, omega, `~omega`]+(1/4)*Physics[Christoffel][`~beta`, psi, `~omega`]*Physics[Christoffel][`~psi`, omega, `~alpha`]+(1/2)*Physics[Christoffel][`~tau`, upsilon, `~alpha`]*Physics[Christoffel][`~upsilon`, tau, `~beta`]-(1/2)*Physics[Christoffel][`~tau`, `~alpha`, `~beta`]*Physics[Christoffel][`~upsilon`, tau, upsilon]+(1/4)*Physics[Christoffel][`~beta`, nu, sigma]*Physics[Christoffel][`~sigma`, `~alpha`, `~nu`]-(1/4)*Physics[Christoffel][`~beta`, sigma, `~nu`]*Physics[Christoffel][`~sigma`, nu, `~alpha`]-(1/4)*Physics[Christoffel][`~alpha`, lambda, `~mu`]*Physics[Christoffel][`~lambda`, mu, `~beta`]+(1/4)*Physics[Christoffel][`~alpha`, lambda, mu]*Physics[Christoffel][`~lambda`, `~beta`, `~mu`]+(1/4)*(2*Physics[Christoffel][chi, iota, kappa]*Physics[Christoffel][`~iota`, `~chi`, `~kappa`]-2*Physics[Christoffel][chi, iota, `~chi`]*Physics[Christoffel][`~iota`, kappa, `~kappa`]-2*Physics[Christoffel][alpha4, alpha5, alpha6]*Physics[Christoffel][`~alpha6`, `~alpha4`, `~alpha5`]+2*Physics[Christoffel][alpha4, alpha6, `~alpha5`]*Physics[Christoffel][`~alpha6`, alpha5, `~alpha4`]-2*D_[`~alpha5`](Physics[Christoffel][alpha4, alpha5, `~alpha4`], [X])+2*Physics[Christoffel][`~alpha1`, alpha1, alpha3]*Physics[Christoffel][`~alpha3`, alpha2, `~alpha2`]-2*Physics[Christoffel][`~alpha1`, alpha3, `~alpha2`]*Physics[Christoffel][`~alpha3`, alpha1, alpha2]+2*Physics[Ricci][alpha2, `~alpha2`]+2*D_[`~alpha2`](Physics[Christoffel][`~alpha1`, alpha1, alpha2], [X]))*Physics[g_][`~alpha`, `~beta`]+(1/2)*Physics[Christoffel][alpha10, `~alpha`, `~beta`]*Physics[Christoffel][alpha9, `~alpha10`, `~alpha9`] = 0)

(1/2)*Physics:-Ricci[chi, `~chi`]*Physics:-g_[`~alpha`, `~beta`]-Physics:-Ricci[`~alpha`, `~beta`] = 0

(30)

NULL


 

Download Einstein_Equations_From_First_Principles.mw

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

in a lot of my function i have a interval which is make my function singular and i don't know how remove this singularity even when i am change a lot of parameter with explore which explore option for plot is a little bit heavy for more than  7 or 8 parameter for running , and i know the shape of the graph is 2-soliton and 1-breather(zig-zag) but i have to see the shape and make my plot have a best shape  there is any idea for fixing this issue?

singular-interval.mw

My screen changed resolution and now the maximize and minimize controls are cut of. (Also the task bar is gone.) Are there any Windows short cuts to maximize or minimize? Alt-F4, which closes the window, works.

I tried the following procedure in a worksheet; Maple did not like it and claimed there was an error. However, I cannot even copy this to a Maple prompt; it jumps to another type of region. Any ideas? If I retype the command there is no problem with an error.

It reminds me of Maple 2 and the letter t which sometimes had to be retyped to get Maple to respond-a very strange bug which was eliminated years ago.

Again, and again ... after all upgrades of Maple there is always delay of available Physics package compatible with latest version of Maple... :(

I am trying a trial version of Maple 2025 on Linux, since not able to use Maple 2025 on windows (uninstalled it).

Everything was working well, (no UI shuffling at all so far) except now I find I am not able to export plot to PostScript. 

Same code works fine using cmaple.exe on windows. But using cmaple on Linux, it fails.

How does one export a plot using Maple 2025 on linux to PostScript, and it must be using cmaple, since I run everything from command line.

I also made sure I have /home/me/maple2025 and /home/me/maple2025/bin.X86_64_LINUX
 in my Linux $PATH. 

Here is a MW

# A.mpl file

    p:=plot(sin(x),x=-3..3):
    plotsetup(ps, plotoutput="p.ps");
    try
        print(p); 
    catch:        
        plotsetup(default):   
        print(lastexception);
    end try;     

   exit();

I run the above using the command

>/home/me/maple2025/bin.X86_64_LINUX/cmaple A.mpl 

License expires in 14 days
    |\^/|     Maple 2025 (X86 64 LINUX)
._|\|   |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2025
 \  MAPLE  /  All rights reserved. Maple is a trademark of
 <____ ____>  Waterloo Maple Inc.
      |       Type ? for help.
>     p:=plot(sin(x),x=-3..3):
>     plotsetup(ps, plotoutput="p.ps");
>     try
>         print(p); 
>     catch:        
>         plotsetup(default):   
>         print(lastexception);
>     end try;     
cannot locate postscript AFM files
                                                                     0, "Error in device driver: plot terminated"


>     exit();
                                                                                        exit()

> quit
memory used=7.5MB, alloc=41.3MB, time=0.06
>

The problem seems to be due to cannot locate postscript AFM files which I've seen this before and was never been able to get any help on it. I asked about this missing AFM files here many years ago, but can't find the question now searching and no one from Maplesoft seems to know why this happens.

Same exact code works fine on windows under DOS using cmaple.exe.

Any one knows any workaround? I looked at export command but it does not support PostScript.

Without being able to export plots from command line, I can't use Maple 2025 on Linux. So I hope there is a work around. Are these AFM files supposed to come with Maple? Maybe I need to set some path to help Maple find them?

When I google this, it says

So maybe Maple does not ship with AFM files like it does with windows and mac? Where do I get these from and where do I put them on Linux? Why Maplesoft does not mention anything about this in installation instructions for Linux?

Could someone with Maple 2025 on Linux try the above and see if it works for them?

Update

so far, jpeg export works only

>/home/me/maple2025/bin.X86_64_LINUX/cmaple A.mpl
License expires in 14 days
    |\^/|     Maple 2025 (X86 64 LINUX)
._|\|   |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2025
 \  MAPLE  /  All rights reserved. Maple is a trademark of
 <____ ____>  Waterloo Maple Inc.
      |       Type ? for help.
#    p:=plot(sin(x),x=-3..3):
>     plotsetup(jpeg, plotoutput="p.jpeg");
>     try
>         plot(sin(x),x=-3..3);
>     catch:        
>         plotsetup(default):   
>         print(lastexception);
>     end try;     

>     exit();
                                                                                                         exit()

> quit

But can't use jpeg. need ps.

I also copied Maple afm/ to /usr/share/fonts and refreshed font config using fc-cache -fv , and Maple still does not find the AFM font files.  So I have no idea how to make Maple find its own afm/ folder.

 

Update

Version information. I use Linux inside Virtual box. I use Arch based distrubution called endeavouros

cat /etc/os-release
NAME="EndeavourOS"
PRETTY_NAME="EndeavourOS"
ID="endeavouros"
ID_LIKE="arch"


hostnamectl
 Static hostname: me-virtualbox
       Icon name: computer-vm
  Virtualization: oracle
Operating System: EndeavourOS                     
          Kernel: Linux 6.13.8-arch1-1
    Architecture: x86-64
 Hardware Vendor: innotek GmbH
  Hardware Model: VirtualBox
Firmware Version: VirtualBox
   Firmware Date: Fri 2006-12-01
    Firmware Age: 18y 3month 3w 5d   

 

Hey guys, 

 

I try to solve big systems of polynomial equations and inequalities. Therefore I use the command SemiAlgebraic. In the moment I take those result and want to go on calculating with them. Sadly it turns out, that solve has some problems with RootOf expressions. It doesnt find a solution (althoug the graph shows that there is one) and gives the warning solution may have been lost. So now I though I might just aks SemiAlgebraic to give me solutions without RootOf expressions. For example you can write {x = RootOf(_Z^2 - y)+1, 1 < y, y < 2} as {x=t+1, y=t^2,1<t<2^0.5 . This might be easier to work with for solve. 

So my question is: Is there any way I can tell SemiAlgebraic precisely in what form the solution should be? 
Since the websites are down Im not able to do a first own research on this problem. So thank you in advance. 

Regards

Felix

in some equation i don't have problem but in a lot of them this problem is come up for me and i don't know how fix this issue?

restart

with(PDEtools)

undeclare(prime, quiet); declare(u(x, y, t), quiet); declare(f(x, y, t), quiet)

``

(1)

thetai := t*w[i]+y*l[i]+x

eqw := w[i] = (-1+sqrt(-4*b*beta*l[i]-4*a*beta+1))/(2*beta)

Bij := proc (i, j) options operator, arrow; -24*alpha*beta/(sqrt(1+(-4*b*l[j]-4*a)*beta)*sqrt(1+(-4*b*l[i]-4*a)*beta)-1+((2*l[i]+2*l[j])*b+4*a)*beta) end proc

NULL

theta1 := normal(eval(eval(thetai, eqw), i = 1)); theta2 := normal(eval(eval(thetai, eqw), i = 2))

eqf := f(x, y, t) = theta1*theta2+Bij(1, 2)

eqfcomplex := eval(eval(eval(eqf, l[2] = conjugate(l[1])), l[1] = lambda[1]+I*lambda[2]))

eq17 := u(x, y, t) = 2*(diff(f(x, y, t), x))/f(x, y, t); equ := simplify(eval(eq17, eqfcomplex))

u(x, y, t) = 8*(-(1/2)*(-4*b*beta*conjugate(lambda[1]+I*lambda[2])-4*a*beta+1)^(1/2)*(1+((-(4*I)*lambda[2]-4*lambda[1])*b-4*a)*beta)^(1/2)-b*beta*conjugate(lambda[1]+I*lambda[2])+1/2-(b*(lambda[1]+I*lambda[2])+2*a)*beta)*((1/2)*t*(1+((-(4*I)*lambda[2]-4*lambda[1])*b-4*a)*beta)^(1/2)+(1/2)*t*(-4*b*beta*conjugate(lambda[1]+I*lambda[2])-4*a*beta+1)^(1/2)+conjugate(lambda[1]+I*lambda[2])*y*beta+((lambda[1]+I*lambda[2])*y+2*x)*beta-t)/((1+((-(4*I)*lambda[2]-4*lambda[1])*b-4*a)*beta)^(1/2)*(-(-4*b*beta*conjugate(lambda[1]+I*lambda[2])-4*a*beta+1)^(1/2)*((2*y*((lambda[1]+I*lambda[2])*y+x)*beta+t*(b*t-y))*conjugate(lambda[1]+I*lambda[2])+2*x*((lambda[1]+I*lambda[2])*y+x)*beta+((b*(lambda[1]+I*lambda[2])+2*a)*t-(lambda[1]+I*lambda[2])*y-2*x)*t)+4*(I*lambda[2]-conjugate(lambda[1]+I*lambda[2])+lambda[1])*((1/2)*conjugate(lambda[1]+I*lambda[2])*b*y*beta+(a*y-(1/2)*b*x)*beta+(1/4)*b*t-(1/4)*y)*t)-4*t*(-4*b*beta*conjugate(lambda[1]+I*lambda[2])-4*a*beta+1)^(1/2)*(conjugate(lambda[1]+I*lambda[2])*(beta*(-y*((1/2)*b*(lambda[1]+I*lambda[2])+a)+(1/2)*b*x)-(1/4)*b*t+(1/4)*y)+(((I*lambda[1]*lambda[2]+(1/2)*lambda[1]^2-(1/2)*lambda[2]^2)*b+a*(lambda[1]+I*lambda[2]))*y-(1/2)*(lambda[1]+I*lambda[2])*b*x)*beta+(1/4)*(b*t-y)*(lambda[1]+I*lambda[2]))+4*y*beta*b*conjugate(lambda[1]+I*lambda[2])^2*(-((lambda[1]+I*lambda[2])*y+x)*beta+(1/2)*t)+conjugate(lambda[1]+I*lambda[2])*(-4*beta^2*(y^2*(b*(lambda[1]^2-lambda[2]^2+(2*I)*lambda[1]*lambda[2])+2*a*(lambda[1]+I*lambda[2]))+2*x*(b*(lambda[1]+I*lambda[2])+a)*y+b*x^2)+2*beta*(-4*b*(b*(lambda[1]+I*lambda[2])+a)*t^2+2*t*(y*(b*(lambda[1]+I*lambda[2])+a)+b*x)+y*((lambda[1]+I*lambda[2])*y+x))+b*t^2-t*y)+4*(-2*((I*lambda[1]*lambda[2]+(1/2)*lambda[1]^2-(1/2)*lambda[2]^2)*b+a*(lambda[1]+I*lambda[2]))*x*y-(lambda[1]+I*lambda[2])*x^2*b-2*a*x^2+12*alpha)*beta^2+2*beta*(-4*a*(b*(lambda[1]+I*lambda[2])+a)*t^2+t*(y*(b*(lambda[1]^2-lambda[2]^2+(2*I)*lambda[1]*lambda[2])+2*a*(lambda[1]+I*lambda[2]))+2*(b*(lambda[1]+I*lambda[2])+2*a)*x)+x*((lambda[1]+I*lambda[2])*y+x))+((b*(lambda[1]+I*lambda[2])+2*a)*t-(lambda[1]+I*lambda[2])*y-2*x)*t)

(2)

ans := solve({diff(rhs(equ), x), diff(rhs(equ), y)}, {x, y}, explicit)

 

``

Download critical-point.mw

I had this problem in Maple 2024.2 but not as bad as Maple 2025. In Maple 2024.2 the UI will shuffle every few hrs. Then I have to close Maple and restart it.

With Maple 2025, it now shuffle when I try to do anything. Basically I am not able to use Maple 2025 at all. 

I made sure my NVidia drivers are up to date.

I have two monitors. Both running at 2560x1080 (native). 60 HZ. Both are LG Electronics 32" wide.

 

 

Only Maple have this issue on my PC.

Here is a movie. Once I open any new menu or click on anything, the desktop goes bizzerick and Maple screen starts glitching randomly and move around with the mouse. I can;t even see the close button any more. In this case, I simply did this:

Open new Maple 2025.

Then just did FILE->Open->Browse and now it started to shuffle.

New installation of Maple 2025 today.

I never seen anything like this in all the  years I have been using windows apps except with Maple.

Here is another movie, where I start Maple 2025, and simply do insert executable section, then it starts to shuff. I have not typed anything. 

 

I will try to also reboot my PC to see if it helps, but I've done this before, but not after updating the drivers (even though it is not needed). (waiting for a script to finish, which can take few more hrs).

I will also try to remove one monitor to see if has anything to do with it.

The above Makes Maple 2025 completely not useable.

I called Maple customer support also and left my phone number to see if they can suggest something.

New PC (2 years), latest windows 10, 128 GB RAM.

The new user interface seems to made this shuffling problem worst than with Maple 2024.2

Any idea what else to try? 

Update

Rebooted PC. No effect.

Resinstaled NVidia drivers, and did clear installation, resetting to factory settings. No effect.

Removed one monitor. No effect.

Have no idea why Maple UI does this. 

Windows 10 pro, 22H2

Update 2

I've downloaded Maple 2025 trial for 15 days to try on Linux.

Installed OK and UI works great with no shuffling. All on same PC. Linux running inside Virtual box.

So the shuffling only happens on windows. 

I think I will go tommorrow buy a new PC and install Linux on it and just use Maple on Linux from now on. I've uninstalled Maple 2025 from windows since it is completely not useable for me.

Where is the tools->options  menu in Maple 2025? I can't find it. 

This is how it looks in Maple 2024:

 

I open new worksheet, but it is still uses math for input. I wanted to change that like I did in Maple 2024 to use Maple notation.

But do not see any options under tools in Maple 2025:

Windows 10.

 

Hey guys, 

From a former calculation I got a set of points as a implicit RootOf function for an intervall. Now I want to check, if these points are in a certain area. So i thougt I take the RootOf function, the intervall and the inequalities (which describe the target area) and use the solve command. But then I get the warning, solutions may have been lost and no solution. When you draw the implicit function you can see thats in the right area (above y=1 and below y=x). So there should be a clear anwer, giving me back the whole RootOf function in the intervall.

Download QUESTI~2.MW

Since there was an error uploading the picture here the code 

restart;
Sol := {x = RootOf(_Z^2 - y, index = real[2]) + 1, 1 < y, y < 2};
area := {1 < y, y < x};
Sol_area := solve(Sol union area);
print(Sol_area);

So why do I get this warning, the calculation seems quite easy? And is there a workaround? Or a diffrent kind of solve function? SemiAlgebraic is as far as i know only for polynomials. So I got an error as well. Since the websites are down I could start an own reasearch before. So thank you in advance. 

Regards

Felix

I found this version after Maple 2025 installation in Windows programs menu. It looks like a fully functional Maple version using the old GUI.

Why is it called "for screen readers"? I do not understand the link to persons with disabilites (I assume that the icon stands for it)?
In which respect is the new GUI less suited for visually impaired(?) people? I think the readabilty of the new GUI is at least as good as the old GUI.

In case Maple 2025 for Screen Readers is a fully functional Maple version, I give two thumbs up to Maplesoft. Smart move not to immediately impose a "disruptive" new GUI with allot of potential for new users to everyone.

Hey guys, 

I have a problem with the solve command. And since the websites are down, I cant help myself. I have a function x(y) and an intervall for y. This function or the set of points described by the function should now be transformed to another area of the plane. So now I can get a(x,y)=1/y and b(x,y)=x/(x+y-1) with just plugging in, then everything depeends from the y Invtervall. But I want to get the form b(a) and an intervall for a. So that I can see the function directly. So i thought I just put everything into the solve command and than ask for a solution for {a,b} and expected to get what I want. (Uploading the script here gives an error)
 

restart;
Sol := solve({a = 1/y, b = x/(x + y - 1), x = (y - 1)^2, 1 < y, y < 5/4});
Sol_ab := solve({a = 1/y, b = x/(x + y - 1), x = (y - 1)^2, 1 < y, y < 5/4}, {a, b});

#expected (or wanted) solution
#with y = 1/a and the inequalities we get 4/5 < a and a < 1 with y
#with y = we get x(a)/a and y(a) and reach b = 1/a - 1
#all together: Sol={b=1/a - 1, 4/4<a, a<1};

THe problem is, that I get an empty set which is obviously wrong. So I somehow make an error when making the variables I want concrete with adding {a,b}. What do I do wrong? Or is there a better command for what I want to achieve? In this case I can solve the problem via hand, but I have more complex tranformations and mor ecomplex functions x(y), so thats why I ask for general help with my problem. 

Thank ypu in advance

Felix

Download QUESTI~1.MW

On Ubuntu 24.04 or LinuxMint 22.1 (based on Ubuntu 24.04) I have the problem with(Matlab) funtions functionality

Matlab[openlink]();
Error, (in Matlab:-openlink) There was a problem initializing the Matlab engine. Refer to ?Matlab,setup for help configuring your system to work with the Matlab-link.  The error was: Maple/Matlab Link: Can't start Matlab engine; environment variable $MATLAB_BASEDIR not set

+ other error mesages from CLI:

starting mmatlink
In connectToMatlab
/bin/csh: /opt/MATLAB/R2024b/bin/glnxa64/libbsd.so.0: version `LIBBSD_0.7' not found (required by /bin/csh)

MATLAB R2024b using obsolete libbsd ver. 0.4.2 !!! So this is probably the problem...

$MATLAB_BASEDIR is properly defined at maple script:

# In order to link to MATLAB from within Maple, correct the following path
# and uncomment the next four lines, or define the environment variable,
# $MATLAB_BASEDIR outside this script.
if [ -z "$MATLAB_BASEDIR" ] ; then
MATLAB_BASEDIR=/opt/MATLAB/R2024b
export MATLAB_BASEDIR
fi

# C-shell is required for link to MATLAB (sudo apt install csh)

Any help???

Good day, all.

Please, I am working on the following code but found out that the command solve is not displaying any result. Your assistance and suggestions would be appreciated. Thank you, and best regards.

 

restart;
NULL;
t := sum(a[j]*q^j, j = 0 .. 9);
H := diff(t, q);
F := diff(t, q $ 2);
p1 := simplify(eval(t, q = x)) = y[n];
p2 := simplify(eval(F, q = x)) = f[n];
p3 := simplify(eval(F, q = x + h/4)) = f[n + 1/4];
p4 := simplify(eval(F, q = x + h/2)) = f[n + 1/2];
p5 := simplify(eval(F, q = x + (3*h)/4)) = f[n + 3/4];
p6 := simplify(eval(F, q = x + h)) = f[n + 1];
p7 := simplify(eval(F, q = x + (5*h)/4)) = f[n + 5/4];
p8 := simplify(eval(F, q = x + (3*h)/2)) = f[n + 3/2];
p9 := simplify(eval(F, q = x + (7*h)/4)) = f[n + 7/4];
p10 := simplify(eval(F, q = x + 2*h)) = f[n + 2];
r := seq(a[i], i = 0 .. 9);
s := p || (1 .. 10);

solve({s}, {r});

First 25 26 27 28 29 30 31 Last Page 27 of 2218