Сомневаюсь в ParametricPlot3D, RevolutionPlot3D, ListPlots и NIntegrate: могу ли я создать «RevolutionListPlot3D»?
Прежде всего: этот вопрос лежит в контексте Поверхностей и вложений по дифференциальной геометрии. Точнее, в контексте координат Крускала и как построить трехмерную динамическую червоточину Шварцшильда$[1]$, $[2]$, $[3]$. Основной контекст приведен в ссылке$[1]$.
ЧАСТЬ I) Немного по физике и математике
I.1) "Ничто" о гравитации и черных дырах
Черные дыры - это решения уравнений поля Эйнштейна. Более точно, мы имеем главное (тензорное) уравнение:
$$\textbf{Ric} - \frac{1}{2}R\textbf{g} = \frac{8\pi G}{c^{4}} \textbf{T} \tag{1}$$
Решения уравнения $(1)$ задаются метрическими тензорами:
$$\textbf{g} = g_{\mu\nu} \textbf{dx}^{\mu} \otimes \textbf{dx}^{\nu} \tag{2}$$
В координатной диаграмме (где мы выполняем вычисления) мы можем выразить скалярную величину, называемую линейным элементом, которая точно является скалярным полем, когда метрический тензор действует на касательные векторные поля на многообразии.$\mathcal{M}$:
$$\textbf{g}(d\textbf{r},d\textbf{r}) = g_{\mu\nu}dx^{\mu}dx^{\nu} := ds^2\tag{3}$$
Таким образом, для данного метрического тензора на многообразии мы точечно характеризуем геометрию многообразия.
Важным фактом о тензорах является так называемая общая ковариация : физика не зависит от координат; явления природы не заботятся о координатах; уравнения физики не должны зависеть от координат; явления природы могут быть хорошо описаны с помощью декартовой системы координат и одинаково хорошо описаны с помощью любой криволинейной системы координат. Математическим объектом, фиксирующим этот факт, являются тензоры.
Следовательно, абстрактный объект (метрический тензор) не зависит от преобразований координат:
$$ \textbf{g'} = \textbf{g} \tag{4}$$
Но на уровне диаграмм координат их координаты меняются в такой форме, как:
$$ g'_{\mu\nu} = \frac{\partial x^{\alpha}}{\partial x'^{\mu}}\frac{\partial x^{\beta}}{\partial x^{\nu'}}g_{\alpha \beta}\tag{5}$$
Черная дыра Шварцшильда имеет следующий метрический тензор:
$$ 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}$$
Здесь мы можем легко увидеть координатную диаграмму: сферические координаты расширены до физики пространства-времени;
$$\mathrm{Coordinates} \implies (t,r,\theta,\phi) \tag{7}$$
Следовательно, мы имеем дело с четырехмерным пространством-временем. $\mathcal{M}$.
I.2) Процедура заглубления червоточины Шваршильда
Базовый контекст здесь таков: нам нужно представить это четырехмерное пространство-время. $(6)$в трехмерном евклидовом пространстве. Затем мы должны встроить поверхность в трехмерное пространство.
Затем мы «подавляем» два измерения, то есть фиксируем момент координатного времени. $t = T \in \mathbb{R}$ и координатный угол $\theta = \frac{\pi}{2}$(фактически этот угол дает нам геометрию «экваториальной плоскости»). Следовательно, дифференциалы равны нулю:$dt^{2} = dT^{2} = 0 $, $d\theta^{2} = d\frac{\pi}{2}^{2} = 0 $ а затем метрика станет:
$$ ds^{2} = \frac{1}{1-\frac{2GM}{c^{2}r}}dr^{2} + r^{2}d\phi^{2}\tag{8}$$
Следующий шаг - "сравнить" это $2D$ метрический тензор с цилиндрическим метрическим тензором:
$$ 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}$$
Затем мы говорим, что:
$$\Bigg[ 1+\Bigg(\frac{dz}{dr}\Bigg)^{2} \Bigg]dr^{2} = \frac{1}{1-\frac{2GM}{c^{2}r}}dr^{2} \tag{10}$$
Что, наконец, подразумевает:
$$ \frac{dz}{dr} = \frac{1}{\sqrt{1-\frac{2GM}{c^{2}r}}} - 1 \tag{11}$$
Мы можем интегрировать эту функцию и обнаружить саму функцию интереса здесь:
$$ z(r) = \pm\int^{r}_{r_{0}} \frac{1}{\sqrt{1-\frac{2GM}{c^{2}r}}} - 1 dr \tag{11}$$
Интегрирующее уравнение $(11)$ и используя функцию $\mathrm{RevolutionPlot3D}$ мы рисуем поверхность, похожую на червоточину
ЧАСТЬ II) Мои сомнения и какую математическую программу я хочу написать
II.1) Числовой интеграл вложения Краскала
Есть много чего скрыть, но физический факт таков: это горло червоточины не является чем-то «постоянным во времени». Я имею в виду, что в черных дырах Шварцшильда червоточина закрывается сразу после образования черной дыры, а затем с использованием других координат, В координатах Крускала-Секереса мы можем представить «динамическую червоточину» в «течении времени», т.е. для каждого значения «времени Краскала» мы имеем разные поверхности!
Затем координаты меняются на координаты Крускала-Секереса:
$$\mathrm{Coordinates'} \implies (v,u,\theta,\phi) \tag{12}$$
где $v$называются «краскальское время». Важно отметить, что это время не время наших часов.$t$это не время наших часов, а скорее они несут временную подпись .
На этой координатной диаграмме интеграл внедрения (например, $(11)$ ) становится:
$$ 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}$$
Так, $v_{0}$ постоянные времена Краскала, поэтому для каждого $v_{0}$ мы можем иметь интеграл на $u$! Также функции$r(u)$ на самом деле:
$$ r(u,v) =: 2m \Biggr[1+\mathrm{LambertW}\Bigg(\frac{u^2-v^2}{e}\Bigg) \Biggr] \tag{13}$$
Использование в этой задаче функции $(13)$ точнее (для $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}$$
Следовательно, интеграл $(12)$ становится наконец:
$$ 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}$$
Поэтому нам НУЖНО вычислить интеграл $(15)$, а это числовая задача. Короче, вычисляем (каким-то образом) интеграл$(15)$, а затем рисуем саму трехмерную поверхность:
$$ \textbf{X} = [r(u)cos(\phi), r(u)sin(\phi), z(u)] \tag{16}$$
II.2) Список моих вычислений NIntegrate
Итак, я провел числовую интеграцию с помощью NIntegrate, но я просто не могу использовать его как $z[u]$функция! Взглянуть:
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}]
Этот код фактически вычисляет интеграл численно, но я не могу использовать его в $\mathrm{ParametricPlot3D}$.
ЧАСТЬ III) Некоторые уже сделанные вставки и предложения
III.1) Мой старый код, основанный на ссылке $[4]$
Фактически пользователь $[4]$«решили» проблему. Я немного адаптировал его код:
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}]
Но он решает дифференциальное уравнение, я хочу использовать интегральный расчет!
III.2) Динамическое встраивание GIF Гамильтона
Этот парень Гамильтон достиг высочайшего сюжета, который я хочу сделать, на самом деле я хочу воспроизвести его динамичный сюжет, то есть этот мой вопрос и все мои сомнения существуют только для того, чтобы воспроизвести его сюжет. Вы можете взглянуть на динамическое горло червоточины следующим образом:
https://jila.colorado.edu/~ajsh/bh/schww_gif.html
III.3) Совет моего профессора
Мой профессор сказал мне интересное возможное решение:
Возможно, вы можете попробовать решить числовой интеграл для различных значений $u$, и получите несколько очков типа $(u, z)$, а затем вы можете, например, интерполировать эти точки, чтобы получить плавную функцию $z = z (u)$, и используйте эту функцию в $\mathrm{ParametricPlot3D}$. Попробуйте и посмотрите, работает ли это.
Вроде бы правильно, но я просто не умею переводить получаю несколько точек типа$(u, z)$, а затем вы можете, например, интерполировать эти точки, чтобы получить плавную функцию $z = z (u)$ в код Mathematica.
ЧАСТЬ IV) Мои сомнения
Итак, мое численное интегрирование в разделе II.2 кажется правильным, поэтому это просто вопрос о том, как я могу повернуть эту кривую. Но как я все написал, я не могу использовать$\mathrm{RevolutionPlot3D}$, поэтому я сомневаюсь:
Как я могу использовать $\mathrm{RevolutionPlot3D}$ в моем коде II.2 ?
$$ * * * $$
$[1]$ Вложения и временная эволюция червоточины Шварцшильда -https://arxiv.org/abs/1107.4871
$[2]$ Гравитация - Миснер, Торн, Уиллер, страницы с 612 по 615
$[3]$ Червоточины в пространстве - времени и их использование для межзвездного путешествия: инструмент для обучения общей теории относительности -https://aapt.scitation.org/doi/10.1119/1.15620
$[4]$ Схема внедрения червоточины
Ответы
Пост такой длинный, а ответ очень короткий. На первом этапе мы определяем 3 функции:
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.}]]
А потом визуализируем червоточину (на это нужно время):
Table[wh[x], {x, {-1 + 10^-5, -.5, 0.,
1. - 10^-5 }}] // AbsoluteTiming