MCS 275 Spring 2022

David Dumas

Course bulletins:

- Project 3 due 6pm Fri
- Project 3 autograder open
- Homework 9 due tomorrow (Tue) at 12pm
- Worksheet 10 available
- Homework 10 will be due Tue 29 Mar (after spring break)
- Worksheet 11 will be posted early---by end of the day Fri
- Reminder: Week after spring break has 2 async lectures (#30,#32) and one in person lecture (#31 on Wed 30 Mar)

For use starting in Wednesday's lecture.

`python3 -m pip install matplotlib`

Or see the official install instructions.

Our work on **pillow** and **numpy** has involved a lot of low-level discussion of *features*, rather than fully developed application examples.

Today we'll work on changing that.

Start with a function, e.g. $f(x) = x^2$, and a number, $a$.

Apply $f$ over and over again to get a sequence:

$a, f(a), f(f(a)), f(f(f(a))), ...$

This sequence $\{ f^{n}(a) \}_{n \geq 0}$ is the **orbit** of $a$ (under $f$). What can we say about it?

Let's start with a simple example, $f(x) = x^2$.

$2\to4\to16\to256 \to 65536\to\cdots$

$\frac{1}{2} \to \frac{1}{4} \to \frac{1}{16} \to \frac{1}{256} \to \frac{1}{65536} \to \cdots$

What happens for other starting points?

For real numbers, orbits under $f(x)=x^2$ are easy:

- If $|a|<1$, the orbit of $a$ converges to $0$
- If $|a|>1$, the orbit of $a$ goes to $\infty$
- If $|a|=1$ the orbit is bounded but doesn't go to $0$

For $f(z)=z^2$ with complex numbers, it's the same!

- If $|a|<1$, the orbit of $a$ converges to $0$
- If $|a|>1$, the orbit of $a$ goes to $\infty$
- If $|a|=1$ the orbit is bounded but doesn't go to $0$

$f(z)=z^2$

The **filled Julia set** of a polynomial $f$, denoted $K_f$, is the set of complex numbers that have *bounded orbits* under $f$.

(So $a \in K_f$ is a statement about the behavior of an infinite sequence—the orbit of $a$)

Named for mathematician Gaston Julia (1893-1978) who studied these sets starting in the 1920s.

$f(z)=z^2$

Next, let's look at $f(z) = z^2 - 1$.

- Write a function to test orbit behavior of a point.
- Make a grid of points in $\mathbb{C}$ and test each one.
- Record the results in an image file (black=bounded, white=unbounded).

For $f(z) = z^2-1$, if $|a|\geq 2$, then $f^n(a) \to \infty$ as $n \to \infty$.

- Make a grid of points in $\mathbb{C}$ and test each one.
- Use numpy array operations to apply $f$ to all of them at once, repeatedly.
- Optional: Keep track of ones that are already big, and don't apply $f$ to them.
- Record the results in an image file (black=bounded, white=unbounded).

*Python Data Science Handbook*by Jake VanderPlas- Chapter 2 contains the introduction to numpy.
- There is also a print edition from O'Reilly.

- Roland Roeder's lecture notes
*Around the boundary of complex dynamics*would be a good place for undergraduates to learn more about complex dynamics. (The most popular texts on this topic assume much more background in complex analysis and would be less accessible to an undergraduate audience.)

- 2022-03-14 Initial publication