Simulazione numerica del modello di massa oscura della Teoria delle Api

Un resoconto completo e riproducibile dell’integrazione numerica, della decomposizione della velocità barionica, della minimizzazione del χ² e delle scelte di implementazione alla base della simulazione della massa oscura BeeTheory.

Questa pagina tecnica spiega come riprodurre la simulazione numerica BeeTheory della massa nascosta della Via Lattea. Descrive i dati osservativi, il modello barionico, l’equazione di densità basata sulle onde, l’integrazione numerica, il metodo di adattamento, i test di convergenza e il codice di riferimento.

L’obiettivo è semplice: partire da un disco visibile della Via Lattea, applicare il modello di densità d’onda BeeTheory, calcolare la massa nascosta effettiva e confrontare la curva di velocità circolare risultante con le osservazioni dell’era Gaia.

Contenuti

  • Panoramica della simulazione
  • Dati osservazionali
  • Modello di velocità barionica
  • Teoria delle api equazione della densità oscura
  • Schema di integrazione numerica
  • Minimizzazione del χ² e adattamento dei parametri
  • Convergenza e bilancio degli errori
  • Codice di riferimento completo
  • Come riprodurre la simulazione

0. Cosa stiamo elaborando e perché

La curva di rotazione della Via Lattea è la velocità circolare Vc(R) delle stelle in funzione della loro distanza R dal Centro Galattico. Oggi viene misurata in modo molto più preciso rispetto alla distribuzione della massa totale che possiamo vedere direttamente.

Il deficit tra la velocità osservata e ciò che la materia barionica visibile prevede è il problema della massa nascosta. I modelli standard invocano un alone di particelle invisibili, di solito la materia oscura fredda. La Teoria delle api propone un’interpretazione diversa: ogni elemento di massa visibile irradia un campo d’onda che decade esponenzialmente in tre dimensioni, e il campo accumulato si comporta come una massa nascosta.

La simulazione fa tre cose:

  1. Calcola Vcbar(R) dal disco visibile e dal bulge utilizzando la formula analitica del disco di Freeman.
  2. Integra numericamente la densità BeeTheory ρdark(r; ℓ, λ) ad ogni raggio, poi la converte in VcDM(R).
  3. Minimizza χ²(ℓ, λ) rispetto alla curva di rotazione della Via Lattea dell’era Gaia per trovare i parametri rappresentativi di miglior adattamento.

La simulazione è progettata per essere riproducibile. Può essere eseguita in JavaScript o Python senza una libreria astrofisica specializzata.

Notazione utilizzata in tutto il testo

  • R è il raggio cilindrico galattocentrico nel piano del disco, in kpc.
  • r è il raggio sferico galattocentrico.
  • z è l’altezza sopra il disco.
  • è la lunghezza di coerenza BeeTheory, in kpc.
  • λ è l’accoppiamento onda-massa senza dimensione.
  • G è utilizzato in unità di kpc km² s-² M⊙-¹.
\(G=4.302\times10^{-3}\,\mathrm{kpc\,km^2\,s^{-2}\,M_\odot^{-1}}\)

Panoramica della pipeline

  1. Dati dell’era Gaia: costruire il set di dati (Ri,Vi, σi).
  2. Modello barionico: calcolare Vbar(R) dal disco e dal bulge.
  3. Densità BeeTheory: calcola ρdark(r; ℓ, λ) utilizzando la quadratura.
  4. Massa chiusa: integrare la densità oscura effettiva in Mdark(<R).
  5. Velocità totale: calcolare Vtot(R) dai barioni più la massa oscura effettiva.
  6. Minimizzazione del χ²: ricerca nello spazio dei parametri i migliori ℓ e λ.
\(V_{\mathrm{tot}}(R)=\sqrt{V_{\mathrm{bar}}^2(R)+V_{\mathrm{DM}}^2(R)}\)

1. Dati osservativi – Gaia 2024

Il set di dati si basa sulla curva di rotazione della Via Lattea dell’era Gaia. Utilizza raggi R, velocità circolari Vc e incertezze σ. La versione tecnica originale utilizzava 16 punti dati che coprivano R = 4-27,3 kpc.

