Wątpliwości dotyczące ParametricPlot3D, RevolutionPlot3D, ListPlots i NIntegrate: czy mogę zbudować „RevolutionListPlot3D”?
Po pierwsze: jest to pytanie w kontekście powierzchni i przetłoczeń na geometrii różniczkowej. Dokładniej w kontekście współrzędnych Kruskala i sposobu narysowania dynamicznego trójwymiarowego tunelu czasoprzestrzennego Schwarzschilda$[1]$, $[2]$, $[3]$. Główny kontekst podano jako odniesienie$[1]$.
CZĘŚĆ I) Trochę fizyki i matematyki
I.1) „Nic” na temat grawitacji i czarnych dziur
Czarne dziury to rozwiązania równań pola Einsteina. Dokładniej, mamy więc równanie główne (tensorowe):
$$\textbf{Ric} - \frac{1}{2}R\textbf{g} = \frac{8\pi G}{c^{4}} \textbf{T} \tag{1}$$
Rozwiązania równania $(1)$ są podane przez tensory metryczne:
$$\textbf{g} = g_{\mu\nu} \textbf{dx}^{\mu} \otimes \textbf{dx}^{\nu} \tag{2}$$
Na wykresie współrzędnych (czyli tam, gdzie wykonujemy obliczenia), możemy wyrazić wielkość skalarną zwaną elementem liniowym, która jest dokładnie polem skalarnym, gdy tensor metryczny działa na styczne pola wektorowe w rozmaitości$\mathcal{M}$:
$$\textbf{g}(d\textbf{r},d\textbf{r}) = g_{\mu\nu}dx^{\mu}dx^{\nu} := ds^2\tag{3}$$
Dlatego mając metryczny tensor na rozmaitości, określamy w sposób punktowy geometrię Rozlacza.
Ważnym faktem dotyczącym tensorów jest coś, co nazywa się kowariancją ogólną : fizyka jest niezależna od współrzędnych; zjawiska przyrodnicze nie dbają o współrzędne; równania fizyki muszą być niezależne od współrzędnych; zjawiska przyrodnicze można dobrze opisać za pomocą kartezjańskiego układu współrzędnych i równie dobrze opisać dowolnym krzywoliniowym układem współrzędnych. Obiektem matematycznym, który oddaje ten fakt, są tensory.
Dlatego obiekt abstrakcyjny (tensor metryczny) jest niezależny od przekształceń współrzędnych:
$$ \textbf{g'} = \textbf{g} \tag{4}$$
Ale na poziomie wykresów współrzędnych ich współrzędne zmieniają się w postaci takiej jak:
$$ g'_{\mu\nu} = \frac{\partial x^{\alpha}}{\partial x'^{\mu}}\frac{\partial x^{\beta}}{\partial x^{\nu'}}g_{\alpha \beta}\tag{5}$$
Czarna dziura Schwarzschilda ma następujący tensor metryczny:
$$ 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}$$
Możemy z łatwością zobaczyć wykres współrzędnych tutaj: współrzędne sferyczne rozszerzone na fizykę czasoprzestrzeni;
$$\mathrm{Coordinates} \implies (t,r,\theta,\phi) \tag{7}$$
Dlatego zajmujemy się czterowymiarową czasoprzestrzenią $\mathcal{M}$.
I.2) Procedura osadzania tunelu czasoprzestrzennego w Schwarschild
Podstawowy kontekst tutaj jest następujący: musimy przedstawić tę czterowymiarową czasoprzestrzeń $(6)$w trójwymiarowej przestrzeni euklidesowej. Następnie musimy osadzić powierzchnię w przestrzeni 3D.
Następnie „tłumimy” dwa wymiary, tj. Ustalamy moment współrzędnych czasu $t = T \in \mathbb{R}$ i kąt współrzędnych $\theta = \frac{\pi}{2}$(w rzeczywistości ten kąt daje nam geometrię „płaszczyzny równikowej”). Dlatego różnice wynoszą zero:$dt^{2} = dT^{2} = 0 $, $d\theta^{2} = d\frac{\pi}{2}^{2} = 0 $ a następnie metryka staje się:
$$ ds^{2} = \frac{1}{1-\frac{2GM}{c^{2}r}}dr^{2} + r^{2}d\phi^{2}\tag{8}$$
Następnym krokiem jest „porównanie” tego $2D$ tensor metryczny z cilindrycznym tensorem metrycznym:
$$ 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}$$
Następnie mówimy, że:
$$\Bigg[ 1+\Bigg(\frac{dz}{dr}\Bigg)^{2} \Bigg]dr^{2} = \frac{1}{1-\frac{2GM}{c^{2}r}}dr^{2} \tag{10}$$
Co ostatecznie oznacza:
$$ \frac{dz}{dr} = \frac{1}{\sqrt{1-\frac{2GM}{c^{2}r}}} - 1 \tag{11}$$
Możemy zintegrować tę funkcję i odkryć tutaj samą funkcję zainteresowania:
$$ z(r) = \pm\int^{r}_{r_{0}} \frac{1}{\sqrt{1-\frac{2GM}{c^{2}r}}} - 1 dr \tag{11}$$
Całkowanie równania $(11)$ i używając funkcji $\mathrm{RevolutionPlot3D}$ wykreślamy powierzchnię podobną do tunelu czasoprzestrzennego
CZĘŚĆ II) Moje wątpliwości i jaki program Mathematica chcę napisać
II.1) Całka osadzona liczbowo Kruskala
Jest wiele rzeczy do omówienia, ale fakt fizyczny jest taki: gardło tego tunelu czasoprzestrzennego nie jest czymś „stałym w czasie”. Współrzędne Kruskala-Szekeresa, możemy przedstawić "dynamiczny tunel czasoprzestrzenny" w "upływie czasu", tj. Dla każdej wartości "czasu kruskala" mamy inną powierzchnię!
Współrzędne zmieniają się wtedy dla współrzędnych Kruskal-Szekeres:
$$\mathrm{Coordinates'} \implies (v,u,\theta,\phi) \tag{12}$$
Gdzie $v$nazywane są „Czasem Kruskala”. Należy wspomnieć, że ten coodinate nie jest czasem naszych zegarów, w rzeczywistości$t$nie jest czasem naszych zegarów, ale raczej noszą one sygnaturę czasową .
Na tym wykresie współrzędnych całka osadzona (np $(11)$ ) staje się:
$$ 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}$$
Więc, $v_{0}$ są stałe czasy Kruskala, po to dla każdego $v_{0}$ możemy mieć całkę na $u$! Również funkcje$r(u)$ są w rzeczywistości:
$$ r(u,v) =: 2m \Biggr[1+\mathrm{LambertW}\Bigg(\frac{u^2-v^2}{e}\Bigg) \Biggr] \tag{13}$$
Użycie w tym problemie funkcji $(13)$ jest bardziej precyzyjny (dla $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}$$
Dlatego całka $(12)$ staje się ostatecznie:
$$ 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}$$
Więc POTRZEBUJEMY obliczyć całkę $(15)$, a to jest zadanie numeryczne. Krótko mówiąc, obliczamy (w jakiś sposób) całkę$(15)$, a następnie wykreślamy całą powierzchnię 3D:
$$ \textbf{X} = [r(u)cos(\phi), r(u)sin(\phi), z(u)] \tag{16}$$
II.2) My NIntegrate Obliczanie za ListPlot
Zrobiłem więc numeryczną integrację przy użyciu NIntegrate, ale po prostu nie mogę go użyć jako pliku $z[u]$funkcjonować! Spójrz:
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}]
Ten kod w rzeczywistości oblicza całkę numerycznie, ale nie mogę jej użyć w $\mathrm{ParametricPlot3D}$.
CZĘŚĆ III) Niektóre już wykonane osadzenia i sugestie
III.1) Mój starszy kod na podstawie referencji $[4]$
W rzeczywistości użytkownik $[4]$„rozwiązały” problem. Dostosowałem trochę jego kod:
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}]
Ale on rozwiązuje równanie różniczkowe, chcę użyć obliczenia całkowego!
III.2) GIF Hamiltona z dynamicznym osadzaniem
Ten facet Hamilton osiągnął najważniejszy wątek, który chcę zrobić, w rzeczywistości chcę odtworzyć jego dynamiczną fabułę, tj. To moje pytanie i wszystkie moje wątpliwości istnieją tylko po to, aby odtworzyć jego fabułę. Możesz przyjrzeć się dynamicznemu gardzieli tunelu czasoprzestrzennego w następujący sposób:
https://jila.colorado.edu/~ajsh/bh/schww_gif.html
III.3) Porada mojego profesora
Mój profesor powiedział mi interesujące możliwe rozwiązanie:
Może możesz spróbować rozwiązać całkę liczbową dla różnych wartości $u$i zdobądź kilka punktów tego typu $(u, z)$, a następnie możesz na przykład interpolować te punkty, aby uzyskać płynną funkcję $z = z (u)$i użyj tej funkcji w $\mathrm{ParametricPlot3D}$. Spróbuj i zobacz, czy to działa.
Niby racja, ale po prostu nie wiem jak tłumaczyć dostać kilka punktów tego typu$(u, z)$, a następnie możesz na przykład interpolować te punkty, aby uzyskać płynną funkcję $z = z (u)$ do kodu Mathematica.
CZĘŚĆ IV) Moje wątpliwości
Tak więc moja całka numeryczna w sekcji II.2 wydaje się być poprawna, dlatego jest tylko kwestią faktów, jak mogę obrócić tę krzywą. Ale sposobu, w jaki napisałem całość, nie mogę użyć$\mathrm{RevolutionPlot3D}$więc mam wątpliwości:
Jak mogę używać $\mathrm{RevolutionPlot3D}$ w moim kodzie II.2 ?
$$ * * * $$
$[1]$ Osadzenia i ewolucja w czasie tunelu czasoprzestrzennego Schwarzschilda -https://arxiv.org/abs/1107.4871
$[2]$ Gravitation - Misner, Thorne, Wheeler Strony 612 do 615
$[3]$ Dziury czasoprzestrzenne i ich wykorzystanie do podróży międzygwiezdnych: narzędzie do nauczania ogólnej teorii względności -https://aapt.scitation.org/doi/10.1119/1.15620
$[4]$ Schemat osadzania tunelu czasoprzestrzennego
Odpowiedzi
Jest tak długi post, ale odpowiedź jest bardzo krótka. W pierwszym kroku definiujemy 3 funkcje:
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.}]]
A potem wizualizujemy tunel czasoprzestrzenny (to wymaga czasu):
Table[wh[x], {x, {-1 + 10^-5, -.5, 0.,
1. - 10^-5 }}] // AbsoluteTiming