Визуализация геометрии ОТО на Python: черная дыра, эргосфера и фотонная сфера в разных метриках

Прокомментировать Просмотры: 0

В рамках данного материала мы зайземся математическим моделированием и трехмерной визуализацией черных дыр, а также выпишем фундаментальные уравнения, определяющие их поведение.

Фундаментальной основой выступают уравнения гравитационного поля Эйнштейна, принадлежащие общей теории относительности (Источник [1]):

Визуализация геометрии ОТО на Python: черная дыра, эргосфера и фотонная сфера в разных метриках

Где:

R_{\mu\nu}

  • ​ — тензор Риччи,

  • R — скалярная кривизна пространства,

g_{\mu\nu}

  • ​ — метрический тензор,

  • Λ — космологическая постоянная,

T_{\mu\nu}

  • ​ — тензор энергии‑импульса материи и полей,

  • G, c — гравитационная постоянная Ньютона и скорость света соответственно.

Точные аналитические решения этих уравнений (Источник [2]), учитывающие определенные симметрии, носят название метрик. Рассмотрим главные из них:

1) Метрика Шварцшильда в стандартной системе координат (описывает стационарную сферически-симметричную черную дыру, лишенную электрического заряда и вращательного момента) (Источник [3]):

ds^2 = -\left(1 - \frac{r_s}{r}\right) c^2 dt^2 + \left(1 - \frac{r_s}{r}\right)^{-1} dr^2 + r^2 \left(d\theta^2 + \sin^2\theta\, d\phi^2\right)

где

r_s = \frac{2GM}{c^2}

представляет собой гравитационный радиус (радиус горизонта событий).

Реализовав скрипт для визуализации,

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

Параметры

M = 1.0 # Масса чёрной дыры (в условных единицах) rs = 2 * M # Радиус Шварцшильда

Сетка координат

r = np.linspace(rs, 10, 200) theta = np.linspace(0, 2*np.pi, 200) R, Theta = np.meshgrid(r, theta)

Параболоид Фламма: z ~ sqrt(r - rs)

Это упрощённая модель для визуализации кривизны

Z = 2 * np.sqrt(R - rs)

Переход к декартовым координатам

X = R np.cos(Theta) Y = R np.sin(Theta)

Построение графика

fig = plt.figure(figsize=(8, 6)) ax = fig.add_subplot(111, projection='3d')

surf = ax.plot_surface(X, Y, Z, cmap='viridis', alpha=0.9, edgecolor="none")

Горизонт событий (окружность радиуса rs)

circle_theta = np.linspace(0, 2np.pi, 100) circle_x = rs np.cos(circle_theta) circle_y = rs * np.sin(circle_theta) circle_z = np.zeros_like(circle_x) ax.plot(circle_x, circle_y, circle_z, color="red", linewidth=3, label="Горизонт событий")

ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z (кривизна)') ax.set_title('Метрика Шварцшильда') ax.legend()

plt.tight_layout() plt.show()

мы получим следующие графики:

Метрика Шварцшильда
Метрика Шварцшильда
Искривление радиальной координаты
Искривление радиальной координаты

Сингулярность в данном случае является точечной.

2) Метрика Керра в координатах Бойера — Линдквиста (Источник [4]), описывающая вращающиеся черные дыры:

\begin{align}     ds^2 ={}& -\left(1 - \frac{2Mr}{\rho^2}\right) dt^2      - \frac{4Mar\sin^2\theta}{\rho^2} \, dt\, d\phi      + \frac{\rho^2}{\Delta} \, dr^2 \notag \\     &+ \rho^2 \, d\theta^2      + \left(r^2 + a^2 + \frac{2Ma^2r\sin^2\theta}{\rho^2}\right)\sin^2\theta \, d\phi^2, \end{align}

Где:

\rho^2 = r^2 + M^2a^2\cos^2\theta, \quad\Delta = r^2 - 2Mr + M^2a^2a = J/(Mc)

— удельный параметр вращения.

M и J — масса и собственный момент импульса объекта.

Радиус горизонта событий в этой геометрии рассчитывается так:

r_+ = M + \sqrt{M^2 - a^2}

А граница статической зоны (эргосферы) определяется выражением:

r_{\text{erg}}(\theta) = M + \sqrt{M^2 - a^2\cos^2\theta}

Код для построения этой модели на Python:

import numpy as np
import plotly.graph_objects as go

M = 1.0 a = 0.9 # почти экстремальная чёрная дыра

