Binary Mass Function Calculator
Calculate the binary mass function f(M) = PK³/(2πG)(1-e²)^1.5 from an orbital period and radial-velocity semi-amplitude, giving an assumption-free lower bound on an unseen companion's mass — plus an advanced mode that numerically solves for M2 given an inclination and the visible star's mass, with a mass-benchmark ruler and an inclination-dependence chart.
Binary mass function calculator
From an orbital period and RV semi-amplitude alone — — you get something genuinely useful even with the inclination and the visible star's mass completely unknown: is always a strict lower bound on the companion's mass, , true for any and any .
The shaded band is every mass the companion is allowed to have; the marked f(M) is its left edge. Landmark masses give a sense of the neutron-star/black-hole boundary.
You can’t see the compact object in an X-ray binary directly — no telescope resolves a black hole or neutron star that way. What you can see is its visible companion star wobbling back and forth, Doppler-shifted by the pull of something orbiting it. From just that wobble’s period and speed, one number — the binary mass function — tells you something concrete about the invisible thing on the other end, without needing to know the system’s orientation in space at all.
The mass function below is a generalization of a more basic relation: Kepler’s Third Law Calculator solves the plain two-body version, , for period, semi-major axis, or total mass directly — worth a look for the simpler case where you don’t need the inclination-dependent machinery here.
The mass function
is the orbital period, the visible star’s radial-velocity semi-amplitude (how fast its line-of-sight speed swings from the orbit), and the orbital eccentricity. The right-hand side is where the physics lives: and are the two stars’ masses, and is the orbital inclination — how tilted the orbit’s plane is relative to our line of sight. Radial velocity only measures the line-of-sight component of orbital motion, which is why (and, cubed, ) appears: at (edge-on) we see the full orbital speed; at (face-on) the star moves entirely across the sky and would be zero regardless of how fast it’s actually orbiting.
The result that needs no assumptions at all
Both and are usually unknown. But look at what can never exceed: because makes , and ,
is always a lower bound on — true for any and any inclination, no assumptions required. This is exactly the argument historically used to build the case for Cygnus X-1: even the bare mass function, computed from nothing but the optical star’s period and velocity, already exceeded what a neutron star could plausibly weigh.
Solving for an exact companion mass
If you’re willing to estimate the visible star’s mass (usually from its spectral type) and assume an inclination (from eclipse timing, ellipsoidal light-curve variations, or a model fit), the relation becomes a genuine cubic equation in , which this calculator solves numerically rather than approximating. Try it on the Cygnus X-1 preset: with the donor star’s mass (~40.6 M☉) and the system’s measured inclination (~27.5°) plugged in, the mass function alone ( M☉ from days and km/s) resolves to a companion mass of about 21 M☉ — matching modern measurements of the black hole at Cygnus X-1’s heart.
Reading the two charts
- The mass ruler shades the entire range is allowed to occupy — everything at or above — next to a few reference masses (a typical neutron star, the rough maximum a neutron star’s equation of state can support, and a typical stellar-mass black hole). Seeing the shaded region swallow the neutron-star landmarks entirely is a much more direct argument than the number alone.
- The inclination-dependence curve shows exactly how sensitive the solved is to the one thing you usually can’t measure directly: at low inclination (near face-on), the required companion mass blows up, since a small has to be compensated by a much larger to match the same observed . Where the curve sits above the ~3 M☉ line, no plausible inclination lets the companion be a neutron star.
Changelog
- 2026-08-31Published.