{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# BE 150/Bi 250b: Introduction to Python for genetic networks\n", "\n", "(c) 2018 Justin Bois. This work is licensed under a [Creative Commons Attribution License CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/). All code contained herein is licensed under an [MIT license](https://opensource.org/licenses/MIT).\n", "\n", "This document was prepared at [Caltech](http://www.caltech.edu) with support financial support from the [Donna and Benjamin M. Rosen Bioengineering Center](http://rosen.caltech.edu).\n", "\n", "*This tutorial was generated from a Jupyter notebook. You can download the notebook [here](intro_to_python_for_systems_biology.ipynb).*\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You have already installed [Anaconda](https://store.continuum.io/cshop/anaconda/). Anaconda contains most of what we need to do scientific computing with Python. At the most basic level, it has Python 3.6. It contains other modules we will make heavy use of, the three most important ones being [NumPy](http://www.numpy.org/), [SciPy](http://www.scipy.org/), and [matplotlib](http://matplotlib.org/).\n", "\n", "In this tutorial, we will first learn some of the basics of using Python to analyze genetic networks.\n", "\n", "We will perform our analysis in a Jupyter notebook. Jupyter notebooks are great for creating tutorials such as this one. The beauty of using an Jupyter notebook is that you can combine nice typesetting of text and mathematical expressions with individual sections of code. The code can be run section by section, or the whole document can be run at once. You will probably want to use a Jupyter notebook for your homework, and this is what we will use interactively during when going over computational techniques in lecture.\n", "\n", "To launch a Jupyter notebook, enter\n", "\n", " jupyter notebook\n", "\n", "on the command line and hit enter. Jupyter will launch in a browser window. To the upper right, you can use a pulldown menu to create a new Python 3 Jupyter notebook. This will open a new tab or window with a fresh notebook.\n", "\n", "Optionally, you can use JupyterLab, which is my personal preference. If you have it installed, you can launch it by entering\n", "\n", " jupyter lab\n", " \n", "on the command line." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Our model system\n", "\n", "For the purposes of this tutorial, we will model a cascade. The genetic network is shown below.\n", "\n", "\\begin{align}\n", "\\mathrm{X} \\to \\mathrm{Y} \\to \\mathrm{Z}\n", "\\end{align}\n", "\n", "Here, X is our input, which we will specify. (X could be something like an externally imposed stimulus.) We are interested in the response of Y and Z as a function of input X.\n", "\n", "We will assume Hill-like behavior for the activation of Y by X and of Z by Y. We also neglect leakage. We define the concentrations of X, Y, and Z, respectively as $x$, $y$, and $z$. The system of ODEs describing this system is then\n", "\n", "\\begin{align}\n", "\\frac{\\mathrm{d}y}{\\mathrm{d}t} &= \\beta_y\\,\\frac{(x/k_x)^{n_x}}{1+(x/k_x)^{n_x}} - \\gamma_y y, \\\\[2mm]\n", "\\frac{\\mathrm{d}z}{\\mathrm{d}t} &= \\beta_z\\,\\frac{(y/k_y)^{n_y}}{1+(y/k_y)^{n_y}} - \\gamma_z z.\n", "\\end{align}\n", "\n", "Note that $x$ is a function of time. As is generally a good idea for analysis of these systems, we will non-dimensionalize. We define dimensionless parameters as follows.\n", "\n", "\\begin{align}\n", "\\tilde{t} &= \\gamma_y t, \\\\[2mm]\n", "\\tilde{x} &= x/k_x, \\\\[2mm]\n", "\\tilde{y} &= y/k_y, \\\\[2mm]\n", "\\tilde{z} &= z/k_y, \\\\[2mm]\n", "\\gamma &= \\gamma_z/\\gamma_y, \\\\[2mm]\n", "\\tilde{\\beta}_y &= \\frac{\\beta_y}{\\gamma_y k_y}, \\\\[2mm]\n", "\\tilde{\\beta}_z &= \\frac{\\beta_z}{\\gamma_z k_y}.\n", "\\end{align}\n", "\n", "With these in hand, our dimensionless ODEs are\n", "\n", "\\begin{align}\n", "\\frac{\\mathrm{d}\\tilde{y}}{\\mathrm{d}\\tilde{t}} &= \\tilde{\\beta}_y\\,\\frac{\\tilde{x}^{n_x}}{1+\\tilde{x}^{n_x}} - \\tilde{y}, \\\\[2mm]\n", "\\gamma^{-1}\\,\\frac{\\mathrm{d}\\tilde{z}}{\\mathrm{d}\\tilde{t}} &= \\tilde{\\beta}_z\\,\\frac{\\tilde{y}^{n_y}}{1+\\tilde{y}^{n_y}} - \\tilde{z}.\n", "\\end{align}\n", "\n", "For notational convenience, and since we will always be working in dimensionless units, we will drop the tildes.\n", "\n", "\\begin{align}\n", "\\frac{\\mathrm{d}y}{\\mathrm{d}t} &= \\beta_y\\,\\frac{x^{n_x}}{1+x^{n_x}} - y, \\\\[2mm]\n", "\\gamma^{-1}\\,\\frac{\\mathrm{d}z}{\\mathrm{d}t} &= \\beta_z\\,\\frac{y^{n_y}}{1+y^{n_y}} - z.\n", "\\end{align}\n", "\n", "Thus, in addition to the specifics of our input $x(t)$, we have five parameters, $\\beta_y$, $\\beta_z$, $\\gamma$, $n_x$, and $n_y$.\n", "\n", "Our goal is to solve this system of ODEs for given parameters and $x(t)$. We will use `scipy.integrate.odeint()` to do the solutions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Modules\n", "\n", "In order to do scientific computing and plotting, we need to import the modules that contain the packages we need. I will go ahead and import all modules we will need for this tutorial now. I'll talk about each module as we use them throughout the tutorial." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id !== undefined) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var element_id = msg.content.text.trim();\n", " Bokeh.index[element_id].model.document.clear();\n", " delete Bokeh.index[element_id];\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " var el = document.getElementById(\"e09cd9a6-7f05-4634-b657-046921ace7ab\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", " }\n", " finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.info(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(js_urls, callback) {\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = js_urls.length;\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " var s = document.createElement('script');\n", " s.src = url;\n", " s.async = false;\n", " s.onreadystatechange = s.onload = function() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: all BokehJS libraries loaded\");\n", " run_callbacks()\n", " }\n", " };\n", " s.onerror = function() {\n", " console.warn(\"failed to load library \" + url);\n", " };\n", " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.getElementsByTagName(\"head\")[0].appendChild(s);\n", " }\n", " };var element = document.getElementById(\"e09cd9a6-7f05-4634-b657-046921ace7ab\");\n", " if (element == null) {\n", " console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'e09cd9a6-7f05-4634-b657-046921ace7ab' but no matching script tag was found. \")\n", " return false;\n", " }\n", "\n", " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.15.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.15.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.15.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.15.min.js\"];\n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " \n", " function(Bokeh) {\n", " \n", " },\n", " function(Bokeh) {\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.15.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.15.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.15.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.15.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.15.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.15.min.css\");\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " var cell = $(document.getElementById(\"e09cd9a6-7f05-4634-b657-046921ace7ab\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(js_urls, function() {\n", " console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"e09cd9a6-7f05-4634-b657-046921ace7ab\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n }\n finally {\n delete root._bokeh_onload_callbacks\n }\n console.info(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(js_urls, callback) {\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = js_urls.length;\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var s = document.createElement('script');\n s.src = url;\n s.async = false;\n s.onreadystatechange = s.onload = function() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: all BokehJS libraries loaded\");\n run_callbacks()\n }\n };\n s.onerror = function() {\n console.warn(\"failed to load library \" + url);\n };\n console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.getElementsByTagName(\"head\")[0].appendChild(s);\n }\n };var element = document.getElementById(\"e09cd9a6-7f05-4634-b657-046921ace7ab\");\n if (element == null) {\n console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'e09cd9a6-7f05-4634-b657-046921ace7ab' but no matching script tag was found. \")\n return false;\n }\n\n var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.15.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.15.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.15.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.15.min.js\"];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.15.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.15.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.15.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.15.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.15.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.15.min.css\");\n }\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"e09cd9a6-7f05-4634-b657-046921ace7ab\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(js_urls, function() {\n console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# NumPy and odeint, our workhorses\n", "import numpy as np\n", "import scipy.integrate\n", "\n", "# For interactive plots\n", "import ipywidgets\n", "\n", "# Plotting modules\n", "import bokeh.io\n", "import bokeh.plotting\n", "\n", "# Ensure that plots show in the notebook\n", "bokeh.io.output_notebook()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## scipy.integrate.odeint()\n", "\n", "We will use `scipy.integrate.odeint()` to perform the integration of the system of ODEs. It uses the Hindmarsh algorithm, intelligently dealing with potential stiffness in the equations.\n", "\n", "You can look at the documentation for `scipy.integrate.odeint()` [here](http://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html) or you can enter\n", "\n", "`scipy.integrate.odeint?`\n", "\n", "in a code cell of your Jupyter notebook. The typical function call to `scipy.integrate.odeint()` that we will use in this class is of the form\n", "\n", " scipy.integrate.odeint(f, y0, t, args=())\n", "\n", "`scipy.integrate.odeint()` solves the system of ODEs\n", "\n", "\\begin{align}\n", "\\frac{\\mathrm{d}\\mathbf{y}}{\\mathrm{d}t} = f(\\mathbf{y}, t),\n", "\\end{align}\n", "\n", "where $\\mathbf{y}$ is a vector and $f(\\mathbf{y},t)$ is vector-valued. Thus, `scipy.integrate.odeint()` takes as its first argument a function that returns an array containing the right hand side of the system of ODEs you are computing. When you define this function, it must be of the form\n", "\n", " f(y, t, *args)\n", "\n", "where the `*args` indicates the parameters on which the function depends.\n", "\n", "The second argument to `scipy.integrate.odeint()` is the initial condition, again stored as an array. The third argument is an array of time points for which you want the solution to the ODEs. Finally, as I already mentioned, `args` is a tuple containing the other parameters to be passed into the function `f`.\n", "\n", "All this is best seen by example, so we will solve our cascade circuit." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solving for a constant input X\n", "\n", "For our first foray into using `scipy.integrate.odeint()` to solve ODEs, let's consider the case where we have no X, Y, or Z present. At time $t = 0$, we suddenly have a concentration of X of $x_0$. So, we need six parameters for the right hand side of our ODEs, $\\beta_y$, $\\beta_z$, $\\gamma$, $n_x$, $n_y$, and $x_0$.\n", "\n", "We now define the function for the right hand side of the ODEs." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def cascade_rhs(yz, t, beta_y, beta_z, gamma, n_x, n_y, x):\n", " \"\"\"\n", " Right hand side for cascade X -> Y -> Z. Return dy/dt and dz/dt.\n", " \"\"\"\n", " # Unpack y and z\n", " y, z = yz\n", " \n", " # Compute dy/dt\n", " dy_dt = beta_y * x**n_x / (1 + x**n_x) - y\n", " \n", " # Compute dz/dt\n", " dz_dt = gamma * (beta_z * y**n_y / (1 + y**n_y) - z)\n", " \n", " # Return the result as a NumPy array\n", " return np.array([dy_dt, dz_dt])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now define the initial conditions, our parameters, and the time points we want and use `scipy.integrate.odeint()` to solve." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Time points we want for the solution\n", "t = np.linspace(0, 10, 1000)\n", "\n", "# Initial condition\n", "yz_0 = np.array([0.0, 0.0])\n", "\n", "# Parameters\n", "beta_y = 1.0\n", "beta_z = 1.0\n", "gamma = 1.0\n", "n_x = 2\n", "n_y = 2\n", "x_0 = 2.0\n", "\n", "# Package parameters into a tuple\n", "args = (beta_y, beta_z, gamma, n_x, n_y, x_0)\n", "\n", "# Integrate ODES\n", "yz = scipy.integrate.odeint(cascade_rhs, yz_0, t, args=args)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's it! The integration is done. We can now look at what `scipy.integrate.odeint()`'s output looks like." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1000, 2)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "yz.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first column of the output `yz` gives $y(t)$ at the specified time points and the second column gives $z(t)$. We would now like to plot the results." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting results\n", "\n", "We will use Bokeh to plot the results. The syntax is pretty self-explanatory from the example. Note that you can save a plot as a PNG by clicking the disk icon next to the plot, which might be helpful for incorporating your plots into your homeworks. (Note that for publications, you should usually save your figures in a vector graphics format, which [Bokeh supports](https://bokeh.pydata.org/en/latest/docs/user_guide/export.html), but is not necessary for this class.)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"3f987fd5-7e35-4447-b9c5-87bbc2c60b94\":{\"roots\":{\"references\":[{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]}},\"selected\":null,\"selection_policy\":null},\"id\":\"344285c1-859f-4c98-828b-27499a599824\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"017008e5-ba19-4baf-99ab-21cc0a063daa\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"a88efde0-c49b-478a-b13e-d02ef02f24e0\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"0ac71116-b265-40ae-970e-24cd1dacca17\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"0ca09329-d5c4-4ecf-8218-7e9f778b9c30\",\"type\":\"CDSView\"}},\"id\":\"dd9e9dbb-cc2e-46d9-857d-91a258ac8b7e\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"fa0e29cc-16b7-4747-8e7d-686754e268fc\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"ca922338-69cb-4a96-af3d-51670c628792\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1ab40ea4-716f-4a2e-801c-c6a77b41cede\",\"type\":\"BoxAnnotation\"}},\"id\":\"9a6eed38-5794-4773-a68a-5cd1c9565202\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"9ef3b04a-bb38-41fa-801e-131bbc7e7ddd\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"49917d45-a69d-490a-93c6-697cd7d68bdc\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"5b04c0a3-6a65-4df1-bc9c-e4fcca36637e\",\"type\":\"HelpTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"0ac71116-b265-40ae-970e-24cd1dacca17\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a88efde0-c49b-478a-b13e-d02ef02f24e0\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4031c926-94cc-4af0-880f-243b44af9ad2\",\"type\":\"Line\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"fa0e29cc-16b7-4747-8e7d-686754e268fc\",\"type\":\"PanTool\"},{\"id\":\"ca922338-69cb-4a96-af3d-51670c628792\",\"type\":\"WheelZoomTool\"},{\"id\":\"9a6eed38-5794-4773-a68a-5cd1c9565202\",\"type\":\"BoxZoomTool\"},{\"id\":\"9ef3b04a-bb38-41fa-801e-131bbc7e7ddd\",\"type\":\"SaveTool\"},{\"id\":\"49917d45-a69d-490a-93c6-697cd7d68bdc\",\"type\":\"ResetTool\"},{\"id\":\"5b04c0a3-6a65-4df1-bc9c-e4fcca36637e\",\"type\":\"HelpTool\"}]},\"id\":\"5fabf29b-5e40-4052-8cff-a66f9292bdc1\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]}},\"selected\":null,\"selection_policy\":null},\"id\":\"017008e5-ba19-4baf-99ab-21cc0a063daa\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"items\":[{\"id\":\"d5e5456e-27c2-4570-b33e-eb7c53512cc6\",\"type\":\"LegendItem\"},{\"id\":\"1ec24ee7-bf1b-4248-81f7-78d41abf3d5b\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\",\"plot\":{\"id\":\"42ad805e-c857-4652-8009-93dfe4d391db\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"8248c1cb-cfeb-41bd-9843-04c72dfc2f06\",\"type\":\"Legend\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"a99e4248-dd3c-42e2-b1ba-9a1bc81fba1d\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"bec86b14-dbf4-403f-a084-d5f8301d27f9\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"label\":{\"value\":\"z\"},\"renderers\":[{\"id\":\"aee86e75-9556-4435-a1e0-01b113a42859\",\"type\":\"GlyphRenderer\"}]},\"id\":\"1ec24ee7-bf1b-4248-81f7-78d41abf3d5b\",\"type\":\"LegendItem\"},{\"attributes\":{\"below\":[{\"id\":\"eb2ec716-2b40-4941-8f63-1a149c63565c\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"f517e06c-fe31-4c45-8f27-b0d5fcf6f6a1\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"eb2ec716-2b40-4941-8f63-1a149c63565c\",\"type\":\"LinearAxis\"},{\"id\":\"9b5a4df0-6946-40be-abf5-d2b7a21243d9\",\"type\":\"Grid\"},{\"id\":\"f517e06c-fe31-4c45-8f27-b0d5fcf6f6a1\",\"type\":\"LinearAxis\"},{\"id\":\"407d70e6-c999-476b-bbff-b54810b48205\",\"type\":\"Grid\"},{\"id\":\"1ab40ea4-716f-4a2e-801c-c6a77b41cede\",\"type\":\"BoxAnnotation\"},{\"id\":\"8248c1cb-cfeb-41bd-9843-04c72dfc2f06\",\"type\":\"Legend\"},{\"id\":\"dd9e9dbb-cc2e-46d9-857d-91a258ac8b7e\",\"type\":\"GlyphRenderer\"},{\"id\":\"aee86e75-9556-4435-a1e0-01b113a42859\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"a99e4248-dd3c-42e2-b1ba-9a1bc81fba1d\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"5fabf29b-5e40-4052-8cff-a66f9292bdc1\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"7db11b9b-3acd-4234-8836-6bdb32c81aa3\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"c81a7871-dfdf-48d4-b00d-0a9ab1bffcc3\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"de27c959-b44e-489c-994d-004a4abea0b6\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"c2ffd0fd-bec9-4624-9dfa-7ae7116e3fdc\",\"type\":\"LinearScale\"}},\"id\":\"42ad805e-c857-4652-8009-93dfe4d391db\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"e86556e6-0df6-4e93-8a00-68d7471646da\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"c81a7871-dfdf-48d4-b00d-0a9ab1bffcc3\",\"type\":\"LinearScale\"},{\"attributes\":{\"data_source\":{\"id\":\"344285c1-859f-4c98-828b-27499a599824\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"4031c926-94cc-4af0-880f-243b44af9ad2\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"50639d2e-f98e-474e-bf2a-c06085653f3d\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"95a20ce0-9522-4f63-9b1e-8b30dedb6144\",\"type\":\"CDSView\"}},\"id\":\"aee86e75-9556-4435-a1e0-01b113a42859\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null},\"id\":\"7db11b9b-3acd-4234-8836-6bdb32c81aa3\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"017008e5-ba19-4baf-99ab-21cc0a063daa\",\"type\":\"ColumnDataSource\"}},\"id\":\"0ca09329-d5c4-4ecf-8218-7e9f778b9c30\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"de27c959-b44e-489c-994d-004a4abea0b6\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"50639d2e-f98e-474e-bf2a-c06085653f3d\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"c2ffd0fd-bec9-4624-9dfa-7ae7116e3fdc\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"344285c1-859f-4c98-828b-27499a599824\",\"type\":\"ColumnDataSource\"}},\"id\":\"95a20ce0-9522-4f63-9b1e-8b30dedb6144\",\"type\":\"CDSView\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"e86556e6-0df6-4e93-8a00-68d7471646da\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"42ad805e-c857-4652-8009-93dfe4d391db\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"95241535-8964-4673-be1d-5b9c0f1a8c14\",\"type\":\"BasicTicker\"}},\"id\":\"eb2ec716-2b40-4941-8f63-1a149c63565c\",\"type\":\"LinearAxis\"},{\"attributes\":{\"label\":{\"value\":\"y\"},\"renderers\":[{\"id\":\"dd9e9dbb-cc2e-46d9-857d-91a258ac8b7e\",\"type\":\"GlyphRenderer\"}]},\"id\":\"d5e5456e-27c2-4570-b33e-eb7c53512cc6\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"95241535-8964-4673-be1d-5b9c0f1a8c14\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":{\"id\":\"42ad805e-c857-4652-8009-93dfe4d391db\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"95241535-8964-4673-be1d-5b9c0f1a8c14\",\"type\":\"BasicTicker\"}},\"id\":\"9b5a4df0-6946-40be-abf5-d2b7a21243d9\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"dimensionless y, z\",\"formatter\":{\"id\":\"bec86b14-dbf4-403f-a084-d5f8301d27f9\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"42ad805e-c857-4652-8009-93dfe4d391db\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"b928fe8c-a837-466f-b93d-d3adb840cb6c\",\"type\":\"BasicTicker\"}},\"id\":\"f517e06c-fe31-4c45-8f27-b0d5fcf6f6a1\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"b928fe8c-a837-466f-b93d-d3adb840cb6c\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"42ad805e-c857-4652-8009-93dfe4d391db\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"b928fe8c-a837-466f-b93d-d3adb840cb6c\",\"type\":\"BasicTicker\"}},\"id\":\"407d70e6-c999-476b-bbff-b54810b48205\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1ab40ea4-716f-4a2e-801c-c6a77b41cede\",\"type\":\"BoxAnnotation\"}],\"root_ids\":[\"42ad805e-c857-4652-8009-93dfe4d391db\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"3f987fd5-7e35-4447-b9c5-87bbc2c60b94\",\"elementid\":\"c8d7bec0-7b37-4d7e-8b08-910aef19899d\",\"modelid\":\"42ad805e-c857-4652-8009-93dfe4d391db\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "42ad805e-c857-4652-8009-93dfe4d391db" } }, "output_type": "display_data" } ], "source": [ "# Set up color palette for this notebook\n", "colors = bokeh.palettes.d3['Category10'][10]\n", "\n", "# Pluck out y and z\n", "y, z = yz.transpose()\n", "\n", "# Set up plot\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "p.line(t, y, line_width=2, color=colors[0], legend='y')\n", "p.line(t, z,line_width=2, color=colors[1], legend='z')\n", "\n", "# Place the legend\n", "p.legend.location = 'bottom_right'\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the casacade acts as a delay for changes in $z$ as a result of input $x$. With our tools in hand, we can vary parameters and investigate other behavior." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interactive plotting and varying parameters\n", "\n", "Plotting with Bokeh in Jupyter notebooks allows for interactivity with plots that can help to rapidly gain insights about how parameter values might affect the dynamics. For response to the sudden presence of X, there are six parameters. We can set up interactive widgets to vary the parameters and see how the responses change. This can be done within a Jupyter notebook but I prefer setting up a separate served Bokeh dashboard for this. I use the code below to do it, which is present in the file `interactive_cascade.py`. To view the plot, enter the following on the command line\n", "\n", " bokeh serve interactive_cascade.py\n", " \n", " and then point a web browser to `http://localhost:5006/interactive_cascade`." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\"\"\"\n", "To do interactive plotting, run:\n", "\n", " bokeh serve interactive_cascade.py\n", "\n", "on the command line. Then, point a web browser to\n", "http://localhost:5006/interactive_cascade\n", "\"\"\"\n", "\n", "import itertools\n", "\n", "import numpy as np\n", "import scipy.integrate\n", "\n", "import bokeh.io\n", "import bokeh.layouts\n", "import bokeh.models\n", "import bokeh.plotting\n", "\n", "# Set up color palette\n", "colors = bokeh.palettes.d3['Category10'][10]\n", "\n", "def cascade_rhs(yz, t, beta_y, beta_z, gamma, n_x, n_y, x):\n", " \"\"\"\n", " Right hand side for cascade X -> Y -> Z. Return dy/dt and dz/dt.\n", " \"\"\"\n", " # Unpack y and z\n", " y, z = yz\n", " \n", " # Compute dy/dt\n", " dy_dt = beta_y * x**n_x / (1 + x**n_x) - y\n", " \n", " # Compute dz/dt\n", " dz_dt = gamma * (beta_z * y**n_y / (1 + y**n_y) - z)\n", " \n", " # Return the result as a NumPy array\n", " return np.array([dy_dt, dz_dt])\n", "\n", "# Time points we want for the solution\n", "t = np.linspace(0, 10, 1000)\n", "\n", "# Initial condition\n", "yz_0 = np.array([0.0, 0.0])\n", "\n", "# Parameters\n", "beta_y = 1.0\n", "beta_z = 1.0\n", "gamma = 1.0\n", "n_x = 2\n", "n_y = 2\n", "x_0 = 2.0\n", "\n", "# Package parameters into a tuple\n", "args = (beta_y, beta_z, gamma, n_x, n_y, x_0)\n", "\n", "# Integrate ODES\n", "yz = scipy.integrate.odeint(cascade_rhs, yz_0, t, args=args)\n", "\n", "# Set up plot\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "y_line = p.line(t, yz[:,0], line_width=2, color=colors[0], legend='y')\n", "z_line = p.line(t, yz[:,1],line_width=2, color=colors[1], legend='z')\n", "\n", "# Place the legend\n", "p.legend.location = 'bottom_right'\n", "\n", "# Set up widgets\n", "log_beta_y_slider = bokeh.models.Slider(title='log₁₀ βy',\n", " value=0.0, \n", " start=-1.0, \n", " end=2.0,\n", " step=0.1)\n", "log_beta_z_slider = bokeh.models.Slider(title='log₁₀ βz',\n", " value=0.0,\n", " start=-1.0, \n", " end=2.0,\n", " step=0.1)\n", "log_gamma_slider = bokeh.models.Slider(title='log₁₀ γ', \n", " value=0.0, \n", " start=-1.0, \n", " end=2.0,\n", " step=0.1)\n", "log_x_0_slider = bokeh.models.Slider(title='log₁₀ x₀',\n", " value=np.log10(2), \n", " start=-1.0, \n", " end=2.0,\n", " step=0.1)\n", "n_x_slider = bokeh.models.Slider(title='nx',\n", " value=2.0, \n", " start=1.0, \n", " end=10.0, \n", " step=0.1)\n", "n_y_slider = bokeh.models.Slider(title='ny', \n", " value=2.0, \n", " start=1.0, \n", " end=10.0, \n", " step=0.1)\n", "normalized_toggle = bokeh.models.Toggle(label='normalized')\n", "\n", "widgets = (log_beta_y_slider, \n", " log_beta_z_slider, \n", " log_gamma_slider, \n", " log_x_0_slider, \n", " n_x_slider, \n", " n_y_slider,\n", " normalized_toggle)\n", "\n", "\n", "# Set up callback to update plot based on slider values\n", "def resolve():\n", " args = (beta_y, beta_z, gamma, n_x, n_y, x_0)\n", " return scipy.integrate.odeint(cascade_rhs, yz_0, t, args=args)\n", "\n", "\n", "def update(attrname, old, new):\n", " # New parameter values\n", " beta_y = 10**log_beta_y_slider.value\n", " beta_z = 10**log_beta_z_slider.value\n", " gamma = 10**log_gamma_slider.value\n", " x_0 = 10**log_x_0_slider.value\n", " n_x = n_x_slider.value\n", " n_y = n_y_slider.value\n", "\n", " # Integrate ODES with new parameters\n", " args = (beta_y, beta_z, gamma, n_x, n_y, x_0)\n", " yz = scipy.integrate.odeint(cascade_rhs, yz_0, t, args=args)\n", "\n", " # Normalize if necessary\n", " if normalized_toggle.active:\n", " yz[:,0] /= yz[:,0].max()\n", " yz[:,1] /= yz[:,1].max()\n", "\n", " # Update data sources in plot\n", " y_line.data_source.data['y'] = yz[:,0]\n", " z_line.data_source.data['y'] = yz[:,1]\n", "\n", "\n", "def update_button(new):\n", " \"\"\"Same as above function, but with different call signature,\n", " as required by buttons.\"\"\"\n", " # New parameter values\n", " beta_y = 10**log_beta_y_slider.value\n", " beta_z = 10**log_beta_z_slider.value\n", " gamma = 10**log_gamma_slider.value\n", " x_0 = 10**log_x_0_slider.value\n", " n_x = n_x_slider.value\n", " n_y = n_y_slider.value\n", "\n", " # Integrate ODES with new parameters\n", " args = (beta_y, beta_z, gamma, n_x, n_y, x_0)\n", " yz = scipy.integrate.odeint(cascade_rhs, yz_0, t, args=args)\n", "\n", " # Normalize if necessary\n", " if normalized_toggle.active:\n", " yz[:,0] /= yz[:,0].max()\n", " yz[:,1] /= yz[:,1].max()\n", "\n", " # Update data sources in plot\n", " y_line.data_source.data['y'] = yz[:,0]\n", " z_line.data_source.data['y'] = yz[:,1] \n", "\n", "\n", "# Activate widgets\n", "for widget in widgets[:-1]:\n", " widget.on_change('value', update)\n", "normalized_toggle.on_click(update_button)\n", "\n", "# Lay out graphic\n", "params = bokeh.layouts.widgetbox(*widgets)\n", "bokeh.io.curdoc().add_root(bokeh.layouts.row(p, params))\n", "bokeh.io.curdoc().title = 'Cascade response'\n", "\n" ] } ], "source": [ "with open('interactive_cascade.py', 'r') as f:\n", " print(f.read())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Importantly, when exploring the plot interactively, we see that when Y cooperatively activates Z (that is, $n_y$ is large), the delay is longer." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Duration of input\n", "\n", "Now imagine that the input is a pulse of duration $\\tau$. We can write a function for this and plot it." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"761cacd3-e76b-4df6-83a4-7f673fb26f65\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"f291794d-66a9-4057-a61c-044d1ef62894\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"0e13fe83-6630-4c4b-be61-10d1b3affdd2\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"857a745a-1cf7-4bf4-9cab-3bdac0b55ef1\",\"type\":\"HelpTool\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"851843e6-39aa-4bcb-bdfa-eab346134f80\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"24ef248a-d4d7-47a1-9022-67ff8fa8a30d\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"9df1036b-4067-4a94-aee0-aa3b3def9d15\",\"type\":\"BasicTicker\"}},\"id\":\"532eadce-b9ee-439e-aa32-963be65ef041\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"5e067861-52ce-4351-9e27-76d8041a573e\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"71925d5b-b5c5-4542-9bf5-950adf019b7f\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"168672f1-39cc-4064-8e88-7dfd16605a87\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"24ef248a-d4d7-47a1-9022-67ff8fa8a30d\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"9df1036b-4067-4a94-aee0-aa3b3def9d15\",\"type\":\"BasicTicker\"}},\"id\":\"134813d3-50ae-4889-a86d-7960036b82ac\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data_source\":{\"id\":\"1453934c-60f2-404b-9fdd-b6333604f363\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"851843e6-39aa-4bcb-bdfa-eab346134f80\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"fd750e08-cd17-4b5e-ab20-9fd234979ddf\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"523a036a-b510-4a7a-b35a-6a54c892b068\",\"type\":\"CDSView\"}},\"id\":\"98090527-c7d8-48d8-8182-82a92e5bebe6\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null},\"id\":\"7094eac6-a5ef-4f0f-becd-d569bffa5d33\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"9df1036b-4067-4a94-aee0-aa3b3def9d15\",\"type\":\"BasicTicker\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"03dd76a0-9fbd-4132-bfd2-49b1afcb2a31\",\"type\":\"PanTool\"},{\"id\":\"71925d5b-b5c5-4542-9bf5-950adf019b7f\",\"type\":\"WheelZoomTool\"},{\"id\":\"a29ef18f-965e-425b-be62-513b99f16f2a\",\"type\":\"BoxZoomTool\"},{\"id\":\"39242346-0106-4620-9a01-0079e9a4d074\",\"type\":\"SaveTool\"},{\"id\":\"f291794d-66a9-4057-a61c-044d1ef62894\",\"type\":\"ResetTool\"},{\"id\":\"857a745a-1cf7-4bf4-9cab-3bdac0b55ef1\",\"type\":\"HelpTool\"}]},\"id\":\"da06c13f-a69a-44ce-bf04-46cc9c40280e\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis_label\":\"dimensionless x\",\"formatter\":{\"id\":\"d6fae419-f53a-4311-819b-270fb781ad0b\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"24ef248a-d4d7-47a1-9022-67ff8fa8a30d\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"96e261be-88b2-4c55-9773-9240a2fb2ceb\",\"type\":\"BasicTicker\"}},\"id\":\"7d59a258-5f6d-4504-ab56-cd39e54acb33\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"1453934c-60f2-404b-9fdd-b6333604f363\",\"type\":\"ColumnDataSource\"}},\"id\":\"523a036a-b510-4a7a-b35a-6a54c892b068\",\"type\":\"CDSView\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"24ef248a-d4d7-47a1-9022-67ff8fa8a30d\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"96e261be-88b2-4c55-9773-9240a2fb2ceb\",\"type\":\"BasicTicker\"}},\"id\":\"09f6ae4d-db9a-4d3b-8833-cd4d4ff37d56\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"5e067861-52ce-4351-9e27-76d8041a573e\",\"type\":\"BoxAnnotation\"}},\"id\":\"a29ef18f-965e-425b-be62-513b99f16f2a\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"39242346-0106-4620-9a01-0079e9a4d074\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"b9e65373-de3e-4cdc-9f56-d3f32d97bb12\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"96e261be-88b2-4c55-9773-9240a2fb2ceb\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"168672f1-39cc-4064-8e88-7dfd16605a87\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"134813d3-50ae-4889-a86d-7960036b82ac\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"7d59a258-5f6d-4504-ab56-cd39e54acb33\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"134813d3-50ae-4889-a86d-7960036b82ac\",\"type\":\"LinearAxis\"},{\"id\":\"532eadce-b9ee-439e-aa32-963be65ef041\",\"type\":\"Grid\"},{\"id\":\"7d59a258-5f6d-4504-ab56-cd39e54acb33\",\"type\":\"LinearAxis\"},{\"id\":\"09f6ae4d-db9a-4d3b-8833-cd4d4ff37d56\",\"type\":\"Grid\"},{\"id\":\"5e067861-52ce-4351-9e27-76d8041a573e\",\"type\":\"BoxAnnotation\"},{\"id\":\"98090527-c7d8-48d8-8182-82a92e5bebe6\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"01c92bdb-20d9-47dc-a3e0-791caf54b7ba\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"da06c13f-a69a-44ce-bf04-46cc9c40280e\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1b4faaec-51c8-42b5-83fd-f558cea8f758\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"b9e65373-de3e-4cdc-9f56-d3f32d97bb12\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"7094eac6-a5ef-4f0f-becd-d569bffa5d33\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"0e13fe83-6630-4c4b-be61-10d1b3affdd2\",\"type\":\"LinearScale\"}},\"id\":\"24ef248a-d4d7-47a1-9022-67ff8fa8a30d\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"01c92bdb-20d9-47dc-a3e0-791caf54b7ba\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"03dd76a0-9fbd-4132-bfd2-49b1afcb2a31\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]},\"y\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":null,\"selection_policy\":null},\"id\":\"1453934c-60f2-404b-9fdd-b6333604f363\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null},\"id\":\"1b4faaec-51c8-42b5-83fd-f558cea8f758\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"fd750e08-cd17-4b5e-ab20-9fd234979ddf\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"d6fae419-f53a-4311-819b-270fb781ad0b\",\"type\":\"BasicTickFormatter\"}],\"root_ids\":[\"24ef248a-d4d7-47a1-9022-67ff8fa8a30d\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"761cacd3-e76b-4df6-83a4-7f673fb26f65\",\"elementid\":\"45348a15-679b-42a4-8ce9-72ff6ac0afcc\",\"modelid\":\"24ef248a-d4d7-47a1-9022-67ff8fa8a30d\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "24ef248a-d4d7-47a1-9022-67ff8fa8a30d" } }, "output_type": "display_data" } ], "source": [ "def x_pulse(t, t_0, tau, x_0):\n", " \"\"\"\n", " Returns x value for a pulse beginning at t = 0 \n", " and ending at t = t_0 + tau.\n", " \"\"\"\n", " return np.logical_and(t >= t_0, t <= (t_0 + tau)) * x_0\n", "\n", "# Plot the pulse\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless x')\n", "\n", "# Populate glyphs\n", "p.line(t, x_pulse(t, 1.0, 2.0, 2), line_width=2)\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we want to solve the ODEs for a pulsed input, we need to have a way to pass this function as a parameter. Fortunately, we can pass functions as arguments in Python! So, we write a new function that takes `x_fun`, the function describing $x(t)$ as an argument, as well as `x_args`, the set of parameters passed into `x_fun`." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def cascade_rhs_x_fun(yz, t, beta_y, beta_z, gamma, n_x, n_y, x_fun, x_args):\n", " \"\"\"\n", " Right hand side for cascade X -> Y -> Z. Return dy/dt and dz/dt.\n", " \n", " x_fun is a function of the form x_fun(t, *x_args), so x_args is a tuple\n", " containing the arguments to pass to x_fun.\n", " \"\"\"\n", " # Compute x\n", " x = x_fun(t, *x_args)\n", " \n", " # Return cascade RHS with this value of x\n", " return cascade_rhs(yz, t, beta_y, beta_z, gamma, n_x, n_y, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With this in hand, we can now solve for a pulse. We will have a pulse during $1 \\le t \\le 5$." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"e732ab9f-4659-457b-9fc3-5e4831dabf03\":{\"roots\":{\"references\":[{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]}},\"selected\":null,\"selection_policy\":null},\"id\":\"93d5bd30-7159-4773-a021-f0dfa7eadaf1\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"c2c1535a-a41c-4105-b489-f2e7f875550f\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null},\"id\":\"c32cc84f-fb31-43a3-b860-8f3eb91309eb\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b4c7ecc7-0317-415e-b834-cd63d7bcc195\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"z\"},\"renderers\":[{\"id\":\"a011ff88-8736-4fa1-b4d9-fffb1f523f45\",\"type\":\"GlyphRenderer\"}]},\"id\":\"7249a21a-9481-4d82-976d-272bb9d1a168\",\"type\":\"LegendItem\"},{\"attributes\":{\"axis_label\":\"dimensionless y, z\",\"formatter\":{\"id\":\"ef907948-dd7c-4312-a45e-b1d9da066290\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"5b42c5b4-b3ea-4004-bc5d-00a42c95b932\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c2c1535a-a41c-4105-b489-f2e7f875550f\",\"type\":\"BasicTicker\"}},\"id\":\"f38351d0-b10f-4e5c-80db-5e4031d7b007\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"e94250e0-da2f-4832-b095-f09d106a3b31\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"5b42c5b4-b3ea-4004-bc5d-00a42c95b932\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"16d8a052-08ce-4d6b-bbfe-ce46316bada6\",\"type\":\"BasicTicker\"}},\"id\":\"1926bc2c-9fa1-4a9d-b82e-ad6139fcbf7f\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b98c4e60-3d8e-4749-8301-bd9c594351dd\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"5b42c5b4-b3ea-4004-bc5d-00a42c95b932\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"16d8a052-08ce-4d6b-bbfe-ce46316bada6\",\"type\":\"BasicTicker\"}},\"id\":\"99ecf862-b753-49d7-b6b6-db6737559938\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"16d8a052-08ce-4d6b-bbfe-ce46316bada6\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"5b42c5b4-b3ea-4004-bc5d-00a42c95b932\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c2c1535a-a41c-4105-b489-f2e7f875550f\",\"type\":\"BasicTicker\"}},\"id\":\"5eebc070-09f2-47ee-a130-476ac9426578\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"93d5bd30-7159-4773-a021-f0dfa7eadaf1\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"0d5eeaa6-0b5a-4386-af31-eb9cdc3a1034\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"b98c4e60-3d8e-4749-8301-bd9c594351dd\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"22ea7db0-3c0a-4884-a250-3dc94f87b29d\",\"type\":\"CDSView\"}},\"id\":\"c34eff01-57a8-45c3-acf4-f8e268f943b7\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null},\"id\":\"e0c87309-4125-4dcf-9811-3f7c07404a5b\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"07381e81-5c3a-4cb1-964d-c6bd33d9730f\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"0d5eeaa6-0b5a-4386-af31-eb9cdc3a1034\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"ef907948-dd7c-4312-a45e-b1d9da066290\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"a1fc9255-752b-461a-a654-0294cfbdb967\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"459b6ead-11b7-4f32-b6b8-14b400632841\",\"type\":\"PanTool\"},{\"attributes\":{\"source\":{\"id\":\"93d5bd30-7159-4773-a021-f0dfa7eadaf1\",\"type\":\"ColumnDataSource\"}},\"id\":\"22ea7db0-3c0a-4884-a250-3dc94f87b29d\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"4f165636-1517-44f8-8078-41f58c1d5e07\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"a1fc9255-752b-461a-a654-0294cfbdb967\",\"type\":\"BoxAnnotation\"}},\"id\":\"76a134e3-4c79-44ce-af61-bf9bfa478db3\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"7c0e6afe-4f49-4c7d-af85-0195824d5feb\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"8b6e95cf-a6c5-4f31-b146-f408ec55824a\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2c49341e-2920-48e5-b825-10df4141b6cf\",\"type\":\"HelpTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"459b6ead-11b7-4f32-b6b8-14b400632841\",\"type\":\"PanTool\"},{\"id\":\"4f165636-1517-44f8-8078-41f58c1d5e07\",\"type\":\"WheelZoomTool\"},{\"id\":\"76a134e3-4c79-44ce-af61-bf9bfa478db3\",\"type\":\"BoxZoomTool\"},{\"id\":\"7c0e6afe-4f49-4c7d-af85-0195824d5feb\",\"type\":\"SaveTool\"},{\"id\":\"8b6e95cf-a6c5-4f31-b146-f408ec55824a\",\"type\":\"ResetTool\"},{\"id\":\"2c49341e-2920-48e5-b825-10df4141b6cf\",\"type\":\"HelpTool\"}]},\"id\":\"959147a9-19a0-4695-a55d-219c42c15ba6\",\"type\":\"Toolbar\"},{\"attributes\":{\"items\":[{\"id\":\"3bfb907a-94b9-4235-a5b1-bd94e1e81477\",\"type\":\"LegendItem\"},{\"id\":\"7249a21a-9481-4d82-976d-272bb9d1a168\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"5b42c5b4-b3ea-4004-bc5d-00a42c95b932\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"a6a9570f-0f96-449c-be09-a36f76a4f635\",\"type\":\"Legend\"},{\"attributes\":{\"label\":{\"value\":\"y\"},\"renderers\":[{\"id\":\"c34eff01-57a8-45c3-acf4-f8e268f943b7\",\"type\":\"GlyphRenderer\"}]},\"id\":\"3bfb907a-94b9-4235-a5b1-bd94e1e81477\",\"type\":\"LegendItem\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"5d72f5cb-e6eb-4b2a-8c8d-ff0753759da0\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]}},\"selected\":null,\"selection_policy\":null},\"id\":\"566bc3da-16f8-4373-8a6f-6a7163cd9244\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"345a3dec-304e-4b55-ab02-1e55c745751e\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"e94250e0-da2f-4832-b095-f09d106a3b31\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"566bc3da-16f8-4373-8a6f-6a7163cd9244\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b4c7ecc7-0317-415e-b834-cd63d7bcc195\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"345a3dec-304e-4b55-ab02-1e55c745751e\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"a4517aa1-18d6-4e21-8d7e-2b2386e7ba8d\",\"type\":\"CDSView\"}},\"id\":\"a011ff88-8736-4fa1-b4d9-fffb1f523f45\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"566bc3da-16f8-4373-8a6f-6a7163cd9244\",\"type\":\"ColumnDataSource\"}},\"id\":\"a4517aa1-18d6-4e21-8d7e-2b2386e7ba8d\",\"type\":\"CDSView\"},{\"attributes\":{\"below\":[{\"id\":\"1926bc2c-9fa1-4a9d-b82e-ad6139fcbf7f\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"f38351d0-b10f-4e5c-80db-5e4031d7b007\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"1926bc2c-9fa1-4a9d-b82e-ad6139fcbf7f\",\"type\":\"LinearAxis\"},{\"id\":\"99ecf862-b753-49d7-b6b6-db6737559938\",\"type\":\"Grid\"},{\"id\":\"f38351d0-b10f-4e5c-80db-5e4031d7b007\",\"type\":\"LinearAxis\"},{\"id\":\"5eebc070-09f2-47ee-a130-476ac9426578\",\"type\":\"Grid\"},{\"id\":\"a1fc9255-752b-461a-a654-0294cfbdb967\",\"type\":\"BoxAnnotation\"},{\"id\":\"a6a9570f-0f96-449c-be09-a36f76a4f635\",\"type\":\"Legend\"},{\"id\":\"c34eff01-57a8-45c3-acf4-f8e268f943b7\",\"type\":\"GlyphRenderer\"},{\"id\":\"a011ff88-8736-4fa1-b4d9-fffb1f523f45\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"5d72f5cb-e6eb-4b2a-8c8d-ff0753759da0\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"959147a9-19a0-4695-a55d-219c42c15ba6\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"c32cc84f-fb31-43a3-b860-8f3eb91309eb\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"07381e81-5c3a-4cb1-964d-c6bd33d9730f\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"e0c87309-4125-4dcf-9811-3f7c07404a5b\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"a82ee7b0-5d13-4cc7-91c8-4fee0efcb591\",\"type\":\"LinearScale\"}},\"id\":\"5b42c5b4-b3ea-4004-bc5d-00a42c95b932\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"a82ee7b0-5d13-4cc7-91c8-4fee0efcb591\",\"type\":\"LinearScale\"}],\"root_ids\":[\"5b42c5b4-b3ea-4004-bc5d-00a42c95b932\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"e732ab9f-4659-457b-9fc3-5e4831dabf03\",\"elementid\":\"45dacdec-70c8-4e51-844c-5a0e51bf29ff\",\"modelid\":\"5b42c5b4-b3ea-4004-bc5d-00a42c95b932\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "5b42c5b4-b3ea-4004-bc5d-00a42c95b932" } }, "output_type": "display_data" } ], "source": [ "# Set up parameters for the pulse (on at t = 1, off at t = 5, x_0 = 2)\n", "x_args = (1.0, 4.0, 2.0)\n", "\n", "# Package parameters into a tuple\n", "args = (beta_y, beta_z, gamma, n_x, n_y, x_pulse, x_args)\n", "\n", "# Integrate ODEs\n", "yz = scipy.integrate.odeint(cascade_rhs_x_fun, yz_0, t, args=args)\n", "\n", "# Pluck out y and z\n", "y, z = yz.transpose()\n", "\n", "# Plot the results\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "p.line(t, y, line_width=2, color=colors[0], legend='y')\n", "p.line(t, z,line_width=2, color=colors[1], legend='z')\n", "\n", "# Place the legend\n", "p.legend.location = 'top_right'\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see what happens when we do a shorter pulse, this time with $1 \\le t \\le 3$." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"5ec2cabe-4182-4322-9ab3-6a1d857fe72c\":{\"roots\":{\"references\":[{\"attributes\":{\"plot\":{\"id\":\"cc182c9a-c1b1-45e3-b9bf-49c9f04c3ad4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"2bacb456-0eb6-4bee-843e-58a78aa3eb44\",\"type\":\"BasicTicker\"}},\"id\":\"cdb601ff-0a86-4638-905c-83474f0dd513\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"cd258201-38de-45ef-a402-4a8c70b83ea3\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"efcad41d-088e-42ed-b75a-7575e23e91bf\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"cd258201-38de-45ef-a402-4a8c70b83ea3\",\"type\":\"LinearAxis\"},{\"id\":\"cdb601ff-0a86-4638-905c-83474f0dd513\",\"type\":\"Grid\"},{\"id\":\"efcad41d-088e-42ed-b75a-7575e23e91bf\",\"type\":\"LinearAxis\"},{\"id\":\"60160c61-0536-4d01-8da7-168606d8abd1\",\"type\":\"Grid\"},{\"id\":\"165ba120-e012-4050-b3de-4b69c7bda11d\",\"type\":\"BoxAnnotation\"},{\"id\":\"4a82f74f-6977-4666-b2b4-ccf36d03a1fd\",\"type\":\"Legend\"},{\"id\":\"9e8749a5-5532-4302-816f-33e15d7d9d3c\",\"type\":\"GlyphRenderer\"},{\"id\":\"3a52a51c-e92f-4e46-91ae-8dcfe68cc67f\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"a57682be-4bae-432c-a30e-ceaec0eec0ce\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"b22bd5e6-b0ec-4dd5-a717-a03a1a0e43be\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"cc1d92b0-1af6-4c72-8a3c-3c64d5aaa4ab\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"21fddd48-7e00-430e-b1f3-c1735d47b7e0\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"d398e03f-e9e8-4f82-92be-756625a1c812\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"e848cf5f-e5fb-466b-bb68-d542625ca675\",\"type\":\"LinearScale\"}},\"id\":\"cc182c9a-c1b1-45e3-b9bf-49c9f04c3ad4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]}},\"selected\":null,\"selection_policy\":null},\"id\":\"5bcf5a80-5ad2-4b84-aa93-942d5bd30410\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"9b233cd4-434e-4bb5-9312-f20f4ea090be\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"21fddd48-7e00-430e-b1f3-c1735d47b7e0\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1319a3fb-7572-42f3-9b31-f7573cb34681\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null},\"id\":\"cc1d92b0-1af6-4c72-8a3c-3c64d5aaa4ab\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"ee21c704-4884-4e51-b143-f8c4fb7c5ca0\",\"type\":\"Line\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"de855d6c-4ed3-4d7e-8757-6fcf008459d9\",\"type\":\"PanTool\"},{\"id\":\"966dae72-3b8d-4467-8748-fb5fb1a17bad\",\"type\":\"WheelZoomTool\"},{\"id\":\"3c76f6cd-9bbd-446b-92bd-093908e342bf\",\"type\":\"BoxZoomTool\"},{\"id\":\"804f12f5-bd75-454a-b8ec-a769e78faed1\",\"type\":\"SaveTool\"},{\"id\":\"97b4b348-9d40-4ece-ac81-0fea5822f17a\",\"type\":\"ResetTool\"},{\"id\":\"b65163d4-b30e-4cc7-a44d-4717d5c53866\",\"type\":\"HelpTool\"}]},\"id\":\"b22bd5e6-b0ec-4dd5-a717-a03a1a0e43be\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"6b80d437-c384-4fcb-9add-f5870bd49ed5\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null},\"id\":\"d398e03f-e9e8-4f82-92be-756625a1c812\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"e848cf5f-e5fb-466b-bb68-d542625ca675\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"bca1d235-dacd-49f4-954f-a9fa2958296d\",\"type\":\"Line\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"cc182c9a-c1b1-45e3-b9bf-49c9f04c3ad4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6b80d437-c384-4fcb-9add-f5870bd49ed5\",\"type\":\"BasicTicker\"}},\"id\":\"60160c61-0536-4d01-8da7-168606d8abd1\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"dimensionless y, z\",\"formatter\":{\"id\":\"8c84ebc7-54d4-4094-ac59-4449a1015ef8\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"cc182c9a-c1b1-45e3-b9bf-49c9f04c3ad4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6b80d437-c384-4fcb-9add-f5870bd49ed5\",\"type\":\"BasicTicker\"}},\"id\":\"efcad41d-088e-42ed-b75a-7575e23e91bf\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2bacb456-0eb6-4bee-843e-58a78aa3eb44\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"1319a3fb-7572-42f3-9b31-f7573cb34681\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"cc182c9a-c1b1-45e3-b9bf-49c9f04c3ad4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"2bacb456-0eb6-4bee-843e-58a78aa3eb44\",\"type\":\"BasicTicker\"}},\"id\":\"cd258201-38de-45ef-a402-4a8c70b83ea3\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]}},\"selected\":null,\"selection_policy\":null},\"id\":\"4201c11c-846b-44da-bebb-3278e045e2f8\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"8c84ebc7-54d4-4094-ac59-4449a1015ef8\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"5bcf5a80-5ad2-4b84-aa93-942d5bd30410\",\"type\":\"ColumnDataSource\"}},\"id\":\"446bd7e3-9d98-48a9-a639-9c6ac96cb76f\",\"type\":\"CDSView\"},{\"attributes\":{\"items\":[{\"id\":\"c915f71d-a6e4-4478-b6c8-7eabc072489f\",\"type\":\"LegendItem\"},{\"id\":\"36af7fad-60e2-45e9-9082-158a8353131f\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"cc182c9a-c1b1-45e3-b9bf-49c9f04c3ad4\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"4a82f74f-6977-4666-b2b4-ccf36d03a1fd\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"de855d6c-4ed3-4d7e-8757-6fcf008459d9\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"165ba120-e012-4050-b3de-4b69c7bda11d\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"966dae72-3b8d-4467-8748-fb5fb1a17bad\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"804f12f5-bd75-454a-b8ec-a769e78faed1\",\"type\":\"SaveTool\"},{\"attributes\":{\"overlay\":{\"id\":\"165ba120-e012-4050-b3de-4b69c7bda11d\",\"type\":\"BoxAnnotation\"}},\"id\":\"3c76f6cd-9bbd-446b-92bd-093908e342bf\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"b65163d4-b30e-4cc7-a44d-4717d5c53866\",\"type\":\"HelpTool\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"a57682be-4bae-432c-a30e-ceaec0eec0ce\",\"type\":\"Title\"},{\"attributes\":{\"label\":{\"value\":\"y\"},\"renderers\":[{\"id\":\"9e8749a5-5532-4302-816f-33e15d7d9d3c\",\"type\":\"GlyphRenderer\"}]},\"id\":\"c915f71d-a6e4-4478-b6c8-7eabc072489f\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"97b4b348-9d40-4ece-ac81-0fea5822f17a\",\"type\":\"ResetTool\"},{\"attributes\":{\"data_source\":{\"id\":\"4201c11c-846b-44da-bebb-3278e045e2f8\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"9b233cd4-434e-4bb5-9312-f20f4ea090be\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"e1b9159a-c324-4cc8-8f88-0730a6bc106c\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"17dfd11e-be2b-4c35-aaea-420d11425dd6\",\"type\":\"CDSView\"}},\"id\":\"3a52a51c-e92f-4e46-91ae-8dcfe68cc67f\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"4201c11c-846b-44da-bebb-3278e045e2f8\",\"type\":\"ColumnDataSource\"}},\"id\":\"17dfd11e-be2b-4c35-aaea-420d11425dd6\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"e1b9159a-c324-4cc8-8f88-0730a6bc106c\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"z\"},\"renderers\":[{\"id\":\"3a52a51c-e92f-4e46-91ae-8dcfe68cc67f\",\"type\":\"GlyphRenderer\"}]},\"id\":\"36af7fad-60e2-45e9-9082-158a8353131f\",\"type\":\"LegendItem\"},{\"attributes\":{\"data_source\":{\"id\":\"5bcf5a80-5ad2-4b84-aa93-942d5bd30410\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"bca1d235-dacd-49f4-954f-a9fa2958296d\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"ee21c704-4884-4e51-b143-f8c4fb7c5ca0\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"446bd7e3-9d98-48a9-a639-9c6ac96cb76f\",\"type\":\"CDSView\"}},\"id\":\"9e8749a5-5532-4302-816f-33e15d7d9d3c\",\"type\":\"GlyphRenderer\"}],\"root_ids\":[\"cc182c9a-c1b1-45e3-b9bf-49c9f04c3ad4\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"5ec2cabe-4182-4322-9ab3-6a1d857fe72c\",\"elementid\":\"a6d4efeb-d116-4209-b901-65584796fff2\",\"modelid\":\"cc182c9a-c1b1-45e3-b9bf-49c9f04c3ad4\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "cc182c9a-c1b1-45e3-b9bf-49c9f04c3ad4" } }, "output_type": "display_data" } ], "source": [ "# Set up parameters for the pulse (on at t = 1, off at t = 3, x_0 = 2)\n", "x_args = (1.0, 2.0, 2.0)\n", "\n", "# Package parameters into a tuple\n", "args = (beta_y, beta_z, gamma, n_x, n_y, x_pulse, x_args)\n", "\n", "# Integrate ODEs\n", "yz = scipy.integrate.odeint(cascade_rhs_x_fun, yz_0, t, args=args)\n", "\n", "# Pluck out y and z\n", "y, z = yz.transpose()\n", "\n", "# Plot the results\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "p.line(t, y, line_width=2, color=colors[0], legend='y')\n", "p.line(t, z,line_width=2, color=colors[1], legend='z')\n", "\n", "# Place the legend\n", "p.legend.location = 'top_right'\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that Z basically does not respond to a short pulse. The delay of the circuit allows short pulses to be ignored, but large pulses to be detected and responded to." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Really short pulses and a lesson about scipy.integrate.odeint()\n", "\n", "Now, we will take a brief interlude to learn an important lesson about the algorithm of `scipy.integrate.odeint()` and its use in these applications. We will consider a very brief pulse, $1 \\le t \\le 1.1$." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"d715ac88-d77d-4fd0-b393-340e5d74e061\":{\"roots\":{\"references\":[{\"attributes\":{\"callback\":null},\"id\":\"b6769df8-4fd1-43b9-b0b2-82920970b3b0\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[1000]}},\"selected\":null,\"selection_policy\":null},\"id\":\"0d6e7621-3d9a-4cc9-a40d-ddf24c83315e\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a2f5afab-7a0c-466e-8f1c-6918522e9364\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"16c04fc4-ecc7-4c8f-beae-6dd021b77cb9\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"6563e3c6-f3ae-42ad-90de-17a0b2a356f6\",\"type\":\"LinearScale\"},{\"attributes\":{\"plot\":{\"id\":\"0632b92b-d408-4bd3-baa5-3cc155373a36\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c9364b46-14c4-4d69-8353-0729507a245c\",\"type\":\"BasicTicker\"}},\"id\":\"cecd3c6c-860d-4499-99b7-811bd305608f\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"499b94ec-1580-4fbe-b2da-68da038b1b92\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"0632b92b-d408-4bd3-baa5-3cc155373a36\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c9364b46-14c4-4d69-8353-0729507a245c\",\"type\":\"BasicTicker\"}},\"id\":\"22e790e6-09c4-4855-9c1b-8ae872e1c43c\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"c9364b46-14c4-4d69-8353-0729507a245c\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"dimensionless y, z\",\"formatter\":{\"id\":\"ee7ac6b2-9f03-4527-bf9b-9c06142c159c\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"0632b92b-d408-4bd3-baa5-3cc155373a36\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"a379488f-8826-471e-b0c6-48536f3dcfb9\",\"type\":\"BasicTicker\"}},\"id\":\"647a7b0c-2548-45d6-8988-0f57b1ac7d1d\",\"type\":\"LinearAxis\"},{\"attributes\":{\"label\":{\"value\":\"y\"},\"renderers\":[{\"id\":\"b0dca82a-2bcd-482f-a5ff-6376588898b1\",\"type\":\"GlyphRenderer\"}]},\"id\":\"71660f54-b447-43f8-88d3-53c57b65f1de\",\"type\":\"LegendItem\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"66e62e57-df1f-4778-94cb-176c026cfe19\",\"type\":\"Title\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"0632b92b-d408-4bd3-baa5-3cc155373a36\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"a379488f-8826-471e-b0c6-48536f3dcfb9\",\"type\":\"BasicTicker\"}},\"id\":\"fbf57256-396d-4ead-a00a-f1870f87d6b3\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"1c2128d2-e692-4fb1-ad10-a22479fb4308\",\"type\":\"BoxAnnotation\"}},\"id\":\"b348402f-6349-4da2-844f-4ebc015f4e55\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"b15be964-0dea-4a87-a8f7-7c1f9af1cc6a\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"0d6e7621-3d9a-4cc9-a40d-ddf24c83315e\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1581e8ad-14a4-43ee-853d-0b1657a890b4\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"a2f5afab-7a0c-466e-8f1c-6918522e9364\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1905cdc2-ddf6-477f-b37c-6359976eda43\",\"type\":\"CDSView\"}},\"id\":\"b0dca82a-2bcd-482f-a5ff-6376588898b1\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1581e8ad-14a4-43ee-853d-0b1657a890b4\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"ee7ac6b2-9f03-4527-bf9b-9c06142c159c\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1c2128d2-e692-4fb1-ad10-a22479fb4308\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"aad22c71-f6fe-4baf-b609-03b9596ea2d7\",\"type\":\"PanTool\"},{\"attributes\":{\"source\":{\"id\":\"0d6e7621-3d9a-4cc9-a40d-ddf24c83315e\",\"type\":\"ColumnDataSource\"}},\"id\":\"1905cdc2-ddf6-477f-b37c-6359976eda43\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"0af02cfc-1a5a-4401-a570-f49e43c477d1\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"33aeb77d-35fe-482e-ace8-a8537c76fd2d\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"0815d16f-315d-4c03-aef1-1d841cc950db\",\"type\":\"HelpTool\"},{\"attributes\":{\"items\":[{\"id\":\"71660f54-b447-43f8-88d3-53c57b65f1de\",\"type\":\"LegendItem\"},{\"id\":\"77cd2930-eb55-4f76-843c-34053d1b3bfb\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"0632b92b-d408-4bd3-baa5-3cc155373a36\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"cf85af7a-2111-4a58-aa6e-d7492182cebb\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"499b94ec-1580-4fbe-b2da-68da038b1b92\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b13354d4-4691-4b5a-81bc-f4fc51d75e29\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"93edfead-2c92-4e12-a3d8-8f47cf510161\",\"type\":\"ColumnDataSource\"}},\"id\":\"7db57d47-355a-4390-a4ef-7c6fdac385c4\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"ec1f39ef-97a3-4bb5-8df8-753f29700172\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"93edfead-2c92-4e12-a3d8-8f47cf510161\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b13354d4-4691-4b5a-81bc-f4fc51d75e29\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"376354d0-bf29-4045-8d67-d8a3d33f07bd\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"7db57d47-355a-4390-a4ef-7c6fdac385c4\",\"type\":\"CDSView\"}},\"id\":\"203604af-6da0-4a01-bfcc-dff78b126244\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"label\":{\"value\":\"z\"},\"renderers\":[{\"id\":\"203604af-6da0-4a01-bfcc-dff78b126244\",\"type\":\"GlyphRenderer\"}]},\"id\":\"77cd2930-eb55-4f76-843c-34053d1b3bfb\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"376354d0-bf29-4045-8d67-d8a3d33f07bd\",\"type\":\"Line\"},{\"attributes\":{\"below\":[{\"id\":\"22e790e6-09c4-4855-9c1b-8ae872e1c43c\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"647a7b0c-2548-45d6-8988-0f57b1ac7d1d\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"22e790e6-09c4-4855-9c1b-8ae872e1c43c\",\"type\":\"LinearAxis\"},{\"id\":\"cecd3c6c-860d-4499-99b7-811bd305608f\",\"type\":\"Grid\"},{\"id\":\"647a7b0c-2548-45d6-8988-0f57b1ac7d1d\",\"type\":\"LinearAxis\"},{\"id\":\"fbf57256-396d-4ead-a00a-f1870f87d6b3\",\"type\":\"Grid\"},{\"id\":\"1c2128d2-e692-4fb1-ad10-a22479fb4308\",\"type\":\"BoxAnnotation\"},{\"id\":\"cf85af7a-2111-4a58-aa6e-d7492182cebb\",\"type\":\"Legend\"},{\"id\":\"b0dca82a-2bcd-482f-a5ff-6376588898b1\",\"type\":\"GlyphRenderer\"},{\"id\":\"203604af-6da0-4a01-bfcc-dff78b126244\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"66e62e57-df1f-4778-94cb-176c026cfe19\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"825d6f44-82b9-4e64-a69c-31f404566551\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"ec1f39ef-97a3-4bb5-8df8-753f29700172\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"16c04fc4-ecc7-4c8f-beae-6dd021b77cb9\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"b6769df8-4fd1-43b9-b0b2-82920970b3b0\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"6563e3c6-f3ae-42ad-90de-17a0b2a356f6\",\"type\":\"LinearScale\"}},\"id\":\"0632b92b-d408-4bd3-baa5-3cc155373a36\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"a379488f-8826-471e-b0c6-48536f3dcfb9\",\"type\":\"BasicTicker\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"aad22c71-f6fe-4baf-b609-03b9596ea2d7\",\"type\":\"PanTool\"},{\"id\":\"b15be964-0dea-4a87-a8f7-7c1f9af1cc6a\",\"type\":\"WheelZoomTool\"},{\"id\":\"b348402f-6349-4da2-844f-4ebc015f4e55\",\"type\":\"BoxZoomTool\"},{\"id\":\"0af02cfc-1a5a-4401-a570-f49e43c477d1\",\"type\":\"SaveTool\"},{\"id\":\"33aeb77d-35fe-482e-ace8-a8537c76fd2d\",\"type\":\"ResetTool\"},{\"id\":\"0815d16f-315d-4c03-aef1-1d841cc950db\",\"type\":\"HelpTool\"}]},\"id\":\"825d6f44-82b9-4e64-a69c-31f404566551\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1000]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[1000]}},\"selected\":null,\"selection_policy\":null},\"id\":\"93edfead-2c92-4e12-a3d8-8f47cf510161\",\"type\":\"ColumnDataSource\"}],\"root_ids\":[\"0632b92b-d408-4bd3-baa5-3cc155373a36\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"d715ac88-d77d-4fd0-b393-340e5d74e061\",\"elementid\":\"0666a49c-f340-4841-abf8-20af94e407e3\",\"modelid\":\"0632b92b-d408-4bd3-baa5-3cc155373a36\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "0632b92b-d408-4bd3-baa5-3cc155373a36" } }, "output_type": "display_data" } ], "source": [ "# Set up parameters for the pulse (on at t = 1, off at t = 1.1, x_0 = 2)\n", "x_args = (1.0, 0.1, 2.0)\n", "\n", "# Package parameters into a tuple\n", "args = (beta_y, beta_z, gamma, n_x, n_y, x_pulse, x_args)\n", "\n", "# Integrate ODEs\n", "yz = scipy.integrate.odeint(cascade_rhs_x_fun, yz_0, t, args=args)\n", "\n", "# Pluck out y and z\n", "y, z = yz.transpose()\n", "\n", "# Plot the results\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "p.line(t, y, line_width=2, color=colors[0], legend='y')\n", "p.line(t, z,line_width=2, color=colors[1], legend='z')\n", "\n", "# Place the legend\n", "p.legend.location = 'top_right'\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Uh oh! Something went wrong, since the Y signal never went up. This exposes an important issue with the algorithm used by `scipy.integrate.odeint()`. The Hindmarsh algorithm uses variable step sizes so that it takes long steps when the system is not changing much and short steps when it is. Therefore, if we have a long period of no changes (leading up to $t = 1$), the step sizes taken by the solver will increase, and we'll step right over the pulse.\n", "\n", "So, it is in general good practice to explicitly take into account discontinuities in the parameters over time. In this case, we would use `scipy.integrate.odeint()` to integrate to the pulse and use the end point of that as the initial condition of a new solution during the pulse. Then, at the end of the pulse, we start again. Let's try again using this method." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"ab41f208-1bf3-460b-90a1-7e74dc8f549d\":{\"roots\":{\"references\":[{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"72dc79b3-c11d-4dc5-a413-a924d78532a4\",\"type\":\"PanTool\"},{\"id\":\"0d6a62e1-992e-4faa-ac75-af7013b47742\",\"type\":\"WheelZoomTool\"},{\"id\":\"20f8a1f9-d179-46c6-bf6d-9fb315fd08ea\",\"type\":\"BoxZoomTool\"},{\"id\":\"ddd219be-2a2c-4261-b5ba-affa1a2e7674\",\"type\":\"SaveTool\"},{\"id\":\"1d88f2fd-de0e-4762-84ed-09c8e6da505d\",\"type\":\"ResetTool\"},{\"id\":\"8c5760ac-11e9-4007-8748-ffda6474beeb\",\"type\":\"HelpTool\"}]},\"id\":\"439f018e-7c5b-4856-bd1a-c6e543b8a12b\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwP88SdvNbCPA/niXs5rcQ8D9tOGLaExnwPzxL2M1vIfA/Cl5Owcsp8D/ZcMS0JzLwP6iDOqiDOvA/d5awm99C8D9GqSaPO0vwPxW8nIKXU/A/5M4SdvNb8D+z4YhpT2TwP4L0/lyrbPA/UQd1UAd18D8fGutDY33wP+4sYTe/hfA/vT/XKhuO8D+MUk0ed5bwP1tlwxHTnvA/Kng5BS+n8D/5iq/4iq/wP8idJezmt/A/l7Cb30LA8D9mwxHTnsjwPzTWh8b60PA/A+n9uVbZ8D/S+3OtsuHwP6EO6qAO6vA/cCFglGry8D8/NNaHxvrwPw5HTHsiA/E/3VnCbn4L8T+sbDhi2hPxP3t/rlU2HPE/SZIkSZIk8T8YpZo87izxP+e3EDBKNfE/tsqGI6Y98T+F3fwWAkbxP1TwcgpeTvE/IwPp/blW8T/yFV/xFV/xP8Eo1eRxZ/E/kDtL2M1v8T9eTsHLKXjxPy1hN7+FgPE//HOtsuGI8T/LhiOmPZHxP5qZmZmZmfE/H3eWsJvf8j+jVJPHnSX0PygykN6fa/U/rQ+N9aGx9j8y7YkMpPf3P7bKhiOmPfk/O6iDOqiD+j/AhYBRqsn7P0RjfWisD/0/yUB6f65V/j9OHneWsJv/P+n9uVbZcABArGw4YtoTAUBu27Zt27YBQDBKNXncWQJA8rizhN38AkC1JzKQ3p8DQHeWsJvfQgRAOgUvp+DlBED8c62y4YgFQL7iK77iKwZAgFGqyePOBkBDwCjV5HEHQAUvp+DlFAhAyJ0l7Oa3CECKDKT351oJQEx7IgPp/QlAD+qgDuqgCkDRWB8a60MLQJPHnSXs5gtAVjYcMe2JDEAYpZo87iwNQNoTGUjvzw1AnYKXU/ByDkBf8RVf8RUPQCFglGryuA9AcmcJu/ktEEDTnshAen8QQDTWh8b60BBAlg1HTHsiEUD2RAbS+3MRQFh8xVd8xRFAubOE3fwWEkAa60NjfWgSQHsiA+n9uRJA3FnCbn4LE0A+kYH0/lwTQJ7IQHp/rhNAAAAAAAAAFEA=\",\"dtype\":\"float64\",\"shape\":[118]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTZ00XWuFo/4VmrBeGxaj+Eb2fNMAB0P1KlD9P2o3o/+Px5EySigD/G/K5LkfCDP4wEv1dEPYc/Tva8UT6Iij/425VFgNGNP7xfm5+FjJA/XFVGJXAvkj+lA3EpgNGTPyrdLQC2cpU/Xn0BGBITlz+kd9nglLKYP7yvqso+UZo/p7BdRxDvmz+/x+vICYydP8A6b8ArKJ8/syeBT7thoD+Q0rBq9S6hPxJQImnE+6E/KlW6gijIoj9YQX7vIZSjPwR0c+ewX6Q/vY8oodUqpT+mDPNVkPWlP0IxWjvhv6Y/Ox8diciJpz+2xNF2RlOoP+psHTtbHKk/J5LJDAflqT+akbciSq2qP7QZorMkdas/Fyod9pY8rD/zE5YgoQOtP3d5U2lDyq0/L051Bn6Qrj8wHvUtUVavP9RHAoveDbA/E2tg+mBwsD8mkPT/r9KwP2CmjbbLNLE/DPXpOLSWsT9rG7ehafixP9wQkgvsWbI/mCQHkTu7sj/l/ZFMWByzP/Q8ulhCfbM/pHXpVYz/sT+pregmCp+wP2qo+g0As64/8KIFn7tZrD/EQleIdy6qP5FHia+uLag/VayQKiFUpj/WHJqyzp6kP/vwJWHxCqM/31+lB/qVoT9gdm6Aiz2gP8TvUtjt/p0/2logXnCzmz+sO5Vh5ZSZP8qfGmTcn5c/ekk+bCjRlT+zYZjx2iWUP2CAW4E+m5I/m6bV2NIukT9kKD1DkbyPPynw6JH7To0/L1sdGvQQiz/8IaZq1/6IP9q8CV1JFYc/rfz7mC9RhT/Qp1xyrK+DP87RqosaLoI/Dr8bdAjKgD9CYH1baAJ/P9oofLYQo3w/VtFFSzByej+YhkD5OGx4Pxf7RJHijXY/HvscmSTUdD/+F3iUMjxzPy+7nnt2w3E/4Eu684xncD8MTi1Og0xuPwbdPRMW+2s/Xjccpw/XaT+P3f639txnP60ayfmVCWY/JaRhQPdZZD8dfRykXctiP5cdK79CW2E//rP8LFIHYD+sOv7nxppdP/RQ7mfyVls/VkH1Fns/WT8=\",\"dtype\":\"float64\",\"shape\":[118]}},\"selected\":null,\"selection_policy\":null},\"id\":\"895153e2-0663-449e-8aad-9d1162f43369\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"895153e2-0663-449e-8aad-9d1162f43369\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"85ef3df3-16e4-4e4c-b8c7-2e80e9953a79\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"75f8418c-bae4-448f-b069-686a9ba293a3\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"233f0554-74f4-46f4-a12d-ad5c731b36d9\",\"type\":\"CDSView\"}},\"id\":\"94bd7269-e9d5-466c-ae31-71e9da6e2e02\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null},\"id\":\"5d8d66cf-9499-476f-bdf7-a24b0782ce9f\",\"type\":\"DataRange1d\"},{\"attributes\":{\"overlay\":{\"id\":\"70295cd7-cd30-48d0-ba17-4cab2a3fe250\",\"type\":\"BoxAnnotation\"}},\"id\":\"20f8a1f9-d179-46c6-bf6d-9fb315fd08ea\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"callback\":null},\"id\":\"77957218-b264-4e83-baf9-0c5ea36a6624\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"ca6c1b22-df92-4eff-a8b0-83cdd70e2071\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"4acb3549-c48a-403d-a14e-fcabdaaf0d4d\",\"type\":\"LinearScale\"},{\"attributes\":{\"plot\":{\"id\":\"81531613-e2cb-4b70-a62a-31f31c2ea568\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"73792a99-f085-4b68-bced-f1aeeddd8cf8\",\"type\":\"BasicTicker\"}},\"id\":\"47677d33-c521-41cb-b886-9b28dd83bf29\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"c5edea0d-4779-4117-9f0f-6ed9700196cf\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"81531613-e2cb-4b70-a62a-31f31c2ea568\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"73792a99-f085-4b68-bced-f1aeeddd8cf8\",\"type\":\"BasicTicker\"}},\"id\":\"15bd08ed-d919-483e-a327-f14ba03e5777\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"73792a99-f085-4b68-bced-f1aeeddd8cf8\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"dimensionless y, z\",\"formatter\":{\"id\":\"31fe76c7-1de3-4f3a-adee-ec104be1fbb4\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"81531613-e2cb-4b70-a62a-31f31c2ea568\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"06f2eaed-3ef7-4501-8135-212084b887be\",\"type\":\"BasicTicker\"}},\"id\":\"ce0c4408-c92c-447a-8382-bbacb4072157\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"06f2eaed-3ef7-4501-8135-212084b887be\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"81531613-e2cb-4b70-a62a-31f31c2ea568\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"06f2eaed-3ef7-4501-8135-212084b887be\",\"type\":\"BasicTicker\"}},\"id\":\"44d2cc8c-130b-444a-8a52-c4641b43318b\",\"type\":\"Grid\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"85ef3df3-16e4-4e4c-b8c7-2e80e9953a79\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"ddd219be-2a2c-4261-b5ba-affa1a2e7674\",\"type\":\"SaveTool\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"8260b798-5d0f-4006-9565-220130e32c0a\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1d88f2fd-de0e-4762-84ed-09c8e6da505d\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"75f8418c-bae4-448f-b069-686a9ba293a3\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"y\"},\"renderers\":[{\"id\":\"94bd7269-e9d5-466c-ae31-71e9da6e2e02\",\"type\":\"GlyphRenderer\"}]},\"id\":\"cbdaece1-9f3c-4a7d-ba12-14ed28e1e231\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwP88SdvNbCPA/niXs5rcQ8D9tOGLaExnwPzxL2M1vIfA/Cl5Owcsp8D/ZcMS0JzLwP6iDOqiDOvA/d5awm99C8D9GqSaPO0vwPxW8nIKXU/A/5M4SdvNb8D+z4YhpT2TwP4L0/lyrbPA/UQd1UAd18D8fGutDY33wP+4sYTe/hfA/vT/XKhuO8D+MUk0ed5bwP1tlwxHTnvA/Kng5BS+n8D/5iq/4iq/wP8idJezmt/A/l7Cb30LA8D9mwxHTnsjwPzTWh8b60PA/A+n9uVbZ8D/S+3OtsuHwP6EO6qAO6vA/cCFglGry8D8/NNaHxvrwPw5HTHsiA/E/3VnCbn4L8T+sbDhi2hPxP3t/rlU2HPE/SZIkSZIk8T8YpZo87izxP+e3EDBKNfE/tsqGI6Y98T+F3fwWAkbxP1TwcgpeTvE/IwPp/blW8T/yFV/xFV/xP8Eo1eRxZ/E/kDtL2M1v8T9eTsHLKXjxPy1hN7+FgPE//HOtsuGI8T/LhiOmPZHxP5qZmZmZmfE/H3eWsJvf8j+jVJPHnSX0PygykN6fa/U/rQ+N9aGx9j8y7YkMpPf3P7bKhiOmPfk/O6iDOqiD+j/AhYBRqsn7P0RjfWisD/0/yUB6f65V/j9OHneWsJv/P+n9uVbZcABArGw4YtoTAUBu27Zt27YBQDBKNXncWQJA8rizhN38AkC1JzKQ3p8DQHeWsJvfQgRAOgUvp+DlBED8c62y4YgFQL7iK77iKwZAgFGqyePOBkBDwCjV5HEHQAUvp+DlFAhAyJ0l7Oa3CECKDKT351oJQEx7IgPp/QlAD+qgDuqgCkDRWB8a60MLQJPHnSXs5gtAVjYcMe2JDEAYpZo87iwNQNoTGUjvzw1AnYKXU/ByDkBf8RVf8RUPQCFglGryuA9AcmcJu/ktEEDTnshAen8QQDTWh8b60BBAlg1HTHsiEUD2RAbS+3MRQFh8xVd8xRFAubOE3fwWEkAa60NjfWgSQHsiA+n9uRJA3FnCbn4LE0A+kYH0/lwTQJ7IQHp/rhNAAAAAAAAAFEA=\",\"dtype\":\"float64\",\"shape\":[118]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGyopmQHUTM+PFjMZA1UVT7ELeEBMNpuPlr1XlJPDoA+BglDLa4GkD5QF+SLk/2aPjjUv7Ii8qQ+UiwqrP/Jrj5yPbM59ra1PmsT1WS6or0+x6UKHAmuwz7iLbckmIfJPo7qvEcsNtA+u07oD1441D7JJ5gxxNTYPqZuhULAFd4+LOM/NrEC4j5XGSMP3FblPiZ7TI95DOk+8CkcmqIo7T76GVS1LtjwPv5hPZgkVPM+uLVP2Z0K9j7vCRreC/74PgRTKwzgMPw+oXUmc0Gl/z5bRhsS8q4BP60DlHhdrgM/x7pFqBTSBT/Xo0RJRRsIP2D+ElkFiwo/92ARXG4iDT9uujkonOIPP/hD1F9TZhE/UWpOKNHwEj+OHbyaT5EUP5pxX/pUSBY/u8GLoGUWGD9LbWYABPwZP5HW5aC1+Rs/xi3jFP8PHj/0+KcNsB8gP7BfyWgrRCE/AKjD2a91Ij9bPb/NerQjP2MaH+HIACU/+seA39VaJj/gXbzD3MInP2dvp0EZOSk/vf1eM2wrQz/z+EGvKxhNP7hRKVqMS1I/uf023RgLVT8agGHg/PhWP/7PkkIXPFg/57jVou/0WD+7HigduT5ZP5wpwnk4MFk/VdLkAkvcWD+1WcV7mlJYPzEz0rEaoFc/D096vnXPVj9gV7wWaOlVP6+rRPgX9VQ/TC9ACE34Uz9uKuR5pPdSP3znT+rW9lE/k1P92c74UD9bvD3CpP9PP1FjLN45G04/fxhQ+e1GTD/l7/DpmoRKP3VF7jSB1Ug/opQEA2Y6Rz9KB8a7rbNFP0o6ZVJoQUQ/08XsO2TjQj8Ssc8USplBP6RYRtmSYkA/QDANOEN9Pj8fjPWfh1k8Pz+Xsn5rWDo/CQIN/l94OD9SE4r1wrc2P43kGhH1FDU/5/5ds1mOMz+rrqy6VyIyPzF10uVjzzA/DJ59wvYnLz+HKq97Vt0sP/kQNdwfvCo/AGMsEqnBKD/FZU5+busmPyAFIHgHNyU/1k3yBymiIz/l69OQsyoiP7M401SiziA/co3N9hkYHz8=\",\"dtype\":\"float64\",\"shape\":[118]}},\"selected\":null,\"selection_policy\":null},\"id\":\"e7fb4c8c-93fb-47bd-bffd-67e4bf28339f\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"70295cd7-cd30-48d0-ba17-4cab2a3fe250\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"72dc79b3-c11d-4dc5-a413-a924d78532a4\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"31fe76c7-1de3-4f3a-adee-ec104be1fbb4\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"895153e2-0663-449e-8aad-9d1162f43369\",\"type\":\"ColumnDataSource\"}},\"id\":\"233f0554-74f4-46f4-a12d-ad5c731b36d9\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"0d6a62e1-992e-4faa-ac75-af7013b47742\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"8c5760ac-11e9-4007-8748-ffda6474beeb\",\"type\":\"HelpTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"7cba1fe5-f44f-4845-8fd7-6f160ccf947a\",\"type\":\"Line\"},{\"attributes\":{\"items\":[{\"id\":\"cbdaece1-9f3c-4a7d-ba12-14ed28e1e231\",\"type\":\"LegendItem\"},{\"id\":\"fe9ced1b-403f-499c-8eb3-8f1a339b85e7\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"81531613-e2cb-4b70-a62a-31f31c2ea568\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"d48a9859-6b4a-47c4-9ac5-2c66ecdd5634\",\"type\":\"Legend\"},{\"attributes\":{\"label\":{\"value\":\"z\"},\"renderers\":[{\"id\":\"392a1e84-d269-4fb2-9aa3-eafb5e2b858a\",\"type\":\"GlyphRenderer\"}]},\"id\":\"fe9ced1b-403f-499c-8eb3-8f1a339b85e7\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5989d034-2376-4946-b899-d588dc2f2847\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"e7fb4c8c-93fb-47bd-bffd-67e4bf28339f\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"5989d034-2376-4946-b899-d588dc2f2847\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"7cba1fe5-f44f-4845-8fd7-6f160ccf947a\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"ee7179ce-ca3a-4428-a414-232d06d5e539\",\"type\":\"CDSView\"}},\"id\":\"392a1e84-d269-4fb2-9aa3-eafb5e2b858a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"c5edea0d-4779-4117-9f0f-6ed9700196cf\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"15bd08ed-d919-483e-a327-f14ba03e5777\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"ce0c4408-c92c-447a-8382-bbacb4072157\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"15bd08ed-d919-483e-a327-f14ba03e5777\",\"type\":\"LinearAxis\"},{\"id\":\"47677d33-c521-41cb-b886-9b28dd83bf29\",\"type\":\"Grid\"},{\"id\":\"ce0c4408-c92c-447a-8382-bbacb4072157\",\"type\":\"LinearAxis\"},{\"id\":\"44d2cc8c-130b-444a-8a52-c4641b43318b\",\"type\":\"Grid\"},{\"id\":\"70295cd7-cd30-48d0-ba17-4cab2a3fe250\",\"type\":\"BoxAnnotation\"},{\"id\":\"d48a9859-6b4a-47c4-9ac5-2c66ecdd5634\",\"type\":\"Legend\"},{\"id\":\"94bd7269-e9d5-466c-ae31-71e9da6e2e02\",\"type\":\"GlyphRenderer\"},{\"id\":\"392a1e84-d269-4fb2-9aa3-eafb5e2b858a\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"8260b798-5d0f-4006-9565-220130e32c0a\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"439f018e-7c5b-4856-bd1a-c6e543b8a12b\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"5d8d66cf-9499-476f-bdf7-a24b0782ce9f\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"ca6c1b22-df92-4eff-a8b0-83cdd70e2071\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"77957218-b264-4e83-baf9-0c5ea36a6624\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"4acb3549-c48a-403d-a14e-fcabdaaf0d4d\",\"type\":\"LinearScale\"}},\"id\":\"81531613-e2cb-4b70-a62a-31f31c2ea568\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"source\":{\"id\":\"e7fb4c8c-93fb-47bd-bffd-67e4bf28339f\",\"type\":\"ColumnDataSource\"}},\"id\":\"ee7179ce-ca3a-4428-a414-232d06d5e539\",\"type\":\"CDSView\"}],\"root_ids\":[\"81531613-e2cb-4b70-a62a-31f31c2ea568\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"ab41f208-1bf3-460b-90a1-7e74dc8f549d\",\"elementid\":\"27f77c66-9bd4-4e65-b464-7ebb8d6c1059\",\"modelid\":\"81531613-e2cb-4b70-a62a-31f31c2ea568\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "81531613-e2cb-4b70-a62a-31f31c2ea568" } }, "output_type": "display_data" } ], "source": [ "# Integrate prior to pulse\n", "t_before_pulse = np.linspace(0, 1.0, 20)\n", "args = (beta_y, beta_z, gamma, n_x, n_y, 0.0)\n", "yz_0 = np.array([0.0, 0.0])\n", "yz_before_pulse = scipy.integrate.odeint(\n", " cascade_rhs, yz_0, t_before_pulse, args=args)\n", "\n", "# Integrate during pulse\n", "t_during_pulse = np.linspace(1.0, 1.1, 50)\n", "args = (beta_y, beta_z, gamma, n_x, n_y, 2.0)\n", "yz_0 = yz_before_pulse[-1]\n", "yz_during_pulse = scipy.integrate.odeint(\n", " cascade_rhs, yz_0, t_during_pulse, args=args)\n", "\n", "# Integrate after pulse\n", "t_after_pulse = np.linspace(1.1, 5, 50)\n", "args = (beta_y, beta_z, gamma, n_x, n_y, 0.0)\n", "yz_0 = yz_during_pulse[-1]\n", "yz_after_pulse = scipy.integrate.odeint(cascade_rhs, yz_0, t_after_pulse, args=args)\n", "\n", "# Piece together solution\n", "t = np.concatenate((t_before_pulse, t_during_pulse[1:], t_after_pulse[1:]))\n", "yz = np.vstack((yz_before_pulse, yz_during_pulse[1:,:], \n", " yz_after_pulse[1:,:]))\n", "y, z = yz.transpose()\n", "\n", "# Plot the results\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "p.line(t, y, line_width=2, color=colors[0], legend='y')\n", "p.line(t, z,line_width=2, color=colors[1], legend='z')\n", "\n", "# Place the legend\n", "p.legend.location = 'top_right'\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Much better. We can write functions to automate this, but we will leave it at this for now with the point made about discontinuities." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Periodic input\n", "\n", "Finally, we will consider the case where we have periodic forcing of the circuit. We will do this for highly cooperative activation by Y, taking $n_y = 10$. Recall that this gives a longer time delay.\n", "\n", "We first write a function for the forcing, `x_fun`, which is periodic with frequency $f$." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"a05f2343-6897-4302-afeb-2bc5cfa36210\":{\"roots\":{\"references\":[{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[500]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[500]}},\"selected\":null,\"selection_policy\":null},\"id\":\"97b16bb3-47cc-4889-95a7-8324a632706b\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"97b16bb3-47cc-4889-95a7-8324a632706b\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"e193ac3a-ea38-4260-afbc-1fe736ecf638\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"4207c6cb-927b-4ccd-8e3c-3b9c8adabd2d\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"b09c2495-32fc-4f43-8ef5-57309d3786a2\",\"type\":\"CDSView\"}},\"id\":\"3e0dd4fd-ee9a-407b-9bb9-711f376b96be\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"7b38f301-4b25-41e8-915b-cf00fcd087b3\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"67791f5e-7f49-4854-bccd-5a5c9eb22e92\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"e193ac3a-ea38-4260-afbc-1fe736ecf638\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"f76e15d1-a328-42ea-a4dd-084b9fe83dd4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"84df7835-f54b-4500-bda3-c24ba79fbd7f\",\"type\":\"BasicTicker\"}},\"id\":\"4918aba9-7d50-4d31-8a48-be59ed30612f\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3fc366f6-a7a1-42ba-8b5a-34a468bb68e8\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"67791f5e-7f49-4854-bccd-5a5c9eb22e92\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"f76e15d1-a328-42ea-a4dd-084b9fe83dd4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"84df7835-f54b-4500-bda3-c24ba79fbd7f\",\"type\":\"BasicTicker\"}},\"id\":\"b5764af4-3e72-48b1-8032-80da07246b12\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"f8d79e7c-81d9-48bf-bb51-ecf4762ca25e\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"source\":{\"id\":\"97b16bb3-47cc-4889-95a7-8324a632706b\",\"type\":\"ColumnDataSource\"}},\"id\":\"b09c2495-32fc-4f43-8ef5-57309d3786a2\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"8e54858a-2985-468e-9d5f-c8c27a711c85\",\"type\":\"PanTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"8e54858a-2985-468e-9d5f-c8c27a711c85\",\"type\":\"PanTool\"},{\"id\":\"b0556935-c66e-4694-92ab-ac956224cb4e\",\"type\":\"WheelZoomTool\"},{\"id\":\"6fae32ea-4810-4d69-aa11-299f2b382c9c\",\"type\":\"BoxZoomTool\"},{\"id\":\"16fb1af8-8cee-42ab-8c46-206021a7d8d7\",\"type\":\"SaveTool\"},{\"id\":\"5562e843-797c-4af7-be9f-f049ec6a37fa\",\"type\":\"ResetTool\"},{\"id\":\"d2bbabfe-b907-41db-a50a-a0910d19f64f\",\"type\":\"HelpTool\"}]},\"id\":\"d45d49a2-b761-41b7-8c85-5f5ae5706d36\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"b0556935-c66e-4694-92ab-ac956224cb4e\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"below\":[{\"id\":\"b5764af4-3e72-48b1-8032-80da07246b12\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"a9cf8cb5-aaab-4eff-a674-3f74d4873d19\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"b5764af4-3e72-48b1-8032-80da07246b12\",\"type\":\"LinearAxis\"},{\"id\":\"4918aba9-7d50-4d31-8a48-be59ed30612f\",\"type\":\"Grid\"},{\"id\":\"a9cf8cb5-aaab-4eff-a674-3f74d4873d19\",\"type\":\"LinearAxis\"},{\"id\":\"c7d76723-7d6c-4689-98ca-57392612a0ff\",\"type\":\"Grid\"},{\"id\":\"f8d79e7c-81d9-48bf-bb51-ecf4762ca25e\",\"type\":\"BoxAnnotation\"},{\"id\":\"3e0dd4fd-ee9a-407b-9bb9-711f376b96be\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"ce9e3f4a-3453-4bbc-99a6-251e0af63540\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"d45d49a2-b761-41b7-8c85-5f5ae5706d36\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"5fbc84b9-ab34-4ea2-83b9-1a8ff102b669\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"cecf823b-03e7-4b5d-9829-e217532ea5c7\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"abfaaaa3-034b-493f-bf5c-6385feec3390\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"7b38f301-4b25-41e8-915b-cf00fcd087b3\",\"type\":\"LinearScale\"}},\"id\":\"f76e15d1-a328-42ea-a4dd-084b9fe83dd4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"overlay\":{\"id\":\"f8d79e7c-81d9-48bf-bb51-ecf4762ca25e\",\"type\":\"BoxAnnotation\"}},\"id\":\"6fae32ea-4810-4d69-aa11-299f2b382c9c\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"callback\":null},\"id\":\"5fbc84b9-ab34-4ea2-83b9-1a8ff102b669\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"ce9e3f4a-3453-4bbc-99a6-251e0af63540\",\"type\":\"Title\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4207c6cb-927b-4ccd-8e3c-3b9c8adabd2d\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"abfaaaa3-034b-493f-bf5c-6385feec3390\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"cecf823b-03e7-4b5d-9829-e217532ea5c7\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"dimensionless y, z\",\"formatter\":{\"id\":\"3fc366f6-a7a1-42ba-8b5a-34a468bb68e8\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"f76e15d1-a328-42ea-a4dd-084b9fe83dd4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e4bd2d19-8c2d-4914-ae0a-9d4123d82abe\",\"type\":\"BasicTicker\"}},\"id\":\"a9cf8cb5-aaab-4eff-a674-3f74d4873d19\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"d2bbabfe-b907-41db-a50a-a0910d19f64f\",\"type\":\"HelpTool\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"f76e15d1-a328-42ea-a4dd-084b9fe83dd4\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e4bd2d19-8c2d-4914-ae0a-9d4123d82abe\",\"type\":\"BasicTicker\"}},\"id\":\"c7d76723-7d6c-4689-98ca-57392612a0ff\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"16fb1af8-8cee-42ab-8c46-206021a7d8d7\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"5562e843-797c-4af7-be9f-f049ec6a37fa\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"84df7835-f54b-4500-bda3-c24ba79fbd7f\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"e4bd2d19-8c2d-4914-ae0a-9d4123d82abe\",\"type\":\"BasicTicker\"}],\"root_ids\":[\"f76e15d1-a328-42ea-a4dd-084b9fe83dd4\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"a05f2343-6897-4302-afeb-2bc5cfa36210\",\"elementid\":\"22f5776d-02a5-4dda-8098-dbf4482a0d68\",\"modelid\":\"f76e15d1-a328-42ea-a4dd-084b9fe83dd4\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "f76e15d1-a328-42ea-a4dd-084b9fe83dd4" } }, "output_type": "display_data" } ], "source": [ "def x_periodic(t, f, x_0):\n", " \"\"\"\n", " Returns x value for periodic forcing of amplitude x_0 and frequency f.\n", " \"\"\"\n", " if type(f) in [float, int]:\n", " return x_0 * (1 + np.sin(f * t))\n", " else:\n", " sin_sum = np.zeros_like(t)\n", " for freq, amp in zip(f, x_0):\n", " sin_sum += amp * (1 + np.sin(freq*t))\n", " return sin_sum\n", "\n", "# Plot the forcing\n", "t = np.linspace(0, 10, 500)\n", "\n", "# Plot the results\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "p.line(t, x_periodic(t, 5, 2.0), line_width=2, color=colors[2])\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see how the circuit responds to a low-frequency input." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"037f32cb-2da5-47a6-9601-eaa93bbdfbc4\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"a13de6fd-5a3b-4d8d-b96a-80d6fbbd4f9e\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"eeab9657-72aa-453f-bd60-7751adb42f2c\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"23b7d7f1-6fed-42da-9527-4f962a05f07b\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"3d0c2c52-5d1c-49f7-baa8-f6d3cc4320c6\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"3d48efce-c617-4790-86f9-0afab676ed36\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"a838d435-dbd7-4cec-a860-c34a36ccdf28\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"a74e3761-0dff-4309-9552-5670ea6e9eea\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"43a378b9-58b7-4a3c-8b7c-35a151e87003\",\"type\":\"CDSView\"}},\"id\":\"ea8b0439-abc1-4ed6-8eac-bd77033875ea\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[300]},\"y\":{\"__ndarray__\":\"AAAAAAAAAADQFnBlRq98PfjvQqe3QSI+4O1V5sCZez5+mimD6Ca4PnHJ1s6WveU+bKqzrplPCT/M/nhHAc8lP5apWuBsLT4/RncFWdSsUT8PTpaLhCxiP+DQ4GKV1HA/IIrdf0OdfD/M9DhNUKeGP20A2eeC5JA/APN8Chzylz97pkKQO0CgP95JPc4BQKU/b1OOaCzoqj+esBWdDJGwP8C6qpJ06bM/5wmzX8tutz9Bw+8PXhK7P+VlGFf5xb4/+PRJfTI+wT92EGpG2BTDP9u6RK+s4cQ/PhjSWymgxj9gcc9OfEzIP21h8ep548k/nDOYRYtiyz8he4IXmcfMPxap1UD2EM4/KkxXoko9zz/kv00vvyXQPy2OWiFTndA/++WmuPgE0T/iY8MlTFzRPyB5c1/motE/UtIP8FXY0T9P9eOUGPzRP5Q8ccuVDdI/SeBLsRoM0j8TbdrS1/bRP518Q8zhzNE/TNwDLzaN0T87/MLcxjbRPynCFWOOyNA/6/JAr7BB0D8qjXK/VkPPP2N66xkv0c0/xOKnG/YuzD/8NDL6PmHKP2vvbfiyb8g/bXJ2SUFlxj8d2ZHjpU/EPwtQzJ0hPsI/H9hZe4o/wD/tAPp7d8C8P3QGQ7gxUbk/xrlSEEE5tj9zq+hWFnmzPxa/MzQADLE/Q3vGREnVrT9CbkAIqxmqPwTTAGQ41aY/b08ZNVz5oz/RwcoLGXmhPxG9C3b9kZ4/2AqB6Qu+mj9GsPiDzmSXPygQ1EPodpQ/7Z55ZejmkT/e7XDWGVKPPznxX3cZZos/Ggqz4dD3hz9j07shgveEP/v3W+FnV4I/q+jkOHYLgD8OwBrTRhJ8P6U36wNvjng/jh9fI0R7dT/d7plSqspyP8BUtPhJcHA/BIsyWK7CbD8RkDzqwChpP3EZEFNKAmY/9TSG6O5AYz+gVCxZcthgP+VKlHJrfl0/3hJxSKXfWT8U6ZLcYtlWP9qgUY/bjFQ/hDFzi5ZKUz+DF8I0talTP5CYYOoen1Y/zTmN3DSOXT8wrWowJyZlP96z8uUWiW8/C8ZITZCWdz9kiP1m21WBP5oeJOLwzYg/GPXrKGs5kT9EcofWiziXP2mYCKA2b54/yL04dgduoz8KXqjA8TioP2+qPRiHjK0/UzFIgl+ssT/fzeP9RMW0P2NGjoaBBrg/RYOV1kNluz/4orFA0ta+PxZq8bZzKME/8BXWnvrkwj/Smv/0p5zEP5iPeHCiS8Y/eIf5rpDuxz9avg9FloLJP78a7lJMBcs/riT9F7d0zD8qgSOsOc/NP1sqtMGIE88/1xr6iU4g0D/D/hr50qrQP4mwSBf+KNE/gny/z4qa0T/U2FKZPP/RP6k8WM3ZVtI/FosmSCah0j+rDd9J3t3SP2uknZGxDNM/jtadsT4t0z9HE52uDj/TP5C1jwCRQdM/VDK9Lhg00z+4ePNz1xXTP7de8iHi5dI/qvewlC2j0j8Li15+l0zSPw5/L3/y4NE/vfeg2Btf0T8FklC0HcbQP/iI5yRhFdA/3znhE+OZzj9V4yYpntvMP1gUQRCL9Mo/wS6QL2TsyD/GmzQSLM7GP4RZXGymp8Q/f4LtwgCIwj9c5o8P2X3AP7mi9GdiKr0/og/7+gCsuT9sa2B6toe2P7lz4z1CvbM/Lj1y8nBHsT8U5wFCIj2uP7RwwzV2dKo/xQvBDqEkpz97Xvot0j6kP3xMxBTctaE/mmIv1Uv8nj+jL7uJChubP3pR8yIotpc/hwLmKRK+lD+wBS4bKSWSPxHYvCoEv48/bP4SdWDFiz/cvNO1KUuIP0aArTprQIU//0bryi+Xgj85NtKaQUOAP5uDfYzkc3w/wFPTmtPjeD99V9Bp98V1P9AWogoDDHM/GWVh+XOpcD9zaT+GsSZtP6ycx0s+gGk/Yy1fENROZj8gG8OM54NjPwGuYjsaE2E/Jkjk3YjlXT8D9Z4KUztaP44wJnduLVc/PfRwojvfVD9mBLOK56RTP37O0oLeGlQ/Iw0Umbw8Vz9Vp8Y2VXVePz7iIRWM0GU/Lflje48/cD9xvdIidEJ4P3b360uhyYE/Nb0x6ExkiT+9O1lBupeRPxW0x5obq5c/oL1qpVj2nj+u7fE/orujP/Q5Eg73j6g/K1XS/AbsrT/liUEZxt+xP8ON7jSn+7Q/EaEBzSk/uD/6dvqtep+7P/2r+DjlEb8/qNABMRdGwT/CPyL0agLDP7ZQiACgucQ/wItkfuVnxj8exi956gnIP3D0WpPanMk/r367XlYeyz8PkUzIaIzMP4Sferp65c0/0bLr1EUozz/oA+5s4ynQP0TsLh+Ys9A/VPU/kO4w0T+c5ThroqHRPzdPUIJ3BdI/6dbDLTRc0j9ig4vwm6XSP6tYm1tq4dI/FicQLk4P0z8Ofoyt5C7TP/LJPEq1P9M/f5VZqC1B0z/h8eVLnjLTP72rMU04E9M/3TVS6Qzi0j9nVYipD57SP3L2egkdRtI/mBPXkwfZ0T+fmGtMrlXRP5RQVOwfu9A/uayaBM4I0D/KZxUKo33OP5kpo/x7vMw/vEPgE/DSyj+nGN3k8cjIP9sWGjG5qcY/XP4soS6DxD/KREn7hmTCP7yR3jtDXMA/LOapnFLsvD+ISdT7ynO5P6xGhqGKVbY/NYkA7eeQsz+8cdgccyCxPxWLjZTF+K0/Q9Zaapw4qj9cS9bpQfCmP9cmS7MAEaQ/3rUfAseNoT/sWbA4K7aePz5cB9qx3Zo/hsuA7X2Alz+PnwQ1II+UPwoV3f8X/JE/vyRCyip3jz8GDrs9hoaLP3sKbkMuFIg/VA/WQ1IQhT+EbmKeHG2CP80M2SlzHoA/2hLnXH8zfD+g32mkfqt4Pyxp1zKwlHU/OeHwdufgcj8SSDk9voNwPxMwerO35Gw/EBtxiIdGaT9o6HRVWBxmP3U0+uXCV2M/VBkzRJDsYD94YLr5o6JdP23W4b9iAlo/0GtfDLP/Vj+xoZmuicBUP+KTXi8fnVM/DtTkC4Q3VD8tcj0TVpJXP5bsFAEQIF8/ahbeySpiZj+DOlmGtbBwP9cixPXI5ng/Za8CtKU6gj9iq8lMyPiJP1dTrDB09ZE/pIGtglsdmD+VYlSHWn2fP6s/MOI6CaQ/DNY9IP/mqD/U8qL6h0uuP7G2z6EpE7I/rRhA+gAytT9Zs+kmw3e4Pxm3MKOb2bs/\",\"dtype\":\"float64\",\"shape\":[300]}},\"selected\":null,\"selection_policy\":null},\"id\":\"319db608-ac92-435c-bc90-dd2b06fa570f\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"5d50f3c5-31f1-4073-94ee-cf0e9fd67639\",\"type\":\"LinearScale\"},{\"attributes\":{\"below\":[{\"id\":\"1ec9998e-6421-4788-b3f1-8948f6ad25b8\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"f7114a8f-f601-412c-8229-0631b00347dd\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"1ec9998e-6421-4788-b3f1-8948f6ad25b8\",\"type\":\"LinearAxis\"},{\"id\":\"f8aee55b-e7b2-4bc9-b9c8-aaae19c49b03\",\"type\":\"Grid\"},{\"id\":\"f7114a8f-f601-412c-8229-0631b00347dd\",\"type\":\"LinearAxis\"},{\"id\":\"8eb9336a-92ff-4364-b518-15864706916a\",\"type\":\"Grid\"},{\"id\":\"44fc3b76-ea44-450e-87d8-391c853ae08f\",\"type\":\"BoxAnnotation\"},{\"id\":\"6d0c2bbe-6963-4323-ae70-e9648c21ea91\",\"type\":\"Legend\"},{\"id\":\"e2ff3362-1a4e-43a7-b7c2-4d1a27f06f18\",\"type\":\"GlyphRenderer\"},{\"id\":\"80b02f48-4ee6-4ec8-84ec-7cd506726878\",\"type\":\"GlyphRenderer\"},{\"id\":\"ea8b0439-abc1-4ed6-8eac-bd77033875ea\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"49721acf-d1c9-4e3b-bd99-1c3c30ed7a0b\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"f6288620-31e5-4b74-8fb3-975f15ca2320\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"8755ca78-751a-4ed5-b115-3fb20d81e848\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"717fc845-5c0e-40b2-b0ce-b1df80fe84e2\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"e3a2fb29-227c-4ddc-b6c6-8116ec311e6e\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"5d50f3c5-31f1-4073-94ee-cf0e9fd67639\",\"type\":\"LinearScale\"}},\"id\":\"fff60a54-7655-495b-afd3-7d9fbe452024\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data_source\":{\"id\":\"319db608-ac92-435c-bc90-dd2b06fa570f\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"15a23301-e66b-4a6e-9c03-edadfcdfc5fc\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"cd562bfb-344e-47cd-aab7-cf485a7f36e2\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"18c7894c-1e06-4792-b6f7-9c8244b604cb\",\"type\":\"CDSView\"}},\"id\":\"80b02f48-4ee6-4ec8-84ec-7cd506726878\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"f40d2fe9-2ac6-427e-a726-46660db095c5\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a74e3761-0dff-4309-9552-5670ea6e9eea\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"7590b470-92f6-4c60-8177-68b64094987c\",\"type\":\"ColumnDataSource\"}},\"id\":\"40192307-4662-4cbd-818f-5443429b0b69\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"452af851-043f-47cd-ab72-9e849381ee17\",\"type\":\"Line\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"49721acf-d1c9-4e3b-bd99-1c3c30ed7a0b\",\"type\":\"Title\"},{\"attributes\":{\"items\":[{\"id\":\"95b18205-3dde-465f-968f-97b60b09b8a9\",\"type\":\"LegendItem\"},{\"id\":\"15227925-2a70-454c-8d31-964a8122c786\",\"type\":\"LegendItem\"},{\"id\":\"35b70dcf-b462-4873-8d4f-ef44e15e45d4\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"fff60a54-7655-495b-afd3-7d9fbe452024\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"6d0c2bbe-6963-4323-ae70-e9648c21ea91\",\"type\":\"Legend\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"fff60a54-7655-495b-afd3-7d9fbe452024\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"f40d2fe9-2ac6-427e-a726-46660db095c5\",\"type\":\"BasicTicker\"}},\"id\":\"8eb9336a-92ff-4364-b518-15864706916a\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"7590b470-92f6-4c60-8177-68b64094987c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b546d73b-2b88-4914-b97c-b653b57e8dfe\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"452af851-043f-47cd-ab72-9e849381ee17\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"40192307-4662-4cbd-818f-5443429b0b69\",\"type\":\"CDSView\"}},\"id\":\"e2ff3362-1a4e-43a7-b7c2-4d1a27f06f18\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"319db608-ac92-435c-bc90-dd2b06fa570f\",\"type\":\"ColumnDataSource\"}},\"id\":\"18c7894c-1e06-4792-b6f7-9c8244b604cb\",\"type\":\"CDSView\"},{\"attributes\":{\"label\":{\"value\":\"z\"},\"renderers\":[{\"id\":\"80b02f48-4ee6-4ec8-84ec-7cd506726878\",\"type\":\"GlyphRenderer\"}]},\"id\":\"15227925-2a70-454c-8d31-964a8122c786\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"6965c482-3eed-4fad-85c0-8ddd3227ca63\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"cd562bfb-344e-47cd-aab7-cf485a7f36e2\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"fff60a54-7655-495b-afd3-7d9fbe452024\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"d6a4d381-bee7-4d01-927c-dc77a6b09bbd\",\"type\":\"BasicTicker\"}},\"id\":\"f8aee55b-e7b2-4bc9-b9c8-aaae19c49b03\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#2ca02c\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a838d435-dbd7-4cec-a860-c34a36ccdf28\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"8755ca78-751a-4ed5-b115-3fb20d81e848\",\"type\":\"DataRange1d\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"4b6eb8c6-2e32-4b77-98fc-d3437d2255d3\",\"type\":\"PanTool\"},{\"id\":\"eeab9657-72aa-453f-bd60-7751adb42f2c\",\"type\":\"WheelZoomTool\"},{\"id\":\"6098a6cb-a05a-476d-945f-165e4a4a5ee3\",\"type\":\"BoxZoomTool\"},{\"id\":\"23b7d7f1-6fed-42da-9527-4f962a05f07b\",\"type\":\"SaveTool\"},{\"id\":\"a13de6fd-5a3b-4d8d-b96a-80d6fbbd4f9e\",\"type\":\"ResetTool\"},{\"id\":\"2b9b5714-ac1d-42a4-9cc3-c2d6aeffb223\",\"type\":\"HelpTool\"}]},\"id\":\"f6288620-31e5-4b74-8fb3-975f15ca2320\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[300]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[300]}},\"selected\":null,\"selection_policy\":null},\"id\":\"7590b470-92f6-4c60-8177-68b64094987c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"3d0c2c52-5d1c-49f7-baa8-f6d3cc4320c6\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"fff60a54-7655-495b-afd3-7d9fbe452024\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"d6a4d381-bee7-4d01-927c-dc77a6b09bbd\",\"type\":\"BasicTicker\"}},\"id\":\"1ec9998e-6421-4788-b3f1-8948f6ad25b8\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"15a23301-e66b-4a6e-9c03-edadfcdfc5fc\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"dimensionless y, z\",\"formatter\":{\"id\":\"6965c482-3eed-4fad-85c0-8ddd3227ca63\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"fff60a54-7655-495b-afd3-7d9fbe452024\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"f40d2fe9-2ac6-427e-a726-46660db095c5\",\"type\":\"BasicTicker\"}},\"id\":\"f7114a8f-f601-412c-8229-0631b00347dd\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"44fc3b76-ea44-450e-87d8-391c853ae08f\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"callback\":null},\"id\":\"e3a2fb29-227c-4ddc-b6c6-8116ec311e6e\",\"type\":\"DataRange1d\"},{\"attributes\":{\"overlay\":{\"id\":\"44fc3b76-ea44-450e-87d8-391c853ae08f\",\"type\":\"BoxAnnotation\"}},\"id\":\"6098a6cb-a05a-476d-945f-165e4a4a5ee3\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"label\":{\"value\":\"y\"},\"renderers\":[{\"id\":\"e2ff3362-1a4e-43a7-b7c2-4d1a27f06f18\",\"type\":\"GlyphRenderer\"}]},\"id\":\"95b18205-3dde-465f-968f-97b60b09b8a9\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"717fc845-5c0e-40b2-b0ce-b1df80fe84e2\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"4b6eb8c6-2e32-4b77-98fc-d3437d2255d3\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"d6a4d381-bee7-4d01-927c-dc77a6b09bbd\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2b9b5714-ac1d-42a4-9cc3-c2d6aeffb223\",\"type\":\"HelpTool\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b546d73b-2b88-4914-b97c-b653b57e8dfe\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"x (normalized)\"},\"renderers\":[{\"id\":\"ea8b0439-abc1-4ed6-8eac-bd77033875ea\",\"type\":\"GlyphRenderer\"}]},\"id\":\"35b70dcf-b462-4873-8d4f-ef44e15e45d4\",\"type\":\"LegendItem\"},{\"attributes\":{\"source\":{\"id\":\"3d48efce-c617-4790-86f9-0afab676ed36\",\"type\":\"ColumnDataSource\"}},\"id\":\"43a378b9-58b7-4a3c-8b7c-35a151e87003\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[300]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[300]}},\"selected\":null,\"selection_policy\":null},\"id\":\"3d48efce-c617-4790-86f9-0afab676ed36\",\"type\":\"ColumnDataSource\"}],\"root_ids\":[\"fff60a54-7655-495b-afd3-7d9fbe452024\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"037f32cb-2da5-47a6-9601-eaa93bbdfbc4\",\"elementid\":\"4b8497db-bfbf-403a-b63e-60857ed4e396\",\"modelid\":\"fff60a54-7655-495b-afd3-7d9fbe452024\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "fff60a54-7655-495b-afd3-7d9fbe452024" } }, "output_type": "display_data" } ], "source": [ "# Set up parameters for periodic forcing with f = 0.5 and x_0 = 2.\n", "x_args = (0.5, 2.0)\n", "\n", "# Package parameters into a tuple, now with high cooperativity\n", "n_y = 10\n", "args = (beta_y, beta_z, gamma, n_x, n_y, x_periodic, x_args)\n", "\n", "# Time points\n", "t = np.linspace(0, 40, 300)\n", "\n", "# Initial condition\n", "yz_0 = np.array([0.0, 0.0])\n", "\n", "# Integrate ODES\n", "yz = scipy.integrate.odeint(cascade_rhs_x_fun, yz_0, t, args=args)\n", "\n", "# Pluck out y and z\n", "y, z = yz.transpose()\n", "\n", "# x\n", "x = x_periodic(t, *x_args)\n", "x /= x.max()\n", "\n", "# Plot the results\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "p.line(t, y, line_width=2, color=colors[0], legend='y')\n", "p.line(t, z, line_width=2, color=colors[1], legend='z')\n", "p.line(t, x, line_width=2, color=colors[2], alpha=0.2, legend='x (normalized)', line_join='bevel')\n", "\n", "# Place the legend\n", "p.legend.location = 'top_right'\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We roughly follow the forcing with some lag. Now, for high-frequency forcing, we have a different response." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"fcc5b674-70ec-4077-b760-6c4c0f14bb03\":{\"roots\":{\"references\":[{\"attributes\":{\"axis_label\":\"dimensionless y, z\",\"formatter\":{\"id\":\"adfbf9cf-6280-48c7-8591-f06286d58d92\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"cb98e413-dfa6-4f22-845e-dde1cb430ea3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c64a047c-2da6-454d-8a10-1381a4da89c4\",\"type\":\"BasicTicker\"}},\"id\":\"b8a05feb-04fb-41f3-97fc-c81912e49728\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data_source\":{\"id\":\"4b1c754a-840c-4aee-9d60-102cff36a826\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b6f0e8f5-af64-4c8c-aa72-f14ee47ab7e9\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"b4fd33da-9322-4d60-8a9e-b221f5fe7407\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"30fd0c65-500c-471a-aaf5-2fe2f821b482\",\"type\":\"CDSView\"}},\"id\":\"60bd677d-116c-4bec-8492-5167050b6877\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"c64a047c-2da6-454d-8a10-1381a4da89c4\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"7e8eee4d-4544-46ff-9e61-a86d71bdd3f0\",\"type\":\"LinearScale\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"cb98e413-dfa6-4f22-845e-dde1cb430ea3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c64a047c-2da6-454d-8a10-1381a4da89c4\",\"type\":\"BasicTicker\"}},\"id\":\"93fcc9a8-2370-46d9-ab79-765511d98ec6\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"4b1c754a-840c-4aee-9d60-102cff36a826\",\"type\":\"ColumnDataSource\"}},\"id\":\"30fd0c65-500c-471a-aaf5-2fe2f821b482\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b4fd33da-9322-4d60-8a9e-b221f5fe7407\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]}},\"selected\":null,\"selection_policy\":null},\"id\":\"4b1c754a-840c-4aee-9d60-102cff36a826\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"z\"},\"renderers\":[{\"id\":\"03d2e95b-2e26-4855-945d-24748bef857b\",\"type\":\"GlyphRenderer\"}]},\"id\":\"fa8be4e7-17eb-4788-b2b3-6cb64fb25f6f\",\"type\":\"LegendItem\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"db601624-598d-471f-b772-25104caa0af1\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"a2837891-1f00-4dcc-b7c8-28d7c43ab84f\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"4b72cbb8-0c89-4dab-81e1-609399192c9c\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"288156fa-eea0-4ea5-9da5-3a8eaa4a6355\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"db601624-598d-471f-b772-25104caa0af1\",\"type\":\"BoxAnnotation\"}},\"id\":\"7443d568-c7ab-4948-a3f0-c0b20e13da16\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"01fa6177-cc44-4f78-8197-87e366fc55c0\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"fa0911a3-8793-4184-8432-73dd3184f4e9\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"e56230fa-cfe0-4f5e-9791-d558fee9642f\",\"type\":\"ResetTool\"},{\"attributes\":{\"label\":{\"value\":\"y\"},\"renderers\":[{\"id\":\"60bd677d-116c-4bec-8492-5167050b6877\",\"type\":\"GlyphRenderer\"}]},\"id\":\"54061670-d48b-4a7c-b4cb-f1dd827b094b\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"dfe2b0a9-92f1-4b33-bc0b-5ccb797ae4b4\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]}},\"selected\":null,\"selection_policy\":null},\"id\":\"55fefa9d-54c7-49e7-9f5e-6e9d0b6dcd16\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"2eb88ba0-d38d-4570-8fc9-bbd42f768358\",\"type\":\"Title\"},{\"attributes\":{\"below\":[{\"id\":\"a8be4eb5-a169-48b0-9cd3-071a5f53e84a\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"b8a05feb-04fb-41f3-97fc-c81912e49728\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"a8be4eb5-a169-48b0-9cd3-071a5f53e84a\",\"type\":\"LinearAxis\"},{\"id\":\"1a3823af-c647-44ed-b616-4ab4fccc3a42\",\"type\":\"Grid\"},{\"id\":\"b8a05feb-04fb-41f3-97fc-c81912e49728\",\"type\":\"LinearAxis\"},{\"id\":\"93fcc9a8-2370-46d9-ab79-765511d98ec6\",\"type\":\"Grid\"},{\"id\":\"db601624-598d-471f-b772-25104caa0af1\",\"type\":\"BoxAnnotation\"},{\"id\":\"243bad9f-55b2-4030-bdb9-fd3fed58ac13\",\"type\":\"Legend\"},{\"id\":\"60bd677d-116c-4bec-8492-5167050b6877\",\"type\":\"GlyphRenderer\"},{\"id\":\"03d2e95b-2e26-4855-945d-24748bef857b\",\"type\":\"GlyphRenderer\"},{\"id\":\"81851ad2-b859-467b-ad99-19df2be93f33\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"2eb88ba0-d38d-4570-8fc9-bbd42f768358\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"95328ae2-195d-4933-abfe-fc8b5983964b\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"849250ed-0c9e-405e-bcc8-7bfaa62c681d\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"7e8eee4d-4544-46ff-9e61-a86d71bdd3f0\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"5e72e6a9-ecc6-4073-885a-caa24059525a\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"ae18f8e2-bf9e-4167-b8f9-577e427e0d50\",\"type\":\"LinearScale\"}},\"id\":\"cb98e413-dfa6-4f22-845e-dde1cb430ea3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data_source\":{\"id\":\"55fefa9d-54c7-49e7-9f5e-6e9d0b6dcd16\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"8584a34a-0698-4a48-9d79-907c60baaca5\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"9719338d-6d2e-4441-aea8-52921eaa3bb9\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"a1e2dc15-e2ee-4e0a-8135-0c7e81b13306\",\"type\":\"CDSView\"}},\"id\":\"03d2e95b-2e26-4855-945d-24748bef857b\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b34427dd-d2a5-4d6b-bca6-29213d90cb4a\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"adfbf9cf-6280-48c7-8591-f06286d58d92\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"55fefa9d-54c7-49e7-9f5e-6e9d0b6dcd16\",\"type\":\"ColumnDataSource\"}},\"id\":\"a1e2dc15-e2ee-4e0a-8135-0c7e81b13306\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#2ca02c\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"59e733bf-e925-4b9a-a043-811c1b2ed150\",\"type\":\"Line\"},{\"attributes\":{\"items\":[{\"id\":\"54061670-d48b-4a7c-b4cb-f1dd827b094b\",\"type\":\"LegendItem\"},{\"id\":\"fa8be4e7-17eb-4788-b2b3-6cb64fb25f6f\",\"type\":\"LegendItem\"},{\"id\":\"80ede5f2-8753-4fca-a4fc-8c109ac06364\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"cb98e413-dfa6-4f22-845e-dde1cb430ea3\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"243bad9f-55b2-4030-bdb9-fd3fed58ac13\",\"type\":\"Legend\"},{\"attributes\":{\"source\":{\"id\":\"f9c1236e-da97-4e28-8dcf-e1c2162b5715\",\"type\":\"ColumnDataSource\"}},\"id\":\"0cf05834-443c-4a96-9558-79d4bd0750dc\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"f9c1236e-da97-4e28-8dcf-e1c2162b5715\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"59e733bf-e925-4b9a-a043-811c1b2ed150\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"b34427dd-d2a5-4d6b-bca6-29213d90cb4a\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"0cf05834-443c-4a96-9558-79d4bd0750dc\",\"type\":\"CDSView\"}},\"id\":\"81851ad2-b859-467b-ad99-19df2be93f33\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"ae18f8e2-bf9e-4167-b8f9-577e427e0d50\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"9719338d-6d2e-4441-aea8-52921eaa3bb9\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"x (normalized)\"},\"renderers\":[{\"id\":\"81851ad2-b859-467b-ad99-19df2be93f33\",\"type\":\"GlyphRenderer\"}]},\"id\":\"80ede5f2-8753-4fca-a4fc-8c109ac06364\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"8584a34a-0698-4a48-9d79-907c60baaca5\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"4b72cbb8-0c89-4dab-81e1-609399192c9c\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"cb98e413-dfa6-4f22-845e-dde1cb430ea3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"01fa6177-cc44-4f78-8197-87e366fc55c0\",\"type\":\"BasicTicker\"}},\"id\":\"a8be4eb5-a169-48b0-9cd3-071a5f53e84a\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null},\"id\":\"849250ed-0c9e-405e-bcc8-7bfaa62c681d\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null},\"id\":\"5e72e6a9-ecc6-4073-885a-caa24059525a\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b6f0e8f5-af64-4c8c-aa72-f14ee47ab7e9\",\"type\":\"Line\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"a2837891-1f00-4dcc-b7c8-28d7c43ab84f\",\"type\":\"PanTool\"},{\"id\":\"288156fa-eea0-4ea5-9da5-3a8eaa4a6355\",\"type\":\"WheelZoomTool\"},{\"id\":\"7443d568-c7ab-4948-a3f0-c0b20e13da16\",\"type\":\"BoxZoomTool\"},{\"id\":\"fa0911a3-8793-4184-8432-73dd3184f4e9\",\"type\":\"SaveTool\"},{\"id\":\"e56230fa-cfe0-4f5e-9791-d558fee9642f\",\"type\":\"ResetTool\"},{\"id\":\"dfe2b0a9-92f1-4b33-bc0b-5ccb797ae4b4\",\"type\":\"HelpTool\"}]},\"id\":\"95328ae2-195d-4933-abfe-fc8b5983964b\",\"type\":\"Toolbar\"},{\"attributes\":{\"plot\":{\"id\":\"cb98e413-dfa6-4f22-845e-dde1cb430ea3\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"01fa6177-cc44-4f78-8197-87e366fc55c0\",\"type\":\"BasicTicker\"}},\"id\":\"1a3823af-c647-44ed-b616-4ab4fccc3a42\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]}},\"selected\":null,\"selection_policy\":null},\"id\":\"f9c1236e-da97-4e28-8dcf-e1c2162b5715\",\"type\":\"ColumnDataSource\"}],\"root_ids\":[\"cb98e413-dfa6-4f22-845e-dde1cb430ea3\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"fcc5b674-70ec-4077-b760-6c4c0f14bb03\",\"elementid\":\"2348a78b-dd80-40f7-bd2e-5aba7a6967ae\",\"modelid\":\"cb98e413-dfa6-4f22-845e-dde1cb430ea3\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "cb98e413-dfa6-4f22-845e-dde1cb430ea3" } }, "output_type": "display_data" } ], "source": [ "# Set up parameters for periodic forcing with f = 5 and x_0 = 2.\n", "x_args = (5.0, 2.0)\n", "\n", "# Package parameters into a tuple\n", "args = (beta_y, beta_z, gamma, n_x, 10, x_periodic, x_args)\n", "\n", "# Time points\n", "t = np.linspace(0, 25, 600)\n", "\n", "# Initial condition\n", "yz_0 = np.array([0.0, 0.0])\n", "\n", "# Integrate ODES\n", "yz = scipy.integrate.odeint(cascade_rhs_x_fun, yz_0, t, args=args)\n", "\n", "# Pluck out y and z\n", "y, z = yz.transpose()\n", "\n", "# x\n", "x = x_periodic(t, *x_args)\n", "x /= x.max()\n", "\n", "# Plot the results\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "p.line(t, y, line_width=2, color=colors[0], legend='y', line_join='bevel')\n", "p.line(t, z, line_width=2, color=colors[1], legend='z', line_join='bevel')\n", "p.line(t, x, line_width=2, color=colors[2], alpha=0.2, legend='x (normalized)', line_join='bevel')\n", "\n", "# Place the legend\n", "p.legend.location = 'top_right'\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that Z does not really respond to high frequency forcing, even though the forcing is with the same amplitude. This gives us a design principle, that **a cascade can filter out high frequency fluctuations**. We can see this by adding another frequency to the signal." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"fdc60c8d-441d-4d75-9af4-3d9b3f85f6e8\":{\"roots\":{\"references\":[{\"attributes\":{\"overlay\":{\"id\":\"e20837d0-9e8a-4703-be1f-7eaa4c20fd3a\",\"type\":\"BoxAnnotation\"}},\"id\":\"63528eae-40ef-461f-bdea-59a9e1fa6b8e\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"ee280b5f-b2b0-4943-8c15-e45dbc36b4ca\",\"type\":\"ColumnDataSource\"}},\"id\":\"1d53376a-f4f2-46b7-a034-991b92bde1b4\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"a0b0d25b-9f28-4f66-91f7-0a0de1cc393a\",\"type\":\"SaveTool\"},{\"attributes\":{\"label\":{\"value\":\"y\"},\"renderers\":[{\"id\":\"6361e085-dede-4657-adb9-13211b763d71\",\"type\":\"GlyphRenderer\"}]},\"id\":\"956e01e2-6eb9-4deb-85af-05804ceabf7c\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"20c7496c-39bb-4450-ab3e-27db686c5228\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"6d79d67c-9c86-4228-aaed-c6da08309cff\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"bd15b3a3-9050-44e1-8468-c75f174cb9a0\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"20c7496c-39bb-4450-ab3e-27db686c5228\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"5f6bb277-c544-4ae4-9d25-1738e9e554d8\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"0fcbe776-9a04-4e66-a236-9a7f246ddc29\",\"type\":\"CDSView\"}},\"id\":\"c72454f4-7d0b-415f-9d9a-e275548524dd\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"e20837d0-9e8a-4703-be1f-7eaa4c20fd3a\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"a47634d5-8dc1-4101-832b-8ce47d35b754\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"81915508-098b-4202-bf6c-b61f54d5a246\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"f5809d3b-8dfa-474d-97bd-775687912738\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5f6bb277-c544-4ae4-9d25-1738e9e554d8\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"x (normalized)\"},\"renderers\":[{\"id\":\"902a9561-733f-4681-859f-b6766a0f58dd\",\"type\":\"GlyphRenderer\"}]},\"id\":\"b68348db-3422-4024-ad05-976f16d57763\",\"type\":\"LegendItem\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"d9cf5e0e-381d-4798-9a8a-63819b108fc8\",\"type\":\"Title\"},{\"attributes\":{\"label\":{\"value\":\"z\"},\"renderers\":[{\"id\":\"c72454f4-7d0b-415f-9d9a-e275548524dd\",\"type\":\"GlyphRenderer\"}]},\"id\":\"34fc9174-5758-4fff-84bf-d5fc176d50ac\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]}},\"selected\":null,\"selection_policy\":null},\"id\":\"ee280b5f-b2b0-4943-8c15-e45dbc36b4ca\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"c9945a64-c322-495c-a043-51851f9de382\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]}},\"selected\":null,\"selection_policy\":null},\"id\":\"18136c03-9fc5-4ace-ba44-1b9c78896f7c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2116ab81-dc6f-4534-98e7-af7c5f5ccbe3\",\"type\":\"HelpTool\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#2ca02c\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"39dc0872-a894-4ab3-a940-fec69a9f91e6\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"bcf4e86e-d2f2-4d70-8c00-9610588951e7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"84b38f11-b15f-4490-8875-2cbd322f03d8\",\"type\":\"BasicTicker\"}},\"id\":\"0b5a06af-3151-450b-a34f-32cd70580727\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"18136c03-9fc5-4ace-ba44-1b9c78896f7c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"39dc0872-a894-4ab3-a940-fec69a9f91e6\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"b42a0f8c-8d68-43fa-9c49-96a73e97358b\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"644ad2cb-05ba-42df-9104-22eed1603196\",\"type\":\"CDSView\"}},\"id\":\"902a9561-733f-4681-859f-b6766a0f58dd\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null},\"id\":\"ffe4bb6a-10ac-4d3f-ac39-a8168a47f649\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"bd15b3a3-9050-44e1-8468-c75f174cb9a0\",\"type\":\"ColumnDataSource\"}},\"id\":\"0fcbe776-9a04-4e66-a236-9a7f246ddc29\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"0e9ad6e3-cdee-44d2-b541-f536b7b590b9\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"9c3614c1-d53e-4d14-adb0-4be71ac0d5a9\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b42a0f8c-8d68-43fa-9c49-96a73e97358b\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"dimensionless time\",\"formatter\":{\"id\":\"0e9ad6e3-cdee-44d2-b541-f536b7b590b9\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"bcf4e86e-d2f2-4d70-8c00-9610588951e7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"84b38f11-b15f-4490-8875-2cbd322f03d8\",\"type\":\"BasicTicker\"}},\"id\":\"8ade0794-a18a-4992-9090-604b9c1a858b\",\"type\":\"LinearAxis\"},{\"attributes\":{\"items\":[{\"id\":\"956e01e2-6eb9-4deb-85af-05804ceabf7c\",\"type\":\"LegendItem\"},{\"id\":\"34fc9174-5758-4fff-84bf-d5fc176d50ac\",\"type\":\"LegendItem\"},{\"id\":\"b68348db-3422-4024-ad05-976f16d57763\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"bcf4e86e-d2f2-4d70-8c00-9610588951e7\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"3e055775-0390-46da-bcbe-2dddedfb3938\",\"type\":\"Legend\"},{\"attributes\":{\"data_source\":{\"id\":\"ee280b5f-b2b0-4943-8c15-e45dbc36b4ca\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"a0ecb907-9436-4785-9cce-54afdc6b1fe5\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2c873f1a-fd41-44db-9f35-bbe11e6f19eb\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1d53376a-f4f2-46b7-a034-991b92bde1b4\",\"type\":\"CDSView\"}},\"id\":\"6361e085-dede-4657-adb9-13211b763d71\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"e55f39b1-e6c6-4830-9819-2e495aa09a99\",\"type\":\"BasicTicker\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"a47634d5-8dc1-4101-832b-8ce47d35b754\",\"type\":\"PanTool\"},{\"id\":\"f5809d3b-8dfa-474d-97bd-775687912738\",\"type\":\"WheelZoomTool\"},{\"id\":\"63528eae-40ef-461f-bdea-59a9e1fa6b8e\",\"type\":\"BoxZoomTool\"},{\"id\":\"a0b0d25b-9f28-4f66-91f7-0a0de1cc393a\",\"type\":\"SaveTool\"},{\"id\":\"81915508-098b-4202-bf6c-b61f54d5a246\",\"type\":\"ResetTool\"},{\"id\":\"2116ab81-dc6f-4534-98e7-af7c5f5ccbe3\",\"type\":\"HelpTool\"}]},\"id\":\"54776f4e-210c-4ce7-963b-d8b0be960257\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a0ecb907-9436-4785-9cce-54afdc6b1fe5\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"dimensionless y, z\",\"formatter\":{\"id\":\"6d79d67c-9c86-4228-aaed-c6da08309cff\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"bcf4e86e-d2f2-4d70-8c00-9610588951e7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e55f39b1-e6c6-4830-9819-2e495aa09a99\",\"type\":\"BasicTicker\"}},\"id\":\"cb321472-5c4e-41e7-83d9-d254f6cc1807\",\"type\":\"LinearAxis\"},{\"attributes\":{\"below\":[{\"id\":\"8ade0794-a18a-4992-9090-604b9c1a858b\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"cb321472-5c4e-41e7-83d9-d254f6cc1807\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"plot_width\":500,\"renderers\":[{\"id\":\"8ade0794-a18a-4992-9090-604b9c1a858b\",\"type\":\"LinearAxis\"},{\"id\":\"0b5a06af-3151-450b-a34f-32cd70580727\",\"type\":\"Grid\"},{\"id\":\"cb321472-5c4e-41e7-83d9-d254f6cc1807\",\"type\":\"LinearAxis\"},{\"id\":\"a59f2e91-36f2-47b5-b26c-c5a258ecf987\",\"type\":\"Grid\"},{\"id\":\"e20837d0-9e8a-4703-be1f-7eaa4c20fd3a\",\"type\":\"BoxAnnotation\"},{\"id\":\"3e055775-0390-46da-bcbe-2dddedfb3938\",\"type\":\"Legend\"},{\"id\":\"6361e085-dede-4657-adb9-13211b763d71\",\"type\":\"GlyphRenderer\"},{\"id\":\"c72454f4-7d0b-415f-9d9a-e275548524dd\",\"type\":\"GlyphRenderer\"},{\"id\":\"902a9561-733f-4681-859f-b6766a0f58dd\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"d9cf5e0e-381d-4798-9a8a-63819b108fc8\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"54776f4e-210c-4ce7-963b-d8b0be960257\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"7c780133-8b5c-4d2e-b03c-c81ff6d46240\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"9c3614c1-d53e-4d14-adb0-4be71ac0d5a9\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"ffe4bb6a-10ac-4d3f-ac39-a8168a47f649\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"c9945a64-c322-495c-a043-51851f9de382\",\"type\":\"LinearScale\"}},\"id\":\"bcf4e86e-d2f2-4d70-8c00-9610588951e7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_join\":\"bevel\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2c873f1a-fd41-44db-9f35-bbe11e6f19eb\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"7c780133-8b5c-4d2e-b03c-c81ff6d46240\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"18136c03-9fc5-4ace-ba44-1b9c78896f7c\",\"type\":\"ColumnDataSource\"}},\"id\":\"644ad2cb-05ba-42df-9104-22eed1603196\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"84b38f11-b15f-4490-8875-2cbd322f03d8\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[600]}},\"selected\":null,\"selection_policy\":null},\"id\":\"bd15b3a3-9050-44e1-8468-c75f174cb9a0\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"bcf4e86e-d2f2-4d70-8c00-9610588951e7\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e55f39b1-e6c6-4830-9819-2e495aa09a99\",\"type\":\"BasicTicker\"}},\"id\":\"a59f2e91-36f2-47b5-b26c-c5a258ecf987\",\"type\":\"Grid\"}],\"root_ids\":[\"bcf4e86e-d2f2-4d70-8c00-9610588951e7\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.15\"}};\n", " var render_items = [{\"docid\":\"fdc60c8d-441d-4d75-9af4-3d9b3f85f6e8\",\"elementid\":\"f5ee2af4-2bc7-4f78-9f56-c565c9f14688\",\"modelid\":\"bcf4e86e-d2f2-4d70-8c00-9610588951e7\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "bcf4e86e-d2f2-4d70-8c00-9610588951e7" } }, "output_type": "display_data" } ], "source": [ "# Set up parameters for periodic forcing with f = 5 and x_0 = 2.\n", "x_args = ((0.5, 10.0), (0.5, 2.0))\n", "\n", "# Package parameters into a tuple\n", "args = (beta_y, beta_z, gamma, n_x, 10, x_periodic, x_args)\n", "\n", "# Time points\n", "t = np.linspace(0, 25, 600)\n", "\n", "# Initial condition\n", "yz_0 = np.array([0.0, 0.0])\n", "\n", "# Integrate ODES\n", "yz = scipy.integrate.odeint(cascade_rhs_x_fun, yz_0, t, args=args)\n", "\n", "# Pluck out y and z\n", "y, z = yz.transpose()\n", "\n", "# x\n", "x = x_periodic(t, *x_args)\n", "x /= x.max()\n", "\n", "# Plot the results\n", "p = bokeh.plotting.figure(plot_width=500,\n", " plot_height=300,\n", " x_axis_label='dimensionless time',\n", " y_axis_label='dimensionless y, z')\n", "\n", "# Populate glyphs\n", "p.line(t, y, line_width=2, color=colors[0], legend='y', line_join='bevel')\n", "p.line(t, z, line_width=2, color=colors[1], legend='z', line_join='bevel')\n", "p.line(t, x, line_width=2, color=colors[2], alpha=0.2, legend='x (normalized)', line_join='bevel')\n", "\n", "# Place the legend\n", "p.legend.location = 'top_right'\n", "\n", "#Show plot\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Even though the high frequency part of the forcing has a bigger amplitude, the signal in *z* responds predominantly to the low frequency part of the signal." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }