Un dubbio su ParametricPlot3D, RevolutionPlot3D, ListPlots e NIntegrate: posso costruire un “RevolutionListPlot3D”?

Sep 27 2020

Prima di tutto: questa domanda sta nel contesto di Surfaces and Embbedings on Differential Geometry. Più precisamente nel contesto delle coordinate di Kruskal e di come tracciare uno Schwarzschild Wormhole dinamico in 3D$[1]$, $[2]$, $[3]$. Il contesto principale è dato a riferimento$[1]$.

PARTE I) Alcuni Fisica e Matematica

I.1) Un "niente" su Gravity e Black Holes

I buchi neri sono soluzioni delle equazioni di campo di Einstein. Più precisamente, abbiamo quindi l'equazione principale (tensore):

$$\textbf{Ric} - \frac{1}{2}R\textbf{g} = \frac{8\pi G}{c^{4}} \textbf{T} \tag{1}$$

Le soluzioni di equazione $(1)$ sono dati dai tensori metrici:

$$\textbf{g} = g_{\mu\nu} \textbf{dx}^{\mu} \otimes \textbf{dx}^{\nu} \tag{2}$$

In un grafico a coordinate (ovvero dove facciamo i calcoli), possiamo esprimere la quantità scalare chiamata elemento linea che è precisamente il campo scalare quando il tensore metrico agisce sui campi vettoriali tangenti su una varietà$\mathcal{M}$:

$$\textbf{g}(d\textbf{r},d\textbf{r}) = g_{\mu\nu}dx^{\mu}dx^{\nu} := ds^2\tag{3}$$

Pertanto, dato un tensore metrico su una varietà, si caratterizza la geometria, in modo puntuale, del collettore.

Un fatto importante sui tensori è qualcosa chiamato covarianza generale : la fisica è indipendente dalle coordinate; i fenomeni della natura non si preoccupano delle coordinate; le equazioni della fisica devono essere indipendenti dalle coordinate; i fenomeni naturali possono essere ben descritti utilizzando il sistema di coordinate cartesiane, e ugualmente ben descritti da qualsiasi sistema di coordinate curvilinee. L'oggetto matematico che cattura questo fatto sono i tensori.

Pertanto l'oggetto astratto (tensore metrico) è indipendente dalle trasformazioni di coordinate:

$$ \textbf{g'} = \textbf{g} \tag{4}$$

Ma in un livello di grafici a coordinate, le loro coordinate cambiano in una forma come:

$$ g'_{\mu\nu} = \frac{\partial x^{\alpha}}{\partial x'^{\mu}}\frac{\partial x^{\beta}}{\partial x^{\nu'}}g_{\alpha \beta}\tag{5}$$

Un buco nero di Schwarzschild ha il seguente tensore metrico:

$$ ds^{2} = -\Bigg(1- \frac{2GM}{c^{2}r}\Bigg)c^{2}dt^{2} + \frac{1}{1-\frac{2GM}{c^{2}r}}dr^{2} - r^{2}d\theta^{2} + r^{2}sin^{2}(\theta)d\phi^{2}\tag{6}$$

Possiamo facilmente vedere la tabella delle coordinate qui: le coordinate sferiche estese alla fisica dello spaziotempo;

$$\mathrm{Coordinates} \implies (t,r,\theta,\phi) \tag{7}$$

Quindi abbiamo a che fare con uno spaziotempo quadridimensionale $\mathcal{M}$.

I.2) Procedura di embbebing di Schwarschild Wormhole

Il contesto di base qui è: dobbiamo rappresentare quello spaziotempo quadridimensionale $(6)$in uno spazio euclideo tridimensionale. Quindi, dobbiamo incidere una superficie in uno spazio 3D.

Quindi "sopprimiamo" due dimensioni, cioè fissiamo un momento di coordinate temporali $t = T \in \mathbb{R}$ e un angolo di coordinate $\theta = \frac{\pi}{2}$(in effetti questo angolo ci dà la geometria del "piano equaziale"). Pertanto i differenziali sono nulli:$dt^{2} = dT^{2} = 0 $, $d\theta^{2} = d\frac{\pi}{2}^{2} = 0 $ e quindi, la metrica diventa:

$$ ds^{2} = \frac{1}{1-\frac{2GM}{c^{2}r}}dr^{2} + r^{2}d\phi^{2}\tag{8}$$

Il passo successivo è quindi quello di "confrontare" questo $2D$ tensore metrico con il tensore metrico Cilindrico:

$$ ds^{2} = dz^{2} + dr^{2} + r^{2}d\phi^{2} \equiv \Bigg[ 1+\Bigg(\frac{dz}{dr}\Bigg)^{2} \Bigg]dr^{2} + r^{2}d\phi^{2}\tag{9}$$

Allora diciamo che:

$$\Bigg[ 1+\Bigg(\frac{dz}{dr}\Bigg)^{2} \Bigg]dr^{2} = \frac{1}{1-\frac{2GM}{c^{2}r}}dr^{2} \tag{10}$$

Il che implica, infine:

$$ \frac{dz}{dr} = \frac{1}{\sqrt{1-\frac{2GM}{c^{2}r}}} - 1 \tag{11}$$

Possiamo integrare questa funzione e scoprire la stessa funzione di interesse qui:

$$ z(r) = \pm\int^{r}_{r_{0}} \frac{1}{\sqrt{1-\frac{2GM}{c^{2}r}}} - 1 dr \tag{11}$$

Equazione di integrazione $(11)$ e utilizzando la funzione $\mathrm{RevolutionPlot3D}$ tracciamo la superficie simile a un wormhole

PARTE II) I miei dubbi e che tipo di programma di Mathematica voglio scrivere

II.1) Il Kruskal Numerical Embbeding Integral

Ci sono molte cose da coprire, ma il fatto fisico è: questa gola del wormhole non è qualcosa di "costante nel tempo". Coordinate Kruskal-Szekeres, possiamo rappresentare il "wormhole dinamico" nel "passaggio del tempo", cioè, per ogni valore del "tempo kruskal" abbiamo una superficie diversa!

Le coordinate cambiano quindi per le coordinate Kruskal-Szekeres:

$$\mathrm{Coordinates'} \implies (v,u,\theta,\phi) \tag{12}$$

Dove $v$sono chiamati "il tempo di Kruskal". È importante ricordare che questo coodinato non è il tempo dei nostri orologi, in effetti$t$non è l'ora dei nostri orologi, ma piuttosto portano una firma temporale .

In questo grafico a coordinate l'integrale Embbeding (come $(11)$ ) diventa:

$$ z(u) = \pm\int_{0}^{u} \frac{dz}{du}du = \pm\int_{r(0)}^{r(u)} \frac{dz}{du}\frac{du}{dr}dr = \pm\int_{r(0)}^{r(u)} \sqrt{g_{rr} - 1} dr =$$

$$ = \pm\int_{r(0)}^{r(u)} \sqrt{\frac{2\Big( e^{\frac{r}{2}} -v_{0}^2 \Big)}{re^{\frac{r}{2}} - 2\Big( e^{\frac{r}{2}} -v_{0}^2 \Big)}} dr \tag{12}$$

Così, $v_{0}$ sono i tempi costanti di Kruskal, lì per ciascuno $v_{0}$ possiamo avere un integrale su $u$! Anche le funzioni$r(u)$ sono infatti:

$$ r(u,v) =: 2m \Biggr[1+\mathrm{LambertW}\Bigg(\frac{u^2-v^2}{e}\Bigg) \Biggr] \tag{13}$$

L'utilizzo, in questo problema, della funzione $(13)$ è più precisamente (per $m=1$ ),

$$ r(u) \equiv r(u,v_{0}) =: 2 \Biggr[1+\mathrm{LambertW}\Bigg(\frac{u^2-v_{0}^2}{e}\Bigg) \Biggr] \tag{14}$$

Pertanto, l'integrale $(12)$ diventa finalmente:

$$ z(u) = \pm\int_{r(0) = 2 \Biggr[1+\mathrm{LambertW}\Bigg(\frac{-v_{0}^2}{e}\Bigg) \Biggr] }^{r(u)=2 \Biggr[1+\mathrm{LambertW}\Bigg(\frac{u^2-v_{0}^2}{e}\Bigg) \Biggr]} \sqrt{\frac{2\Big( e^{\frac{r}{2}} -v_{0}^2 \Big)}{re^{\frac{r}{2}} - 2\Big( e^{\frac{r}{2}} -v_{0}^2 \Big)}} dr \tag{15}$$

Quindi DOBBIAMO calcolare l'integrale $(15)$, e questo è un compito numerico. In breve calcoliamo (in qualche modo) l'integrale$(15)$e quindi tracciamo la superficie molto 3D:

$$ \textbf{X} = [r(u)cos(\phi), r(u)sin(\phi), z(u)] \tag{16}$$

II.2) ListPlot del mio calcolo NIntegrate

Quindi ho fatto un'integrazione numerica usando NIntegrate ma semplicemente non posso usarlo come file $z[u]$funzione! Guarda:

Manipulate[
 ListPlot[Table[
   NIntegrate[
    Sqrt[((2*(Exp[(r)/(2)] - ((v0)^2))    ))/(r*
         Exp[(r)/(2)] - ((2*(Exp[(r)/(2)] - ((v0)^2))    )))], {r, \
(2*(1)*(1 + ( 
          LambertW[((( 0^2  ) - (v0^2))/(Exp[
               1]))]   ))), (2*(1)*(1 + ( 
          LambertW[((( u^2  ) - (v0^2))/(Exp[1]))]   )))}], {u, 0, k, 
    1}], Joined -> True, InterpolationOrder -> 1, Mesh -> All], {k, 1,
   25}, {v0, -0.99999, 0.99999}]

