Last active
July 9, 2021 12:52
-
-
Save rifazn/d5b2244f8ccc4b9423b7f1482e0ec68c to your computer and use it in GitHub Desktop.
Assignment 3 Part A for Simulation & Modeling Lab (UIU)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"id": "editorial-instrument", | |
"metadata": {}, | |
"source": [ | |
"# CSI 424, Simulation & Modeling Lab, Sec: B\n", | |
"\n", | |
"# Assignment 2 (Part A)\n", | |
"\n", | |
"## Using Monte Carlo simulation, find the value of PI and area of the circle using the given circle and square.\n", | |
"\n", | |
"## By: Rifaz Nahiyan (011 152 054)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"id": "appropriate-toyota", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"import math\n", | |
"import numpy as np\n", | |
"import random" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"id": "novel-housing", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"UPPER_X = UPPER_Y = 5\n", | |
"LOWER_X = LOWER_Y = -5\n", | |
"AREA_SQUARE = abs(UPPER_X * UPPER_Y) * 4\n", | |
"RADIUS = 3\n", | |
"\n", | |
"random.seed(1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"id": "neither-seating", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 0, 'x-axis')" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 3 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<Figure size 720x864 with 3 Axes>", | |
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"697.07625pt\" version=\"1.1\" viewBox=\"0 0 241.679136 697.07625\" width=\"241.679136pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n <cc:Work>\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n <dc:date>2021-03-25T17:51:43.580624</dc:date>\n <dc:format>image/svg+xml</dc:format>\n <dc:creator>\n <cc:Agent>\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n </cc:Agent>\n </dc:creator>\n </cc:Work>\n </rdf:RDF>\n </metadata>\n <defs>\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n <g id=\"patch_1\">\n <path d=\"M 0 697.07625 \nL 241.679136 697.07625 \nL 241.679136 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n </g>\n <g id=\"axes_1\">\n <g id=\"patch_2\">\n <path d=\"M 42.620313 199.058824 \nL 234.479136 199.058824 \nL 234.479136 7.2 \nL 42.620313 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n </g>\n <g id=\"matplotlib.axis_1\">\n <g id=\"xtick_1\">\n <g id=\"line2d_1\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 68.782879 199.058824 \nL 68.782879 7.2 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_2\">\n <defs>\n <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"mc9eb201988\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n </defs>\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"68.782879\" xlink:href=\"#mc9eb201988\" y=\"199.058824\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_2\">\n <g id=\"line2d_3\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 103.666302 199.058824 \nL 103.666302 7.2 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_4\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"103.666302\" xlink:href=\"#mc9eb201988\" y=\"199.058824\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_3\">\n <g id=\"line2d_5\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 138.549724 199.058824 \nL 138.549724 7.2 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_6\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"138.549724\" xlink:href=\"#mc9eb201988\" y=\"199.058824\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_4\">\n <g id=\"line2d_7\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 173.433147 199.058824 \nL 173.433147 7.2 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_8\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"173.433147\" xlink:href=\"#mc9eb201988\" y=\"199.058824\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_5\">\n <g id=\"line2d_9\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 208.316569 199.058824 \nL 208.316569 7.2 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_10\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"208.316569\" xlink:href=\"#mc9eb201988\" y=\"199.058824\"/>\n </g>\n </g>\n </g>\n </g>\n <g id=\"matplotlib.axis_2\">\n <g id=\"ytick_1\">\n <g id=\"line2d_11\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 42.620313 172.896257 \nL 234.479136 172.896257 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_12\">\n <defs>\n <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m9d3059d074\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n </defs>\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"172.896257\"/>\n </g>\n </g>\n <g id=\"text_1\">\n <!-- −4 -->\n <g transform=\"translate(20.878125 176.695475)scale(0.1 -0.1)\">\n <defs>\n <path d=\"M 10.59375 35.5 \nL 73.1875 35.5 \nL 73.1875 27.203125 \nL 10.59375 27.203125 \nz\n\" id=\"DejaVuSans-8722\"/>\n <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n </defs>\n <use xlink:href=\"#DejaVuSans-8722\"/>\n <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_2\">\n <g id=\"line2d_13\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 42.620313 138.012834 \nL 234.479136 138.012834 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_14\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"138.012834\"/>\n </g>\n </g>\n <g id=\"text_2\">\n <!-- −2 -->\n <g transform=\"translate(20.878125 141.812053)scale(0.1 -0.1)\">\n <defs>\n <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n </defs>\n <use xlink:href=\"#DejaVuSans-8722\"/>\n <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_3\">\n <g id=\"line2d_15\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 42.620313 103.129412 \nL 234.479136 103.129412 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_16\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"103.129412\"/>\n </g>\n </g>\n <g id=\"text_3\">\n <!-- 0 -->\n <g transform=\"translate(29.257813 106.928631)scale(0.1 -0.1)\">\n <defs>\n <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n </defs>\n <use xlink:href=\"#DejaVuSans-48\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_4\">\n <g id=\"line2d_17\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 42.620313 68.245989 \nL 234.479136 68.245989 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_18\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"68.245989\"/>\n </g>\n </g>\n <g id=\"text_4\">\n <!-- 2 -->\n <g transform=\"translate(29.257813 72.045208)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-50\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_5\">\n <g id=\"line2d_19\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 42.620313 33.362567 \nL 234.479136 33.362567 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_20\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"33.362567\"/>\n </g>\n </g>\n <g id=\"text_5\">\n <!-- 4 -->\n <g transform=\"translate(29.257813 37.161786)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-52\"/>\n </g>\n </g>\n </g>\n <g id=\"text_6\">\n <!-- y-axis -->\n <g transform=\"translate(14.798438 117.822381)rotate(-90)scale(0.1 -0.1)\">\n <defs>\n <path d=\"M 32.171875 -5.078125 \nQ 28.375 -14.84375 24.75 -17.8125 \nQ 21.140625 -20.796875 15.09375 -20.796875 \nL 7.90625 -20.796875 \nL 7.90625 -13.28125 \nL 13.1875 -13.28125 \nQ 16.890625 -13.28125 18.9375 -11.515625 \nQ 21 -9.765625 23.484375 -3.21875 \nL 25.09375 0.875 \nL 2.984375 54.6875 \nL 12.5 54.6875 \nL 29.59375 11.921875 \nL 46.6875 54.6875 \nL 56.203125 54.6875 \nz\n\" id=\"DejaVuSans-121\"/>\n <path d=\"M 4.890625 31.390625 \nL 31.203125 31.390625 \nL 31.203125 23.390625 \nL 4.890625 23.390625 \nz\n\" id=\"DejaVuSans-45\"/>\n <path d=\"M 34.28125 27.484375 \nQ 23.390625 27.484375 19.1875 25 \nQ 14.984375 22.515625 14.984375 16.5 \nQ 14.984375 11.71875 18.140625 8.90625 \nQ 21.296875 6.109375 26.703125 6.109375 \nQ 34.1875 6.109375 38.703125 11.40625 \nQ 43.21875 16.703125 43.21875 25.484375 \nL 43.21875 27.484375 \nz\nM 52.203125 31.203125 \nL 52.203125 0 \nL 43.21875 0 \nL 43.21875 8.296875 \nQ 40.140625 3.328125 35.546875 0.953125 \nQ 30.953125 -1.421875 24.3125 -1.421875 \nQ 15.921875 -1.421875 10.953125 3.296875 \nQ 6 8.015625 6 15.921875 \nQ 6 25.140625 12.171875 29.828125 \nQ 18.359375 34.515625 30.609375 34.515625 \nL 43.21875 34.515625 \nL 43.21875 35.40625 \nQ 43.21875 41.609375 39.140625 45 \nQ 35.0625 48.390625 27.6875 48.390625 \nQ 23 48.390625 18.546875 47.265625 \nQ 14.109375 46.140625 10.015625 43.890625 \nL 10.015625 52.203125 \nQ 14.9375 54.109375 19.578125 55.046875 \nQ 24.21875 56 28.609375 56 \nQ 40.484375 56 46.34375 49.84375 \nQ 52.203125 43.703125 52.203125 31.203125 \nz\n\" id=\"DejaVuSans-97\"/>\n <path d=\"M 54.890625 54.6875 \nL 35.109375 28.078125 \nL 55.90625 0 \nL 45.3125 0 \nL 29.390625 21.484375 \nL 13.484375 0 \nL 2.875 0 \nL 24.125 28.609375 \nL 4.6875 54.6875 \nL 15.28125 54.6875 \nL 29.78125 35.203125 \nL 44.28125 54.6875 \nz\n\" id=\"DejaVuSans-120\"/>\n <path d=\"M 9.421875 54.6875 \nL 18.40625 54.6875 \nL 18.40625 0 \nL 9.421875 0 \nz\nM 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 64.59375 \nL 9.421875 64.59375 \nz\n\" id=\"DejaVuSans-105\"/>\n <path d=\"M 44.28125 53.078125 \nL 44.28125 44.578125 \nQ 40.484375 46.53125 36.375 47.5 \nQ 32.28125 48.484375 27.875 48.484375 \nQ 21.1875 48.484375 17.84375 46.4375 \nQ 14.5 44.390625 14.5 40.28125 \nQ 14.5 37.15625 16.890625 35.375 \nQ 19.28125 33.59375 26.515625 31.984375 \nL 29.59375 31.296875 \nQ 39.15625 29.25 43.1875 25.515625 \nQ 47.21875 21.78125 47.21875 15.09375 \nQ 47.21875 7.46875 41.1875 3.015625 \nQ 35.15625 -1.421875 24.609375 -1.421875 \nQ 20.21875 -1.421875 15.453125 -0.5625 \nQ 10.6875 0.296875 5.421875 2 \nL 5.421875 11.28125 \nQ 10.40625 8.6875 15.234375 7.390625 \nQ 20.0625 6.109375 24.8125 6.109375 \nQ 31.15625 6.109375 34.5625 8.28125 \nQ 37.984375 10.453125 37.984375 14.40625 \nQ 37.984375 18.0625 35.515625 20.015625 \nQ 33.0625 21.96875 24.703125 23.78125 \nL 21.578125 24.515625 \nQ 13.234375 26.265625 9.515625 29.90625 \nQ 5.8125 33.546875 5.8125 39.890625 \nQ 5.8125 47.609375 11.28125 51.796875 \nQ 16.75 56 26.8125 56 \nQ 31.78125 56 36.171875 55.265625 \nQ 40.578125 54.546875 44.28125 53.078125 \nz\n\" id=\"DejaVuSans-115\"/>\n </defs>\n <use xlink:href=\"#DejaVuSans-121\"/>\n <use x=\"57.429688\" xlink:href=\"#DejaVuSans-45\"/>\n <use x=\"93.513672\" xlink:href=\"#DejaVuSans-97\"/>\n <use x=\"154.792969\" xlink:href=\"#DejaVuSans-120\"/>\n <use x=\"213.972656\" xlink:href=\"#DejaVuSans-105\"/>\n <use x=\"241.755859\" xlink:href=\"#DejaVuSans-115\"/>\n </g>\n </g>\n </g>\n <g id=\"line2d_21\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 51.341168 190.337968 \nL 225.75828 190.337968 \nL 225.75828 15.920856 \nL 51.341168 15.920856 \nL 51.341168 190.337968 \n\" style=\"fill:none;stroke:#0000ff;stroke-linecap:square;stroke-width:1.5;\"/>\n </g>\n <g id=\"line2d_22\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 86.224591 103.129412 \nL 86.434101 98.451657 \nL 86.853121 95.043573 \nL 87.481651 91.728908 \nL 88.319691 88.471193 \nL 89.367241 85.268757 \nL 90.624302 82.127663 \nL 92.090872 79.056717 \nL 93.766952 76.066098 \nL 95.652543 73.166912 \nL 97.747643 70.371057 \nL 99.947499 67.805372 \nL 102.356864 65.340571 \nL 104.870985 63.083662 \nL 107.594615 60.942911 \nL 110.423001 59.006775 \nL 113.356141 57.268721 \nL 116.394037 55.726404 \nL 119.536688 54.380832 \nL 122.784093 53.23588 \nL 126.031499 52.323766 \nL 129.38366 51.613367 \nL 132.735821 51.128276 \nL 136.087981 50.862219 \nL 139.544897 50.813743 \nL 143.001813 50.994025 \nL 146.353973 51.38955 \nL 149.706134 52.007458 \nL 153.058295 52.85595 \nL 156.305701 53.909041 \nL 159.448351 55.158931 \nL 162.486247 56.600254 \nL 165.419388 58.230182 \nL 168.247773 60.048726 \nL 170.971404 62.059297 \nL 173.590279 64.269675 \nL 175.999645 66.585971 \nL 178.304255 69.107406 \nL 180.399356 71.720369 \nL 182.389701 74.564117 \nL 184.170537 77.504012 \nL 185.741862 80.528045 \nL 187.103677 83.624713 \nL 188.255982 86.782928 \nL 189.198778 89.991946 \nL 189.932063 93.241292 \nL 190.455838 96.520706 \nL 190.770103 99.820081 \nL 190.874858 103.129412 \nL 190.874858 103.129412 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:1.5;\"/>\n </g>\n <g id=\"line2d_23\">\n <path clip-path=\"url(#pb96a490a0c)\" d=\"M 86.224591 103.129412 \nL 86.434101 107.807166 \nL 86.853121 111.215251 \nL 87.481651 114.529916 \nL 88.319691 117.78763 \nL 89.367241 120.990066 \nL 90.624302 124.131161 \nL 92.090872 127.202107 \nL 93.766952 130.192725 \nL 95.652543 133.091912 \nL 97.747643 135.887766 \nL 99.947499 138.453451 \nL 102.356864 140.918252 \nL 104.870985 143.175162 \nL 107.594615 145.315912 \nL 110.423001 147.252048 \nL 113.356141 148.990103 \nL 116.394037 150.532419 \nL 119.536688 151.877992 \nL 122.784093 153.022943 \nL 126.031499 153.935058 \nL 129.38366 154.645457 \nL 132.735821 155.130548 \nL 136.087981 155.396605 \nL 139.544897 155.445081 \nL 143.001813 155.264798 \nL 146.353973 154.869274 \nL 149.706134 154.251365 \nL 153.058295 153.402874 \nL 156.305701 152.349783 \nL 159.448351 151.099892 \nL 162.486247 149.658569 \nL 165.419388 148.028641 \nL 168.247773 146.210098 \nL 170.971404 144.199526 \nL 173.590279 141.989148 \nL 175.999645 139.672853 \nL 178.304255 137.151418 \nL 180.399356 134.538454 \nL 182.389701 131.694706 \nL 184.170537 128.754811 \nL 185.741862 125.730778 \nL 187.103677 122.634111 \nL 188.255982 119.475895 \nL 189.198778 116.266878 \nL 189.932063 113.017531 \nL 190.455838 109.738117 \nL 190.770103 106.438742 \nL 190.874858 103.129412 \nL 190.874858 103.129412 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:1.5;\"/>\n </g>\n <g id=\"patch_3\">\n <path d=\"M 42.620313 199.058824 \nL 42.620313 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n <g id=\"patch_4\">\n <path d=\"M 234.479136 199.058824 \nL 234.479136 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n <g id=\"patch_5\">\n <path d=\"M 42.620312 199.058824 \nL 234.479136 199.058824 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n <g id=\"patch_6\">\n <path d=\"M 42.620312 7.2 \nL 234.479136 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n </g>\n <g id=\"axes_2\">\n <g id=\"patch_7\">\n <path d=\"M 42.620313 429.289412 \nL 234.479136 429.289412 \nL 234.479136 237.430588 \nL 42.620313 237.430588 \nz\n\" style=\"fill:#ffffff;\"/>\n </g>\n <g id=\"matplotlib.axis_3\">\n <g id=\"xtick_6\">\n <g id=\"line2d_24\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 68.782879 429.289412 \nL 68.782879 237.430588 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_25\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"68.782879\" xlink:href=\"#mc9eb201988\" y=\"429.289412\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_7\">\n <g id=\"line2d_26\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 103.666302 429.289412 \nL 103.666302 237.430588 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_27\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"103.666302\" xlink:href=\"#mc9eb201988\" y=\"429.289412\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_8\">\n <g id=\"line2d_28\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 138.549724 429.289412 \nL 138.549724 237.430588 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_29\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"138.549724\" xlink:href=\"#mc9eb201988\" y=\"429.289412\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_9\">\n <g id=\"line2d_30\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 173.433147 429.289412 \nL 173.433147 237.430588 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_31\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"173.433147\" xlink:href=\"#mc9eb201988\" y=\"429.289412\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_10\">\n <g id=\"line2d_32\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 208.316569 429.289412 \nL 208.316569 237.430588 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_33\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"208.316569\" xlink:href=\"#mc9eb201988\" y=\"429.289412\"/>\n </g>\n </g>\n </g>\n </g>\n <g id=\"matplotlib.axis_4\">\n <g id=\"ytick_6\">\n <g id=\"line2d_34\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 42.620313 403.126845 \nL 234.479136 403.126845 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_35\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"403.126845\"/>\n </g>\n </g>\n <g id=\"text_7\">\n <!-- −4 -->\n <g transform=\"translate(20.878125 406.926064)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-8722\"/>\n <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_7\">\n <g id=\"line2d_36\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 42.620313 368.243422 \nL 234.479136 368.243422 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_37\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"368.243422\"/>\n </g>\n </g>\n <g id=\"text_8\">\n <!-- −2 -->\n <g transform=\"translate(20.878125 372.042641)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-8722\"/>\n <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_8\">\n <g id=\"line2d_38\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 42.620313 333.36 \nL 234.479136 333.36 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_39\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"333.36\"/>\n </g>\n </g>\n <g id=\"text_9\">\n <!-- 0 -->\n <g transform=\"translate(29.257813 337.159219)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-48\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_9\">\n <g id=\"line2d_40\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 42.620313 298.476578 \nL 234.479136 298.476578 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_41\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"298.476578\"/>\n </g>\n </g>\n <g id=\"text_10\">\n <!-- 2 -->\n <g transform=\"translate(29.257813 302.275796)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-50\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_10\">\n <g id=\"line2d_42\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 42.620313 263.593155 \nL 234.479136 263.593155 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_43\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"263.593155\"/>\n </g>\n </g>\n <g id=\"text_11\">\n <!-- 4 -->\n <g transform=\"translate(29.257813 267.392374)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-52\"/>\n </g>\n </g>\n </g>\n <g id=\"text_12\">\n <!-- y-axis -->\n <g transform=\"translate(14.798438 348.052969)rotate(-90)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-121\"/>\n <use x=\"57.429688\" xlink:href=\"#DejaVuSans-45\"/>\n <use x=\"93.513672\" xlink:href=\"#DejaVuSans-97\"/>\n <use x=\"154.792969\" xlink:href=\"#DejaVuSans-120\"/>\n <use x=\"213.972656\" xlink:href=\"#DejaVuSans-105\"/>\n <use x=\"241.755859\" xlink:href=\"#DejaVuSans-115\"/>\n </g>\n </g>\n </g>\n <g id=\"line2d_44\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 51.341168 420.568556 \nL 225.75828 420.568556 \nL 225.75828 246.151444 \nL 51.341168 246.151444 \nL 51.341168 420.568556 \n\" style=\"fill:none;stroke:#0000ff;stroke-linecap:square;stroke-width:1.5;\"/>\n </g>\n <g id=\"line2d_45\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 86.224591 333.36 \nL 86.434101 328.682245 \nL 86.853121 325.274161 \nL 87.481651 321.959496 \nL 88.319691 318.701781 \nL 89.367241 315.499345 \nL 90.624302 312.358251 \nL 92.090872 309.287305 \nL 93.766952 306.296686 \nL 95.652543 303.3975 \nL 97.747643 300.601646 \nL 99.947499 298.03596 \nL 102.356864 295.571159 \nL 104.870985 293.31425 \nL 107.594615 291.173499 \nL 110.423001 289.237364 \nL 113.356141 287.499309 \nL 116.394037 285.956992 \nL 119.536688 284.61142 \nL 122.784093 283.466468 \nL 126.031499 282.554354 \nL 129.38366 281.843955 \nL 132.735821 281.358864 \nL 136.087981 281.092807 \nL 139.544897 281.044331 \nL 143.001813 281.224614 \nL 146.353973 281.620138 \nL 149.706134 282.238046 \nL 153.058295 283.086538 \nL 156.305701 284.139629 \nL 159.448351 285.389519 \nL 162.486247 286.830842 \nL 165.419388 288.46077 \nL 168.247773 290.279314 \nL 170.971404 292.289885 \nL 173.590279 294.500263 \nL 175.999645 296.816559 \nL 178.304255 299.337994 \nL 180.399356 301.950957 \nL 182.389701 304.794706 \nL 184.170537 307.7346 \nL 185.741862 310.758634 \nL 187.103677 313.855301 \nL 188.255982 317.013517 \nL 189.198778 320.222534 \nL 189.932063 323.471881 \nL 190.455838 326.751295 \nL 190.770103 330.05067 \nL 190.874858 333.36 \nL 190.874858 333.36 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:1.5;\"/>\n </g>\n <g id=\"line2d_46\">\n <path clip-path=\"url(#pee408c5b0e)\" d=\"M 86.224591 333.36 \nL 86.434101 338.037755 \nL 86.853121 341.445839 \nL 87.481651 344.760504 \nL 88.319691 348.018219 \nL 89.367241 351.220655 \nL 90.624302 354.361749 \nL 92.090872 357.432695 \nL 93.766952 360.423314 \nL 95.652543 363.3225 \nL 97.747643 366.118354 \nL 99.947499 368.68404 \nL 102.356864 371.148841 \nL 104.870985 373.40575 \nL 107.594615 375.546501 \nL 110.423001 377.482636 \nL 113.356141 379.220691 \nL 116.394037 380.763008 \nL 119.536688 382.10858 \nL 122.784093 383.253532 \nL 126.031499 384.165646 \nL 129.38366 384.876045 \nL 132.735821 385.361136 \nL 136.087981 385.627193 \nL 139.544897 385.675669 \nL 143.001813 385.495386 \nL 146.353973 385.099862 \nL 149.706134 384.481954 \nL 153.058295 383.633462 \nL 156.305701 382.580371 \nL 159.448351 381.330481 \nL 162.486247 379.889158 \nL 165.419388 378.25923 \nL 168.247773 376.440686 \nL 170.971404 374.430115 \nL 173.590279 372.219737 \nL 175.999645 369.903441 \nL 178.304255 367.382006 \nL 180.399356 364.769043 \nL 182.389701 361.925294 \nL 184.170537 358.9854 \nL 185.741862 355.961366 \nL 187.103677 352.864699 \nL 188.255982 349.706483 \nL 189.198778 346.497466 \nL 189.932063 343.248119 \nL 190.455838 339.968705 \nL 190.770103 336.66933 \nL 190.874858 333.36 \nL 190.874858 333.36 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:1.5;\"/>\n </g>\n <g id=\"patch_8\">\n <path d=\"M 42.620313 429.289412 \nL 42.620313 237.430588 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n <g id=\"patch_9\">\n <path d=\"M 234.479136 429.289412 \nL 234.479136 237.430588 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n <g id=\"patch_10\">\n <path d=\"M 42.620312 429.289412 \nL 234.479136 429.289412 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n <g id=\"patch_11\">\n <path d=\"M 42.620312 237.430588 \nL 234.479136 237.430588 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n </g>\n <g id=\"axes_3\">\n <g id=\"patch_12\">\n <path d=\"M 42.620313 659.52 \nL 234.479136 659.52 \nL 234.479136 467.661176 \nL 42.620313 467.661176 \nz\n\" style=\"fill:#ffffff;\"/>\n </g>\n <g id=\"matplotlib.axis_5\">\n <g id=\"xtick_11\">\n <g id=\"line2d_47\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 68.782879 659.52 \nL 68.782879 467.661176 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_48\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"68.782879\" xlink:href=\"#mc9eb201988\" y=\"659.52\"/>\n </g>\n </g>\n <g id=\"text_13\">\n <!-- −4 -->\n <g transform=\"translate(61.411786 674.118438)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-8722\"/>\n <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_12\">\n <g id=\"line2d_49\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 103.666302 659.52 \nL 103.666302 467.661176 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_50\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"103.666302\" xlink:href=\"#mc9eb201988\" y=\"659.52\"/>\n </g>\n </g>\n <g id=\"text_14\">\n <!-- −2 -->\n <g transform=\"translate(96.295208 674.118438)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-8722\"/>\n <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_13\">\n <g id=\"line2d_51\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 138.549724 659.52 \nL 138.549724 467.661176 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_52\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"138.549724\" xlink:href=\"#mc9eb201988\" y=\"659.52\"/>\n </g>\n </g>\n <g id=\"text_15\">\n <!-- 0 -->\n <g transform=\"translate(135.368474 674.118438)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-48\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_14\">\n <g id=\"line2d_53\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 173.433147 659.52 \nL 173.433147 467.661176 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_54\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"173.433147\" xlink:href=\"#mc9eb201988\" y=\"659.52\"/>\n </g>\n </g>\n <g id=\"text_16\">\n <!-- 2 -->\n <g transform=\"translate(170.251897 674.118438)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-50\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_15\">\n <g id=\"line2d_55\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 208.316569 659.52 \nL 208.316569 467.661176 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_56\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"208.316569\" xlink:href=\"#mc9eb201988\" y=\"659.52\"/>\n </g>\n </g>\n <g id=\"text_17\">\n <!-- 4 -->\n <g transform=\"translate(205.135319 674.118438)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-52\"/>\n </g>\n </g>\n </g>\n <g id=\"text_18\">\n <!-- x-axis -->\n <g transform=\"translate(123.769256 687.796563)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-120\"/>\n <use x=\"59.179688\" xlink:href=\"#DejaVuSans-45\"/>\n <use x=\"95.263672\" xlink:href=\"#DejaVuSans-97\"/>\n <use x=\"156.542969\" xlink:href=\"#DejaVuSans-120\"/>\n <use x=\"215.722656\" xlink:href=\"#DejaVuSans-105\"/>\n <use x=\"243.505859\" xlink:href=\"#DejaVuSans-115\"/>\n </g>\n </g>\n </g>\n <g id=\"matplotlib.axis_6\">\n <g id=\"ytick_11\">\n <g id=\"line2d_57\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 42.620313 633.357433 \nL 234.479136 633.357433 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_58\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"633.357433\"/>\n </g>\n </g>\n <g id=\"text_19\">\n <!-- −4 -->\n <g transform=\"translate(20.878125 637.156652)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-8722\"/>\n <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_12\">\n <g id=\"line2d_59\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 42.620313 598.474011 \nL 234.479136 598.474011 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_60\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"598.474011\"/>\n </g>\n </g>\n <g id=\"text_20\">\n <!-- −2 -->\n <g transform=\"translate(20.878125 602.273229)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-8722\"/>\n <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_13\">\n <g id=\"line2d_61\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 42.620313 563.590588 \nL 234.479136 563.590588 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_62\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"563.590588\"/>\n </g>\n </g>\n <g id=\"text_21\">\n <!-- 0 -->\n <g transform=\"translate(29.257813 567.389807)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-48\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_14\">\n <g id=\"line2d_63\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 42.620313 528.707166 \nL 234.479136 528.707166 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_64\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"528.707166\"/>\n </g>\n </g>\n <g id=\"text_22\">\n <!-- 2 -->\n <g transform=\"translate(29.257813 532.506385)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-50\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_15\">\n <g id=\"line2d_65\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 42.620313 493.823743 \nL 234.479136 493.823743 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\n </g>\n <g id=\"line2d_66\">\n <g>\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.620313\" xlink:href=\"#m9d3059d074\" y=\"493.823743\"/>\n </g>\n </g>\n <g id=\"text_23\">\n <!-- 4 -->\n <g transform=\"translate(29.257813 497.622962)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-52\"/>\n </g>\n </g>\n </g>\n <g id=\"text_24\">\n <!-- y-axis -->\n <g transform=\"translate(14.798438 578.283557)rotate(-90)scale(0.1 -0.1)\">\n <use xlink:href=\"#DejaVuSans-121\"/>\n <use x=\"57.429688\" xlink:href=\"#DejaVuSans-45\"/>\n <use x=\"93.513672\" xlink:href=\"#DejaVuSans-97\"/>\n <use x=\"154.792969\" xlink:href=\"#DejaVuSans-120\"/>\n <use x=\"213.972656\" xlink:href=\"#DejaVuSans-105\"/>\n <use x=\"241.755859\" xlink:href=\"#DejaVuSans-115\"/>\n </g>\n </g>\n </g>\n <g id=\"line2d_67\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 51.341168 650.799144 \nL 225.75828 650.799144 \nL 225.75828 476.382032 \nL 51.341168 476.382032 \nL 51.341168 650.799144 \n\" style=\"fill:none;stroke:#0000ff;stroke-linecap:square;stroke-width:1.5;\"/>\n </g>\n <g id=\"line2d_68\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 86.224591 563.590588 \nL 86.434101 558.912834 \nL 86.853121 555.504749 \nL 87.481651 552.190084 \nL 88.319691 548.93237 \nL 89.367241 545.729934 \nL 90.624302 542.588839 \nL 92.090872 539.517893 \nL 93.766952 536.527275 \nL 95.652543 533.628088 \nL 97.747643 530.832234 \nL 99.947499 528.266549 \nL 102.356864 525.801748 \nL 104.870985 523.544838 \nL 107.594615 521.404088 \nL 110.423001 519.467952 \nL 113.356141 517.729897 \nL 116.394037 516.187581 \nL 119.536688 514.842008 \nL 122.784093 513.697057 \nL 126.031499 512.784942 \nL 129.38366 512.074543 \nL 132.735821 511.589452 \nL 136.087981 511.323395 \nL 139.544897 511.274919 \nL 143.001813 511.455202 \nL 146.353973 511.850726 \nL 149.706134 512.468635 \nL 153.058295 513.317126 \nL 156.305701 514.370217 \nL 159.448351 515.620108 \nL 162.486247 517.061431 \nL 165.419388 518.691359 \nL 168.247773 520.509902 \nL 170.971404 522.520474 \nL 173.590279 524.730852 \nL 175.999645 527.047147 \nL 178.304255 529.568582 \nL 180.399356 532.181546 \nL 182.389701 535.025294 \nL 184.170537 537.965189 \nL 185.741862 540.989222 \nL 187.103677 544.085889 \nL 188.255982 547.244105 \nL 189.198778 550.453122 \nL 189.932063 553.702469 \nL 190.455838 556.981883 \nL 190.770103 560.281258 \nL 190.874858 563.590588 \nL 190.874858 563.590588 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:1.5;\"/>\n </g>\n <g id=\"line2d_69\">\n <path clip-path=\"url(#peda842bcf6)\" d=\"M 86.224591 563.590588 \nL 86.434101 568.268343 \nL 86.853121 571.676427 \nL 87.481651 574.991092 \nL 88.319691 578.248807 \nL 89.367241 581.451243 \nL 90.624302 584.592337 \nL 92.090872 587.663283 \nL 93.766952 590.653902 \nL 95.652543 593.553088 \nL 97.747643 596.348943 \nL 99.947499 598.914628 \nL 102.356864 601.379429 \nL 104.870985 603.636338 \nL 107.594615 605.777089 \nL 110.423001 607.713225 \nL 113.356141 609.451279 \nL 116.394037 610.993596 \nL 119.536688 612.339168 \nL 122.784093 613.48412 \nL 126.031499 614.396234 \nL 129.38366 615.106633 \nL 132.735821 615.591724 \nL 136.087981 615.857781 \nL 139.544897 615.906257 \nL 143.001813 615.725975 \nL 146.353973 615.33045 \nL 149.706134 614.712542 \nL 153.058295 613.86405 \nL 156.305701 612.810959 \nL 159.448351 611.561069 \nL 162.486247 610.119746 \nL 165.419388 608.489818 \nL 168.247773 606.671274 \nL 170.971404 604.660703 \nL 173.590279 602.450325 \nL 175.999645 600.134029 \nL 178.304255 597.612594 \nL 180.399356 594.999631 \nL 182.389701 592.155883 \nL 184.170537 589.215988 \nL 185.741862 586.191955 \nL 187.103677 583.095287 \nL 188.255982 579.937072 \nL 189.198778 576.728054 \nL 189.932063 573.478708 \nL 190.455838 570.199294 \nL 190.770103 566.899919 \nL 190.874858 563.590588 \nL 190.874858 563.590588 \n\" style=\"fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:1.5;\"/>\n </g>\n <g id=\"patch_13\">\n <path d=\"M 42.620313 659.52 \nL 42.620313 467.661176 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n <g id=\"patch_14\">\n <path d=\"M 234.479136 659.52 \nL 234.479136 467.661176 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n <g id=\"patch_15\">\n <path d=\"M 42.620312 659.52 \nL 234.479136 659.52 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n <g id=\"patch_16\">\n <path d=\"M 42.620312 467.661176 \nL 234.479136 467.661176 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n </g>\n </g>\n </g>\n <defs>\n <clipPath id=\"pb96a490a0c\">\n <rect height=\"191.858824\" width=\"191.858824\" x=\"42.620313\" y=\"7.2\"/>\n </clipPath>\n <clipPath id=\"pee408c5b0e\">\n <rect height=\"191.858824\" width=\"191.858824\" x=\"42.620313\" y=\"237.430588\"/>\n </clipPath>\n <clipPath id=\"peda842bcf6\">\n <rect height=\"191.858824\" width=\"191.858824\" x=\"42.620313\" y=\"467.661176\"/>\n </clipPath>\n </defs>\n</svg>\n", | |
"image/png": "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ndtvP+f++MNvlhhE+74FZrhKaiNhe2TnXJVt/yJyEjp5336lIU379jBlih5mDxgABQW+E6Ws5lOmaLtC794wcSJst53vSF75arU+CLgIONQ597uPDCmrc2eYPFn/3b8/DebM8ZsnFT38MF2vuw723lu7YgY6WcDW8NVqfQ9QH3hHRApF5H5POVJT164662bjxvQcNQpeecV3otSwaZP2UT/1VH7LydHhoFbEgL9W647OudbOuezSbZiPHCmtfXv44APWtmsHhx2mExJk8jRBv/+ukxhefz2cdhpf3HijzhtuAOvZldqaN6fw9tvhn//UPdERR8CqVb5TJd+cObDHHvDCC3qpadw4XEArKcaDFXKK21SnDjzxBNx5py530qtX5qzw6ByMH69LoK5YAW+9pWOMbUHQ/2GFnA5EdBDAtGlQrZq2ap9/vvbTDtXixbq0y+mn68qJs2bBAQf4TpWyrJDTSb9++oY+80y44w7YdVdtCAvp6t2GDXr0seuu+sF1550waRK0aOE7WUqzQk4322+vXTqnTNGBAUOG6EJx6X6Zyjn9UOrRQ/tN9++vv9PIkVC9uu90Kc8KOV3tuy8UFsLtt+ulqh49tFFs3jzfybaOczqGODdXP5RAC/rNN6FNG7/Z0ogVcjqrWRPOO0+XC73kEl2HeddddbXBqVNT+5B7wwZ47jltyDrwQFiwQJd1+eILOOQQa9DaSlbIIWjSRLsrfvedzjwSiWiDWM+eWhwrVvhOuNnChTohXuvW8I9/6OW0Bx/U7w8frh9OZqtZIYekWTO48UZYulQv21SrphP87bijnkc/8ojOopFs33yjM3b06QMdOsDNN0Pfvrp8zrx5Oh47w/tKx8quqoeobl049VTdvvhCJyx46ik4+WS9v1cvvZSz555aUDvuGL/X3rRJjww+/FAHfRQUwKJFet8ee2gRDx0KrTJ7CHq8WSGHrkcP3RvecINeunrrLb2cc9ttm+cJa9lSz607ddKtTRvduzdtCo0b6+FujRpUW79eD4VXr9a1nn/9FZYs0W3RIv3QmD1bp/oFaNRID/FHjdKGrNatff0VgmeFnCmqVdM9ca9ecOml2pmksFDXovr0Uz3E/fhjLdJK7FPV8zdurJPenXiinpv36aNLyVazs7dksELOVHXqaAeTfv02f885bRhbtgxWrtR///qr7rlLSlj49de079oVGjTQUUcNG8LOO+uetl49b7+KsUI25YlA8+a6VWBJJEL7vLzkZjJRseMeYwJghWxMAKyQjQmAFbIxAbBCNiYAVsjGBMAK2ZgAWCEbEwArZGMCYIVsTACskI0JgBWyMQHwWsgiMkpEnIg09ZnDmHTnrZBFpDVwALDEVwZjQuFzj3wHurRqCk/1aEx68DIeWUSGAN8752bJFqY9FZF8IB8gKyuLSCRS6WOLirIBiEQKY8pXXFxc5eskk2WpWEhZ4vK+dc4lZAPeBb6sYBsCTAd2KH3cIqBpNM+Zk5PjqpKbq1usCgoKYn+SOLEsFQspS7TvW2CGq6Q2ErZHds7tX9H3RaQH0A4o2xu3Aj4TkT2ccx7majUm/SX90No59wXw/+eSEZFFQG/n3MpkZzEmFHYd2ZgAeJ98zznX1ncGY9Kd7ZGNCYAVsjEBsEI2JgBWyMYEwArZmABYIRsTACtkYwJghWxMAKyQjQmAFbIxAbBCNiYA3vtax9PUqXob61rcRUXZNGwYa5r4sCwVCylLYSFkZ8eWwfbIxniWnQ1Dh8b2HEHtkV2cZv+KRArJi3W3HieWpWKW5b/ZHtmYAFghGxMAK2RjAmCFbEwArJCNCYAVsjEBEBevazZJICIrgMVJeKmmQKpMz2tZKpaJWdo455pVdEdaFXKyiMgM51xv3znAslTGsvw3O7Q2JgBWyMYEwAq5YuN8ByjHslTMspRj58jGBMD2yMYEwArZmABYIRsTACtkYwJghWxMAKyQjQmAFbIxAbBCNiYAVsjGBMAK2ZgAWCEbEwArZGMCYIVsTACskI0JgBWyMQGwQjYmAFbIxgTACtmYAFghGxMAK2RjAmCFbEwArJCNCYAVsjEBsEI2JgBWyMYEwArZmABYIRsTACtkYwJghWxMAKyQjQmAFbIxAbBCNiYAVsjGBKCG7wBbo2nTpq5t27YJf521a9ey/fbbJ/x1omFZKpaJWWbOnLnSOdeswjudc2mz5eTkuGQoKChIyutEw7JULBOzADNcJbVhh9bGBMAK2ZgAWCEbEwArZGMCYIVsTADS6vLTlowbBxMmxP48RUXZNGwY+/PEg2WpWGhZhg6F/Pxt//mg9sgTJkBhoe8UxmydwsLYd0BB7ZEBsrMhEontOSKRQvLy8uKQJnaWpWIhZYnHrxHUHtmYTGWFbEwArJCNCYAVsjEBsEI2JgBWyMYEwArZmABYIRsTACtkYwJghWxMAKyQjQmAFbIxAbBCNiYA3gtZRKqLyOci8prvLMakK++FDJwDzPUdwph05rWQRaQVMAgY7zOHMenO98QCY4CLgPqVPUBE8oF8gKysLCJVzBpQVJQN6EDvWBQXF1f5OslkWSoWUpa4vG8rm7k+0RswGLi39N95wGtb+pktrTSRm6tbrDJxFYNoWJaKxZol2vctKbrSxN7AoSKyCHgaGCAiT3jMY0za8lbIzrlLnXOtnHNtgWOAKc6543zlMSadpUKrtTEmRr4buwBwzkWAiOcYxqQt2yMbEwArZGMCYIVsTACskI0JgBWyMQGwQjYmAFbIxgTACtmYAFghGxMAK2RjApASXTRNClm7Fr7/HlauhBUr4LffYMMGKCmh5dy5MH8+NGgA9etDo0bQujXsuCPUsLeST/bXz1QlJfDVV/DJJ/DppzBvHnzzDfzwQ6U/0qmyO6pXh5YtoWtXyM6Gnj2hTx/o0AFEEpHe/IUVcqZwDr79Ft56CyZNgkhE974ADRvCrrvCAQdAp07Qpg00awZNm+pet1YtqF6dDz7+mL379IHVq2HNGvjlF1i2DJYsge++gy+/hNtv1z04QKtWkJcHAwbAIYfo85mEsEIO3cKFMGGCbnNL5zjs1AlOPBH69YO+faFjx6j2nBsaNtQ9b8uWlT9o/Xp9nY8+goICePtteOIJqFZNi/rII+Hoo6FJk7j8ekZZIYdowwZ44QW45x744AP93j77wFlnwcEH6yFvotSqpYfWPXvCsGF6JFBYqHleeAGGD4fzztOCzs+H3Fw7/I4Da7UOyapVcP310LYt/POfsHw53HQTLF4MU6fCiBGJLeKKiECvXnDddbqnnjULzjgD3ngD9t1Xz6mfego2bkxursBYIYdgzRq44QZo1w6uuAK6d4fXXtMW5osvhp139p1ws912g7vu0ka1hx/WQ/GhQ6FLF3jsMdi0yXfCtGSFnM5KSuDBB6F9e7j8cth7b5gxQxuzBg3S89JUVbcunHwyzJkDL76oDW4nngi9e8OUKb7TpZ0U/p82VZo+XRuq8vP1ss/06fDqq5CT4zvZ1qlWDQ4/XC+DTZgAv/4K++0Hf/+7nhqYqFghp5s//oCLLtIW5x9/hCef1PPfPfbwnSw21arpef28eXqe/+qr+gH18MPaYGaqZIWcTgoL9dDz1lvh9NP1TT90aFitvrVrw2WXwezZej596qlw2GF6zdpUygo5XTz0EOy5px56vvEGPPCAdpMMVefOeh16zBh4801t3X7/fd+pUpYVcoqT9ev1cs1pp8Hf/qZ7qoMP9h0rOapVg3POgQ8/hO220w4lDzzgO1VKsg4hqey33+h54YVavJdeCtdeq/2aM03v3jBzpp5DDxumpxSDB/tOlVKskFPVsmVw0EE0+Ppr7TBxzDG+E/m1ww7wyitwwQUwZgy7zpgB/fvrntr4O7QWkdYiUiAiX4nIHBE5x1eWlLNgAey1FyxZwuybb7YiLlOjhp4z33UXzd5/XxvBfv/dd6qU4PMceSMwyjnXDdgTGC4i3TzmSQ2LFuloobVrYepUinbf3Xei1HP22cy74ILNHV+smL2uxvijc+6z0n+vAeYCVQyryQDLlmkRr14N77yjfZRNhZYPGgSPP67X0I8+evPQyQyVEq3WItIW6AVM9xzFn9WrYeBAnZnj7bfB9sRbduyxMHas9is//fSM7jjivbFLROoBLwDnOudWV3B/PpAPkJWVRSQSqfS5ioqyAYhECmPKVFxcXOXrxJuUlND9sstoPGcOs2++md/WrtWB/x6yVCUls3TtSpuTTqLdI4+wCFh00kn+smyjuLxvnXPeNqAmMAk4P5rH5+TkuKrk5uoWq4KCgtifZGuMHOkcODdunP8sVUjZLJs2OXfiifo3fOklv1m2QbTvW2CGq6Q2fLZaC/AQMNc5d7uvHN49/7wO6zvnHD08NFtPBO6/X+cJO/54vc6cYXyeI+8NHA8MEJHC0m2gxzzJt2CB9iXu2xduucV3mvRWu7YOh6xdWzuOrF/vO1FS+Wy1ft85J8653Zxz2aXbG77yJN3GjTrgoVo1eOYZnSLHxKZVK+2TXlgI//qX7zRJlRKt1hlpzBgdg3vffTprpYmPQw7RU5RbboH33vOdJmmskH349lu48ko49FC9Bmri6/bb9cPxjDMy5hDbCjnZnNOZJLfbTvfGIY0lThX16sHdd+tkf2PG+E6TFFbIyfbWW9rh46qrYKedfKcJ1+DBesRz9dXaYy5wVsjJtHGjjt7p2FHnmDaJNWaMdt289lrfSRLOCjmZHn9c11u6+WZrpU6Gdu30PPnhh/VSX8CskJOlpARuvFEHQhx+uO80meOyy6BmTT2VCZgVcrK88IKudnjZZdbAlUw77qizijz1FCxd6jtNwlghJ8stt8Auu9je2IeRI/VqwdixvpMkjBVyMsyYoXNOjRyZmXNu+da2LRxxBIwbt3kp2cBYISfDuHFQp46OnzV+jBwJv/2m/bEDZIWcaGvX6lIoxxyjE8gZP/r311bsxx/3nSQhrJAT7c03tZhPOMF3kswmAscdB+++C99/7ztN3FkhJ9rzz0OzZjq5vPHruOO00SvAw2sr5ET64w+dT+rww62RKxV07qzb66/7ThJ3VsiJ9MEHelh96KG+k5gygwbpmlLFxb6TxJUVciJNmaJ74n328Z3ElBk0SIc2Tp3qO0lcWSEn0pQpum5xyKsmppt+/fTD9cMPfSeJqy0WsojcIiINRKSmiEwWkRUiclwywqW1P//UjiC2N04tdetqf/dMK2TgAKfzTQ8GFgEdgQsTGSoIc+bosEWbaD719OsH06frQJZARFPIZZPYDwKec86tSmCecBQW6q0t+5J6srNh3Tr47jvfSeImmkJ+TUTmATnAZBFpBvyR2FgBmD1bD+M6dPCdxPxV1656O3eu3xxxtMVCds5dAuwF9HbObQDWAkMSHSztffedFnE1a09MOQEWcqVrP4nIAOfcFBE5otz3yj8kvO4x8bRokU1zm6oaNoTGjWHxYt9J4qaqRdxygSnAIRXc57BCrtrixdZincp23BGWL/edIm4qLWTn3OjS25OTFycQGzfCqlXax9qkphYt4McffaeIm2iuIz8uIjuU+7qNiEyOx4uLyEEi8rWIfCsil8TjOVNC2eD1evX85jCVa9ZM16IORDQtMe8D00VkoIicDrwDjIn1hUWkOjAWOBjoBvxTRLrF+rwpoawfrxVy6qpbVwe1BGKLC5075x4QkTlAAbAS6OWci8fJxR7At865hQAi8jTaGv5VHJ7br6Iiva3hfR15U5WApv2J5tD6eOBh4ATgEeANEekZh9duCZSf1nBZ6ffS32ef6e3ChX5zmMrNmgW//uo7RdxEs8s4EujvnPsZeEpEJgKPAtmJDFZGRPKBfICsrCwikUiljy0q0kiRSGFMr1lcXFzl62xJg6Iidgfmr1nDDzE8TzyyxFNIWbrVq0fj2rV5Pw6/T6xZ4vK+dc5t9QbU2paf+8tz9AMmlfv6UuDSqn4mJyfHVSU3V7dYFRQUxPYEixc7B86NH+8/SxwFleW005zbaaeUyBLt+xaY4SqpjS3ukUWkNnAqsCtQu9xdp2z7xwcAnwKdRKQd8D1wDDA0xudMDWWNXIENXg/KH39A7dpbflyaiKbV+nGgBXAgMBVoBayJ9YWdcxuBEcAkYC7wrHNuTqzPmxK2315vA2pMCc6vv0KjRr5TxE0058gdnXN/F5EhzrlHRWQCEJel4J1zbwBvxOO5UkqtWrr+cUCNKcFZvlx7dwUimj3yhtLbIhHpDuwANE9cpACIaD/rJUt8JzGV+fFH7d0ViGj2yONEpBFwBfAKUA+4MqGpQtCmjQ6cMKnnzz/hp5+gZRhXOyG6DiHjS/85DWif2DgBadsWJk70ncJUZP582LQJunTxnSRutmqwrIi8lqggwenWTfvyBjTCJhhl45DLxiUHYGtHvYdzLJJoZVP8lE35Y1LHF1/ohA+dO/tOEjfRdNE8W0Qaln75eWLjBKRnaS/Wz+1PlnI+/hh2200HTgQimj1yFjBDRJ4FnpW/TBNiKtGwoX7if/CB7ySmvJISLeS99vKdJK6imbPrCqAT8BBwEvCNiNwgIjar3JYMGKArGmzYsOXHmuT44gvtcdevn+8kcRXVOXJpP8/lpdtGoBHwvIjcksBs6W/AAH3TzJzpO4kp89ZbejtggN8ccRbNOfI5IjITuAX4AOjhnDsTnR73yATnS2/77quNKm+E13ktbb32mi4asNNOvpPEVTR75MbAEc65A51zzzmdEhfn3CZ09QlTmaZNdV3kF17wncQA/PILfPSRLuQWmGjOkUc75yqcN9Q5F87EwIly1FHw1VdBzaGctp5/XjuCHHaY7yRxZ7OnJ9oRR2jf66ee8p3EPPaYdtQJcBkfK+RE22knOPBAePhhnSbX+LFgga7AeMIJ+sEaGCvkZDjjDPj+e2v08um++3Rd5GOP9Z0kIayQk2HQIB37Onas7ySZac0aGD9e2ytatfKdJiGskJOhZk0YORLefnvzDJsmeR55RFf+OPdc30kSxgo5Wc48E3bYAW64wXeSzPLnn3DrrdqTa889fadJGCvkZNlhBxgxAl58UbsJmuR44AFYuhSuucZ3koSyQk6m88/XwRQXXug7SWZYu1aPgPLyYL/9fKdJKCvkZGrcGK68EiZN2tzn1yTODTfolD433BDkJafyrJCTbfhw6NgRzjtPz99MYsybp+fGJ5wQ3EinilghJ1utWnDXXfpGu/5632nC5Jy2R9StC7dkxgA9K2QfDj4Yjj8ebrxRFxMz8fXAAzB5sv59s7J8p0kKK2Rf7rhDz5lPOCGodXq9mz8fRo2CAw7QHnUZwgrZlyZN4D//gdmz9XzZxO7PP+G443RNp//8R8eCZwgvv6mI3Coi80RktohMLDe5X2YZOBAuugjuvx+eftp3mvQ3ciR8+ik8+GBwEwdsia+PrHeA7s653YD56JKqmem662DvveHUU21KoFiMG6fbpZfq0NEM46WQnXNvl67GCPAxusJjZqpZUwe8N20KhxyivZDM1nn3XW2lPvhguPZa32m8SIWTiFOAN32H8KpFC3j9de2JNGiQreK4NWbMgMMP1+VfJkzQoYoZSHSCzAQ8sci76LrKf3W5c+7l0sdcDvRG5wSrMIiI5AP5AFlZWTlPV3Euee652QCMGVMYQ3IoLi6mXtli5UnUaMYMelx2GcXt2zP73/9mY7163rJUJNWyNP/1V7JHjqSkTh0+v+ce1jdp4i1LLH+XaN+3++6770znXO8K73TOednQObI/AupG+zM5OTmuKrm5usWqoKAg9ifZVq++6lzNms717evcqlV+s/xFKmX5ZPx455o3123+fK9ZYv27RPu+BWa4SmrDV6v1QcBFwKHOud99ZEhZgwfDs89qw9e++1LTDrP/14wZZJ9/vrYvTJsGnTr5TuSdr3Pke4D6wDsiUigi93vKkZoOOwxefhnmzWP3s8+Gb77xnSh1vPoq5OWxsW5dLeJddvGdKCX4arXu6Jxr7ZzLLt2G+ciR0gYOhClTqFG2vMm77/pO5JdzcPvtMGQIdOnC53ffDe1tue4yqdBqbSrTty+fjR2r/YUPPFAHACSocTKlrVmjXVlHjdIW6mnTWN+0qe9UKcUKOcWta9UKpk+HI4+Eiy/Ww+6ffvIdK3kKCyEnRy8tXXUVPPdcUMuhxosVcjqoVw+eeQbGjNFJCbp3D38ZmvXrdZhn3756fX3KFBg9OqP6T28N+6ukCxE45xydhbNNG53a9aijYMkS38ni75NPoHdvuOIKPQIpLITcXN+pUpoVcrrp1k0XIrvuOp3wvksX/fe6db6TxW7pUjjxRJ3t8pdftOX+mWegWTPfyVKeFXI6qlkTLr9cF4YbOFDnAevYEe65Jz2nD1qxQgc7dO6shXvRRbrw3aGH+k6WNqyQ01mbNjrgIhKBDh3g7LO1oG+/HYqKfKfbsiVL9HShTRu4+WZtkZ43D266SacPNlGzQg5Bbi5MnarXmtu108s0LVvqpPiff55al6xKSnSAyJAhmvXee+Hoo3UPPGECtG3rO2FaskIOhYjO3TxtmjaIHX20zpKx++6w667aAuyrh1hJCbz3ni7Z0qaNdkOdPl0vpy1YoDm7dPGTLRBWyCHq1UuXcf3+e12FsEkTbQHu3FkPvUeM0K6OK1Yk5vWdg4UL4aGHdOqdli1hn310JpScHL10tnSpzje9886JyZBhavgOYBKoSRMYNky3xYu1eN96S/eAZStDtmsHffroXrtTJ93atNGJAbc0tnfjRv2wWLIEFi3SpXBmzdKtrNNK8+YwYIBeRho4EOrXT+RvnLGskDNFmza6Jx4xQlu2p0/X67Vl27PP/vfjRbSYGzfWVvIaNchZt07n5V69WrtNrl4NmzZt/platfTy2EEH6YfDvvtC167Br/KQCqyQM9F22+mh7j77bP7eunV6vvrNN7BsGaxcqYfev/6qe96SEtYvX66T2jVooHvWhg310Lhs69BBi94knRWyUXXqaNfP7t0rfcgXkQh5eXnJy2SiZo1dxgTACtmYAFghGxMAK2RjAmCFbEwArJCNCYAVsjEBsEI2JgBWyMYEwArZmABYIRsTACtkYwLgtZBFZJSIOBGxZQOMiYG3QhaR1sABQIATMxuTXD73yHegS6um0MxwxqQnL+ORRWQI8L1zbpZsYfYIEckH8gGysrKIRCKVPraoKBuASKQwpnzFxcVVvk4yWZaKhZQlLu/bylZAj3UD3gW+rGAbAkwHdih93CKgaTTPmZOTE5eV37ck1hXo48myVCykLNG+b4EZrpLaSNge2Tm3f0XfF5EeQDugbG/cCvhMRPZwzi1PVB5jQpb0Q2vn3BdA87KvRWQR0Ns5tzLZWYwJhV1HNiYA3iffc8619Z3BmHRne2RjAmCFbEwArJCNCYAVsjEBsEI2JgBWyMYEwArZmABYIRsTACtkYwJghWxMAKyQjQmA977W8TR1qt7GuhZ3UVE2DRvGmiY+LEvFQspSWAjZ2bFlsD2yMZ5lZ8PQobE9R1B7ZBen2b8ikULyYt2tx4llqZhl+W+2RzYmAFbIxgTACtmYAFghGxMAK2RjAmCFbEwArJCNCYC4eF18TQIRWQEsTsJLNQVSZZ5ty1KxTMzSxjnXrKI70qqQk0VEZjjnevvOAZalMpblv9mhtTEBsEI2JgBWyBUb5ztAOZalYpalHDtHNiYAtkc2JgBWyMYEwArZmABYIRsTACtkYwJghWxMAKyQjQmAFbIxAbBCNiYAVsjGBMAK2ZgAWCEbEwArZGMCYIVsTACskI0JgBWyMQGwQjYmAFbIxgTACtmYAFghGxMAK2RjAmCFbEwArJCNCYAVsjEBsEI2JgBWyMYEwArZmABYIRsTACtkYwJghWxMAKyQjQmAFbIxAajhO8DWaNq0qWvbtm3CX2ft2rVsv/32CX+daFiWimVilpkzZ650zjWr8E7nXNpsOTk5LhkKCgqS8jrRsCwVy8QswAxXSW3YobUxAbBCNiYAVsjGBMAK2ZgAWCEbEwArZGMCkFbXkbdk3DiYMCH25ykqyqZhw9ifJx4sS8VCyzJ0KOTnb/vPB7VHnjABCgt9pzBm6xQWxr4DCmqPDJCdDZFIbM8RiRSSl5cXhzSxsywVCylLPH6NoPbIxmQqK2RjAmCFbEwArJCNCYAVsjEBsEI2JgBWyMYEwArZmABYIRsTACtkYwJghWxMAKyQjQmA90IWkeoi8rmIvOY7izHpynshA+cAc32HMCadeS1kEWkFDALG+8xhTLrzPR55DHARUL+yB4hIPpAPkJWVRaSKwcZFRdmAjg+NRXFxcZWvk0yWpWIhZYnL+7aymesTvQGDgXtL/50HvLaln9nSShO5ubrFKhNXMYiGZalYrFmifd+SoitN7A0cKiKLgKeBASLyhMc8xqQtb4XsnLvUOdfKOdcWOAaY4pw7zlceY9JZKrRaG2Ni5LuxCwDnXASIeI5hTNqyPbIxAbBCNiYAVsjGBMAK2ZgAWCEbEwArZGMCYIVsTACskI0JgBWyMQGwQjYmACnRRdOkoJIS+O033TZsgJIS6n3zDTRrBg0aQP36ulWv7jupwQo5s23aBPPnw6efwrx58M03ui1bBr/+qveX0/uvP1+tGrRsCTvvrFu3btCzp26tW4NI0n6VTGeFnEk2bYLCQpg0CSZP1gJevVrvq1ED2rWDTp2gXz/d8zZtCo0aQa1aUL06X86dS/fOnfVn1qyBX37Rol+yBD76CJ56avNrZWVBXp5u++2nz2sSxgo5dCUlMG0aTJgAr7wCP/+s3+/ZE4YOhb59oU8f6NwZatas8qlWRiJamJVZswa++EI/LD76CAoK4Jln9L6uXeHII+Goo2C33WxvHWdWyKFatAjuuw+efBK+/x7q1YPBg2HgQDjgAN1jxlv9+rDXXrqddRY4B99+q0cAL7wAN9wA112nhZyfD8ceCw0bxj9HBrJW65A4B5EIHH44dOgAt90Gu+8OTz8NP/2kh77HH5+YIq6IiB5Sjxihe+cff4R779UGshEjYKed4MwzYeHC5OQJmBVyKKZO1cPeffeF996DSy6B777Tw+mjj4a6dX0nhObNtXA/+wxmzNBD+4cf1sP6447TBjezTayQ093s2bD//lrE33wDd98NS5fC9ddry3GqysmB8eN1b3zuufDSS9C9OwwfDitW+E6XdqyQ09Vvv8HZZ0OvXtq4dPvtsGCBHrLWqeM7XfRatoR//1uPHoYNgwce0NOCMWO0oc5ExQo5Hb30EnTpouebw4bpteDzzkuvAv6rZs3gnnvgyy+hf3/9ffbaS1vBzRZZIaeTVavgpJO0MWunnfQ8c+xYaNzYd7L46dIFXn9dL5ctXKiNdTff/D+dU8x/s0JOF59/DtnZ8MQTcMUVMH26HlaHSAT++U+YOxcOO0wb7gYO3HwN3PwPK+R08Oijepi5caO2SF97rfa2Cl3TpvDss3D//XpZLTsbPvnEd6qUZIWcyjZtosO99+rhdL9+MHOm3mYSETjjDC3g7baD3Fx47jnfqVKOFXKq+vNPOPZYWj/3nLZOv/22XofNVLvtpsW8++7wj3/Quny/bmOFnJLWroVBg+Dpp1lwxhlw5506qCHTNWumgz3++U86jBsHV16pvdmMv77WItIaeAzIAhwwzjl3p688KeP33+GQQ7Sn1iOPsLRNGzrYAIPNateGxx/nh9Wr2em662DdOrj11owfhOFzj7wRGOWc6wbsCQwXkW4e8/j3xx/aShuJaAPXiSf6TpSaqldn/vnna+eX226Dq6/2ncg7b3tk59yPwI+l/14jInOBlsBXvjJ5tWmTDmh45x3tf3ycrTBbpWrV4K679Ajm6qv1sHv4cN+pvEmJEy8RaQv0AqZXcF8+kA+QlZVFJBKp9HmKirIBiEQKY8pTXFxc5eskQvtx49j5+edZMGwYS9u1072ypyyVSbksU6ciQ4ey67x5NDn7bOb88gsr99nHT5YY/i5xed8657xuQD1gJnDElh6bk5PjqpKbq1usCgoKYn+SrfHQQ86Bc8OGObdpk98sVUjZLL//7lzfvs5tv71zX37pN8s2iPZ9C8xwldSG11ZrEakJvAA86Zx70WcWbwoLdRD+/vvryKUMb7TZJnXq6MQF9etrG8Nvv/lOlHTeCllEBHgImOucu91XDq9Wr4Z//AOaNNG+xXaJadu1bAnPPw+LF8Ppp2fcZSmfe+S9geOBASJSWLoN9Jgn+c46S4cePvWUNtaY2Oy9t04l9MIL8NhjvtMklc9W6/eBzD2OfOUVnU9r9Gjw0EATrFGjdPTU2Wfr37VdO9+JksJ6dvlQVKRT3vToAZdd5jtNWKpX37w3LpsAMANYIftw6aWwfDk89FBmjGJKtjZt4Jpr4K23YOJE32mSwgo52b78EsaN084Lffr4ThOuESN0oMW552rf9cBZISfbhRfq2kmjR/tOErYaNXT2lKVLdf6vwFkhJ9PkyXq4d+WVesnJJFb//joA5dZbg7+2bIWcTNdeq9c7M7hPcNJde63Odfbvf/tOklBWyMnywQc6NPGCC3SmC5McPXvC3/+uvebKFqwLkBVystx0kx5On3667ySZ54ILdIG5Rx7xnSRhrJCTYfFi7aRw5pmw/fa+02SePfbQyQvvvDPYSe+tkJPhoYf09rTT/ObIZOeeq/Nkv/OO7yQJYYWcaBs3aiEffLB2VDB+HHqoLtr++OO+kySEFXKivfce/PADnHyy7ySZbbvtdFXKiRP1fDkwVsiJ9vzzuqTpwMwa2JWSjj9eJ+t75RXfSeLOCjmRNm2CF1/Uw+pUWJ840+25py7y/tprvpPEnRVyIn3+uQ6OOOww30kM6IR9Bx+sves2bvSdJq6skBNpyhS93X9/vznMZoMG6TDSjz/2nSSurJATacoU6NYNWrTwncSUycvT2/ff9xoj3rZYyCJyi4g0EJGaIjJZRFaIiE26vCUlJfpmKXvjmNTQtCnssgt8+KHvJHEVzR75AOfcamAwsAjoCFyYyFBB+PZbKC6G3r19JzF/1a+fFnJAs4dEU8hl83oNAp5zzq1KYJ5wFBbqbaiLkaez3r3hl1/0+n4goink10RkHpADTBaRZsAfiY0VgMJCHdzeLbOXs0pJXbvq7dy5fnPE0RYL2Tl3CbAX0Ns5twFYCwxJdLC0t2CBzuBoc3KlngALudLpcEVkgHNuiogcUe575R+SmStDRGvxYmjb1ncKU5EWLaBePf2wDURV81rnAlOAQyq4z2GFXLVFi7Sjvkk9IrDjjtpZJxCVFrJzbnTprfX231qbNsHPP8NOO/lOYirTokVQhRzNdeTHRWSHcl+3EZHJiY2V5sqmX61f328OU7kWLeCnn3yniJtoWq3fB6aLyEAROR14BxgTjxcXkYNE5GsR+VZELonHc6aEskK22UBS1/bb6yLpgdji2k/OuQdEZA5QAKwEejnnYj4mEZHqwFjg/4BlwKci8opz7qtYn9u74mK9rVfPbw5Tudq14Y9wrqJGc2h9PPAwcALwCPCGiPSMw2vvAXzrnFvonFsPPE0ol7U++0xvv/3Wbw5TudmzYeVK3yniJprVGI8E+jvnfgaeEpGJwKNAdoyv3RJYWu7rZUDfvz5IRPKBfICsrCwikUilT1hUpJEikcKYghUXF1f5OlvS6Lvv6Al8+9NPLIvheeKRJZ5CytJj40YaVa/OtDj8PrFmicv71jm31RtQa1t+7i/PcRQwvtzXxwP3VPUzOTk5riq5ubrFqqCgILYnWLjQOXDuP//xnyWOgsqSn+9cixYpkSXa9y0ww1VSG1vcI4tIbeBUYFegdrm7Ttn2jw8Avgdal/u6Ven30l/ZuXHZubJJPX/8AXXq+E4RN9G0Wj8OtAAOBKaiBReP2cs+BTqJSDsRqQUcA4QxmVJZa3UGrAKYtlatCqoxMppC7uicuxJY65x7FB0F9T/nslvLObcRGAFMAuYCzzrn5sT6vCmhTh1dcHuVDRRLWcuXBzXhQzSNXRtKb4tEpDuwHGgejxd3zr0BvBGP50opIrpY29KlW36s8WP5cujc2XeKuImmkMeJSCPgCvTQtx5wZUJThaBtWx04YVJPSQn8+GNQXWij6RAyvvSf04D2iY0TkDZtoKDAdwpTke++g/Xrg9ojb9XkeyIS3oTAibLLLrBsmZ0np6Kycchl45IDsLWzaLZMSIoQlU3xM3u23xzmf31V2gu4Sxe/OeIomi6aZ4tIw9IvP09snIBkZ+tt2dxdJnVMnw7t2+uiboGIZo+cBcwQkWeBZ+Uv04SYSuy4o17eCGwi9LTnHHz0ka6XHJBo5uy6AugEPAScBHwjIjeISIcEZ0tvIrDvvtrgFdC0q2lv0SK99JRphQxQ2s9zeem2EWgEPC8ityQwW/obMEAvc3z9te8kpszbb+ttbq7fHHEWzTnyOSIyE7gF+ADo4Zw7E50e98gE50tvAwbo7aRJfnOYzV5/Xa/xB9RiDdHtkRsDRzjnDnTOPed0Slycc5vQ1SdMZdq3h+7ddWlV498ff8DkybqQW2BNPdGcI492zlXYRck5F87EwIly1FHw3ntBTfSWtt54Q6f3CXB2U1uNMdGOPFIbu55/3ncS8/jjeiWh7JQnIFbIibbrrto5ZPx4a7326Zdf9Px46FBdyicwVsiJJgL5+TBrFnz6qe80mevRR2HDBjjhBN9JEsIKORmGDtXJBu67z3eSzLRxI9x1F/ztb9AzHvNGph4r5GRo0ABOOgmefFIHUpjkevllHVJ63nm+kySMFXKyXHihniPfdpvvJJnFObj5Zl0ZM8DW6jJWyMnSpg0ceyw88EBQS5WkvJdf1raJK67Q6ZcCZYWcTJddpg0uV13lO0lm2LQJrrxSJxAItJGrjBVyMnXuDGeeCePGwZww5hlMaY88Al9+CVdfHeQlp/KskJNt9Ght/Dr/fLuunEi//goXXwx77w3/+IfvNAlnhZxsTZrANdfoKJwnn/SdJlyXXQa//Qb33gvVwn+bh/8bpqKzzoJ+/eCcc3RBdBNfBQV6+nL22bDbbr7TJIUVsg/Vq8NDD+mSMsOG2SF2PBUVwYknQqdOcN11vtMkjRWyL127wvXXw8SJevhnYuccDB+ukzk88URGLTTvpZBF5FYRmScis0VkYrnJ/TLL+efr2Njzz4eZM32nSX/33QcTJmiDYp8+vtMkla898jtAd+fcbsB84FJPOfyqVk078zdvruOWraPItnvvPW1zGDRIG7oyjJdCds69XbqIG8DH6AqPmalJE51B5KefYMgQWLfOd6L08913+kHYvr0eUmdAK/VfpcJvfArwpu8QXvXpo2/ATz7RHkglJb4TpY+ff4YDDtAecy+/DA0b+k7kRcK6u4jIu+i6yn91uXPu5dLHXI7OylnpBVURyQfyAbKysohEIpW+ZlFRNgCRSOG2hS5VXFxc5eskROPGtBo2jI733cePgwfz9YUXQrVqfrJUItWyvPf662Sfdx51ly5l1m23sXr5ci9TKsX6d4nL+9Y552VD58j+CKgb7c/k5OS4quTm6hargoKC2J9kW40e7Rw4d/rpzpWU+M3yF6mU5b1XXnGub1/natRw7o03vGaJ9e8S7fsWmOEqqQ0vHVBF5CDgIiDXOfe7jwwpa/RoXSnwxhthwwbk2GN9J0o9K1bQ8/zzYckSnQvt4IN9J/LOV0/ye4DtgHdKV6D52Dk3zFOW1CKi15dr1YKrr6b73LnaCyyDrolWacECGDyYukuWwCuvwIEH+k6UErwUsnOuo4/XTRsiOtRxxx1pfNZZuvTMiy9Cq8xt3Adg2jQ44ghwjtm33EIvK+L/LxVarU1lzjiDL6++WtfzzcmBqVN9J/LDObj/fth/f71c9/HHrAp07q1tZYWc4n7p318vSzVqBPvtp9PWZNLlqaIiOPpoHcc9YICubtmpk+9UKccKOR107arFfMQRcMklkJen54qhKyjQOcFffBFuuklXighoTeN4skJOFw0awDPP6GoJX3yhw/PuuEM7QoTmt9/gtNN0D1y9una/vPjijOyxFS37y6QTETjuOC3k3FwdbNGrl+65QrBxo44j7tJFp+m56CL9Xfv1850s5Vkhp6PWrXX5k5degrVrdc91yCHw2We+k20b5/T3yc6GM87Qc+BPPtH2gDp1fKdLC1bI6UpEB1l89ZVed/7gA23ZPvxwLYJ0UFICzz6ruQcPhj//hBde0EPp3Xf3nS6tWCGnuzp1dNjed9/pbJEFBdC3r25PPqnFkWp+/hluuQV22UVbpH//HR5+WGcWPeKI4NYuTgYr5FDssAP861+wdCncfTesWqXn0zvuqIvIRSI6z7MvxcXw3HM63LBVK228atlSvzdnDpx8svZmM9sk7Ml+M1H9+jBihE7w9+672so9YQI8+CBkZWmXxoMOgv/7P2jaNHE5nIOvv9YjhEmTdPvjD2jWTCfFO+00vaxm4sIKOVTVquk43QMO0EPXV17R8bqvvQaPPaaP6dwZ9thDx0Pvuqs2MrVqtfWXeTZs0COBL77Q5WNnzYIPP9w8pLB1azj9dF30vX//oJdu8cUKORPUrQvHHKNbSQnMmAFTpmij2OTJOqlBmdq1tfCaNdM9duPGULMm1KhBx+XL4amnYPVqWLNGJ4FfsgR++GHzTKAi0KGD9g8v2zp0sPPeBLNCzjTVq29uDCvzww8wbx58841uy5bBypWwaJFe0tq4EUpKyFq3TkdhNWigh/ANG+oh+s4769atG/ToAfXq+frtMpYVsoGddtJtwIAqH/ZBJEJeXl5yMpmtYq3WxgTACtmYAFghGxMAK2RjAmCFbEwArJCNCYAVsjEBsEI2JgBWyMYEwArZmABYIRsTACtkYwLgtZBFZJSIOBFJ4Ah3Y8LnrZBFpDVwALDEVwZjQuFzj3wHurSq85jBmCB4KWQRGQJ875yb5eP1jQlNwiYWEJF3gRYV3HU5cBl6WB3N8+QD+QBZWVlEIpFKH1tUlA1AJFK4NVH/R3FxcZWvk0yWpWIhZYnL+9Y5l9QN6AH8DCwq3Tai58kttvSzOTk5riq5ubrFqqCgIPYniRPLUrGQskT7vgVmuEpqI+lT/TjnvgCal30tIouA3s65lcnOYkwo7DqyMQHwPvmec66t7wzGpDvbIxsTACtkYwJghWxMAKyQjQmAFbIxAbBCNiYAVsjGBMAK2ZgAWCEbEwArZGMCYIVsTAC897WOp6lT9TbWtbiLirJp2DDWNPFhWSoWUpbCQsjOji2D7ZGN8Sw7G4YOje05gtojuzjN/hWJFJIX6249TixLxSzLf7M9sjEBsEI2JgBWyMYEwArZmABYIRsTACtkYwJghWxMAMTF6+JrEojICmBxEl6qKZAq82xbloplYpY2zrlmFd2RVoWcLCIywznX23cOsCyVsSz/zQ6tjQmAFbIxAbBCrtg43wHKsSwVsyzl2DmyMQGwPbIxAbBCNiYAVshbICKjRMSJSFOPGW4VkXkiMltEJopIwyS//kEi8rWIfCsilyTztf+So7WIFIjIVyIyR0TO8ZWlXKbqIvK5iLzmM4cVchVEpDVwALDEc5R3gO7Oud2A+cClyXphEakOjAUOBroB/xSRbsl6/b/YCIxyznUD9gSGe8xS5hxgrucMVshbcAdwEeC1RdA597ZzbmPplx8DrZL48nsA3zrnFjrn1gNPA0OS+Pr/n3PuR+fcZ6X/XoMWUEsfWQBEpBUwCBjvK0MZK+RKiMgQ4Hvn3CzfWf7iFODNJL5eS2Bpua+X4bF4yohIW6AXMN1jjDHoB/0mjxmAwObs2loi8i7QooK7LgcuQw+rvWdxzr1c+pjL0cPLJ5OVKxWJSD3gBeBc59xqTxkGAz8752aKSJ6PDOVldCE75/av6Psi0gNoB8wSEdBD2c9EZA/n3PJkZimX6SRgMLCfS+7F/++B1uW+blX6PS9EpCZaxE865170lQPYGzhURAYCtYEGIvKEc+44H2GsQ0gURGQR0Ns552W0jYgcBNwO5DrnViT5tWugDWz7oQX8KTDUOTcnmTlKswjwKPCrc+7cZL9+ZUr3yBc45wb7ymDnyOnhHqA+8I6IFIrI/cl64dJGthHAJLRx6VkfRVxqb+B4YEDp36GwdI+Y8WyPbEwAbI9sTACskI0JgBWyMQGwQjYmAFbIxgTACtnETESGicgJvnNkMrv8ZEwAbI+cYUSkT+m45toisn3puN7uf3nMISIyvXSc7bsiklX6/TtF5F+l/z5QRKaJSDURuUpELij9/sjS8cKzReTp5P+Gmcn2yBlIRK5D+wfXAZY55278y/2NgCLnnBOR04CuzrlRIlIX7aI5ArgfGOicWyAiVwHFzrl/i8gPQDvn3J8i0tA5V5TEXy1jZfSgiQx2DVqQfwAjK7i/FfCMiOwI1AK+A3DO/S4ipwPTgPOccwsq+NnZwJMi8hLwUvyjm4rYoXVmagLUQ/tv1xaR68v6Lpfefzdwj3OuB3AGuvcu0wP4BdipkucehM4osjvwaemgC5NgVsiZ6QHgSnRc883Oucudc9nOuezS+3dg81DFE8t+SETaAKPQAf0Hi0jf8k8qItWA1s65AuDi0uepl8hfxCj7tMwwpZeJNjjnJpTOx/WhiAxwzk0p97CrgOdE5DdgCtCudAjhQ+hwvR9E5FTgERHpU+7nqgNPiMgOgAB32TlyclhjlzEBsENrYwJghWxMAKyQjQmAFbIxAbBCNiYAVsjGBMAK2ZgA/D+hw09cFwWPhAAAAABJRU5ErkJggg==\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"# Draw the inital graph\n", | |
"\n", | |
"# We are making 3 axes for doing the simulation 3 times\n", | |
"fig, axs = plt.subplots(3, 1, sharex=True, sharey=True)\n", | |
"fig.set_size_inches((10, 12))\n", | |
"\n", | |
"def init_plot(ax: 'Axes'):\n", | |
" \"\"\"\n", | |
" Draws the red circle and the blue square on the given Axes instance.\n", | |
" \"\"\"\n", | |
" square_points = [\n", | |
" (LOWER_X, LOWER_Y),\n", | |
" (UPPER_X, LOWER_Y),\n", | |
" (UPPER_X, UPPER_Y),\n", | |
" (LOWER_X, UPPER_Y),\n", | |
" (LOWER_X, LOWER_Y) # Back to start\n", | |
" ]\n", | |
" square_points = np.array(square_points)\n", | |
" ax.plot(square_points[:, 0], square_points[:, 1], c='blue')\n", | |
"\n", | |
" # Circle\n", | |
" cx = np.linspace(-RADIUS, RADIUS, 1000) # Return evenly spaced numbers over a specified interval.\n", | |
" cy = [math.sqrt(RADIUS**2 - x**2) for x in cx]\n", | |
"\n", | |
" ax.grid()\n", | |
" ax.set_aspect('equal')\n", | |
" ax.set_ylabel('y-axis')\n", | |
" ax.plot(cx, cy, c='red')\n", | |
" ax.plot(cx, [-y for y in cy], c='red')\n", | |
"\n", | |
" return ax\n", | |
"\n", | |
"for ax in axs:\n", | |
" init_plot(ax)\n", | |
"axs[-1].set_xlabel('x-axis')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"id": "respective-correction", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def simulate(N: int):\n", | |
" \"\"\"\n", | |
" Generate `N` random x,y coordinates within range `UPPER_X` and `UPPER_Y`\n", | |
" and populate arrays `hit_points` and `missed_points`\n", | |
" \"\"\"\n", | |
" def dist(x, y, origin=(0, 0)):\n", | |
" \"\"\"\n", | |
" Return distance from origin to point (x,y)\n", | |
" \"\"\"\n", | |
" return math.sqrt( (x - origin[0]) ** 2 + (y - origin[1]) ** 2 )\n", | |
" \n", | |
" global hit_points\n", | |
" global missed_points\n", | |
" \n", | |
" # Reset the lists before populating them\n", | |
" hit_points = []\n", | |
" missed_points = []\n", | |
" \n", | |
" # Simulate\n", | |
" for i in range(N):\n", | |
" x, y = random.uniform(LOWER_X, UPPER_X), random.uniform(LOWER_Y, UPPER_Y)\n", | |
"\n", | |
" if dist(x, y) <= RADIUS:\n", | |
" hit_points.append( (x,y) )\n", | |
" else:\n", | |
"\n", | |
" missed_points.append( (x,y) )\n", | |
"\n", | |
"def plot_simulation(ax: 'An Axes instance'):\n", | |
" hits = np.array(hit_points)\n", | |
" misses = np.array(missed_points)\n", | |
" \n", | |
" ax.scatter(hits[:, 0], hits[:, 1], c='red')\n", | |
" ax.scatter(misses[:, 0], misses[:, 1], c='blue')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"id": "aggressive-india", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"For N=100, Estimated Pi: 3.33333, and Area: 30.0 unit²\nFor N=1000, Estimated Pi: 3.23333, and Area: 29.1 unit²\nFor N=10000, Estimated Pi: 3.10667, and Area: 27.96 unit²\n" | |
] | |
} | |
], | |
"source": [ | |
"hit_points = []\n", | |
"missed_points = []\n", | |
"\n", | |
"N = [100, 1000, 10000]\n", | |
"pi_ests = []\n", | |
"area_ests = []\n", | |
"\n", | |
"for i in range(len(N)):\n", | |
" epoch = N[i]\n", | |
" # Generate the `hit_points` and `missed_points` array that can be used for pi estimation\n", | |
" simulate(epoch)\n", | |
"\n", | |
" # Use the `hit_points` and `missed_points` array to plot on the graph\n", | |
" # ### Problem: `plt` is not using the previous graph\n", | |
" plot_simulation(axs[i])\n", | |
"\n", | |
" # Evaluate the value of Pi and the area of the circle\n", | |
" hits = len(hit_points)\n", | |
" # π = (hits/N) * (AREA_SQUARE / RADIUS**2)\n", | |
" est_pi = round(hits / epoch, 5) * round(AREA_SQUARE / RADIUS**2, 5)\n", | |
"\n", | |
" area = est_pi * RADIUS**2\n", | |
"\n", | |
" pi_ests.append(est_pi)\n", | |
" area_ests.append(area)\n", | |
"\n", | |
" axs[i].text(x=-5, y=4, s=f'est_pi={round(est_pi, 5)}', color='white', backgroundcolor='black')\n", | |
" print(f'For N={epoch}, Estimated Pi: {round(est_pi, 5)}, and Area: {round(area, 2)} unit²')\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<Figure size 720x864 with 3 Axes>" | |
], |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment