import numpy as np
import sympy as sym
import matplotlib.pyplot as plt
from IPython.display import display,Math
print('Roots of unity')
display(Math('n^n = 1, \\quad z \\quad \\epsilon \\quad C'))
display(Math('z = e^{2 \\pi ik / n}'))
display(Math('k = 0,1, ..., n -1'))
n = 5
for k in range(0,n):
z = np.exp(2*np.pi*1j*k/n)
print(z**n)
n = 5
for k in range(0,n):
z = sym.exp(2*sym.pi*sym.I*k/n)
print(z**n)
n = 4
for k in range(0,n):
z = sym.exp(2*sym.pi*sym.I*k/n)
display(Math('(%s)^{%s} \\Rightarrow %s' %(sym.latex(z),n,sym.latex(z**n))))
n = 14
for k in range(0,n):
z = np.exp(2*np.pi*1j*k/n)
plt.plot([0,np.real(z)],[0,np.imag(z)])
plt.axis('square')
x = np.linspace(0,2*np.pi,100)
plt.plot(np.cos(x),np.sin(x),color='grey')
plt.show()
Exercise
display(Math('ke^{\\frac{k2 \\pi i}{n}}'))
n = 200
color = np.linspace(0,.9,n)
for k in range(0,n):
z = k*np.exp(2*np.pi*1j*k/n)
plt.plot([0,np.real(z)],[0,np.imag(z)],linewidth=2,color=[color[k],color[k],color[k]])
plt.axis('square')
plt.axis('off')
plt.show()