Approximating the roots of $\epsilon^{2}x^{3}+x+1$ I saw the following in my lecture notes, and I am having difficulties
verifying the steps taken.
The question is:

Assuming $0<\epsilon\ll1$ find all the roots of the polynomial
  $$\epsilon^{2}x^{3}+x+1$$ which are $O(1)$ up to a precision of
  $O(\epsilon^{2})$

and the solution given was 

Assume that $x=O(1)$ and that $$x(\epsilon)=x_{0}+\epsilon
 x_{1}+O(\epsilon^{2})$$ Then by setting it in the equation and letting
  $\epsilon\to0$ we get $$x_{0}=-1,x_{1}=0$$
Hence $x(\epsilon)=-1+O(\epsilon^{2})$

I have two questions: 


*

*Where did we use the assumption that $x=O(1)$

*How did they get $$x_{0}=-1,x_{1}=0 ?$$ 
When I did the step setting
it in the equation and letting $\epsilon\to0$ I got $$x_{0}+1+O(\epsilon^{2})=0$$
and so I don't know anything about $x_{1}$. 
Should I ignore $O(\epsilon^{2})$
and from that I should get $x_{0}=-1$
 A: This is not exactly as it is written above, but my approach would be as follows. 
First, assume that $x(\epsilon) = O(1)$. Then we can say $x(\epsilon) = x_0 + f(\epsilon)$, where $f(\epsilon) = o(1)$ is some function in $\epsilon$, and $x_0$ is constant in $\epsilon$. Filling this in, and using that $x(\epsilon)$ is a root of the equation, we get
$$\epsilon^2 (x_0 + f(\epsilon))^3 + (x_0 + f(\epsilon)) + 1 = 0.$$
Expanding the cubic, we get
$$\left(\epsilon^2 x_0^3 + 3 \epsilon^2 x_0^2 f(\epsilon) + 3 \epsilon^2 x_0 f(\epsilon)^2 + \epsilon^2 f(\epsilon)^3\right) + \left(x_0 + f(\epsilon)\right) + 1 = 0.$$
Now, note that $f(\epsilon) = o(1)$, so also $f(\epsilon)^2 = o(1)$ and $f(\epsilon)^3 = o(1)$. Further note that $x_0 = O(1)$, so also $x_0^2 = O(1)$ and $x_0^3 = O(1)$. So the second, third and fourth terms above are all $o(\epsilon^2)$. So if we combine all these $o(\epsilon^2)$-terms into one $o(\epsilon^2)$-term, we get
$$\epsilon^2 x_0^3 + o(\epsilon^2) + x_0 + f(\epsilon) + 1 = 0.$$
Rewriting this slightly, to group the terms of the same order, we get
$$(x_0 + 1) + \left(f(\epsilon) + x_0^3 \epsilon^2 + o(\epsilon^2)\right) = 0.$$
Equating the proper order terms on both sides, we must therefore have $x_0 = -1$ and $f(\epsilon) = -x_0^3 \epsilon^2 + o(\epsilon^2) = \epsilon^2 + o(\epsilon^2)$, from which we may conclude that $x(\epsilon) = -1 + \epsilon^2 + o(\epsilon^2)$.
If we do not assume $x(\epsilon) = O(1)$, then we get more solutions. In particular, the two other solutions are of the form
$$\begin{align} x(\epsilon) &= \frac{\pm i}{\epsilon} + O(1) \end{align}$$
For these solutions, we cannot say that $x(\epsilon) = x_0 + o(1)$ for some constant $x_0$, so we did not find these solutions with the above method. 
A: Much simpler: As $x(\epsilon)\in O(1)$, we have immediately from rewriting the cubic that
$$x(\epsilon)=-1-\epsilon^2x(\epsilon)^3\in -1+O(\epsilon^2).$$
A: Ok, here is how this goes: 


*

*This assumption is based on an idea of what the solution is going to look like. That is, by making this assumption, we won't be able to get any solutions where the first term ($x_0$) is not of this order. Since we are apparently not looking for solution of higher order (those where the first term $x_0$ scales as $\epsilon^{-\beta}$, $\beta>0$), this assumption will dictate what solution we are able to get. 
In response to one of the comments: the assumption that the $x_1$ term scales with $\epsilon$ is exactly that, an assumption. However, I imagine that if you followed the below separation of scales analysis using an $\epsilon^1/2$ expansion, you would find each of these terms to be zero.

*This is based on a fundamental concept from asymptotics, separation of scales - terms associated with different powers of $\epsilon$ are treated independently of others. For example, in this case, suppose we are looking for a two term solution to the polynomial above. We have 
$$ \epsilon^2 (x_0 + \epsilon^1 x_1)^3 + x_0 + \epsilon_1 x_1 + 1 = 0 $$
This comes from just substituting $x_0 + \epsilon x_1$ into the equation. 
Expanding this, we find at the $\mathcal{O}(1)$ and $\mathcal{O}(\epsilon)$ levels
\begin{gather}
\mathcal{O}(1): \quad x_0 + 1 = 0 \Rightarrow x_0 = -1 \\
\mathcal{O}(\epsilon): \quad x_1 = 0 \\
\dots 
\end{gather}
The above relies on this fundamental assumption of asymptotics that for a particular asymptotics series to solve a polynomial, the terms at scale must evaluate to zero. 
