This is a brief return to the topic of Irrational Sunflowers. The sunflower associated with a real number is the set of points with polar coordinates and , . A sunflower reduces to equally spaced rays if and only if is a rational number written in lowest terms as .
Here is the sunflower of of size .
Seven rays emanate from the center because , then they become spirals, and spirals rearrange themselves into 113 rays because . Counting these rays is boring, so here is a way to do this automatically with Python (+NumPy as np):
a = np.pi n = 5000 x = np.mod(a*np.arange(n, 2*n), 1) np.sum(np.diff(np.sort(x)) > 1/n)
This code computes the polar angles of sunflower points indexed , sorts them and counts the relatively large gaps between the sorted values. These correspond to the gaps between sunflower rays, except that one of the gaps gets lost when the circle is cut and straightened onto the interval . So the program output (112) means there are 113 rays.
Here is the same sunflower with the points alternatively colored red and blue.
The colors blur into purple when the rational approximation pattern is strong. But they are clearly seen in the transitional period from 22/7 approximation to 355/113.
- How many points would we need to see the next rational approximation after 355/113?
- What will that approximation be? Yes, 22/7 and 355/113 and among the convergent of the continued fraction of . But so is 333/106 which I do not see in the sunflower. Are some convergents better than others?
Finally, the code I used to plot sunflowers.
import numpy as np import matplotlib.pyplot as plt a = np.pi k = np.arange(10000) r = np.sqrt(k) t = a*2*np.pi*k plt.axes().set_aspect('equal') plt.plot(r*np.cos(t), r*np.sin(t), '.') plt.show()