def r_erg_theta(theta): return M + np.sqrt(M2 - a2 * np.cos(theta)**2)

r_h = M + np.sqrt(M2 - a2)

theta = np.linspace(0, np.pi, 100) phi = np.linspace(0, 2*np.pi, 100) THETA, PHI = np.meshgrid(theta, phi)

Эргосфера в сферических координатах -> декартовы

r_e_grid = r_erg_theta(THETA) X_e = r_e_grid np.sin(THETA) np.cos(PHI) Y_e = r_e_grid np.sin(THETA) np.sin(PHI) Z_e = r_e_grid * np.cos(THETA)

Горизонт событий (сфера по r, но это не сфера в обычном смысле из-за координат)

r_h_grid = np.full_like(THETA, r_h) X_h = r_h_grid np.sin(THETA) np.cos(PHI) Y_h = r_h_grid np.sin(THETA) np.sin(PHI) Z_h = r_h_grid * np.cos(THETA)

Кольцевая сингулярность: r=0, theta=pi/2 (экваториальная плоскость)

R_ring = 0.05 # радиус кольца для визуализации (сингулярность формально нулевая) z_ring = 0 theta_ring = np.pi/2 x_ring = R_ring np.cos(phi) y_ring = R_ring np.sin(phi) z_ring_arr = np.zeros_like(x_ring)

fig = go.Figure()

Эргосфера

fig.add_trace(go.Surface( x=X_e, y=Y_e, z=Z_e, colorscale="Blues", opacity=0.6, showscale=False, name="Эргосфера" ))

Горизонт

fig.add_trace(go.Surface( x=X_h, y=Y_h, z=Z_h, colorscale="Greys", opacity=1.0, showscale=False, name="Горизонт событий" ))

Кольцо сингулярности

fig.add_trace(go.Scatter3d( x=x_ring, y=y_ring, z=z_ring_arr, mode="lines", line=dict(color="red", width=4), name="Кольцевая сингулярность" ))

fig.update_layout( title=f'Строение чёрной дыры (метрика Керра), a = {a}', scene=dict( xaxis_title="x", yaxis_title="y", zaxis_title="z", aspectmode="data" ), width=800, height=700 ) fig.show()

Итоговая визуализация:

Вращающаяся чёрная дыра.
Вращающаяся чёрная дыра.

Главными особенностями метрики Керра являются эргосфера (Источник[26]) — зона за пределами горизонта, где световые лучи вынужденно вращаются вслед за центральным объектом из-за эффекта увлечения инерциальных систем (Лензе — Тирринга), а также кольцевая сингулярность (Источник[27]), заменяющая собой точечный объект Шварцшильда.

3) Метрика Рейсснера — Нордстрёма (Источник [5]), описывающая незаряженную, но статичную или заряженную черную дыру:

ds^2 = -\left(1 - \frac{2M}{r} + \frac{Q^2}{r^2}\right)dt^2      + \left(1 - \frac{2M}{r} + \frac{Q^2}{r^2}\right)^{-1}dr^2      + r^2(d\theta^2+\sin^2\theta\,d\phi^2)

Здесь Q обозначает электрический заряд системы.

Проиллюстрируем влияние заряда на горизонты событий:

Горизонты заряженной чёрной дыры.
Горизонты заряженной чёрной дыры.

А также покажем деформацию радиальной координаты:

растяжение радиальной координаты
растяжение радиальной координаты

Программный код для генерации трехмерной модели такого объекта:

import numpy as np
import plotly.graph_objects as go

M = 1.0 Q_vals = [0.0, 0.5, 0.8, 0.95] # можно менять

theta = np.linspace(0, np.pi, 60) phi = np.linspace(0, 2*np.pi, 80) THETA, PHI = np.meshgrid(theta, phi)

fig = go.Figure()

for i, Q in enumerate(Q_vals): disc = M2 - Q2 if disc < 0: print(f"Q={Q:.2f}: голая сингулярность, горизонтов нет") continue r_plus = M + np.sqrt(disc) r_minus = M - np.sqrt(disc) if disc > 0 else None

# Внешний горизонт
X_out = r_plus * np.sin(THETA) * np.cos(PHI)
Y_out = r_plus * np.sin(THETA) * np.sin(PHI)
Z_out = r_plus * np.cos(THETA)

fig.add_trace(go.Surface(
    x=X_out, y=Y_out, z=Z_out,
    colorscale="Viridis",
    opacity=0.85,
    showscale=False,
    name=f'Q={Q:.2f}, r_+'
))

