Simulação numérica do modelo de massa escura BeeTheory

Um relato completo e reproduzível da integração numérica, decomposição da velocidade bariônica, minimização de χ² e escolhas de implementação por trás da simulação de massa escura BeeTheory.

Esta página técnica explica como reproduzir a simulação numérica BeeTheory da massa oculta da Via Láctea. Ela descreve os dados observacionais, o modelo bariônico, a equação de densidade baseada em ondas, a integração numérica, o método de ajuste, os testes de convergência e o código de referência.

O objetivo é simples: partir de um disco visível da Via Láctea, aplicar o modelo de densidade de onda BeeTheory, calcular a massa oculta efetiva e comparar a curva de velocidade circular resultante com as observações da era Gaia.

Conteúdo

  • Visão geral da simulação
  • Dados observacionais
  • Modelo de velocidade bariônica
  • BeeTheory equação da densidade escura
  • Esquema de integração numérica
  • Minimização do χ² e ajuste de parâmetros
  • Convergência e orçamento de erros
  • Código de referência completo
  • Como reproduzir a simulação

0. O que estamos computando e por quê

A curva de rotação da Via Láctea é a velocidade circular Vc(R) das estrelas em função de sua distância R do centro galáctico. Atualmente, ela é medida com muito mais precisão do que a distribuição total de massa que podemos ver diretamente.

O déficit entre a velocidade observada e o que a matéria bariônica visível prevê é o problema da massa oculta. Os modelos padrão invocam um halo de partículas invisíveis, geralmente a matéria escura fria. A BeeTheory propõe uma interpretação diferente: cada elemento de massa visível irradia um campo de onda que decai exponencialmente em três dimensões, e o campo acumulado se comporta como massa oculta.

A simulação faz três coisas:

  1. Calcula Vcbar(R) a partir do disco visível e do bojo usando a fórmula analítica de Freeman para o disco.
  2. Integra numericamente a densidade BeeTheory ρdark(r; ℓ, λ) em cada raio e, em seguida, converte-a em VcDM(R).
  3. Minimiza χ²(ℓ, λ) em relação à curva de rotação da Via Láctea da era Gaia para encontrar parâmetros representativos de melhor ajuste.

A simulação foi projetada para ser reproduzível. Ela pode ser executada em JavaScript ou Python sem uma biblioteca astrofísica especializada.

Notação usada em todo o texto

  • R é o raio cilíndrico galactocêntrico no plano do disco, em kpc.
  • r é o raio esférico galactocêntrico.
  • z é a altura acima do disco.
  • é o comprimento de coerência da BeeTheory, em kpc.
  • λ é o acoplamento de massa de onda sem dimensão.
  • G é usado em unidades de kpc km² s-² M⊙-¹.
\(G=4.302\times10^{-3}\,\mathrm{kpc\,km^2\,s^{-2}\,M_\odot^{-1}}\)

Visão geral do pipeline

  1. Dados da era Gaia: crie o conjunto de dados (Ri,Vi, σi).
  2. Modelo bariônico: calcule Vbar(R) a partir do disco e do bojo.
  3. BeeTheory density: calcule ρdark(r; ℓ, λ) usando quadratura.
  4. Massa fechada: integre a densidade escura efetiva em Mdark(<R).
  5. Velocidade total: calcule Vtot(R) a partir dos bárions mais a massa escura efetiva.
  6. Minimização de χ²: espaço de parâmetros de pesquisa para os melhores ℓ e λ.
\(V_{\mathrm{tot}}(R)=\sqrt{V_{\mathrm{bar}}^2(R)+V_{\mathrm{DM}}^2(R)}\)

1. Dados observacionais – Gaia 2024

O conjunto de dados é baseado na curva de rotação da Via Láctea da era Gaia. Ele usa raios R, velocidades circulares Vc e incertezas σ. A versão técnica original usava 16 pontos de dados cobrindo R = 4-27,3 kpc.

Os fatos observacionais importantes são:

  • Vc(R⊙ = 8 kpc) ≈ 230 km/s, o ponto de ancoragem próximo à órbita do Sol.
  • O Vc é aproximadamente plano de cerca de 5 a 20 kpc.
  • Vc diminui no disco externo medido, atingindo cerca de 173 ± 17 km/s perto de 27,3 kpc nos dados referenciados.

Isso requer uma distribuição efetiva de massa oculta que aumenta fortemente em raios intermediários e depois enfraquece em raios maiores.

\(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}\)

Excluímos a galáxia mais interna porque a barra central e os movimentos não circulares predominam ali. Um modelo axissimétrico simplificado não é confiável dentro dessa região.

2. Modelo de velocidade bariônica – disco e bojo

A velocidade circular da matéria visível é a soma em quadratura das contribuições do disco e do bojo:

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

2.1 Disco exponencial – Fórmula de Freeman

O disco estelar fino tem uma densidade de superfície exponencial:

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

com parâmetros representativos:

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

A velocidade circular de um disco exponencial infinitamente fino de massa total 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}\)

Aqui,In eKn são funções de Bessel modificadas de primeiro e segundo tipos. Elas são calculadas numericamente usando aproximações polinomiais e assintóticas padrão.

2.2 Aproximação do bojo

O bojo é modelado como uma contribuição de massa esférica compacta:

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

Um modelo mais completo usaria um perfil de Vaucouleurs ou semelhante a uma barra, mas, fora dos poucos quiloparsecs mais internos, essa aproximação é suficiente para uma simulação de primeira ordem.

ParâmetroSímboloValorSignificado
Constante gravitacionalG4.302 × 10-³kpc km² s-² M⊙-¹
Raio de escala do discoRd2,6 kpcEscala de disco fino representativa
Massa do discoMd3.5 × 10¹⁰ M⊙Massa aproximada do disco estelar
Massa do bojoMb1.2 × 10¹⁰ M⊙Massa aproximada do bojo

Os parâmetros bariônicos são mantidos fixos porque são independentemente limitados por populações estelares e fotometria. Ajustá-los simultaneamente com ℓ e λ criaria fortes degenerações.

3. A equação de densidade escura da BeeTheory

3.1 Postulado físico

Cada elemento de massa visível dV na posição r′ no disco galáctico gera um campo de ondas gravitacionais que cria uma densidade de massa efetiva em um ponto de 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\)

A densidade escura total em qualquer ponto (R,z) é a superposição de todos os elementos do disco. Como a fonte é um disco, o termo de densidade de volume se torna um termo de densidade de superfície:

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

A integral dupla 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 de monopolo e integração azimutal

A integral interna sobre φ não tem uma forma fechada elementar em geral. No regime em que o ponto de campo está suficientemente distante de um anel de fonte, a média azimutal pode ser aproximada por uma expansão de monopolo.

\(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}\)

Essa aproximação é confiável fora do disco mais interno, e é por isso que o ajuste simplificado exclui a galáxia central.

Depois de substituir K, a densidade escura se reduz a uma integral unidimensional sobre 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ção analítica do limite assintótico

Para Rd ≪ r ≪ ℓ, a expressão se simplifica. O disco é muito menor do que o raio, e o comprimento de coerência ainda é muito maior do que o raio.

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

Porque:

\(\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\)

Essa densidade assintótica se comporta como ρ ∝ r-², o que dá M( \(\rho(r)\propto r^{-2}\Longrightarrow M(<r)\propto r\Longrightarrow V_c=\sqrt{\frac{GM(<r)}{r}}}\approx\mathrm{constant}\)

Ao inserir valores representativos, obtém-se uma densidade local próxima ao valor observado da Via Láctea:

\(\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. Esquema de integração numérica

4.1 Etapa 1 – ρdark(r) por quadratura de ponto médio

A integral do anel-fonte sobre R′ é truncada em R′max = 30 kpc, além do qual a densidade exponencial da superfície do disco é desprezível.

A integração usa uma regra de ponto médio com N nós de origem:

\(\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}\)

Onde:

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

4.2 Etapa 2 – Massa escura fechada

Depois de calcular ρdark(r), a massa escura dentro do raio R é obtida com uma integral de casca esférica:

