{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# BCM learning rule\n", "\n", "[![Download JupyterNotebook](https://img.shields.io/badge/Download-Notebook-orange?style=for-the-badge&logo=Jupyter)](https://raw.githubusercontent.com/ANNarchy/ANNarchy.github.io/master/notebooks/BCM.ipynb) [![Download JupyterNotebook](https://img.shields.io/badge/Open_in-Colab-blue?style=for-the-badge&logo=Jupyter)](https://colab.research.google.com/github/ANNarchy/ANNarchy.github.io/blob/master/notebooks/BCM.ipynb)\n", "\n", "The goal of this notebook is to investigate the Intrator & Cooper BCM learning rule for rate-coded networks. \n", "\n", "$$\\Delta w = \\eta \\, r^\\text{pre} \\, r^\\text{post} \\, (r^\\text{post} - \\mathbb{E}[(r^\\text{post})^2])$$\n", "\n", "> Intrator, N., & Cooper, L. N. (1992). Objective function formulation of the BCM theory of visual cortical plasticity: Statistical connections, stability conditions. Neural Networks, 5(1), 3–17. https://doi.org/10.1016/S0893-6080(05)80003-6\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "#!pip install ANNarchy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first import ANNarchy:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ANNarchy 4.8 (4.8.2) on darwin (posix).\n" ] } ], "source": [ "import numpy as np\n", "import ANNarchy as ann\n", "\n", "ann.clear()\n", "ann.setup(dt=1.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will keep a minimal experimental setup, with two input neurons connected to a single output neuron. Note how the input neurons are defined by setting `r` as a parameter that can be set externally." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Input\n", "input_neuron = ann.Neuron(\n", " parameters = \"\"\"\n", " r = 0.0\n", " \"\"\"\n", ")\n", "pre = ann.Population(2, input_neuron)\n", "\n", "# Output\n", "neuron = ann.Neuron(\n", " equations = \"\"\"\n", " r = sum(exc)\n", " \"\"\"\n", ")\n", "post = ann.Population(1, neuron)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now define a synapse model implementing the Intrator and Cooper version of the BCM learning rule.\n", "\n", "The synapse has two parameters: The learning rate `eta` and the time constant `tau` of the moving average `theta`. Both are defined as `projection` parameters, as we only need one value for the whole projection. If you omit this flag, there will be one value per synapse, which would be a waste of RAM.\n", "\n", "The moving average `theta` tracks the square of the post-synaptic firing rate `post.r`. It has the flag `postsynaptic`, as we need to compute only one variable per post-synaptic neuron (it does not really matter in our example as have only one output neuron...). It uses the exponential numerical method, as it is a first-order linear ODE that can be solved exactly. However, the default explicit Euler method would work just as well here.\n", "\n", "The weight change `dw/dt` follows the BCM learning rule. `min=0.0` ensures that the weight `w` stays positive throughout learning. The `explicit` Euler method is the default and could be omitted.\n", "\n", "The `psp` argument `w * pre.r` (what is summed by the post-synaptic neuron over its incoming connections) is also the default value and could be omitted." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "IBCM = ann.Synapse(\n", " parameters = \"\"\"\n", " eta = 0.01 : projection\n", " tau = 100.0 : projection\n", " \"\"\",\n", " equations = \"\"\"\n", " tau * dtheta/dt + theta = (post.r)^2 : postsynaptic, exponential\n", "\n", " dw/dt = eta * post.r * (post.r - theta) * pre.r : min=0.0, explicit\n", " \"\"\",\n", " psp = \"w * pre.r\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now create a projection between the two populations using the synapse type. The connection method is all-to-all, initialozing the two weights to 1." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "proj = ann.Projection(pre, post, 'exc', IBCM)\n", "proj.connect_all_to_all(1.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now compile the network and record the post-synaptic firing rate as well as the evolution of the weights and thresholds during learning. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Compiling ... OK \n", "WARNING: Monitor(): it is a bad idea to record synaptic variables of a projection at each time step! \n" ] } ], "source": [ "ann.compile()\n", "\n", "m = ann.Monitor(post, 'r')\n", "n = ann.Monitor(proj, ['w', 'theta'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simulation protocol is kept simple, as it consists of setting constant firing rates for the two input neurons and simulating for one second." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "pre.r = np.array([1.0, 0.1])\n", "ann.simulate(1000.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now retrieve the recordings and plot the evolution of the various variables." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "r = m.get('r')\n", "w = n.get('w')\n", "theta = n.get('theta')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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5s193Ut/8cUXRlxcnPHAAw/42mifadhycnKMFStWGCtWrDAA4z//+Y+xYsUKY9euXYZh1Mz+kZmZaSQkJBg333yzsXbtWmPq1KlGWFiYupcOdP/73/+Mli1bGi6Xy+jfv7+xcOFCq0sSiwCVDm+//bavTUFBgfGHP/zBaNSokREWFmZcccUVxv79+yusZ+fOncYll1xihIaGGnFxccaf//xno6SkxM+fRqxydNDRPiNH+/rrr42uXbsawcHBRseOHY3XXnutwnyv12s8+uijRkJCghEcHGxccMEFxqZNmyq0OXTokHHDDTcYERERRlRUlHHrrbcaOTk5/vwY4ifZ2dnGuHHjjJYtWxohISFGmzZtjEceeaRCN7/aZxq22bNnV3r8MmbMGMMwam7/WLVqlXHmmWcawcHBRvPmzY2nnnrKXx+xApthlHtcroiIiIiISD2ge3RERERERKTeUdAREREREZF6R0FHRERERETqHQUdERERERGpdxR0RERERESk3lHQERERERGRekdBR0RERERE6h0FHRERERERqXcUdEREREREpN5R0BERERERkXpHQUdEREREROodp9UFVIXX62Xfvn1ERkZis9msLkdERERERCxiGAY5OTk0a9YMu/34523qRNDZt28fSUlJVpchIiIiIiIBIiUlhRYtWhx3fp0IOpGRkYD5YaKioiyuRkRERERErJKdnU1SUpIvIxxPnQg6ZZerRUVFKeiIiIiIiMhJb2lRZwQiIiIiIlLvKOiIiIiIiEi9o6AjIiIiIiL1Tp24R0dEREREpCHweDyUlJRYXYalgoKCcDgcp70eBR2plt2H8vlh3X5W78liX2YBXgOaxYTQtXk0l3RtSnJcuNUlioiIiNQ5hmGQmppKZmam1aUEhJiYGBITE0/rGZo2wzCMGqypVmRnZxMdHU1WVpZ6XbPIypRMnvt5M3M2HThhuws6xvOXYR3o1FT/TiIiIiJVtX//fjIzM4mPjycsLOy0DvDrMsMwyM/PJz09nZiYGJo2bXpMm6pmA53RkRPKK3Lzr+828OGi3QDYbTC4bRxnto+jdWPzP2FKRj7zthxk/pYDzNyYztzNBxg/tD33nNsOh71h/icVERERqSqPx+MLOY0bN7a6HMuFhoYCkJ6eTnx8/ClfxqagI8e182Aed72/lM1puQBc2bs54y84g5aNw45pe8dZbdh+IJenvt/IT+vT+PdPm1mzN4vnrutFqOv0r7EUERERqa/K7skJCzv2GKuhKvtZlJSUnHLQUa9rUqkF2w5x2Yvz2ZyWS3xkMFPuHMB/ru1Zacgp06ZJBK/e3Id/X9MDl8POj+vSGPPWYgqKPX6sXERERKRuaqiXq1WmJn4WCjpyjPlbDnLrO4vJLnTTu2UMX//xTAa3javSsjabjav7tODDOwcQGeJk8c4M7np/KcVuby1XLSIiIiJyhIKOVPDLlgPc9u4SCku8nN8xnil3DiQhKqTa6+nXOpZ3bu1PmMvBL1sO8vhX66gD/V6IiIiISD2hoCM+6/Zlcff7yyh2exnaKYHJN/UmJOjU76/p06oRL93YG5sNPlq8mymLd9dgtSIiIiIix6egIwDszSzg1reXkFfsYXDbxrw8qjfBztPvROC8jvE8eHFHAP7xzXq2puee9jpFRERERE5GQUcoLPFw57tLSc8p4oyECCbf1AeXs+Z2jbvOasNZ7eMoLPEy/uMVul9HREREpB4ZOHAgL7zwgu/99ddfj81mo7CwEICUlBRcLhebN2/2a13qXlr421frWL8/m8bhLt6+tT/RoUE1un673ca/r+nBsOfmsXZvNi/O2sKEizrU6DZERERE6hPDMCgosabn2tAgR7V6PYuJiSEnJwcwQ81PP/1EeHg4mZmZJCYm8uqrr3LhhRdyxhln1FbJlVLQaeA+XZrC1CUp2Gzw/PW9aB4TWivbSYgK4cmR3Rg7ZTmT527j8l7Nadskola2JSIiIlLXFZR46PzYj5Zse/3fhxHmqnpMKB90XnzxRW666Sa++uorDh8+TGxsLK+//jrvv/8+AFdccQVz5szhggsu4LPPPquV+svo0rUGbGNqNo9+uRaAPw09gzPbV60L6VM1vFsi53VoQonH4PEv1QubiIiISH1QFnTy8vJ48803ue+++4iOjubw4cN89tlnNG7cmAsvvBCAcePG8d577/mlLp3RaaAKSzzc99EKCku8nH1GE+49r12tb9Nms/G3y7rw63/nMX/rQb5ds5/fdW9W69sVERERqWtCgxys//swy7ZdHTExMezbt493332XwYMH065dO6Kiojh8+DAvvfQS9913n+9SuHPPPZc5c+bUQtXHUtBpoP4zYzOb03KJi3Dx32t7YLf750m8rRqHc885bXl+5hb+9e0GhnZKOK0urEVERETqI5vNVq3Lx6wUExPDhg0beP7553n55ZcBiI6OZvbs2WzYsIHRo0dbUpcuXWuAFm0/xOu/bAfgqSu70zgi2K/bv+fctjSNDmFfViEfLNzl122LiIiISM2KiYlh1qxZBAcHc8EFFwAQFRXFK6+8wh133EFYWJgldSnoNDC5RW7+/OkqDAOu65vE0M4Jfq8hJMjB+KHtAXhx9layC0v8XoOIiIiI1IyYmBhyc3MZN26cb1p0dDSFhYWMHTvWsroUdBqY//t+I3sOF9CiUSh//V0ny+q4qncL2jYJJzO/hNfmbresDhERERE5Pddffz2GYXD77bf7pk2ePBm3202rVq0sq0tBpwFZtiuDDxaZl4o9fVV3IkNq9nk51eF02Ll/WEcA3vp1B4fzii2rRURERET8Y+jQoVxzzTV89913tGjRggULFtTaturGHU5y2ordXiZ+sQbDgKv7tGBwu9rtSroqhnVJoEuzKNbty+btX3foIaIiIiIi9dzPP//st23pjE4D8ercbWxOy6VxuItHhlt3yVp5NpuNsaXdWr/z205ydK+OiIiIiNSQagWdSZMm0a9fPyIjI4mPj2fkyJFs2rTppMt9+umndOzYkZCQELp168Z33313ygVL9W07kMv/Zm0F4LFLO9Mo3GVxRUdc3CWRtk3CyS508756YBMRERGRGlKtoDN37lzGjh3LwoULmTFjBiUlJVx00UXk5eUdd5nffvuNG264gdtvv50VK1YwcuRIRo4cydq1a0+7eDk5wzB4ZNoaij3mg0Ev6xFYD+i024+c1Xnzlx0UFHssrkhERERE6gObYRjGqS584MAB4uPjmTt3LmeffXalba677jry8vL45ptvfNMGDhxIz549eeWVV6q0nezsbKKjo8nKyiIqKupUy22Qvlq1j/s+WkFIkJ0ZfzqHpFhr+jE/EbfHy3nPziElo4DHL+3MrUOSrS5JRERExG8KCwvZsWMHycnJhISEWF1OQDjRz6Sq2eC07tHJysoCIDY29rhtFixYwNChQytMGzZs2Al7WCgqKiI7O7vCINWXX+zmX99uAOAP57YLyJADZg9sd5/TFoA3ftmB2+O1uCIRERERqetOOeh4vV7Gjx/PkCFD6Nq163HbpaamkpBQ8aGUCQkJpKamHneZSZMmER0d7RuSkpJOtcwG7eXZ20jNLqRFo1DuOruN1eWc0FW9WxAb7mJvZgEz1qdZXY6IiIiI1HGnHHTGjh3L2rVrmTp1ak3WA8DEiRPJysryDSkpKTW+jfpu16E8XptnPojzryM6ExLksLiiEwsJcjBqQEvAfK6OiIiIiMjpOKWgc++99/LNN98we/ZsWrRoccK2iYmJpKVV/IY+LS2NxMTE4y4THBxMVFRUhUGq55/fbqDY4+XMdnEM65Jw8gUCwM0DWxHksLFk52FW78m0uhwRERERqcOqFXQMw+Dee+9l2rRpzJo1i+Tkk980PmjQIGbOnFlh2owZMxg0aFD1KpUqm7v5ADPWp+Gw23j80s7YbDarS6qS+KgQLu1u9gr31nyd1RERERGRU1etoDN27Fg++OADpkyZQmRkJKmpqaSmplJQUOBrM3r0aCZOnOh7P27cOH744QeeffZZNm7cyN/+9jeWLl3KvffeW3OfQnyK3V6e+HodAGMGtaZ9QqTFFVXPbWea4fmb1ftJzSq0uBoRERERqauqFXQmT55MVlYW5557Lk2bNvUNH3/8sa/N7t272b9/v+/94MGDmTJlCq+99ho9evTgs88+Y/r06SfswEBO3XsLdrL9QB6Nw12MG9re6nKqrWvzaPonx+L2GnygB4iKiIiIyCmq9qVrlQ233HKLr82cOXN45513Kix3zTXXsGnTJoqKili7di3Dhw+vidrlKOk5hTz38xYAHri4A9GhQRZXdGpuGdwagKlLdlPsVlfTIiIiIoFs4MCBvPDCC773119/PTabjcJC8+qclJQUXC4Xmzdv9mtdTr9uTWrVMz9sIrfITfcW0VzTp+52yX1h5wTiI4NJzynip/Wp/K70vh0RERGRBsMwoCTfmm0HhUE17vGOiYkhJycHMEPNTz/9RHh4OJmZmSQmJvLqq69y4YUXcsYZZ9RWxZVS0KknVqZk8umyPQD87bIu2O11owOCygQ57FzfL4kXZm3lg4W7FHRERESk4SnJh39ZdAz08D5whVe5efmg8+KLL3LTTTfx1VdfcfjwYWJjY3n99dd5//33SUlJ4eabbyY9PR2n08mjjz7KNddcU1uf4tSfoyOBw+s1ePwrswOCq3q3oHfLRhZXdPqu798Suw0Wbs9ga3qO1eWIiIiIyHGUBZ28vDzefPNN7rvvPqKjozl8+DCfffYZjRs35sILL8TpdPLcc8+xfv16fvrpJ8aPH09eXl6t1aUzOvXA58v3sColk4hgJw9e3MHqcmpEs5hQLuiUwIz1aXywcDd/u6yL1SWJiIiI+E9QmHlmxaptV0NMTAz79u3j3XffZfDgwbRr146oqCgOHz7MSy+9xH333YfNZvN1ZAbmszbj4uLIyMggPLzqZ4+qQ0GnjssuLOH/ftgEwH0XtCM+KsTiimrOTQNbMWN9Gp8v38MDF3cgzKXdVURERBoIm61al49ZKSYmhg0bNvD888/z8ssvAxAdHc3s2bPZsGEDo0ePPmaZZcuW4fF4SEqqvfvKdelaHfe/mVs4mFtEm7hwbhl88ge41iVntYujVeMwcgrdfL3Kom80REREROSEYmJimDVrFsHBwVxwwQUAREVF8corr3DHHXcQFlbxDFFGRgajR4/mtddeq9W6FHTqsK3pubz9604AHru0My5n/frntNtt3Ni/JQAfLNxtcTUiIiIiUpmYmBhyc3MZN26cb1p0dDSFhYWMHTu2QtuioiJGjhzJQw89xODBg2u1rvp1ZNyAGIbBE1+vw+01GNopnnM7xFtdUq24pm8SLoedNXuzWLMny+pyREREROQo119/PYZhcPvtt/umTZ48GbfbTatWrXzTyp6/ef7553PzzTfXel0KOnXUzxvS+WXLQVwOO38d0dnqcmpNbLiLi7smAuYDREVERESkbvr111/5+OOPmT59Oj179qRnz56sWbOm1ranu7vroMISD//4Zj0Ad5yVTOu4unGj2qm6vl8SX63ax1cr9/HIiE7qlEBERESkDjrzzDPxer1+257O6NRBb87fwe6MfBKighl7Xjury6l1A9s0NjslKHLz7er9VpcjIiIiInWAgk4dsy+zgBdnbQXg4eGdCA+u/2c37HYb1/Y1ux78eEmKxdWIiIiISF2goFPHPPndBgpKPPRr3YjLejSzuhy/uaZPCxx2G0t3HWZLWo7V5YiIiIhIgFPQqUN+23aQb1fvx26DJy7ris1ms7okv4mPCuH8jmbPcjqrIyIiIiIno6BTR5R4vDzxldkBwU0DW9G5WZTFFfnf9f3My9c+X76HIrfH4mpEREREapZhGFaXEDBq4mehoFNHvL9gF5vScmgUFsSEC8+wuhxLnHNGExKjQjicX8KM9WlWlyMiIiJSI4KCggDIz8+3uJLAUfazKPvZnIr6fyd7PXAgp4j/ztgMwP3DOhIT5rK4Ims4HXau6duC/83aytTFKfyue8O5R0lERETqL4fDQUxMDOnp6QCEhYU1qFsUyjMMg/z8fNLT04mJicHhcJzyuhR06oCnf9hITpGbbs2jua708q2G6tq+Sbw4eyvztx4kJSOfpNgwq0sSEREROW2JieYD0svCTkMXExPj+5mcKgWdALdi92E+XbYHgCcu74LD3jDTfZmk2DDObBfHL1sO8vGSFP4yrIPVJYmIiIicNpvNRtOmTYmPj6ekpMTqciwVFBR0WmdyyijoBDCv1+Dxr9YBcHWfFvRu2cjiigLD9f1a8suWg3y6LIXxQ9vjdOhWMxEREakfHA5HjRzkizojCGifLE1h9Z4sIoOdPHhxR6vLCRhDO8cTG+4iLbuIOZsOWF2OiIiIiAQgBZ0AlZVfwtM/bgJg/IVn0CQy2OKKAkew08FVvZsDMFXP1BERERGRSijoBKj/+3EjGXnFtI+PYPSgVlaXE3DKOmWYvSmdtOxCi6sRERERkUBT7aAzb948Lr30Upo1a4bNZmP69OknbD9nzhxsNtsxQ2pq6qnWXO8t23WYKYt2A/DPkV0J0j0ox2gXH0m/1o3weA0+K+2sQURERESkTLWPoPPy8ujRowcvvfRStZbbtGkT+/fv9w3x8fHV3XSDUOLx8si0NQBc06cFA9o0triiwHVdv5YATF2yG69XTxIWERERkSOq3evaJZdcwiWXXFLtDcXHxxMTE1Pt5Rqat3/dwcbUHBqFBTFxeCerywlow7sl8sRX60jJKGDB9kMMaRdndUkiIiIiEiD8dk1Uz549adq0KRdeeCG//vrrCdsWFRWRnZ1dYWgI9hzO578ztgAwcXgnYsNdFlcU2MJcTi7v1QyAjxbvtrgaEREREQkktR50mjZtyiuvvMLnn3/O559/TlJSEueeey7Lly8/7jKTJk0iOjraNyQlJdV2mZYzDIO/fbWOghIP/ZNjuaZPC6tLqhOuL7187cd1qRzKLbK4GhEREREJFDbDME755gabzca0adMYOXJktZY755xzaNmyJe+//36l84uKiigqOnLQmp2dTVJSEllZWURFRZ1quQHtx3Wp/P79ZQQ5bHx331m0T4i0uqQ647IX57N6TxYTL+nI789pa3U5IiIiIlKLsrOziY6OPmk2sKQ7r/79+7N169bjzg8ODiYqKqrCUJ/lFrn521frALjr7DYKOdV0Y3/zrM5Hi9UpgYiIiIiYLAk6K1eupGnTplZsOiD93/cb2Z9VSMvYMP54fnury6lzLu3RjIhgJzsP5bNg+yGryxERERGRAFDtXtdyc3MrnI3ZsWMHK1euJDY2lpYtWzJx4kT27t3Le++9B8Bzzz1HcnIyXbp0obCwkDfeeINZs2bx008/1dynqMMWbT/E+wt3ATDpym6EBDksrqjuCQ92MrJXMz5YuJspi3ar9zURERERqX7QWbp0Keedd57v/YQJEwAYM2YM77zzDvv372f37iM9YBUXF/PnP/+ZvXv3EhYWRvfu3fn5558rrKOhKij28ODnqwG4oX+SDtBPw439W/HBwt38uC6V9JxC4iNDrC5JRERERCx0Wp0R+EtVbziqa578dj2v/7KDxKgQfppwNlEhQVaXVKeNfOlXVqZkcv+wDow9r53V5YiIiIhILQjozggEVuw+zJvzdwDwryu7KuTUgBsHmJ0STF2iTglEREREGjoFHQsUuT088NlqvAZc0as553dMsLqkeuHS7s2IDHGSklHAL1sPWl2OiIiIiFhIQccCL87aypb0XOIiXDz2u85Wl1NvhLocXNmrOQBTFu2yuBoRERERsZKCjp+t2ZPF5DnbAPjH5V1pFO6yuKL65cYBrQD4eUM6admFFlcjIiIiIlZR0PGjwhIP4z9egdtrMKJbUy7ppmcJ1bQOiZH0adUIj9fgkyUpVpcjIiIiIhZR0PGjp77fyLYDecRHBvPPkV2tLqfeGlXaKcGUxbtxe7wWVyMiIiIiVlDQ8ZP5Ww7yzm87AXj66u66ZK0WDe/WlNhwF/uzCpmxPs3qckRERETEAgo6fpCVX8JfPl0FwM0DW3Fuh3iLK6rfQoIc3NjfPKvzdmm4FBEREZGGRUHHDx79ci2p2YW0iQtn4vCOVpfTINw0sBUOu43FOzJYvy/b6nJERERExM8UdGrZ9BV7+WrVPhx2G/+5ridhLqfVJTUIidEhXNw1EYB3dVZHREREpMFR0KlFOw7m8ci0NQD88fx29EyKsbagBubWwa0BmL5yLxl5xdYWIyIiIiJ+paBTS4rcHv740XLyij0MSI7lj+e3t7qkBqdPq0Z0bR5FkdvL1CW7rS5HRERERPxIQaeWTPpuI2v3ZtMoLIjnr++Fw26zuqQGx2azccvgZAA+WLBLXU2LiIiINCAKOrXgp3Wpvq6kn722B4nRIdYW1ID9rrvZ1fQ+dTUtIiIi0qAo6NSwvZkF3P/ZagDuODOZ8zsmWFxRw1ahq+lfd1pbjIiIiIj4jYJODSpye7h3ynKyCkro3iKaBy5WV9KB4KaBrXDabSzemcHqPZlWlyMiIiIifqC+jmvQP75Zz4rdmUSFOHnxht64nPUgRxoGFOdCUS4U50FJXulrvjnfZj8yBIVDSBSERENwFAQFxiV7idEhXNajGV+s2Mur87bz0o29rS5JRERERGqZgk4N+WzZHj5YaPbs9fz1vWjZOMziiqqo4DAc3gmHd5mvmbsgJw1y0yAvHXLTwV14aut2RUBUc4hubr7GtIS4M6BJB4htC05XTX6SE7rrnDZ8sWIv36/Zz65DebRqHO63bYuIiIiI/yno1IC1e7N8z8sZd0F7zusYb3FFR/F6IGMHHNgIBzZA+kY4tMUMNoVZVVuHzQGucHMICjMHG+YZH8NrbqM4D4qyzQHMM0EHN5lDZetr3Baa9oBmvaBZb2ja3Vx/LeiYGMW5HZowZ9MB3vhlB/8Y2bVWtiMiIiIigUFB5zRl5hdzz4fLKHJ7Oa9DE8ZdYOHzcjxuOFwaaNI3lgabjXBwC3iKjr9cRALEtIJGraFRK4hsak6LiDeH8CalwaaKXWR7PVCUA3kHIGsPZO+FrL1msDq4CQ5shuIcOLjZHNZ8ai5ns0OTjtByILQaAq0GQ1Sz0/2p+Pz+7LbM2XSAT5amMG5oe+Iigmts3SIiIiISWBR0ToPb4+W+qStJySigZWwYz13XC7s/npdTFmjSN8CBTRXP0niKK1/GGQpNzoAmnSC+I8R1gNhk83Kymj6LYndAaIw5xFUS/AwDsveZ9e9bcWTI2Qfp681h6Vtm20atzdDTcpAZfGLbVD1wHWVgm1h6tIhm1Z4s3vttJxMu6nCqn1BEREREApzNMAzD6iJOJjs7m+joaLKysoiKirK6HJ8nvl7H27/uJCTIzuf3DKZLs+ia3UCFQLPxyJma6gSaJqVDTCuwB3jnCDmpsGcp7F4Au36F/avMy+LKi2xqBp/WQ6D1WdC4XbWCz3dr9vOHD5cTHRrEbw+dT3iwsr6IiIhIXVLVbKCjvFP04aJdvuey/OfanqcXctzF5mVdBzY2jEBzPJGJ0Ol35gBQmA17FsOu38xh7zLI2Q9rPzMHgPB4M/S0GgKtzzR/BicIPsO6JNKqcRi7DuUzdUkKt5+Z7IcPJiIiIiL+Vu0zOvPmzeOZZ55h2bJl7N+/n2nTpjFy5MgTLjNnzhwmTJjAunXrSEpK4q9//Su33HJLlbcZaGd0ftt6kNFvLcbtNfjzhWfwx6rcl+P1mPerHNoKh7ZBxrbS8a2QufvYMxdlgsLMnsriO5m9lTUpfa3LgeZUlRTAniWw81fzjE/K4mPvPQqLMy9xa32mGX7iOx/zc5qyaDcPT1tDfGQw8x44j5Aghx8/hIiIiIicjlo7o5OXl0ePHj247bbbuPLKK0/afseOHYwYMYK7776bDz/8kJkzZ3LHHXfQtGlThg0bVt3NW27HwTzu+XA5bq/BZT2ace/57Y7MLMqFrBSzq+bM3WZXzYd3mmEmY8eJOwQICi89Q1Pu7Ex8R4hu2fACzfEEhULy2eYAUFJonuXZ9Svs/AVSlkD+QdjwlTkAhDYq7dhgiNnJQUJXru7TghdnbWFfViFTF+/mliE6qyMiIiJS35zWPTo2m+2kZ3QefPBBvv32W9auXeubdv3115OZmckPP/xQpe0EyhmdrJx8xk3+HDJ3MzA2jzu62nFmpxwJNfmHTrwCh8u8mT62rdm1cuN2R14jEk75Jnsp5S6Gfcth53xzSFl05MGmZRwuSOzGJucZvLolmpSwTrz/wChCXEHW1CwiIiIi1RIw9+gsWLCAoUOHVpg2bNgwxo8ff9xlioqKKCo6cvYjOzu7tsqrlr07N/JO/r3gAnKBhZU0CokxezJr1Mq8vCymVWmYaQvRSWaPZFI7nC7zrE3LgXD2X8BTAvtWmmd7dv1qdnRQmAl7l9GBZfzHBbih+OlHoHkP8zK3hM4Q38W8VDDE+sskRUREROTU1HrQSU1NJSEhocK0hIQEsrOzKSgoIDQ09JhlJk2axBNPPFHbpVVb505d8LiiKIloTkiTNmag8YWa0vGQGu55TU6dIwiS+pnDWRPMbq0ztptdWe9dRvqmBURmrCPUnWsGoV2/Vlw+OskMP006mEE1tq15Ri6yqS4nFBEREQlwAdnr2sSJE5kwYYLvfXZ2NklJSRZWVMoZjOPhFHROpo6y2Y6cXet2NTFDvVzw9M9E5Gzl4d5uzopOh7T1ZnfeOfvM+62yUmDLjxXX4ww1n0EU28Z8zk9Uc4huDlEtzAecRiQoCImIiIhYrNaDTmJiImlpaRWmpaWlERUVVenZHIDg4GCCg/XUeqldLqeduy/owCPTSvjz5mDmPTD2SA9s+Rlm4ElfDwe3mGeCMraZHU24C4482LQydidENjPDT2QihDcpHeJKX+OPjAdH6t4sERERkVpQ60Fn0KBBfPfddxWmzZgxg0GDBtX2pkVO6po+Sbw8ext7Mwt4+9ed3HNuW3NGWGzpQ0mHVFzAU2Ke5cnYDoe2m51QZO+FrL3ma85+8Loha7c5nIzDZd7XFRINoaWvx7wvHVwRZnfjrnBz3FU6HhQOjoA8OSsiIiJimWofHeXm5rJ161bf+x07drBy5UpiY2Np2bIlEydOZO/evbz33nsA3H333bz44os88MAD3HbbbcyaNYtPPvmEb7/9tuY+hcgpcjnt/PmiM5jwySpenrOVG/onERPmOv4CjqDSnvPaQLtK5nvckJtaGnz2QG465B0oHQ5WHC/ONR8Im5duDqfDGVIagiJKw0+oOc0ZXG4IMYNVheml447y711mO7sT7EFmiKowHmS+d5S++saDzM42ysYdQTpbJSIiIpapdvfSc+bM4bzzzjtm+pgxY3jnnXe45ZZb2LlzJ3PmzKmwzJ/+9CfWr19PixYtePTRR+v0A0OlfvF4DUa88AsbU3O486xkHhnR2T8bLs4zuyQvzDKHgszS8cxK3mdDSZ65THEeFOebQcnw+KfWU2WzHwlGdocZfGx2sDlK5znKvbcd9d5ebpnK2tvNe6EqXV/ZYANslb/a7MeZR+nrqSxPuffVXb50u76f3dEh8VTmHdXuVObVSB1HN6vhGk/qJH/mqvRnMFDWcbJNnGwdVdiG1nHq66jQtgrTj3l7Guuqlemnukyg1XQ606u5Xb/UdCr7WQ39G3W6DHqNqnxdflTVbHBaz9HxFwUdqW1zNqVzy9tLcDnszPrLObRoFGZ1SSdnGOAuMp8VVJxbMQCV5Jvz3EXmg2rdReAuPM604iPzPEXmg1i9JeYleJ7S10rHS8wzWF63OW54rf6JiIiISG0aMg4u/LvVVQTOc3RE6oJzzmjCoDaNWbD9EP/5aTP/ua6n1SWdnM0GQSHmEBZrdTXg9R4JPZ4S8HrKjbvNIFQ2eD2l46WvXu9R7yubX9k8o5K2nnLbMgCjCq+VteXYtoa3ius7xW2WOeG3l0f/4E/zG8YTzavyt6i1UceJph+1rSpdIlmFNjV1qaVf66mP6wmkWk5lPbZKR6t05rVWptf0umqzVn9O5zjTA/3fwOJ/mwQ/XfVSQxR0RACbzcbE4R257MVf+WLFXkYPbk3PpBiry6pb7HawuzCfqCsiIiJiLT3sQ6RU9xYxXNW7BQCPf7UOrzfgr+oUERERkeNQ0BEp58GLOxDucrAqJZMvVuy1uhwREREROUUKOiLlxEeFcN8F7QF46vuN5BSWWFyRiIiIiJwKBR2Ro9w6JJk2ceEczC3i+Z+3WF2OiIiIiJwCBR2Ro7icdh691OxV5O3fdrJ2b5bFFYmIiIhIdSnoiFTivA7xjOjeFI/XYOIXa/CoYwIRERGROkVBR+Q4Hr+0M5EhTtbszeLtX3dYXY6IiIiIVIOCjshxxEeG8PDwTgA8+9NmUjLyLa5IRERERKpKQUfkBK7rm0T/1rEUlHh46IvVeraOiIiISB2hoCNyAna7jf+7ujuhQQ5+3XqIdxfstLokEREREakCBR2Rk0iOC+fh4R0B89k6W9NzLK5IRERERE5GQUekCm4a2Iqzz2hCkdvLnz5eRYnHa3VJIiIiInICCjoiVWCz2Xj6qu5EhwaxZm8Wz/602eqSREREROQEFHREqigxOoSnruwGwCtztzFrY5rFFYmIiIjI8SjoiFTDJd2aMmZQKwAmfLKKfZkFFlckIiIiIpVR0BGppodHdKJ7i2gy80u4d8pyit26X0dEREQk0CjoiFRTsNPBizf0JjLEyfLdmTz+1ToMQ8/XEREREQkkCjoip6Bl4zBeuL4XNht8tHg37y/cZXVJIiIiIlKOgo7IKTqvYzwPXWw+X+eJr9fz69aDFlckIiIiImUUdEROw11nt+HKXs3xeA3u+WAZm9P0MFERERGRQKCgI3IabDYb/7qyG71bxpBd6GbMW4vVE5uIiIhIADiloPPSSy/RunVrQkJCGDBgAIsXLz5u23feeQebzVZhCAkJOeWCRQJNSJCDN8f0o22TcPZnFTLmrcVk5ZdYXZaIiIhIg1btoPPxxx8zYcIEHn/8cZYvX06PHj0YNmwY6enpx10mKiqK/fv3+4Zdu3TjttQvjcJdvHtbfxKigtmSnsut7ywmt8htdVkiIiIiDVa1g85//vMf7rzzTm699VY6d+7MK6+8QlhYGG+99dZxl7HZbCQmJvqGhISE0ypaJBC1aBTGu7f1J6q02+lb315MnsKOiIiIiCWqFXSKi4tZtmwZQ4cOPbICu52hQ4eyYMGC4y6Xm5tLq1atSEpK4vLLL2fdunUn3E5RURHZ2dkVBpG6oGNiFB/cMYDIECdLdh7m1neWkF+ssCMiIiLib9UKOgcPHsTj8RxzRiYhIYHU1NRKl+nQoQNvvfUWX375JR988AFer5fBgwezZ8+e425n0qRJREdH+4akpKTqlCliqe4tYnj/9gFEBjtZvCOD0W/qnh0RERERf6v1XtcGDRrE6NGj6dmzJ+eccw5ffPEFTZo04dVXXz3uMhMnTiQrK8s3pKSk1HaZIjWqZ1IM795uXsa2dNdhrn11AWnZhVaXJSIiItJgVCvoxMXF4XA4SEtLqzA9LS2NxMTEKq0jKCiIXr16sXXr1uO2CQ4OJioqqsIgUtf0btmIT+4eRHxkMJvScrjy5d/YcTDP6rJEREREGoRqBR2Xy0WfPn2YOXOmb5rX62XmzJkMGjSoSuvweDysWbOGpk2bVq9SkTqoY2IUn98zmNaNw9ibWcBVk39j8Y4Mq8sSERERqfeqfenahAkTeP3113n33XfZsGED99xzD3l5edx6660AjB49mokTJ/ra//3vf+enn35i+/btLF++nJtuuoldu3Zxxx131NynEAlgSbFhfHbPYLo2jyIjr5hRbyxkyqLdVpclIiIiUq85q7vAddddx4EDB3jsscdITU2lZ8+e/PDDD74OCnbv3o3dfiQ/HT58mDvvvJPU1FQaNWpEnz59+O233+jcuXPNfQqRABcXEcwnvx/E/Z+t5tvV+3l42ho27M/msUs7E+So9VvlRERERBocm2EYhtVFnEx2djbR0dFkZWXpfh2p0wzD4OU52/j3T5swDOjdMobnr+9FUmyY1aWJiIiI1AlVzQb6KlnEj2w2G2PPa8frN/clsvTBosNf+IWvV+2zujQRERGRekVBR8QCQzsn8N19Z9G7ZQw5hW7++NEKHvhsFTmFet6OiIiISE1Q0BGxSFJsGJ/8fhB/PL8dNht8snQPF/13HjM3pJ18YRERERE5IQUdEQs5HXb+fFEHPrpzIK0ah7E/q5Db313KfR+t4GBukdXliYiIiNRZCjoiAWBgm8b8MO5s7jq7DXYbfLVqH+f9ew5vzt9BicdrdXkiIiIidY56XRMJMKv3ZDLxizWs25cNQNsm4fz1d50594wm2Gw2i6sTERERsVZVs4GCjkgA8ngNPl2awjM/buJQXjEA/ZNjmXDhGQxs09ji6kRERESso6AjUg9kF5bwv5lbeHfBLord5iVsQ9o1ZsKFHejTqpHF1YmIiIj4n4KOSD2yP6uAl2Zv5eMlKZR4zP+yA5JjueOsNlzQMR67XZe0iYiISMOgoCNSD6Vk5PPirK18vnwPbq/5Xzc5Lpzbzkzmqt7NCXM5La5QREREpHYp6IjUY/uzCnjnt51MWbSbnEI3ABHBTi7r2Ywb+rWkW4toiysUERERqR0KOiINQF6Rm0+XpvD2bzvZdSjfN71Lsyiu6dOC4d2bEh8ZYmGFIiIiIjVLQUekAfF6DRZuP8TUJSn8sDaV4tJn79htMCC5Mb/r0ZRLujYlNtxlcaUiIiIip0dBR6SBOpxXzPSVe/lq1T5W7M70TXfYbQxsE8v5HRO4oGM8rePCrStSRERE5BQp6IgIKRn5fLtmP1+v2ud7AGmZNnHhnN8xnrPOaEK/1o3UkYGIiIjUCQo6IlLBzoN5/Lwhjdmb0lm0PcPXaxuA026jR1IMg9o0ZlDbxvRu2YhQl8PCakVEREQqp6AjIseVU1jC/C0HmbUxnd+2HWJvZkGF+UEOG52bRtEzKYaeLWPo0SKG5LhwbDY9r0dERESspaAjIlWWkpHPgm2HWLD9EAu2HSI1u/CYNtGhQfRIiqFrsyg6No2iU2IkyXHhOB12CyoWERGRhkpBR0ROiWEYpGQUsCLlMKtSsliZcpi1+7IpdnuPaety2mnXJIKOTSPplBhFu/gIkuPCadEoVAFIREREaoWCjojUmGK3l42p2axKyWT9/hw2pWazKTWHvGJPpe2ddhstY8NIjgsnOS6c1qWvSY3CSIwOweVUCBIREZFTU9VsoG6WROSkXE473VvE0L1FjG+a12uw53ABG1Oz2Ziaw6bUHLYdyGXnoTwKS7xsP5jH9oN5x6zLZoP4yGCax4TSLCaU5o1CaR5jDonRIcRHhhAb7sJh1/1AIiIicup0RkdEapTXa5CWU8iOA2bQ2Xkwjx0H89hxKI+9hwsoquQSuKM57DYah7toEhlMfGRw6WuI731suItG4S4ahbmICQsiSJfJiYiINBg6oyMilrDbbTSNDqVpdCiD28VVmGcYBofyitmXWcDewwXszSwdSsfTsos4lFeEx2uQnlNEek4R66qwzchgJzHhQaXBx0WjsCBfCIoJDSIyJIjIECcRIU6iQoKICHb63gc71Y22iIicPsMw8HgN3N4jr94K7714veD2eiu08xzVxlPJ9IrvvZWsu4ptPAae0jpLPEfqcHu8R9p5jAo1ln9/Q/+W/P6ctlb/qKvslILOSy+9xDPPPENqaio9evTgf//7H/379z9u+08//ZRHH32UnTt30r59e/7v//6P4cOHn3LRIlI32Ww24iKCiYsIrnAZXHluj5eMvGLSc4o4kFNEek5h6WuR7zUjr5jD+cVkFZRgGJBT5CanyE1KRkGl6zwRl9NOZLngExkcRHiwg1CXk9AgO2EuJ6EuB6FBDsJcDkJKX4+MOytMDw1yEBxkx+Wwq0MGEalzvN4jB8LeslcveAzzfYX5pdPLt62wnGHg8VJxftk6ys83DF9IOHq696h1HplWbn65dp4KNZqfx1s+gBjmwX5ZGPAYmKHAUy6cGEa5917feo8sd+x7t9eLN+CvkTp9h/KKrS6hWqoddD7++GMmTJjAK6+8woABA3juuecYNmwYmzZtIj4+/pj2v/32GzfccAOTJk3id7/7HVOmTGHkyJEsX76crl271siHEJH6w+mwEx8VQnxUyEnberwG2QUlHM4v5nB+CZmlr4dLg9Dh/BKyC0rILiwht8hNTqGb3EI3OYUlvo4Uit1eDrmLa+WXt8Nuw+Ww+4JP2avL6SDYacfltBNcOpjjjgrtgpx2nHYbTrsdp8NmjjvsBDlsOOw2gsqmO8ra2Qhy2HHYbTgdR8bL2pnLmW3tdhsOmw27jXLjNux2sNvM9dtL5zvsNj1DSSplGAZeo9wrBoaBOVBxHgZ4DQODk7cvm+YtO7gubW8eaHPMNKPsoLZ0etmyHq9Rbj34DtS9RsW2ZQfS5duWHXwf3f7INo+EgiOfs3S+99i2nnLTytp6vEct5wsTVGh7zDYqO8gvt76jD/i9pWGjYtuj5pdOk9rhtJu/V8t+/5rv7b7pDt+0Y9877XbsdnDa7SdoZ8dh57jrPLqNo3R95f8uOMv+tjiObKfs74s53UZCFf42B5Jq36MzYMAA+vXrx4svvgiA1+slKSmJP/7xjzz00EPHtL/uuuvIy8vjm2++8U0bOHAgPXv25JVXXqnSNnWPjojUNI/XILfIXRqASnwhKLuwhPxiDwXFHgpKPOQXuyko9lJQ4qag2GPOK/FUMu6msMRLsefk9yDVVWb4OTYI+YJS6XyHzQxGZX9obTawYZ7RK4tL5jRzHpXNKzffVjaRsvUcf33YyrexVbq+MmV//cxD76OmlfvLWDb/SHvKzzz+Oso3K51YcdpR7cpt1Dh2ki8UVAgD5cNBaftKQ0S5aV6jbL1HhZTjrKMspBwTXKRBKvvyo+z3QNn//SPTqDDNN+6bxjHTjrvOst81dhuOcr9rjkyruN1jpx35HVVZsDg6TFQWFKoaOI5d5kgbuzrXqXG1co9OcXExy5YtY+LEib5pdrudoUOHsmDBgkqXWbBgARMmTKgwbdiwYUyfPv242ykqKqKoqMj3Pjs7uzplioiclMNuIzo0iOjQICC0xtbr9phhp9jtpchd9uqhqNz7o+cVu81likrKXj0UebyUuM1LK0rKXT9ddq10iefINdZl08rml5S71vp4833feJceMFeFx2tgngfTUa7UjPKh1V4+3JaOlwXl8getZW3LAnXZWUhf8C4dt5U7eK6wXOkZyvJtyw62j16H3V62XOmBtu2oZY9ezl6xDlvZAXi55coO4m2Vba90HTZbuTOuR30WW7n2jvJnYMsO7kvrPn4gOGq5cl9KVAwaFcNH+Z+jSF1RraBz8OBBPB4PCQkJFaYnJCSwcePGSpdJTU2ttH1qaupxtzNp0iSeeOKJ6pQmIhIQnKX35oS5rK6k6sq+oT9yac2R92WXwZRdVuNr4y0flI5cNlT+8pzyy/vOFBw5BVJhmuF7X+7MxzGXNlWcX3ZWwqhkXUfaHDkbUzav/HFa+bM+Rys7oCt/1uh4y9kqLHek1bHLVb7uCuvyrfPYBe2lZ7HKDnh9Z7ZsJ5hWuk576Yp97SrMP7Js+YNpyi1bvj22ymqxYbNz7LRKtqUDZhHxh4DsdW3ixIkVzgJlZ2eTlJRkYUUiIvWXrfTbaj27SERE6pNqBZ24uDgcDgdpaWkVpqelpZGYmFjpMomJidVqDxAcHExwcHB1ShMREREREfGpVt+nLpeLPn36MHPmTN80r9fLzJkzGTRoUKXLDBo0qEJ7gBkzZhy3vYiIiIiIyOmq9qVrEyZMYMyYMfTt25f+/fvz3HPPkZeXx6233grA6NGjad68OZMmTQJg3LhxnHPOOTz77LOMGDGCqVOnsnTpUl577bWa/SQiIiIiIiKlqh10rrvuOg4cOMBjjz1GamoqPXv25IcffvB1OLB7927s9iMnigYPHsyUKVP461//ysMPP0z79u2ZPn26nqEjIiIiIiK1ptrP0bFCVlYWMTExpKSk6Dk6IiIiIiINWFlHZZmZmURHRx+3XUD2una0nJwcAPW8JiIiIiIigJkRThR06sQZHa/Xy759+4iMjLS83/2yBKmzS1JV2mekurTPSHVpn5Hq0j4j1RVI+4xhGOTk5NCsWbMKt8wcrU6c0bHb7bRo0cLqMiqIioqy/B9Z6hbtM1Jd2mekurTPSHVpn5HqCpR95kRncspUq3tpERERERGRukBBR0RERERE6h0FnWoKDg7m8ccfJzg42OpSpI7QPiPVpX1Gqkv7jFSX9hmprrq4z9SJzghERERERESqQ2d0RERERESk3lHQERERERGRekdBR0RERERE6h0FHRERERERqXcUdEREREREpN5R0KmGl156idatWxMSEsKAAQNYvHix1SWJRSZNmkS/fv2IjIwkPj6ekSNHsmnTpgptCgsLGTt2LI0bNyYiIoKrrrqKtLS0Cm12797NiBEjCAsLIz4+nvvvvx+32+3PjyIWeeqpp7DZbIwfP943TfuMHG3v3r3cdNNNNG7cmNDQULp168bSpUt98w3D4LHHHqNp06aEhoYydOhQtmzZUmEdGRkZjBo1iqioKGJiYrj99tvJzc3190cRP/B4PDz66KMkJycTGhpK27Zt+cc//kH5Dna1zzRs8+bN49JLL6VZs2bYbDamT59eYX5N7R+rV6/mrLPOIiQkhKSkJJ5++una/miVM6RKpk6darhcLuOtt94y1q1bZ9x5551GTEyMkZaWZnVpYoFhw4YZb7/9trF27Vpj5cqVxvDhw42WLVsaubm5vjZ33323kZSUZMycOdNYunSpMXDgQGPw4MG++W632+jatasxdOhQY8WKFcZ3331nxMXFGRMnTrTiI4kfLV682GjdurXRvXt3Y9y4cb7p2mekvIyMDKNVq1bGLbfcYixatMjYvn278eOPPxpbt271tXnqqaeM6OhoY/r06caqVauMyy67zEhOTjYKCgp8bS6++GKjR48exsKFC41ffvnFaNeunXHDDTdY8ZGklj355JNG48aNjW+++cbYsWOH8emnnxoRERHG888/72ujfaZh++6774xHHnnE+OKLLwzAmDZtWoX5NbF/ZGVlGQkJCcaoUaOM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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.figure(figsize=(10, 5))\n", "plt.subplot(211)\n", "plt.plot(r[:, 0], label='r')\n", "plt.plot(theta[:, 0], label='theta')\n", "plt.legend()\n", "plt.subplot(212)\n", "plt.plot(w[:, 0, 0], label=\"$w_1$\")\n", "plt.plot(w[:, 0, 1], label=\"$w_2$\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice how the first weight increases when r is higher than theta (LTP), but decreases afterwards (LTD). Unintuitively, the input neuron with the highest activity sees its weight decreased at the end of the stimulation." ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.13.0" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }