From de2920c6be0902299a0623a56c8af589000edb70 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 22 Oct 2020 01:09:32 +0800 Subject: [PATCH 1/6] ini --- MML Python, Ch.02 Linear Algebra.ipynb | 33 ++++++++++---------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/MML Python, Ch.02 Linear Algebra.ipynb b/MML Python, Ch.02 Linear Algebra.ipynb index 378a550a..76974c88 100644 --- a/MML Python, Ch.02 Linear Algebra.ipynb +++ b/MML Python, Ch.02 Linear Algebra.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -96,43 +96,34 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 28, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 1 1 1 3]\n", - " [ 1 -1 2 2]\n", - " [ 2 0 3 5]]\n" - ] - }, - { - "name": "stderr", "output_type": "stream", + "name": "stdout", "text": [ - "/Users/vb/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:4: FutureWarning: `rcond` parameter will change to the default of machine precision times ``max(M, N)`` where M and N are the input matrix dimensions.\n", - "To use the future default and silence this warning we advise to pass `rcond=None`, to keep using the old, explicitly pass `rcond=-1`.\n", - " after removing the cwd from sys.path.\n" + "[[ 1 1 1 3]\n [ 1 -1 2 2]\n [ 2 0 3 5]]\n" ] }, { + "output_type": "execute_result", "data": { "text/plain": [ - "array([4.45961819e+00, 1.45320528e+00, 3.12145137e-16])" + "array([4.45961819e+00, 1.45320528e+00, 3.26391543e-16])" ] }, - "execution_count": 5, "metadata": {}, - "output_type": "execute_result" + "execution_count": 28 } ], "source": [ "mat = np.vstack([[1,1,1],[1,-1,2],[2,0,3]])\n", "sol = np.vstack([3,2,5])\n", "print(np.hstack([mat,sol]))\n", - "npl.lstsq(mat,sol)[3] #Solution of coefficients multiplied with any # in R. I.e. Infinity of R solutions." + "l=npl.lstsq(mat,sol, rcond=None)\n", + "assert l[0].astype(int).tolist()==[[1],[1],[1]]\n", + "l[3] #Solution of coefficients multiplied with any # in R. I.e. Infinity of R solutions." ] }, { @@ -2905,9 +2896,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.8.1-final" } }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file From 97438401c96124b2334cb4862809d1bab25a658c Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 22 Oct 2020 01:36:15 +0800 Subject: [PATCH 2/6] legend --- MML Python, Ch.02 Linear Algebra.ipynb | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/MML Python, Ch.02 Linear Algebra.ipynb b/MML Python, Ch.02 Linear Algebra.ipynb index 76974c88..152ec7f0 100644 --- a/MML Python, Ch.02 Linear Algebra.ipynb +++ b/MML Python, Ch.02 Linear Algebra.ipynb @@ -136,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -156,20 +156,19 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 40, "metadata": {}, "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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nEGzZs1IS1cKvk+fPtSuXZvatWszYcKE/ds//fRT6tevT+3atenWrRu7d+8GYMKECVSvXn1/Ve1rrrmGqlWrMnr0aAB27NjB5ZdfTvXq1WnYsCErVqw4KJ5DVfx+8MEHqVChAnXr1qVu3bpMmzYNgE2bNtG8eXNKlizJTTfddMDx9m0PZBJHtOkrsfIRi1P3smPHDtVLL7UJko8/HnY0LgjZmbr32muvafHixRVbUE0BLV68uL722ms5bj99AYTdu3drtWrVdOnSpbpjxw4944wzdMGCBQd9T6dOnfSVV15RVdVPPvlEu3btqqqq77//vrZq1Up37dqlW7du1TPPPFO3bNmie/bs0YoVK+rixYtVVbV///4HzC1OP9+5W7du+tZbb+1/7tlnn9VevXqpquobb7yhl1122UHxrFmzZn9RiN9++01r1KixP+4HHnhAhwwZctD3bN26VefMmaOjRo3SG2+88aDnmzZtql9//XXU9yw7U/f8DDEPJSfD+PFwxRXQty888kjYEbn81K9fP7Zt23bAtm3bttGvX79Ajv/VV19RvXp1qlWrRnJyMp07d2by5IOXNFq4cCEtW7YE7Gxq3z4LFy6kadOmJCUlUaJECerUqcMHH3zApk2bKFq0KCeffDIArVu35p0sjiebPHky3brZEkudOnXik08+saIJ6Ryq4ndmSpQowTnnnEOxYsWyFEdOeULMY0lJ8M9/wtVXw4ABcP/9EMPTx12Afv7552xtz67Vq1dz4ol/LWZZsWLFqImlTp06+xPapEmT+P3339m0aRN16tRh+vTpbNu2jY0bNzJz5kxWrVrFsccey65du/Zfgr799tusWrXqoOMeLqakpCSOOuooNm3alOn+GSt+A4wcOZIzzjiD7t278+uvv2ap3aB4QswHhQvDyy/DddfBoEHQp48nxYKgUqVK2dqeXRnPvABEDl4CfejQocyePZt69eoxe/ZsKlSoQFJSEm3atKF9+/b87W9/44orrqBx48YkJSUhIowfP57bb7+dBg0aUKpUKZKSslZcP6sxQfSK39dffz1Lly5l3rx5lC9fnjvvvDNL7QbFE2I+KVQInn8ebrgBhgyB22/3pJjoBg0aRPHixQ/YVrx4cQYNGhTI8StWrHjAmVtaWhonnHDCQfudcMIJTJw4kW+//XZ/20cddRRgl/Xz5s1jxowZqCo1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2rnTTo4KTFLcvt3mFz/xhK3e1bAhjBxp4woLzJuQ/zwhuphVuDC88IKdKT7+uJ0sDRuW4Plg61YYNcpe6Lp1NozmlVdsXGFCv/DY4AnRxbRChSw/JCfDk0/ameLTTyfg1eKWLXYG+OSTsGmTjUG6//6ErUwdqzwhupgnAiNG2DrnQ4daUhw9OkGS4ubN8NRTluW3bLGirPvK9bt85wnRxQURu52WnGz3EnfuhBdfjOMO1vXrYfhwePZZu0y+5BI7I6xXL+zICjRPiC5uiMDAgXam+MADNhJl7FjrgIkba9bAkCE2HWfHDht0ed99Ba4ydayKp18l5xCBAQPsTPHee+1M8fXX42BM8sqVMHiwndbu2WMDLe+7zwZWu5jhCdHFpb597UzxjjssKb75pn0dc5YssS7ysWMtm197LfTpU+ArU8cqT4gubt1+u50p3nST1T+dONGm/8WERYvsZue+09feveGee+DEE8OOzB2CJ0QX12680ZJir162JMHkyVYoIjTz59uNzrfftgILt98Od97planjhCdEF/f+/nc7Ceve3arlvPcelCyZz0GkploinDzZijzeey/cdptXpo4znhBdQrjmGjtTvPpqW+Z02rR8qon673/DI49Yldujj7ZJ17fcAqVL50PjLmieEF3CuPJKS4pXXGETPT780HJU4PaV6R840FbLOvZYeOwxuOEGr0wd5xJhrL9z+3XqZLfvvv3Wpv9uCrIMsapl2XPPhRYtDizT37evJ8ME4AnRJZyOHeHdd2HBAstb69fn8oCqMGWKVZxp2xZ+/tnmHS9f7mX6E4wnRJeQ2re3zpWffrI1l9auzcFB9u6Ft96y6XQdO9rp5j/+YWMLb7wxhsb4uKB4QnQJq3Vr61xZuRKaNbOyglmye7dVqK1dGy67DP780wZWL14M111nNypdQvKE6BJas2Z222/tWquktXLlIXbetQteeglq1bKpdYULw/jxdu199dVxNmna5YQnRJfwzj4bZsywK96mTeHJJ8dRpUoVChUqRJUqVRg3dqzVE6tRA3r0sM6RiRPhu++s+ELcltRx2SWxvPhdSkqKpqamhh2GSxBz50LTpuPYtq0nqtv2by8uwhhVujRqBP37Q7t2Xp06wYnIXFVNybjdrwFcgXHmmXDkkf34449tB2zfpkq/446jy7//7YmwgAvkkllE2orIYhFZ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\n", - "text/plain": [ - "
" - ] + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2020-10-22T01:26:48.690635\n image/svg+xml\n \n \n Matplotlib v3.3.0, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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4ABbt26lXLlyx+y3f/9+UlNT6dWrF926dftte6VKlShcuDCFChXi+uuv56uvvvrtvj179lCiRIl8xRdJnvDjVHIyzJplo3imTrVibP/3f97ad9HTq1cvxo0bR/Xq1RERqlevzrhx4+jVq1een7NMmTIcPHgwR0l/8ODBTJp07BzQLl268PLLLwMwceJELrroIkKnGH+jqvTr149atWpxxx13HHXfugytp0mTJlG3bt3fbn///fdH3Y452dVNjoVLItTDj4bvvlNt0cJW2GrbVnXlyqAjcgVVLNTD79u371FLBTZv3lzLly+vxYsX1ypVqui7776rqqqdOnXSzz///JjH7969W7t3765nn322nn/++bpixQpVVV2zZo126NBBVVU/+eQTBbRevXq/LU/49ttvq6rq1VdfrXXr1tV69epp586dde3atb8994ABA3Ty5MkR+90z8yUOXZYOHlQdNUr15JNVS5ZUHTlS9cCBoKNyBU0sJPy5c+fq1VdffcL92rVrF4VojtizZ482adJE9+/fH7Vj+hKHLkuFCsFNN1kxtlat4NZbbez+0qVBR+Zc7jRs2JA2bdr8NvEqO+9FeXzyjz/+yBNPPEGRIkWietzc8ISfYKpVg7ffhldescqbycl2kteLsbmCpG/fvr9NvIoVNWvWpHXr1kGHcVye8BOQCFx9tbXuL78c7r8fUlJg7tygI3MFgfqZ/5iQl7+DJ/wEVrEivPYaTJoEGzdaBc6BA2H37qAjc7GqePHibN682ZN+wFSVzZs3U7x48Vw9zhcxdwD8+ivcfTe8+CLUrGk/W7YMOioXa/bv3096enq+x8K7/CtevDhVq1alaNGiR20/3iLmnvDdUT74AK6/Hn74wU7yPvEEhCYYOucKgOMlfO/ScUe5+GJYtAhuvx3GjLFibKHqr865As4TvjtGqVLw9NPw+edQujR06gTXXAObNgUdmXMuPzzhu2w1bQpffw0PPACvvmrlGV57zcszOFdQecJ3x3XSSfDwwzZks3p16NHDhnLGcEFA51w2POG7HKlfH774AoYPh2nTrLX/4ove2neuIPGE73KsSBG46y47qZucbKN52raFlSuDjsw5lxPhXMR8lYgsEpH5InLMWEoxz4rIchFZKCINw3VsF13nnAMffghjx1rd/bp14Zln4ASlTZxzAQt3C7+NqiZnMwa0A1Az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TX6qUsX61NasgYEDbbbcihU287VpU0/2UZbvPnwREWA8sFRVn85mn9OB9aqqItIY+6DZnN9jO5cXl15qI3nuvReee85KoI8bZ0O6XR4tX35ktuvs2batfn146CFrydeu7bPhYkA4xixcCFwDLBKR+aFt9wLVAFR1DNAduElEDgC7gR4ayzO+XNwrXdoq5F51lRVhu/RSO8n79NM2QMTlwJIlluAnToSFC21bSoot4N2tG9Q8Ya+tizKfaesS3p49VprhySftXOLzz1u+cpmowvz5R1ry335rrfYLLrBWfLduUL160FEmvOP14XvCdy5k3jzo29dyWmqqdfecfnrQUQXs0CHropk40YY7rVxp/e6tWx8pTla5ctBRugy8tIJzOXDeefDVV1Z2+eGHbVb/M8/YpM+E6n4+eBA+++xIcbL0dBsmefHFVreia1f7KuQKHG/hO5eFb7+1vv3PPrOTuWPHQlJS0FFF0P79Nmxy4kRbUmz9els1vn17a8l37gynnRZ0lC4HvIXvXC6de64VZxw92mbp1q0Ljz9uIwzjZiTh3r1WUzotzerXbNkCpUodKU7WsaOd3XZxw1v4zp3A6tVwww1Wn+fCC+HFF+0DoUDatcsmIqSlwZQptjr8qadaCz411YYrlSgRdJQuH7yF71w+VK8O77wDr7wCt91mtXgefNDW2igQFQC2b7eiZGlpVqRs1y4oV85q1nTvbn3zxYoFHaWLAm/hO5cL69fDzTdbV3dyspVnaNgw6Kiy8MsvNqMsLQ2mTbPum9NPP1KBslUrLx0apyJeWsG5RFGpErz+uuXRn3+2UjCDB1sZ98Bt2GBThi+91CpP9uljY0xvuslWh0lPh1GjrEXvyT4heQvfuTz65Re46y4rufy731lrv3nzKAexZs2R4mQff2zj5s8++0hxsvPPT7Axpc5b+M5FQJkyluSnT7fV+Fq0sO6e7dsjfOBVq2DECJvhWrUq3HKLte6HDLEW/bJltr5j48ae7N1R/Hudc/nUti0sWmR19p991tb1GDvWhrCHzfffH6lb8/XXti05Gf76V2vJF9hhQy6avIXvXBicfLJVBP7sMxvK3qED9O4Nm/NaE1bVPkUeegjq1YPf/97KexYtakV/VqywWhBDhniydznmLXznwqhZM8vDf/2rFY18912rydO9ew56V1StXvzh4mTLltmDWrSA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\n" }, "metadata": { "needs_background": "light" - }, - "output_type": "display_data" + } } ], "source": [ @@ -183,7 +182,7 @@ "plt.plot(vals,y1,c=\"red\")\n", "idx = np.argwhere(np.diff(np.sign(y0 - y1))).flatten() # finds the intersection between two graphs\n", "plt.plot(vals[idx],y0[idx],'ko')\n", - "plt.legend([\"4$x_1$+4$x_2$ = 5\",\"2$x_1$-4$x_2$ = 1\",str(np.round(vals[idx],3)) + str(np.round(y0[idx],3))]);" + "plt.legend([\"4$x_1$+4$x_2$ = 5\",\"2$x_1$-4$x_2$ = 1\",'('+str(np.round(vals[idx])[0].astype(int))+', ' + str(np.round(y0[idx],2)[0])+')']);" ] }, { From 272cf2e2735a99e5165cbe29a3adb4efed81317e Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 22 Oct 2020 02:02:07 +0800 Subject: [PATCH 3/6] opti --- MML Python, Ch.02 Linear Algebra.ipynb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/MML Python, Ch.02 Linear Algebra.ipynb b/MML Python, Ch.02 Linear Algebra.ipynb index 152ec7f0..dbc0230a 100644 --- a/MML Python, Ch.02 Linear Algebra.ipynb +++ b/MML Python, Ch.02 Linear Algebra.ipynb @@ -156,15 +156,15 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 57, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2020-10-22T01:26:48.690635\n image/svg+xml\n \n \n Matplotlib v3.3.0, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "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4ABbt26lXLlyx+y3f/9+UlNT6dWrF926dftte6VKlShcuDCFChXi+uuv56uvvvrtvj179lCiRIl8xRdJnvDjVHIyzJplo3imTrVibP/3f97ad9HTq1cvxo0bR/Xq1RERqlevzrhx4+jVq1een7NMmTIcPHgwR0l/8ODBTJp07BzQLl268PLLLwMwceJELrroIkKnGH+jqvTr149atWpxxx13HHXfugytp0mTJlG3bt3fbn///fdH3Y452dVNjoVLItTDj4bvvlNt0cJW2GrbVnXlyqAjcgVVLNTD79u371FLBTZv3lzLly+vxYsX1ypVqui7776rqqqdOnXSzz///JjH7969W7t3765nn322nn/++bpixQpVVV2zZo126NBBVVU/+eQTBbRevXq/LU/49ttvq6rq1VdfrXXr1tV69epp586dde3atb8994ABA3Ty5MkR+90z8yUOXZYOHlQdNUr15JNVS5ZUHTlS9cCBoKNyBU0sJPy5c+fq1VdffcL92rVrF4VojtizZ482adJE9+/fH7Vj+hKHLkuFCsFNN1kxtlat4NZbbez+0qVBR+Zc7jRs2JA2bdr8NvEqO+9FeXzyjz/+yBNPPEGRIkWietzc8ISfYKpVg7ffhldescqbycl2kteLsbmCpG/fvr9NvIoVNWvWpHXr1kGHcVye8BOQCFx9tbXuL78c7r8fUlJg7tygI3MFgfqZ/5iQl7+DJ/wEVrEivPYaTJoEGzdaBc6BA2H37qAjc7GqePHibN682ZN+wFSVzZs3U7x48Vw9zhcxdwD8+ivcfTe8+CLUrGk/W7YMOioXa/bv3096enq+x8K7/CtevDhVq1alaNGiR20/3iLmnvDdUT74AK6/Hn74wU7yPvEEhCYYOucKgOMlfO/ScUe5+GJYtAhuvx3GjLFibKHqr865As4TvjtGqVLw9NPw+edQujR06gTXXAObNgUdmXMuPzzhu2w1bQpffw0PPACvvmrlGV57zcszOFdQecJ3x3XSSfDwwzZks3p16NHDhnLGcEFA51w2POG7HKlfH774AoYPh2nTrLX/4ove2neuIPGE73KsSBG46y47qZucbKN52raFlSuDjsw5lxPhXMR8lYgsEpH5InLMWEoxz4rIchFZKCINw3VsF13nnAMffghjx1rd/bp14Zln4ASlTZxzAQt3C7+NqiZnMwa0A1Az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TX6qUsX61NasgYEDbbbcihU287VpU0/2UZbvPnwREWA8sFRVn85mn9OB9aqqItIY+6DZnN9jO5cXl15qI3nuvReee85KoI8bZ0O6XR4tX35ktuvs2batfn146CFrydeu7bPhYkA4xixcCFwDLBKR+aFt9wLVAFR1DNAduElEDgC7gR4ayzO+XNwrXdoq5F51lRVhu/RSO8n79NM2QMTlwJIlluAnToSFC21bSoot4N2tG9Q8Ya+tizKfaesS3p49VprhySftXOLzz1u+cpmowvz5R1ry335rrfYLLrBWfLduUL160FEmvOP14XvCdy5k3jzo29dyWmqqdfecfnrQUQXs0CHropk40YY7rVxp/e6tWx8pTla5ctBRugy8tIJzOXDeefDVV1Z2+eGHbVb/M8/YpM+E6n4+eBA+++xIcbL0dBsmefHFVreia1f7KuQKHG/hO5eFb7+1vv3PPrOTuWPHQlJS0FFF0P79Nmxy4kRbUmz9els1vn17a8l37gynnRZ0lC4HvIXvXC6de64VZxw92mbp1q0Ljz9uIwzjZiTh3r1WUzotzerXbNkCpUodKU7WsaOd3XZxw1v4zp3A6tVwww1Wn+fCC+HFF+0DoUDatcsmIqSlwZQptjr8qadaCz411YYrlSgRdJQuH7yF71w+VK8O77wDr7wCt91mtXgefNDW2igQFQC2b7eiZGlpVqRs1y4oV85q1nTvbn3zxYoFHaWLAm/hO5cL69fDzTdbV3dyspVnaNgw6Kiy8MsvNqMsLQ2mTbPum9NPP1KBslUrLx0apyJeWsG5RFGpErz+uuXRn3+2UjCDB1sZ98Bt2GBThi+91CpP9uljY0xvuslWh0lPh1GjrEXvyT4heQvfuTz65Re46y4rufy731lrv3nzKAexZs2R4mQff2zj5s8++0hxsvPPT7Axpc5b+M5FQJkyluSnT7fV+Fq0sO6e7dsjfOBVq2DECJvhWrUq3HKLte6HDLEW/bJltr5j48ae7N1R/Hudc/nUti0sWmR19p991tb1GDvWhrCHzfffH6lb8/XXti05Gf76V2vJF9hhQy6avIXvXBicfLJVBP7sMxvK3qED9O4Nm/NaE1bVPkUeegjq1YPf/97KexYtakV/VqywWhBDhniydznmLXznwqhZM8vDf/2rFY18912rydO9ew56V1StXvzh4mTLltmDWrSA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\n" + "image/svg+xml": "\n\n\n\n \n \n \n \n 2020-10-22T01:57:43.131985\n image/svg+xml\n \n \n Matplotlib v3.3.0, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD4CAYAAADvsV2wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAA0wElEQVR4nO3dd3hUZfbA8e+hSRGVaiHShFV6hEgTKYJIFZdYYJEfiArWta5iw15QQVFRRNF11bUssSAiggpWVHpXKYIE6Si9c35/nAFCSCAhM3MnM+fzPPMwuXPn3pPJcOad933veUVVcc45F/8KBB2Ac8656PCE75xzCcITvnPOJQhP+M45lyA84TvnXIIoFHQAh1O2bFmtXLly0GE451y+MXXq1LWqWi6rx2I64VeuXJkpU6YEHYZzzuUbIrI0u8e8S8c55xKEJ3znnEsQnvCdcy5BxHQfvnMutuzatYv09HS2b98edCgJr2jRoiQlJVG4cOEcP8cTvnMux9LT0ylZsiSVK1dGRIIOJ2GpKuvWrSM9PZ0qVark+HnepeOcy7Ht27dTpkwZT/YBExHKlCmT629anvCdc7niyT42HM3fIS4T/kMPweTJQUfhnHOxJe4S/vr18NJL0Lgx/OtfsHVr0BE551xsiLuEX7o0zJ0LV14JTz0F9erBxIlBR+Wcc8GLu4QPcPzx1sr/8ktQhVat4OqrYcOGoCNzzoXLnj17OPPMM+nUqVO+Pkd2KleuTJ06dUhOTiYlJSUsx4zLhL9Pq1Ywaxbceiu8/DLUqgWjRwcdlXMuHIYMGUKNGjXyfJyJEyfSu3fviJ7jaE2YMIEZM2aEraZYXCd8gOLFrWtn0iQoVQo6d4Z//APWrAk6Mufc0UpPT+eTTz7hyiuvPGh7q1atGD9+PAD33HMPN9xwQ0yfI9oS5sKrhg1h6lR47DF45BEYPx6efRa6dQOfZeZc7t10E8yYEd5jJifDM8/k5Nw38cQTT7Bp06aDtj/wwAMMGDCA1atXM336dEaNGnXUsYT7HOecc84hxwJ46qmnaNOmzSHbRYS2bdsiIvTr14++ffse3S+SQcIkfIAiReC++yA1Fa64wlr6//0vvPgiJCUFHZ1zLidGjx5N+fLladCgARMzzcho3rw5qsrgwYOZOHEiBQsWZPHixTzyyCNs2LCBkSNH7t+3UaNG7Nixg82bN7N+/XqSk5MBGDhwILt27crVOT788EM++eQTNm7cyBVXXEHbtm0Pifubb77J1e/57bffUqFCBVavXs15553HGWecQfPmzXN1jEOoaszeGjRooJGye7fq4MGqxYqpHnec6ksvqe7ZE7HTORcX5s2bF3QI2r9/f61QoYJWqlRJTzzxRC1WrJj26NFDVVVnzZql1atX18aNGx/yvNTU1CyPN2HCBO3Vq1dYzrF+/Xrt06dPludp1qyZ1qtX75Db+PHjj/g733ffffrkk08esj2rvwcwRbPJqYEn9cPdIpnw91m4ULVVK3slWrZUXbAg4qd0Lt+KhYSf0YQJE7Rjx46qqvrHH39onTp1dN68edqmTRv99NNPD9o3Nwn/aM9xyy236NSpU/PwG5nNmzfrxo0b999v0qTJIedSzX3Cz9WgrYi8KiKrRWROhm2lRWS8iCwI/Vsqm+f2Cu2zQER65e17Sficdhp88YXN4pk2DerUsUHe3buDjsw5l1Nbt26la9euDBo0iBo1anDvvffywAMPRO0cqsodd9xB+/btqV+/fp7PtWrVKpo1a0a9evVo2LAhHTt2pF27dnk+bq5a3EBzoD4wJ8O2J4D+ofv9gYFZPK80sDj0b6nQ/VJHOl80WvgZpaerdu5srf2zzlKdNSuqp3cu5sVaCz8n1q5dq/369dOqVavqo48+GpFzDBkyROvXr6/9+vXTF198MSLnyEpuW/hij+eciFQGRqtq7dDPvwAtVXWFiJwMTFTV0zM9p3ton36hn18K7ff24c6VkpKi0V7TVhXeew9uuAH+/BPuustuxxwT1TCci0nz588PdF66O1hWfw8RmaqqWV6pFY55+Ceq6orQ/ZXAiVnsUwFYluHn9NC2mCMCl14K8+bZvw8+CA0awI8/Bh2Zc87lTVgvvAp9ncjdV4ZMRKSviEwRkSlrArw6qmxZePNNuzJ3wwZo0gRuuQW2bAksJOecy5NwJPxVoa4cQv+uzmKf5cCpGX5OCm07hKoOV9UUVU0pV65cGMLLm44drRjb1VfD00/boO4XXwQdlXPO5V44Ev4oYN+sm17AR1ns8xnQVkRKhWbxtA1tyxeOOw5eeMGqbhYsCG3awFVXwV9/BR2Zc87lXG6nZb4NTAJOF5F0EbkCeBw4T0QWAG1CPyMiKSLyCoCqrgceAiaHbg+GtuUrLVpYMbbbb4dXX4WaNeGjrD7enHMuBuUq4atqd1U9WVULq2qSqo5Q1XWq2lpVq6tqm32JXFWnqOqVGZ77qqpWC91eC/cvEi3FisHAgTaIW7YsXHih1eNZnVVHlnPOxZC4r5YZKSkpMGWKLaf4wQdQo4YN8uZylqtzzkWNJ/w8KFIE7rkHpk+Hv/0NevaETp1g2bIjP9c556LNE34Y1KwJ335rZV0nTrSfX3wR9u4NOjLnnDvAE36YFCwIN94Ic+bYAurXXgstW8KvvwYdmXPxZdmyZbRq1YqaNWtSq1YthgwZEpbjBrmcYZ8+fShfvjy1a9eO6Hk84YdZlSowbhyMGGEzeurVgyee8GJszoVLoUKFGDRoEPPmzeOHH35g6NChzJs3L8/HDXI5w969ezN27NiIn8cTfgSIQJ8+Vp6hXTu44w5o1Ahmzgw6Mufyv5NPPnl/RcqSJUtSo0YNli+36ziPdvnB7JYzzMsxc6N58+aULl067MfNLKFWvIq2U06B99+HtDS47jqb2dO/vw30ejE2l+8FucZhyJIlS5g+fTqNGjUCjn75weyWMzzaY+Z2OcNo8YQfYSJw0UXQqpXV4nn4YfsAeOUVaNo06Oicy782b95MamoqzzzzDMcddxyQuyUO9znckolZHfPjjz8O+3KGUZNd3eRYuEW7Hn40fPqpasWKqiKq//yn6qZNQUfkXM7FSj38nTt3atu2bXXQoEEHbc/pEofPP//8/iUGe/fune1yhoc7ZriXM/ztt9+0Vq1aOfr99/ElDvOBjRtVr7vOXv3KlVXHjQs6IudyJhYS/t69e7Vnz5564403HrT9aJc4zCjjcoZHOma4ljPcJxoJ3wdtA1CyJDz/PHz9tV281batDfL++WfQkTkX+7777jveeOMNvvzyS5KTk0lOTmbMmDFhX+IwuyUNVcO7nCFA9+7dadKkCb/88gtJSUmMGDEiLMc9RHafBLFwi9cWfkbbtqneeadqwYKqJ52k+v77QUfkXPZioYWfW+Fe4jCo5QyzEvElDqMpiCUOgzJtGlxxhU16uOgieO45OOmkoKNy7mC+xGFsCWKJQxcG9evDTz/Bo4/Cxx9beYbXX/dibM658PGEH0MKF4Y777RWfo0a0Ls3tG8PS5cGHZlzLh54wo9BZ5wB33xj3Trffgu1atkgrxdjc87lRZ4TvoicLiIzMtw2ishNmfZpKSIbMuwzIK/njXcFCsD119t6us2awQ03QPPm8MsvQUfmEl0sj/slkqP5O+Q54avqL6qarKrJQANgK/BBFrt+s28/VX0wr+dNFJUqwaefwr//bbV56tWDxx6DXbuCjswloqJFi7Ju3TpP+gFTVdatW0fRokVz9bxwl1ZoDSxSVe91DiMR6NULzj/fWvp33QXvvWfr6p55ZtDRuUSSlJREeno6a9asCTqUhFe0aFGSkpJy9ZxwJ/xuwNvZPNZERGYCfwC3qercrHYSkb5AX4CKFSuGObz87aST4H//s4Js114LZ50F//oX3Hcf5PKD3rmjUrhwYapUqRJ0GO4ohW0evogUwZJ5LVVdlemx44C9qrpZRDoAQ1S1+pGOmUjz8HPrzz/h1lvhtddsecURI6yv3zmX2KI1D789MC1zsgdQ1Y2qujl0fwxQWETKhvHcCadUKevS+ewz2LEDzjnHBnmzqMjqnHNAeBN+d7LpzhGRk0REQvcbhs67LoznTlht29qyiv/8J7zwAtSubR8CzjmXWVgSvoiUAM4D3s+w7WoRuTr040XAnFAf/rNAN/Vh/rA59lgYMsTm7Bcvbqts9eoF69cHHZlzLpZ4LZ04s327LbIycCCULg1Dh0Jqqs30cc7FP6+lk0CKFrWEP3kyJCXBxRdbwl+xIujInHNB84Qfp5KT4ccf4fHHYcwYK8b22mtejM25ROYJP44VKgR33AGzZkGdOrbIStu28NtvQUfmnAuCJ/wE8Le/wcSJNovnhx9sJs+zz8KePUFH5pyLJk/4CaJAAbjmGivG1qIF3Hijzd2fPz/oyJxz0eIJP8FUrAiffAJvvGGVN5OTbZDXi7E5F/884ScgEbjsMmvdX3gh3HsvpKTA1KlBR+aciyRP+AmsfHl491344ANYswYaNrRB3m3bgo7MORcJnvAdF15otfb79IEnnrCa+19/HXRUzrlw84TvADjhBHj5Zfj8c9i92wZ2r70WNm4MOjLnXLh4wncHad0aZs+Gm2+GYcNsCueYMUFH5ZwLB0/47hAlSsDgwfD991CyJHTsCD17wtq1QUfmnMsLT/guW40bw7RpMGAAvPOOlWd4910vz+BcfuUJ3x3WMcfAAw/YlM1KlaBbNxvk/eOPoCNzzuWWJ3yXI3XrwqRJ8OSTMG6ctfZfecVb+87lJ57wXY4VKgS33WaDusnJcNVV0KYNLF4cdGTOuZwIW8IXkSUiMltEZojIIauWiHlWRBaKyCwRqR+uc7voqlYNvvwSXnrJ6u7Xrg1PP+3F2JyLdeFu4bdS1eRsVltpD1QP3foCL4b53C6KChSAvn3tgq1zz4VbboGmTW19XedcbIpml04X4D9qfgBOEJGTo3h+FwFJSfDxx/Df/1rXTv36Nsi7c2fQkTnnMgtnwldgnIhMFZG+WTxeAViW4ef00LaDiEhfEZkiIlPWrFkTxvBcpIhA9+7W2r/4Yrj/fmjQwLp7nHOxI5wJv5mq1se6bq4TkeZHcxBVHa6qKaqaUq5cuTCG5yKtXDl46y0YNQr+/NPm8d92G2zdGnRkzuUjf/wBX3wRkUOHLeGr6vLQv6uBD4CGmXZZDpya4eek0DYXZzp3toVWrroKBg2yKZ0TJwYdlXMxbOlSm/nQrJn1k158cUQWqQhLwheREiJSct99oC2QefhuFPB/odk6jYENqroiHOd3sef4460Wz5df2s+tWkG/frBhQ7BxORczFiyAxx+Hs86CypVt5sPmzTYI9u23ULhw2E9ZKEzHORH4QET2HfO/qjpWRK4GUNVhwBigA7AQ2ApcHqZzuxjWqpUton7ffVafZ/Ro+yDo3DnoyJyLMlUb6Bo5EtLS7IIWsIUoBg6Erl1tznMEicbwpZIpKSk6ZcohU/pdPvXTT3DFFTZ1s3t3GDLE+v2di1uqMH26Jfi0NFtXVATOPhtSUy3JV6wY1lOKyNRspsaHrYXv3BE1bGg1eR5/3NbRHTcOnn3Wkr99OXQuDuzda62bkSPh/ffht9+gYEFo2RJuvNGKUZ0czIx0b+G7QMyda639H3+ETp3gxRdtrMq5fGnPHut3T0uzJL98ufXBt2ljLfkuXaBs2aiE4i18F3Nq1YLvvrMW/t13WzG2J5+0mT0FvMKTyw927YIJEyzJf/ghrF4NRYtCu3b2NbZTJ1tKLoZ4C98FbvFiS/Rffmnfel9+OeJjV84dnR07YPx4S/IffWQXnJQoYasEXXQRtG8Pxx4baIjewncxrWpVW0t3xAi49VaoUwceeghuuskqdDoXqC1bYOxYS/KjR8OmTTbv+IILrLumbVsoVizoKHPEW/gupixfbounjxoFKSn2IVC3btBRuYSzcaMl97Q0+PRT2LbN+uAvvNCS/LnnQpEiQUeZJW/hu3yjQgXrDv3f/+D6660mz1132e2YY4KOzsW19eutpZGWZlPIdu602TSXX25JvnnzfP+V01v4LmatW2fdOm++aYO6I0ZYfR7nwmbVKmthpKXZAOzu3TYvPjXVbk2a5LtZBIdr4eev38QllDJl4I034JNP7Bt206Z29fmWLUFH5vK15cvhueegRQs45RS4+mqbK3/bbVbidckSuyz87LPzXbI/kvz9/cQlhA4dbN5+//5WX+rDD20mT+vWQUfm8o3ffjtwtesPP9i2WrXgnnusJV+nTkJc/RdfH18ubh13HLzwAnz1lXWjtmkDV14Jf/0VdGQuZv38MzzyiK3KU7Uq/Otf1i//yCP22Jw5Vqisbt2ESPbgLXyXzzRvDjNn2v/Tp56CMWPsKt0uXYKOzAVO1QqS7WvJz51r2xs3tqv6UlOhSpVgYwyYD9q6fGvqVCvPMHMmXHKJXbV74olBR+WiShWmTDmQ5BcutH73c86xBP/3vydczQ6fluni0r5lFJ94Ah580C7eGjIEevRImG/oiWnvXpg06UDdmqVLrZ+vVSvrtunSxT/5s+EtfBcX5s+31v6kSXZ1+7BhYa8664K0ezd8/bUl+Q8+gBUr7MKntm2tJX/BBVC6dNBRxgRv4bu4V6MGfPMNDB0Kd95pEzAGDrQZd3E2sy5x7NxpBZZGjrS6NWvXWgmDDh0syXfsaKP5Lsfy/F9BRE4VkQkiMk9E5orIjVns01JENojIjNBtQF7P61xmBQvCP/9pky+aNIHrrrNibL/+GnRkLse2bbPk/n//B+XL29e1996D886zxL9mjf3bvbsn+6MQjhb+buBWVZ0WWtd2qoiMV9V5mfb7RlU7heF8zh1WlSrw2Wfw+utw88026+6BB6wwWz6/Mj4+bd5s063S0uwquy1boFQpG3BNTbU5uEWLBh1lXMjz2z+0EPmK0P1NIjIfqABkTvjORY0I9O4N559vLf3+/a2h+OqrUK9e0NE5NmyAjz+2JD92LGzfbi36Hj2szHDLlhFZxDvRhbV3U0QqA2cCP2bxcBMRmSkin4pIrcMco6+ITBGRKWvWrAlneC4BnXyyTeQYOdKuqE9JsYsrt28POrIEtHatFUTq0MEWM+7Z06ZZXXUVTJwIf/wBL71k3Tee7CMibLN0RORY4CvgEVV9P9NjxwF7VXWziHQAhqhq9SMd02fpuHBav95q8bz+OpxxhuWepk2DjirOrVhhs2rS0uwy6T17rM9tX3Gyhg19VD3MIl48TUQKA2nAW5mTPYCqblTVzaH7Y4DCIhKdBR6dCyldGv79b+tB2LoVmjWzQd7Nm4OOLM78/js884xd/FShgvWpLV8Od9xhV8stWmRXvjZu7Mk+yvLchy8iAowA5qvq4Gz2OQlYpaoqIg2xD5p1eT23c0fj/PNtJs9dd8Hzz1sJ9OHDbUq3O0oLFx642nXyZNtWty7cf7+15GvW9KvhYkA45iycDfQEZovIjNC2u4CKAKo6DLgIuEZEdgPbgG4ay1d8ubhXsqRVyL30UivCdv75Nsg7eLBNEHE5MG+eJfiRI2HWLNuWkmILeHftCtWP2GvrosyvtHUJb/t2K83wxBM2ljh0qOUrl4kqzJhxoCX/88/Wam/a1FrxXbtCpUpBR5nwDteH7wnfuZDp06FPH8tpqanW3XPSSUFHFbC9e62LZuRIm+60eLH1u7dseaA42cknBx2ly8BLKziXA2eeCT/9ZGWXH3jArup/+mm76DOhup/37IHvvjtQnCw93aZJtm5tdSu6dLGvQi7f8Ra+c1n4+Wfr2//uOxvMfeklqFw56KgiaNcumzY5cqQtKbZqla0a366dteQ7d4YTTgg6SpcD3sJ3LpfOOMOKM774ol2lW7s2PPaYzTCMm5mEO3ZYTem0NKtfs349lChxoDhZhw42uu3ihrfwnTuCpUuhXz+rz3P22fDKK/aBkC9t3WoXIqSlwejRtjr88cdbCz411aYrFSsWdJQuD7yF71weVKoEn34Kb7wBN91ktXjuu8/W2sgXFQA2bbKiZGlpVqRs61YoU8Zq1lx0kfXNFykSdJQuCryF71wurFoF119vXd3JyVaeoX79oKPKwp9/2hVlaWkwbpx135x00oEKlC1aeOnQOBXx0grOJYoTT4T//c/y6MqVVgrmzjutjHvgVq+2S4bPP98qT/bubXNMr7nGVodJT4cXXrAWvSf7hOQtfOeO0p9/wm23Wcnlv/3NWvvNmkU5iOXLDxQn+/prmzd/2mkHipOddVaCzSl13sJ3LgJKlbIkP368rcZ3zjnW3bNpU4RPvGQJDBpkV7gmJcENN1jr/u67rUW/YIGt79iwoSd7dxD/XudcHrVpA7NnW539Z5+1dT1eesmmsIfNr78eqFszbZptS06Ghx+2lny+nTbkoslb+M6FwbHHWkXg776zqezt20OvXrDuaGvCqtqnyP33Q506cPrpVt6zcGEr+rNokdWCuPtuT/Yux7yF71wYNWliefjhh61o5NixVpPnooty0LuiavXi9xUnW7DAnnTOOTBkiM2wOfXUqPweLj55C9+5MDvmGHjoIZgyxfLzJZdYIcmhQ9+icuXKFChQgMqVK/PWW2/ZIOv339sK61Wq2CDrk0/a5P8XX7Rl/776ylZq8WTv8shn6TgXQbt3WwG2u+56i927+wJb9z9WvFAhhh97LD3++ssufDrvPOuPv+ACuzDKuaMQjSUO24nILyKyUET6Z/H4MSLybujxH0OLnTsX9woVsityy5e7i4zJHmDr7t3cvWMHvPWWzbIZPRouv9yTvYuYPCd8ESkIDAXaAzWB7iJSM9NuVwB/qmo14GlgYF7P61zM277drnbt1YsVK37Pcpfft2+Hf/zD6tk4F2HhaOE3BBaq6mJV3Qm8A3TJtE8X4PXQ/ZFA69BauM7Fly1bbOpkt25WM75LFxg1ioolSmS5e+HCFZk3L8oxuoQVjoRfAViW4ef00LYs91HV3cAGIMvvrSLSV0SmiMiUNWvWhCE85yJswwbrluna1ZL8xRfb6indu9s0nVWreOSllyhevPhBTytSpDiFCz/CmWfarJ6dOwOK3yWMmJulo6rDVTVFVVPK+ao6LlatW2c1FTp2tLo1l10GP/4IV1wBEybAihUH6toUKUKPHj0YPnw4lSpVQkSoVKkSr746nMWLe9C1K9x7r03Q8TkKLpLCMQ9/OZBxvlhSaFtW+6SLSCHgeOBoL0lxLhgrV9pqUGlpltT37LHpk9dfbxPtGzU67OooPXr0oEePHodsf/tt+zJwzTV2iFtvtSUWvSy9C7dwtPAnA9VFpIqIFAG6AaMy7TMK6BW6fxHwpcbyfFDn9lm2zC56at4cTjnFsvLvv8Ptt1tz/LffrK5NkyZ5Wgrrggtg7lz7gvDkk1C3rk2/dy6c8pzwQ33y1wOfAfOB91R1rog8KCIXhHYbAZQRkYXALcAhUzedixmLFln5gkaNoGJFW/Xkr79s1ZPZs23B20cfhQYNwlqc7IQTrBfoiy/seqyWLe3zZePGsJ3CJTi/8Mo5gPnzD5Q0mDHDtjVocKDM8N/+FtVwtmyBAQOsPs8pp1gxtg4dohqCy6e8PLJzmalaYr/3XqhZ02733gvFi1sXzW+/WZfNnXdGPdmDFWAbNMiqLhx3nI0NX3YZrF0b9VBcHPHiaS5xqMLkyQda8osWWb978+Zw3XVWnOyUU4KO8iCNGlk15Mces16kzz6D556DSy/1Uvcu97xLx8W3PXusmZyWBu+/b4OwhQrZMn+pqXZhVPnyQUeZI7Nn26Du5Mk2yPvCC1Ah8xUvLuEdrkvHW/gu/uzebVNcRo60aZQrV1oJy/PPtyucOne25arymTp1YNIk69ff1xP11FNw5ZXe2nc54y18Fx927LDpLWlp8NFHdmFU8eI20pmaap3gJUsGHWXYLFwIV10FEydCq1bw8su2lK1z3sJ38WnbNitdkJZm6wpu3GgjnJ07W5I//3xL+nGoWjX7fHvlFavGWaeOfXm58UYoWDDo6Fys8ha+y182bYIxYyzJjxlj8xdLl7a++NRUW2D2mGOCjjKq0tNtvv7o0bZu+YgRULt20FG5oHgL3+Vvf/5pLfi0NJumsmMHnHgi9OxpSb5FC1vrNUElJVkV5nffhRtugPr1banbO++0dVWc28db+C42rVljffFpafD55zYQm5R04EKopk297yILa9dat85//2ut/BEjrNXvEodfeOXyhz/+gKFD4dxz4aSTbFTy11/h5pvhhx9g6VKbonLOOZ7ss1G2rFVq/vhj+2LUpAncdhts3Xrk57r45106LlhLlx64EGrSJLs4qkYNuOsua8nXq+dzDo9Cp05WjO2OO+yK3Q8+sAHeVq2CjswFyVv4LvoWLIDHH7cC8JUrWz3gLVusJvDcuTBvHjz0ECQne7LPg+OPh2HDrJKziH1x6tfP1mtxiclb+C7yVC2R72vJz55t2xs2hIEDbaWoatWCjTGOtWwJs2bB/fdba3/0aPsg6Nw56MhctPmgrYsMVZg+3RL8yJHWFy8CZ59ti4V07Qqnnnrk47iwmjIF+vSxz9xu3eDZZ21VRhc/fFqmi469e22Zv30t+SVLbHC1ZUurKf/3v9tgrAtMSool/YEDrdds/HhL+t27e+9ZIvA+fJc3e/bY9f033GCLhTRtahmkZk2bE7hypU2rvOaafJHst23bRosWLdizZw8A7dq144QTTqBTp07ZPmfHjh1ceumlVKtWjUaNGrFkyZIjnmfs2LGcfvrpVKtWjccffzzLfQYPHkzNmjWpW7curVu3ZunSpfsfK1iwIMnJySQnJ3PBBRfs396tWzcWLFhw2HMXKWK1eKZPt560Hj2se2fZsiOG7fI7VT3qG/Ak8DMwC/gAOCGb/ZYAs4EZwJScHr9BgwbqYtDOnaqffabat69q+fKqoFq0qOqFF6q+8Ybqn38GHeFRe/755/WZZ57Z//Pnn3+uo0aN0o4dO2b7nKFDh2q/fv1UVfXtt9/WSy655LDn2L17t1atWlUXLVqkO3bs0Lp16+rcuXMP2e/LL7/ULVu2qKrqCy+8cNBxS5QokeWxJ06cqFdeeeVhz39wLKpPP61avLhqyZKqw4ap7tmT46e7GHS4HJvXhN8WKBS6PxAYmM1+S4CyuT2+J/wYsm2b6qhRqr16qZYqZW+dY49VvfRS1ffeU920KegIw6JJkyb622+/HbRtwoQJh034bdu21e+//15VVXft2qVlypTRvXv3Zrv/999/r23btt3/86OPPqqPPvroYeOaNm2aNm3adP/P2SX8PXv2aOXKlXXXrl2HPV5mixaptm5tf9YWLVR//TVXT3cx5HAJP09dOqo6Tm1NW4AfgKS8HM/FmC1brC/+H/+wmvEXXGDlhjt1sqtgV6+Gd96Biy+GY48NOto827lzJ4sXL6Zy5cq5et7y5cs5NTQAXahQIY4//njWrVuXo/0BkpKSWL58+WHPMWLECNq3b7//5+3bt5OSkkLjxo358MMP928vUKAA1apVY+bMmbn6HapWtf78V16xhcDq1rXF1HfvPuJTXT4SzkHbPsC72TymwDgRUeAlVR2e3UFEpC/QF6BixYphDM/lyMaNNm8vLQ0+/dQqUpYta0sspabaZO44LdCydu1aTjjhhKDDOMSbb77JlClT+Oqrr/ZvW7p0KRUqVGDx4sWce+651KlTh9NC9ZHLly/PH3/8QYMGDXJ1HhFbYKV9e7j2Wrj9dnjvPRuKqVs3rL+SC8gRW/gi8rmIzMni1iXDPncDu4G3sjlMM1WtD7QHrhOR5tmdT1WHq2qKqqaU8/li0bF+Pfz739ZyL1fORvEmTbL5e19+CStWWMH1du3iNtkDFCtWjO3bt+f6eRUqVGBZaMRz9+7dbNiwgTJlyuRof4D09HQqZLN01eeff84jjzzCqFGjOCZDFdB9+1etWpWWLVsyffr0/Y9t376dYsWK5fr32OeUU+zK3Pfeg99/t7XcBwywmnUun8uuryenN6A3MAkonsP97wduy8m+3ocfQStX2gjdeeepFipknbcVK6refLPqt98m7MhdUlKSbtu27aBtR+rDf/755w8atL344otVVTU9PV3PPffcQ/bftWuXVqlSRRcvXrx/0HbOnDmH7Ddt2jStWrWq/pqpQ339+vW6fft2VVVds2aNVqtW7aBB39q1a+uKFSty+Bsf3tq1qj172tujZk3VSZPCclgXQURw0LYdMA8od5h9SgAlM9z/HmiXk+N7wg+zZctUhwxRbd5cVcT+/NWrq/bvrzp5suphBhoTRZ8+fXT8+PH7f27WrJmWLVtWixYtqhUqVNCxY8eqquq9996rH330kaqqbtu2TS+66CI97bTT9KyzztJFixapqurkyZMPGpzN6JNPPtHq1atr1apV9eGHH96/PeNxW7dureXLl9d69eppvXr1tHPnzqqq+t1332nt2rW1bt26Wrt2bX3llVf2P3/lypV61llnhfEVMWPGqJ56qr1tbrpJdfPmsJ/ChUkkE/5CYBk23XIGMCy0/RRgTOh+VWBm6DYXuDunx/eEHwaLF6s++aRq48b25wbVWrVUBwxQnTXLk3wmU6dO1csuuywsx3ruuef2J+9oGTx48EEfAOG0YYPqtdfaW6hKFdUMn4suhhwu4XtphXj0888Hrnbd17dbv/6BWvKnnx5sfDHu1VdfpVevXhTMhyWYX3vtNXr27EmhQpG7iP6bb2xwd8ECG+YZNAhicKw7YR2utIIn/HigasVRRo60JD9vnm1v0sQSfNeuUKVKsDG6uLJtGzz4oE3dLF8eXngBLrww6KgceMKPT6pWFGVfS37hQihQwBYHSU21ujVJflmEi6ypU621P3OmXY7x3HO2+qQLjhdPixd798L331uCf/99mzNXqJDNjf/Xv6yJVb580FG6BNKgAUyebC39Bx6AL76wRckuu8yLscUib+HHut274euvDyT5lSttLnzbtlZmuHNnKF066CidY/58a+1PmmSXbLz0ktXTc9HlLfz8ZudOayqlpVkJg7VroVgx6NDBums6doTjjgs6SucOUqOGDei+8ALceSfUqmULm11zjfU2uuB5Cz9WbNsG48bZwOvHH9s6dCVLWgs+NdWaTMWLBx2lczmyZAn07Wv1eZo1sxo9PjksOryFH6s2b4YxY6wl/8knVqysVCkbcE1NhfPOgwyX0zuXX1SuDJ99Bq+/DjffbGvR338/3HabDTu5YHgLP9r++sta8Glp9j9i+3YbaN2X5Fu2hMKFg47SubBZuRKuu86GoOrXt2JsyclBRxW/vIUftLVrrS8+Lc1Wf9q1CypUgKuusiTfrJktBehcHDrppAOzh6+7zpZZvOMOW3WraNGgo0ss3sKPlBUrrORgWhp89ZUtBVilyoGrXRs29JEsl3DWr4dbb7XirGecYX37Z58ddFTx5XAtfM844fT77zYJuVkza8Ffdx0sXw79+8O0abBokU1YbtzYk71LSKVLw2uvWW/mtm12neA//2nDWS7yvEsnrxYuPPB9dfJk21a3ro1QpabaYt5+BYpzB2nbFubMgbvuguefh1GjYPhw2+4ix5uZR2PePCskUq8eVK9uLXiwSccLFth15gMG2ERkT/bOZenYY+HZZ23uftGicP75cPnl1u3jIsNb+Dmhagt97mvJ//yzJfKmTWHwYCtOVqlS0FE6ly+dfbb993roIRg40FbWHDrUviC78PJB2+zs3Qs//XSgpMHixdbv3rLlgeJkJ58cTGzOxakZM6zk8vTp9t/s+edtlo/LOZ+WmVN79sB33x1oyS9fbnPi27SxzsYuXWxBb+dcRCQnw48/2hfn++6zJZUHD4Zevbx3NBzy1IcvIveLyHIRmRG6dchmv3Yi8ouILBSR/nk5Z9jt2mXXf199ta3e3KKFVX1KSYH//AdWr7arYa+4wpO9c1FQuLDN058504bBLr/c+veXLAk6svwvHC38p1X1qeweFJGCwFDgPCAdmCwio1R1XhjOfXR27LAkn5Zm0wPWr4cSJawoWWqqFSk79tjAwnPOWe2dr76CYcPsA6B2bXjsMZvt7LOaj040XraGwEJVXayqO4F3gC5ROO/Btm61vvgePayUQefOdmFUhw7275o18O67cMklnuydixEFCsC119oUzn1z9s85x0oxu9wLR8K/XkRmicirIlIqi8crYAud75Me2pYlEekrIlNEZMqaNWvyFtnGjfD221Y3vlw5a71/9pktzTNmjHXXvPGGLRxSrFjezuWci5hKley/7H/+Y5PkkpPh0UetR9bl3BETvoh8LiJzsrh1AV4ETgOSgRXAoLwGpKrDVTVFVVPKlSuX+wPs2GEl+i64wFry//iHDcT26mU15leutOu527e3hUScc/mCCPTsaZfBXHgh3H23VSiZNi3oyPKP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\n" }, "metadata": { "needs_background": "light" @@ -182,7 +182,17 @@ "plt.plot(vals,y1,c=\"red\")\n", "idx = np.argwhere(np.diff(np.sign(y0 - y1))).flatten() # finds the intersection between two graphs\n", "plt.plot(vals[idx],y0[idx],'ko')\n", - "plt.legend([\"4$x_1$+4$x_2$ = 5\",\"2$x_1$-4$x_2$ = 1\",'('+str(np.round(vals[idx])[0].astype(int))+', ' + str(np.round(y0[idx],2)[0])+')']);" + "txt=(np.ceil(vals[idx][0]),np.round(y0[idx],2)[0])\n", + "plt.annotate(\n", + " txt,\n", + " xy=(vals[idx][0],y0[idx][0]),\n", + " xytext=(0, -30), # 30 points vertical offset\n", + " textcoords=\"offset points\",\n", + " ha=\"center\",\n", + " # va=\"bottom\",\n", + " )\n", + "\n", + "plt.legend([\"4$x_1$+4$x_2$ = 5\",\"2$x_1$-4$x_2$ = 1\"]);" ] }, { From 477648c4451633c981e1fe30142fc8e2c443b1dc Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 22 Oct 2020 21:39:49 +0800 Subject: [PATCH 4/6] reshape --- .vscode/settings.json | 12 +++ MML Python, Ch.02 Linear Algebra.ipynb | 128 ++++++++++++++++++++++++- 2 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..77382ee2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,12 @@ +{ + "python.testing.unittestArgs": [ + "-v", + "-s", + ".", + "-p", + "test_*.py" + ], + "python.testing.pytestEnabled": false, + "python.testing.nosetestsEnabled": false, + "python.testing.unittestEnabled": true +} \ No newline at end of file diff --git a/MML Python, Ch.02 Linear Algebra.ipynb b/MML Python, Ch.02 Linear Algebra.ipynb index dbc0230a..9313eaf0 100644 --- a/MML Python, Ch.02 Linear Algebra.ipynb +++ b/MML Python, Ch.02 Linear Algebra.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -136,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -275,6 +275,130 @@ "C" ] }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2020-10-22T21:38:30.696855\n image/svg+xml\n \n \n Matplotlib v3.3.0, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "from matplotlib.patches import Rectangle\n", + "from pylab import arrow\n", + "someX, someY = 0.4, 0.7\n", + "fig,ax = plt.subplots()\n", + "currentAxis = plt.gca()\n", + "for i in range(4):\n", + " currentAxis.add_patch(Rectangle((0, someY - 0.1*i), 0.1, 0.1,\n", + " alpha=1, edgecolor='black',facecolor='#FFDD8E'))\n", + " currentAxis.add_patch(Rectangle((0.1, someY - 0.1*i), 0.1, 0.1,\n", + " alpha=1, edgecolor='black',facecolor='#9F8EFF'))\n", + " currentAxis.add_patch(Rectangle((0.8, someY - 0.1*i), 0.1, 0.1,\n", + " alpha=1, edgecolor='black',facecolor='#FFDD8E'))\n", + " currentAxis.add_patch(Rectangle((0.8, someY-.4 - 0.1*i), 0.1, 0.1,\n", + " alpha=1, edgecolor='black',facecolor='#9F8EFF'))\n", + "arrow( .22, .6, .5, 0, length_includes_head = True, head_width = .05,color='black')\n", + "plt.annotate('reshape',xy=(0.4, 0.62),xytext=(0, 10), textcoords=\"offset points\",ha=\"center\",)\n", + "plt.annotate('A ∈ $R^{4×2}$',xy=(0, 0.82),xytext=(0, 10), textcoords=\"offset points\",ha=\"left\",)\n", + "plt.annotate('a ∈ $R^8$',xy=(0.8, 0.82),xytext=(0, 10), textcoords=\"offset points\",ha=\"left\",)\n", + "ax.set_aspect(\"equal\")\n", + "ax.axison = False" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, From 8298830e73caf41ec0fb359a600cb54f2d54195d Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 22 Oct 2020 23:07:49 +0800 Subject: [PATCH 5/6] mul --- MML Python, Ch.02 Linear Algebra.ipynb | 150 ++++++++++--------------- 1 file changed, 57 insertions(+), 93 deletions(-) diff --git a/MML Python, Ch.02 Linear Algebra.ipynb b/MML Python, Ch.02 Linear Algebra.ipynb index 9313eaf0..928f7fd2 100644 --- a/MML Python, Ch.02 Linear Algebra.ipynb +++ b/MML Python, Ch.02 Linear Algebra.ipynb @@ -2,14 +2,18 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import numpy.linalg as npl\n", "import pandas as pd\n", - "from IPython.core.interactiveshell import InteractiveShell" + "from IPython.core.interactiveshell import InteractiveShell\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.pyplot import figure\n", + "from matplotlib.patches import Rectangle\n", + "from pylab import arrow" ] }, { @@ -136,12 +140,11 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "import matplotlib.pyplot as plt\n", - "from matplotlib.pyplot import figure\n", + "\n", "vals = np.linspace(-10,10,10000)" ] }, @@ -277,14 +280,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2020-10-22T21:38:30.696855\n image/svg+xml\n \n \n Matplotlib v3.3.0, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2020-10-22T22:00:26.839284\n image/svg+xml\n \n \n Matplotlib v3.3.0, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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\n" }, "metadata": { @@ -293,8 +296,7 @@ } ], "source": [ - "from matplotlib.patches import Rectangle\n", - "from pylab import arrow\n", + "\n", "someX, someY = 0.4, 0.7\n", "fig,ax = plt.subplots()\n", "currentAxis = plt.gca()\n", @@ -315,90 +317,6 @@ "ax.axison = False" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -488,6 +406,45 @@ "np.dot(B,A)" ] }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2020-10-22T23:06:58.054826\n image/svg+xml\n \n \n Matplotlib v3.3.0, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOcAAADnCAYAAADl9EEgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFhElEQVR4nO3cvW4bRxiG0Vk74AwBp03sO3BjwK2L3FUuL10KtwbS5A5CpTbAWQHipEiQxNGPJWOWeuWcA2wjEh+Xy31AQsW3jDEKkOfZY58AcDNxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQihxQqoxxq1Hre1QShmzj1rb1UZzD3e9n38fre2mv7fWdpu8rw3n3vt6bXHUVje6v+pG99dGc1u98XNYxhjlNsuyjF9/O936+Jd6/epZ2WruGGO5z3OXZRnj4/upr7+8eFdmz9x87j2v1xaWZRkffv9l+ty3370pT23uTZ+Dn7UQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQSpwQ6s4FX63tr9a1Tw+41lbWtc8eW2ptp96Pz+/z3P2+XvV+OfW9tbYrvV/OHLn13NPxuN7rem2htXa1rusG91ct67rOHrvl3FPv/drnYPveRLbvPfD1bd/7e67te/CEfPPYJ8DTsyzLz6WUb2946Mcxxk/nPp+vlTh5sDHGD499Dv8H4uTBfHOehzh5MN+c5+EfQhBKnBBKnBBKnBBKnBBKnBBKnBBKnBBKnBBKnBBKnBBKnBBKnBBKnBDq/7zg69D75fczX7+13Wn20rCN514cj+vL2XPv//oWfP0114Ivsljw9c9cC77gCREnhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhPrc9r3DuvapG+pK+XNL3kZb/S56Pz7aNjkepu3bYe3rBvdXPW201W+bua1e9GO/dt/eGSfwePyshVDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFDihFRjjFuP1naHUsqYfbS2u3oqc1vbHf57XWptm1yXWtv086+1XTv/lKO2utF1rJvcX7XVs17LO7fvLcsyxsf3tz7+pZYX78pTmbu8eFfGGMsnf1uW8etvp6mvU0opr189K7Pnvn717Nr5p1iWZXz4/Zfpc99+96ZsNfec19LPWgglTgglTgglTgglTgglTgglTgglTgglTgglTgglTgglTgglTgglTgglTgglTgglTgglTgglTgj1zWOfAE/Tsiw/l1K+veGhH8cYP537fL5Gdy742u/rVe+X079dW9uV3i9nj91kbmu70/G4Pv/0b/urde3Tr0utraxrnz3z1Pvx+eefeX6ttat1XTe4jrWs6zp7bKm1nnrvZ7uWtu/dZ6bte9fM+Oa0fe9uftbyRcYYPzz2OXzt/EMIQokTQokTQokTQokTQokTQokTQokTQokTQokTQokTQokTQokTQokTQokTQokTQokTQokTQn1uwdeh98vvZ79oa7vTRovDps9tbXdxPK4vP/2bBV8ztH07rH2dfn/VWk+bLA5r9aIf+8vPP3OOO+PkZhZ8cQ5+1kIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIocUIoC76+QGv7w7r2DbbGtdPsrX61tovej2fbGMc84oRQftZCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCKHFCqD8A8qSIWq4rySYAAAAASUVORK5CYII=\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "someX, someY = 0.4, 0.7\n", + "fig,ax = plt.subplots()\n", + "currentAxis = plt.gca()\n", + "for i in range(3):\n", + " for i1 in range(2):\n", + " currentAxis.add_patch(Rectangle((.1*i1, someY - 0.1*i), 0.1, 0.1,alpha=1, edgecolor='black',facecolor='#D8E7FE'))\n", + " currentAxis.add_patch(Rectangle((.32+.1*i1, someY-.4 - 0.1*i), 0.1, 0.1,alpha=1, edgecolor='black',facecolor='#D8E7FE'))\n", + " i0=3 \n", + " while i0:\n", + " if i<2:\n", + " currentAxis.add_patch(Rectangle((0.15+0.1*i0, someY - 0.1*i), 0.1, 0.1,alpha=1,edgecolor='black',facecolor='#FFF4C7',clip_on=False))\n", + " currentAxis.add_patch(Rectangle((0.1*(i0-1), someY-.4 - 0.1*i), 0.1, 0.1,alpha=1,edgecolor='black',facecolor='#FFF4C7',clip_on=False))\n", + " i0>1 and currentAxis.add_patch(Rectangle((0.5+0.1*i0, someY-.4 - 0.1*i), 0.1, 0.1,alpha=1,edgecolor='black',facecolor='#D0EAD3',clip_on=False))\n", + " currentAxis.add_patch(Rectangle((0.6+0.1*i0, someY - 0.1*i), 0.1, 0.1,alpha=1,edgecolor='black',facecolor='#D0EAD3',clip_on=False))\n", + " i0-=1\n", + "plt.annotate('=',xy=(0.63, 0.62),xytext=(0, 10), textcoords=\"offset points\",ha=\"center\",)\n", + "plt.annotate('=',xy=(0.63, 0.28), textcoords=\"offset points\",ha=\"center\",)\n", + "ax.set_aspect(\"equal\")\n", + "ax.axison = False" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -496,6 +453,13 @@ "*Even if both matrix multiplciations $AB$ and $BA$ are defined, the dimensions of the results can be different.*" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 14, From a9f9ed340310e10f86c162ffd1eb033f0e9ce548 Mon Sep 17 00:00:00 2001 From: philipp Date: Mon, 9 Nov 2020 19:40:37 +0800 Subject: [PATCH 6/6] congruence class of a modulo --- Exercise.02.ipynb | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Exercise.02.ipynb diff --git a/Exercise.02.ipynb b/Exercise.02.ipynb new file mode 100644 index 00000000..a88db68a --- /dev/null +++ b/Exercise.02.ipynb @@ -0,0 +1,32 @@ +{ + "metadata": { + "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 + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "## congruence class of a modulo\n", + "\n", + "Let a and n be integers with n > 0. The congruence class of a modulo n, denoted\n", + "$[a]n$, is the set of all integers that are congruent to a modulo n; i.e.,\n", + "$[a]n = {z ∈ Z | a − z = kn\\: for\\: some\\: k ∈ Z}$ ." + ], + "cell_type": "markdown", + "metadata": {} + } + ] +} \ No newline at end of file