Math Insight

Examples of solving linear discrete dynamical systems

 

The solution to a linear discrete dynamical system is an exponential because in each time step, we multiply by a fixed number. It is easy to see what number we multiply in each time step when the dynamical system is in function iteration form. When the dynamical system is given in difference form, we must first transform the dynamical system into function iteration form. These examples illustrate the process.

Example 1

A example of the simplest form is \begin{align*} z_{n+1} &= 0.5 z_n\\ z_0 &= 1024. \end{align*} The dynamical system is given function iteration form and everything is in terms of numbers. Solve the dynamical system and use it to compute $z_{10}$.

Solution: By solution, we mean a formula for $z_n$ just in terms of the initial condition and the time index $n$. In each time step, we multiply by 0.5. To go from time step zero to time step $n$, we must multiply by 0.5 a total of $t$ times. The solution is therefore \begin{align*} z_n = (0.5)^n z_0 = (0.5)^n1024 \end{align*} Using the formula, it is simple to calculate $z_{10}$. It is $z_{10} = (0.5)^{10}1024 =1.$

Example 2

We can make the example slightly more complicated by using a parameter, let's call it $R$, as the number we must multiply by each time step. We'll also use $t$ rather than $n$ for the time step and let the initial condition be another parameter, let's use $d$. Choosing $p$ for the state variable, the dynamical system is \begin{align*} p_{t+1} &= Rp_t\\ p_0 &= d. \end{align*} Solve the dynamical system.

Solution: The system really isn't much harder than the previous. Our solution must be a formula for $p_t$ just in terms of the initial condition and the time index $t$. The solution will also contain the parameters $R$ and $d$ rather than just numbers like the previous example. The main point for the solution is that it can contain the value of the state variable only at the initial time point $t=0$.

Starting with $p_0=d$ at $t=0$, to get $p_t$, we must multiply by $R$ a total of $t$ times. The solution is $$p_t = R^t d.$$

Example 3

Let's mix things up a little bit by writing the dynamical system in difference form. Using $z_n$ as the state variable and keeping every else in terms of numbers, we'll examine the linear discrete dynamical system \begin{align*} z_{n+1} - z_n &= -0.5 z_n\\ z_0 &= 1024. \end{align*} Solve the dynamical system and use it to compute $z_{10}$.

Solution:In this example, the change in $z$ at each time step is half of the value of $z$, but with a negative sign. We subtract off half of $z$ at each time step, but it isn't clear how to write a formula that gives the result of subtracting off half $z$ for a total of $n$ times in a row. The reason the answer isn't so obvious is because the dynamical system is written in difference form, with the change is $z$ on the left side of the equation. If we rewrite the dynamical system in function iteration form by solving the evolution rule for $z_{n+1}$, then it will be clearer how to proceed.

To convert the evolution rule $z_{n+1} - z_n = -0.5 z_n$ to function iteration form, we solve for $z_{n+1}$ by adding $z_{n}$ to both sides of the equation. \begin{align*} z_{n+1} - z_n +z_n &= -0.5 z_n + z_n\\ z_{n+1} &= 0.5 z_n. \end{align*} Now $z_{n+1}$ is written as a function of $z_n$, i.e., $z_{n+1}=f(z_n)$ for the function $f(z)=0.5 z_n$. We must apply the function “multiply by 0.5” at each time step.

Combining the evolution rule with the initial condition, the dynamical system in function iteration form is \begin{align*} z_{n+1} &= 0.5 z_n\\ z_0 &= 1024. \end{align*} The dynamical system is identical to the one from the first example. The solution is that we must apply the function “multiply by 0.5” to $z_0$ a total of $n$ times to reach $z_n$: \begin{align*} z_n = (0.5)^n z_0 = (0.5)^n1024 \end{align*} After 10 time steps, $z_{10} = (0.5)^{10}1024 =1.$

Example 4

Let's try an example in difference form but with parameters. \begin{align*} p_{t+1} - p_t &= rp_t\\ p_0 &= d. \end{align*} Now, starting with the initial condition $d$, we add $rp_t$ at each time step, where $r$ and $d$ are parameters. Solve the dynamical system.

Solution: The system is given in difference form. To solve the dynamical system, we must rewrite it in function iteration form. We add $p_{t}$ to both sides of the evolution rule. \begin{align*} p_{t+1} - p_t + p_t &= rp_t + p_t\\ p_{t+1} &= (r+1)p_t. \end{align*} Combining this new form of the evolution rule with the initial condition, we can write the dynamical system in function iteration form as \begin{align*} p_{t+1} &= (r+1)p_t\\ p_0 &= d. \end{align*} At each time step we apply the function $p_{t+1} = f(p_t)$, where $f(p)=(r+1)p$. In other words, we apply the function “multiply by $r+1$.” To go from $p_0$ to $p_t$, we must apply this function $t$ times, or multiply by $r+1$ for a total of $t$ times. This is the same thing as multiplying by $(r+1)^t$. The solution is $$p_t = (r+1)^t p_0.$$ Using the the initial condition, $p_0=d$, we could also write the solution as $$p_t = (r+1)^t d.$$

This example is only slightly different from example 2. In fact, if we wanted to make it look exactly like example 2, we could define a new parameter $R$ by setting $R=r+1$. If we were to replace $r+1$ by the symbol $R$, then the dynamical system would be \begin{align*} p_{t+1} &= Rp_t\\ p_0 &= d. \end{align*} with solution $$p_t = R^t d.$$ That looks a little simpler. But in either case, the solution is pretty simple. We just multiply the initial condition $d$ by the number $r+1$, which we could also define as $R$, a total of $t$ times to get to $p_t$.

Example 5

Let's continue the moose example of the discrete dynamical system introduction. In that example, a moose population grew by 8% each year, starting with an initial population size of 1000 moose. If we let the state variable $m_t$ be the number of moose in a population in year $t$, then we can write the dynamical system as \begin{align*} m_{t+1}-m_t &= 0.08 m_t\\ m_0 &= 1000. \end{align*} Solve this dynamical system. Use the solution to calculate the moose population size every ten years up to year 50.

Solution: The dynamical system is written in difference form, as we derived the model thinking about the change in the moose population size. To rewrite it in function iteration form, we add $m_t$ to both sides to the evolution rule, obtaining \begin{align*} m_{t+1} &= 1.08 m_t\\ m_0 &= 1000. \end{align*} Since we start with a population size of 1000, and in each time step, we multiply the 1.08, the solution to the dynamical system is $$m_t = 1000 \cdot (1.08)^t.$$ From this solution, we calculate the population size every 10 years. \begin{align*} m_{10} &= 1000 (1.08)^{10} \approx 2158.92\\ m_{20} &= 1000 (1.08)^{20} \approx 4660.96\\ m_{30} &= 1000 (1.08)^{30} \approx 10062.66\\ m_{40} &= 1000 (1.08)^{40} \approx 21724.52\\ m_{50} &= 1000 (1.08)^{50} \approx 46901.61 \end{align*}