Notebook
Create a (very basic) instance of this class, and plot it up over a range of phases using its evaluate() method.
This is where we start to go down the rabbit hole. Start to add more terms...