little-o notation
/ little oh /
If big-O says 'no bigger than, up to a constant', little-o says something stronger: 'utterly negligible compared to'. It is the language for a quantity that doesn't just stay bounded relative to g — it shrinks to nothing relative to g. Picture the dust on a moving truck: as the truck speeds up, the dust's contribution to the total mass becomes a smaller and smaller fraction. That vanishing fraction is the spirit of little-o.
The precise meaning: f(x) = o(g(x)) as x tends to a limit means the ratio f(x)/g(x) goes to 0 in that limit. Equivalently, for every constant epsilon, however small, f(x) is eventually smaller than epsilon times g(x). Contrast this with big-O, where one fixed constant suffices. So x = o(x^2) as x tends to infinity (x grows, but x^2 grows so much faster that x/x^2 = 1/x goes to 0), while near zero x^2 = o(x) (the ratio x^2/x = x goes to 0). Note that o(g) is automatically also O(g), but not the reverse.
Little-o is how we state that a Taylor expansion is genuinely an approximation: sin x = x + o(x) near 0 says the error is smaller than x itself in proportion, which is exactly the defining property of the derivative as a best linear fit. It also pins down asymptotic equivalence: f and g are asymptotically equal precisely when their difference is o(g). The caveat mirrors big-O: little-o still hides everything quantitative — it tells you a term is negligible in the limit, but not at what value of x that negligibility actually kicks in.
cos x = 1 - x^2/2 + o(x^2) as x tends to 0, because the next true term x^4/24 divided by x^2 goes to 0.
o(x^2) means 'shrinks faster than x^2' — a stronger statement than O(x^2), which only means 'no faster than x^2'.
Every little-o is also a big-O, but not vice versa: x = O(x) but x is not o(x). Little-o forbids the ratio from settling on any nonzero constant; big-O allows it.