Zurück zur Startseite

Python, SPARC und TVERK: Ein neues Modell gegen Dunkle Materie

Forschung mit Python und SPARC-Daten schlägt eine neue TVERK-Hypothese vor, die die Kinematik von 175 Galaxien ohne Dunkle Materie erklärt. Analyse und Code für Middle-/Senior-Entwickler.

Python und TVERK: Eine Alternative zur Dunklen Materie in der galaktischen Dynamik
Advertisement 728x90

Photonenwellen ersetzen Dunkle Materie: Python und SPARC revolutionieren Galaxienrotation

Das Dunkle-Materie-Problem beschäftigt Astrophysiker seit Jahrzehnten. Standardmodelle der galaktischen Dynamik benötigen unsichtbare Masse, um die unerwartet hohen Rotationsgeschwindigkeiten von Sternen in den äußeren Regionen von Galaxien zu erklären. Doch das Anpassen von Parametern für diese hypothetische Substanz bei jeder einzelnen Galaxie weckt Zweifel an ihrer grundlegenden Gültigkeit. Der unabhängige Forscher Pavel K. schlägt eine kühne Alternative vor: die Theorie des Vibrations-Energetischen Resonanz-Kontinuums (TVERC), die das Universum als Medium betrachtet, das strengen Gesetzen der Kontinuumsmechanik und nichtlinearer Hydrodynamik unterliegt. Um diese Idee zu testen, baute er ein Rechenexperiment mit Python und offenen astrophysikalischen Daten auf, das die Kinematik von 175 Galaxien modelliert – ganz ohne Dunkle Materie.

Das Dunkle-Materie-Rätsel und die TVERC-Alternative

Galaktische Modelle basieren auf der Gravitation sichtbarer Materie. Doch Beobachtungen zeigen, dass äußere Regionen viel schneller rotieren als vorhergesagt. Um die Daten zu passen, wurde Dunkle Materie postuliert – eine unsichtbare Substanz, die den Großteil der Masse des Universums ausmacht. Der Haken? Dunkle-Materie-Halo-Parameter müssen für jede Galaxie individuell angepasst werden, was auf Schwächen im Paradigma hindeutet und die Suche nach besseren Erklärungen anregt.

TVERC dreht den Spieß um. Statt Dunkle-Materie-Partikeln führt es ein dichtes „akustisches Polster“ aus elastischen Vakuumwellen ein. Sterne erzeugen diese Wellen über Milliarden Jahre und steigern lokal die opto-mechanische Viskosität des Raums. Die Galaxie rotiert als kohärente Einheit, ihre Kinematik folgt universellen, skalierbaren Gesetzen der Wellenenergie-Diffusion in diesem viskosen Medium. Keine galaxis-spezifischen Anpassungen mehr – nur ein einziges, physikbasiertes Modell für alle.

Google AdInline article slot

Rechtexperiment mit der SPARC-Datenbank

Zur Validierung von TVERC führte Pavel ein Rechenexperiment mit realen astrophysikalischen Daten durch. Er nutzte die offene SPARC-Datenbank (Spitzer Photometry & Accurate Rotation Curves), die präzise Photometrie und Rotationskurven für 175 Galaxien bietet – von massereichen Spiralen bis zu Zwergirregulären. Sie ist der Goldstandard für Galaxien-Dynamik-Studien.

Ziel: Ein einheitliches Set aus 19 makroskopischen 3D-Medium-Parametern finden, das alle 175 Galaxien gleichzeitig passt. Diese umfassen Vakuumsteifigkeit, Wellenenergie-Abfallgradienten, Wellenmultiplikatoren und mehr. Er meisterte diese Herausforderung mit scipy.optimize.differential_evolution aus SciPy – einem leistungsstarken globalen Optimierer für hochdimensionale Räume. Es minimierte die Abweichungen zwischen TVERC-vorhersagten Rotationskurven und Beobachtungen, unter Einhaltung physikalischer Realität durch strenge Grenzen.

Python-Implementierung: Optimierer und TVERC-Physikmodell

Python mit seinem Wissenschafts-Stack (numpy, scipy, matplotlib) war ideal. Der Prozess lädt SPARC bei Bedarf automatisch herunter, um Reproduzierbarkeit zu gewährleisten, und startet den Optimierer mit physikbeschränkten Grenzen für alle 19 Parameter. Diese halten Lösungen realistisch.

Google AdInline article slot

Hier ein Code-Snippet zur Optimierer-Einrichtung und Grenzen:

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

import os
import subprocess

print("=== STAGE 1: SPARC DATABASE DOWNLOADING ===")
# Auto-download SPARC safely
if not os.path.exists('sparc-json'):
    print("Downloading aggregated SPARC database (sparc_full.json)...")
    subprocess.run(["git", "clone", "https://github.com/wohlig/sparc-json.git'])
    print("Done! Database loaded.\n")
else:
    print("Database exists. Skipping download.\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.")

# ==============================================================================
# STRICT PHYSICAL BOUNDS (19 PARAMETERS)
# ==============================================================================
BOUNDS = [
    (1.0, 15.0),          # 0: initial_phi (Constrained by adequate vacuum tension)
    (0.0005, 15.0),       # 1: coupling (Matter-vacuum interaction)
    (0.0, 50.0),          # 2: base_kinetic_push (Kinematic offset max 50 km/s)
    (0.1, 3.0),           # 3: gas_ripple_multiplier (Gas volatility multiplier)
    (2.0, 20.0),          # 4: halo_radius_multiplier (Halo larger than disk by 2-20x)
    (1.0, 10.0),          # 5: a_scale_divisor (Density decay shape)
    (0.3, 0.85),          # 6: M_L_disk_base (PHYSICS: Disk M/L in IR band ~0.5)
    (1e-6, 0.5),          # 7: min_scattering 
    (0.1, 1.5),           # 8: phi_exponent (Field attenuation 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 (PHYSICS: Bulge has older stars, higher M/L)
    (-0.3, 0.3),          # 13: ml_gradient (Smooth stellar population gradient)
    (5.0, 25.0),          # 14: disp_center (Core gas dispersion 5-25 km/s)
    (2.0, 12.0),          # 15: disp_edge (Edge dispersion minimum ~2 km/s)
    (0.5, 3.0),           # 16: disp_scale (Dispersion decay rate)
    (0.3, 1.0),           # 17: bulge_flattening (PHYSICS: Bulge is a 3D ellipsoid)
    (0.0, 0.5)            # 18: thermal_halo_coupling 
]

Nach der Optimierung (oft 3+ Stunden) erzeugen die 19 universellen Parameter Rotationskurven. Dieses Snippet lädt sie und führt den TVERC-Physikkern aus:

# ==============================================================================
# TVERC KINEMATIC VISUALIZER: 12 GALAXY GRID
# ==============================================================================
# Auto-download SPARC
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 ===")

# ==============================================================================
# 19 UNIVERSAL TVERC PARAMETERS (Derived from Run 1 Baseline)
# ==============================================================================
# Each represents a core property of the 3D Continuum
best_params = [
    14.4842,    # 0: initial_phi (Baseline vacuum tension scalar)
    13.4859,    # 1: coupling (Matter-vacuum interaction constant)
    6.7855,     # 2: base_kinetic_push (Ponderomotive acceleration offset, km/s)
    1.3480,     # 3: gas_ripple_multiplier (Thermodynamic volatility of interstellar gas)
    19.9079,    # 4: halo_radius_multiplier (Wave halo boundary scaling relative to disk)
    2.4916,     # 5: a_scale_divisor (Radial gradient shape factor of the transition zone)
    0.5702,     # 6: M_L_disk_base (Mass-to-Light ratio for the stellar disk)
    0.0000146,  # 7: min_scattering (Absolute lower limit of wave scattering in void)
    0.8768299,  # 8: phi_exponent (Spatial decay exponent of the tension field)
    0.3786,     # 9: k_ripple_base (Fundamental wave-number for thermal ripples)
    3.3008619,  # 10: rho_sup_scale (Density threshold for high-frequency damping)
    0.4823863,  # 11: rho_sup_power (Power of the density damping threshold)
    0.5949,     # 12: M_L_bulge (Mass-to-Light ratio for the older central bulge)
    -0.1827,    # 13: ml_gradient (Smooth radial decay of stellar mass density)
    5.3,        # 14: disp_center (Gas velocity dispersion at the core, km/s)
    2.4,        # 15: disp_edge (Gas velocity dispersion at the periphery, km/s)
    2.2334,     # 16: disp_scale (Exponential decay scale of gas dispersion)
    0.8531,     # 17: bulge_flattening (Geometric oblateness of the 3D bulge)
    0.2692      # 18: thermal_halo_coupling (Fraction of thermal energy feeding the halo)
]

# ==============================================================================
# TVERC CORE PHYSICS ENGINE
# ==============================================================================
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 = self.k_ripple_base / (1.0 + (rho_eff / 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_eff / 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_eff * 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, 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_disk**2 * 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_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)

    surf_dens_approx = M_stars_raw[-1] / (R_eff_raw**2)
    dyn_ml_disk = tverc_model.ml_disk_base * (np.maximum(surf_dens_approx / 1e8, 0.1))**tverc_model.ml_gradient

    M_disk_R = R * (V_disk**2 * dyn_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, rho_bulge, rho_gas = np.zeros_like(R), np.zeros_like(R), np.zeros_like(R)
    V_sph_0 = (4/3) * np.pi * R[0]**3
    rho_disk[0], rho_bulge[0], rho_gas[0] = M_disk_R[0]/V_sph_0, M_bulge_R[0]/(V_sph_0*tverc_model.bulge_flattening), M_gas_R[0]/V_sph_0

Ergebnisse und physikalische Erkenntnisse

Der Optimierer hat es geschafft: Ein einziges Set aus 19 universellen Parametern passt die Kinematik von 175 höchst unterschiedlichen Galaxien. Mittlerer absoluter Prozentfehler (MAPE) zwischen TVERC-Kurven und Teleskopdaten? Nur 15,59 %. Für eine so breite Stichprobe mit einem Modell ist das bahnbrechend. Keine individuellen Dunkle-Materie-Halos nötig – die Dynamik ergibt sich aus intrinsischen Eigenschaften der Raumzeit.

Google AdInline article slot

Wichtige Erkenntnisse:

  • Universeller Fit: Ein Parametersatz deckt alle Galaxientypen ab, von Riesen bis Zwergen – im Gegensatz zu Dunkle-Materie-Modellen mit galaxis-spezifischen Anpassungen.
  • Beeindruckende Genauigkeit: 15,59 % Durchschnittsfehler zeigen starke Vorhersagekraft.
  • Physikalische Fundierung: Alle 19 Parameter entsprechen realen Eigenschaften wie Vakuumspannung (initial_phi) oder Materie-Vakuum-Kopplung (coupling).
  • Keine Dunkle Materie nötig: TVERC erklärt flache Rotationskurven allein durch Vakuumwelleneffekte.

Das stellt die Dunkle-Materie-Doktrin infrage und eröffnet neue Perspektiven auf kosmische Gesetze. TVERC prognostiziert sogar Schwarze-Loch-Resonanzsummen, validiert an LIGO-Daten, und geht über Galaxien hinaus.

Wichtige Highlights

  • Paradigmenwechsel in der Astrophysik: Weg mit Dunkler Materie, hin zu Kontinuumsmechanik-Ansatz des Universums.
  • Python-gestützte Modellierung: scipy.optimize.differential_evolution simuliert 175 Galaxien mit 19 universellen Parametern.
  • Bewährte Präzision: 15,59 % MAPE bei SPARC-Rotationskurven.
  • Einheitslösung: Universelle Parameter schlagen Dunkle-Materie-Anpassungen.
  • Weiterer Anwendungsbereich: Gilt auch für Schwarze Löcher, bestätigt durch LIGO.

— Editorial Team

Advertisement 728x90

Weiterlesen