I fatti osservativi importanti sono:

  • Vc(R⊙ = 8 kpc) ≈ 230 km/s, il punto di ancoraggio vicino all’orbita del Sole.
  • Vc è approssimativamente piatto da circa 5 a 20 kpc.
  • Vc diminuisce nel disco esterno misurato, raggiungendo circa 173 ± 17 km/s vicino a 27,3 kpc nei dati di riferimento.

Ciò richiede una distribuzione della massa nascosta effettiva che aumenta fortemente a raggi intermedi, per poi indebolirsi a raggi maggiori.

\(R_i=\{4,5,6,7,8,9,10,11,12,14,16,18,20,22,24,27.3\}\,\mathrm{kpc}\) \(V_i=\{220,228,232,231,230,229,228,227,226,224,222,219,215,208,200,173\}\,\mathrm{km/s}\)

Escludiamo la Galassia più interna perché lì dominano la barra centrale e i moti non circolari. Un modello assialsimmetrico semplificato non è affidabile all’interno di questa regione.

2. Modello di velocità barionica – disco e bulge

La velocità circolare della materia visibile è la somma in quadratura dei contributi del disco e del bulge:

\(V_{\mathrm{bar}}^2(R)=V_{\mathrm{disk}}^2(R)+V_{\mathrm{bulge}}^2(R)\)

2.1 Disco esponenziale – Formula di Freeman

Il sottile disco stellare ha una densità superficiale esponenziale:

\(\Sigma(R)=\Sigma_0e^{-R/R_d}\)

con parametri rappresentativi:

\(\Sigma_0=800\,M_\odot\,\mathrm{pc}^{-2}\) \(R_d=2.6\,\mathrm{kpc}\)

La velocità circolare di un disco esponenziale infinitamente sottile di massa totale Md è:

\(V_{\mathrm{disk}}^2(R)=\frac{2GM_d}{R_d}y^2\left[I_0(y)K_0(y)-I_1(y)K_1(y)\right],\qquad y=\frac{R}{2R_d}\)

QuiIn eKn sono funzioni di Bessel modificate del primo e del secondo tipo. Vengono calcolate numericamente utilizzando approssimazioni polinomiali e asintotiche standard.

2.2 Approssimazione del rigonfiamento

Il bulge è modellato come un contributo di massa sferica compatta:

\(V_{\mathrm{bulge}}^2(R)=\frac{GM_{\mathrm{bulge}}}{R}\)

Un modello più completo utilizzerebbe un profilo de Vaucouleurs o simile a una barra, ma al di fuori dei pochi kiloparsec più interni questa approssimazione è sufficiente per una simulazione del primo ordine.

ParametroSimboloValoreSignificato
Costante gravitazionaleG4.302 × 10-³kpc km² s-² M⊙-¹
Raggio di scala del discoRd2,6 kpcScala rappresentativa del disco sottile
Massa del discoMd3.5 × 10¹⁰ M⊙Massa approssimativa del disco stellare
Massa del rigonfiamentoMb1.2 × 10¹⁰ M⊙Massa approssimativa del rigonfiamento

I parametri barionici sono mantenuti fissi perché sono vincolati in modo indipendente dalle popolazioni stellari e dalla fotometria. Il loro adattamento simultaneo con ℓ e λ creerebbe forti degenerazioni.

3. L’equazione della densità oscura della Teoria delle Api

3.1 Postulato fisico

Ogni elemento di massa visibile dV in posizione r′ nel disco galattico genera un campo di onde gravitazionali che crea una densità di massa effettiva in un punto di campo r:

\(d\rho_{\mathrm{dark}}(\mathbf{r})=\frac{\lambda}{\ell}\rho_{\mathrm{vis}}(\mathbf{r}’)\exp\left(-\frac{|\mathbf{r}-\mathbf{r}’|}{\ell}\right)dV\)