# Внутренний горизонт (если есть)
if r_minus is not None and r_minus > 0:
    X_in = r_minus * np.sin(THETA) * np.cos(PHI)
    Y_in = r_minus * np.sin(THETA) * np.sin(PHI)
    Z_in = r_minus * np.cos(THETA)

    fig.add_trace(go.Surface(
        x=X_in, y=Y_in, z=Z_in,
        colorscale="Plasma",
        opacity=0.9,
        showscale=False,
        name=f'Q={Q:.2f}, r_-'
    ))

fig.update_layout(
title=f'Горизонты чёрной дыры Рейсснера–Нордстрёма (M={M})',
scene=dict(
xaxis_title="x",
yaxis_title="y",
zaxis_title="z",
aspectmode="data"
),
width=800,
height=700
)
fig.show()

Результат выполнения кода:

Метрика Рейсснера-Нордстрёма.
Метрика Рейсснера‑Нордстрёма.

В данном случае эргосфера отсутствует, так как она свойственна исключительно вращающимся конфигурациям.

При этом возникают две раздельные поверхности горизонтов — внешний и внутренний, что отчетливо видно на иллюстрации.

4) Метрика Керра — Ньюмана в координатах Бойера — Линдквиста (Источник [6]), описывающая одновременно вращающуюся и заряженную черную дыру:

\begin{align}     ds^2 ={}& -\left(1 - \frac{2Mr - Q^2}{\rho^2}\right) dt^2      - \frac{2(2Mr - Q^2)a\sin^2\theta}{\rho^2} \, dt\, d\phi      + \frac{\rho^2}{\Delta} \, dr^2 \notag \\     &+ \rho^2 \, d\theta^2      + \left(r^2 + a^2 + \frac{(2Mr - Q^2)a^2\sin^2\theta}{\rho^2}\right)\sin^2\theta \, d\phi^2, \end{align}

Где обозначения:

\rho^2 = r^2 + a^2\cos^2\theta, \quad \Delta = r^2 - 2Mr + a^2 + Q^2.

представляют собой наиболее универсальное стационарное решение уравнений Эйнштейна, геометрия которого задается тремя физическими величинами: M, a, Q.

Рассмотрим взаимное расположение горизонтов и эргосферы:

Метрика Керра-Ньюмана
Метрика Керра‑Ньюмана

Скрипт для построения модели Керра — Ньюмана:

import numpy as np
import plotly.graph_objects as go

M = 1.0 a = 0.7 Q = 0.4

theta_vals = np.linspace(0, np.pi, 60) phi_vals = np.linspace(0, 2*np.pi, 80) THETA, PHI = np.meshgrid(theta_vals, phi_vals)

Горизонт: r = r_plus (не зависит от theta)

disc = M2 - a2 - Q**2 if disc < 0: raise ValueError("Параметры дают голую сингулярность") r_plus = M + np.sqrt(disc)

X_h = r_plus np.sin(THETA) np.cos(PHI) Y_h = r_plus np.sin(THETA) np.sin(PHI) Z_h = r_plus * np.cos(THETA)

Эргосфера: r_erg(theta) = M + sqrt(M^2 - a^2*cos^2(theta) - Q^2)

term_erg = M2 - (a2)*(np.cos(THETA)2) - Q2 mask = term_erg >= 0 r_erg_grid = np.zeros_like(THETA) r_erg_grid[mask] = M + np.sqrt(term_erg[mask])

X_e = r_erg_grid np.sin(THETA) np.cos(PHI) Y_e = r_erg_grid np.sin(THETA) np.sin(PHI) Z_e = r_erg_grid * np.cos(THETA)

fig = go.Figure()

Горизонт

fig.add_trace(go.Surface( x=X_h, y=Y_h, z=Z_h, colorscale="Greys", opacity=1.0, showscale=False, name="Горизонт событий" ))

Эргосфера

fig.add_trace(go.Surface( x=X_e, y=Y_e, z=Z_e, colorscale="Viridis", opacity=0.6, showscale=False, name="Эргосфера" ))

fig.update_layout( title=f'Эргосфера и горизонт в метрике Керра–Ньюмана (M={M}, a={a}, Q={Q})', scene=dict( xaxis_title="x", yaxis_title="y", zaxis_title="z", aspectmode="data" ), width=800, height=700 ) fig.show()

Итоговая трехмерная сцена:

Черная дыра в метрике Керра-Ньюмана
Черная дыра в метрике Керра‑Ньюмана

