- PVSM.RU - https://www.pvsm.ru -
В этой статье мы напишем код для математического моделирования и компьютерной визуализации чёрных дыр, а также запишем ключевые уравнения, описывающие их.
Самое главное уравнение‑это уравнение поля Эйнштейна в общей теории относительности (Источник [1] [1]):
Где:
— тензор Риччи,
R — скалярная кривизна,
— метрический тензор,
Λ — космологическая постоянная,
— тензор энергии‑импульса (материя/поля),
G, c — гравитационная постоянная и скорость света соответственно.
Точные решения уравнения Эйнштейна (Источник [2] [2] ) в частных случаях при наложении симметрий называются метриками. Перечислим некоторые из них:
1) Метрика Шварцшильда в координатах Шварцшильда (статическая, сферически‑симметричная чёрная дыра, без заряда и вращения)(Источник [3] [3]):
где
Радиус Шварцшильда (радиус горизонта событий).
Написав код для визуализации,
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, 2*np.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] [4]) (для вращающейся чёрной дыры):
Где:
‑параметр вращения.
M, J‑ масса и момент импульса чёрной дыры.
В этой метрике радиус горизонта событий:
Радиус статической границы (эргосферы):
Напишем на 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(M**2 - a**2 * np.cos(theta)**2)
r_h = M + np.sqrt(M**2 - a**2)
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] [5])(область вне горизонта событий, где даже свет не может оставаться в покое относительно удалённого наблюдателя — эффект перетаскивания инерциальных систем, или Лензе — Тирринга) и кольцевая сингулярность (Источник[27] [6])(в отличие от точечной в метрике Шварцшильда).
3) Метрика Рейсснера‑Нордстрёма(Источник [5] [7]) (для заряжённой и не вращающейся чёрной дыры):
Где Q‑ заряд чёрной дыры.
Сначала покажем, как заряд влияет на горизонты событий:
Теперь покажем, как заряд влияет на радиальную координату:
Код для получения чёрной дыры в 3d в метрике Рейсснера‑Нордстрёма:
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 = M**2 - Q**2
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] [8])(для заряженной и вращающейся чёрной дыры):
Где:
является наиболее общим решением для стационарной чёрной дыры; её геометрия полностью определяется тремя параметрами: 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 = M**2 - a**2 - 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 = M**2 - (a**2)*(np.cos(THETA)**2) - Q**2
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] [9])— это поверхность (или набор орбит), где могут существовать круговые нулевые геодезические, то есть траектории света, замкнутые в виде окружностей. Условие: эффективный потенциал для фотонов имеет экстремум при некотором r, и при правильных начальных условиях фотон будет «висеть» на этой орбите (хотя она неустойчива).
Таким образом, в данной статье сделана компьютерная графическая визуализация чёрных дыр в четырёх различных метриках, показаны ключевые отличия, а также построены графики.
Статья носит чисто демонстрационный и иллюстративный характер.
Литература:
https://ru.wikipedia.org/wiki/Решения_уравнений_Эйнштейна [2]
https://bigenc.ru/wiki/Чёрная_дыра_Райсснера_‑_Нордстрёма [10]
С. А. Пастон, А. А. Шейкин «Глобальное вложение метрики Рейсснера‑Нордстрёма в плоское окружающее пространство» (SIGMA, 2014, № 10, 003).
М. Джемри «Деформация термодинамики АдС чёрной дыры Рейсснера‑Нордстрёма, порождённая поправками Данкла» («Теоретическая и математическая физика», 2026, т. 227, № 1, с. 188–205).
https://cyberleninka.ru/article/n/entropiya‑chernoy‑dyry‑v‑modeli‑reysnera‑nordstryoma‑de‑sittera [11]
Зельдович Я. Б., Новиков И. Д. «Теория тяготения и эволюция звёзд»
https://cyberleninka.ru/article/n/uravneniya‑eynshteyna‑i‑ego‑svoystva [12]
https://cyberleninka.ru/article/n/o‑geometricheskoy‑klassifikatsii‑uravneniy‑eynshteyna [13]
С. Чандрасекар «Математическая теория чёрных дыр» (в 2 томах, перевод В. А. Березина, под ред. Д. А. Гальцова, «Мир», 1986).
А. М. Баранов «О метрике Керра — Ньюмена» («Пространство, время и фундаментальные взаимодействия», 2021, № 2, с. 42–47).
В. П. Фролов «Решения типа Керра — Ньюмана — Унти — Тамбурино уравнений Эйнштейна с космологическим членом» («Теоретическая и математическая физика», 1974, т. 21, № 2, с. 213–223).
А. Ф. Захаров «Тени и круговые фотонные орбиты: рассмотрение некоторых случаев обобщений чёрных дыр Керра — Ньюмена» («Письма в ЭЧАЯ», 2025).
В. П. Фролов, И. Д. Новиков «Чёрные дыры во Вселенной» (обзорные лекции/статьи, часто встречаются в сборниках).
https://en.wikipedia.org/wiki/Geodesics_in_general_relativity [16]
С. О. Алексеев, Е. А. Памятных, А. В. Урсулов «Общая теория относительности. Введение. Современное развитие и приложения» (2022).
С. Хокинг, Дж. Эллис «Крупномасштабная структура пространства‑времени».
Eva Hackmann “Geodesic equations in General Relativity: Motion in black hole space‑times with and without cosmological constant”
https://www.dissercat.com/content/dvizhenie‑chastits‑vblizi‑chernykh‑dyr [17]
https://ru.wikipedia.org/wiki/Кольцеобразная_сингулярность [6]
Автор: Maximka200
Источник [18]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/astrofizika/456033
Ссылки в тексте:
[1] Источник [1]: https://ru.wikipedia.org/wiki/%D0%A3%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%AD%D0%B9%D0%BD%D1%88%D1%82%D0%B5%D0%B9%D0%BD%D0%B0
[2] Источник [2]: https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F_%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9_%D0%AD%D0%B9%D0%BD%D1%88%D1%82%D0%B5%D0%B9%D0%BD%D0%B0
[3] Источник [3]: https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D1%80%D0%B8%D0%BA%D0%B0_%D0%A8%D0%B2%D0%B0%D1%80%D1%86%D1%88%D0%B8%D0%BB%D1%8C%D0%B4%D0%B0
[4] Источник [4]: https://translated.turbopages.org/proxy_u/en-ru.ru.ccbd0af6-6a67b04a-35689e94-74722d776562/https/en.wikipedia.org/wiki/Kerr_metric
[5] Источник[26]: https://ru.wikipedia.org/wiki/%D0%AD%D1%80%D0%B3%D0%BE%D1%81%D1%84%D0%B5%D1%80%D0%B0
[6] Источник[27]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BB%D1%8C%D1%86%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D1%81%D1%82%D1%8C
[7] Источник [5]: https://en.wikipedia.org/wiki/Reissner%E2%80%93Nordstr%C3%B6m_metric
[8] Источник [6]: https://en.wikipedia.org/wiki/Kerr%E2%80%93Newman_metric
[9] Источник[28]: https://en.wikipedia.org/wiki/Photon_sphere
[10] https://bigenc.ru/wiki/Чёрная_дыра_Райсснера_‑_Нордстрёма: https://bigenc.ru/wiki/%D0%A7%D1%91%D1%80%D0%BD%D0%B0%D1%8F_%D0%B4%D1%8B%D1%80%D0%B0_%D0%A0%D0%B0%D0%B9%D1%81%D1%81%D0%BD%D0%B5%D1%80%D0%B0_%E2%80%93_%D0%9D%D0%BE%D1%80%D0%B4%D1%81%D1%82%D1%80%D1%91%D0%BC%D0%B0
[11] https://cyberleninka.ru/article/n/entropiya‑chernoy‑dyry‑v‑modeli‑reysnera‑nordstryoma‑de‑sittera: https://cyberleninka.ru/article/n/entropiya-chernoy-dyry-v-modeli-reysnera-nordstryoma-de-sittera
[12] https://cyberleninka.ru/article/n/uravneniya‑eynshteyna‑i‑ego‑svoystva: https://cyberleninka.ru/article/n/uravneniya-eynshteyna-i-ego-svoystva
[13] https://cyberleninka.ru/article/n/o‑geometricheskoy‑klassifikatsii‑uravneniy‑eynshteyna: https://cyberleninka.ru/article/n/o-geometricheskoy-klassifikatsii-uravneniy-eynshteyna
[14] https://archive.org/details/arxiv‑hep‑th0112237: https://archive.org/details/arxiv-hep-th0112237
[15] https://arxiv.org/pdf/1408.3334: https://arxiv.org/pdf/1408.3334
[16] https://en.wikipedia.org/wiki/Geodesics_in_general_relativity: https://en.wikipedia.org/wiki/Geodesics_in_general_relativity
[17] https://www.dissercat.com/content/dvizhenie‑chastits‑vblizi‑chernykh‑dyr: https://www.dissercat.com/content/dvizhenie-chastits-vblizi-chernykh-dyr
[18] Источник: https://habr.com/ru/articles/1063448/?utm_campaign=1063448&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.