  We study in detail how neutrino perturbations can be followed in linear
theory by using only terms up to $l=2$ in the Boltzmann hierarchy. We provide a
new approximation to the third moment and demonstrate that the neutrino power
spectrum can be calculated to a precision of better than $\sim$ 5% for masses
up to $\sim$ 1 eV. The matter and CMB power spectra can be calculated far more
precisely and typically at least a factor of a few better than with existing
approximations. We then proceed to study how the neutrino power spectrum can be
reliably calculated even in the presence of non-linear gravitational clustering
by using the full non-linear gravitational potential derived from semi-analytic
methods based on $N$-body simulations in the Boltzmann evolution hierarchy. Our
results agree extremely well with results derived from $N$-body simulations.