\(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 Etapa 3 – Velocidade circular da matéria escura

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

A velocidade circular total é então:

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

4.4 Conversão de unidades

A integral da densidade produz densidade em massas solares por quiloparsec cúbico. Para comparar com a densidade de matéria escura local canônica em GeV/cm³, use:

\(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. χ² Minimização e ajuste de parâmetros

5.1 Função objetiva

O ajuste minimiza o qui-quadrado reduzido:

\(\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\)

com N = 16 pontos de dados e p = 2 parâmetros livres, ℓ e λ. Isso dá 14 graus de liberdade.

5.2 Pesquisa de grade de duas passagens

É usada uma pesquisa de grade em vez de descida de gradiente porque o cenário tem um vale de degeneração longo e curvo entre λ e ℓ.

  • Passo 1: grade grossa sobre ℓ e λ.
  • Passo 2: refinamento local em torno do mínimo grosseiro.

A região representativa de melhor ajuste é:

\(\ell\approx130\,\mathrm{kpc},\qquad \lambda\approx0.082,\qquad \chi^2/\mathrm{dof}\approx1.4\)

5.3 O Vale da Degeneração

A paisagem χ² não é uma tigela simétrica. Ele forma um vale alongado porque a normalização da densidade principal depende muito da força de acoplamento e apenas fracamente do comprimento de coerência dentro do regime de rotação plana.

O declínio externo da curva de rotação quebra essa degeneração porque valores menores de ℓ suprimem a densidade efetiva mais cedo.

Dados além de 30 kpc, incluindo aglomerados globulares, fluxos estelares, estrelas de halo e galáxias satélites, são essenciais para restringir ℓ com mais rigor.

6. Convergência e orçamento de erros

A simulação testa a sensibilidade do resultado ao número de nós de quadratura usados na integral da fonte e na integral da massa radial.

N nós de origemρ(8 kpc)Mudança relativaχ²/dofTempo de execução
1010.833.2%1.52Rápido
2010.981.8%1.45Rápido
4011.080.9%1.41Escolha da produção
8011.130.4%1.40Mais lento
20011.150.2%1.39Validação

N = 40 fornece precisão de subpercentual na densidade e valores de χ² quase convergentes. O erro numérico é menor do que as incertezas de observação e modelagem.

Principais fontes de erro

Fonte de erroEfeitoMitigação
Aproximação do monopoloAfeta os raios internosUsar o kernel angular exato
Falta de disco grossoDeslocamentos λAdicionar componente de disco rígido
Falta de disco de gásAltera o perfil externoAdicionar discos de gás HI e H₂
Sistemática GaiaAfeta a curva de velocidade externaUsar a matriz de covariância completa
Aproximação de simetria esféricaAfeta o achatamento do haloUsar o kernel 3D completo

A incerteza dominante não é a integração numérica. É a modelagem física: decomposição bariônica, aproximação do kernel, dados do halo externo e a conexão exata entre a equação de onda BeeTheory e o kernel exponencial.

7. Código de referência completo

A implementação de referência JavaScript a seguir reproduz a lógica principal da simulação. Ela se destina à validação técnica e deve ser colocada em um ambiente de script adequado, não diretamente dentro de um bloco de conteúdo padrão do WordPress, a menos que scripts personalizados sejam permitidos.

// Constantes físicas
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;

// Dados de rotação da 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,7,6,6,6,6,7,7,8,9,10,11,13,17];

// Espaço reservado para velocidade bariônica
function vBaryonic(R) {
  // Na implementação completa, isso usa a fórmula de disco de Freeman
  // com funções de Bessel modificadas I0, I1, K0, K1.
  const vb2 = G * Mbulge / Math.max(R, 0.2);
  return Math.sqrt(Math.max(0, vb2));
}

// Densidade escura da BeeTheory
function rhoDark(r, ell, lam) {
  const N = 40;
  const dRp = 30,0 / N;
  let sum = 0;

  for (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));

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

  return (lam / ell) * sum;
}

// Massa escura fechada
function enclosedDarkMass(R, ell, lam) {
  const Nr = 30;
  const dr = R / Nr;
  let M = 0;

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

  return M;
}

// Velocidade escura e total
function vDM(R, ell, lam) {
  return Math.sqrt(Math.max(0, G * enclosedDarkMass(R, ell, lam) / R));
}

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

// Qui-quadrado
function chiSquared(ell, lam) {
  let s = 0;

  for (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;
  }

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

Uma versão completa deve incluir implementações precisas das funções de Bessel modificadas I0, I1, K0 e K1 para a velocidade do disco de Freeman.

8. Como reproduzir esta simulação

8.1 Em um navegador

  1. Abra qualquer navegador moderno.
  2. Abra o console do desenvolvedor.
  3. Cole a implementação completa do JavaScript.
  4. Execute a função de ajuste ou avalie χ² manualmente para ℓ e λ escolhidos.

8.2 Em Python

O mesmo algoritmo é traduzido diretamente para Python e NumPy. No Python, use scipy.special.iv e scipy.special.kv para as funções de Bessel, que são mais precisas do que as aproximações polinomiais codificadas manualmente.

import numpy as np
from scipy.special import iv, kv
from scipy.optimize import 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])

