Construct approximation by eliminating algebraic terms of small magnitude
You could use first order Taylor expansion, e.g. with
f = α β + α + β;
(f /. {α -> 0, β -> 0}) + (D[f, {{α, β}, 1}] /. {α -> 0, β ->0}).{α, β}
$\alpha +\beta$
For your second example (with typos fixed), I obtain
numerator = α β + β^2 + α + β + β q[t] - ϵ λ q[t];
denominator = 1 + α + ϵ - α β LD[t] + β q[t] + α β q[t];
f = numerator/denominator;
(f /. {α -> 0, β -> 0}) + (D[ f, {{α, β}, 1}] /. {α -> 0, β -> 0}).{α, β}
$$\alpha \left(\frac{\lambda \epsilon q(t)}{(\epsilon +1)^2}+\frac{1}{\epsilon +1}\right)+\beta \left(\frac{\lambda \epsilon q(t)^2}{(\epsilon +1)^2}+\frac{q(t)+1}{\epsilon +1}\right)-\frac{\lambda \epsilon q(t)}{\epsilon +1}$$
Let me give a slightly different form, that is - as far as I see quickly - equivalent to that of Henrik Schumacher, and show, why there appears a q[t]^2 term.
f[a_, b_] := a b + a + b
Take series for small eps, and fix the result with eps->1
(Series[f[a eps, b eps], {eps, 0, 1}] // Normal) /. eps -> 1
(* a + b *)
Higher orders give the original function
(Series[f[a eps, b eps], {eps, 0, 5}] // Normal) /. eps -> 1
(* a + b + a b *)
Now the rational function
numerator[a_, b_] :=
a*b + b^2 + a + b + b q[t] - ϵ*λ*q[t]
denominator[a_, b_] :=
1 + a + ϵ - a*b*LD[t] + b*q[t] + a*b*q[t]
ser0 = (Series[
numerator[a eps, b eps]/denominator[a eps, b eps], {eps, 0,
1}] // Normal) /. eps -> 1 // Together
(* (1/((1 + ϵ)^2))(a + b + a ϵ + b ϵ +
b q[t] + b ϵ q[t] - ϵ λ q[t] +
a ϵ λ q[t] - ϵ^2 λ q[t] +
b ϵ λ q[t]^2) *)
Taking separate series
ser1 = (Series[numerator[a eps, b eps], {eps, 0, 1}] // Normal) /.
eps -> 1 // Together
(* a + b + b q[t] - ϵ λ q[t] *)
ser2 = (Series[denominator[a eps, b eps], {eps, 0, 1}] // Normal) /.
eps -> 1 // Together
(* 1 + a + ϵ + b q[t] *)
Although ser1/ser2 has no q[t]^2 term, it has a term q[t]/(1 + b q[t])
which yields a q[t]^2 term with small b
(Series[q[t]/(1 + b q[t]) /. {a -> a eps, b -> b eps}, {eps, 0, 1}] //
Normal) /. eps -> 1
(* q[t] - b q[t]^2 *)
Therefore further series ser3 has to be done, that yields the same result as ser0
ser3 = (Series[ser1/ser2 /. {a -> a eps, b -> b eps}, {eps, 0, 1}] //
Normal) /. eps -> 1 // Together
(* (1/((1 + ϵ)^2))(a + b + a ϵ + b ϵ +
b q[t] + b ϵ q[t] - ϵ λ q[t] +
a ϵ λ q[t] - ϵ^2 λ q[t] +
b ϵ λ q[t]^2) *)
ser3 == ser0
(* True *)
I would follow the approach recommended by @Jens in the linked answer, which is similar to the answer by @Akku ( It is different since @Akku takes series of the numerator and denominator separately, and then finds the series of the ratio after normalizing). Introduce a dummy scaling variable, and then do a series expansion about the scaling variable:
r = Normal @ Series[numerator/denominator /. v : α|β -> s v, {s, 0, 1}] /. s->1
-ϵ λ q[t]/(1 + ϵ) + (α + β + α ϵ + β ϵ + β q[t] + β ϵ q[t] + α ϵ λ q[t] + β ϵ λ q[t]^2)/(1 + ϵ)^2
We can use Collect
to get this into basically the same form as @Henrik's answer:
Collect[r, {α, β}, Apart] //TeXForm
$\alpha \left(\frac{\lambda \epsilon q(t)}{(\epsilon +1)^2}+\frac{1}{\epsilon +1}\right)+\beta \left(\frac{\lambda \epsilon q(t)^2}{(\epsilon +1)^2}+\frac{q(t)}{\epsilon +1}+\frac{1}{\epsilon +1}\right)-\frac{\lambda \epsilon q(t)}{\epsilon +1}$
This approach will scale much better for higher order expansions.