diff --git a/.gitignore b/.gitignore index 1140406f..dca95abf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .DS_Store lectures/_build -*/.ipynb_checkpoints/ +.ipynb_checkpoints/ _build/* +.virtual_documents diff --git a/lectures/_static/lecture_specific/markov_chains_II/example4.png b/lectures/_static/lecture_specific/markov_chains_II/example4.png index 28902276..54f9b031 100644 Binary files a/lectures/_static/lecture_specific/markov_chains_II/example4.png and b/lectures/_static/lecture_specific/markov_chains_II/example4.png differ diff --git a/lectures/_static/lecture_specific/markov_chains_II/figures.ipynb b/lectures/_static/lecture_specific/markov_chains_II/figures.ipynb new file mode 100644 index 00000000..15239e9e --- /dev/null +++ b/lectures/_static/lecture_specific/markov_chains_II/figures.ipynb @@ -0,0 +1,118 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7fc8ca4b-4eae-42be-8da0-ee029b4cb9ec", + "metadata": {}, + "source": [ + "## Figures\n", + "\n", + "> This figure requires `networkx >= 3.3` for `connectionstyle` to work on the edge labels" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e8335881-543c-4409-ad9e-251f5530dfca", + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "23a9e6f6-af16-4421-a46a-9f8f2dfb78f5", + "metadata": {}, + "outputs": [], + "source": [ + "G = nx.DiGraph()\n", + "G.add_node(0)\n", + "G.add_node(1)\n", + "G.add_edge(0,1, weight=1.0)\n", + "G.add_edge(1,0, weight=1.0)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a4c9e387-cdd0-4b64-909c-ab75a71a85de", + "metadata": {}, + "outputs": [], + "source": [ + "pos = {\n", + " 0 : [0,0],\n", + " 1 : [1,0]\n", + "}\n", + "\n", + "edge_labels = dict([((n1, n2), d['weight'])\n", + " for n1, n2, d in G.edges(data=True)])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "336c4249-48bc-41b9-9e88-77b12bdd60a8", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABBtUlEQVR4nO3deVjVdd7/8ReLoGbkBijuu4KaCuYyKi65F26V2dSl9hvXmWrmmnEqs5qmZbK5mnuqucf0dlyyOzWXjAp3hdQ0BSUV3NJAk11FFGQ75/v7o4tzS1qpnwNflufjus4FHvB73ggenue7eliWZQkAAAC4Q552DwAAAIDKjaAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghIAAABGCEoAAAAYISgBAABghKAEAACAEYISAAAARghKAAAAGCEoAQAAYISgBAAAgBGCEgAAAEYISgAAABghKAEAAGCEoAQAAIARghJAtbVr1y5FRESoSZMm8vT0VGRk5C/+nZiYGIWFhalWrVpq27atFi5cWA6TAkDFRlACqLZyc3PVrVs3/fd//7c8PDx+8fOTkpI0evRohYeHKz4+Xs8//7yefvppffLJJ+UwLQBUXB6WZVl2DwEAdvP09NSGDRsUERHxk5/z7LPP6vPPP1dCQoLrvlmzZunw4cPas2dPeYwJABUSaygB4Bbt27dPw4YNK3Xf8OHDFRsbK4fDYdNUAGA/b7sHAIDb5XA4lJeXp9zcXOXl5blu1//5+vd/97vfqWbNmsaPm5aWpsDAwFL3BQYGqri4WFlZWTd8TJLy8/P1r3/9S3fddddNb7Vr1y71Zx8fn1va/A4AFQlBCaBcOBwOXbx4UZmZmcrMzFRWVpbr7dWrV28pDEv+XFhYeEuPWaNGDdWuXVvTp093S1BKuiH2SvYa+qkILCws1F//+lfl5ubK6XT+4vK9vLx+Njh/6mN+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xw4NGjTIXYvFj5TsS7l+/XqNGzdOxcXF+vWvf601a9ao5Nvp4eEhy7Lk7e2twYMHu/4zl9c1PQEA1dv58+ddKzViYmLkdDrVr18/10qNH59OsOTI7vj4ePadLEM7duzQkCFDFBMTowEDBrhtuW4NyokTJ+rw4cNKTEzkyO4y1rdvX911112KiorSAw88oC1bttzwOb/97W/16quvcm5IAICtsrKy9Nlnn2n9+vXasmWLCgsL1aNHD40fP17jx49Xp06ddP/99+vatWvas2eP3eNWaZZlqVOnTurWrZtWrVrltuW67QSCqampWr9+vWbNmkVMloPZs2dr27ZtmjBhwk1j0tPTU+np6cQkAMB2DRs21NSpU/XZZ58pMzNTq1atUtu2bfW3v/1NwcHBat26tbZv367Zs2fbPWqV5+HhoVmzZmndunVKS0tz33LdtYby73//u1566SWlpqZyzeZykJ+fr6ZNm+qhhx6Sj4+PHA6HTp06pePHj+v8+fNyOp1q3LixUlJS7B4VAICbunbtmrZt26a5c+fq5MmTunz58h0fIY5bl52drcaNG+vVV1/Vn/70J7cs021B2b9/f9WvX1+ffvqpOxaHWzB16lTt379fCQkJpe4vLCzUd999Jx8fHw68AQBUeMHBwerdu7eWLFli9yjVRkREhLKzs/Xll1+6ZXlu2eSdmZmpr776ShEREe5YHG5RRESEEhMT9e2335a638fHRx06dCAmAQAV3qlTp3Ts2DEaopxFRERoz549ysrKcsvy3BKUUVFRcjqdGj16tDsWh1s0dOhQ+fj46LPPPrN7FAAA7shnn30mX19fDR061O5RqpXRo0fL6XS67fKWbgnKzz77TL169eKUNOWsTp06GjJkiCIjI+0eBQCAO/LZZ59pyJAhZXZtcNxc48aNdd9997mtIYyD0rIs7dq1i1cWNhk6dKj27dun4uJiu0cBAOC2FBUVae/evTSETYYOHardu3fLHYfTGAfl+fPnlZGRobCwMONhcPvCwsKUn5+vxMREu0cBAOC2JCYmqqCggIawSVhYmNLT091yRhjjoIyNjZUkhYaGGg+D29e9e3d5eHi4vg8AAFQWsbGx8vDwULdu3ewepVoqaTd3NIRxUMbFxSkgIEBNmjQxHga3r06dOurQoYPi4uLsHgUAgNsSFxenjh07qk6dOnaPUi01bdpU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YWGh3njjDb355pvy8/PTvHnzNGPGjHK5prW75OXl6d1339X8+fNVVFSkv/71rxVureT1KmxQlkhPT9err76qhQsXyt/fXy+//LImT55coa8FXlRUpJUrV+rll1/W2bNnNWXKFL388stq3ry53aOhDFmWpZSUFFdgXh+aly9fliTVrFlTHTt2LLU2MyQkRK1bt66wTxJARXfp0qWbhmPJlgQPDw+1bNmy1Au84OBgdezYsVKvucIvO3v2rP7yl79o+fLlat68uV555RVNmjSpQq/Yyc/P1/Lly/XKK68oKytLM2bM0Lx58xQYGGj3aD+rwgdliTNnzujFF1/URx99pIYNG+r//b//pxkzZqhVq1Z2j+Zy/vx5/c///I8WLVqk1NRUjR07Vq+//rqCg4PtHg02sixLqampNw3N7OxsSZKvr+9Phqa3t7e9XwBQQWRlZd0QjYmJia6DZDw9PdWmTZtS0RgcHKwOHTrorrvusnl62CkxMVEvvPCCNmzYoMaNG2v69OmaNm2amjRpYvdoLt99950WLlyo//znP8rKytJjjz2mV199Va1bt7Z7tFtSaYKyxIkTJ/T+++9r6dKlysnJ0ejRozVlyhQNHz5cderUKfd5rl27pu3bt2vZsmXasGGDatasqSeeeEKzZs1S165dy30eVB6WZSktLe2moXnp0iVJko+Pjzp27KiOHTuqdevWatmypevWvHlz1apVy+avAnCvy5cvKykpScnJyUpKSiq1r2PJBQu8vb3Vrl27G8Kxffv2FXrrFex3+PBhLViwQCtWrFB+fr7Gjh2rKVOmaMiQIbY8n169elWbN2/W0qVLFRUVJT8/P02dOlUzZ86skPtJ/pxKF5QlcnNztWrVKv373//WwYMH5ePjoyFDhigiIkIPPPCAmjZtWmaPnZ6ers8//1yRkZHaunWrrl27ppCQEM2aNUtPPPGE/Pz8yuyxUfVZlqX09PRSoXn8+HElJSXp3Llzcjgcrs8NDAwsFZnX31q0aEFwokKxLEsXLlxwxWJycnKp95OSkly7h0g/rLkvCcfrN1e3bdu2Sp4SBuUnJydHK1as0IIFC5SQkKBatWpp2LBhevDBB/XAAw+U6ebl77//3tUQ27dvV2FhoXr06KHZs2fr0UcfrbRr0yttUF7vzJkzioyMVGRkpL788ks5HA41a9bMdVLZ0NBQde3a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AIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACMEJQAAAIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACMEJQAAAIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACMEJQAAAIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACMEJQAAAIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACMEJQAAAIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACMEJQAAAIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACMEJQAAAIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACMEJQAAAIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACMEJQAAAIwQlAAAADBCUAIAAMAIQQkAAAAjBCUAAACMEJQAAAAwQlACAADACEEJAAAAIwQlAAAAjBCUAAAAMEJQAgAAwAhBCQAAACP/H4xuUrhotwCGAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nx.draw(G, \n", + " pos, \n", + " with_labels=True, \n", + " node_color='none',\n", + " edgecolors='black',\n", + " node_size=5000,\n", + " linewidths=1,\n", + " connectionstyle='arc3,rad=0.2' \n", + " )\n", + "nx.draw_networkx_edge_labels(G, \n", + " pos, \n", + " edge_labels=edge_labels, \n", + " connectionstyle='arc3,rad=0.2')\n", + "plt.savefig('example4.png', dpi=200, bbox_inches=\"tight\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8a34750a-1863-459e-a9d0-6fa80993d3da", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/lectures/markov_chains_II.md b/lectures/markov_chains_II.md index 67def2d7..3be115b3 100644 --- a/lectures/markov_chains_II.md +++ b/lectures/markov_chains_II.md @@ -295,6 +295,7 @@ The transition graph shows that this model is irreducible. ```{image} /_static/lecture_specific/markov_chains_II/example4.png :name: mc_example4 :align: center +:scale: 80% ``` Notice that there is a periodic cycle --- the state cycles between the two states in a regular way.