Skip to content

Instantly share code, notes, and snippets.

@JnBrymn
Created March 18, 2021 05:15
Show Gist options
  • Save JnBrymn/e3894376e4b4423911747cc8565a5cf3 to your computer and use it in GitHub Desktop.
Save JnBrymn/e3894376e4b4423911747cc8565a5cf3 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# EARRRL - The Estimated Average Recent Request Rate Limiter\n",
"\n",
"Here are the corresponding blog posts:\n",
"* [Basic concept and practical implementation and usage](http://blog.jnbrymn.com/2021/03/18/estimated-average-recent-request-rate-limiter.html)\n",
"* [Mathematical analysis](http://blog.jnbrymn.com/2021/03/18/estimated-average-recent-request-rate-limiter-math.html)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"from pylab import rcParams\n",
"import numpy as np\n",
"plt.style.use('seaborn-whitegrid')\n",
"rcParams['figure.figsize'] = 10, 5\n",
"font = {'family' : 'normal',\n",
" 'weight' : 'bold',\n",
" 'size' : 12}\n",
"\n",
"matplotlib.rc('font', **font)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# NOTE\n",
"I called EARRRL as CEWMA initially (Continuous Exponentially Weighted Moving Average)... and now I'm too lazy to fix it."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import time\n",
"import math\n",
"\n",
"class CEWMA:\n",
" def __init__(self, halflife):\n",
" self.N = 0\n",
" self.T = 0\n",
" self.lambd = -math.log(0.5)/halflife\n",
" \n",
" def update(self, num_hits, now_timestamp):\n",
" delta_t = self.T - now_timestamp\n",
" self.R = num_hits + self.N*math.exp(self.lambd*delta_t)\n",
" self.T = now_timestamp\n",
" \n",
" def evaluate(self, now_timestamp):\n",
" delta_t = self.T - now_timestamp\n",
" return self.N*self.lambd * math.exp(self.lambd*delta_t)\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def hit_train(start_time, delta_t, end_time):\n",
" \"\"\"returns list of (hit_count, time)\"\"\"\n",
" return [start_time+delta_t*i for i in range(math.ceil((end_time-start_time)/delta_t))]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[10, 13, 16, 19]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hit_train(start_time=10, delta_t=3, end_time=20)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def simulate_cewma_value(cewma, hit_times, sim_end_t):\n",
" sim_delta_t = 0.01\n",
" i = 0\n",
" t = 0\n",
" times = []\n",
" values = []\n",
" while True :\n",
" if t > sim_end_t:\n",
" break\n",
" if len(hit_times) > i and hit_times[i] <= t:\n",
" cewma.update(1, hit_times[i])\n",
" i += 1\n",
" times.append(t)\n",
" values.append(cewma.evaluate(t))\n",
" t += sim_delta_t\n",
" return times, values"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"findfont: Font family ['normal'] not found. Falling back to DejaVu Sans.\n",
"findfont: Font family ['normal'] not found. Falling back to DejaVu Sans.\n",
"findfont: Font family ['normal'] not found. Falling back to DejaVu Sans.\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x360 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def multi_simulate_cewma_value(halflife):\n",
" start_time=50\n",
" end_time=200\n",
" def _simulate(delta_t):\n",
" return simulate_cewma_value(\n",
" cewma=CEWMA(halflife),\n",
" hit_times=hit_train(\n",
" start_time=start_time,\n",
" delta_t=delta_t, \n",
" end_time=end_time,\n",
" ), \n",
" sim_end_t=300,\n",
" )\n",
"\n",
" fig = plt.figure()\n",
" t, v = _simulate(delta_t=0.1)\n",
" plt.plot(t,v,'r')\n",
"\n",
" t, v = _simulate(delta_t=1)\n",
" plt.plot(t,v,'g')\n",
"\n",
" t, v = _simulate(delta_t=10)\n",
" plt.plot(t,v,'b')\n",
" \n",
" plt.plot([end_time,end_time], [0,10],'k')\n",
" plt.plot([end_time+halflife,end_time+halflife], [0,10],'k:')\n",
" plt.plot([start_time,start_time], [0,10],'k')\n",
" plt.plot([start_time+halflife,start_time+halflife], [0,10],'k:')\n",
" \n",
" plt.text(start_time-8, 5, 'requests start', rotation='vertical', verticalalignment='center')\n",
" plt.text(start_time+halflife+3, 5, '1 halflife later', rotation='vertical', verticalalignment='center')\n",
" plt.text(end_time-8, 5, 'requests end', rotation='vertical', verticalalignment='center')\n",
" plt.text(end_time+halflife+3, 5, '1 halflife later', rotation='vertical', verticalalignment='center')\n",
" \n",
" plt.legend(['10 req/s','1 req/s','0.1 req/s', ])\n",
" plt.title(f'Simulating periodic input (EARRRL halflife={halflife})')\n",
" fig.axes[0].set_xlabel('time (s)')\n",
" fig.axes[0].set_ylabel('EARRRL estimated request rate')\n",
" \n",
"multi_simulate_cewma_value(1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### compare with windowed rate limiting"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"class CEWMARateLimiter:\n",
" def __init__(self, halflife, rate_limit):\n",
" self.cewma = CEWMA(halflife)\n",
" self.rate_limit = rate_limit\n",
" \n",
" def update(self, now_time):\n",
" self.cewma.update(1,now_time)\n",
" \n",
" def rate_limited(self, now_time):\n",
" return self.cewma.evaluate(now_time) > self.rate_limit\n",
" \n",
"class WindowRateLimiter:\n",
" def __init__(self, window_size, rate_limit):\n",
" self.hit_limit = rate_limit*window_size\n",
" self.hit_count = 0\n",
" self.window_size = window_size\n",
" self.next_window_start = 0\n",
" \n",
" def update(self, now_time):\n",
" if now_time > self.next_window_start:\n",
" # reset\n",
" self.hit_count = 0\n",
" while self.next_window_start < now_time:\n",
" self.next_window_start += self.window_size\n",
" self.hit_count += 1\n",
" \n",
" def rate_limited(self, now_time):\n",
" return self.hit_count > self.hit_limit"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def simulate_rate_limiter(rate_limiter, hit_times, sim_end_t):\n",
" sim_delta_t = 0.01\n",
" i = 0\n",
" t = 0\n",
" times = []\n",
" request_counts = []\n",
" allowed_counts = []\n",
" request_count = 0\n",
" allowed_count = 0\n",
" while True :\n",
" if t > sim_end_t:\n",
" break\n",
" if len(hit_times) > i and hit_times[i] <= t:\n",
" now_time = hit_times[i]\n",
" request_count += 1\n",
" if not rate_limiter.rate_limited(now_time):\n",
" allowed_count += 1\n",
" rate_limiter.update(now_time)\n",
" i += 1\n",
" times.append(t)\n",
" request_counts.append(request_count)\n",
" allowed_counts.append(allowed_count)\n",
" t += sim_delta_t\n",
" return times, request_counts, allowed_counts"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def plot_rate_limiter(rate_limiter, title):\n",
" split_time = 150\n",
" t, request_counts, allowed_counts = simulate_rate_limiter(\n",
" rate_limiter=rate_limiter,\n",
" hit_times=hit_train(\n",
" start_time=0,\n",
" delta_t=0.6, \n",
" end_time=split_time,\n",
" ) + hit_train(\n",
" start_time=split_time,\n",
" delta_t=1.0, \n",
" end_time=300,\n",
" ),\n",
" sim_end_t=300,\n",
" )\n",
"\n",
" fig = plt.figure()\n",
" plt.plot(t,request_counts,'r')\n",
" plt.plot(t,allowed_counts,'b')\n",
" plt.plot([split_time,split_time], [0,400], 'k:')\n",
" plt.legend(['request count', 'allowed request'])\n",
" plt.text(70,240, 'rate = 1.67 (naughty)', horizontalalignment='center')\n",
" plt.text(230,140, 'rate = 1.0 (nice... but just barely)', horizontalalignment='center')\n",
" plt.title(title)\n",
" fig.axes[0].set_xlabel('time (s)')\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x360 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_rate_limiter(CEWMARateLimiter(20, 1), 'EARRRL (half-life=20, limit=1.0)')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x360 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_rate_limiter(WindowRateLimiter(20, 1), \"Windowed Rate Limiter (window size=20, limit=1.0)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# other plots"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"(-0.03, 1.0)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlUAAAFeCAYAAACsKersAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAABUbUlEQVR4nO3dd3hUVf7H8Xc6JAQICb23FMBQQjEqK0oQRKqIi9JRdhENqyICZu2LBVBE5afLKmJBBFlYUEAFXEERAUMVQhGkBIKY0BOSDMn8/jg7kwTSgEluyuf1PPeZmTt35n5nbiCfnHvuOW52u92OiIiIiFwXd6sLEBERESkLFKpEREREXEChSkRERMQFFKpEREREXEChSkRERMQFFKpEREREXEChSkRERMQFFKpEREREXEChSkSkFNq6dSt9+vShVatW9OvXjx07dlhdkki556YR1UVESpf09HRuv/12vLy8ePDBB/nnP/+Jh4cHq1atwtPT0+ryRMottVSJiJQy69at448//mDQoEEMHjyYAQMGcPz4cTZs2GB1aSLlmkKViEgpEx8fD0DNmjUBqFWrFgBHjx61rCYRUagSESmR9uzZw913303Hjh2ZN29evtuqF4dIyaBQJSJSAo0bN44//viDyMhIpkyZwpEjR5zP1atXD4ATJ04A8PvvvwNQv3794i9URJzUo1FEpISJj4/n8OHDjB49mgceeAAPDw/OnDlDgwYNAPjTn/5E9erVWbBgAf7+/ixatIjatWsTGRlpceUi5ZtaqkREShhHC1T16tUJCAjg9ddfJzw83Pm8t7c3M2fOpFKlSrz88stUq1aNmTNn6so/EYspVEmpM2nSJEaMGHFVrxk6dCgxMTFFU1Au3nrrLbp161Zs+yurXnvtNW666SZCQkJYvHix1eXk61p+LvOSkpICgJ+fX57bRERE8MUXX/DLL7+wdOlSWrdu7ZJ95yc1NZVbb72VkJAQ4uLiCtz+pZdeIiQkhFdeeaXM1bZt2zZCQkIICQlh9erV1/QeUvYoVInLLVq0iJYtW3LhwoUc6/v06ZPn+smTJxf6/WNiYpg5c6ZLas1uxIgRTJo0yeXvK9dm+/btzJ49mxdeeIEffviBnj17unwfrjzmrvy5TE5OBvIPVVb4+OOPOXHiBLfccgthYWE5nps9e7YzZJw9exaAUaNG4enpybx580hISLCkttzqckVtu3fvdt5v2bJlvvuS8kOhSlwuMjKSS5cu8fPPPzvXnTp1iv3791O9evUr1u/bt4+bbrqp0O/v7+9PlSpVXFpzeZKenm51CYVy6NAh3N3diYqKonr16lSoUKFQr7Pq87ny57IwLVXFLSMjw3kVYr9+/a54fufOnQA0bNjQ+T3UqlWLG2+8kfT0dD777LMiqctms+VbW251uaK2PXv2ABAQEEDt2rXz3ZeUHwpV4nJ169alQYMGOQYi/Omnn2jevDldu3a9Yr3dbs/Rwfbjjz+mR48e3HDDDdxxxx288847XLp0yfn85adZUlNTefrpp4mIiKBDhw4899xzvPbaa7mefps1axY333wzHTt25Mknn3S2CEyaNIkNGzawZMkS51+aGzduLFQ9aWlpPPvss879P/vss4X6xb5+/XqGDh1Kx44diYiIYMiQITmmGlm4cCERERGkpaXleN3s2bPp0qULmZmZhapv6NChPPXUU7zxxhvccsst3HbbbYXa/9V8twXVcDmbzcb06dPp3LkzrVq1omfPnnzxxRfO5ydNmsSTTz5JZmam83jk5Vo/3/Uc89xc/nP5888/M2jQINq2bUvbtm3p06cP33//fb7v4VDULVUPPvggISEhPPfccwBcuHCBiIgIQkJC2LJlCwDLli0jJCSEli1bcvz4cTZt2kRCQgIeHh7O7xjM2FghISF88803ABw+fNj5fe7YsYPbb78dgKVLl15XzfHx8c73nTVrFk8++SSdOnUiOjo619oKqgsodG07duxg2LBhtG7dmttvv50VK1Y4TzG2aNGiUPuS8kG9GqVIREZG5ghPGzZs4MYbb6R9+/a8/fbbOdYHBwcTFBQEmL5Iixcv5qmnniI0NJSDBw/y7LPPkpaWxqOPPprrvqZPn86aNWuYOnUqjRs3ZsmSJXz66adUq1Ytx3Zff/01d999Nx999BEJCQk8/vjj1KlTh0cffZSYmBiOHj1K9erVnX2vqlSpUqh6XnvtNb755hteffVVGjduzKJFi5g3bx6BgYH5fkcpKSncd999hIaGkpGRwdy5c3nwwQf5+uuvCQgI4M477+Qf//gHa9asyXHqa+nSpfTp0wd3d/dCf18rV66kd+/ezJ07l4yMjELtv7Df7bUcs9dff53Fixfz3HPPERoaytdff82ECRMICgoiMjKSmJgYwsLC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mv0X5ru9lhoqVqzI0KFDefPNN50tml9//TVr1qzhgw8+KOzhyldhv99rOeaFcfjwYRYuXMhtt91G7dq1OXnyJLGxsbRo0aJQr09OTsbX1/eqP3dhOVrcLly4gLe3N4MGDXLuz9FRfcSIETlaKTt06MA///lPDhw4QEpKSo76vL29AdOp++6776Zhw4bMmDEDyArhtWrVomHDhtdUb/YxoXILVXnVll9dhaktMjISLy8vbDYbf/vb36hfvz7Hjh1ztnZmP54F7UvKBw2pIEWmQ4cOeHl5kZ6eTkREhHN95cqVCQsLIzk5+YrxqR5++GEmT57MwoUL6du3L/fffz9z587N96+/J554gttuu43x48czcOBAzp49S//+/a/6r/xRo0YREBBA3759iYyMZMuWLYWq54knniAqKoonn3ySgQMHcv78eQYPHpzvvtzd3Zk5cyZHjhyhT58+TJo0ieHDh1O9evUrtg0NDSUsLIy4uDj69u173d/X1ey/MN/ttdTw2GOPMXDgQF566SVnS9y0adNcNnddYT/ftR7zglSsWJHDhw/z+OOP0717d6Kjo2nbti3PPPNMoV6fnJxcpGNUZT+N2atXLwIDA/Hw8HCGzoCAAPr375/jNZGRkdSoUYNLly5d0V9wwoQJOU6DZT+tvmbNGoArfnavRkGhKq/a8qurMLU5glHTpk0Bc5rRMQwF5AxVBe1Lygc3u468lEHDhg1zXh4vrqXvtuj16dOHjIwMli9fbnUpOcyePZvXXnuNzp0789577xW4/YkTJ+jatSvu7u58/fXX1KlTp1zWJuWHWqqk1Nu7dy9Llizht99+Y9++fUybNo2NGzcycOBAq0sr9fTdFp+vvvqKFStWABT6KsPiNmzYMGrWrMn333/vHFE8P3PmzOHSpUsMHjy4yENLSa5Nyg+1VEmpt2/fPv7+979z4MABMjMzadKkCQ899BBRUVFWl1bq6bstPn//+99ZvXo10dHRvPDCCzz44IOF7sMlIiWDQpWISAkQHx/PkCFDSEhIoHXr1rz//vvOoQJEpHRQqBIRKSHS09P5/fffqVevXqHGXsvN22+/zQcffED//v3p0qUL48ePp1GjRrz//vs5BrsUEddTnyoRkRLC29ub+vXr5xuobrjhBudkvdmXxYsXk56ezvr161m7di0nTpzgpZdeYsGCBdx5552sXLmy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6RJvvfWWFaWKiIiIiylUuYDtf7Nw/uc//yElJYVevXoV+JpWrVrRqFEjvv76a05nn61WRERESiWFqmsQEhJCSEgIc+fO5fbbb6dHjx4AfPfddwB06NABMK1UkydPBmDTpk2EhIRw++23O9+nQ4cO2Gy2Ak8VioiISMlXasap+ugjmDPn2l6bktIAX9+Ctxs1CoYNK/z7zpgxgx49euDzv8nG9u7dC0DTpk0BaNasGTfffDPr16+nZs2adO/enSpVqjhf79hu9+7d3HXXXYXfsYiIiJQ4pSZUlURPP/0099xzj/PxuXPnAPDz8wMgPDycXr16sX79eho2bEhMTEyO11eqVCnH60RERKT0KjWhatiwq2tFyi4u7ghhVzuPRSG0a9cux2N/f39Onz5NcnJyjhapvFy4cMH5OhERESnd1KfqOnh7e+d4HBISAsCBAwec69z/N/FWZi4zpTq2a9GiRVGVKCIiIsVEocqFbrvtNgA2b97sXFe7dm0Adu3axXPPPcfChQudz23evBkvLy/n8AsiIiJSeilUuVDfvn3x9fXlyy+/dK7r0KEDvXr1wt3dnfnz57NmzRoAfvnlFw4dOkT37t2pVq2aVSWLiIiIi5SaPlUlieMqv8sFBAQwYsQI/u///o8ff/yRm266CXd3d1577bUrtp07dy6enp5ER0cXdbkiIiKlS2YmbqmpVldx1dRS5WJ/+9vf2Lt3b4Gn9KZPn86uXbto1KhR8RQmIiJSGqSmws6dVNi1CzIyrK7mqihUiYiISMlgs8HAgXDmDLaGDcHDw+qKropO/4mIiIj1MjJgyBD48kto3pxLVataXdFVU0uViIiIWCszEx54ABYuhOnToU4dqyu6JgpVIiIiYh27HR55BD78EJ5/HsaPt7qia6ZQJSIiItaw202IeucdePJJePppqyu6LgpVIiIiUvwcgWrGDBg3Dl55BdzcrK7quihUiYiISPGy2+GJJ7IC1RtvlPpABQpVxWLRokWEhITw+eef57vdjBkzCAkJYePGjcVUmYiISDGz22HCBHj9dYiOLjOBChSqitylS5d4++23CQgIoG/fvgBs3LiRkJAQbr/99hzbDh06FE9PT2bMmGFFqSIiIkXLbjd9p157zXROnzmzzAQqUKgqct999x0JCQnccccdeHt757ttUFAQnTp1YuvWrezbt6+YKhQRESkG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PtSxsXzR8S5fdLzLFx3vImCzwYQJplP6LbfAokVQs6alJXXp0oWUlBQ2bdqU6/Pt2rUjJSUFgICAANq2bUu7du1o27YtN9xwA97e3kVWW365RSNzioiIlFcnTphTfN9/D+PGmQE9LW7tKYyff/6Zffv25eik/u233+Lm5oanpyctW7bks88+K/a6FKpERETKow0bzJQzp0/DJ5+YyZFLCXd3d0JDQwkNDWXw4MHs3buXlStXMn/+fM6ePVuoqfSKgkKViIhIeWK3w6xZ8PjjUL++CVetW1td1VXZtGkTW7ZsYcuWLWzbto3z588DZkYXMKHLCgpVIiIi5cW5c6Yz+uefw113mfGnAgKsruqqDRs2DDc3N2eIqlixYo4r/9pa1MleoUpERKQ82L7dnO777Td49VV44okSOf5UYQQFBREREeEMUS1atLB0ehoHhSoREZGyzG6H994zkyAHBsJ335mr/EqxH374weoScqVQJSIiUladPWumm5k/H+64w3RIr17d6qpc4vfff2fmzJmsX7+eU6dOERAQQOfOnYmOjqZWrVqW1KRQJSIiUhZt3Aj33QdHjsA//gGTJ5fa032XO3HiBPfccw9JSUnOflUnT55k8eLFrF27ls8//5zatWsXe10KVSIiImVJZiZMnWrm7atb14xBFRlpdVUuNXPmTBITE2nQoAF9+vShevXq/PHHH3zxxRccPnyYt956i5deeqnY61KoEhERKSuOH4dhw2DNGjOo5z//CVWrWl2Vy61fv55GjRqxePFifH19netHjRrF3Xffzffff29JXWWjHVBERKS8+/xzuOEGM+7Ue+/BZ5+VyUAFcOrUKSIiInIEKgBfX18iIiI4ffq0JXUpVImIiJRmZ8/C0KGmZapZM9i6FR54ANzcrK6syAQEBLBlyxZSU1NzrE9NTWXLli0EWDT2lk7/iYiIlFZr15rTfceOwXPPwVNPlYq5+67XLbfcwpIlS+jfvz+9evWievXqJCYmsnz5cg4dOkS/fv0sqUuhSkREpLRJSYG//x3eeMO0Tq1fD506WV1VsRk3bhxr167lt99+4+2333aut9vtBAQEEB0dbUldOv0nIiJSmvz4I7RpAzNmwJgx5nRfOQpUALVr12bRokX069ePwMBAPDw8CAwMpF+/fixatIg6depYUpdaqkREREqDixfhmWfgtdegQQNz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xODp6cnKlSs5fPgwbdq0YeLEiSU+UEE5aqkSERERKUrlZkgFERERkaKkUCUiIiLiAgpVIiIiIi6gUCUiIiLiAgpVIiIiIi6gUCUiIiLiAgpVIlKiHD9+nLZt25KRkVEs+/vss8+YMmVKgdtFR0ezdu3aYqhIREorhSoRsdTtt9/Ojz/+6Hxcp04dtm7dioeHR5HvOz09nXfeeYcHH3ywwG1Hjx7NzJkzi7wmESm9FKpEpNxas2YNTZo0oWbNmgVuGx4ezoULF5zzkImIXE6hSkQsM2HCBI4fP86YMWNo27Yt//rXv4iPjyckJIRLly4BMHToUGbMmMGgQYNo27YtY8aM4fTp04wfP5527doxYMAA4uPjne954MABRo4cSceOHenevTsrVqzIc//r1q2jQ4cOzsdpaWk88cQTdOrUifbt2zNgwAASExOdz3fs2FGnAEUkTwpVImKZadOmUadOHd599122bt3K6NGjc91uxYoVTJ06lXXr1nHkyBEGDRrEgAED2LRpE02bNmXWrFmAmTh91KhR9OrVix9//JEZM2bw/PPP8+uvv+b6vvv27aNx48bOx0uWLOHChQt89913bNy4keeff54KFSo4n2/atCl79uxx4TcgImWJQpWIlHh33303DRo0wN/fnz/96U/Ur1+fm266CU9PT3r06MHu3bsB+O6776hbty4DBgzA09OTFi1a0L17d7766qtc3/f8+fP4+fk5H3t6enLmzBkOHz6Mh4cHrVq1olKlSs7n/fz8OHfuXNF+WBEptTytLkBEpCBBQUHO+z4+PjkeV6hQgZSUFACOHTvGjh07aN++vfP5jIwM+vTpk+v7Vq5cmeTkZOfjvn37cuLECR5//HHOnTtHnz59eOyxx/Dy8gIgOTmZypUru/SziUjZoVAlImVG7dq16dChAx988EGhtg8JCeHQoUPOx15eXjzyyCM88sgjxMfH85e//IXGjRszcOBAwPTXCg0NLYrSRaQM0Ok/EbFUUFAQR48edcl7denShUOHDvGf//wHm82GzWZjx44dHDhwINftb731VjZv3ux8/NNPP7F3714yMjKoVKkSnp6euLtn/Te5efNm/vSnP7mkVhEpexSqRMRSf/nLX3jnnXdo374977///nW9V6VKlXj//fdZsWIFnTt35pZbbmH69Omkp6fnuv1tt93GwYMH+f333wFITExk3LhxRERE0LNnTzp27Ejfvn0B2LFjB76+voSHh19XjSJSdrnZ7Xa71UWIiFhlwYIF/Prrr8TExOS7XXR0NPfccw+33nprMVUmIqWNQpWIiIiIC+j0n4iIiIgLKFSJiIiIuIBClYiIiIgLKFSJiIiIuIBClYiIiIgLKFSJiIiIuIBClYiIiIgL/D/ffU2xKAEI0gAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 720x360 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"lambd = 0.5\n",
"tmin = -8\n",
"t = np.linspace(tmin,0,100)\n",
"w = lambd * np.exp(lambd*t)\n",
"r = t*0.0+0.6 - t*(t+5)*0.01 -t*(t+5)*(t-5)*0.002\n",
"\n",
"fig = plt.figure()\n",
"\n",
"\n",
"plt.plot(t,r,'b')\n",
"plt.plot(t,w,'r')\n",
"\n",
"\n",
"plt.plot([0,0],[-0.02,1],'k')\n",
"plt.plot([tmin,0.2],[0,0],'k')\n",
"\n",
"plt.text(0.1,0.1,'TIME = NOW', rotation='vertical')\n",
"plt.legend([ 'r(t)','w(t)'])\n",
"plt.title(\"Weighted average of rate is $\\int_{-\\infty}^{0} w(t) \\cdot r(t)\\:dt$\")\n",
"\n",
"\n",
"ax = fig.axes[0]\n",
"ax.set_xlabel('time (s)')\n",
"ax.set_ylim(-0.03,1)"
]
}
],
"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.8.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment