Imposing assumptions on coordinates in the Maple package DifferentialGeometry

111 Views Asked by At

Does anyone have experience in putting assumptions on the coordinates in Maple's DifferentialGeometry Package?

My problem is that I am trying to compute some Laplace-Beltrami operators. Maple has this command but the output is almost unreadable sometimes because of the many $\textrm{csgn}$ functions. I've tried to create an easy example: Setting up a frame and a Riemannian metric like so

DGsetup([x], R);

h := evalDG(dx &t dx/(x^2+1)^2);

and then trying to evaluate

Laplacian(h, f(x));

returns

$-\sqrt { \left( {x}^{2}+1 \right) ^{2}}{\it csgn} \left( {x}^{2}+1 \right) \left( \left( {\frac {{\rm d}^{2}}{{\rm d}{x}^{2}}}f \left( x \right) \right) {x}^{2}+2\, \left( {\frac {\rm d}{{\rm d}x} }f \left( x \right) \right) x+{\frac {{\rm d}^{2}}{{\rm d}{x}^{2}}}f \left( x \right) \right) $

Obviously $csgn(x^2+1)$ should be $1$ but Maple does not regard $x$ as a real variable. In this example it is not bad but in higher dimensions this problem makes the computations entirely useless. But, running

Laplacian(h, f(x)) assuming x::real;

returns $0$. Also, I can't use assume on coordinates since they are protected.

In The Maple help page on DGconjugate it is mentioned that the coordinate variables are assumed real, but probably this is only so for the purpose of that command.

Has anyone had a similar problem and did you find a satisfying workaround?

2

There are 2 best solutions below

1
On BEST ANSWER

You might still utilize that assumption on the result from the Laplacian command. You might utilize it on a call to simplfy, for example.

Eg,

restart;

with(DifferentialGeometry):
DGsetup([x], R):

h := evalDG(dx &t dx/(x^2+1)^2):

result := Tensor:-Laplacian(h, f(x)):

simplify(result) assuming x::real;

$$- \left( {x}^{2}+1 \right) \left( \left( {\frac {{\rm d}^{2}}{ {\rm d}{x}^{2}}}f \left( x \right) \right) {x}^{2}+2\, \left( {\frac {\rm d}{{\rm d}x}}f \left( x \right) \right) x+{\frac {{\rm d}^{2}}{ {\rm d}{x}^{2}}}f \left( x \right) \right) $$

That'll be simpler than having to figure out all the substitutions to enter by hand.

0
On

I use this package often and don't know a way to resolve this using the functionality of $\texttt{DifferentialGeometry}$ package itself but one can always eliminate these expressions on an ad hoc basis using the subs() routine:

with(DifferentialGeometry):
DGsetup([x], R);
h := evalDG(dx &t dx/(x^2+1)^2);
subs({sqrt((x^2+1)^2) = x^2 + 1, csgn(x^2+1) = 1}, Tensor:-Laplacian(h, f(x)));

This yields the cleaner output

$-\left( {x}^{2}+1 \right) \left( \left( {\frac {{\rm d}^{2}}{{\rm d}{x}^{2}}}f \left( x \right) \right) {x}^{2}+2\, \left( {\frac {\rm d}{{\rm d}x} }f \left( x \right) \right) x+{\frac {{\rm d}^{2}}{{\rm d}{x}^{2}}}f \left( x \right) \right) . $