PHYS-430 · Lesson 6 of 12 · 23 min
Binary stars and stellar masses
Mass is the single most important property of a star. It decides how bright the star is on the main sequence, how long it lives, how it evolves and how it dies. Yet a lone star's mass cannot be measured directly: its light tells us its temperature and composition, but not how much matter it contains. The only direct way to weigh a star is to watch something orbit it, and for stars that something is usually another star. About half of all Sun-like stars, and most massive stars, have at least one companion. This lesson shows how the orbits of binary stars give masses through Kepler's third law, how eclipses give radii, and how the results reveal one of the key regularities of stellar physics, the mass–luminosity relation.
Kepler's third law for two stars
In mechanics you derived Kepler's third law for a small body orbiting a much larger one. For two stars of comparable mass both move, each on its own ellipse about their common center of mass, and the law becomes
where \(a\) is the semi-major axis of the relative orbit, the orbit of one star as seen from the other. In astronomical units, years and solar masses the constants disappear, \(P^2 = a^3/(M_1 + M_2)\), and for the Earth and Sun this gives one year at 1 AU. Kepler's law gives only the total mass. To divide it between the stars we use the center of mass: since it stays fixed, the stars' distances from it are inversely proportional to their masses, \(M_1 a_1 = M_2 a_2\), and the same holds for their speeds, \(M_1 v_1 = M_2 v_2\). Measuring how far each star swings around the center of mass gives the mass ratio.
Visual binaries: weighing Sirius
A visual binary is a pair whose two stars can be seen separately in a telescope and whose orbit can be followed over years. Many close pairs on the sky are chance alignments of unrelated stars at different distances; a true binary is revealed by its orbital motion. William Herschel showed in 1803 that some double stars orbit each other, the first evidence that Newton's gravity works beyond the solar system. If the distance to the system is known from parallax, the angular size of the orbit converts to astronomical units with the small-angle formula, \(a\,(\text{AU}) = \alpha\,(\text{arcsec}) \times d\,(\text{pc})\), which follows from the definition of the parsec.
Sirius is the classic example. Bessel noticed in 1844 that Sirius wobbles across the sky with a period of about 50 years and concluded that it has an unseen companion. Alvan Graham Clark, testing a new 47 cm lens in 1862, saw the faint companion, now called Sirius B. The relative orbit has a period of 50.1 years and an angular semi-major axis of 7.50 arcseconds, and the system is 2.64 pc away. Sirius A swings 2.48 arcseconds from the center of mass and Sirius B 5.02, so their mass ratio is about 2.0.
# Masses of Sirius A and B from the visual orbit
P = 50.13 # years
alpha = 7.50 # angular semi-major axis of the relative orbit, arcseconds
d = 2.64 # distance, pc
a = alpha * d # AU
M_total = a**3 / P**2 # solar masses
aA, aB = 2.48, 5.02 # arcsec, each star's distance from the CM, the common balance point (sum = 7.50)
MA = M_total * aB / (aA + aB)
MB = M_total * aA / (aA + aB)
print(f"relative orbit a = {a:.1f} AU, total mass = {M_total:.2f} solar masses")
print(f"Sirius A = {MA:.2f}, Sirius B = {MB:.2f} solar masses (mass ratio {MA / MB:.2f})")
# how sensitive is the result to the parallax?
for err in (-0.02, 0.02):
dd = d * (1 + err)
print(f"distance {100 * err:+.0f} per hundred -> total mass {(alpha * dd)**3 / P**2:.2f} ({100 * ((1 + err)**3 - 1):+.0f} per hundred)")relative orbit a = 19.8 AU, total mass = 3.09 solar masses Sirius A = 2.07, Sirius B = 1.02 solar masses (mass ratio 2.02) distance -2 per hundred -> total mass 2.91 (-6 per hundred) distance +2 per hundred -> total mass 3.28 (+6 per hundred)
Sirius A is about twice the Sun's mass, and Sirius B, despite being 10,000 times fainter in visual light, has about the mass of the Sun. Because the mass depends on \(a^3\), and \(a\) on the distance, a 2 per hundred error in parallax becomes a 6 per hundred error in mass. Precise parallaxes from Hipparcos and Gaia have been as important for stellar masses as for distances.
Spectroscopic binaries and radial velocity curves
Most binaries are too close or too distant for their two stars to be seen separately. Many are found instead by their spectra. As the stars orbit, each moves alternately toward and away from us, and the Doppler shift of its spectral lines oscillates with the orbital period. Pickering found the first such spectroscopic binary in 1889, when the lines of Mizar A in the Big Dipper were seen to split in two and merge again every few days. If both stars' lines are visible, the system is double-lined; if one star is much fainter, only one set of lines moves and the system is single-lined.
For a circular orbit each star's radial velocity traces a sine curve, \(v_r(t) = \gamma + K \sin(2\pi t/P)\), where \(\gamma\) is the velocity of the center of mass and \(K\) is the semi-amplitude. The orbit is generally tilted at an inclination \(i\) to the sky, with \(i = 90^\circ\) for an edge-on orbit, so we measure only the projected speed \(K = v \sin i\). Eccentric orbits give skewed, non-sinusoidal curves whose shape reveals the eccentricity. From the period and semi-amplitudes of a double-lined binary, the orbit sizes are \(a_j \sin i = K_j P / 2\pi\), and Kepler's law gives
For a single-lined binary only one semi-amplitude is known, and the best that can be done is the mass function, a combination that gives a lower limit on the unseen companion's mass:
The mass function plays a starring role in later lessons: applied to X-ray binaries, in which a normal star orbits an invisible compact object, it showed in 1972 that the companion of the star in Cygnus X-1 is too massive to be a neutron star, and it is now the standard way to find black holes in our galaxy. Applied to stars with planets, it gives planet masses in lesson 11.
import math, random
random.seed(6)
G, Msun, day = 6.67430e-11, 1.989e30, 86400.0
# Synthetic double-lined binary: P = 4.0 days, gamma = 12 km/s, K1 = 40, K2 = 80 km/s, noise 2 km/s
P, gamma, K1, K2 = 4.0, 12.0, 40.0, 80.0
obs = []
for j in range(20):
t = random.uniform(0, 3 * P)
ph = 2 * math.pi * t / P
obs.append((t, gamma + K1 * math.sin(ph) + random.gauss(0, 2), gamma - K2 * math.sin(ph) + random.gauss(0, 2)))
# least squares fit of v = g + K sin(phase) for each star, with the period known
def fit(col):
s = [math.sin(2 * math.pi * t / P) for t, *_ in obs]; y = [o[col] for o in obs]
n, Sx, Sy = len(s), sum(s), sum(y)
Sxx, Sxy = sum(x * x for x in s), sum(x * v for x, v in zip(s, y))
K = (n * Sxy - Sx * Sy) / (n * Sxx - Sx * Sx); g = (Sy - K * Sx) / n
return g, K
g1, k1 = fit(1); g2, k2 = fit(2); k2 = -k2
print(f"star 1: gamma = {g1:.1f} km/s, K1 = {k1:.1f} km/s; star 2: gamma = {g2:.1f} km/s, K2 = {k2:.1f} km/s")
Msum_sin3 = P * day * ((k1 + k2) * 1e3)**3 / (2 * math.pi * G) / Msun
q = k2 / k1
print(f"(M1 + M2) sin^3 i = {Msum_sin3:.2f} solar masses, M1/M2 = {q:.2f}")
for i_deg in (90, 75, 60):
s3 = math.sin(math.radians(i_deg))**3
Mtot = Msum_sin3 / s3
print(f" if i = {i_deg:2d} deg: M1 = {Mtot * q / (1 + q):.2f}, M2 = {Mtot / (1 + q):.2f} solar masses")
f = P * day * (k1 * 1e3)**3 / (2 * math.pi * G) / Msun
print(f"mass function from star 1 alone: f(M) = {f:.3f} solar masses (M2 must be at least this)")star 1: gamma = 12.8 km/s, K1 = 39.2 km/s; star 2: gamma = 12.9 km/s, K2 = 81.1 km/s (M1 + M2) sin^3 i = 0.72 solar masses, M1/M2 = 2.07 if i = 90 deg: M1 = 0.49, M2 = 0.24 solar masses if i = 75 deg: M1 = 0.54, M2 = 0.26 solar masses if i = 60 deg: M1 = 0.75, M2 = 0.36 solar masses mass function from star 1 alone: f(M) = 0.025 solar masses (M2 must be at least this)
The fit recovers the input values to within the noise. It also shows the main limitation of spectroscopic binaries: without the inclination, the masses are known only as \(M \sin^3 i\). Since \(\sin^3 i\) falls quickly away from 90 degrees, an orbit tilted 30 degrees from edge-on makes the true masses about 1.5 times the minimum values. The inclination can be found if the stars are also seen separately, by interferometry, or if they eclipse each other.
Eclipsing binaries: masses and radii
If we view an orbit nearly edge-on, the stars pass in front of each other every orbit, and the system's brightness drops twice per period. Such eclipsing binaries were the first recognized: in 1782 the 18-year-old John Goodricke, a deaf amateur astronomer in York, measured the regular dimming of Algol every 2.87 days and suggested that a dark body was passing in front of it. An eclipse requires an inclination close to 90 degrees, so \(\sin^3 i \approx 1\) and the spectroscopic masses become true masses.
Eclipses also give radii. As the smaller star crosses the disc of the larger, the brightness falls from first contact to full eclipse in a time set by the smaller star's diameter, and stays low for a time set by the difference of diameters. With the orbital speed \(v\) from the velocity curve, the radii follow: \(R_\text{small} = v\,(t_2 - t_1)/2\) and \(R_\text{large} = v\,(t_3 - t_1)/2\), where \(t_1\) is first contact, \(t_2\) the start of the flat part and \(t_3\) its end. The depths of the two eclipses give the ratio of surface brightnesses, which depends on \(T^4\), so the ratio of temperatures. Double-lined eclipsing binaries are the gold standard of stellar astrophysics: they yield masses and radii accurate to about 1 per hundred, and they test theories of stellar structure directly. Detached eclipsing binaries in nearby galaxies have even been used as distance indicators, by comparing their computed luminosities with their measured fluxes.
Worked problem
Radii from an eclipse
In an edge-on eclipsing binary, the relative orbital speed is 220 km/s. The brightness begins to fall at \(t_1\), reaches a flat minimum 2.5 h later at \(t_2\), and the flat part ends at \(t_3\), 9.0 h after \(t_1\). Find the two radii.
Show solution
- The relative speed \(v\) carries the small star across the large one. \(R_\text{small} = v (t_2 - t_1)/2 = 220 \times 9000\ \text{s}/2 = 9.9 \times 10^5\) km.
- \(R_\text{large} = v (t_3 - t_1)/2 = 220 \times 32{,}400/2 = 3.56 \times 10^6\) km.
- Dividing by \(R_\odot = 6.96 \times 10^5\) km gives 1.42 and 5.1 solar radii.
Answer: About 1.4 and 5.1 solar radii. The larger star is probably slightly evolved off the main sequence; its temperature and luminosity would confirm this.
The mass–luminosity relation
When the masses of main-sequence stars in binaries are plotted against their luminosities, the points fall close to a single curve. Eddington predicted the relation in 1924 from his theory of stellar interiors. Over most of the main sequence it is roughly a power law,
steeper near the Sun and flatter for the most and least massive stars. The relation is the key to the main sequence: since a star's position on it is fixed by its mass, the main sequence is a sequence of mass, from about 0.08 solar masses at the bottom, the minimum for steady hydrogen fusion, to well over 100 at the top. Above roughly 150 solar masses stars are thought to be unstable to their own radiation pressure, although a few, such as R136a1 in the Large Magellanic Cloud, have estimated masses near 200. Lesson 7 derives the relation's shape from the physics of energy transport.
import math
# masses (solar) and luminosities (solar) of main-sequence stars measured in binaries and nearby systems
data = [("Proxima Centauri", 0.122, 0.00155), ("Barnard's star", 0.16, 0.0035), ("61 Cygni A", 0.70, 0.153),
("Alpha Centauri B", 0.91, 0.50), ("Sun", 1.00, 1.0), ("Alpha Centauri A", 1.10, 1.52),
("Procyon A", 1.50, 6.9), ("Sirius A", 2.06, 25.4), ("Vega", 2.15, 40.0),
("Regulus A", 3.8, 290.0), ("Spica A", 11.4, 20500.0)]
x = [math.log10(m) for _, m, _ in data]; y = [math.log10(L) for _, _, L in data]
n = len(x); mx, my = sum(x) / n, sum(y) / n
slope = sum((a - mx) * (b - my) for a, b in zip(x, y)) / sum((a - mx)**2 for a in x)
icpt = my - slope * mx
print(f"fit: log L = {slope:.2f} log M {icpt:+.2f} (L proportional to M^{slope:.2f})")
for name, m, L in data:
pred = 10 ** (icpt + slope * math.log10(m))
print(f"{name:18s} M = {m:5.2f} L = {L:9.4g} fit {pred:9.4g}")
# lifetimes: fuel is proportional to M, burn rate to L, so t ~ 10 Gyr * M / L, with L = M^slope scaled to the Sun
for m in (0.2, 1.0, 2.0, 5.0, 10.0):
L = m ** slope
print(f"a {m:4.1f} solar-mass star lives about {10e9 * m / L:10.3g} years on the main sequence")fit: log L = 3.65 log M +0.20 (L proportional to M^3.65) Proxima Centauri M = 0.12 L = 0.00155 fit 0.0007337 Barnard's star M = 0.16 L = 0.0035 fit 0.001976 61 Cygni A M = 0.70 L = 0.153 fit 0.4346 Alpha Centauri B M = 0.91 L = 0.5 fit 1.134 Sun M = 1.00 L = 1 fit 1.6 Alpha Centauri A M = 1.10 L = 1.52 fit 2.267 Procyon A M = 1.50 L = 6.9 fit 7.04 Sirius A M = 2.06 L = 25.4 fit 22.44 Vega M = 2.15 L = 40 fit 26.24 Regulus A M = 3.80 L = 290 fit 210.3 Spica A M = 11.40 L = 2.05e+04 fit 1.165e+04 a 0.2 solar-mass star lives about 7.16e+11 years on the main sequence a 1.0 solar-mass star lives about 1e+10 years on the main sequence a 2.0 solar-mass star lives about 1.59e+09 years on the main sequence a 5.0 solar-mass star lives about 1.4e+08 years on the main sequence a 10.0 solar-mass star lives about 2.22e+07 years on the main sequence
A single power law fits these stars to within a factor of about two over a range of \(10^7\) in luminosity. The scatter is real physics, not just measurement error: the relation is not exactly a power law, flattening for the lowest-mass and highest-mass stars, and stars of the same mass differ in age and composition. The lifetime estimate in the last lines anticipates lesson 8: a star's hydrogen supply is proportional to its mass, and its rate of use to its luminosity, so its lifetime scales roughly as \(M/L \propto M^{-2.5}\). Massive stars burn out in tens of millions of years or less, and the most massive, for which the power law overstates the luminosity growth, in a few million; red dwarfs will shine for hundreds of billions of years or more, far longer than the present age of the universe.
Common mistakes
MistakeApplying \(P^2 = a^3\) to binaries with \(a\) as one star's distance from the other's center.
InsteadThe law uses the semi-major axis of the relative orbit, \(a_1 + a_2\), and gives the total mass.
MistakeTreating spectroscopic masses as true masses.
InsteadRadial velocities give \(M \sin^3 i\); the inclination must be known, for example from eclipses.
MistakeThinking the brighter star in a binary is always the more massive one.
InsteadFor main-sequence pairs it is, but a white dwarf like Sirius B can be faint yet massive.
MistakeAssuming more massive stars live longer because they have more fuel.
InsteadLuminosity grows much faster than mass, so massive stars exhaust their fuel far sooner.
Summary and key terms
- Kepler's third law for binaries, \(P^2 = a^3/(M_1 + M_2)\) in years, AU and solar masses, gives the total mass.
- The center of mass divides the total: \(M_1 a_1 = M_2 a_2\) and \(M_1 K_1 = M_2 K_2\).
- Visual binaries with known parallax give masses directly; Sirius A and B are about 2.0 and 1.0 solar masses.
- Spectroscopic binaries give \(M \sin^3 i\) and the mass function; eclipsing binaries supply the inclination and the radii.
- Main-sequence stars obey a mass–luminosity relation, roughly \(L \propto M^{3.5}\).
- The main sequence is a sequence of mass, and lifetimes fall steeply with mass.
- Visual binary
- A binary whose two stars can be seen separately and followed around their orbit.
- Spectroscopic binary
- A binary detected by periodic Doppler shifts of its spectral lines.
- Eclipsing binary
- A binary whose stars pass in front of each other as seen from Earth.
- Mass function
- \(P K_1^3/2\pi G\), a lower limit on the companion's mass in a single-lined binary.
- Mass–luminosity relation
- The approximate law \(L \propto M^{3.5}\) for main-sequence stars.
Practice problems
Work each problem on paper first, then reveal the answer to check.
Two stars orbit with a period of 10 years and a separation of 10 AU. What is their total mass?
Show answer
\(10^3/10^2 = 10\) solar masses.
In a binary, star 1 moves with \(K_1 = 30\) km/s and star 2 with \(K_2 = 90\) km/s. What is the mass ratio?
Show answer
\(M_1/M_2 = K_2/K_1 = 3\).
A visual binary at 5 pc has an angular semi-major axis of 2 arcseconds. What is \(a\) in AU?
Show answer
\(2 \times 5 = 10\) AU.
Using \(L \propto M^{3.5}\), how much more luminous is a 3 solar-mass star than the Sun?
Show answer
\(3^{3.5} = 47\) times.
Why are eclipsing binaries especially valuable?
Show answer
They must be nearly edge-on, so spectroscopic masses become true masses, and their eclipses also give radii and temperature ratios.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.