Следует учитывать, что реальные астрофизические объекты вряд ли обладают заметным электрическим зарядом из-за быстрого процесса его нейтрализации окружающей плазмой. Тем не менее модели Керра — Ньюмана и Рейсснера — Нордстрёма имеют фундаментальное теоретическое значение как предельные случаи и удобный полигон для тестирования вычислительных методов.

Почти во всех рассмотренных метриках присутствует так называемая фотонная сфера (Источник[28]) — область пространства, где возможно существование круговых световых орбит (нулевых геодезических), вдоль которых фотоны движутся по замкнутым кольцевым траекториям. Это происходит в точках, где эффективный потенциал для безмассовых частиц достигает экстремума, хотя сама подобная орбита является нестабильной.

Таким образом, в рамках данной работы была выполнена компьютерная визуализация геометрий черных дыр для четырех базовых метрик, продемонстрированы их ключевые различия и построены наглядные графики.

Материал носит ознакомительный и демонстрационный характер.

Литература:

  1. https://ru.wikipedia.org/wiki/Уравнения_Эйнштейна

  2. https://ru.wikipedia.org/wiki/Решения_уравнений_Эйнштейна

  3. https://ru.wikipedia.org/wiki/Метрика_Шварцшильда

  4. https://translated.turbopages.org/proxy_u/en‑ru.ru.ccbd0af6-6a67b04a-35689e94-74722d776562/https/en.wikipedia.org/wiki/Kerr_metric

  5. https://en.wikipedia.org/wiki/Reissner‑Nordström_metric

  6. https://en.wikipedia.org/wiki/Kerr‑Newman_metric

  7. https://bigenc.ru/wiki/Чёрная_дыра_Райсснера_‑_Нордстрёма

  8. С. А. Пастон, А. А. Шейкин «Глобальное вложение метрики Рейсснера‑Нордстрёма в плоское окружающее пространство» (SIGMA, 2014, № 10, 003).

  9. М. Джемри «Деформация термодинамики АдС чёрной дыры Рейсснера‑Нордстрёма, порождённая поправками Данкла» («Теоретическая и математическая физика», 2026, т. 227, № 1, с. 188–205).

  10. https://cyberleninka.ru/article/n/entropiya‑chernoy‑dyry‑v‑modeli‑reysnera‑nordstryoma‑de‑sittera

  11. Зельдович Я. Б., Новиков И. Д. «Теория тяготения и эволюция звёзд»

  12. https://cyberleninka.ru/article/n/uravneniya‑eynshteyna‑i‑ego‑svoystva

  13. https://cyberleninka.ru/article/n/o‑geometricheskoy‑klassifikatsii‑uravneniy‑eynshteyna

  14. С. Чандрасекар «Математическая теория чёрных дыр» (в 2 томах, перевод В. А. Березина, под ред. Д. А. Гальцова, «Мир», 1986).

  15. А. М. Баранов «О метрике Керра — Ньюмена» («Пространство, время и фундаментальные взаимодействия», 2021, № 2, с. 42–47).

  16. В. П. Фролов «Решения типа Керра — Ньюмена — Унти — Тамбурино уравнений Эйнштейна с космологическим членом» («Теоретическая и математическая физика», 1974, т. 21, № 2, с. 213–223).

  17. А. Ф. Захаров «Тени и круговые фотонные орбиты: рассмотрение некоторых случаев обобщений чёрных дыр Керра — Ньюмена» («Письма в ЭЧАЯ», 2025).

  18. В. П. Фролов, И. Д. Новиков «Чёрные дыры во Вселенной» (обзорные лекции/статьи, часто встречаются в сборниках).

  19. https://archive.org/details/arxiv‑hep‑th0112237

  20. https://arxiv.org/pdf/1408.3334

  21. https://en.wikipedia.org/wiki/Geodesics_in_general_relativity

  22. С. О. Алексеев, Е. А. Памятных, А. В. Урсулов «Общая теория относительности. Введение. Современное развитие и приложения» (2022).

  23. С. Хокинг, Дж. Эллис «Крупномасштабная структура пространства‑времени».

  24. Eva Hackmann “Geodesic equations in General Relativity: Motion in black hole space‑times with and without cosmological constant”

  25. https://www.dissercat.com/content/dvizhenie‑chastits‑vblizi‑chernykh‑dyr

  26. https://ru.wikipedia.org/wiki/Эргосфера

  27. https://ru.wikipedia.org/wiki/Кольцеобразная_сингулярность

  28. https://en.wikipedia.org/wiki/Photon_sphere

 

Источник

Поделиться:

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов