# Alternatives to the Logistic Equation

Yesterday, I decided to plot the bifurcation diagram of the logistic equation. This is a famous plot from the 70s, with which many geeks will be familiar. It shows that simple systems can switch into "chaos mode" and begin to bifurcate wildly.

tl;dr: bifurcation.R

To produce the graph, we use code in the R programming language. Following that is an exploration into using alternative equations to get different graphs.

First off, we set the range and maximum iterations for the plot:

```
# Set the range of the r values
r_range <- seq( 1, 4, 0.01 )
# Set the maximum number of x iterations
x_max <- 30
```

Next we initialize the vector to hold our points:

```
# Initialize the bucket of x's
v <- c()
```

Here are the guts of the program that collects the points to plot:

```
# For each r, find the x values...
for ( r in r_range ) {
# Start at a low x value
x <- 0.1
# Repeat x_max times...
for ( i in 0 : x_max ) {
# The logistic equation
x <- r * x * ( 1 - x )
# Hopefully we have stabilized
if ( i > x_max / 2 ) {
v <- c( v, x )
}
}
}
```

The crucial bit, to keep in mind, is the line with the iterating logistic equation.

Lastly we plot the points and save the graph!

```
png(file = 'bifurcation.png')
plot(
seq( 1, 4, length.out = length(v) ),
v,
type = 'p',
cex = 0.1,
xlab = 'r',
ylab = 'x'
)
dev.off()
```

OK. Now that we have our traditional logistic equation bifurcation diagram, what can we do next? How about finding other equations which produce bifurcation diagrams? Check these out:

The equation, `x <- r * x ** (1 - x)`

generates this plot:

The equation, `x <- r * cos(x) - sin(x)`

generates this plot:

The equation, `x <- r * exp(x) * (1 - exp(x))`

generates this plot:

More alternative equations:

`r - x ** 2`

or `r ** cos(1 - x)`

or `r * cos(x) * (1 - sin(x))`

...