The question: An atom of hydrogen emits a photon of energy $2eV = hf_0$. As a result, the H atom recoils causing the frequency of the photon to be changed to $f$. Write an expression for the change in frequency of the photon.

I have solved this question two ways, but get different answers, I want to know why.

$f_0$ = initial frequency of emitted photon; $f$ = measured frequency of photon; $M_p$ = proton mass

(i) via energy and momentum

$p_{photon} = \frac{h v_0}{c} $

Recoil energy of H atom = $p_{photon}^2/2M_p = \frac{h^2 f_0^2}{2M_pc^2}$

New photon energy, accounting for recoil energy loss = $hf_0 - \frac{h^2 f_0^2}{2M_pc^2} = hf $

Rearrange $\to$ $f_0 - f= \frac{h f_0^2}{2M_pc^2}$

This is the correct formula, quoted from Bransden and Joachain. Now inserting the numbers (SI units) the answer is $\approx$ $5$ x $10^5$

(ii) via recoil velocity and doppler shift
$H_{vel} = -\frac{hf_0}{cM_p}$

Doppler Shift: $f = f_0 \left( \frac{\sqrt{1 - \frac{H_{vel}^2}{c^2}}}{1 - \frac{H_{vel}}{c}}\right)$

$f_0 - f$ = $f_0 - f_0\left( \frac{\sqrt{1 - \frac{H_{vel}^2}{c^2}}}{1 - \frac{H_{vel}}{c}}\right)$

Evaluating this gives me $\approx 1$ x $10^6$

Can someone explain my mistake?