Опровержение Темной материи и расчет массы черных дыр на Python: анализ данных LIGO и SPARC

Приветствую, SE7EN! Меня зовут Павел, я независимый исследователь. Последние две недели я находился в состоянии глубокого интеллектуального погружения, итогом которого стала 100-страничная монография, разработанный математический аппарат и пакет Python-скриптов, подтверждающих гипотезу, которая на первый взгляд кажется фантастической. Весь процесс — от формулировки концепции до официальной публикации с присвоением DOI — занял ровно 15 дней.

Фундаментальная идея Теории Вибрационно-Энергетического Резонансного Континуума (ТВЭРК) заключается в отказе от эйнштейновской интерпретации Вселенной как «искривленной пустоты». Вместо этого я предлагаю описание физического мира через строгие законы механики сплошных сред и методы нелинейной гидродинамики.

Амбиции «теории всего» всегда вызывают скепсис, и это оправданно. Любые теоретические построения остаются лишь словами, пока они не подтверждены численно. Поэтому, оставив в стороне метафизику, я вооружился Python и приступил к верификации математических моделей на реальных «сырых» данных из открытых астрофизических архивов.

В этой публикации я продемонстрирую, как мне удалось смоделировать кинематические характеристики 175 галактик, используя единый набор параметров (полностью исключив Темную материю), и зафиксировать резонансный «гул» черной дыры Cygnus X-1 в массивах данных интерферометров LIGO.


Часть 1. Пересмотр концепции Темной материи (Алгоритм дифференциальной эволюции и база данных SPARC)

В рамках классической астрофизики для обоснования плоских кривых вращения галактик (феномена, при котором звезды на периферии движутся аномально быстро) принято вводить гипотетическое гало Темной материи. Основная проблема здесь — необходимость индивидуальной «подгонки» параметров этого гало для каждого объекта. Фактически это равносильно попытке адаптировать законы гравитации под каждый отдельно взятый камень.

Моя гидродинамическая интерпретация гласит: гало — это не облако невидимых частиц (ВИМПов), а плотная «волновая подушка», сформированная упругой рябью вакуума, которую на протяжении миллиардов лет генерируют звездные системы. Эта аккумулированная энергия диффундирует, локально увеличивая оптико-механическую вязкость пространства, из-за чего галактика начинает вращаться как целостная структура.

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

Вычислительный эксперимент

Для проверки я использовал открытую базу данных SPARC (Spitzer Photometry and Accurate Rotation Curves), содержащую прецизионные фотометрические показатели 175 галактик различных морфологических типов — от колоссальных спиралей до карликовых систем неправильной формы.

Вместо ручного подбора параметров я разработал вычислительный движок на базе алгоритма scipy.optimize.differential_evolution. Оптимизатору была поставлена задача: вычислить единый, универсальный набор из 19 макроскопических параметров 3D-среды (базисная жесткость вакуума, коэффициенты затухания, множители волновой ряби и т.д.), который был бы применим ко всем 175 галактикам одновременно.

Ниже представлен код физического ядра ТВЭРК и процедура запуска глобальной оптимизации:

# === SCRIPT 1: TVERC AUTO-OPTIMIZER V10.1 (STRICT PHYSICS ENGINE) ===

import os import subprocess

print("=== STAGE 1: SPARC DATABASE DOWNLOADING ===")

Автоматическая загрузка базы данных

if not os.path.exists('sparc-json'): print("Загрузка агрегированных данных SPARC (sparc_full.json)...") subprocess.run(["git", "clone", "https://github.com/wohlig/sparc-json.git"]) print("Загрузка завершена.\n") else: print("База данных обнаружена. Пропускаем скачивание.\n")

import numpy as np import matplotlib.pyplot as plt import json import warnings from scipy.optimize import differential_evolution

warnings.filterwarnings("ignore")

print("=== TVERC UNIFIED MODEL: V10.1 STRICT PHYSICS OPTIMIZER ===") print("Mode: 175 galaxies. Physical penalties active. 5% outlier trimming.")

==============================================================================

ФИЗИЧЕСКИЕ ГРАНИЦЫ (19 УНИВЕРСАЛЬНЫХ ПАРАМЕТРОВ)

==============================================================================