# Implemente v_baryonic, rho_dark, enclosed_dark e chi2
# usando as mesmas fórmulas descritas acima.

Um otimizador Nelder-Mead deve convergir para a mesma região física que a pesquisa de grade JavaScript, com ℓ em torno de 130 kpc e λ em torno de 0,08 no modelo simplificado.

8.3 Extensões para uma adequação à qualidade da publicação

  1. Substitua o núcleo do monopolo pelo núcleo angular exato ou pelo núcleo da função de Bessel.
  2. Adicione um componente de disco espesso.
  3. Adicione discos de gás atômico e molecular.
  4. Incluir a barra galáctica e o bojo com mais precisão.
  5. Use o MCMC bayesiano para mapear a distribuição posterior de ℓ e λ.
  6. Inclui dados de aglomerado globular, galáxia satélite e fluxo estelar até 200 kpc.

Um ajuste rigoroso deve determinar se os mesmos parâmetros podem descrever não apenas a curva de rotação do disco, mas também o formato do halo, a densidade local, o perfil de massa externa e a massa oculta em escala de cluster.

Referências

  • Abramowitz, M., Stegun, I. A. - Handbook of Mathematical Functions, Dover, 1972.
  • Bovy, J., Rix, H.-W. - A Direct Dynamical Measurement of the Milky Way's Disk Surface Density Profile (Medição dinâmica direta do perfil de densidade da superfície do disco da Via Láctea), ApJ 779, 115, 2013.
  • Freeman, K. C. - On the disks of spiral and S0 galaxies (Sobre os discos de galáxias espirais e S0), ApJ 160, 811, 1970.
  • McMillan, P. J. - The mass distribution and gravitational potential of the Milky Way (A distribuição de massa e o potencial gravitacional da Via Láctea), MNRAS 465, 76, 2017.
  • Ou, X., Eilers, A.-C., Necib, L., Frebel, A. - The dark matter profile of the Milky Way inferred from its circular velocity curve, MNRAS 528, 693, 2024.
  • Pato, M., Iocco, F., Bertone, G. - Dynamical constraints on the dark matter distribution in the Milky Way, JCAP 12, 001, 2015.
  • Portail, M. et al. - Dynamical modelling of the Galactic bulge and bar (Modelagem dinâmica do bojo e da barra galáctica), MNRAS 465, 1621, 2017.

Declaração final de reprodutibilidade

Essa simulação não é uma prova final da BeeTheory. Ela é uma estrutura numérica reproduzível.

Seu objetivo é mostrar que uma densidade efetiva baseada em ondas gerada pelo disco visível da Via Láctea pode ser comparada diretamente com observações de curva de rotação usando apenas dois parâmetros principais: um comprimento de coerência e um fator de acoplamento.

A próxima etapa científica é substituir as aproximações por núcleos exatos, expandir o modelo bariônico, propagar incertezas e testar a mesma estrutura em relação a galáxias e aglomerados de galáxias independentes.