5

I want to evaluate an expression of type 1/(r-2 m), assuming r >> 2 m. This is regarding black hole physics and r = 2 m is the Schwarzschild radius. But I am working on something where I need to evaluate a similar type of expression assuming r >> 2 m. In Mathematica, when I assume r > 2 m, I am getting output.

My input is

Simplify[1/(r - 2 m), Assumptions -> r > 2 m]

and, I got the output

1/(-2 m + r)

But, this is not working for r >> 2 m. For example, if I write the input as

Simplify[1/(r - 2 m), Assumptions -> r >> 2 m]

In the output, this is showing an error as follows.

Put::stream: 2 m is not a string, SocketObject, InputStream[ ], or OutputStream[ ].

How can I specify assumptions like r >> 2 m?

Peter Mortensen
  • 759
  • 4
  • 7
apk
  • 307
  • 1
  • 8
  • 1
    Perhaps Normal[Series[1/(r - 2 m) /. m -> eps r, {eps, 0, 1}]] /. eps -> m/r (*(2 m)/r^2 + 1/r*) is what you are looking for? – Ulrich Neumann Aug 02 '21 at 14:43

3 Answers3

7

Perhaps an alternative would be to do a series expansion by either expanding r around infinity or m around 0:

In[1]:= Series[1/(r - 2 m), {r, \[Infinity], 2}]
Out[1]= SeriesData[r, DirectedInfinity[1], {1, 2 m}, 1, 3, 1]

and

In[2]:= Series[1/(r - 2 m), {m, 0, 1}]
Out[2]= SeriesData[m, 0, {r^(-1), 2 r^(-2)}, 0, 2, 1]
Hans Olo
  • 1,843
  • 2
  • 9
  • 15
  • This works. But why series expansion up to second-order? It should be up to the first order. Forex, 1/(r-2m) for r>>2m, should give simply 1/r. Series expanding r around infinity up to first-order gives me answer 1/r. My input - Normal[Series[1/(r - 2 M), {r, [Infinity], 1}]] gives me output 1/r. If the input contains 2nd power of r, then we should expand up to second order. – apk Aug 04 '21 at 06:34
  • That was just an example, you can adjust the parameters as needed ;-) – Hans Olo Aug 04 '21 at 06:53
  • though this gives the answer, but can you please tell me why we need to expand in r around "infinity"? why do we choose to expand around infinity ? Does series expanding r around ''infinity'' mean r much greater than 2 m? – apk Aug 12 '21 at 06:46
  • 1
    In mathematica lingo expanding around infinity is the equivalent (sort of) of saying r is larger than all other parameters. In this case it also makes physical sense, as r>>m practically means far away from the black hole. – Hans Olo Aug 12 '21 at 09:39
5

There is no simple way to do it because it's not something that Simplify supports. The easiest thing you could probably do, is replace m with eps * r /2 and then add the assumption that eps > 0. You can then simplify and take the limit eps -> 0.

Simplify[1/(r - 2 m) /. m -> eps*r/2, Assumptions -> eps > 0]
Limit[%, eps -> 0, Direction -> "FromAbove"]

1/(r - eps r)

1/r

Sjoerd Smit
  • 23,370
  • 46
  • 75
5

The simplification facilities of Mathematica are built for exact transformations, not approximate ones. Since the estimate $r\gg2m$ does not allow any more simplifications than $r>2m$ (at least when trying to stay exact), $\gg$-type inequalities are not directly supported by Mathematica.

If you are more precise with what you mean, you can get Mathematica to do something for you. In particular, inequalities like $x\ll 1$ are often understood as "the expression can be expanded up to first order in $x$ in good approximation". By extension, $x\gg y$ can be "used" by expanding the expression in question to first order in $\varepsilon=y/x$ (since $\varepsilon\ll1$).

We can do this in Mathematica as e.g. suggested by @UlrichNeumann in the comments:

LLSimplify[expr_, {v_, u_}] := Simplify[Normal@Series[expr /. v -> eps u, {eps, 0, 1}] /. eps -> v/u]

LLSimplify[1/(r - 2 m), {r, 2 m}] (* -((2 m + r)/(4 m^2)) *)

Here, LLSimplifiy[expr, {v, u}] approximates expr under the assumption that the variable v is a lot smaller than the expression u. We do this by introducing the helper variable eps, expanding to first order in eps, and then replacing eps with v/u again.

Lukas Lang
  • 33,963
  • 1
  • 51
  • 97