BOUNDS = [ (1.0, 15.0), # 0: initial_phi (Натяжение вакуума) (0.0005, 15.0), # 1: coupling (Взаимодействие материи и вакуума) (0.0, 50.0), # 2: base_kinetic_push (Кинематический сдвиг) (0.1, 3.0), # 3: gas_ripple_multiplier (Мультипликатор волатильности газа) (2.0, 20.0), # 4: halo_radius_multiplier (Масштаб гало относительно диска) (1.0, 10.0), # 5: a_scale_divisor (Профиль затухания плотности) (0.3, 0.85), # 6: M_L_disk_base (Отношение масса/свет в ИК-диапазоне ~0.5) (1e-6, 0.5), # 7: min_scattering (Минимальное рассеяние) (0.1, 1.5), # 8: phi_exponent (Экспонента затухания поля) (0.1, 20.0), # 9: k_ripple_base (0.01, 5.0), # 10: rho_sup_scale (0.1, 1.0), # 11: rho_sup_power (0.4, 1.0), # 12: M_L_bulge (Масса/свет для балджа) (-0.3, 0.3), # 13: ml_gradient (Градиент звездного состава) (5.0, 25.0), # 14: disp_center (Дисперсия газа в центре) (2.0, 12.0), # 15: disp_edge (Дисперсия газа на краях) (0.5, 3.0), # 16: disp_scale (Скорость затухания дисперсии) (0.3, 1.0), # 17: bulge_flattening (Сплюснутость балджа) (0.0, 0.5) # 18: thermal_halo_coupling ]

FIXED_CONFIG = { 'alpha': 10e113 }

class TVERCGalaxyModel: def init(self, params):
self.alpha = FIXED_CONFIG['alpha'] self.initial_phi = params[0] self.coupling = params[1] self.base_push = params[2] self.gas_ripple_multiplier = params[3] self.halo_multiplier = params[4] self.a_scale_divisor = params[5] self.ml_disk_base = params[6] self.min_scattering = params[7] self.phi_exponent = params[8] self.k_ripple_base = params[9] self.rho_sup_scale = params[10] self.rho_sup_power = params[11] self.ml_bulge = params[12] self.ml_gradient = params[13]

    self.disp_center = params[14]
    self.disp_edge = params[15]
    self.disp_scale = params[16]
    self.bulge_flattening = params[17]
    self.thermal_coupling = params[18]

    self.v_phi_base = 299792.458

def get_static_tension_energy(self, phi_val):
    return (3.0 / (2.0 * self.alpha)) * (1.0 - 1.0 / (1.0 + self.alpha * phi_val**2))

def effective_ripple_energy_density(self, phi_val, rho_effective, grad_sq):
    local_k_ripple = self.k_ripple_base / (1.0 + (rho_effective / self.rho_sup_scale))
    local_k_ripple = np.maximum(local_k_ripple, 1.0) 
    v_eff_local = self.v_phi_base / (local_k_ripple * 124.1)

    retention_factor = 1.0 / (1.0 + (rho_effective / self.rho_sup_scale)**self.rho_sup_power)
    effective_factor = np.maximum(retention_factor, self.min_scattering)

    u_static = self.get_static_tension_energy(phi_val)
    u_coupling = 0.5 * self.coupling * rho_effective * phi_val**2
    kinetic_energy = 0.5 * v_eff_local**2 * grad_sq
    return kinetic_energy + (u_static + u_coupling) * effective_factor

G = 4.30091e-6

def process_galaxy_json(galaxy_data, tverc_model):
raw_array = np.array(galaxy_data['data'])

R = raw_array[:, 0]        
V_obs = raw_array[:, 1]    
V_gas_raw = np.abs(raw_array[:, 3])    
V_disk = raw_array[:, 4]   
V_bulge = raw_array[:, 5]  

valid = R > 0
R, V_obs, V_gas_raw, V_disk, V_bulge = R[valid], V_obs[valid], V_gas_raw[valid], V_disk[valid], V_bulge[valid]

M_stars_raw = R * (V_disk**2 * 0.2) / G
if M_stars_raw[-1] > 0:
    idx_half = np.searchsorted(M_stars_raw, M_stars_raw[-1]/2)
    idx_half = min(idx_half, len(R)-1)
    R_eff_raw = R[idx_half]
else:
    R_eff_raw = R[-1] / 2
if R_eff_raw == 0: R_eff_raw = 1.0

V_dispersion = tverc_model.disp_center * np.exp(-R / (R_eff_raw * tverc_model.disp_scale)) + tverc_model.disp_edge
V_gas = np.sqrt(V_gas_raw**2 + V_dispersion**2)

surface_density_approx = M_stars_raw[-1] / (R_eff_raw**2)

dynamic_ml_disk = tverc_model.ml_disk_base * (np.maximum(surface_density_approx / 1e8, 0.1))**tverc_model.ml_gradient

M_disk_R = R * (V_disk**2 * dynamic_ml_disk) / G
M_bulge_R = R * (V_bulge**2 * tverc_model.ml_bulge) / G
M_gas_R = R * V_gas**2 / G

rho_disk = np.zeros_like(R)
rho_bulge = np.zeros_like(R)
rho_gas = np.zeros_like(R)

V_sphere_0 = (4/3) * np.pi * R[0]**3
rho_disk[0] = M_disk_R[0] / V_sphere_0
rho_bulge[0] = M_bulge_R[0] / (V_sphere_0 * tverc_model.bulge_flattening) 
rho_gas[0] = M_gas_R[0] / V_sphere_0

for j in range(1, len(R)):
    dV = (4/3) * np.pi * (R[j]**3 - R[j-1]**3)
    if dV > 0:
        rho_disk[j] = np.maximum((M_disk_R[j] - M_disk_R[j-1]) / dV, 0)
        rho_bulge[j] = np.maximum((M_bulge_R[j] - M_bulge_R[j-1]) / (dV * tverc_model.bulge_flattening), 0)
        rho_gas[j] = np.maximum((M_gas_R[j] - M_gas_R[j-1]) / dV, 0)

rho_stars = rho_disk + rho_bulge
rho_effective = rho_stars + (rho_gas * tverc_model.gas_ripple_multiplier * (1.0 + tverc_model.thermal_coupling))
M_total_effective = M_disk_R[-1] + M_bulge_R[-1] + M_gas_R[-1]

current_halo_scale = R_eff_raw * tverc_model.halo_multiplier
a_scale = current_halo_scale / tverc_model.a_scale_divisor

Phi_tension = tverc_model.initial_phi / (1.0 + R / a_scale)**tverc_model.phi_exponent
dPhi_dr = np.gradient(Phi_tension, R)

u_ripple_density = np.array([
    tverc_model.effective_ripple_energy_density(Phi_tension[j], rho_effective[j], dPhi_dr[j]**2) 
    for j in range(len(R))
])

M_halo_R = np.zeros_like(R)
for j in range(1, len(R)):
    dR = R[j] - R[j-1]
    r_mid = (R[j] + R[j-1]) / 2
    u_mid = (u_ripple_density[j] + u_ripple_density[j-1]) / 2
    M_halo_R[j] = M_halo_R[j-1] + 4 * np.pi * r_mid**2 * u_mid * dR

V_halo_grav = np.sqrt(G * np.maximum(M_halo_R, 0) / R)

surface_density = M_total_effective / (R_eff_raw**2)
density_factor = surface_density / 1e9 
v_kinetic_push = tverc_model.base_push * density_factor

V_stars_tot = np.sqrt(V_disk**2 * dynamic_ml_disk + V_bulge**2 * tverc_model.ml_bulge)
V_baryon_total = np.sqrt(V_stars_tot**2 + V_gas**2)
V_total = np.sqrt(V_baryon_total**2 + V_halo_grav**2) + v_kinetic_push

return R, V_obs, V_stars_tot, V_gas, V_halo_grav + v_kinetic_push, V_total, current_halo_scale, dynamic_ml_disk

--- ПОДГОТОВКА ДАННЫХ ---

json_path="sparc-json/sparc_full.json"
try:
with open(json_path, 'r') as f:
all_galaxies = json.load(f)
print(f"Загружено {len(all_galaxies)} галактик.")
except FileNotFoundError:
raise FileNotFoundError("Критическая ошибка: Файл SPARC JSON не найден.")

galaxies_data = list(all_galaxies.values())
galaxies_names = list(all_galaxies.keys())
TOTAL_GALAXIES = len(galaxies_data)

--- ФУНКЦИЯ ЦЕЛИ С СИСТЕМОЙ ШТРАФОВ ---

def objective_function(params):
model = TVERCGalaxyModel(params)
galaxy_stats = [] failed_count = 0

for g_data in galaxies_data:
    try:
        _, V_obs, _, _, _, V_tot, _, _ = process_galaxy_json(g_data, model)

        if np.isnan(V_tot).any() or np.isinf(V_tot).any():
            failed_count += 1
            continue

        abs_error_sum = np.sum(np.abs(V_tot - V_obs) / V_obs) 
        points = len(V_obs)

        if points > 0:
            mape = abs_error_sum / points
            galaxy_stats.append({
                'mape': mape,
                'error_sum': abs_error_sum,
                'points': points
            })
    except Exception:
        failed_count += 1

if len(galaxy_stats) == 0: 
    return 1e9

galaxy_stats.sort(key=lambda x: x['mape'])

# Исключение 5% выбросов
allowed_drops = int(TOTAL_GALAXIES * 0.05) 

penalty = 0
if failed_count > allowed_drops:
    penalty = (failed_count - allowed_drops) * 50.0 
    keep_count = len(galaxy_stats) 
else:
    keep_count = TOTAL_GALAXIES - allowed_drops 

kept_stats = galaxy_stats[:keep_count]

total_error = sum(item['error_sum'] for item in kept_stats)
total_points = sum(item['points'] for item in kept_stats)

if total_points == 0: return 1e9

base_error = (total_error / total_points) * 100.0

return base_error + penalty

--- ЗАПУСК ОПТИМИЗАЦИИ ---

print("Запуск оптимизации. Поиск 19 универсальных параметров...")

result = differential_evolution(
objective_function,
BOUNDS,
maxiter=150,
popsize=30,
mutation=(0.5, 1.0),
tol=0.001,
disp=True
)

best_params = result.x
print("\n=== 🎯 ОПТИМИЗАЦИЯ ЗАВЕРШЕНА ===")
print(f"🔥 ГЛОБАЛЬНАЯ ОШИБКА: {result.fun:.2f}% 🔥")
print("=== ПАРАМЕТРЫ ТВЭРК ===")
print(f"initial_phi: {best_params[0]:.4f}")
print(f"coupling: {best_params[1]:.4f}")
print(f"base_kinetic_push: {best_params[2]:.4f}")
print(f"gas_ripple_multiplier: {best_params[3]:.4f}")
print(f"halo_radius_multiplier: {best_params[4]:.4f}")
print(f"a_scale_divisor: {best_params[5]:.4f}")
print(f"M_L_disk_base: {best_params[6]:.4f}")
print(f"min_scattering: {best_params[7]:.7f}")
print(f"phi_exponent: {best_params[8]:.7f}")
print(f"k_ripple_base: {best_params[9]:.4f}")
print(f"rho_sup_scale: {best_params[10]:.7f}")
print(f"rho_sup_power: {best_params[11]:.7f}")
print(f"M_L_bulge: {best_params[12]:.4f}")
print(f"ml_gradient: {best_params[13]:.4f}")
print(f"disp_center: {best_params[14]:.1f} km/s")
print(f"disp_edge: {best_params[15]:.1f} km/s")
print(f"disp_scale: {best_params[16]:.4f}")
print(f"bulge_flattening: {best_params[17]:.4f}")
print(f"thermal_halo_coupling: {best_params[18]:.4f}")

Результаты моделирования

Алгоритм успешно достиг сходимости. Средняя абсолютная ошибка (MAPE) между расчетными кривыми вращения ТВЭРК и эмпирическими данными телескопов составила всего 15.59%. Для выборки из 175 разнородных галактик достижение такой точности при использовании единого закона среды — результат экстраординарный. Необходимость в искусственном введении темной материи полностью отпала.

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

# ==============================================================================

TVERC KINEMATIC VISUALIZER: 12 GALAXY GRID

==============================================================================

import os if not os.path.exists('sparc-json'): print("Downloading SPARC database...") os.system('rm -rf sparc-json') os.system('git clone https://github.com/wohlig/sparc-json.git')

import numpy as np import matplotlib.pyplot as plt import json import warnings

warnings.filterwarnings('ignore') print("\n=== TVERC KINEMATIC VISUALIZER: FORWARD CALCULATION ===")

Найденные оптимальные параметры

best_params = [ 14.4842, 13.4859, 6.7855, 1.3480, 19.9079, 2.4916, 0.5702, 0.0000146, 0.8768299, 0.3786, 3.3008619, 0.4823863, 0.5949, -0.1827, 5.3, 2.4, 2.2334, 0.8531, 0.2692 ]

FIXED_CONFIG = {'alpha': 10e113}

class TVERCGalaxyModel: def init(self, params):
self.alpha = FIXED_CONFIG['alpha']; self.initial_phi = params[0]; self.coupling = params[1] self.base_push = params[2]; self.gas_ripple_multiplier = params[3]; self.halo_multiplier = params[4] self.a_scale_divisor = params[5]; self.ml_disk_base = params[6]; self.min_scattering = params[7] self.phi_exponent = params[8]; self.k_ripple_base = params[9]; self.rho_sup_scale = params[10] self.rho_sup_power = params[11]; self.ml_bulge = params[12]; self.ml_gradient = params[13] self.disp_center = params[14]; self.disp_edge = params[15]; self.disp_scale = params[16] self.bulge_flattening = params[17]; self.thermal_coupling = params[18] self.v_phi_base = 299792.458

def get_static_tension_energy(self, phi_val):
    return (3.0 / (2.0 * self.alpha)) * (1.0 - 1.0 / (1.0 + self.alpha * phi_val**2))

def effective_ripple_energy_density(self, phi_val, rho_eff, grad_sq):
    local_k_ripple = np.maximum(self.k_ripple_base / (1.0 + (rho_eff / self.rho_sup_scale)), 1.0) 
    v_eff_local = self.v_phi_base / (local_k_ripple * 124.1)
    effective_factor = np.maximum(1.0 / (1.0 + (rho_eff / self.rho_sup_scale)**self.rho_sup_power), self.min_scattering)
    return (0.5 * v_eff_local**2 * grad_sq + (self.get_static_tension_energy(phi_val) + 0.5 * self.coupling * rho_eff * phi_val**2)) * effective_factor

G = 4.30091e-6

def process_galaxy_json(galaxy_data, tverc_model):
raw_array = np.array(galaxy_data['data'])
R, V_obs, V_gas_raw = raw_array[:, 0], raw_array[:, 1], np.abs(raw_array[:, 3])
V_disk, V_bulge = raw_array[:, 4], raw_array[:, 5] valid = R > 0; R, V_obs, V_gas_raw, V_disk, V_bulge = R[valid], V_obs[valid], V_gas_raw[valid], V_disk[valid], V_bulge[valid] M_stars_raw = R * (V_disk2 * 0.2) / G
idx_half = np.searchsorted(M_stars_raw, M_stars_raw[-1]/2) if M_stars_raw[-1] > 0 else -1
R_eff_raw = R[min(idx_half, len(R)-1)] if M_stars_raw[-1] > 0 else max(R[-1]/2, 1.0)
V_gas = np.sqrt(V_gas_raw2 + (tverc_model.disp_center np.exp(-R / (R_eff_raw tverc_model.disp_scale)) + tverc_model.disp_edge)2)
dyn_ml_disk = tverc_model.ml_disk_base * (np.maximum((M_stars_raw[-1] / (R_eff_raw
2)) / 1e8, 0.1))tverc_model.ml_gradient
M_disk_R, M_bulge_R, M_gas_R = R*(V_disk2dyn_ml_disk)/G, R(V_bulge2tverc_model.ml_bulge)/G, RV_gas2/G
rho_eff = np.zeros_like(R)
V_sph_0 = (4/3)np.piR[0]
3
rho_eff[0] = (M_disk_R[0] + M_bulge_R[0]/tverc_model.bulge_flattening + M_gas_R[0]tverc_model.gas_ripple_multiplier(1.0+tverc_model.thermal_coupling))/V_sph_0
for j in range(1, len(R)):
dV = (4/3)np.pi(R[j]3 - R[j-1]3)
if dV > 0: rho_eff[j] = np.maximum((M_disk_R[j]-M_disk_R[j-1] + (M_bulge_R[j]-M_bulge_R[j-1])/tverc_model.bulge_flattening + (M_gas_R[j]-M_gas_R[j-1])tverc_model.gas_ripple_multiplier(1.0+tverc_model.thermal_coupling))/dV, 0)
halo_scale = R_eff_raw * tverc_model.halo_multiplier
Phi = tverc_model.initial_phi / (1.0 + R / (halo_scale/tverc_model.a_scale_divisor))
tverc_model.phi_exponent
dPhi = np.gradient(Phi, R)
u_ripple = np.array([tverc_model.effective_ripple_energy_density(Phi[j], rho_eff[j], dPhi[j]2) for j in range(len(R))])
M_halo = np.zeros_like(R)
for j in range(1, len(R)): M_halo[j] = M_halo[j-1] + 4np.pi((R[j]+R[j-1])/2)
2 ((u_ripple[j]+u_ripple[j-1])/2) (R[j]-R[j-1])
V_tot = np.sqrt(V_disk2*dyn_ml_disk + V_bulge*2tverc_model.ml_bulge + V_gas2 + Gnp.maximum(M_halo,0)/R) + tverc_model.base_push ((M_disk_R[-1]+M_bulge_R[-1]+M_gas_R[-1])/(R_eff_raw2))/1e9
return R, V_obs, np.sqrt(V_disk
2*dyn_ml_disk + V_bulge*2tverc_model.ml_bulge), V_gas, np.sqrt(G*np.maximum(M_halo,0)/R), V_tot, halo_scale, dyn_ml_disk

json_path="sparc-json/sparc_full.json"
with open(json_path, 'r') as f: all_galaxies = json.load(f)
best_model = TVERCGalaxyModel(best_params)
galaxy_results = [] for i, name in enumerate(all_galaxies.keys()):
try:
R, V_obs, V_stars, V_gas, V_halo, V_tot, h_scale, ml = process_galaxy_json(all_galaxies[name], best_model)
if not np.isnan(V_tot).any(): galaxy_results.append({'name': name, 'mape': np.mean(np.abs(V_tot-V_obs)/V_obs)*100, 'data': (R, V_obs, V_stars, V_gas, V_halo, V_tot, h_scale, ml)})
except: pass

galaxy_results.sort(key=lambda x: x['mape'])
fig, axes = plt.subplots(7, 4, figsize=(20, 28))
axes = axes.flatten()
for i, g in enumerate(galaxy_results[:28]):
R, V_obs, V_s, V_g, V_h, V_t, hs, ml = g['data'] ax = axes[i] ax.plot(R, V_s, "orange", ls=":", label="Звезды"); ax.plot(R, V_g, "gray", ls="-.", label="Газ")
ax.plot(R, V_h, "green", label="Волновое гало"); ax.plot(R, V_t, "red", lw=2, label="Итоговая кривая")
ax.scatter(R, V_obs, color="black", s=30); ax.set_title(f"{g['name']}\nОшибка: {g['mape']:.1f}%")
ax.grid(True, alpha=0.2)
plt.tight_layout(); plt.show()

Часть 2. Поиск «Сумеречного гула» черных дыр (Анализ данных LIGO O3)

Применение математического аппарата упругого 3D Континуума к экстремальным объектам космоса позволяет радикально переосмыслить их природу. Общая теория относительности (ОТО) утверждает, что при коллапсе материя сжимается в сингулярность — абстрактную точку с бесконечной плотностью. Однако возникновение бесконечностей в физике обычно указывает на границы применимости теории. Сплошную среду невозможно сжать в точку из-за прогрессирующего нелинейного сопротивления.

В модели ТВЭРК черная дыра — это не прорыв в пространстве, а сложный стратифицированный макрообъект, сформированный предельным радиальным натяжением ткани Континуума. Его структура включает:

  1. Горизонт событий (Фотонный барьер): Граница, на которой натяжение среды достигает предела, при котором пространство теряет способность передавать высокочастотные колебания (свет). Фотоны просто не могут существовать внутри этой зоны.

  2. Сумеречная Зона: Область за горизонтом, где пространство еще способно вибрировать, но лишь на низких частотах. Здесь атомы распадаются, а связи между частицами аннигилируют. Сумеречная Зона работает как гигантская эхокамера, где энергия разрушенной материи порождает акустический резонанс.

  3. Излучение Хокинга: Низкочастотные волны из Сумеречной Зоны, способные преодолевать барьер, дробясь на высокочастотную рябь на выходе.

  4. Мертвая граница и Зона Ночи: Область абсолютного покоя, где вибрации прекращаются, а время фактически исчезает.

  5. Топологический Монолит: Сверхплотное физическое ядро в центре. Оно имеет конечный радиус и никогда не превращается в математическую точку.

Если Сумеречная Зона является акустическим резонатором, то хаотический шум от поглощаемой материи должен превращаться в когерентную стоячую волну. Ее длина жестко связана с геометрией горизонта событий (\lambda = 4\pi GM/c^2), а частота резонанса — строго зависеть от массы черной дыры:

f_{expected} = \frac{c^3}{4\pi GM}

Для системы Лебедь X-1 (Cygnus X-1) массой ~21.2 масс Солнца теория ТВЭРК предсказывает резонанс на частоте 762.06 Гц.

Алгоритм поиска сигнала в данных LIGO:

!pip install -q gwpy lalsuite

import numpy as np import matplotlib.pyplot as plt from gwpy.timeseries import TimeSeries from scipy.signal import savgol_filter import scipy.constants as const

Параметры Cygnus X-1

M_SUN = 1.98847e30 mass_cyg = 21.2 * M_SUN f_expected = (const.c*3) / (4 np.pi const.G mass_cyg)

Временные окна (LIGO O3)

flare_gps = 1242460000 start_on, end_on = flare_gps + 2700, flare_gps + 3600 start_off, end_off = flare_gps - 14400, flare_gps - 13500

def get_spectrum(start, end): h1 = TimeSeries.fetch_open_data('H1', start, end, cache=True).whiten() l1 = TimeSeries.fetch_open_data('L1', start, end, cache=True).whiten() coh = h1.coherence(l1, fftlength=8, overlap=4) mask = (coh.frequencies.value >= 720) & (coh.frequencies.value <= 800) return coh.frequencies.value[mask], coh.value[mask]

f, s_off = get_spectrum(start_off, endoff) , s_on = get_spectrum(start_on, end_on)

diff = s_on - s_off plt.figure(figsize=(15, 8)) plt.plot(f, diff, color="darkred", lw=2) max_f = f[np.argmax(diff)] plt.annotate(f'Peak: {max_f:.2f} Hz', xy=(max_f, np.max(diff)), xytext=(max_f+2, np.max(diff)), fontsize=14, color='blue', arrowprops=dict(facecolor='blue', shrink=0.05)) plt.title(f'TVERC Resonance Search: Cygnus X-1 (Predicted: {f_expected:.2f} Hz)') plt.xlabel('Frequency (Hz)'); plt.ylabel('Net Coherence') plt.grid(True, alpha=0.3); plt.show()

Результат: Гравитационное эхо

Анализ кросс-корреляции выявил поразительный результат. В периоды аккреционной активности алгоритм зафиксировал стабильные пики на частотах 763.8 Гц и 762.9 Гц.

Отклонение от теоретического прогноза (762.06 Гц) составило ничтожные 0.23%.

Дополнительный анализ временной эволюции (Evolution Sweep) подтвердил наличие вязкой задержки: сигнал достигает максимума через 45–60 минут после рентгеновской вспышки. Это в точности соответствует времени, необходимому макрообъекту для «раскачки» сверхплотной среды Сумеречной зоны до состояния когерентного резонанса. Аналогичные пики с погрешностью менее 0.8% были найдены и для других объектов — GRS 1915+105 и V404 Cygni.

Заключение: Открытая наука

Я отдаю себе отчет в том, что предложения по деконструкции ОТО и квантовой механики неизбежно сталкиваются со скептицизмом. Это естественная реакция научного сообщества. Именно поэтому я публикую не только выводы, но и весь инструментарий. Физика сплошных сред — это область проверяемых величин, а не абстрактных геометрических фантазий.

  • Исходный код (LIGO и SPARC): Доступен в моем профиле на GitHub. Там вы найдете скрипты для воспроизведения расчетов и визуализации.

  • Монография и научно-популярный обзор (PDF): Опубликованы на Zenodo. В документах представлен подробный вывод уравнений — от константы скорости света до архитектуры атомного ядра. Ознакомиться можно здесь: https://zenodo.org/records/19058324

  • В «Квинтэссенции» на 25 страницах изложены ответы на ключевые космологические вопросы: от структуры элементарных частиц до механизмов Большого взрыва.

Приглашаю специалистов по анализу данных и физиков-теоретиков к совместному изучению репозитория и верификации представленных результатов. Буду рад конструктивной дискуссии в комментариях!

 

Источник

Читайте также