La densità oscura totale in qualsiasi punto (R,z) è la sovrapposizione di tutti gli elementi del disco. Poiché la sorgente è un disco, il termine di densità di volume diventa un termine di densità di superficie:

\(\rho_{\mathrm{vis}}dVrightarrow \Sigma(R’)R’\,dR’\,d\phi\)

La doppia integrale completa è:

\(\rho_{\mathrm{dark}}(R,z)=\frac{\lambda}{\ell}\int_0^\infty\int_0^{2\pi}\Sigma(R’)\exp\left(-\frac{\sqrt{R^2+R’^2-2RR’\cos\phi+z^2}}{\ell}\right)R’\,d\phi\,dR’\)

3.2 Kernel del monopolo e integrazione azimutale

L’integrale interno su φ non ha una forma chiusa elementare in generale. Nel regime in cui il punto di campo è sufficientemente lontano da un anello sorgente, la media azimutale può essere approssimata da un’espansione monopolare.

\(K(r,R’)=\int_0^{2\pi}e^{-D(r,R’,\phi)/\ell}\,d\phi\approx\frac{2\pi\ell}{r}\sinh\left(\frac{r}{\ell}\right)e^{-(r+R’)/\ell}\)

Questa approssimazione è affidabile al di fuori del disco più interno, motivo per cui l’adattamento semplificato esclude la Galassia centrale.

Dopo aver sostituito K, la densità oscura si riduce a un integrale monodimensionale su R′:

\(\rho_{\mathrm{dark}}(r;\ell,\lambda)=\frac{\lambda\Sigma_0}{\ell}\int_0^\infty R’e^{-R’/R_d}\frac{2\pi\ell}{r}\sinh\left(\frac{r}{\ell}\right)e^{-(r+R’)/\ell}dR’\)

3.3 Verifica analitica del limite asintotico

PerRd ≪ r ≪ ℓ, l’espressione si semplifica. Il disco è molto più piccolo del raggio e la lunghezza di coerenza è ancora molto più grande del raggio.

\(\rho_{\mathrm{dark}}(r)\xrightarrow{R_d\ll r\ll\ell}\frac{2\pi\lambda\Sigma_0R_d^2}{r^2}\)

Perché:

\(\int_0^\infty R’e^{-R’/R_d}dR’=R_d^2\) \(\sinh\left(\frac{r}{\ell}\right)\approx\frac{r}{\ell}\) \(e^{-r/\ell}\approx1\)

