Dark Matter and Galaxy Rotation
Dark matter sounds mysterious, but the idea behind my bachelor's project was very down to earth: if you watch how our galaxy spins, you can weigh the invisible matter that holds it together. In this article, I will walk through what I did in that project and why it matters.
Related: Download my bachelor's thesis (PDF)
Why galaxy rotation is weird
In a simple picture, stars in a galaxy orbit the center just like planets orbit the Sun: the farther out you go, the slower you should move. If most of the mass is concentrated near the center (in the bright bulge), Newtonian gravity tells us that the circular speed \(v_{\text{circ}}(r)\) at radius \(r\) should scale like
$$v_{\text{circ}}(r) = \sqrt{\frac{GM}{r}},$$
meaning the speed should fall as you move outward.
Observations by Vera Rubin and others showed something completely different: beyond a certain radius, the rotation curves of spiral galaxies become almost flat, so \(v_{\text{circ}}(r)\) stays roughly constant instead of dropping. In equation form, instead of seeing the expected \(\propto 1/\sqrt{r}\) behavior, astronomers see
$$v_{\text{circ}}(r) \approx \text{constant},$$
which implies that the enclosed mass grows roughly linearly with radius, \(M(r) \propto r\), well beyond the visible stars.
Enter dark matter halos
To explain this, astronomers propose that galaxies live inside large, invisible "halos" of dark matter that extend far beyond the visible disk. In my project, I modeled the Milky Way as a combination of:
- A bright central bulge of stars.
- A thin rotating disk of stars and gas.
- A roughly spherical dark matter halo surrounding everything.
Mathematically, each component is described by a density profile \(\rho(\mathbf{x})\), and together they give the total gravitational pull. For the dark matter halo, I explored several popular profiles, for example the Navarro–Frenk–White (NFW) profile, normalized to the local dark matter density \(\rho_{\text{DM},\odot}\):
$$\rho_{\text{NFW}}(r) = \rho_{\text{DM},\odot} \left(\frac{R_0}{r}\right) \left(\frac{r_s + R_0}{r_s + r}\right)^2,$$
where \(R_0\) is the Sun's distance from the Galactic center and \(r_s\) is a characteristic scale radius of the halo.
For the visible bulge, a simple spherical profile works well:
$$\rho_b(r) = \rho_{b0}\left(1 + \left(\frac{r}{r_b}\right)^2\right)^{-3/2},$$
with \(\rho_{b0}\) the central density and \(r_b\) a scale radius.
For the disk, which is thin and flattened, the density in cylindrical coordinates \((R, z)\) can be approximated as
$$\rho_d(R,z) = \frac{\Sigma_0}{2z_d}\exp\!\left(-\frac{R - R_0}{R_d}\right)\exp\!\left(-\frac{|z|}{z_d}\right),$$
where \(\Sigma_0\) is the local surface density, and \(R_d, z_d\) are the radial scale length and vertical scale height of the disk.
From mass to gravity to rotation speed
Once the mass distribution is specified, the next step is to compute the gravitational potential \(\Phi\), which satisfies Poisson's equation
$$\nabla^2 \Phi = 4\pi G \rho.$$
For a spherically symmetric component (like the halo or bulge), the enclosed mass
$$M(r) = \int_0^r 4\pi r'^2 \rho(r')\,dr'$$
determines the potential, and the circular speed follows from
$$v_c^2(r) = \frac{GM(r)}{r}.$$
The disk is trickier because it is thin and not spherical. In the thin-disk approximation with surface density \(\Sigma(R) = \Sigma_0 e^{-(R-R_0)/R_d}\), the potential in the midplane \(z=0\) can be written in terms of modified Bessel functions \(I_n\) and \(K_n\), and the resulting circular speed is
$$v_c^2(R) = 4\pi G \Sigma_0 R_d \left(\frac{R}{2R_d}\right)^2 e^{R_0/R_d} \left[ I_0\!\left(\frac{R}{2R_d}\right)K_0\!\left(\frac{R}{2R_d}\right) - I_1\!\left(\frac{R}{2R_d}\right)K_1\!\left(\frac{R}{2R_d}\right)\right].$$
In practice, the total model rotation curve is obtained by summing the contributions of halo, bulge, and disk:
$$v_c^2(r) = v_{c,\text{halo}}^2(r) + v_{c,\text{bulge}}^2(r) + v_{c,\text{disk}}^2(r).$$
Fitting the Milky Way with Bayesian tools
The main goal of my project was to find which combinations of parameters (like \(\rho_{\text{DM},\odot}\), \(r_s\), \(\rho_{b0}\), \(r_b\), \(\Sigma_0\), \(R_d\)) best reproduce the observed rotation curve of the Milky Way. This is a difficult, multi-parameter problem: each parameter influences the curve in a different way, and they can trade off against each other.
To tackle this, I used Bayesian inference and Markov Chain Monte Carlo (MCMC) methods. In Bayesian language, Bayes' theorem reads
$$p(\Theta \mid \text{data}) \propto p(\text{data} \mid \Theta)\,p(\Theta),$$
where \(\Theta\) denotes the set of model parameters, \(p(\Theta)\) is the prior (our initial assumptions), and \(p(\text{data} \mid \Theta)\) is the likelihood (how well the model fits the rotation curve data).
Concretely, the likelihood was built from a \(\chi^2\) statistic,
$$\chi^2 = \sum_{i=1}^N \left(\frac{v_{c,\text{obs}}(r_i) - v_{c,\text{th}}(r_i;\Theta)}{\sigma_i}\right)^2,$$
where \(v_{c,\text{obs}}(r_i)\) and \(\sigma_i\) are the observed rotation speed and its uncertainty at radius \(r_i\), and \(v_{c,\text{th}}(r_i;\Theta)\) is the model prediction.
Instead of scanning a rigid grid in this high-dimensional parameter space (which would be very slow), I used an affine-invariant ensemble sampler (Goodman–Weare style, implemented in tools like emcee and CosmoHammer) to efficiently explore the region of parameter space that gives good fits. The output is not a single "best-fit" model but a full probability distribution for each parameter, including uncertainties and correlations.
What the project showed
From this analysis, I obtained tight constraints on:
- The local dark matter density in the solar neighborhood, \(\rho_{\text{DM},\odot}\).
- The scale radius of the Milky Way dark matter halo, \(r_s\).
- Key parameters describing the bulge and disk, such as \(\rho_{b0}\), \(\Sigma_0\), and \(R_d\).
At the time of the project, the available rotation curve data were not precise enough to clearly distinguish between different dark matter profiles (such as NFW, Burkert, or Einasto) based solely on the fit quality. However, by generating and analyzing mock data with higher precision, I showed that upcoming measurements—especially from missions like GAIA—would be able to "nail down" the dark matter distribution in the Milky Way with much better accuracy.
In simple language, my bachelor's project used the way our galaxy spins as a weighing scale to map out the invisible matter around us. By combining realistic models of visible and dark matter with Bayesian statistics and MCMC, it turned scattered observational data into quantitative statements about how much dark matter is near the Sun and how it is spread through the Galactic halo.