# 1a)

In [1]:
format long;

function x = Updatex(r, x)
x = r.*x.*(1-x);
end

function x = TrajLogEq(n, r, x, fig, s=0)
x = [x, zeros(1, n-1)];
for i = 2:n
x(i) = Updatex(r, x(i-1));
end

if fig == 1
plot(1:n , x + s)
xlabel('Iteration n')
ylabel('Population x')
end
end

function BFDLogEq(r, x)
hold on;
x = 0*r + x;
for n = 2:1000
x = Updatex(r,x);
if n >= 990
scatter(r, x, 1, "k")
end
end
title('Finite iteration BFD')
xlabel('BFP r')
ylabel('Fixed point x*')
end

In [2]:
n = 50;
r = 2.75;
hold on;
TrajLogEq(n, r, 0.1, 1);
TrajLogEq(n, r, 0.2, 1);


Lets look at the phase diagram of the system in the limit where $x_{n+1} = x_{n} = x$ $x_{n+1} = rx_{x}(1-x_{n})$ $x = rx(1-x)$ Which has root solutions of the form $x = 0, \ \ x = 1- \frac{1}{r}$ We can plot the fixed points (in the limit) as a function of r and check for when r = 2.75.

In [26]:
fixedpoint = 1-(1/2.75)

r = 0.1:0.1:4;
hold on;
plot(r, 1-1./r);
plot(r, 0*r)
xlabel('r')
ylabel('x*')

fixedpoint = 0.636363636363636

# 1b)

From the BFD and trajectories below we can approximate the behaviour over our BF parameter.

• $0 < r < 3 \Rightarrow$ stable
• $3 < r < 3.45 \Rightarrow$ 2 cycle
• $3.45 < r < 3.54 \Rightarrow$ 4 cycle
• $3.54 < r < 3.57 \Rightarrow$ 8 cycle
• $3.57 < r \Rightarrow$ Chaotic

Graphs below are shifted.
In [29]:
n = 60;
for r = [2.5, 3.0, 3.2, 3.5];
figure
hold on;
TrajLogEq(n, r, 0.1, 1);
TrajLogEq(n, r, 0.2, 1,1);
end


# 1c)

r = 3.0, t approx 3 iterations
r = 3.2, t approx 5 iterations
r = 3.5, t approx 5 iterations

# 1d)

We want to model the fixed point as a function of the BFP. In order to capture cycles, we need to scatter a few iterations after the system has tended to the fixed point. See function above.

# 1e)

BFD

In [38]:
figure 1
r = 1.8:1e-4:4;
x = 0.6;
BFDLogEq(r, x)

figure 2
r = 3.45:1e-4:3.8;
x = 0.6;
BFDLogEq(r, x)

figure 3
r = 3.56:1e-4:4;
x = 0.6;
BFDLogEq(r, x)


# 1f)

The pitchfork BF are a good example of self sym. These occur at the cycle doubling BFPs listed above.

# 1g)

We see that the two trajectories are symmetric for the first few iterations before diverging. This indicated sensitivity to initial conditions.

In [43]:
r = 3.67;

n = 50;
figure
hold on;
TrajLogEq(n, r, 0.1, 1);
TrajLogEq(n, r, 0.1001, 1, 1);

n = 20;
figure
hold on;
TrajLogEq(n, r, 0.1, 1);
TrajLogEq(n, r, 0.1001, 1);

figure
r = 3.56:1e-4:4;
x = 0.1;
BFDLogEq(r, x)

figure
r = 3.56:1e-4:4;
x = 0.1001;
BFDLogEq(r, x)


# 2a)

In [2]:
function x = UpdatexTwo(r, x)
x = x.*exp(r.*(1-x));
end

function x = TrajLogEqTwo(n, r, x, fig, s=0)
x = [x, zeros(1, n-1)];
for i = 2:n
x(i) = UpdatexTwo(r, x(i-1));
end

if fig == 1
plot(1:n , x + s)
xlabel('Iteration n')
ylabel('Population x')
end
end

function BFDLogEqTwo(r, x)
hold on;
x = 0*r + x;
for n = 2:1000
x = UpdatexTwo(r,x);
if n >= 990
scatter(r, x, 1, "k")
end
end
title('Finite iteration BFD')
xlabel('BFP r')
ylabel('Fixed point x*')
end

In [8]:
r = 0:5e-3:4;
x = 0.5;
BFDLogEqTwo(r,x)


From the BFD and trajectories below we can approximate the behaviour over our BF parameter.

• $0<\lambda<2 \Rightarrow$ stable
• $2<\lambda<2.525 \Rightarrow$ 2 cycle
• $2.525<\lambda<2.652 \Rightarrow$ 4 cycle
• $2.652<\lambda<2.68 \Rightarrow$ 8 cycle
• $2.68<\lambda \Rightarrow$ Chaotic
In [17]:
x = 0.5;

figure 1
r = 1.9:5e-4:2.55;
BFDLogEqTwo(r,x)

figure 2
r = 2.5:5e-4:2.7;
BFDLogEqTwo(r,x)

figure 3
r = 2.65:5e-4:3;
BFDLogEqTwo(r,x)

figure 4
r = 2.7:5e-4:2.8;
BFDLogEqTwo(r,x)

In [24]:
x = 0.5;
n = 50;
for r = [1, 2.5, 2.6, 2.7] ;
figure
TrajLogEqTwo(n, r, x, 1);
end

In [ ]: