File size: 3,790 Bytes
311ef24 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | import numpy as np
import matplotlib.pyplot as plt
# 1. Rango multipolar completo
multipolos = np.arange(2, 3001)
# 2. Parámetros base calibrados del modelo VCSD-I
A_base = 3200.0
l_acustico = 220.0
damping_silk = 450.0
alpha_gradiente = 0.35
beta_vorticidad = 0.18
# 3. Fase híbrida adaptativa (Euler-Bessel)
nu = (1.0 - beta_vorticidad) / 2.0
desfase_asintotico = (nu * np.pi) / 2.0
factor_transicion = 1.0 / (1.0 + np.exp(-(multipolos - 1000) / 200))
fase_baja_frec = multipolos * (np.pi / l_acustico) + (beta_vorticidad * np.log(multipolos))
fase_alta_frec = multipolos * (np.pi / l_acustico) + desfase_asintotico
fase_efectiva = (1.0 - factor_transicion) * fase_baja_frec + factor_transicion * fase_alta_frec
oscilacion_acustica = np.cos(fase_efectiva)**2
# 4. Envolventes de potencia y confinamiento geométrico
modulacion_pozo = 1.0 + alpha_gradiente * np.sin(multipolos * (np.pi / (2.0 * l_acustico)))
filtro_atenuacion = np.exp(- (multipolos / damping_silk)**(1.5 - beta_vorticidad))
# Espectro simétrico base (isótropo)
Cl_isotropo = A_base * oscilacion_acustica * modulacion_pozo * filtro_atenuacion
# 5. Inyección de la anomalía del Punto Frío (Efecto Sachs-Wolfe Integrado asimétrico)
efecto_isw_asimetrico = -70.0 * np.exp(-((multipolos - 5) / 8)**2)
# Espectro neto con la perturbación regional de Eridanus
Cl_anomalo = Cl_isotropo + efecto_isw_asimetrico * (multipolos * (multipolos + 1) / (2 * np.pi)) * 0.05
Cl_anomalo = np.clip(Cl_anomalo, 0, None)
# 6. Buscar crestas reales (Picos reales desplazados por el desfase logarítmico)
idx_pico1 = np.argmax(Cl_anomalo[100:300]) + 100
idx_pico2 = np.argmax(Cl_anomalo[400:650]) + 400
idx_pico3 = np.argmax(Cl_anomalo[650:950]) + 650
# 7. Despliegue de resultados cuantitativos en consola
print("\n" + "=" * 75)
print(" AUDITORÍA CORREGIDA DE HITOS ACÚSTICOS DESFASADOS (VCSD-I)")
print("=" * 75)
print(f"[*] 1º Pico Real Encontrado (\u2113 = {idx_pico1+2}) : {Cl_anomalo[idx_pico1]:.2f} \u03bcK\u00b2 | Esperado: ~2814 \u03bcK\u00b2")
print(f"[*] 2º Pico Real Encontrado (\u2113 = {idx_pico2+2}) : {Cl_anomalo[idx_pico2]:.2f} \u03bcK\u00b2 | Esperado: ~1142 \u03bcK\u00b2")
print(f"[*] 3º Pico Real Encontrado (\u2113 = {idx_pico3+2}) : {Cl_anomalo[idx_pico3]:.2f} \u03bcK\u00b2 | Esperado: ~1094 \u03bcK\u00b2")
print("-" * 75)
print(f"[*] Desviación térmica en \u2113=5 (Punto Frío): {efecto_isw_asimetrico[3]:.2f} \u03bcK")
print("[VERDICTO]: Los picos mutan su posición angular debido al arrastre de giro.")
print("=" * 75 + "\n")
# 8. Configuración y trazado gráfico académico seguro
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5))
# Subplot 1: Espectro Completo
ax1.plot(multipolos, Cl_isotropo, '--', color='gray', alpha=0.6, label='Fondo Base')
ax1.plot(multipolos, Cl_anomalo, color='#004488', linewidth=2.0, label='Modelo VCSD-I')
ax1.axvspan(2000, 3000, color='#ffea00', alpha=0.15, label='Región de Micro-Picos (Bessel)')
ax1.set_title('Espectro del CMB Completo')
ax1.set_xlabel('Multipolo l')
ax1.set_ylabel('D_l')
ax1.legend()
ax1.grid(True, linestyle=':')
# Subplot 2: Zoom de la Anomalía del Punto Frío
ax2.plot(multipolos[:40], Cl_isotropo[:40], '--', color='gray', alpha=0.6, label='Fondo Base')
ax2.plot(multipolos[:40], Cl_anomalo[:40], color='crimson', linewidth=2.5, label='Eje Punto Frío')
ax2.set_title('Bajas Frecuencias: Anomalía de Eridanus')
ax2.set_xlabel('Multipolo l <= 40')
ax2.set_ylabel('D_l')
ax2.legend()
ax2.grid(True, linestyle=':')
# 9. Forzar actualización del backend gráfico y guardar archivo
plt.savefig('espectro_vcsd_final.png', dpi=300)
print("[*] Archivo de respaldo guardado como 'espectro_vcsd_final.png'")
plt.draw()
plt.pause(0.1)
plt.show()
|