Given a small integer n, print all the n’th roots of unity up to 6 significant digits. We basically need to find all roots of equation xn – 1.
Input : n = 1 Output : 1.000000 + i 0.000000 x - 1 = 0 , has only one root i.e., 1 Input : 2 Output : 1.000000 + i 0.000000 -1.000000 + i 0.000000 x2 - 1 = 0 has 2 distinct roots, i.e., 1 and -1
Any complex number is said to be root of unity if it gives 1 when raised to some power.
nth root of unity is any complex number such that it gives 1 when raised to the power n.
Mathematically, An nth root of unity, where n is a positive integer (i.e. n = 1, 2, 3, …) is a number z satisfying the equation z^n = 1 or , z^n - 1 = 0
We can use the De Moivre’s formula here ,
( Cos x + i Sin x )^k = Cos kx + i Sin kx Setting x = 2*pi/n, we can obtain all the nth roots of unity, using the fact that Nth roots are set of numbers given by, Cos (2*pi*k/n) + i Sin(2*pi*k/n) Where, 0 <= k < n
Using the above fact we can easily print all the nth roots of unity !
Below is the program for the same.
= 0 ? print(” + i “): print(” – i “);
printf(round(abs($img), 6) . “ ”);
// Driver Code
// This code is contributed by mits
1.000000 + i 0.000000 1.000000 + i 0.000000 -1.000000 + i 0.000000 1.000000 + i 0.000000 -0.500000 + i 0.866025 -0.500000 - i 0.866025
References : Wikipedia
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
This article is attributed to GeeksforGeeks.org