# Quick way to find all roots of a polynomial?

I'm following an example of finding the splitting field for $f(X)=X^3-2$ over $\mathbb{Q}$. It reads, if $\alpha$ is the positive cube root of $2$, then the roots of $f$ are $\alpha$, $\alpha(-\frac{1}{2}+i\frac{1}{2}\sqrt{3})$, and $\alpha(-\frac{1}{2}-i\frac{1}{2}\sqrt{3})$.

My question is, how does one know what those two latter roots are so quickly? Is there a general way to find all the other roots of a polynomial if you can find the obvious one, in this case $\sqrt[3]{2}$?

-

The other two roots are $\omega\sqrt[3]{2}$ and $\omega^2\sqrt[3]{2}$, where $\omega$ is a primitive cubic root of unity. It just so happens that the primitive cubic roots of unity are easy to express, because they are the "other two" roots of $x^3-1 = (x-1)(x^2+x+1)$, so they can be found using the quadratic formula.

In general, the $n$ complex roots of $x^n-a$, with $a\in\mathbb{R}$, are given by $$\sqrt[n]{a},\quad \zeta_n\sqrt[n]{a},\quad \zeta_n^2\sqrt[n]{a},\quad\ldots,\quad \zeta_n^{n-1}\sqrt[n]{a},$$ where $\zeta_n$ is a primitive $n$th root of unity.

Also, if you happen to know one root of a cubic polynomial, then you can always divide and solve the resulting quadratic. Here, you have $x^3-2$, and you know that $x-\sqrt[3]{2}$ is a factor (because $\sqrt[3]{2}$ is a root). Factoring, you have $$x^3 - 2 = (x-\sqrt[3]{2})(x^2 + \sqrt[3]{2}x + \sqrt[3]{4}).$$ So the other two roots are the roots of the quadratic, which can be found using the quadratic formula: $$r_1 = \frac{-2^{1/3} + \sqrt{2^{2/3} - 4\cdot 2^{2/3}}}{2},\qquad r_2 = \frac{-2^{1/3} - \sqrt{2^{2/3} - 4\cdot 2^{2/3}}}{2}.$$ Simplify the square root, factor out $2^{1/3}$, and you get the expressions as well. E.g., \begin{align*} r_1 &= \frac{-2^{1/3}+\sqrt{2^{2/3}-4\cdot 2^{2/3}}}{2}\\ &= \frac{-2^{1/3}+\sqrt{2^{2/3}(-3)}}{2}\\ &= \frac{-2^{1/3} + 2^{1/3}\sqrt{-3}}{2}\\ &= \left(\frac{-1+\sqrt{-3}}{2}\right)2^{1/3}\\ &= \left( - \frac{1}{2} + \frac{\sqrt{3}}{2}i\right)\sqrt[3]{2}. \end{align*}

-
Thank you very much. – Vogelsong Jun 11 '11 at 6:49

No, but there is a way to find all of the $n$th roots of a complex number if you know one of the roots. Specifically, if $a$ is a complex number and $r$ is an $n$th root of $a$, then the roots of the polynomial $x^n - a = 0$ are precisely $$r,\quad r\omega,\quad r\omega^2,\quad \ldots,\quad r\omega^{n-1}$$ where $\omega$ is a primitive $n$th root of unity, i.e. $$\omega \;=\; e^{2\pi i/n} \;=\; \cos\left(\frac{2\pi}{n}\right) + i \sin\left(\frac{2\pi}{n}\right).$$ (See the roots of unity article on Wikipedia.) In this case, $r=\sqrt[3]{2}$ and $$\omega \;=\; \cos\left(\frac{2\pi}{3}\right) + i \sin\left(\frac{2\pi}{3}\right) \;=\; -\frac{1}{2} + i\frac{\sqrt{3}}{2}.$$

-

To fill in a little on the answers of others, suppose that $a \ne 0$ and we are solving the equation $$x^n=a.$$

Let $r$ be any solution, that is, suppose that $r^n=a$.

Let $ry=x$. Then $x$ is a solution iff $(ry)^n=a$ iff $r^ny^n=a$ iff $ay_n=a$ iff $y^n=1$.

The solutions of $y^n=1$ ("the $n$-th roots of unity") have been amply described in the other posts.

-

To directly answer your question - no, there's no general "quick" way to find all the roots of a polynomial given one root, whether or not it's an "obvious" one. You can certainly divide the polynomial by $x-\alpha$ where $\alpha$ is the root you know, and then you need to find the roots of the result which is a polynomial of degree smaller by 1.

The example you're following was likely written under the assumption that you know how to find all the complex roots of a number, as mentioned by Arturo.

-