{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Periodicity"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We consider the doubling map on the circle $\\mathbb{R}/\\mathbb{Z}$:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
"x |--> 2*x - floor(2*x)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"D(x) = 2*x - floor(2*x)\n",
"show(D)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some example applications:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1/2"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"D(1/4)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1/3"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"D(2/3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we plot the function over the interval (0,1):"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 1 graphics primitive"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot(D,(x,0,1), aspect_ratio=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As a remark, we can get rid of those vertical lines (which arise because Sage doesn't realize that the function is not continuous) using the exclude parameter:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 4 graphics primitives"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot(D,(x,0,1), aspect_ratio=1, exclude=[1/2,1])\n",
"# exclude corrects the plotting for discontinuities"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def forward_orbit(x, T, N):\n",
" '''\n",
" Return the list [x, T(x), ..., T^N(x)].\n",
" '''\n",
" orbit = [x] # Start of the orbit.\n",
" y = x\n",
" for i in range(N):\n",
" y = T(y) # Redefine y to be T(y)\n",
" orbit.append(y) # Add y at the end of the orbit.\n",
" return orbit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Recall that a fixed point of $D$ is a value $x$ so that $D(x)=x$. Zero is a fixed point:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"D(0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A periodic point of $D$ is a point $x$ so that $D^k(p)=p$ for some $k \\geq 1$. The least period (or prime period) of $p$ is the smallest such $k$. We say $x$ has period $k$ if $D^k(x)=x$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The number $\\frac{1}{3}$ has least period two, since the following output shows that $D(1/3)=2/3$ and $D^2(1/3)=1/3$."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1/3, 2/3, 1/3]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"forward_orbit(1/3, D, 2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A cobweb plot is a useful way to visualize an orbit of a map $T:{\\mathbb R} \\to {\\mathbb R}$. It involves several things:\n",
"* The graph of the function $f$.\n",
"* The diagonal (the graph of the identity map)\n",
"* The orbit.\n",
"The orbit is visualized as the sequence of points (the cobweb path)\n",
"$$[(x,x), (x,T(x)), (T(x),T(x)), (T(x), T^2(x)), \\ldots].$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following function draws a cobweb plot of the orbit of $x$, connecting $(x,x)$ to $\\big(T^N(x),T^N(x)\\big)$ by a cobweb path:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def cobweb(x, T, N, xmin, xmax):\n",
" cobweb_path = [(x,x)]\n",
" for i in range(N):\n",
" y = T(x) # Reassign y to be T(x).\n",
" cobweb_path.append( (x,y) )\n",
" cobweb_path.append( (y,y) )\n",
" x = y # Reassign x to be identical to y.\n",
" cobweb_plot = line2d(cobweb_path, color=\"red\", aspect_ratio=1)\n",
"\n",
" function_graph = plot(T, (xmin, xmax), color=\"blue\")\n",
" \n",
" # define the identity map:\n",
" identity(t) = t\n",
" id_graph = plot(identity, (xmin, xmax), color=\"green\")\n",
" \n",
" return cobweb_plot + function_graph + id_graph "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is the cobweb plot of 1/3:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 3 graphics primitives"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plt = cobweb(1/3, D, 2, 0, 1)\n",
"plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The point $1/5$ has period $4$:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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69fr1Vdf1c033+zlMX3h9LF4//33deTIEc2aNavrtvPnz0uSBgwYoAMHDmjMmDHeHtoj6XxcFBQUaODAgcrOzu66rbi4WMePH1d7e7tycnI8PbNX0nksVq1apblz52rhwoWSpJtuukmfffaZHnroIa1cuVJXXMFn4lPFI2WJnJwclZSUqK6urtvtdXV1mjx5cp9vt3HjRlVVVenll1/WhAkTvD6mL5w+FmPHjtX+/fvV2NjY9eeee+7RnXfeqcbGRhUVFfl1dNel83ExZcoUHTp0qGswJengwYMqKCgI7VBI6T0WZ86c6TEI2dnZMhe+uMezs0aSK0+TwxWdXxb45JNPmqamJrNs2TJz1VVXmSNHjhhjjJk7d263r/p49NFHTU5OjtmxY4c5duxY15/W1tag/gqucfpYXC5KXw3l9LFobm42gwYNMj/4wQ/MgQMHzK9//WszYsQI86Mf/Siov4JrnD4Wa9asMYMHDzbPPfecOXz4sHnllVfMmDFjzHe+852g/gqea21tNfv27TP79u0zksymTZvMvn37kn7ZeTKMhWUSiYQZOXKkycnJMbfeeqt54403uv7Z17/+dTN//vyul0eOHGkk9fizZs0a/w/uASePxeWiNBbGOH8sGhoazO23325yc3PNDTfcYNatW2fOnTvn86m94eSxOHv2rHnkkUfMmDFjTF5enikqKjJLliwxf/3rXwM4uT9ef/31Xv+70N//X1LBDxIEACTFcxYAgKQYCwBAUowFACApxgIAkBRjAQBIirEAACTFWAAAkmIsAABJMRYAgKQYCwBAUowFACCp/w94Azahz2cB4wAAAABJRU5ErkJggg==\n",
"text/plain": [
"Graphics object consisting of 3 graphics primitives"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plt = cobweb(1/5, D, 4, 0, 1)\n",
"plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is another phenomenon. The point $1/6$ is pre-periodic or eventually periodic. This means that there is a $k>0$ so that $D^k(1/6)$ is periodic. For $1/6$, this $k$ is one since $D(1/6)=1/3$, and above we showed that $1/3$ is period $2$:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 3 graphics primitives"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plt = cobweb(1/6, D, 3, 0, 1)\n",
"plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lets compute the least period of 73/103:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"73/103 has least period 51\n"
]
}
],
"source": [
"x = D(73/103)\n",
"k = 1\n",
"while x != 73/103:\n",
" x = D(x)\n",
" k = k+1\n",
"print( \"73/103 has least period \" + str(k) )"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 3 graphics primitives"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cobweb(73/103, D, 51, 0, 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exercise: Think about why if $p/q$ is a fraction, then it must be either periodic or eventually periodic under $D$. Under what conditions is it periodic? When is it eventually periodic?"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 8.6",
"language": "",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.15"
}
},
"nbformat": 4,
"nbformat_minor": 2
}