Questo codice infatti calcola numericamente l'integrale, ma non posso usarlo in $\mathrm{ParametricPlot3D}$.

PARTE III) Alcuni suggerimenti e suggerimenti già fatti

III.1) Il mio vecchio codice basato sul riferimento $[4]$

In effetti un utente $[4]$hanno "risolto" il problema. Ho adattato un po 'il suo codice:

r[u_, v0_] := 1 + LambertW[(u^2 - v0^2)/E];
z[u_, v0_] := 
  2 Sqrt[(1/
        r[u, v0] Exp[-r[u, v0]] - (u Exp[-r[u, v0]]/(r[u, v0]))^2)];

Z = ParametricNDSolveValue[{z'[u] == z[u, v0], z[0] == 0}, 
  z, {u, -1, 1}, {v0}]

Manipulate[
 ParametricPlot3D[{r[u, v0] Cos[phi], r[u, v0] Sin[phi], 
   Z[v0][u]}, {u, -1, 1}, {phi, 0, 2 Pi}, PlotTheme -> "Classic", 
  PlotRange -> {{-1.5, 1.5}, {-1.5, 1.5}, {-10, 10}}, 
  BoxRatios -> {2, 2, 2}], {v0, -0.99999999999999, 0.99999999999999}]


Ma sta risolvendo un'equazione differenziale, voglio usare il calcolo integrale!

III.2) La GIF dinamica di Hamilton

Questo ragazzo Hamilton ha realizzato la trama suprema che voglio fare, infatti voglio riprodurre la sua trama dinamica, cioè, questa mia domanda e tutti i miei dubbi esistono solo per riprodurre la sua trama. Puoi dare un'occhiata alla gola dinamica del wormhole di seguito:

https://jila.colorado.edu/~ajsh/bh/schww_gif.html

III.3) Il consulente del mio professore

Il mio professore mi ha detto una possibile soluzione interessante:

Forse puoi provare a risolvere l'integrale numerico per vari valori di $u$e ottieni diversi punti del tipo $(u, z)$, quindi puoi ad esempio interpolare questi punti per ottenere una funzione fluida di $z = z (u)$e utilizzare questa funzione in $\mathrm{ParametricPlot3D}$. Prova a vedere se funziona.

Sembra essere giusto, ma semplicemente non so come tradurre ottenere diversi punti del tipo$(u, z)$, quindi puoi ad esempio interpolare questi punti per ottenere una funzione fluida di $z = z (u)$ nel codice Mathematica.

PARTE IV) Il mio dubbio

Quindi, la mia integrazione numerica nella sezione II.2 sembra essere corretta, quindi è solo un dato di fatto su come posso ruotare questa curva. Ma il modo in cui ho scritto l'intera cosa non posso usare il file$\mathrm{RevolutionPlot3D}$, quindi il mio dubbio è:

Come posso usare $\mathrm{RevolutionPlot3D}$ nel mio codice II.2 ?

$$ * * * $$

$[1]$ Incontri ed evoluzione temporale del wormhole di Schwarzschild -https://arxiv.org/abs/1107.4871

$[2]$ Gravitation - Misner, Thorne, Wheeler Pagine da 612 a 615

$[3]$ I wormhole nello spaziotempo e il loro uso per i viaggi interstellari: uno strumento per insegnare la relatività generale -https://aapt.scitation.org/doi/10.1119/1.15620

$[4]$ Schema di incorporamento del wormhole

Risposte

2 AlexTrounev Sep 28 2020 at 00:34

C'è un post così lungo, ma rispondi molto breve. Nella prima fase definiamo 3 funzioni:

r0[u_?NumericQ, v0_?NumericQ] := 2 (1 + LambertW[(u^2 - v0^2)/E]);
z[u_?NumericQ, v0_?NumericQ] := 
 NIntegrate[
  Sqrt[2 (Exp[r/2] - v0^2)/(r*Exp[r/2] - 2*(Exp[r/2] - v0^2))], {r, 
   r0[0, v0], r0[u, v0]}, AccuracyGoal -> 2, PrecisionGoal -> 2]
wh[v0_?NumericQ] := 
 ParametricPlot3D[{r0[u, v0] Cos[phi], r0[u, v0] Sin[phi], 
   z[u, v0] Sign[u]}, {u, -1, 1}, {phi, 0, 2 Pi}, 
  SphericalRegion -> True, BoxRatios -> 1, FaceGrids -> None, 
  PlotStyle -> {Opacity[0.8]}, Boxed -> False, Axes -> False, 
  ImageSize -> Automatic, ViewPoint -> Front, Mesh -> None, 
  PlotLabel -> Row[{"\!\(\*SubscriptBox[\(v\), \(0\)]\) = ", v0 1.}]]

E poi visualizziamo il wormhole (ci vuole tempo):

Table[wh[x], {x, {-1 + 10^-5, -.5, 0., 
    1. - 10^-5 }}] // AbsoluteTiming