# Lecture 27

## Julia sets

MCS 275 Spring 2022
David Dumas

### Lecture 27: Julia sets

Course bulletins:

• Project 3 due 6pm Fri
• 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)

## Install matplotlib

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.

## Dynamics

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$

## Filled Julia set

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$.

## First design

• 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).

## Divergence criterion

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

## Improved design

• 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).

### Revision history

• 2022-03-14 Initial publication