Here is a different way, borrowing from linear programming the idea of
using a non-negative slack variable to change an inequality into an equation.
Since has only real solutions,
Introduce a non-negative slack variable s so that
Substitute for q in
Which simplifies to this
Which has the discriminant
Which simplifies to
and it must be non-negative, so
We solve this for a
OR
But since a is real, this tells us that our
slack variable s, is not only non-negative but
it is also non-positive as well.
This means s=0.
Therefore, becomes
becomes
which has solutions:
and
which are real.
Edwin