We will consider the family of maps $f_c(x) = \frac{1}{2} (e^x + x - c).$ We can see this is a homeomorphism of $\mathbb R$ because the derivative is everywhere in the interval $[\frac{1}{2},+\infty)$. Another nice property of the map is that $f_c'(0)=1$ for all $c$. Also $f'$ is increasing so that this is the only point where $f'_c$ is zero.

In [1]:

# This function returns the map f_c. def f(c): m(x) = 1/2*(e^x + x - c) return m

In [2]:

f_1 = f(1) x = var("x") f_1(x)

1/2*x + 1/2*e^x - 1/2

In [3]:

# The identity map identity(x) = x

A *bifurcation* occurs at the value $c=1$. Here we plot some nearby values

In [4]:

# Plot of f_0.9 plot(f(0.9),-1,1,aspect_ratio=1)+plot(identity, color="red")

In [5]:

# Plot of f_1 plot(f(1),-1,1,aspect_ratio=1)+plot(identity, color="red")

In [6]:

# Plot of f_1.1 plot(f(1.1),-1,1,aspect_ratio=1)+plot(identity, color="red")

A *bifurcation* is a sudden change in the dynamics as we change the parameters of a family of dynamical systems. In this case, a bifurcation occurs at the value $c=1$:

- For values of $c<1$: For every $x \in \mathbb R$, $\lim_{n \to +\infty} f_c^n(x)=+\infty$. That is, $W^s(+\infty)=\mathbb R$.
- At the value $c=1$: The map $f_1$ has a single fixed point, $f_1(0)=0$. For values of $x<0$, we have $\lim_{n \to +\infty} f_1^n(x)=0$. For values of $x>0$, we have $\lim_{n \to +\infty} f_1^n(x)=+\infty$. That is, $W^s(0)=(-\infty,0] \quad \text{and} \quad W^s(+\infty)=(0,+\infty).$
- At values of $c>1$: The map $f_c$ has two fixed points, denote them by $a$ and $b$ with $a

We can visualize this bifurcation in the $(x,c)$ plane, where dynamics in the horizontal line of height $c$ represent the action of $f_c$. First, let us compute the fixed points.

Observe that the $x$ value of a fixed point uniquely determines the $c$ value:

In [7]:

c=var("c") x=var("x") solve(f(c)(x)==x,c)

[c == -x + e^x]

In [8]:

c_value_of_fixed_point(x) = e^x - x

In [9]:

fixed_point_plot = plot(c_value_of_fixed_point, -2, 1.25, aspect_ratio=1) fixed_point_plot

Since $c$ is a parameter, it is constant under iteration. We define the map $F(x,c) = \big(f_c(x), c\big).$

In [10]:

F(x,c) = (f(c)(x), c) F(x,c)

(-1/2*c + 1/2*x + 1/2*e^x, c)

We can visualize $F$ as a vector field. At each point $(x,c)$, we join $(x,c)$ to its image $F(x,c)$ by a displacement vector with value $F(x,c)-(x,c)$. We just compute this to be:

In [11]:

V(x,c) = (-1/2*c + 1/2*x + 1/2*e^x - x, 0)

In [12]:

fixed_point_plot + plot_vector_field(V(x,c), (x,-2,1.25), (c,0,2.2))