Today, I will show how to draw an asymptotically flat spacetime with two ends using MuPad. To draw ends, we use hyperbolic functions.
First, we talk about the end. The function that I am going to use is . It is clear that blow up at and approaches at infinity. To use , we use the following
h := proc(t) begin (1-4*t)/(t-2)+12 end_proc
I have added to the function so that approaches at infinity. Then to draw the (upper) end, I use the following function
f := proc(x, y) begin if x^2 + y^2 > 3.4 then h(x^2+y^2) else end_if end_proc
I have used the number because I do not want my end is too tall, keep in mind that is the blow-up number. We can calculate
to see that this number is nothing but which is close to as I need. We are now able to draw the first end using the following
plot( plot::Function3d(f, x = -6 .. 6, y = -6 .. 6, Submesh = [3, 3]), ViewingBox = [Automatic, Automatic, 3 .. 8], Scaling = Constrained)
What we obtain is the following picture
By using the negative of , i.e. , we can draw the lower end as follows
plot(plot::Function3d(f, x = -6 .. 6, y = -6 .. 6, Submesh = [3, 3]), plot::Function3d(-f, x = -6 .. 6, y = -6 .. 6, Submesh = [3, 3]), ViewingBox = [Automatic, Automatic, -8 .. 8], Scaling = Constrained)
We obtain the following picture.
The only thing left is to draw the “compact set” of the spacetime. In order to make the whole smooth, I need to know the tangent line at the point of the function . I use
To draw the upper half compact core, I use an ellipse of the form for some .
Suppose and , let us consider the function
By solving , we find that
we know that
Therefore, the condition gives
Using , we obtain .
In this case, we can also use a cylinder via
plot::Surface([sqrt(3.4)*cos(v), sqrt(3.4)*sin(v), u], u = -3 .. 3, v = 0 .. 2*PI)
Eventually, this is what we have
Note that in the above picture, I have used the point instead of the point .