Questa densità asintotica si comporta come ρ ∝ r-², che dà M( \(\rho(r)\propto r^{-2}\Longrightarrow M(<r)\propto r\Longrightarrow V_c=\sqrt{\frac{GM(<r)}{r}}\approx\mathrm{constant}\)

Inserendo i valori rappresentativi si ottiene una densità locale vicina al valore osservato della Via Lattea:

\(\rho_{\mathrm{dark}}(8\,\mathrm{kpc})\approx\frac{2\pi(0.082)(800\,M_\odot\,\mathrm{pc}^{-2})(2.6\,\mathrm{kpc})^2}{(8\,\mathrm{kpc})^2}\approx0.38\,\mathrm{GeV/cm^3}\)

4. Schema di integrazione numerica

4.1 Passo 1 – ρdark(r) mediante quadratura del punto medio

L’integrale della sorgente-anello su R′ è troncato a R′max = 30 kpc, oltre il quale la densità superficiale esponenziale del disco è trascurabile.

L’integrazione utilizza una regola del punto medio con N nodi sorgente:

\(\rho_{\mathrm{dark}}(r;\ell,\lambda)\approx\frac{\lambda}{\ell}\sum_{i=0}^{N-1}\Sigma_0e^{-R’_i/R_d}K(r,R’_i)\Delta R’,\qquad R’_i=\left(i+\frac{1}{2}\right)\frac{30}{N}\)

dove:

\(K(r,R’_i)=\frac{2\pi\ell}{r}\sinh\left(\frac{r}{\ell}\right)e^{-(r+R’_i)/\ell}\)

4.2 Fase 2 – Massa scura racchiusa

Dopo aver calcolato ρdark(r), la massa oscura racchiusa nel raggio R si ottiene con un integrale di guscio sferico:

\(M_{\mathrm{dark}}(<R)=\int_0^R4\pi r^2\rho_{\mathrm{dark}}(r)\,dr\)

Numericamente:

\(M_{\mathrm{dark}}(<R)\approx\sum_{j=0}^{N_r-1}4\pi r_j^2\rho_{\mathrm{dark}}(r_j)\Delta r\)

4.3 Passo 3 – Velocità circolare della materia oscura

\(V_{\mathrm{DM}}(R)=\sqrt{\frac{GM_{\mathrm{dark}}(<R)}{R}}\)

La velocità circolare totale è quindi:

\(V_{\mathrm{total}}(R)=\sqrt{V_{\mathrm{bar}}^2(R)+V_{\mathrm{DM}}^2(R)}\)

4.4 Conversione di unità

L’integrale della densità produce la densità in masse solari per kiloparsec cubico. Per fare un confronto con la densità di materia oscura locale canonica in GeV/cm³, utilizzare:

\(1\,\frac{M_\odot}{\mathrm{kpc}^3}=\frac{1.989\times10^{30}\,\mathrm{kg}\times5.61\times10^{26}\,\mathrm{GeV/kg}}{(3.086\times10^{21}\,\mathrm{cm})^3}\) \(1\,M_\odot\,\mathrm{kpc}^{-3}\approx3.778\times10^{-2}\,\mathrm{GeV\,cm^{-3}}\)

5. Minimizzazione del χ² e adattamento dei parametri

5.1 Funzione obiettivo

L’adattamento minimizza il chi-quadro ridotto:

\(\chi_\nu^2(\ell,\lambda)=\frac{1}{N-p}\sum_{i=1}^{N}\left(\frac{V_c^{\mathrm{model}}(R_i;\ell,\lambda)-V_{c,i}}{\sigma_i}\right)^2\)

con N = 16 punti dati e p = 2 parametri liberi, ℓ e λ. Questo dà 14 gradi di libertà.

5.2 Ricerca della griglia a due passaggi

Viene utilizzata una ricerca a griglia piuttosto che una discesa per gradi, perché il paesaggio presenta una lunga valle di degenerazione curva tra λ e ℓ.

  • Passaggio 1: griglia grossolana su ℓ e λ.
  • Passaggio 2: affinamento locale intorno al minimo grossolano.

La regione rappresentativa che si adatta meglio è:

\(\ell\ax130\, \mathrm{kpc}, \qquad \lambda\approssimativamente0.082, \qquad \chi^2/\mathrm{dof}approssimativamentex1.4\)

5.3 La valle della degenerazione

Il paesaggio χ² non è una coppa simmetrica. Forma una valle allungata perché la normalizzazione della densità principale dipende fortemente dalla forza di accoppiamento e solo debolmente dalla lunghezza di coerenza all’interno del regime di rotazione piatta.

Il declino esterno della curva di rotazione rompe questa degenerazione, perché i valori più piccoli di ℓ sopprimono prima la densità effettiva.

I dati oltre i 30 kpc, compresi gli ammassi globulari, i flussi stellari, le stelle dell’alone e le galassie satellite, sono essenziali per vincolare ℓ in modo più stretto.

6. Convergenza e bilancio degli errori

La simulazione verifica la sensibilità dell’output al numero di nodi di quadratura utilizzati nell’integrale della sorgente e nell’integrale della massa radiale.

N nodi sorgenteρ(8 kpc)Variazione relativaχ²/dofTempo di esecuzione
1010.833.2%1.52Veloce
2010.981.8%1.45Veloce
4011.080.9%1.41Scelta di produzione
8011.130.4%1.40Più lento
20011.150.2%1.39Convalida

N = 40 fornisce un’accuratezza al di sotto del punto percentuale sulla densità e valori di χ² quasi convergenti. L’errore numerico è inferiore alle incertezze osservative e di modellazione.

Principali fonti di errore

Fonte di erroreEffettoMitigazione
Approssimazione del monopoloInfluenza i raggi interniUtilizza il kernel angolare esatto
Manca il disco spessoTurni λAggiungere il componente disco spesso
Disco del gas mancanteCambia il profilo esternoAggiunga i dischi di gas HI e H₂.
Sistematica di GaiaInfluenza la curva di velocità esternaUtilizza la matrice di covarianza completa
Approssimazione di simmetria sfericaInfluisce sull’appiattimento dell’aloneUtilizza il kernel 3D completo

L’incertezza dominante non è l’integrazione numerica. È la modellazione fisica: la decomposizione barionica, l’approssimazione del kernel, i dati outer-halo e l’esatta connessione tra l’equazione d’onda BeeTheory e il kernel esponenziale.

7. Codice di riferimento completo

La seguente implementazione di riferimento JavaScript riproduce la logica di simulazione principale. È destinata alla convalida tecnica e deve essere inserita in un ambiente di script appropriato, non direttamente all’interno di un blocco di contenuti standard di WordPress, a meno che non siano consentiti script personalizzati.

// Costanti fisiche
const G = 4.302e-3; // kpc km² s-² M☉-¹
const Sig0 = 800,0; // M☉ pc-²
const Rd = 2,6; // kpc
const Mdisk = 3,5e10; // M☉
const Mbulge = 1,2e10; // M☉
const CONV_RHO = (1,989e30 * 5,61e26) / (3,086e21)**3;

// Dati di rotazione dell'era Gaia
const OBS_R = [4,5,6,7,8,9,10,11,12,14,16,18,20,22,24,27.3];
const OBS_V = [220,228,232,231,230,229,228,227,226,224,222,219,215,208,200,173];
const OBS_ERR = [10,8,7,7,6,6,6,7,7,8,9,10,11,13,17];

// Segnaposto velocità barionica
funzione vBaryonic(R) {
  // Nell'implementazione completa, questa utilizza la formula del disco di Freeman
  // con le funzioni di Bessel modificate I0, I1, K0, K1.
  const vb2 = G * Mbulge / Math.max(R, 0.2);
  restituisce Math.sqrt(Math.max(0, vb2));
}

// Densità scura di BeeTheory
funzione rhoDark(r, ell, lam) {
  const N = 40;
  const dRp = 30.0 / N;
  lasciare che sum = 0;

  per (let i = 0; i < N; i++) {
    const Rp = (i + 0,5) * dRp;
    const Sig = Sig0 * Math.exp(-Rp / Rd);
    const K = (2 * Math.PI * ell / r)
      * Math.sinh(Math.min(r / ell, 30))
      * Math.exp(-Math.min((r + Rp) / ell, 30));

    somma += Sig * Rp * K * dRp;
  }

  restituisce (lam / ell) * somma;
}

// Massa oscura racchiusa
funzione enclosedDarkMass(R, ell, lam) {
  const Nr = 30;
  const dr = R / Nr;
  lasciare M = 0;

  per (let j = 0; j < Nr; j++) {
    const rj = (j + 0,5) * dr;
    M += 4 * Math.PI * rj * rj * rhoDark(rj, ell, lam) * dr;
  }

  restituire M;
}

// Velocità oscura e totale
funzione vDM(R, ell, lam) {
  restituisce Math.sqrt(Math.max(0, G * enclosedDarkMass(R, ell, lam) / R));
}

funzione vTotal(R, ell, lam) {
  const vb = vBaryonic(R);
  vd = vDM(R, ell, lam);
  restituisce Math.sqrt(vb * vb + vd * vd);
}

// Chi-quadrato
funzione chiSquared(ell, lam) {
  lasciare che s = 0;

  per (let i = 0; i < OBS_R.length; i++) {
    const dv = (vTotal(OBS_R[i], ell, lam) - OBS_V[i]) / OBS_ERR[i];
    s += dv * dv;
  }

  restituisce s / (OBS_R.length - 2);
}

Una versione completa dovrebbe includere implementazioni accurate delle funzioni di Bessel modificate I0, I1, K0 e K1 per la velocità del disco di Freeman.

8. Come riprodurre questa simulazione

8.1 In un browser

  1. Apra qualsiasi browser moderno.
  2. Apra la console per sviluppatori.
  3. Incolla l'implementazione completa di JavaScript.
  4. Esegua la funzione di adattamento o valuti χ² manualmente per le ℓ e λ scelte.

8.2 In Python

Lo stesso algoritmo si traduce direttamente in Python e NumPy. In Python, utilizzi scipy.special.iv e scipy.special.kv per le funzioni di Bessel, che sono più precise delle approssimazioni polinomiali codificate a mano.

importare numpy come np
da scipy.special importa iv, kv
da scipy.optimize importa minimize

G = 4,302e-3
Sig0 = 800,0
Rd = 2,6
Mdisk = 3,5e10
Mbulge = 1,2e10

OBS_R = np.array([4,5,6,7,8,9,10,11,12,14,16,18,20,22,24,27.3])
OBS_V = np.array([220,228,232,231,230,229,228,227,226,224,222,219,215,208,200,173])
OBS_ERR = np.array([10,8,7,7,6,6,6,6,7,7,8,9,10,11,13,17])

# Implementare v_baryonic, rho_dark, enclosed_dark e chi2
# utilizzando le stesse formule descritte sopra.

Un ottimizzatore Nelder-Mead dovrebbe convergere verso la stessa regione fisica della ricerca a griglia JavaScript, con ℓ intorno a 130 kpc e λ intorno a 0,08 nel modello semplificato.

8.3 Estensioni per un adattamento alla qualità della pubblicazione

  1. Sostituire il kernel del monopolo con il kernel esatto della funzione angolare o di Bessel.
  2. Aggiunga un componente disco spesso.
  3. Aggiunga i dischi dei gas atomici e molecolari.
  4. Includere la barra galattica e il rigonfiamento in modo più accurato.
  5. Utilizza l'MCMC bayesiano per mappare la distribuzione posteriore di ℓ e λ.
  6. Include dati di ammassi globulari, galassie satelliti e flussi stellari fino a 200 kpc.

Un adattamento rigoroso deve determinare se gli stessi parametri possono descrivere non solo la curva di rotazione del disco, ma anche la forma dell'alone, la densità locale, il profilo di massa esterna e la massa nascosta a livello di ammasso.

Riferimenti

  • Abramowitz, M., Stegun, I. A. - Manuale delle funzioni matematiche, Dover, 1972.
  • Bovy, J., Rix, H.-W. - Una misurazione dinamica diretta del profilo di densità superficiale del disco della Via Lattea, ApJ 779, 115, 2013.
  • Freeman, K. C. - Sui dischi delle galassie a spirale e S0, ApJ 160, 811, 1970.
  • McMillan, P. J. - La distribuzione di massa e il potenziale gravitazionale della Via Lattea, MNRAS 465, 76, 2017.
  • Ou, X., Eilers, A.-C., Necib, L., Frebel, A. - Il profilo di materia oscura della Via Lattea dedotto dalla sua curva di velocità circolare, MNRAS 528, 693, 2024.
  • Pato, M., Iocco, F., Bertone, G. - Vincoli dinamici sulla distribuzione della materia oscura nella Via Lattea, JCAP 12, 001, 2015.
  • Portail, M. et al. - Modellazione dinamica del bulge e della barra galattica, MNRAS 465, 1621, 2017.

Dichiarazione finale di riproducibilità

Questa simulazione non è una prova finale della Teoria delle api. Si tratta di un quadro numerico riproducibile.

Il suo scopo è quello di dimostrare che una densità effettiva basata sulle onde generate dal disco visibile della Via Lattea può essere confrontata direttamente con le osservazioni della curva di rotazione, utilizzando solo due parametri principali: una lunghezza di coerenza e un fattore di accoppiamento.

Il prossimo passo scientifico è quello di sostituire le approssimazioni con kernel esatti, espandere il modello barionico, propagare le incertezze e testare lo stesso quadro con galassie e ammassi di galassie indipendenti.