{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "**Math - Linear Algebra**\n", "\n", "*Linear Algebra is the branch of mathematics that studies [vector spaces](https://en.wikipedia.org/wiki/Vector_space) and linear transformations between vector spaces, such as rotating a shape, scaling it up or down, translating it (i.e. moving it), etc.*\n", "\n", "*Machine Learning relies heavily on Linear Algebra, so it is essential to understand what vectors and matrices are, what operations you can perform with them, and how they can be useful.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " \n", " \n", "
\n", " \"Open\n", " \n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Vectors\n", "## Definition\n", "A vector is a quantity defined by a magnitude and a direction. For example, a rocket's velocity is a 3-dimensional vector: its magnitude is the speed of the rocket, and its direction is (hopefully) up. A vector can be represented by an array of numbers called *scalars*. Each scalar corresponds to the magnitude of the vector with regards to each dimension.\n", "\n", "For example, say the rocket is going up at a slight angle: it has a vertical speed of 5,000 m/s, and also a slight speed towards the East at 10 m/s, and a slight speed towards the North at 50 m/s. The rocket's velocity may be represented by the following vector:\n", "\n", "**velocity** $= \\begin{pmatrix}\n", "10 \\\\\n", "50 \\\\\n", "5000 \\\\\n", "\\end{pmatrix}$\n", "\n", "Note: by convention vectors are generally presented in the form of columns. Also, vector names are usually lowercase to distinguish them from matrices (which we will discuss below) and in bold (when possible) to distinguish them from simple scalar values such as ${meters\\_per\\_second} = 5026$.\n", "\n", "A list of N numbers may also represent the coordinates of a point in an N-dimensional space, so it is quite frequent to represent vectors as simple points instead of arrows. A vector with 1 element may be represented as an arrow or a point on an axis, a vector with 2 elements is an arrow or a point on a plane, a vector with 3 elements is an arrow or a point in space, and a vector with N elements is an arrow or a point in an N-dimensional space… which most people find hard to imagine.\n", "\n", "\n", "## Purpose\n", "Vectors have many purposes in Machine Learning, most notably to represent observations and predictions. For example, say we built a Machine Learning system to classify videos into 3 categories (good, spam, clickbait) based on what we know about them. For each video, we would have a vector representing what we know about it, such as:\n", "\n", "**video** $= \\begin{pmatrix}\n", "10.5 \\\\\n", "5.2 \\\\\n", "3.25 \\\\\n", "7.0\n", "\\end{pmatrix}$\n", "\n", "This vector could represent a video that lasts 10.5 minutes, but only 5.2% viewers watch for more than a minute, it gets 3.25 views per day on average, and it was flagged 7 times as spam. As you can see, each axis may have a different meaning.\n", "\n", "Based on this vector our Machine Learning system may predict that there is an 80% probability that it is a spam video, 18% that it is clickbait, and 2% that it is a good video. This could be represented as the following vector:\n", "\n", "**class_probabilities** $= \\begin{pmatrix}\n", "0.80 \\\\\n", "0.18 \\\\\n", "0.02\n", "\\end{pmatrix}$\n", "\n", "**Pregunta 01: ¿Cuál es la convención para definir el nombre de un vector?**\n", "\n", "**Pregunta 02: ¿Por qué los tres elementos de `class_probabilities` suman 1?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Vectors in python\n", "In python, a vector can be represented in many ways, the simplest being a regular python list of numbers:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[10.5, 5.2, 3.25, 7.0]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[10.5, 5.2, 3.25, 7.0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we plan to do quite a lot of scientific calculations, it is much better to use NumPy's `ndarray`, which provides a lot of convenient and optimized implementations of essential mathematical operations on vectors (for more details about NumPy, check out the [NumPy tutorial](tools_numpy.ipynb)). For example:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10.5 , 5.2 , 3.25, 7. ])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "video = np.array([10.5, 5.2, 3.25, 7.0])\n", "video" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The size of a vector can be obtained using the `size` attribute:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "video.size" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The $i^{th}$ element (also called *entry* or *item*) of a vector $\\textbf{v}$ is noted $\\textbf{v}_i$.\n", "\n", "Note that indices in mathematics generally start at 1, but in programming they usually start at 0. So to access $\\textbf{video}_3$ programmatically, we would write:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.25" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "video[2] # 3rd element" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 03: ¿Cómo accedemos al 2º elemento del array `video`?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting vectors\n", "To plot vectors we will use matplotlib, so let's start by importing it (for details about matplotlib, check the [matplotlib tutorial](tools_matplotlib.ipynb)):" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2D vectors\n", "Let's create a couple of very simple 2D vectors to plot:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "u = np.array([2, 5])\n", "v = np.array([3, 1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These vectors each have 2 elements, so they can easily be represented graphically on a 2D graph, for example as points:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x_coords, y_coords = zip(u, v)\n", "plt.scatter(x_coords, y_coords, color=[\"r\",\"b\"])\n", "plt.axis([0, 9, 0, 6])\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vectors can also be represented as arrows. Let's create a small convenience function to draw nice arrows:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def plot_vector2d(vector2d, origin=[0, 0], **options):\n", " return plt.arrow(origin[0], origin[1], vector2d[0], vector2d[1],\n", " head_width=0.2, head_length=0.3, length_includes_head=True,\n", " **options)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's draw the vectors **u** and **v** as arrows:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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+PBh/eEPf1CzZs2UkpKi5s2ba8KECSotLbUdLSr27dunESNGqGnTpkpJSVGXLl20du3asL5HtZWNaN2aPhYdOHBA7dq104wZM2xHiapVq1YpJydHa9asUX5+vg4fPqxevXrpwIEDtqNFRaNGjXTfffdp3bp1Wrdunbp3764BAwZo8+bNtqNFzdq1azVr1iy1bdvWdpSoatWqlQoKCo48Nm3aZDtSVOzZs0ddu3ZVUlKSli1bpg8++EAPPPCA6tataztaxNauXVvhd1Z2cchBgwZZTha5P/3pT3r00Uc1Y8YMffjhh5o6daruv/9+PfTQQ7ajRcVNN92k/Px8zZkzR5s2bVKvXr3Uo0cPffXVV5X/JmHfuq2KzjvvPOfmm2+usO+ss85y7rjjjuqKUC0kOYsWLbIdwxU7d+50JDmrVq2yHcU1J598svPEE0/YjhEV+/btc8444wwnPz/f+eUvf+kMHz7cdqSoGDdunNOuXTvbMVwxduxY54ILLrAdo1oMHz7cOe2005zS0lLbUSLWp08fZ+jQoRX2XX755c51111nKVH0FBcXO4mJic7LL79cYX+7du2cu+++u9Lfp1qObBw6dEjr169Xr169Kuzv1auX3n777eqIgCgoLCyUpCrd8S/WlZSUaN68eTpw4ICysrJsx4mKnJwc9enTRz169LAdJeo+/vhjNWzYUM2aNdPVV1+tTz/91HakqFi6dKk6duyoQYMGqX79+urQoYMef/xx27Gi7tChQ3r22Wc1dOjQE97E00suuOAC/f3vf9eWLVskSf/85z/15ptv6tJLL7WcLHKHDx9WSUmJkpOTK+xPSUnRm2++WenvU6W7voarKremR2xxHEejRo3SBRdcoNatW9uOEzWbNm1SVlaWvv/+e5100klatGiRWrZsaTtWxObNm6f3338/7POqXnD++efrmWee0ZlnnqkdO3Zo4sSJ6tKlizZv3qyMjAzb8SLy6aefaubMmRo1apTuuusuvffee7rtttsUCAR0ww032I4XNYsXL9bevXv1m9/8xnaUqBg7dqwKCwt11llnKTExUSUlJZo0aZKuueYa29EilpqaqqysLN177706++yzdcopp2ju3Ll69913dcYZZ1T6+1RL2SgTzq3pEVtuvfVW/etf/wqryXpBixYttHHjRu3du1cLFixQdna2Vq1a5enCsX37dg0fPlyvvvrqMf8a8YPevXsf2W7Tpo2ysrJ02mmn6emnn9aoUaMsJotcaWmpOnbsqMmTJ0uSOnTooM2bN2vmzJm+KhtPPvmkevfurYYNG9qOEhXz58/Xs88+q7y8PLVq1UobN27UiBEj1LBhQ2VnZ9uOF7E5c+Zo6NChOvXUU5WYmKhzzjlHgwcP1vvvv1/p71EtZYNb03vbsGHDtHTpUq1evVqNGjWyHSeqatWqpdNPP12S1LFjR61du1YPPvigHnvsMcvJqm79+vXauXOnzj333CP7SkpKtHr1as2YMUPBYFCJiYkWE0ZXnTp11KZNG3388ce2o0QsMzPzmKJ79tlna8GCBZYSRd8XX3yh1157TQsXLrQdJWrGjBmjO+64Q1dffbUkU4K/+OILTZkyxRdl47TTTtOqVat04MABFRUVKTMzU1dddZWaNWtW6e9RLe/Z4Nb03uQ4jm699VYtXLhQ//jHP8L6H8urHMdRMBi0HSMil1xyiTZt2qSNGzceeXTs2FHXXnutNm7c6KuiIUnBYFAffvihMjMzbUeJWNeuXY/5ePmWLVvUtGlTS4mib/bs2apfv7769OljO0rUFBcXq0aNin+dJiYm+uajr2Xq1KmjzMxM7dmzRytWrNCAAQMq/dpqO40S6a3pY9n+/fu1devWI19/9tln2rhxo+rVq6cmTZpYTBaZnJwc5eXlacmSJUpNTT1yZCo9PV0pKSmW00XurrvuUu/evdW4cWPt27dP8+bN08qVK7V8+XLb0SKSmpp6zPtq6tSpo4yMDF+832b06NHq16+fmjRpop07d2rixIkqKiryxb8gR44cqS5dumjy5Mm68sor9d5772nWrFmaNWuW7WhRUVpaqtmzZys7O1s1a1brWXxX9evXT5MmTVKTJk3UqlUrbdiwQdOmTdPQoUNtR4uKFStWyHEctWjRQlu3btWYMWPUokULDRkypPLfJIqfkPlJDz/8sNO0aVOnVq1azjnnnOObj1C+/vrrjqRjHtnZ2bajReR4a5LkzJ4923a0qBg6dOiR/x9//vOfO5dcconz6quv2o7lCj999PWqq65yMjMznaSkJKdhw4bO5Zdf7mzevNl2rKh56aWXnNatWzuBQMA566yznFmzZtmOFDUrVqxwJDkfffSR7ShRVVRU5AwfPtxp0qSJk5yc7DRv3ty5++67nWAwaDtaVMyfP99p3ry5U6tWLadBgwZOTk6Os3fv3rC+B7eYBwAAruLeKAAAwFWUDQAA4CrKBgAAcBVlAwAAuIqyAQAAXEXZAAAArqJsAAAAV1E2AACAqygbAADAVZQNAADgKsoGAABw1f8Dd1/v59gVuJYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_vector2d(u, color=\"r\")\n", "plot_vector2d(v, color=\"b\")\n", "plt.axis([0, 9, 0, 6])\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 04: ¿Qué función de MatPlotLib usamos para dibujar una flecha?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3D vectors\n", "Plotting 3D vectors is also relatively straightforward. First, let's create two 3D vectors:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "a = np.array([1, 2, 8])\n", "b = np.array([5, 6, 3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's plot them using matplotlib's `Axes3D`:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "subplot3d = plt.subplot(111, projection='3d')\n", "x_coords, y_coords, z_coords = zip(a,b)\n", "subplot3d.scatter(x_coords, y_coords, z_coords)\n", "subplot3d.set_zlim3d([0, 9])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is a bit hard to visualize exactly where in space these two points are, so let's add vertical lines. We'll create a small convenience function to plot a list of 3d vectors with vertical lines attached:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def plot_vectors3d(ax, vectors3d, z0, **options):\n", " for v in vectors3d:\n", " x, y, z = v\n", " ax.plot([x,x], [y,y], [z0, z], color=\"gray\", linestyle='dotted', marker=\".\")\n", " x_coords, y_coords, z_coords = zip(*vectors3d)\n", " ax.scatter(x_coords, y_coords, z_coords, **options)\n", "\n", "subplot3d = plt.subplot(111, projection='3d')\n", "subplot3d.set_zlim([0, 9])\n", "plot_vectors3d(subplot3d, [a,b], 0, color=(\"r\",\"b\"))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 05: Explica detalladamente que hace la función `plot_vectors3d`.**\n", "\n", "**Pregunta 06: Modifica la función para que se proyecte también en el resto de ejes.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Norm\n", "The norm of a vector $\\textbf{u}$, noted $\\left \\Vert \\textbf{u} \\right \\|$, is a measure of the length (a.k.a. the magnitude) of $\\textbf{u}$. There are multiple possible norms, but the most common one (and the only one we will discuss here) is the Euclidian norm, which is defined as:\n", "\n", "$\\left \\Vert \\textbf{u} \\right \\| = \\sqrt{\\sum_{i}{\\textbf{u}_i}^2}$\n", "\n", "That's the square root of the sum of all the squares of the components of $\\textbf{u}$. We could implement this easily in pure python, recalling that $\\sqrt x = x^{\\frac{1}{2}}$" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "|| [2 5] || =\n" ] }, { "data": { "text/plain": [ "5.385164807134504" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def vector_norm(vector):\n", " squares = [element**2 for element in vector]\n", " return sum(squares)**0.5\n", "\n", "print(\"||\", u, \"|| =\")\n", "vector_norm(u)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, it is much more efficient to use NumPy's `norm` function, available in the `linalg` (**Lin**ear **Alg**ebra) module:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5.385164807134504" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy.linalg as LA\n", "\n", "LA.norm(u)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot a little diagram to confirm that the length of vector $\\textbf{u}$ is indeed $\\approx5.4$:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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69JLLzU9lqN27Nihn/70p2ptbTU9Sl5cc801+od/+AdddNFF6urq0sMPP6xrr71WBw8eVH19venxHPHhhx9q27Zt2rBhgx588EH95Cc/0b333qtQKKSvfOUrpsdz3CuvvKL+/n797u/+rulRHHX//fcrHA7r4osvVklJiSzL0iOPPKIvf/nLpkfLWUGCRUY2t1uHu61bt07//d//rXfffdf0KI5buHCh9u/fr/7+fr344otas2aNdu3a5ZtwcfToUa1fv15vvPGGysvLTY+TFytXrhz59WWXXaZly5bpggsu0A9+8ANt2LDB4GTOSafTWrp0qR599FFJ0pVXXqmDBw9q27ZtvgwWzzzzjFauXHnWW3Z7zfPPP6/nnntOzc3NWrRokfbv36/77rtPjY2NWrNmjenxclKQYJHL7dbhXl//+tf12muvaffu3ZozZ47pcRxXVlamz3zmM5KkpUuXqrW1VU888YS+973vGZ7MGfv27VN3d7euuuqqkecsy9Lu3bu1detWJRIJlZSUGJzQeVVVVbrsssv0/vvvmx7FMbNnzx4Tdi+55BK9+OKLhibKn8OHD+vNN9/USy+9ZHoUx/3RH/2RNm7cqC996UuSPg7Chw8f1pYtWzwbLArSseB26/5g27bWrVunl156ST/84Q+1YMEC0yMVhG3bSiQSpsdwzE033aQDBw5o//79I4+lS5fqjjvu0P79+30XKiQpkUjovffe0+zZs02P4pjrrrtuzOXehw4dmvQNIb3k2WefVUNDg2655RbTozguHo9r2rTRP4pLSko8fblpwU6FFMPt1gcGBvTBBx+MfPzRRx9p//79qqur07x58wxO5oympiY1Nzfr1VdfVXV19cgRqNraWlVUVBiezhkPPvigVq5cqblz5yoajWrHjh16++239frrr5sezTHV1dVjejFVVVWqr6/3TV/mm9/8platWqV58+apu7tbDz/8sCKRiGf/Bjieb3zjG7r22mv16KOP6nd+53f0k5/8RNu3b9f27dtNj+aodDqtZ599VmvWrFFpaUHP3hfEqlWr9Mgjj2jevHlatGiRfvazn+k73/mO1q5da3q03BXyEpQnn3zSnj9/vl1WVmb/yq/8iu8uU3zrrbdsSWMea9asMT2aI8ZbmyT72WefNT2aY9auXTvy3+g555xj33TTTfYbb7xheqy889vlpl/84hft2bNn28Fg0G5sbLQ///nP2wcPHjQ9luP+5V/+xV68eLEdCoXsiy++2N6+fbvpkRz37//+77Yku62tzfQoeRGJROz169fb8+bNs8vLy+3zzz/f/ta3vmUnEgnTo+WM26YDAADHcK8QAADgGIIFAABwDMECAAA4hmABAAAcQ7AAAACOIVgAAADHECwAAIBjCBYAAMAxBAsAAOAYggUAAHAMwQIAADiGYAEAABzz/wFjr0RfLCuE3AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "radius = LA.norm(u)\n", "plt.gca().add_artist(plt.Circle((0,0), radius, color=\"#DDDDDD\"))\n", "plot_vector2d(u, color=\"red\")\n", "plt.axis([0, 8.7, 0, 6])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 07: Dibuja otro vector en azul en el diagrama anterior que tenga la misma norma que el ya dibujado. Si usas un vector de números negativos deberás hacer que se vea en el diagrama.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks about right!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Addition\n", "Vectors of same size can be added together. Addition is performed *elementwise*:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " [2 5]\n", "+ [3 1]\n", "----------\n" ] }, { "data": { "text/plain": [ "array([5, 6])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(\" \", u)\n", "print(\"+\", v)\n", "print(\"-\"*10)\n", "u + v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at what vector addition looks like graphically:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_vector2d(u, color=\"r\")\n", "plot_vector2d(v, color=\"b\")\n", "plot_vector2d(v, origin=u, color=\"b\", linestyle=\"dotted\")\n", "plot_vector2d(u, origin=v, color=\"r\", linestyle=\"dotted\")\n", "plot_vector2d(u+v, color=\"g\")\n", "plt.axis([0, 9, 0, 7])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.text(0.7, 3, \"u\", color=\"r\", fontsize=18)\n", "plt.text(4, 3, \"u\", color=\"r\", fontsize=18)\n", "plt.text(1.8, 0.2, \"v\", color=\"b\", fontsize=18)\n", "plt.text(3.1, 5.6, \"v\", color=\"b\", fontsize=18)\n", "plt.text(2.4, 2.5, \"u+v\", color=\"g\", fontsize=18)\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vector addition is **commutative**, meaning that $\\textbf{u} + \\textbf{v} = \\textbf{v} + \\textbf{u}$. You can see it on the previous image: following $\\textbf{u}$ *then* $\\textbf{v}$ leads to the same point as following $\\textbf{v}$ *then* $\\textbf{u}$.\n", "\n", "Vector addition is also **associative**, meaning that $\\textbf{u} + (\\textbf{v} + \\textbf{w}) = (\\textbf{u} + \\textbf{v}) + \\textbf{w}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you have a shape defined by a number of points (vectors), and you add a vector $\\textbf{v}$ to all of these points, then the whole shape gets shifted by $\\textbf{v}$. This is called a [geometric translation](https://en.wikipedia.org/wiki/Translation_%28geometry%29):" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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aZPaQ9GkJk2aYPfu3Th37hyWLl2KUaNGYf369QznUtLS0jBx4kT88MMPCA4OVns4mjVgwIAL71955ZXo0qULEhMT8dFHH2HKlCkqjkxbioqK0KFDB8ycORMA0LZtW+zduxcLFy7EyJEjHfoaXpkxs10kecKECROwYsUKrF27FnFxcWoPR5OCgoKQlJSEDh06YNasWWjdujXmz5+v9rA0ZefOnThx4gTat2+PgIAABAQEYP369XjttdcQEBAAm82m9hA1KTQ0FFdeeSUOHTqk9lA0JTY29pJffJs1a+bURmevBDPbRZI7KYqC8ePHY9myZVizZg0aNGig9pB8hqIosFqtag9DU/r27Ys9e/Zg9+7dF946dOiAESNGYPfu3fD391d7iJpktVqxf/9+xMbGqj0UTenWrdsl5ZsHDx5E/fr1Hf4aXlvKrmq7SKPIzs5GSkrKhY8PHz6M3bt3o1atWkhISFBxZNoxbtw4LFq0CF9//TXCwsIurMREREQgJCRE5dFpx5NPPokBAwYgPj4eWVlZWLx4MdatW4dVq1apPTRNCQsLu2R/QmhoKCIjI7lvoZRHHnkEgwYNQkJCAk6cOIHp06fj/PnzGDVqlNpD05TJkyeja9eumDlzJm677TZs27YNb7/9Nt5++23Hv4gbdoc77I033lDq16+vBAUFKe3atWN5SznWrl2rALjkbdSoUWoPTTPKuz4AlA8++EDtoWnKvffee+H/t6ioKKVv377KDz/8oPawfALLpS51++23K7GxsUpgYKBSt25dZejQocrevXvVHpYmffPNN0rLli0Vs9msNG3aVHn77bed+ny2fSQiItIQnpVNRESkIQxmIiIiDWEwExERaQiDmYiISEMYzERERBrCYCYiItIQBjMREZGGMJiJiIg0hMFMRESkIQxmIiIiDWEwExERacj/A4viuf9X3JDxAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t1 = np.array([2, 0.25])\n", "t2 = np.array([2.5, 3.5])\n", "t3 = np.array([1, 2])\n", "\n", "x_coords, y_coords = zip(t1, t2, t3, t1)\n", "plt.plot(x_coords, y_coords, \"c--\", x_coords, y_coords, \"co\")\n", "\n", "plot_vector2d(v, t1, color=\"r\", linestyle=\":\")\n", "plot_vector2d(v, t2, color=\"r\", linestyle=\":\")\n", "plot_vector2d(v, t3, color=\"r\", linestyle=\":\")\n", "\n", "t1b = t1 + v\n", "t2b = t2 + v\n", "t3b = t3 + v\n", "\n", "x_coords_b, y_coords_b = zip(t1b, t2b, t3b, t1b)\n", "plt.plot(x_coords_b, y_coords_b, \"b-\", x_coords_b, y_coords_b, \"bo\")\n", "\n", "plt.text(4, 4.2, \"v\", color=\"r\", fontsize=18)\n", "plt.text(3, 2.3, \"v\", color=\"r\", fontsize=18)\n", "plt.text(3.5, 0.4, \"v\", color=\"r\", fontsize=18)\n", "\n", "plt.axis([0, 6, 0, 5])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, subtracting a vector is like adding the opposite vector." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multiplication by a scalar\n", "Vectors can be multiplied by scalars. All elements in the vector are multiplied by that number, for example:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.5 * [2 5] =\n" ] }, { "data": { "text/plain": [ "array([3. , 7.5])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(\"1.5 *\", u, \"=\")\n", "\n", "1.5 * u" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Graphically, scalar multiplication results in changing the scale of a figure, hence the name *scalar*. The distance from the origin (the point at coordinates equal to zero) is also multiplied by the scalar. For example, let's scale up by a factor of `k = 2.5`:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "k = 2.5\n", "t1c = k * t1\n", "t2c = k * t2\n", "t3c = k * t3\n", "\n", "plt.plot(x_coords, y_coords, \"c--\", x_coords, y_coords, \"co\")\n", "\n", "plot_vector2d(t1, color=\"r\")\n", "plot_vector2d(t2, color=\"r\")\n", "plot_vector2d(t3, color=\"r\")\n", "\n", "x_coords_c, y_coords_c = zip(t1c, t2c, t3c, t1c)\n", "plt.plot(x_coords_c, y_coords_c, \"b-\", x_coords_c, y_coords_c, \"bo\")\n", "\n", "plot_vector2d(k * t1, color=\"b\", linestyle=\":\")\n", "plot_vector2d(k * t2, color=\"b\", linestyle=\":\")\n", "plot_vector2d(k * t3, color=\"b\", linestyle=\":\")\n", "\n", "plt.axis([0, 9, 0, 9])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you might guess, dividing a vector by a scalar is equivalent to multiplying by its multiplicative inverse (reciprocal):\n", "\n", "$\\dfrac{\\textbf{u}}{\\lambda} = \\dfrac{1}{\\lambda} \\times \\textbf{u}$\n", "\n", "**Pregunta 08: ¿Cómo se lee el símbolo $\\lambda$?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Scalar multiplication is **commutative**: $\\lambda \\times \\textbf{u} = \\textbf{u} \\times \\lambda$.\n", "\n", "It is also **associative**: $\\lambda_1 \\times (\\lambda_2 \\times \\textbf{u}) = (\\lambda_1 \\times \\lambda_2) \\times \\textbf{u}$.\n", "\n", "Finally, it is **distributive** over addition of vectors: $\\lambda \\times (\\textbf{u} + \\textbf{v}) = \\lambda \\times \\textbf{u} + \\lambda \\times \\textbf{v}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Zero, unit and normalized vectors\n", "* A **zero-vector** is a vector full of 0s.\n", "* A **unit vector** is a vector with a norm equal to 1.\n", "* The **normalized vector** of a non-null vector $\\textbf{v}$, noted $\\hat{\\textbf{v}}$, is the unit vector that points in the same direction as $\\textbf{v}$. It is equal to: $\\hat{\\textbf{v}} = \\dfrac{\\textbf{v}}{\\left \\Vert \\textbf{v} \\right \\|}$\n", "\n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.gca().add_artist(plt.Circle((0, 0), 1, color='c'))\n", "plt.plot(0, 0, \"ko\")\n", "plot_vector2d(v / LA.norm(v), color=\"k\", zorder=10)\n", "plot_vector2d(v, color=\"b\", linestyle=\":\", zorder=15)\n", "plt.text(0.3, 0.3, r\"$\\hat{v}$\", color=\"k\", fontsize=18)\n", "plt.text(1.5, 0.7, \"$v$\", color=\"b\", fontsize=18)\n", "plt.axis([-1.5, 5.5, -1.5, 3.5])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 09: ¿Qué es $\\hat{\\textbf{v}}$ de $\\textbf{v}$?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dot product\n", "### Definition\n", "The dot product (also called *scalar product* or *inner product* in the context of the Euclidian space) of two vectors $\\textbf{u}$ and $\\textbf{v}$ is a useful operation that comes up fairly often in linear algebra. It is noted $\\textbf{u} \\cdot \\textbf{v}$, or sometimes $⟨\\textbf{u}|\\textbf{v}⟩$ or $(\\textbf{u}|\\textbf{v})$, and it is defined as:\n", "\n", "$\\textbf{u} \\cdot \\textbf{v} = \\left \\Vert \\textbf{u} \\right \\| \\times \\left \\Vert \\textbf{v} \\right \\| \\times cos(\\theta)$\n", "\n", "where $\\theta$ is the angle between $\\textbf{u}$ and $\\textbf{v}$.\n", "\n", "Another way to calculate the dot product is:\n", "\n", "$\\textbf{u} \\cdot \\textbf{v} = \\sum_i{\\textbf{u}_i \\times \\textbf{v}_i}$\n", "\n", "### In python\n", "The dot product is pretty simple to implement:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def dot_product(v1, v2):\n", " return sum(v1i * v2i for v1i, v2i in zip(v1, v2))\n", "\n", "dot_product(u, v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 10: ¿Qué hace la función `zip()`?**\n", "\n", "**Pregunta 11: El código de la función `dot_product()` es demasiado compacto. Haz que se entienda mejor usando más líneas de código.**\n", "\n", "> Nota: Si quieres entender para qué se utiliza el producto escalar puedes ver [este vídeo](https://www.youtube.com/watch?v=2x-KlV_a-Fg)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But a *much* more efficient implementation is provided by NumPy with the `np.dot()` function:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.dot(u, v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Equivalently, you can use the `dot` method of `ndarray`s:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.dot(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Caution**: the `*` operator will perform an *elementwise* multiplication, *NOT* a dot product:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " [2 5]\n", "* [3 1] (NOT a dot product)\n", "----------\n" ] }, { "data": { "text/plain": [ "array([6, 5])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(\" \",u)\n", "print(\"* \",v, \"(NOT a dot product)\")\n", "print(\"-\"*10)\n", "\n", "u * v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Main properties\n", "* The dot product is **commutative**: $\\textbf{u} \\cdot \\textbf{v} = \\textbf{v} \\cdot \\textbf{u}$.\n", "* The dot product is only defined between two vectors, not between a scalar and a vector. This means that we cannot chain dot products: for example, the expression $\\textbf{u} \\cdot \\textbf{v} \\cdot \\textbf{w}$ is not defined since $\\textbf{u} \\cdot \\textbf{v}$ is a scalar and $\\textbf{w}$ is a vector.\n", "* This also means that the dot product is **NOT associative**: $(\\textbf{u} \\cdot \\textbf{v}) \\cdot \\textbf{w} ≠ \\textbf{u} \\cdot (\\textbf{v} \\cdot \\textbf{w})$ since neither are defined.\n", "* However, the dot product is **associative with regards to scalar multiplication**: $\\lambda \\times (\\textbf{u} \\cdot \\textbf{v}) = (\\lambda \\times \\textbf{u}) \\cdot \\textbf{v} = \\textbf{u} \\cdot (\\lambda \\times \\textbf{v})$\n", "* Finally, the dot product is **distributive** over addition of vectors: $\\textbf{u} \\cdot (\\textbf{v} + \\textbf{w}) = \\textbf{u} \\cdot \\textbf{v} + \\textbf{u} \\cdot \\textbf{w}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculating the angle between vectors\n", "One of the many uses of the dot product is to calculate the angle between two non-zero vectors. Looking at the dot product definition, we can deduce the following formula:\n", "\n", "$\\theta = \\arccos{\\left ( \\dfrac{\\textbf{u} \\cdot \\textbf{v}}{\\left \\Vert \\textbf{u} \\right \\| \\times \\left \\Vert \\textbf{v} \\right \\|} \\right ) }$\n", "\n", "Note that if $\\textbf{u} \\cdot \\textbf{v} = 0$, it follows that $\\theta = \\dfrac{π}{2}$. In other words, if the dot product of two non-null vectors is zero, it means that they are orthogonal.\n", "\n", "Let's use this formula to calculate the angle between $\\textbf{u}$ and $\\textbf{v}$ (in radians):" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Angle = 0.8685393952858895 radians\n", " = 49.76364169072618 degrees\n" ] } ], "source": [ "def vector_angle(u, v):\n", " cos_theta = u.dot(v) / LA.norm(u) / LA.norm(v)\n", " return np.arccos(cos_theta.clip(-1, 1))\n", "\n", "theta = vector_angle(u, v)\n", "print(\"Angle =\", theta, \"radians\")\n", "print(\" =\", theta * 180 / np.pi, \"degrees\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note: due to small floating point errors, `cos_theta` may be very slightly outside the $[-1, 1]$ interval, which would make `arccos` fail. This is why we clipped the value within the range, using NumPy's `clip` function." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 12: Modifica la línea `cos_theta = u.dot(v) / (LA.norm(u) / LA.norm(v))` para que se entienda mejor.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Projecting a point onto an axis\n", "The dot product is also very useful to project points onto an axis. The projection of vector $\\textbf{v}$ onto $\\textbf{u}$'s axis is given by this formula:\n", "\n", "$\\textbf{proj}_{\\textbf{u}}{\\textbf{v}} = \\dfrac{\\textbf{u} \\cdot \\textbf{v}}{\\left \\Vert \\textbf{u} \\right \\| ^2} \\times \\textbf{u}$\n", "\n", "Which is equivalent to:\n", "\n", "$\\textbf{proj}_{\\textbf{u}}{\\textbf{v}} = (\\textbf{v} \\cdot \\hat{\\textbf{u}}) \\times \\hat{\\textbf{u}}$\n" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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O3r0qK655hpFRUVpxYoV+vLLL/Xss8+qYcOGZpcWUNnZ2RV+1p6VtH/729+aXFlgPfnkk3rllVc0d+5cffXVV3rqqaf09NNPa86cOd59kBEkV1xxhXHvvfdW2NaxY0fjkUceCVYJppNkvPvuu2aXEXSHDh0yJBlr1641u5Sga9SokfHaa6+ZXUZQFBYWGhdffLGRlZVlXHfddca4cePMLimgpkyZYnTv3t3sMoJu0qRJRq9evcwuw3Tjxo0zLrzwQqO0tNTsUgJq0KBBxujRoytsGzp0qHHnnXd69TlBmdkoLi7Wli1b1K9fvwrb+/Xrp//+97/BKAEmys/PlySfnhQYrlwulxYvXqwTJ04oNTXV7HKCIi0tTYMGDdJNN91kdilBs3v3brVo0UJt27bV7bffru+++87skgJu2bJlSklJ0W9/+1s1bdpUl112mV599VWzywqq4uJivfXWWxo9enS1TzyPFL169dKHH36ob775RpL0+eefa8OGDRo4cKBXn+PTI+a9dfjwYblcrkpPhm3WrFmlJ8gishiGoQkTJqhXr17q0qWL2eUE3M6dO5WamqpTp06pfv36evfdd9WpUyezywq4xYsXa+vWrcrOzja7lKC58sor9eabb6p9+/Y6ePCg0tPTdfXVVysnJ0eJiYlmlxcw3333nebNm6cJEyZo8uTJ2rRpkx544AHFxMTo7rvvNru8oHjvvfd07NgxjRo1yuxSAm7SpEnKz89Xx44dZbfb5XK5NGPGDA0fPtyrzwlK2PA4MwEahhHxqdDq7rvvPu3YsUMbNmwwu5Sg6NChg7Zv365jx45pyZIlGjlypNauXRvRgWP//v0aN26cPvjgA9WtW9fscoJmwIABZV937dpVqampuvDCC/XGG29owoQJJlYWWKWlpUpJSdHMmTMlSZdddplycnI0b948y4SNBQsWaMCAAWrRooXZpQTc22+/rbfeekuZmZnq3Lmztm/frvHjx6tFixYaOXJkjT8nKGHj/PPPl91urzSLcejQoUqzHYgc999/v5YtW6Z169apZcuWZpcTFNHR0broooskSSkpKcrOztaLL76o+fPnm1xZ4GzZskWHDh1Sz549y7a5XC6tW7dOc+fOlcPhkN1uN7HC4IiLi1PXrl21e/dus0sJqKSkpErh+ZJLLtGSJUtMqii4vv/+e61evVpLly41u5SgmDhxoh555BHdfvvtktzB+vvvv9esWbO8ChtB6dmIjo5Wz549y7p3PbKysnT11VcHowQEkWEYuu+++7R06VJ99NFHatu2rdklmcYwDDkcDrPLCKgbb7xRO3fu1Pbt28t+paSk6I477tD27dstETQkyeFw6KuvvlJSUpLZpQTUNddcU+lW9m+++abGT/4Od4sWLVLTpk01aNAgs0sJiqKiItWpUzEq2O12r299DdpllAkTJuiuu+5SSkqKUlNTlZGRoX379unee+8NVgmmOH78uL799tuy93v37tX27dvVuHFjtWrVysTKAictLU2ZmZn697//rfj4+LIZrQYNGig2Ntbk6gJn8uTJGjBggJKTk1VYWKjFixdrzZo1WrlypdmlBVR8fHylfpy4uDglJiZGdJ/OQw89pMGDB6tVq1Y6dOiQ0tPTVVBQ4NX/9sLRgw8+qKuvvlozZ87U7373O23atEkZGRnKyMgwu7SAKy0t1aJFizRy5Eidd15QuxBMM3jwYM2YMUOtWrVS586dtW3bNj333HMaPXq0dx/kr9tjauKvf/2r0bp1ayM6Otro0aOHJW6F/Pjjjw1JlX6NHDnS7NICpqrxSjIWLVpkdmkBNXr06LI/302aNDFuvPFG44MPPjC7LFNY4dbX2267zUhKSjKioqKMFi1aGEOHDjVycnLMLisoli9fbnTp0sWIiYkxOnbsaGRkZJhdUlCsWrXKkGTs2rXL7FKCpqCgwBg3bpzRqlUro27duka7du2Mxx57zHA4HF59js0wDMN/GQgAAKAino0CAAACirABAAACirABAAACirABAAACirABAAACirABAAACirABAAACirABAAACirABAAACirABAAACirABAAAC6v8DPxZL2m5W8NoAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "u_normalized = u / LA.norm(u)\n", "proj = v.dot(u_normalized) * u_normalized\n", "\n", "plot_vector2d(u, color=\"r\")\n", "plot_vector2d(v, color=\"b\")\n", "\n", "plot_vector2d(proj, color=\"k\", linestyle=\":\")\n", "plt.plot(proj[0], proj[1], \"ko\")\n", "\n", "plt.plot([proj[0], v[0]], [proj[1], v[1]], \"b:\")\n", "\n", "plt.text(1, 2, \"$proj_u v$\", color=\"k\", fontsize=18)\n", "plt.text(1.8, 0.2, \"$v$\", color=\"b\", fontsize=18)\n", "plt.text(0.8, 3, \"$u$\", color=\"r\", fontsize=18)\n", "\n", "plt.axis([0, 8, 0, 5.5])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Matrices\n", "A matrix is a rectangular array of scalars (i.e. any number: integer, real or complex) arranged in rows and columns, for example:\n", "\n", "\\begin{bmatrix} 10 & 20 & 30 \\\\ 40 & 50 & 60 \\end{bmatrix}\n", "\n", "You can also think of a matrix as a list of vectors: the previous matrix contains either 2 horizontal 3D vectors or 3 vertical 2D vectors.\n", "\n", "Matrices are convenient and very efficient to run operations on many vectors at a time. We will also see that they are great at representing and performing linear transformations such rotations, translations and scaling." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Matrices in python\n", "In python, a matrix can be represented in various ways. The simplest is just a list of python lists:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[[10, 20, 30], [40, 50, 60]]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[\n", " [10, 20, 30],\n", " [40, 50, 60]\n", "]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A much more efficient way is to use the NumPy library which provides optimized implementations of many matrix operations:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10, 20, 30],\n", " [40, 50, 60]])" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = np.array([\n", " [10,20,30],\n", " [40,50,60]\n", "])\n", "A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By convention matrices generally have uppercase names, such as $A$.\n", "\n", "In the rest of this tutorial, we will assume that we are using NumPy arrays (type `ndarray`) to represent matrices." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Size\n", "The size of a matrix is defined by its number of rows and number of columns. It is noted $rows \\times columns$. For example, the matrix $A$ above is an example of a $2 \\times 3$ matrix: 2 rows, 3 columns. Caution: a $3 \\times 2$ matrix would have 3 rows and 2 columns.\n", "\n", "To get a matrix's size in NumPy:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 3)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Caution**: the `size` attribute represents the number of elements in the `ndarray`, not the matrix's size:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "6" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.size" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Element indexing\n", "The number located in the $i^{th}$ row, and $j^{th}$ column of a matrix $X$ is sometimes noted $X_{i,j}$ or $X_{ij}$, but there is no standard notation, so people often prefer to explicitly name the elements, like this: \"*let $X = (x_{i,j})_{1 ≤ i ≤ m, 1 ≤ j ≤ n}$*\". This means that $X$ is equal to:\n", "\n", "$X = \\begin{bmatrix}\n", " x_{1,1} & x_{1,2} & x_{1,3} & \\cdots & x_{1,n}\\\\\n", " x_{2,1} & x_{2,2} & x_{2,3} & \\cdots & x_{2,n}\\\\\n", " x_{3,1} & x_{3,2} & x_{3,3} & \\cdots & x_{3,n}\\\\\n", " \\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", " x_{m,1} & x_{m,2} & x_{m,3} & \\cdots & x_{m,n}\\\\\n", "\\end{bmatrix}$\n", "\n", "However, in this notebook we will use the $X_{i,j}$ notation, as it matches fairly well NumPy's notation. Note that in math indices generally start at 1, but in programming they usually start at 0. So to access $A_{2,3}$ programmatically, we need to write this:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "60" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A[1,2] # 2nd row, 3rd column" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The $i^{th}$ row vector is sometimes noted $M_i$ or $M_{i,*}$, but again there is no standard notation so people often prefer to explicitly define their own names, for example: \"*let **x**$_{i}$ be the $i^{th}$ row vector of matrix $X$*\". We will use the $M_{i,*}$, for the same reason as above. For example, to access $A_{2,*}$ (i.e. $A$'s 2nd row vector):" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([40, 50, 60])" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A[1, :] # 2nd row vector (as a 1D array)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 13: Dada una matriz A, ¿`A[1, :]` devuelve una matriz o una array?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, the $j^{th}$ column vector is sometimes noted $M^j$ or $M_{*,j}$, but there is no standard notation. We will use $M_{*,j}$. For example, to access $A_{*,3}$ (i.e. $A$'s 3rd column vector):" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([30, 60])" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A[:, 2] # 3rd column vector (as a 1D array)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the result is actually a one-dimensional NumPy array: there is no such thing as a *vertical* or *horizontal* one-dimensional array. If you need to actually represent a row vector as a one-row matrix (i.e. a 2D NumPy array), or a column vector as a one-column matrix, then you need to use a slice instead of an integer when accessing the row or column, for example:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[40, 50, 60]])" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A[1:2, :] # rows 2 to 3 (excluded): this returns row 2 as a one-row matrix" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[30],\n", " [60]])" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A[:, 2:3] # columns 3 to 4 (excluded): this returns column 3 as a one-column matrix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Square, triangular, diagonal and identity matrices\n", "A **square matrix** is a matrix that has the same number of rows and columns, for example a $3 \\times 3$ matrix:\n", "\n", "\\begin{bmatrix}\n", " 4 & 9 & 2 \\\\\n", " 3 & 5 & 7 \\\\\n", " 8 & 1 & 6\n", "\\end{bmatrix}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An **upper triangular matrix** is a special kind of square matrix where all the elements *below* the main diagonal (top-left to bottom-right) are zero, for example:\n", "\n", "\\begin{bmatrix}\n", " 4 & 9 & 2 \\\\\n", " 0 & 5 & 7 \\\\\n", " 0 & 0 & 6\n", "\\end{bmatrix}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, a **lower triangular matrix** is a square matrix where all elements *above* the main diagonal are zero, for example:\n", "\n", "\\begin{bmatrix}\n", " 4 & 0 & 0 \\\\\n", " 3 & 5 & 0 \\\\\n", " 8 & 1 & 6\n", "\\end{bmatrix}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A **triangular matrix** is one that is either lower triangular or upper triangular." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A matrix that is both upper and lower triangular is called a **diagonal matrix**, for example:\n", "\n", "\\begin{bmatrix}\n", " 4 & 0 & 0 \\\\\n", " 0 & 5 & 0 \\\\\n", " 0 & 0 & 6\n", "\\end{bmatrix}\n", "\n", "You can construct a diagonal matrix using NumPy's `diag` function:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[4, 0, 0],\n", " [0, 5, 0],\n", " [0, 0, 6]])" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.diag([4, 5, 6])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you pass a matrix to the `diag` function, it will happily extract the diagonal values:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 5, 9])" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D = np.array([\n", " [1, 2, 3],\n", " [4, 5, 6],\n", " [7, 8, 9],\n", " ])\n", "np.diag(D)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, the **identity matrix** of size $n$, noted $I_n$, is a diagonal matrix of size $n \\times n$ with $1$'s in the main diagonal, for example $I_3$:\n", "\n", "\\begin{bmatrix}\n", " 1 & 0 & 0 \\\\\n", " 0 & 1 & 0 \\\\\n", " 0 & 0 & 1\n", "\\end{bmatrix}\n", "\n", "Numpy's `eye` function returns the identity matrix of the desired size:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 0., 0.],\n", " [0., 1., 0.],\n", " [0., 0., 1.]])" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.eye(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The identity matrix is often noted simply $I$ (instead of $I_n$) when its size is clear given the context. It is called the *identity* matrix because multiplying a matrix with it leaves the matrix unchanged as we will see below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding matrices\n", "If two matrices $Q$ and $R$ have the same size $m \\times n$, they can be added together. Addition is performed *elementwise*: the result is also an $m \\times n$ matrix $S$ where each element is the sum of the elements at the corresponding position: $S_{i,j} = Q_{i,j} + R_{i,j}$\n", "\n", "$S =\n", "\\begin{bmatrix}\n", " Q_{11} + R_{11} & Q_{12} + R_{12} & Q_{13} + R_{13} & \\cdots & Q_{1n} + R_{1n} \\\\\n", " Q_{21} + R_{21} & Q_{22} + R_{22} & Q_{23} + R_{23} & \\cdots & Q_{2n} + R_{2n} \\\\\n", " Q_{31} + R_{31} & Q_{32} + R_{32} & Q_{33} + R_{33} & \\cdots & Q_{3n} + R_{3n} \\\\\n", " \\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", " Q_{m1} + R_{m1} & Q_{m2} + R_{m2} & Q_{m3} + R_{m3} & \\cdots & Q_{mn} + R_{mn} \\\\\n", "\\end{bmatrix}$\n", "\n", "For example, let's create a $2 \\times 3$ matrix $B$ and compute $A + B$:" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1, 2, 3],\n", " [4, 5, 6]])" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B = np.array([[1, 2, 3], [4, 5, 6]])\n", "B" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10, 20, 30],\n", " [40, 50, 60]])" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[11, 22, 33],\n", " [44, 55, 66]])" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A + B" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Addition is *commutative***, meaning that $A + B = B + A$:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[11, 22, 33],\n", " [44, 55, 66]])" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B + A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**It is also *associative***, meaning that $A + (B + C) = (A + B) + C$:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[111, 222, 333],\n", " [444, 555, 666]])" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C = np.array([[100, 200, 300], [400, 500, 600]])\n", "\n", "A + (B + C)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[111, 222, 333],\n", " [444, 555, 666]])" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(A + B) + C" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Scalar multiplication\n", "A matrix $M$ can be multiplied by a scalar $\\lambda$. The result is noted $\\lambda M$, and it is a matrix of the same size as $M$ with all elements multiplied by $\\lambda$:\n", "\n", "$\\lambda M =\n", "\\begin{bmatrix}\n", " \\lambda \\times M_{11} & \\lambda \\times M_{12} & \\lambda \\times M_{13} & \\cdots & \\lambda \\times M_{1n} \\\\\n", " \\lambda \\times M_{21} & \\lambda \\times M_{22} & \\lambda \\times M_{23} & \\cdots & \\lambda \\times M_{2n} \\\\\n", " \\lambda \\times M_{31} & \\lambda \\times M_{32} & \\lambda \\times M_{33} & \\cdots & \\lambda \\times M_{3n} \\\\\n", " \\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", " \\lambda \\times M_{m1} & \\lambda \\times M_{m2} & \\lambda \\times M_{m3} & \\cdots & \\lambda \\times M_{mn} \\\\\n", "\\end{bmatrix}$\n", "\n", "A more concise way of writing this is:\n", "\n", "$(\\lambda M)_{i,j} = \\lambda (M)_{i,j}$\n", "\n", "In NumPy, simply use the `*` operator to multiply a matrix by a scalar. For example:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 20, 40, 60],\n", " [ 80, 100, 120]])" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 * A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Scalar multiplication is also defined on the right-hand side, and gives the same result: $M \\lambda = \\lambda M$. For example:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 20, 40, 60],\n", " [ 80, 100, 120]])" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A * 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This makes scalar multiplication **commutative**.\n", "\n", "It is also **associative**, meaning that $\\alpha (\\beta M) = (\\alpha \\times \\beta) M$, where $\\alpha$ and $\\beta$ are scalars. For example:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 60, 120, 180],\n", " [240, 300, 360]])" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 * (3 * A)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 60, 120, 180],\n", " [240, 300, 360]])" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(2 * 3) * A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, it is **distributive over addition** of matrices, meaning that $\\lambda (Q + R) = \\lambda Q + \\lambda R$:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 22, 44, 66],\n", " [ 88, 110, 132]])" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 * (A + B)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 22, 44, 66],\n", " [ 88, 110, 132]])" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 * A + 2 * B" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Matrix multiplication\n", "So far, matrix operations have been rather intuitive. But multiplying matrices is a bit more involved.\n", "\n", "A matrix $Q$ of size $m \\times n$ can be multiplied by a matrix $R$ of size $n \\times q$. It is noted simply $QR$ without multiplication sign or dot. The result $P$ is an $m \\times q$ matrix where each element is computed as a sum of products:\n", "\n", "$P_{i,j} = \\sum_{k=1}^n{Q_{i,k} \\times R_{k,j}}$\n", "\n", "The element at position $i,j$ in the resulting matrix is the sum of the products of elements in row $i$ of matrix $Q$ by the elements in column $j$ of matrix $R$.\n", "\n", "$P =\n", "\\begin{bmatrix}\n", "Q_{11} R_{11} + Q_{12} R_{21} + \\cdots + Q_{1n} R_{n1} &\n", " Q_{11} R_{12} + Q_{12} R_{22} + \\cdots + Q_{1n} R_{n2} &\n", " \\cdots &\n", " Q_{11} R_{1q} + Q_{12} R_{2q} + \\cdots + Q_{1n} R_{nq} \\\\\n", "Q_{21} R_{11} + Q_{22} R_{21} + \\cdots + Q_{2n} R_{n1} &\n", " Q_{21} R_{12} + Q_{22} R_{22} + \\cdots + Q_{2n} R_{n2} &\n", " \\cdots &\n", " Q_{21} R_{1q} + Q_{22} R_{2q} + \\cdots + Q_{2n} R_{nq} \\\\\n", " \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", "Q_{m1} R_{11} + Q_{m2} R_{21} + \\cdots + Q_{mn} R_{n1} &\n", " Q_{m1} R_{12} + Q_{m2} R_{22} + \\cdots + Q_{mn} R_{n2} &\n", " \\cdots &\n", " Q_{m1} R_{1q} + Q_{m2} R_{2q} + \\cdots + Q_{mn} R_{nq}\n", "\\end{bmatrix}$\n", "\n", "You may notice that each element $P_{i,j}$ is the dot product of the row vector $Q_{i,*}$ and the column vector $R_{*,j}$:\n", "\n", "$P_{i,j} = Q_{i,*} \\cdot R_{*,j}$\n", "\n", "So we can rewrite $P$ more concisely as:\n", "\n", "$P =\n", "\\begin{bmatrix}\n", "Q_{1,*} \\cdot R_{*,1} & Q_{1,*} \\cdot R_{*,2} & \\cdots & Q_{1,*} \\cdot R_{*,q} \\\\\n", "Q_{2,*} \\cdot R_{*,1} & Q_{2,*} \\cdot R_{*,2} & \\cdots & Q_{2,*} \\cdot R_{*,q} \\\\\n", "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", "Q_{m,*} \\cdot R_{*,1} & Q_{m,*} \\cdot R_{*,2} & \\cdots & Q_{m,*} \\cdot R_{*,q}\n", "\\end{bmatrix}$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's multiply two matrices in NumPy, using `ndarray`'s `np.matmul()` function:\n", "\n", "$E = AD = \\begin{bmatrix}\n", " 10 & 20 & 30 \\\\\n", " 40 & 50 & 60\n", "\\end{bmatrix} \n", "\\begin{bmatrix}\n", " 2 & 3 & 5 & 7 \\\\\n", " 11 & 13 & 17 & 19 \\\\\n", " 23 & 29 & 31 & 37\n", "\\end{bmatrix} = \n", "\\begin{bmatrix}\n", " 930 & 1160 & 1320 & 1560 \\\\\n", " 2010 & 2510 & 2910 & 3450\n", "\\end{bmatrix}$" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 930, 1160, 1320, 1560],\n", " [2010, 2510, 2910, 3450]])" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D = np.array([\n", " [ 2, 3, 5, 7],\n", " [11, 13, 17, 19],\n", " [23, 29, 31, 37]\n", " ])\n", "E = np.matmul(A, D)\n", "E" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Python 3.5 [introduced](https://docs.python.org/3/whatsnew/3.5.html#pep-465-a-dedicated-infix-operator-for-matrix-multiplication) the `@` infix operator for matrix multiplication, and NumPy 1.10 added support for it. `A @ D` is equivalent to `np.matmul(A, D)`:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 930, 1160, 1320, 1560],\n", " [2010, 2510, 2910, 3450]])" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A @ D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `@` operator also works for vectors. `u @ v` computes the dot product of `u` and `v`:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u @ v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's check this result by looking at one element, just to be sure. To calculate $E_{2,3}$ for example, we need to multiply elements in $A$'s $2^{nd}$ row by elements in $D$'s $3^{rd}$ column, and sum up these products:" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2910" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "40*5 + 50*17 + 60*31" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2910" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E[1,2] # row 2, column 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks good! You can check the other elements until you get used to the algorithm.\n", "\n", "We multiplied a $2 \\times 3$ matrix by a $3 \\times 4$ matrix, so the result is a $2 \\times 4$ matrix. The first matrix's number of columns has to be equal to the second matrix's number of rows. If we try to multiply $D$ by $A$, we get an error because D has 4 columns while A has 2 rows:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 2 is different from 4)\n" ] } ], "source": [ "try:\n", " D @ A\n", "except ValueError as e:\n", " print(\"ValueError:\", e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> Es importante leer los errores ya que nos ayudarán mucho en nuestro futuro trabajo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This illustrates the fact that **matrix multiplication is *NOT* commutative**: in general $QR ≠ RQ$.\n", "\n", "In fact, $QR$ and $RQ$ are only *both* defined if $Q$ has size $m \\times n$ and $R$ has size $n \\times m$. Let's look at an example where both *are* defined and show that they are (in general) *NOT* equal:" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10, 20, 30],\n", " [40, 50, 60]])" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[5, 2],\n", " [4, 1],\n", " [9, 3]])" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F = np.array([\n", " [5,2],\n", " [4,1],\n", " [9,3]\n", " ])\n", "F" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[400, 130],\n", " [940, 310]])" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A @ F" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[130, 200, 270],\n", " [ 80, 130, 180],\n", " [210, 330, 450]])" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F @ A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On the other hand, **matrix multiplication *is* associative**, meaning that $Q(RS) = (QR)S$. Let's create a $4 \\times 5$ matrix $G$ to illustrate this:" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[21640, 28390, 27320, 31140, 13570],\n", " [47290, 62080, 60020, 68580, 29500]])" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G = np.array([\n", " [8, 7, 4, 2, 5],\n", " [2, 5, 1, 0, 5],\n", " [9, 11, 17, 21, 0],\n", " [0, 1, 0, 1, 2]])\n", "(A @ D) @ G # (AD)G" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[21640, 28390, 27320, 31140, 13570],\n", " [47290, 62080, 60020, 68580, 29500]])" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A @ (D @ G) # A(DG)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is also ***distributive* over addition** of matrices, meaning that $(Q + R)S = QS + RS$. For example:" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1023, 1276, 1452, 1716],\n", " [2211, 2761, 3201, 3795]])" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(A + B) @ D" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1023, 1276, 1452, 1716],\n", " [2211, 2761, 3201, 3795]])" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A @ D + B @ D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The product of a matrix $M$ by the identity matrix (of matching size) results in the same matrix $M$. More formally, if $M$ is an $m \\times n$ matrix, then:\n", "\n", "$M I_n = I_m M = M$\n", "\n", "This is generally written more concisely (since the size of the identity matrices is unambiguous given the context):\n", "\n", "$MI = IM = M$\n", "\n", "For example:" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10., 20., 30.],\n", " [40., 50., 60.]])" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A @ np.eye(3)" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10., 20., 30.],\n", " [40., 50., 60.]])" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.eye(2) @ A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Caution**: NumPy's `*` operator performs elementwise multiplication, *NOT* a matrix multiplication:" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([[ 10, 40, 90],\n", " [160, 250, 360]])" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A * B # NOT a matrix multiplication" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 14: ¿La matriz identidad es siempre una matriz cuadrada?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Matrix transpose\n", "The transpose of a matrix $M$ is a matrix noted $M^T$ such that the $i^{th}$ row in $M^T$ is equal to the $i^{th}$ column in $M$:\n", "\n", "$ A^T =\n", "\\begin{bmatrix}\n", " 10 & 20 & 30 \\\\\n", " 40 & 50 & 60\n", "\\end{bmatrix}^T =\n", "\\begin{bmatrix}\n", " 10 & 40 \\\\\n", " 20 & 50 \\\\\n", " 30 & 60\n", "\\end{bmatrix}$\n", "\n", "In other words, ($A^T)_{i,j}$ = $A_{j,i}$\n", "\n", "Obviously, if $M$ is an $m \\times n$ matrix, then $M^T$ is an $n \\times m$ matrix.\n", "\n", "Note: there are a few other notations, such as $M^t$, $M′$, or ${^t}M$.\n", "\n", "In NumPy, a matrix's transpose can be obtained simply using the `T` attribute:" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10, 20, 30],\n", " [40, 50, 60]])" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10, 40],\n", " [20, 50],\n", " [30, 60]])" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 15: ¿Al transponer una matriz no cuadrada cambia su forma (`shape`)?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you might expect, transposing a matrix twice returns the original matrix:" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10, 20, 30],\n", " [40, 50, 60]])" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.T.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Transposition is distributive over addition of matrices, meaning that $(Q + R)^T = Q^T + R^T$. For example:" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[11, 44],\n", " [22, 55],\n", " [33, 66]])" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(A + B).T" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[11, 44],\n", " [22, 55],\n", " [33, 66]])" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.T + B.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Moreover, $(Q \\cdot R)^T = R^T \\cdot Q^T$. Note that the order is reversed. For example:" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 930, 2010],\n", " [1160, 2510],\n", " [1320, 2910],\n", " [1560, 3450]])" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(A @ D).T" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 930, 2010],\n", " [1160, 2510],\n", " [1320, 2910],\n", " [1560, 3450]])" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D.T @ A.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A **symmetric matrix** $M$ is defined as a matrix that is equal to its transpose: $M^T = M$. This definition implies that it must be a square matrix whose elements are symmetric relative to the main diagonal, for example:\n", "\n", "\\begin{bmatrix}\n", " 17 & 22 & 27 & 49 \\\\\n", " 22 & 29 & 36 & 0 \\\\\n", " 27 & 36 & 45 & 2 \\\\\n", " 49 & 0 & 2 & 99\n", "\\end{bmatrix}\n", "\n", "The product of a matrix by its transpose is always a symmetric matrix, for example:" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 87, 279, 547],\n", " [ 279, 940, 1860],\n", " [ 547, 1860, 3700]])" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D @ D.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 16: Demuestra de manera empírica que la matriz anterior es una matriz simétrica.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Converting 1D arrays to 2D arrays in NumPy\n", "As we mentioned earlier, in NumPy (as opposed to Matlab, for example), 1D really means 1D: there is no such thing as a vertical 1D-array or a horizontal 1D-array. So you should not be surprised to see that transposing a 1D array does not do anything:" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([2, 5])" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([2, 5])" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 17: ¿Qué ocurre cuando transponemos una array 1D en NumPy?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to convert $\\textbf{u}$ into a row vector before transposing it. There are a few ways to do this:" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2, 5]])" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u_row = np.array([u])\n", "u_row" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice the extra square brackets: this is a 2D array with just one row (i.e. a $1 \\times 2$ matrix). In other words, it really is a **row vector**." ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2, 5]])" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u[np.newaxis, :]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is quite explicit: we are asking for a new vertical axis, keeping the existing data as the horizontal axis." ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2, 5]])" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u[np.newaxis]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is equivalent, but a little less explicit." ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2, 5]])" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u[None]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the shortest version, but you probably want to avoid it because it is unclear. The reason it works is that `np.newaxis` is actually equal to `None`, so this is equivalent to the previous version.\n", "\n", "Ok, now let's transpose our row vector:" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2],\n", " [5]])" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u_row.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Great! We now have a nice **column vector**.\n", "\n", "Rather than creating a row vector then transposing it, it is also possible to convert a 1D array directly into a column vector:" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2],\n", " [5]])" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u[:, np.newaxis]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting a matrix\n", "We have already seen that vectors can be represented as points or arrows in N-dimensional space. Is there a good graphical representation of matrices? Well you can simply see a matrix as a list of vectors, so plotting a matrix results in many points or arrows. For example, let's create a $2 \\times 4$ matrix `P` and plot it as points:" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "P = np.array([\n", " [3.0, 4.0, 1.0, 4.6],\n", " [0.2, 3.5, 2.0, 0.5]\n", " ])\n", "x_coords_P, y_coords_P = P\n", "plt.scatter(x_coords_P, y_coords_P)\n", "plt.axis([0, 5, 0, 4])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 18: ¿Qué hace la función `scatter()`? Puedes leerlo en [la documentación de W3Schools sobre Matplotlib](https://www.w3schools.com/python/matplotlib_scatter.asp)** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course, we could also have stored the same 4 vectors as row vectors instead of column vectors, resulting in a $4 \\times 2$ matrix (the transpose of $P$, in fact). It is really an arbitrary choice.\n", "\n", "Since the vectors are ordered, you can see the matrix as a path and represent it with connected dots:" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(x_coords_P, y_coords_P, \"bo\")\n", "plt.plot(x_coords_P, y_coords_P, \"b--\")\n", "plt.axis([0, 5, 0, 4])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or you can represent it as a polygon: matplotlib's `Polygon` class expects an $n \\times 2$ NumPy array, not a $2 \\times n$ array, so we just need to give it $P^T$:" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from matplotlib.patches import Polygon\n", "plt.gca().add_artist(Polygon(P.T))\n", "plt.axis([0, 5, 0, 4])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Geometric applications of matrix operations\n", "We saw earlier that vector addition results in a geometric translation, vector multiplication by a scalar results in rescaling (zooming in or out, centered on the origin), and vector dot product results in projecting a vector onto another vector, rescaling and measuring the resulting coordinate.\n", "\n", "Similarly, matrix operations have very useful geometric applications." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Addition = multiple geometric translations\n", "First, adding two matrices together is equivalent to adding all their vectors together. For example, let's create a $2 \\times 4$ matrix $H$ and add it to $P$, and look at the result:" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "image/png": "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ABg+fDj279+Pl156CXfffXeXz2EymWAymez3a2trAQDV1dVKm0tuEEURTU1NqKqqglarDXRzIgLPuX/xfPsXz7f/yd+XNptN+cE2BUwmk02tVtvef//9dtuffPJJ2+TJk7s85qabbrI9+eST7ba9//77No1GYzObzV0e84c//MEGgDfeeOONN9548+B26tQpJV/zNpvNZlPUY3D58mVYrVakpKS0256SkoLz5893ecz58+e73N9iseDy5ctdrlu9ZMkSLFy40H7/ypUr6NevH8rLyxEfH6+kyeSGuro6pKeno6KiAnFxcYFuTkTgOfcvnm//4vn2v9raWmRkZCAhIUHxsW6trigIQrv7Nput07bu9u9qu0yv10Ov13faHh8fzzeVH8XFxfF8+xnPuX/xfPsXz7f/qVTK5xgoOqJXr15Qq9WdegcuXrzYqVdAlpqa2uX+Go0GiYmJCptLREREvqQoMNDpdMjOzkZ+fn677fn5+Zg0aVKXx+Tm5nba/7PPPkNOTg6TUIiIiIKM4j6GhQsX4m9/+xveeustHDt2DE899RTKy8sxf/58AFJ+wMMPP2zff/78+Th79iwWLlyIY8eO4a233sL69euxaNEil59Tr9fjD3/4Q5fDC+R9PN/+x3PuXzzf/sXz7X+enHPBZlM+l+G1117Diy++iMrKSowcORJ//vOfMXnyZADAI488gjNnzqCgoMC+/65du/DUU0/hyJEj6N27N373u9/ZAwkiIiIKHm4FBkRERBSeuFYCERER2TEwICIiIjsGBkRERGTHwICIiIjsgj4wULrEM7lv9+7dmDVrFnr37g1BEPDhhx8GuklhbeXKlRg/fjxiY2ORnJyM2bNno6SkJNDNCmtr167F6NGj7RX4cnNz8emnnwa6WRFj5cqVEAQBv/3tbwPdlLC0bNkyCILQ7paamqr4cYI6MFC6xDN5prGxEddddx1effXVQDclIuzatQsLFizA3r17kZ+fD4vFghkzZqCxsTHQTQtbffv2xapVq7B//37s378f06ZNwx133IEjR44Eumlhb9++fXjjjTcwevToQDclrGVlZaGystJ+O3TokOLHCOrpihMmTMC4ceOwdu1a+7bhw4dj9uzZXS7xTN4jCAI++OADzJ49O9BNiRiXLl1CcnIydu3aZa8LQr6XkJCA//qv/8Kjjz4a6KaErYaGBowbNw6vvfYannvuOYwZMwarV68OdLPCzrJly/Dhhx+iuLjYo8cJ2h4Ds9mMAwcOYMaMGe22z5gxA998802AWkXkO7W1tQDg1mpopJzVasW7776LxsZG5ObmBro5YW3BggX46U9/ip/85CeBbkrYO3nyJHr37o3+/fvj/vvvx+nTpxU/hlurK/qDO0s8E4Uqm82GhQsX4sYbb8TIkSMD3ZywdujQIeTm5qKlpQUxMTH44IMPMGLEiEA3K2y9++67KCwsxL59+wLdlLA3YcIEbNq0CUOGDMGFCxfw3HPPYdKkSThy5IiiRQuDNjCQKV3imSgUPfHEEzh48CC+/vrrQDcl7A0dOhTFxcW4cuUKtm3bhnnz5mHXrl0MDnygoqICv/nNb/DZZ5/BYDAEujlhb+bMmfb/jxo1Crm5uRg4cCDefvttLFy40OXHCdrAwJ0lnolC0a9//Wts374du3fvRt++fQPdnLCn0+kwaNAgAEBOTg727duHV155Ba+//nqAWxZ+Dhw4gIsXLyI7O9u+zWq1Yvfu3Xj11VdhMpmgVqsD2MLwFh0djVGjRuHkyZOKjgvaHAN3lngmCiU2mw1PPPEE3n//fXz55Zfo379/oJsUkWw2G0wmU6CbEZZuueUWHDp0CMXFxfZbTk4OHnjgARQXFzMo8DGTyYRjx44hLS1N0XFB22MASEs8P/TQQ8jJyUFubi7eeOONdks8k3c1NDSgtLTUfr+srAzFxcVISEhARkZGAFsWnhYsWIAtW7bgo48+QmxsrL13LD4+HkajMcCtC09Lly7FzJkzkZ6ejvr6erz77rsoKCjAzp07A920sBQbG9spZyY6OhqJiYnMpfGBRYsWYdasWcjIyMDFixfx3HPPoa6uDvPmzVP0OEEdGNx3332oqqrCihUr7Es879ixA/369Qt008LS/v37MXXqVPt9eUxq3rx52LhxY4BaFb7kabg333xzu+0bNmzAI4884v8GRYALFy7goYceQmVlJeLj4zF69Gjs3LkT06dPD3TTiDz2ww8/4Oc//zkuX76MpKQkTJw4EXv37lX8nRnUdQyIiIjIv4I2x4CIiIj8j4EBERER2TEwICIiIjsGBkRERGTHwICIiIjsGBgQERGRHQMDIiIismNgQERERHYMDIiIiMiOgQERERHZMTAgIiIiu/8fmjyGDcC54Q8AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "H = np.array([\n", " [ 0.5, -0.2, 0.2, -0.1],\n", " [ 0.4, 0.4, 1.5, 0.6]\n", " ])\n", "P_moved = P + H\n", "\n", "plt.gca().add_artist(Polygon(P.T, alpha=0.2))\n", "plt.gca().add_artist(Polygon(P_moved.T, alpha=0.3, color=\"r\"))\n", "for vector, origin in zip(H.T, P.T):\n", " plot_vector2d(vector, origin=origin)\n", "\n", "plt.text(2.2, 1.8, \"$P$\", color=\"b\", fontsize=18)\n", "plt.text(2.0, 3.2, \"$P+H$\", color=\"r\", fontsize=18)\n", "plt.text(2.5, 0.5, \"$H_{*,1}$\", color=\"k\", fontsize=18)\n", "plt.text(4.1, 3.5, \"$H_{*,2}$\", color=\"k\", fontsize=18)\n", "plt.text(0.4, 2.6, \"$H_{*,3}$\", color=\"k\", fontsize=18)\n", "plt.text(4.3, 0.2, \"$H_{*,4}$\", color=\"k\", fontsize=18)\n", "\n", "plt.axis([0, 5, 0, 4])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we add a matrix full of identical vectors, we get a simple geometric translation:" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgYAAAGiCAYAAACcWg7FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABdHElEQVR4nO39fXxT9f0//j9OrtM06RW9hJZrkEvB4qRuIlXBwWSi6DZ1Ck79/Jwom51vHOo23VR0IkOHgBcIIgLOVUQnKp0KeAH7iYKiEwQEi6UXXLRJ2zTJSXK+fxySUXpBc3mSk8f9dutNc3pO8urpIXn09Xqe10uQJEkCEREREQCN0g0gIiKixMFgQEREREEMBkRERBTEYEBERERBDAZEREQUxGBAREREQQwGREREFMRgQEREREEMBkRERBTEYEBERERBEQWD+fPnQxAE/Pa3v+12vy1btqC0tBQmkwkDBgzAsmXLInlZIiIiipGwg8Enn3yCZ555BqNHj+52v4MHD2Lq1Km44IILsHPnTtxzzz2YM2cOKisrw31pIiIiipGwgkFLSwuuu+46PPvss8jKyup232XLlqGkpASLFi3CsGHDcPPNN+NXv/oVFixYEFaDiYiIKHZ04Rw0e/Zs/OQnP8Ell1yCBx98sNt9t23bhsmTJ7fbdumll2L58uUQRRF6vb7DMW63G263O/jY7/fjxIkTyMnJgSAI4TSZiIgoZUiShObmZhQVFUGjCa0PIORgsG7dOnz22Wf45JNPerR/XV0d8vPz223Lz8+H1+vFsWPHUFhY2OGY+fPn44EHHgi1aURERHSKw4cPo0+fPiEdE1IwOHz4MH7zm99g06ZNMJlMPT7u9L/yJUnqdHvAvHnzUFFREXxst9tRUlKCb775BtnZ2aE0mcIgiiLef/99lJeXd9qjQ9HHcx5fPN/xxfMdfydOnMCQIUNgtVpDPjakYPDpp5+ioaEBpaWlwW0+nw9bt27F4sWL4Xa7odVq2x1TUFCAurq6dtsaGhqg0+mQk5PT6esYjUYYjcYO27Ozs7s8hqJHFEWkpaUhJyeH/4jjhOc8vni+44vnWznhDL+HFAwuvvhi7N69u922G2+8EWeddRbuvvvuDqEAAMrKyvDGG2+027Zp0yaMGzeOFwgREVGCCSkYWK1WjBw5st02i8WCnJyc4PZ58+ahpqYGq1atAgDceuutWLx4MSoqKnDLLbdg27ZtWL58OdauXRulH4GIiIiiJeozH9bW1qK6ujr4uH///ti4cSM2b96MMWPG4C9/+QuefPJJzJgxI9ovTURERBEK63bFU23evLnd45UrV3bY58ILL8Rnn30W6UsRERFRjHGtBCIiIgpiMCAiSgaiCP/evfi/O+7Aiy++iJaWFqVbRCoV8VACERHFkCgChw4Bn3+OfZ98gsefegrS4sUwp6XhqhlXYdasmZg4cWLIs9sRdYVXEhFRIhJFYN8+YMMG4I03gCNHMDQnB3NuuAEAoBlQhlc2vouLL74YfUr64p577sHevXsVbjSpAYMBEVEiOT0Q1NUBffsC2dlARgYemj8ffUr6Qmo+hryblqLgl4+hOXckFiz6O8466yyMO/cHWLJkCY4fP670T0JJisGAiCgRdBUI+vYFDAagqQkoKoKlsBDPP/csnN99jpYvqmDsPQw5l96OwttWodflv8eeJgG33zEHBQWFmH7FFdiwYQM8Ho/SPx0lEdYYEBEp6ZQaAlRXyyEgEAZO5XIB/foBACZNmoRZs2Zh9csrYB4wDjprDgSdAZazfgTLWT+Cr7UJrV9vwab/vI8Nr01HZlY2rrv2GsycORPjxo3jKrXULfYYEBEp4Uw9BKdyOgGzGSgoCG5auHAhMtPT0PTvpcGF6QK0lkzYxl2OvBsWofBXi+EfPBHPvrgOP/jBDzB02HA88sgj+P777+PxU1ISYjAgIoqnUAJBQFMT0KsXcMoicllZWVi2dAlav9kO596Punw5Q24/ZJX/CgX/v+eRd/UDOKLNx31/uh8lJSW46OJLeOsjdcChBCKieOjpkEFnmpuBc84BTrslccaMGZh+xRXYWPU0TH1HQ2u2dfkUgkYL84BSmAeUwu92wrn3Q/znv+/j/Rtu4K2P1A5/+0REsRROD8Hpx+t07YYRTrXkqadg1PjR+N7yHjdJY0xD+ujJyP3FfPS+dTkM51zBWx8piMGAiCgWIg0EAU1NQFYWkJ/f6bcLCwux6G8L0frlu2j79tOQm6nLyEfmD69B3k3LTt76OCp46+N5ZefD5/OF/JyU3BgMiIiiKVqBIMBul+9G6ObYG2+8ERPLL4K96in4PW1hNVsQhJO3Ps5G4W2rYCgcgp2ffYajR4+G9XyUvBgMiIiiIdqBAAB8PsDvB3r37nY3QRCw/LlnIbhb0LR1VXivdYqWL6rgqf0Gzz7zNAq6GMIg9WIwICKKRCwCQYDDAWRkdFlfcKoBAwbg4YceRPNn/4Lr+6/DfknX4S/R9N4zuP322zFz5sywn4eSF4MBEVE4YhkIAk7Odoj09B7tPmfOHJSWjoN9098hecWQX87rOIbG1x/F+ef/EAsXLgz5eFIHBgMiolDEIxAAgCQBHo/8vD2k1WqxcsXz8DbWwr7t5dBezuvBidfnIyfDgsp/vgK9Xh9qi0klGAyIiHoiXoEgoLUVsFh6NIxwqpEjR+Lee+9B839egafhYI+OkSQJJ6qWwnv0EF5/bT3y8vLCaTGpBIMBEVF34h0IAgKzHWZlhXzovHnzMHjIUDS98yQk/5lvN2zashItX1Th2Weexrhx48JoLKkJgwERUWeUCgQBra3AwIEdZjvsCaPRiJXPL4erdj+ad2zodl/X4S/h+E8lAGDFihUd1l2g1MNgQER0KqUDAQC43fJrRXCr4Pjx4zFnzhw4PnoJYuORTvcJFBueN74MALBlyxZoNBq0traG/bqU/BgMiIiAxAgEAYHZDnNzI3qahx56CEUFBWh656kOPQGnFhu+vuE1+P1+jBo1CgCQnp6O3bt3R/TalLwYDIgotSVSIAiw24H+/YEI7wywWCx4fvlzcH73OVq+2BTc3lmxoSAI+OKLL/Dwww8DAEaPHo2lS5dG9PqUnBgMiCh1HTiQWIEAkGc7FIQzznbYU5dccglmzZoFx5YV8DYfBwC07NzYZbHhvHnzsG3bNgDAbbfdhvLyctYdpBgGAyJKLaIoBwIAeOutxAkEAXa7PNthF4smhWPhwoXIslrQ9O+lPZrZcPz48WhsbAQAbN68mXUHKYbBgIhSw6lDBm+9JW8rKUmcQBDQ2AgUFwNpaVF7yqysLCxd8hRav9mOY/+8v0czG2ZmZrLuIEUxGBCRunVWQ1BSIn8v0Wb3kyR5KCHQviiaMWMGZs26EcOGndXjmQ1Zd5CadEo3gIgoJkQROHQI+PxzoLpa7hUI9A5IkvyVaFpa5NkOoziMcKoVK54P67h58+ahvLwcZWVluO222/CPf/wD7733HgRBiHILKREwGBCRunQXCBJdY6O8aFJmptIt6SBQd5CVlRWsO2hpaYHFYlG6aRRlHEogInVIxNsOQ9XWBgwYIN+VkIACdQcjR44EwLoDtWIwIKLkpoZAAAAuF2A0xmwYIVoEQcDu3btZd6BiDAZElJzUEggCmpqAnJyIZzuMl3nz5mH79u0AON+B2rDGgIiSSzLXEHTH4QBGjQK0WqVb0mPnnXce6w5UiD0GRJQc1NZDcCqvV15FsbBQ6ZaEjHUH6sNgQESJTc2BICAGsx3GE+sO1CWkYLB06VKMHj0aNpsNNpsNZWVleCswg1gnNm/eDEEQOnzt2bMn4oYTkcqlQiAIaGoC+vUDTCalWxIR1h2oQ0g1Bn369MEjjzyCQYMGAQBeeOEFXH755di5cydGjBjR5XF79+6FzWYLPs5NkuIaIlKAWmsIuuL3y0MJffoo3ZKo6KzuoKmpSelmUQhCCgbTpk1r9/ihhx7C0qVLsX379m6DQV5eHjITcMIOIkogqRYIApqbAasVKChQuiVRE6g7GD16NL788ksUFhZi7dq1SjeLeijsuxJ8Ph9eeeUVtLa2oqysrNt9x44dC5fLheHDh+O+++5DeXl5t/u73W643e7gY4fDAQAQRRGiKIbbZOqhwDnmuY6flD7noigHgS+/BA4f/l8gCMzlH4OuaPHkc4qJ0M1tt8uLJpnN8rlQkc8++wwLFy7EX//6VwApen0rJJJzLUghDgDt3r0bZWVlcLlcSE9Px5o1azB16tRO9927dy+2bt2K0tJSuN1uvPjii1i2bBk2b96MCRMmdPka999/Px544IEO29esWYO0KK44RkREpEZOpxPXXnst7HZ7u6H8ngg5GHg8HlRXV6OpqQmVlZV47rnnsGXLFgwfPrxHx0+bNg2CIOD111/vcp/OegyKi4tRW1uLnJycUJpLYRBFEVVVVZg0aVKPVmCjyKXUOe+sh6CgIK4rHYqShCoAkwDolZx+uK0NOH4cuOIKoFcv5doRA27Rh2MtHtjbREDy4tDn21Pj+k4Qx48fR2FhYVjBIOShBIPBECw+HDduHD755BM88cQTePrpp3t0/Pjx47F69epu9zEajTAajR226/V6XlRxxPMdf6o+553VEJSUKFdDIEnQC4KywSAw22F+vjyPgQq4RB+ONrvR5JS7sjVaHawG+ZpW9fWdYCI5zxHPfChJUru/7s9k586dKEzCSTyIKEypWlTYE83NwDnnqCIUnB4ITpVuSp7ZHCnEYHDPPfdgypQpKC4uRnNzM9atW4fNmzfj7bffBiDfw1pTU4NVq1YBABYtWoR+/fphxIgR8Hg8WL16NSorK1FZWRn9n4SIEgsDQfdEEdDpkv5uhO4CASAvFJluZC9BMgkpGNTX1+P6669HbW0tMjIyMHr0aLz99tuYNGkSAKC2thbV1dXB/T0eD+666y7U1NTAbDZjxIgRePPNN7ssViQiFWAg6JmmJiArK2lnOzxTIAhIM2ih1STmMtLUuZCCwfLly7v9/sqVK9s9njt3LubOnRtyo4goCTEQhMZul4cRkuz89DQQBNjM7C1INlxdkYgiw0AQOp9PnvGwd2+lW9JjoQaCAKtJB0j+GLWKYoHBgIjCw0AQPodDXjQpCeoLwg0EAGDUa2DUaSGKDAbJhMGAiELDQBC5piZg0CAgPV3plnQpkkAQYDNxGCEZMRgQUc8wEESHJAEej3zuElA0AkGAzcyPmGTE3xoRdY+BILpaWwGLJeGGEaIZCABAqxGQZuBHTDLib42IOsdAEBtNTfL0x1lZSrcEQPQDQYDVxI+XZMXfHBG1x0AQW62twHnnKT7bYawCQQBvU0xeDAZEJGMgiD23+3+LRikk1oEAkGc7tBr58ZKs+JsjSnUMBPETmO0wNzfuLx2PQBCQbtRBw9kOkxaDAVGqYiCIP7tdHkaI4wqD8QwEAawvSG787RGlGgYCZfh8ch97nGY7VCIQBLC+ILkxGBClCgYCZdnt8myHMV40SclAAABmgwZ6bfIvI53KGAyI1I6BIDE0NgLDhwNpaTF5eqUDQQBnO0x+DAZEasVAkDgkSR5KKCmJ+lMnSiAIsDIYJD0GAyK1YSBIPC0t8myHURxGSLRAAAB6nQCzQat0MyhCDAZEasFAkLiamoDCQiAzM+KnSsRAEMDeAnVgMCBKdgwEic/pBAYMkO9KCFMiB4IA3qaoDvwtEiUrBoLk4HIBRmPYwwjJEAgAznaoJvwtEiUbBoLk0tQE5OSEPNthsgSCAKtJByGCHhFKHAwGRMmCgSA5ORzAqFGAtmdFeckWCAJ4m6J6MBgQJToGguTl9cqrKBYWnnHXZA0EAawvUA/+JokSFQNB8uvBbIfJHggAIM2ohY6zHaoGgwFRomEgUI+mJmD0aMBk6vAtNQSCAPYWqAt/m0SJ5MAB4MsvGQjUwO+XhxL69Gm3WU2BIID1BerCYECkNFGUAwEAvPWWvCQvA0Hya24GrFagoACAOgMBABh0Gpj0nO1QTRgMiJRy6pDB4cPyBDglJQwEatHUBPTtC5fZgqMnnKoLBAEcRlAf/kaJ4q2zGoLA4jp6dsmqhdjqxPGsfBytb1G6KTFlM/OaVRsGA6J46a6oUJLkL0p6Hq8PjhPNcIsC7OnZSjcnpjQawMJFk1SHwYAo1niXQUrweH2wt3nR6vZCd/QY/Nm94MvOUbpZMWUz6TnboQoxGBDFCgNBSjg1EARoWlrhGjlG/pNaxVhfoE78rRJFGwNBSugsEACQf/86Lbx5eco0LE4EgcssqxWDAVG0MBCkhC4DwUlahx2+jEx4e6k7GKQZtNBqOIygRgwGRJFiIEgJZwoEAdpmB9pGjYGk8t8/70ZQLwYDonAxEKSEngYCAIDfD8EvwZt/5kWTkh3rC9SLv1miUDEQpISQAsFJmmYHfFar6usLjHoNjDrepqhWIZXMLl26FKNHj4bNZoPNZkNZWRneeuutbo/ZsmULSktLYTKZMGDAACxbtiyiBhMpRhSBffuADRuAN94A6urkQMBQoCoerzx18ZEmV0ihAJDrC8SCQvgt6TFqXWLg2gjqFlKPQZ8+ffDII49g0KBBAIAXXngBl19+OXbu3IkRI0Z02P/gwYOYOnUqbrnlFqxevRofffQRbrvtNuTm5mLGjBnR+QmIYo09BCkhnB6CdiQJGtEDsXdxdBuWgGxmdjarWUi/3WnTprV7/NBDD2Hp0qXYvn17p8Fg2bJlKCkpwaJFiwAAw4YNw44dO7BgwQIGA0p8DAQpIeJAcJKmzQm/2QJvXn6UWpaYtBoBaQYGAzUL+7fr8/nwyiuvoLW1FWVlZZ3us23bNkyePLndtksvvRTLly+HKIrQdzEvvNvthtvtDj52OBwAAFEUIYrqXIgkkQTOccqea1GUg8CXX8qLGwUCQeB6jcHUxeLJ5xQ5LXJcBM5zfYsH7ggDQYDQ7IA7Jwdiejrgi85zJiKrQR/ye0PKv6coIJJzHXIw2L17N8rKyuByuZCeno7169dj+PDhne5bV1eH/Pz26Tk/Px9erxfHjh1DYWHnlbvz58/HAw880GH7+++/j7S0tFCbTGGqqqpSugnK0uvlFQ8D4vChXRWn1yHZpxY9YInSeHn2yWvli4+j83wJ7PMwj0v595Q4cjqdYR8bcjAYOnQodu3ahaamJlRWVmLmzJnYsmVLl+Hg9Hm0pZNvet3Nrz1v3jxUVFQEHzscDhQXF6O8vBw5OeqeezwRiKKIqqoqTJo0qcteHVXprIegoCCuKx2KkoQqAJMA6Dn3fEx4fH442rxwur3wAfg624xhJ9oQjdp6QfRA31AP++Sp8OUXROEZE5MgAEPzrdCEOLFRyr2nJIDjx4+HfWzIwcBgMASLD8eNG4dPPvkETzzxBJ5++ukO+xYUFKCurq7dtoaGBuh0um4/4I1GI4xGY4fter2eF1Ucqf58d7X8sVI1BJIEvSAwGETZ6TUEpwYB7WmPw6Wz2yGl2yDl5kOjVe/4u9Wkg9EY/r8P1b+nJJBIznPEV7AkSe3qAU5VVlaGN954o922TZs2Ydy4cbw4SDksKkwJ0Soq7Amtww7n2HPj2sukBE5qlBpC+i3fc889mDJlCoqLi9Hc3Ix169Zh8+bNePvttwHIQwA1NTVYtWoVAODWW2/F4sWLUVFRgVtuuQXbtm3D8uXLsXbt2uj/JERnwkCQEuIZCAAAPh8kQQOxQL1DCAGcBjk1hBQM6uvrcf3116O2thYZGRkYPXo03n77bUyaNAkAUFtbi+rq6uD+/fv3x8aNG3HnnXfiqaeeQlFREZ588kneqkjxxUCQEuIeCE7SNjvgt1rhzVX3bIdmgwZ6rbqXkSZZSMFg+fLl3X5/5cqVHbZdeOGF+Oyzz0JqFFFUMBCkBKUCQYDW3gT34KGQzOq+Y4qzHaYODhiR+jAQpASlAwEA+dZSny8lZju0MhikDAYDUg8GgpSQEIHgJE1rK/xpFoi91D2MoNcJMBu4aFKqYDCg5MdAkBISKRAEaB12iPkF8GdkKN2UmGJvQWphMKDkxUCQEhIxEAQIbW0QS/rKM/+oGG9TTC38bVPyYSBICYkcCABAcLsgGQzwqnwYQRAAq5EfFamEv21KHgwEKSHRA0GA1m6HLysL3pxeSjclpqwmXbdT2JP6MBhQ4mMgSAnJEggCNK0tcA0bAWjVXZTH2xRTD4MBJS4GgpSQbIEAAOD1AoIG3rz8M++b5FhfkHr4G6fEw0CQEpIyEJykbXbAb7Opvr4gzaiFjrMdphwGA0ocDAQpIZkDQYDWYYdr2EhIJpPSTYkp9hakJv7WSXkMBClBDYEAAOD3Q/D5IBYWKd2SmGN9QWpiMCDlMBCkBNUEgpM0LS3wWdJVv2iSQaeBSa/uwkrqHIMBxR8DQUpQWyAI0DrsEPsUw2+1Kd2UmOIwQurib57ih4EgJag1EAQIbhc8fUqUbkbM2cwcRkhVDAYUewwEKUHtgQCQp0CWTCbVDyNoNICFiyalLAYDih0GgpSQCoEgQOtogi+7F3zZOUo3JaZsJj1nO0xhDAYUfQwEKSGVAkGApqUVrpFj5D+pVYz1BamNv32KHgaClJCKgQCAfH3rtPDmqXsYQRC4zHKqYzCgyDEQpISUDQQnaR12+DIy1T/boUELrYbDCKmMwYDCx0CQElI9EARomx1oGzUGksqvb96NQAwGFDoGgpTAQHAKvx+CX4I3v1DplsQc6wuIVwD1HANBSmAg6EjT7IDPalV9fYFRr4FRx9sUUx2DAZ0ZA0FKYCDomtZhh6ffAPgt6Uo3Jaa4NgIBDAbUHQaClMBAcAaSBI3ogdi7WOmWxJzNzI8EYjCgzoii/N+NGxkIVIyBoGc0bU74zRZ48/KVbkpMaTUC0gz8SCAGAzrVqT0Eej1QX89AoEIMBKHR2O3wZufAl5GpdFNiikWHFMArgToOGRiNQJ8+QHGxPNsJqQIDQXi0TifaxpaqfrZD3qZIAQwGqayrGgK9HpAkpVtHUcJAED7B44Fk0MObq+5hBEEArEZ+HJCMV0IqOlNRIUOBKjAQRE7rsMNny4Q3p5fSTYmpdKMOGs52SCcxGKQS3mWQEhgIokfrsMM59ly5F03FWF9Ap+LVkAoYCFICA0GU+XyQBA3EggKlWxJzrC+gUzEYqBkDQUpgIIgNbbMDfqsV3lx1z3ZoNmig16q7sJJCw2CgRgwEKYGBILa09ia4Bw+FZE5TuikxxdkO6XQMBmrCQJASGAjiQJIAny8lZju0MhjQaRgM1ICBICUwEMSPprUV/jQLxF7qHkbQ6wSYDVw0idpjMEhmDAQpgYEg/rQOO8T8AvgzMpRuSkyxt4A6E1LFyfz583HuuefCarUiLy8P06dPx969e7s9ZvPmzRAEocPXnj17Imp4ShNFYN8+YMMG4I03gLo6ORAwFKiKx+vD0WY3jjS5GAriTGhrg1jSV/Uzf/I2RepMSFfFli1bMHv2bJx77rnwer249957MXnyZPz3v/+FxWLp9ti9e/fCZrMFH+fm5obX4lTGHoKUwB4CZQluFySDAV6VDyNwtkPqSkhXxdtvv93u8YoVK5CXl4dPP/0UEyZM6PbYvLw8ZGZm9uh13G433G538LHD4QAAiKIIMbDyXyoRRTkIfPklcPhw+6mLgajPVCiefD6RMyDGTeBc17d44GYgiDnfaf89la7ZAU92NjyZmYBPvb8Lq0kHrzc+P1/gfTsl378VEsm5jigu2u12AEB2dvYZ9x07dixcLheGDx+O++67D+Xl5V3uO3/+fDzwwAMdtr///vtIS1P3rUPd0uuBAQP+9zjGH9xVcXgNau9Tix6wcNw3Xr7ONnfcmN1X/u/ubfFtjAJ2x/n1qqqq4vyKqcvpdIZ9rCBJ4b3zS5KEyy+/HI2Njfjggw+63G/v3r3YunUrSktL4Xa78eKLL2LZsmXYvHlzl70MnfUYFBcXo7a2Fjk5OeE0N7l01kNQUBC3aVlFSUIVgEkA9CofY1WSx+eHo80Lp9sLH+QPqWEn2sAa8djr8nz7vDDU1MAx6cfw9u6jUOviY0h+OnRxmthIFEVUVVVh0qRJ0Kt8eulEcfz4cRQWFsJut7cbxu+JsHsMbr/9dnzxxRf48MMPu91v6NChGDp0aPBxWVkZDh8+jAULFnQZDIxGI4xGY4fter1e3RdVZzUEJSXK1BBIEvSCwGAQA6fXEJz6waQ97THF1unnW+twQEhPh5RXAI1WvePvaUYtzKaO77Gxpvr38AQSyXkO68q/44478Prrr2Pr1q3o0yf0VD1+/HisXr06nJdWJxYVpgQWFSY+rcMO17CRkEwmpZsSU7wbgboT0tUhSRLuuOMOrF+/Hps3b0b//v3DetGdO3eisLAwrGNVhYEgJTAQJAm/H4LPB7GwSOmWxBynQabuhBQMZs+ejTVr1mDDhg2wWq2oq6sDAGRkZMBslot45s2bh5qaGqxatQoAsGjRIvTr1w8jRoyAx+PB6tWrUVlZicrKyij/KEmEgSAlMBAkF01LC3yWdNUvmmTQaWDSc8CKuhZSMFi6dCkAYOLEie22r1ixArNmzQIA1NbWorq6Ovg9j8eDu+66CzU1NTCbzRgxYgTefPNNTJ06NbKWJyMGgpTAQJCctA47xD7F8FtDK9RKNhxGoDMJeSjhTFauXNnu8dy5czF37tyQGqU6DAQpgYEguQluFzx9SpRuRszZzBxGoO4xOsaS1wvXnj0w7dnDQKBiDATJT2hrg2QyqX4YQaMBLFw0ic4gPjexpqgP33kHmeeU4qf33odXDx2Cu6iIoUBFuJaBemgdTfBl94IvW93zpNhMegi8BZnOgD0GMZTZuzd8kh9v7NuHN77Zi4znluPa8edh5o9/jB+cdRb/gSYp9hCoj6alFa6RY+Q/qVWM9QXUE+r+V6CwkWPG4N5774VGI6DXT+dCGj0Vz+/4AuPvvhuDb/l/eHjNGlQfPap0M6mH2EOgUqII6LTw5ql7GEEQuMwy9QyDQYzNmzcPg4cMReuO9ciccD3yb30eeT/7C+pyh+GPlevR7+abceHcu/HCu++iOYK5rSl2GAjUTeuww5eRqfrVFNMMWmg17KWkM2MwiDGj0YiVzy+Hq3Y/mndsgKDRwtx/LHpddheKZr+I7Cm/xQ6nDrOeeAJ5N9yAXy5YgH/v2gWfr7N13yieGAhSg7bZAU9xX0gqr//h3QjUUxxwioPx48djzpw5WLx0GcyDy6DPkmd91BjTkD7qYqSPuhheewNa/7sZlV/+Gy9t3Yr8rGzMuqgcN5SXY3iJ+m+hSiSsIUghkh+CX4I3X/0zsbK+gHqKPQZx8tBDD6GwoABN7yzudD4IXUYeMsp+hrybn0bB9Y+jtV8ZFr75NkbcfjvG3lmBv//rXzh6cplrig32EKQeTXMzfFar6usLjHoNjDrepkg9w2AQJxaLBSuWPwfnd5+j5YtNXe4nCAKMRUORM/nXKJy9GrnT78E3mhz85rnlKJw5Cz998CG8+vHHcItiHFuvbgwEqUvb7IBYUAi/JV3ppsQU10agULBvKY4uueQSzJo1C6tfXgHzgHHQWbu/Z1rQ6ZE29HykDT0fPqcdrV9vxb+/fBdvPPIIMtKtuPaCCzDzonL8YMgQ3voYBg4ZkEb0wNW7WOlmxJzNzLd66jn2GMTZwoULkWW1oOnfS3s0xXSANi0DttJpyJu5CIU3LYE04lI8/+F/MP7//g+Df30bHv7HP3jrYw+xh4AC/OY0ePPylW5GTGk1AtIMDAbUcwwGcZaVlYWlS55C6zfb4dz7UVjPYehVgqyJs+RbH3/+IOqyhuCP6/6BCffeF+XWqgsDAZ3Om5UNX0am0s2IKRYdUqgYDBQwY8YMTL/iCjjefRq+NkfYzyNotDD3GwPbD64EBAFlBfmQGhoA3urYDgMBdcVT3Ff1sx3yNkUKlbr/RSSwJU89BaPGj8b3lkf0PL62Zpx47SEMGzQQyxculGsN9u+XF21yuaLU2uTEQEBdEUQPAMDbK1fhlsSWIABWI3sMKDQMBgopLCzEor8tROuX76Lt20/Deg7J78OJfz0Gk+TG62/+C2nl5cDPfw5MnQrk5wNHjgD79gGNjUAI9QzJjoGAzkTbLPfUqX3RpHSjDhrOdkghYjBQ0I033oiJ5RfBXvUU/J62kI9v2voiXId24Z+v/AP9+/eXN1oswPDhwBVXAFdeCYwZI/cc7N0rBwUV3+bIQEA9pXWcHMLTq7ubnfUFFA4GAwUJgoDlzz0Lwd2Cpq2rQjq29esP4PjPP/Hoo4/ikksu6biDVgsUFwMXXQT87GfAJZcA6enAoUPAt98CLS3R+SESAAMBhcTngySkxlsf6wsoHKnxryOBDRgwAA8/9CCaP/sXXN9/3aNjPA0H0fj2E/jFL36B3/3ud2c+IDMTGDsWuPpq4Kc/BQYNAk6ckHsRjh5N2mJFBgIKh7bZAb9V3RMaAYDZoIFey7d4Ch2vmgQwZ84clJaOg33T3yF5u+/q97U1o3bFHfB5XHjuuedCm9jIYJBDwdSpwFVXAT/8obw9yYoVGQgoElp7E8SCIqWbEXOc7ZDCxWCQALRaLVaueB7exlrYt73c5X6BYsOA9PR02MNZP0EQ5OLEsrLOixWbmsL4KWKPgYAiJkmAzwexqLfSLYk5K4MBhYnBIEGMHDkS9957D5r/8wo8DQc73SdQbFhVVYWJEycCADIzM/Gf//wn/BfurFjR7Za/V1eXEMWKDAQULZrWVvjTLPDmqPs2Rb1OgNnARZMoPAwGCWTevHkYPHgImt55EpK//bj/6cWG77//PpYsWQJAXtb50UcfjezFTy1WvOIKeZvFomixIgMBRZvWYYc3Nw9+m03ppsQUewsoEgwGCcRoNGLliufhqt2P5h0bgtsDxYY/P63Y8Ne//jW++OILAMDvf/97jB49OqT1F7qUkSH/d/p0RYoVGQgoVoS2NoglfeXhNBXjbYoUCQaDBDN+/HjMmTMHjo9egthYe3Jmw4cxbOgQPL98eYdiw1GjRqHl5F/zu3fvhkajCa/uoDNxLlZkIKBYEtwuSAYDvL3ylG5KTHG2Q4oUg0ECeuihh1BUUICmdxafnNnQhdc3vIa0tLRO97dYLPD7/dGrOzjdmYoVI5xZkYGA4kFrt8OXlQVvTi+lmxJTVpOOy7BTRBgMEpDFYsHy556F87vPO85s2AVBEDrUHTzyyCOxaFzUZlZkIKB40rS2wNO3v1xPo2K8TZEixWCQoCZNmoQXX3wRlZWVnc9s2IVT6w7mzZuHUaNGRafu4HQRzKzIQEBx5/UCggbevHylWxJzrC+gSPEKSmC//OUvwzouUHeQnp6OL7/8EhqNBo2NjcjMzIxuAwMCMyuOGCHXHuzdKweEmhogO1v+0mrh8fpgb/MyDFDcaZsd8Ntsqq8vSDNqoeNshxQhXkEqFag7KC8vBwBkZWVFt+6gM10UK3r2foMTX+9HbX0TQwEpQuuww9O7GJLJpHRTYoq9BRQNDAYqJggC3nvvvdjXHXR8YSA/H65xP8D3k6bh0LkXojkjG/r6OhgOHoDG3pRSy0CTwvx+CCky2yHrCygaGAxSQNzqDk5yiT4cPuHEvvoWNAoGuIecBcePp8ExZRpcI0ZD43bD8O1+6Orr5LFfohjStLbAZ0mHN1fdwwgGnQYmvboLKyk+2O+UIuJRd+AS5aLCJmcndyZotRCL+kAs6oO2kaNhOFwN4749MBz+DtBq4c3pBb9F/SveUfxp7XaIfYrht6p9tkO+nVN0sMcghcSq7uDUHoJOQ8Fp/BmZcI0cDcdPpqN50lS4+w2AtqkJxgP7oD1+DPD7I24TUYDgdsHTp0TpZsSczcxhBIoOBoMUE826g1ADwekkgwGe/gPQctFkOH5yOVrPHQ9BEGA4eAD6mu8huJNjGWhKXEJbGySTSfXDCBoNYOGiSRQlDAYpKpK6g0gDQQeCAG9uHtpKf4CmaVeg5aLJ8ObmsliRIqZ1NMGX3Qu+7BylmxJTNpOesx1S1IQUDObPn49zzz0XVqsVeXl5mD59Ovbu3XvG47Zs2YLS0lKYTCYMGDAAy5YtC7vBFD2nrrMQqDtoamrqcv+oB4JOSGkWFitS1GhaWuEp6Sf/Sa1irC+gaArpX8uWLVswe/ZsbN++HVVVVfB6vZg8eTJaW1u7PObgwYOYOnUqLrjgAuzcuRP33HMP5syZg8rKyogbT5HrrO5gx44d7faJRyDo4GSxYusPJ8B+2XS0/mgi/BYLDIe/g6H6EDSt8V8GmpKMKAI6Lbx56h5GEAQus0zRFVLMfPvtt9s9XrFiBfLy8vDpp59iwoQJnR6zbNkylJSUYNGiRQCAYcOGYceOHViwYAFmzJjR6TFutxtutzv42OFwAABEUYQYwlz81HPvvPMOli9fjoqKClx22WV4/vnn0drmRlNjG+xtyp5zf3o6vMOGo23gIOhqj8Bw8AAMNd9D11APb2YmfJlZgJDcfxH6TvsvRU7b4oAnMwuerGxIvvY9Tf6Tj/2+5O+BSjNo4fd54U/giyfwvs337/iJ5FwLUgQ3tO/fvx+DBw/G7t27MXLkyE73mTBhAsaOHYsnnngiuG39+vX42c9+BqfTCb2+Y9K9//778cADD3TYvmbNmi5XGCQiIiKZ0+nEtddeC7vdDpsttFt1wx6YkiQJFRUV+NGPftRlKACAuro65Oe3X7gkPz8fXq8Xx44dQ2FhYYdj5s2bh4qKiuBjh8OB4uJilJeXIydH3UVEicDtduPdd9/FxZdcglYRaGz1wO1NzFsIBacT+iPfw3jgG+jr6wGfD96sbPhtNgDJU4zlA/B1thnDTrSBteVRIPlh/O47OC6eDLFvvw7f9vu8qN69HSWjxkOjTe7x+UF5Fhh0iX3ViKKIqqoqTJo0qdM/Bin6jh8/HvaxYf+LuP322/HFF1/gww8/POO+p1fLBjopuqqiNRqNMBqNHbbr9XpeVHFkNBiQbtEjP9OCFrcXJ1o8cLjExLpBwGqDd+hweAcNhb6+FoaD38Jw6FtojjbAn26FN6cXoEueN37tyS+KjMbhACwWSPkF3X7wa7S6pA4GRr0GFnPyrP/A9/D4ieQ8h/Uv4o477sDrr7+OrVu3ok+fPt3uW1BQgLq6unbbGhoaoNPp+Nd/Ekk36pBu1EH0+dHY6sHxVg+8vgRKCJxZkU6hddjh6TdA9b9zro1AsRBSMJAkCXfccQfWr1+PzZs3o3///mc8pqysDG+88Ua7bZs2bcK4ceOYHJOQXqtBns2EXKsRjjYvjre60epOrKonf0YmXBmZcA85C/qa72H4dh8Mh6uhr6uFNzMLvqxs1d++ltIkCRrRA7F3sdItiTmbOXl7OyhxhXRVzZ49G2vWrMGGDRtgtVqDPQEZGRkwm80A5PqAmpoarFq1CgBw6623YvHixaioqMAtt9yCbdu2Yfny5Vi7dm2UfxSKJ0EQkJGmR0aaHi7Rh+OtHjQ5PQk1m3FgZkVPv/7QHTsKffUhmPZ/A8PBA5BMZnh79YJkTJ5uWOoZTZsTfrMF3rz8M++cxLQaAWkGBgOKvpCuqqVLlwIAJk6c2G77ihUrMGvWLABAbW0tqqurg9/r378/Nm7ciDvvvBNPPfUUioqK8OSTT3Z5qyIlH5Nei96ZZhTYTGhyenCi1QOXmEAJ4eTMit7cPLiGjYDh+8Mw7tsDfV2tXKyYnQO/LUO+IZySnsZuhzc7B76MTKWbElOc1IhiJeShhDNZuXJlh20XXnghPvvss1BeipKQViMgJ92InHRjwhYrBmZWdA8c3K5YUfft/qQsVqSOtE4n2saWqn64iIsmUazwHZBigsWKpATB44Fk0MObq+5hBEEArEa+fVNs8MqimGKxIsWT1mGHz5Yp9/yoWLpRB42GQ18UGwwGFBcsVqR40DrscI49F1D5HU+sL6BY4tVFccdiRYoJnw+SoIFYUKB0S2KO9QUUSwwGpBgWK1I0aZsd8Fut8OaqezVFs0EDvZZDWxQ7fEejhMBiRYqU1t4E9+ChkMzqXmiNsx1SrDEYUEJJumLFIzUwHPiGxYpKkyTA50uJ2Q6tDAYUYwwGlJCSplixX394+vZjsaLCNK2t8KdZIPZS9zCCXifAbOAyWxRbDAaU8FisSGeiddgh5hfAn5GhdFNiir0FFA8MBpQ0krFYUX/wWxhZrBhzQlsbxJK+qg9fvE2R4oFXGSWlZCpWdLFYMaYEtwuSwQCvyocRONshxQuvMkpqLFYkrd0OX1aW6mc7tJp0EFTeI0KJgcGAVCHZixW9aRYge6DSTUxKmtYWuIaNALTqLsrjbYoULwwGpDrJWKyo278HAGD47iCkzCwWK/aU1wsIGnjz1L1oEsD6Aoof9l+SagWKFQfnW9E/14IMsz7hPmsDxYrNl0wBALQNGwGN2w3Dt/uhq6+TP/ioS9pmB/w2m+rrC9KMWug42yHFCSMopYRkKFYEgLbxP4Q48mwWK/aQ1mGH66wRkEzqni+CvQUUT7zaKKWwWFFF/H4IPh/Eot5KtyTmWF9A8cRgQCkp2YsVObOiXHTos6SrftEkg04Dk17dhZWUWBgMKOUlY7EiZ1aUb1MU+xTDb7Up3ZSY4jACxRuvOKKTOLNichHcLnj6lCjdjJizmTmMQPGVGu8gRCFKhmLFVJ5ZUWhrg2QyqX4YQaMBLFw0ieKMwYCoGyxWTExaRxN82b3gy85RuikxZTPpOdshxR2DAVEPsFgxsWhaWuEaOUZ1ged0rC8gJfCqIwoRixUVJoqATgtvnrqHEQSByyyTMhgMiMLEYkVlaB12+DIy1T/boUELrSZJwxslteR6RyBKUMlbrFgNaDVJVayobXagbeTZkAwGpZsSU7wbgZTCYEAURSxWjDG/H4JfgregSOmWxBzrC0gpvPKIYoDFirGhaXbAZ7Wqvr7AqNfAqONtiqQMBgOiGGOxYvRoHXZ4+g1ImmGPcHFtBFISgwFRnLBYMdLGSdCIHoi9i5V5/TiymfnWTMrh1UekgNOLFRsciVWHkIjFipo2J/xmC7x5+XF93XjTagSkGfjWTMrh1UekoECxYqZJgwOQb1FzJVhGSJRiRY3dDm92DnwZmTF/LSWx6JCUxiuQKAEEpr3t18sCHzQsVuyE1ulE25jSxL1jIkp4myIpjcGAKMGwWLGTl/R4IBn0qh9GEATAauTbMimLVyBRgmKx4v9oHXb4bJny86lYulEHDWc7JIWF3Ce3detWTJs2DUVFRRAEAa+99lq3+2/evBmCIHT42rNnT7htJko56UYdSnLSMLTAinybETptgn14nCxWdP5wAuyXTUfrjybCb7HAcLgahupD0LS2RPb0Djs8Jf0Avbq72VlfQIkg5KuwtbUVZ599Nm688UbMmDGjx8ft3bsXNpst+Dg3NzfUlyZKeSk5s6LPB0nQQMwviF2jEwTrCygRhBwMpkyZgilTpoT8Qnl5ecjMzAz5OCLqKJVmVtQ2O+BPgdkOzQYN9Fp1F1ZScohbv9XYsWPhcrkwfPhw3HfffSgvL+9yX7fbDbfbHXzscDgAAKIoQhTFmLc11QXOMc91/ERyzrUA8iw65Ji1sLeJaGz1wO1NoIQAwJOdDU92NpxDzoL+yPcwHvgG+vp6uVgxKxt+mw1A58Mj2pZmuAYMgs9gAHzeqLTHf/J5/FF6vmhI0xlV+2+O7ynxF8m5FiQp/FImQRCwfv16TJ8+vct99u7di61bt6K0tBRutxsvvvgili1bhs2bN2PChAmdHnP//ffjgQce6LB9zZo1SEtLC7e5REREKcHpdOLaa6+F3W5vN4zfEzEPBp2ZNm0aBEHA66+/3un3O+sxKC4uRm1tLXJycsJtLvWQKIqoqqrCpEmToFd5sVeiiNU5F31+NDlFnHB64EukZaBPoXHYof9e7kXQHTsmz6yYnQN/mgWa1lZoWpvhmPJT+DMyovaafp8X1bu3o2TUeGi0yhf86bQChuRblW5GzPA9Jf6OHz+OwsLCsIKBIv8ixo8fj9WrV3f5faPRCKPR2GG7Xq/nRRVHPN/xF+1zrtcDaSYjCrOkhC1WRFYOxKwceIcOa1esqKk9AqHNCfeQYUBWNjQxWMRJo9UlRDDITDekxL81vqfETyTnWZF/ETt37kRhYaESL02UkpK1WNHw3SHAK8K4by88fYohpVmUbmZM8DZFSiQhX40tLS3Yv39/8PHBgwexa9cuZGdno6SkBPPmzUNNTQ1WrVoFAFi0aBH69euHESNGwOPxYPXq1aisrERlZWX0fgoi6rFkmVnRZ7HA9M3X0B1tgP5IDfzZOXANHAyxb394e+UmxDLQ0cDZDinRhHw17tixo90dBRUVFQCAmTNnYuXKlaitrUV1dXXw+x6PB3fddRdqampgNpsxYsQIvPnmm5g6dWoUmk9E4Ur0mRV1R49C09wM19DhAABtUyPSdvwH0pdfwFNcDM+AIRB794FkMCjc0shYTbrgWhlEiSDkYDBx4kR0V6+4cuXKdo/nzp2LuXPnhtwwIoqf05eBPt7qgVfhYkV93RH5z+mTkyH5snPgy86BxtkK46GDMB7YD1+vXLgGnwVPcV/4k3SeFJuJY+6UWNh/RURBCTOzoijCcPg7+NI7Vur70yzwlFgArxe6E8dh+WgLzOlWePoNgKf/AIgFRYBWG/82h4n1BZRoeEUSUQdKFyvqjh2FtqkRYlHvbnbSyast5uZB47DD9N/dMO35CmJhEdyDz0qKYsU0oxY6znZICYbBgIi6pUSxoq6hHoLXC0nfg/oBQYA/IxOejEwIbhd0R49CX/1dUhQrsreAEhGvSiLqkbgVK/r9MH53CD5LesiHSkYTxN59AL8/KYoVWV9AiYjBgIhCFstiRW1TI7QnjsGbnR3+k2g03RYrunr3iUpbI2HQaWDSJ08tBKUOBgMiClssihV1DfXQuNogmaOzLkpnxYoGmw0Y2g+6IzXwF/VRpFiRwwiUqHhlElHEolmsqK+phr+TKdEjdkqxotQsr9hqq3oL/vwCRYoVbWYOI1BiYjAgoqiKpFhR09IMfV0dfLboLZjUgSDAf/L5xfx8GBUoVtRoAIuBwwiUmBgMiCgmwilW1B1tgLalRf5gjgPJoEyxos2k52yHlLAYDIgo5nparKirPQJJ87/ZDuPmDMWK0Z5ZkfUFlMh4dRJR3HRXrCi43TB8Xx3bYYQeiPXMioIAWHmbIiUwBgMiirvOihVbaw9D67DD07tY6ebJYjSzYppBC62GwwiUuBgMiEhRgWJFn7cFLoMGdpMBHm9iLQMdzZkVeTcCJToGAyJSns8H7aGDsORkwpJpRpvoQ0ubF07RmzDLQAPRmVmR9QWU6HiFEpHyjh0Djh8H8vIAAGa9Fma9Fl6fHi1uL5pdXvj8CZQQwixWNOo1MOp4myIlNgYDIlJefT3gcgFmc7vNOq0GmWkGZJj1cHp8aHaJMV/AKVShFCtybQRKBgwGRKQsSQK+/bZDKDiVIAiwGHWwGHXweH1odnnR4k6sYYaeFCtacxN7GWgigMGAiJRmt8s9Bj2cJ8Cg0yInXYvMNANa3XJASIZiRSknB5bxY4GBA+UhE05wRAmKwYCIlFVfD7S0AAUFIR2m1QiwmfWwmfVJUaxodTqAjz8Gdu4E+vYFzjoLKCkBEmgZaCKAwYCIlFZdLY/BRzDbYTIUK5oK8wFjbzkEHTgAfPON3HMwfDjQvz+QlaV0K4kAMBgQkZLa2oDDh3s8jHAmiVqsKAhyeAEApKfLX6Io343x7ruAzQYMGgQMHgz07q3IMtBEAQwGRKSc+nqgqUn+izmKEq1Y0aTXQnP6bId6PVBYKA+hNDUBn38O7N4N9Okj9yL07QtYWKxI8cdgQETKqamR70rQxe6tqLNixbY4FysGews6IwjyMEJWlnzLZn09cPAgkJMj1yGwWJHijMGAiJTh9cofgDZbXF7u1GLFZvHkwk0CgDj0IqQZejg0YDLJBYk+H3DiBIsVSREMBkSkjKNH5Q+/oqK4v7RJpwEkCYWZZrhjXKxo0Gmg04ZYWKnVArm58heLFSnOGAyISBl1dYDHAxiNijVBpxFgjnGxYo97C7rCYkWKMwYDIoq/wGyHCVJcF8tixW7rC0LBYkWKEwYDIoq/xkagoSFqtylGUzRnVtRpBRijFQwCWKxIMcZgQETxV18PtLbK3eAJKhozK0att6ArLFakGGAwIKL4++47+QMrSf6qDXdmRXOk9QU9xWJFiiIGAyKKr9ZW4PvvE3IY4UxCmVmx3WyH8cRiRYoQgwERxVd9vbyi4sCBSrckbD0pVjTrtRCU7BHpqlixd29gxAgWK1KXGAyIKL6+/17+c1olf7V2VawY8W2K0XJ6sWJDA3DoEIsVqUsMBkQUP6IofyhlZCjdkqg7tVjRJfogAZAkSdleg9OxWJF6gMGAiOKnoUH+QCouVrolMVdvd0GrEZBu0sFq1IU++2EssViRuhHylbp161ZMmzYNRUVFEAQBr7322hmP2bJlC0pLS2EymTBgwAAsW7YsnLYSUbKrrZXXSFD5X6VtHnktBp9fgt0poqapDUcdbrSdXKMhoaSnAwMGAP36AU6nXKz4j3/I/62ulnsXKKWEHAxaW1tx9tlnY/HixT3a/+DBg5g6dSouuOAC7Ny5E/fccw/mzJmDysrKkBtLREnM75dnO0xPV7olMec8LQBIEtDq8aLe7kJNUxscbWLM1mYIW6BYcehQwGyWixVffVX++u9/5btJKCWEPJQwZcoUTJkypcf7L1u2DCUlJVi0aBEAYNiwYdixYwcWLFiAGTNmhPryRJSsTpyQF07KyVG6JTEl+nwQu5kpUfT6ccLrQaPTg3SjDlaTDgZdghQqAixWpNjXGGzbtg2TJ09ut+3SSy/F8uXLIYoi9Hp9h2PcbjfcbnfwscPhAACIoghRFGPbYAqeY57r+EmJc37kiPxBk5aGqCxCEAHx5OuLMWiHw+NHjzrfJaDJ5UWTywujXgOrSQ+zXpNYxYpGo1wP4vfL01hv3w7s2iVvGzJEXqehB8NCKXF9J5hIznXMg0FdXR3y8/PbbcvPz4fX68WxY8dQWFjY4Zj58+fjgQce6LD9/fffR1paWszaSu1VVVUp3YSUo/pzPmiQ4qHgVFVA9Ntj1AJGc/jHJ9D5CRIEIDtb/gLkoLBnj/wVAtVf3wnE6XSGfWxc7ko4PQFLJy/8rpLxvHnzUFFREXzscDhQXFyM8vJy5Ki8GzIRiKKIqqoqTJo0qdMeHYo+1Z/zlhbgn/+Ub5dLgFsVRUlCFYBJAPRR/AvdJ0k40tgW8We7PGuiDulmHUy6BLqb4VReL3D8OOBwAFarXMA4cKBcp3DaHBWqv74T0PHjx8M+NubBoKCgAHV1de22NTQ0QKfTdfkhbzQaYexkjXa9Xs+LKo54vuNPtef82DH5AySRxqYlCXpBiGowcHu80ETjD35Jfi63xwu9TgPryVkWtZoEOXeAXKxYUADk58szK37xBfDll93OrKja6zsBRXKeYx4MysrK8MYbb7TbtmnTJowbN44XCFGqqKkBNBr5S8XaPOEtz9wdVRQrck6EpBJyMGhpacH+/fuDjw8ePIhdu3YhOzsbJSUlmDdvHmpqarBq1SoAwK233orFixejoqICt9xyC7Zt24bly5dj7dq10fspiChxud2qne3wVJIkwenxxvD5gWaXvLKjUa+BzaRHmkHh9RhO19XMiiUl8vc9HrmngRJayPF9x44dGDt2LMaOHQsAqKiowNixY/HHP/4RAFBbW4vq6urg/v3798fGjRuxefNmjBkzBn/5y1/w5JNP8lZFolRRXy93NSfhaoqhcHn9casbdIt+HG124/vGNjQ6PfD6ot9TEZHAzIpDh8oFiwcPytvXrwc++0y+w4ESVsg9BhMnTgwWD3Zm5cqVHbZdeOGF+Oyzz0J9KSJSg8Bshyr/S9Hpjl1vQVcCMys62kSknSxWVGSp5+6kp8u1BpIEtLVxGegkwLUSiCh2fD55tkOrVemWxFybqNxf7YGZFVsTuVgRkAsVA8WKXAY6YTEYEFHsHDsm39KWl6d0S2LK4/UlTHd+UhYrHjgA5OVhj8WCr3Q6XHbZZZ3emUbxwWBARLFTXy+/+ZsjmPAnCZy+NkIiSMhiRZ9PXqgp8OX1ykEhIwPQaHD7Y4/j3U8/gS0jE9f84ueYNWsWzjvvvMQqsEwBDAZEFBuSJA8jqDwUAIDTnXjB4FRu0Y+joju+y0C73f8LAG1t8gRI1dXynQtWq7y0c26uXG+QkQHYbLi3b1+8e9FFcGrTsXLdq3j66afRf+Ag/GrWTFx//fXo27dvbNtMABgMiChW7Ha5x0DldyN4fX54ulk0KZHEpFjR75d7hQIhwOWStxsM8roYubnyV2MjMH26fJeCxdLpnBbl5eW4+eabsXL1GvSatRhi4xE0fPUeHnjwYfzhD3/ABRMuxI2zZuKqq66CNQXqVpTCYEBEsVFfL0+FXFCgdEtiqi0BhxHOJOxiRa+386EAs1n+6tdPrifJzPxfT4DJBIgisHEjUFR0xrtTHnvsMbzxrzfR+O+l6HXlH2HuNwZ+Txuc33yMT796Hx/cdBN+fdtszLjySsyceQMuvvhiaHlXQ1QxGBBRbFRXy7ehqX62w+QLBqfqsljx1KEAp1NOE1qtHAC6GAqALvKPlMzMTDy9bCmmT58O59dbYBk+ERqDGekjL0b6yIvhdTSg9avNeHXT+1iz5iXkFRRi1g3X44YbbsCIESOicEaIwYCIoq+tDTh8WPXDCH6/lJQ9Bu34/RDcLmja2uBqc8Lj8UCvAdKsFpgz0iHk5sq3GGZn/y8EdDEUEC2XX345rrr6amzY+CxM/cZCm/a/WTN1tjxklP0MtvFXw1O3D61fvou/LV6Gv/71rxg9ZixuunEWrrnmGuTm5sasfWrHYEBE0ReY7bB/f6VbElMury8hV0nuktcLjasNmrY2aNqcELw+SAIgmczwm8zwFPeFLycXvowMHE23QsjMQFaODdkWA/SxLlY8zeK//x1VVcPQ+O4z6DXt/zp8XxAEGAuHwFg4BNJFN6PtwCc48NX7uLPid6j43e8wZcoUzJo5k7c+hoHBgIiir6ZG7nqOQtdyIkvkYQTB45E//NvkIADJD2i18JvM8FvST4aAHPjSrfBbM+CzWjv9fTU43Dja7IbNpEd2ugHpxvj8TvPz8/HkE4swc+ZMpA2fiLSB53a5r6DVI23I+Ugbcj58Tjtav96Kdz99H/964yre+hgGdf+rJaL483rlufFtNqVbEnPORAgGpwwFaNqc0Hg8kCQJkt4AyWyGNycH3tx8+DMy4bNa4bfa4E8LbShAkgB7mwh7mwijXoMciwGZaYaYz6x4/fXX48XVL+GDqiUw9XkKGmPaGY/RpmXAVjoNttJpEI8dRstX72Llukre+hgCBgMiiq6jR+WV9YqKlG5JTLlFH3z+OI8jhDAU4E+3wme1QTKZotoEt+jHkSYXau0uZFkMyLEYYIrR+gyCIOC5Z5/BsOEj0LhlJXIm3xbS8fpexci6cBakC66Hq3o3Gr58F/f/5aHgrY9/W/g4SktLY9L2ZMZgQETRVVcnL6+r8nHdWM92GK2hgFiRJOBEiwcnWjxIM2rRy2KEzayLeld937598egj8zFnzhxYhk2AqXhkyM8haLQw9xsTvPWx+dM38MHWVVizdi2DQScYDIgoegKzHabAYjhRqy+Iw1BArDndPlS7ndBpBWRbDFEvVrztttvw0pq12PXO35E380lo9OGHTkGjhfvAf1DYuw/unjs3am1UEwYDIoqexkZ5URyV36YohjvbYQIMBcSS1yfFpFhRq9VixfPLcfbZY2D/eC2yLpwV1vNIkoQTVUvhPXoIr3/0IfJUvrhXuBgMiCh66uuB1lZ5KV0V60lvwRmHAkr6wZedDZ/VBn+6Le5DAbF0erFihjHy3oNhw4bhj3/8A/74p/thOesCGPIHhvwcLbveQssXVXjhhRcwbty4iNukVuq4CokoMXz3nTxHvspvCWtXXxDSUIANfqsVfku66s9RgFv0o87lAQDU2l3Iy9CEXaw4d+5crHv5H/j2nb8j95ePQ9D0/Hlc33+Fpnefxh133IEbbrghrNdPFQwGRBQdra3A99+rexjB64WvpRW+uhMwONU3FBBrja0e2F3+sIsVDQYDVq54Hueddx4c///1yBh/VY+O8zqOofH1R3D++T/E448/Hm7zUwaDARFFR329vKLiwNC7eBNSF2sFuHUG+Exp8Bardygg1iIpVhw3bhzuvPNO/O2JvyNtSBn02d0PW0leEcfX/wU5Ngsq//kK9GdYxIkYDIgoWr7/Xu4eT7aV7nqybHBBAZCVBWRk4IRXB7vGmDJDAbEUbrHin//8Z/zz1fU4+s7f0esXD0MQOg8VkiShofLPcNUdQC3kBZrozBgMiChyoggcOiQvsJPIAssGt7XJH/j798vbz7Rs8EmSJMFR2wzEe2IjlQt1ZsW0tDSsWP4cLrroIrTsehvWsVM73a9l50a4Du0MPjYajThw4AAGDBgQk59DLRLnRlgiSl4NDfJsh4n0F5nbLd8+WVMD7NsHfPONXBzZ0iL3BABAeTlw5ZXAz38O/PKXwE9+Apx7LjB4sLyi4Gn1AU6PArMdppjAzIpf1zpQ09QGVxcTSZWXl+Pmm2+GY+tKeB1HO3zf9f1XaHrvGdx+++2QJAm/+93vAAADBw7EunXrYvozJDsGAyKKXG2t/Ne4wRD/1/b75V6AY8eA6mo5AHzzjdwmUZR7Bs47D5gyBbj6auDaa4GrThatjRwp9xJkZ/eoPqDZ5Y3tz0JBgZkV99W34MDRFtidIqTTlrJ87LHHkJ1hQ2PVknbfO7XYcOHChQCABQsWYNOmTQCAa665Btdcc038fpgkw6EEIoqM3y/PdpieHvvXCgwFBL68Xnmsv4dDAUGiGNbLO1zhHUeR6apYMTMzE888vQzTp0+H8+utsAy/EJLXgxOvz++02HDSpEmoq6tDQUEB1q1bh3Xr1sHtdsOgRKBNYAwGRBSZEyfkhZNycqL7vF3cFQCzGbBagQEDgF695A9/m03+iuFdAW6vD24xjNkOKWo6K1a8/PLLcdXVV2PDxmdg6jcGTVtWdjuzYX5+PrxeLwoLC3H06FHWHXSCwYCIIlNXJ39wl5SEd3yIdwXAZpN7J+J8V4CjjcMIieL0YsU/P7IAmzadjfqX5kI8UXPGmQ21Wi0aGhpw11134fHHH8fAgQOxdu1a/OIXv4jjT5G4GAyIKDKHDnXeXd+ZaA0FKKCZwwgJyS36AUMG7n5gPu797a9x2+zbezyz4YIFC3DppZdi8uTJuOaaa7BhwwasXbs2xi1OfAwGRBS+5mbgyJHO70ZIsKGASPj8EpzRWk2RYuKyK3+Biy69DCZzGg4cbenxzIqsO+goMf8VElFyqKsDHA75g/7YsYQeCohEs0uExLsUE5ogCLCkWwGEPrMi6w7aYzAgorBt37oVC1e/hJnnl2HyOedAn8BDAZHgbYrJKZSZFVl38D+cx4CIwvb6nj145fNduGzpUhTMuwd3/vvf2KXXQxo0qNMJgpKRJEm8TTHJBYoVDx5txTf1zTje4u5yoqrT5ztgMCAiCsG999+P4r79oLP1gtjvfCx57gWMHTsWI0aNxoIFC1BbW6t0EyPW6vHBz7sUVaMnMysG6g4A4OWXX4YgCPB4PPFuqmIYDIgobBaLBSuWPwev4xj0OcUouHUFcq/6E6p9Wbh73r3o06cPLv3xj7F27Vq0tbUp3dywONrYW6BGZ5pZMVB3kJubC+B/6yykAgYDIorIxRdfjBtvvBGOLSvgczYhbeC56HX53eg9exUyJ92GD/97GNdeey1y8/Jx0003YevWrfAn0Z/grC9QP6fbh+oTTuypa0a9wwXRJ1+fgbqDwDoLgwYNSol1FhgMiChijz/+OLJs6WiqWhb8q0tjSod1zI+Re+1fUfT/noFu9GV4af1GXHjhheg3YCD+9Kc/YX9gdcME5RJ98HiTJ8RQZALFinvrmlF93IkWtxwKU63uIKxgsGTJEvTv3x8mkwmlpaX44IMPutx38+bNEAShw9eePXvCbjQRJZasrCw8vWwpWvdth3PPhx2+r88qQuYF1yH/lmeQf+0jaMwYgof/+jgGDx6MsvN/iGeeeQZNTU3xb/gZsOgwNXVWrHjRxZekTN1ByMHg5Zdfxm9/+1vce++92LlzJy644AJMmTIF1dXV3R63d+9e1NbWBr8GDx4cdqOJKPFcccUVuOLKK2F/72n42hyd7iMIGpiKRyJnyhwU3rYKvab9H75o8ODWW3+NvPwCXP2zn+HNN9+EGOYiR9HGaZDp1GJFr9GGlja36usOQg4GCxcuxE033YSbb74Zw4YNw6JFi1BcXIylS5d2e1xeXh4KCgqCX1qtNuxGE1FiWvLUUzBpJDS9++wZ99XojbAMvxC5V92PottWIv2H1+HNrTtw2WWXoaCoN+68807s2rWrw1K78SL6/GjjbId0UqBY8dtjbdj21be4fc6dANRZdxDSBEcejweffvopfv/737fbPnnyZHz88cfdHjt27Fi4XC4MHz4c9913H8rLy7vc1+12w+12Bx87HPJfH6IoJsxfEmoWOMc81/GjlnOek5ODJ59YhNtuuw1S9U6Y+o/p0XHGjCxYyq4Axk+HePQ7tPx3C1a89DKefvppDB02HNdfdy1+9rOfIT8/Pyrt7Mn5bnR64PexxyAaAudRLeezxenFzRX3YmzZBNz+q2vxq1/9CpmZmbj44ouVblpQJO8lghRCHD9y5Ah69+6Njz76COeff35w+8MPP4wXXngBe/fu7XDM3r17sXXrVpSWlsLtduPFF1/EsmXLsHnzZkyYMKHT17n//vvxwAMPdNi+Zs0apKWl9bS5REREKcnpdOLaa6+F3W6HzWYL6diwpkQ+fVEKSZK6XKhi6NChGDp0aPBxWVkZDh8+jAULFnQZDObNm4eKiorgY4fDgeLiYpSXlyMn2mu+UweiKKKqqgqTJk2CXq9XujkpQW3n/LvvvsMPzhsP3ZAJyLroVxE/n6fuAOrX3Yurr74azz37TMTPd6bz7fdL2FvfzPURosTv86J693aUjBoPjTa5ZuI36DQw67Uw6DUw6zUw6rTdrruQKI4fPx72sSH9hnr16gWtVhuszAxoaGgIqYtv/PjxWL16dZffNxqNMBqNHbbr9XpVvGkmC57v+FPLOR80aBD++If7cGdFBTQDy2DqMzzs5/K7nTj6r7+hqKgITz6xKKrnp6vz7XCJEDQ6JM8yT8lBo9UlbDAQBMCk18Js0MKs18Kk18Ck00KjSc6rIJJ/JyHFHoPBgNLSUlRVVbXbXlVV1W5o4Ux27tyJwsLCUF6aiJLMHXfcgXHjzoV9098hecO7rUuSJJx46wlonMfxr9c3ICMjI8qt7BwnNVI3nVaA1aRDrtWIkuw0DM5Px4giGwblpaN3phnZFgPSDLqkDQWRCjm6VVRU4Prrr8e4ceNQVlaGZ555BtXV1bj11lsByMMANTU1WLVqFQBg0aJF6NevH0aMGAGPx4PVq1ejsrISlZWV0f1JiCihaLVarFzxPMaMGQv7xy8jc8L1IT+HY/sraN37EV577TUMGzYsBq3s4nU5DbJqGPXyUEDgvyZ9cgwFKCnkYPDzn/8cx48fx5///GfU1tZi5MiR2LhxI/r27QsAqK2tbTengcfjwV133YWamhqYzWaMGDECb775JqZOnRq9n4KIEtKIESNw33334s9/+QvSzvohDHk9X9++7cAnaPrgRfzhD3/A5ZdfHsNWnva6Hh+8PhYXJBu1DQUoKaS7EpTicDiQkZGBY8eOsfgwDkRRxMaNGzF16lRVjHcnAzWfc4/Hg7PHnoPvGj3I/eUCCJozz2EiNh5Bw4sVmFx+Id5443VoNNH9C6+7813vcKHB4e7iSAqH3+fFoV0fot+YH0WlxkCnFYJ//Qd6A4w6TZdF8Kno+PHj6NWrV/zuSiAi6imDwYAXVjyP8WVlcHyyARnnXdnt/n5PG4488/9QUFiINWteinooOJNmToOcUDgUEH88u0QUcz/4wQ/wmzlz0PzRSxAbj3S5nyRJOLFxEQCgrrYWb775ZpxaKPN4/WjzcNEkJQgCYDZokZ1uQO8sMwbmWTCiyIYh+VYUZ6chz2qC1aRnKIgDnmEiiosHH3wQRUWFaHpncZfTHAeKDe+66y4AwHXXXYerr746bm1kb0F88K6AxMZgQERxYbFY8Pxzz8L53Rdo+fydDt9vO7ADTR+8iPvuuw+PPfYYGhoaAAD//Oc/IQhCu2nSY8XB2xSjzqjXIMMs13GU5JhxVqEVwwpt6NfLgoIMEzLS9DDptawPSCAMBkQUN5dccgluvPFGOLasgLf5WHC72HgEjW8uwNQpU4PToefm5sLn8wXnPDGZTNi/f3/M2ub3S2h1MxiEq7uhgN5ZZgBAupFDAcmAvyEiiqvHH38cWbZ0NFUtgyRJ8LudOPHaQyju3bHYUKPR4MiRI7j77rsBAIMHD8aaNWti0q5mt5dTIPcQhwLUjcGAiOIqKysLy5YuQeu+7XDu+aBHMxs+8sgjePfddwHEru6Akxp1zqjXIDNNj/wMI/r1SuNQQArg7YpEFHdXXnklrrjySry2YSEkn7dHMxtedNFFaGhoQF5eXrDuwOVydbquSqgkSUr5aZA5QRAFMBgQkSKWPPUUausb8NOfTO3xzIaBuoM+ffqgtrYWJpMJ+/btw6BBgyJqi9Pjg8+fOuMInCCIusNgQESKKCgowLYPPwj5uEDdwe9//3s8+uijGDx4MFavXo3rrrsu7LaoubeAEwRRqHh1EFFSOrXu4Je//CWuuuqqsJ/LoYL5CzhBEEULewyIKGmdWndQWVkZVt2B2+uDW0yu2Q45FECxxGBAREkt0roDR1tiDyNwKIDijVcXESW9zuY7eOmll3p0bKJMg8yhAEoUvMKISDVCrTvw+SU4Pb54NK0dThBEiYxDCUSkKhdddBHq6+uRn59/xrqDFrcY89kOORRAyYbBgIhUJy8vDz6fD71790ZdXV2XdQctruj1FnCCIFILxlYiUiWNRoPa2lrMnTsXQOd1B83u8OoLOBRAasZgQESq9uijj3ZZd+DvwV2KXCuAUg2HEohI9U6vO8jIyMDatWvb7cOhACIZgwERpYRT6w7sdjsAICfdCKvZyAmCiE7BYEBEKSNQd/Dmm2/C6/Ui32aEXq9XullECYU1BkSUciZPnqx0E4gSFoMBERERBTEYEBERURCDAREREQUxGBAREVEQgwEREREFMRgQERFREIMBERERBTEYEBERURCDAREREQUxGBAREVEQgwEREREFMRgQERFREIMBERERBYUVDJYsWYL+/fvDZDKhtLQUH3zwQbf7b9myBaWlpTCZTBgwYACWLVsWVmOJiIgotkIOBi+//DJ++9vf4t5778XOnTtxwQUXYMqUKaiuru50/4MHD2Lq1Km44IILsHPnTtxzzz2YM2cOKisrI248ERERRZcu1AMWLlyIm266CTfffDMAYNGiRXjnnXewdOlSzJ8/v8P+y5YtQ0lJCRYtWgQAGDZsGHbs2IEFCxZgxowZnb6G2+2G2+0OPrbb7QCAEydOhNpcCoMoinA6nTh+/Dj0er3SzUkJPOfxxfMdXzzf8Rf4vJQkKfSDpRC43W5Jq9VKr776arvtc+bMkSZMmNDpMRdccIE0Z86cdtteffVVSafTSR6Pp9Nj/vSnP0kA+MUvfvGLX/ziVwRfBw4cCOVjXpIkSQqpx+DYsWPw+XzIz89vtz0/Px91dXWdHlNXV9fp/l6vF8eOHUNhYWGHY+bNm4eKiorg46amJvTt2xfV1dXIyMgIpckUBofDgeLiYhw+fBg2m03p5qQEnvP44vmOL57v+LPb7SgpKUF2dnbIx4Y8lAAAgiC0eyxJUodtZ9q/s+0BRqMRRqOxw/aMjAxeVHFks9l4vuOM5zy+eL7ji+c7/jSa0O8xCOmIXr16QavVdugdaGho6NArEFBQUNDp/jqdDjk5OSE2l4iIiGIppGBgMBhQWlqKqqqqdturqqpw/vnnd3pMWVlZh/03bdqEcePGsQiFiIgowYTcx1BRUYHnnnsOzz//PL7++mvceeedqK6uxq233gpArg+44YYbgvvfeuut+O6771BRUYGvv/4azz//PJYvX4677rqrx69pNBrxpz/9qdPhBYo+nu/44zmPL57v+OL5jr9IzrkgSaHfy7BkyRL89a9/RW1tLUaOHIm//e1vmDBhAgBg1qxZOHToEDZv3hzcf8uWLbjzzjvx1VdfoaioCHfffXcwSBAREVHiCCsYEBERkTpxrQQiIiIKYjAgIiKiIAYDIiIiCmIwICIioqCEDwahLvFM4du6dSumTZuGoqIiCIKA1157Tekmqdr8+fNx7rnnwmq1Ii8vD9OnT8fevXuVbpaqLV26FKNHjw7OwFdWVoa33npL6WaljPnz50MQBPz2t79VuimqdP/990MQhHZfBQUFIT9PQgeDUJd4psi0trbi7LPPxuLFi5VuSkrYsmULZs+eje3bt6OqqgperxeTJ09Ga2ur0k1TrT59+uCRRx7Bjh07sGPHDlx00UW4/PLL8dVXXyndNNX75JNP8Mwzz2D06NFKN0XVRowYgdra2uDX7t27Q36OhL5d8bzzzsM555yDpUuXBrcNGzYM06dP73SJZ4oeQRCwfv16TJ8+XemmpIyjR48iLy8PW7ZsCc4LQrGXnZ2Nxx57DDfddJPSTVGtlpYWnHPOOViyZAkefPBBjBkzBosWLVK6Wapz//3347XXXsOuXbsiep6E7THweDz49NNPMXny5HbbJ0+ejI8//lihVhHFjt1uB4CwVkOj0Pl8Pqxbtw6tra0oKytTujmqNnv2bPzkJz/BJZdconRTVG/fvn0oKipC//798Ytf/ALffvttyM8R1uqK8RDOEs9EyUqSJFRUVOBHP/oRRo4cqXRzVG337t0oKyuDy+VCeno61q9fj+HDhyvdLNVat24dPvvsM3zyySdKN0X1zjvvPKxatQpDhgxBfX09HnzwQZx//vn46quvQlq0MGGDQUCoSzwTJaPbb78dX3zxBT788EOlm6J6Q4cOxa5du9DU1ITKykrMnDkTW7ZsYTiIgcOHD+M3v/kNNm3aBJPJpHRzVG/KlCnB/x81ahTKysowcOBAvPDCC6ioqOjx8yRsMAhniWeiZHTHHXfg9ddfx9atW9GnTx+lm6N6BoMBgwYNAgCMGzcOn3zyCZ544gk8/fTTCrdMfT799FM0NDSgtLQ0uM3n82Hr1q1YvHgx3G43tFqtgi1UN4vFglGjRmHfvn0hHZewNQbhLPFMlEwkScLtt9+OV199Fe+99x769++vdJNSkiRJcLvdSjdDlS6++GLs3r0bu3btCn6NGzcO1113HXbt2sVQEGNutxtff/01CgsLQzouYXsMAHmJ5+uvvx7jxo1DWVkZnnnmmXZLPFN0tbS0YP/+/cHHBw8exK5du5CdnY2SkhIFW6ZOs2fPxpo1a7BhwwZYrdZg71hGRgbMZrPCrVOne+65B1OmTEFxcTGam5uxbt06bN68GW+//bbSTVMlq9XaoWbGYrEgJyeHtTQxcNddd2HatGkoKSlBQ0MDHnzwQTgcDsycOTOk50noYPDzn/8cx48fx5///OfgEs8bN25E3759lW6aKu3YsQPl5eXBx4ExqZkzZ2LlypUKtUq9ArfhTpw4sd32FStWYNasWfFvUAqor6/H9ddfj9raWmRkZGD06NF4++23MWnSJKWbRhSx77//Htdccw2OHTuG3NxcjB8/Htu3bw/5MzOh5zEgIiKi+ErYGgMiIiKKPwYDIiIiCmIwICIioiAGAyIiIgpiMCAiIqIgBgMiIiIKYjAgIiKiIAYDIiIiCmIwICIioiAGAyIiIgpiMCAiIqKg/w/f5zbeBTVNUgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "H2 = np.array([\n", " [-0.5, -0.5, -0.5, -0.5],\n", " [ 0.4, 0.4, 0.4, 0.4]\n", " ])\n", "P_translated = P + H2\n", "\n", "plt.gca().add_artist(Polygon(P.T, alpha=0.2))\n", "plt.gca().add_artist(Polygon(P_translated.T, alpha=0.3, color=\"r\"))\n", "for vector, origin in zip(H2.T, P.T):\n", " plot_vector2d(vector, origin=origin)\n", "\n", "plt.axis([0, 5, 0, 4])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although matrices can only be added together if they have the same size, NumPy allows adding a row vector or a column vector to a matrix: this is called *broadcasting* and is explained in further details in the [NumPy tutorial](tools_numpy.ipynb). We could have obtained the same result as above with:" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2.5, 3.5, 0.5, 4.1],\n", " [0.6, 3.9, 2.4, 0.9]])" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P + [[-0.5], [0.4]] # same as P + H2, thanks to NumPy broadcasting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Scalar multiplication\n", "Multiplying a matrix by a scalar results in all its vectors being multiplied by that scalar, so unsurprisingly, the geometric result is a rescaling of the entire figure. For example, let's rescale our polygon by a factor of 60% (zooming out, centered on the origin):" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def plot_transformation(P_before, P_after, text_before, text_after, axis = [0, 5, 0, 4], arrows=False):\n", " if arrows:\n", " for vector_before, vector_after in zip(P_before.T, P_after.T):\n", " plot_vector2d(vector_before, color=\"blue\", linestyle=\"--\")\n", " plot_vector2d(vector_after, color=\"red\", linestyle=\"-\")\n", " plt.gca().add_artist(Polygon(P_before.T, alpha=0.2))\n", " plt.gca().add_artist(Polygon(P_after.T, alpha=0.3, color=\"r\"))\n", " plt.plot(P_before[0], P_before[1], \"b--\", alpha=0.5)\n", " plt.plot(P_after[0], P_after[1], \"r--\", alpha=0.5)\n", " plt.text(P_before[0].mean(), P_before[1].mean(), text_before, fontsize=18, color=\"blue\")\n", " plt.text(P_after[0].mean(), P_after[1].mean(), text_after, fontsize=18, color=\"red\")\n", " plt.axis(axis)\n", " plt.gca().set_aspect(\"equal\")\n", " plt.grid()\n", "\n", "P_rescaled = 0.60 * P\n", "plot_transformation(P, P_rescaled, \"$P$\", \"$0.6 P$\", arrows=True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 19: Usando la función `plot_transformation()` dibuja una figura geométrica de 5 lados o más y escálalo aplicando un producto escalar.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Matrix multiplication – Projection onto an axis\n", "Matrix multiplication is more complex to visualize, but it is also the most powerful tool in the box.\n", "\n", "Let's start simple, by defining a $1 \\times 2$ matrix $U = \\begin{bmatrix} 1 & 0 \\end{bmatrix}$. This row vector is just the horizontal unit vector." ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1, 0]])" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U = np.array([[1, 0]])\n", "U" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's look at the dot product $U \\cdot P$:" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[3. , 4. , 1. , 4.6],\n", " [0.2, 3.5, 2. , 0.5]])" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[3. , 4. , 1. , 4.6]])" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U @ P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These are the horizontal coordinates of the vectors in $P$. In other words, we just projected $P$ onto the horizontal axis:" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "image/png": "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OVwAAJBIUR9jqKqq0i9/+Us9++yzOnLkiB588EE1Nzdr+fLlks7XB3zrW98Kr798+XKdOHFCVVVVOnLkiJ599llt2rRJq1atGvVrOp1O/ehHPxr09ALij/lOPuY8uZjv5GK+k28scx715YrS+QZH//qv/6qWlhZdddVV+vd//3ctWLBAknT33Xfrr3/9q+rr68PrNzQ06MEHH9Thw4c1efJk/eAHPwgHCQAAkD5iCgYAACAzca8EAAAQRjAAAABhBAMAABBGMAAAAGFpHwyivcUzYrd7924tXbpUkydPlsVi0SuvvJLqIWW06upqXX/99crPz1dRUZGWLVumo0ePpnpYGW3Dhg2aO3duuANfeXm53njjjVQPK2tUV1fLYrHogQceSPVQMtKPf/xjWSyWiK9JkyZF/e+kdTCI9hbPGJvu7m5dc801evLJJ1M9lKzQ0NCgFStWaN++faqrq1MgENDixYvV3d2d6qFlrClTpuiRRx5RY2OjGhsbddNNN+m2227T4cOHUz20jLd//34988wzmjt3bqqHktHmzJmjlpaW8NehQ4ei/jfS+nLFaG/xjPixWCx6+eWXtWzZslQPJWt89NFHKioqUkNDQ7gvCBJvwoQJ+vnPf67vfOc7qR5Kxurq6tLnP/95PfXUU3r44Yd17bXXav369akeVsb58Y9/rFdeeUUHDx4c07+TtkcM/H6/Dhw4oMWLF0csX7x4sd56660UjQpInI6ODkmK6W5oiF4wGNS2bdvU3d2t8vLyVA8no61YsUJf/vKXdcstt6R6KBnv2LFjmjx5smbMmKE77rhDf/nLX6L+N2K6u2IyxHKLZ8CsQqGQqqqq9Pd///e66qqrUj2cjHbo0CGVl5ert7dXeXl5evnllzV79uxUDytjbdu2TW+//bb279+f6qFkvBtuuEFbtmzRlVdeqdOnT+vhhx/WF77wBR0+fDiqmxambTDoF+0tngEzuvfee/XHP/5Rb775ZqqHkvFmzpypgwcP6uzZs6qpqdFdd92lhoYGwkECnDx5Uvfff7927Nghl8uV6uFkvCVLloQfX3311SovL9ff/d3f6Ve/+pWqqqpG/e+kbTCI5RbPgBndd999eu2117R7925NmTIl1cPJeDk5ObriiiskSWVlZdq/f78ef/xxPf300ykeWeY5cOCA2traVFpaGl4WDAa1e/duPfnkk/L5fLLZbCkcYWbLzc3V1VdfrWPHjkW1XdrWGMRyi2fATEKhkO6991699NJL2rlzp2bMmJHqIWWlUCgkn8+X6mFkpJtvvlmHDh3SwYMHw19lZWX65je/qYMHDxIKEszn8+nIkSMqKSmJaru0PWIgnb/F85133qmysjKVl5frmWeeibjFM+Krq6tLf/rTn8LPjx8/roMHD2rChAmaNm1aCkeWmVasWKEXXnhBr776qvLz88NHx8aNGye3253i0WWmtWvXasmSJZo6darOnTunbdu2qb6+Xtu3b0/10DJSfn7+gJqZ3NxcFRYWUkuTAKtWrdLSpUs1bdo0tbW16eGHH1ZnZ6fuuuuuqP6dtA4GX//619Xe3q6f/OQn4Vs819bW6rLLLkv10DJSY2OjKioqws/7z0nddddd2rx5c4pGlbn6L8NduHBhxPLnnntOd999d/IHlAVOnz6tO++8Uy0tLRo3bpzmzp2r7du3a9GiRakeGjBmH3zwgf7pn/5JZ86c0cSJEzVv3jzt27cv6s/MtO5jAAAAkittawwAAEDyEQwAAEAYwQAAAIQRDAAAQBjBAAAAhBEMAABAGMEAAACEEQwAAEAYwQAAAIQRDAAAQBjBAAAAhP3/Nzb/oLTRhFYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def plot_projection(U, P, axis=[0, 5, 0, 4]):\n", " U_P = U @ P\n", " \n", " axis_end = 100 * U\n", " plot_vector2d(axis_end[0], color=\"black\")\n", "\n", " plt.gca().add_artist(Polygon(P.T, alpha=0.2))\n", " for vector, proj_coordinate in zip(P.T, U_P.T):\n", " proj_point = proj_coordinate * U\n", " plt.plot(proj_point[0][0], proj_point[0][1], \"ro\", zorder=10)\n", " plt.plot([vector[0], proj_point[0][0]], [vector[1], proj_point[0][1]],\n", " \"r--\", zorder=10)\n", "\n", " plt.axis(axis)\n", " plt.gca().set_aspect(\"equal\")\n", " plt.grid()\n", " plt.show()\n", "\n", "plot_projection(U, P)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can actually project on any other axis by just replacing $U$ with any other unit vector. For example, let's project on the axis that is at a 30° angle above the horizontal axis:" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "angle30 = 30 * np.pi / 180 # angle in radians\n", "U_30 = np.array([[np.cos(angle30), np.sin(angle30)]])\n", "\n", "plot_projection(U_30, P)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Good! Remember that the dot product of a unit vector and a matrix basically performs a projection on an axis and gives us the coordinates of the resulting points on that axis." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 20: Proyecta un polígono de 5 lados o más en el eje de ordenadas usando la función `plot_projection()`. Modifica la función `plot_projection()` si es necesario.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Matrix multiplication – Rotation\n", "Now let's create a $2 \\times 2$ matrix $V$ containing two unit vectors that make 30° and 120° angles with the horizontal axis:\n", "\n", "$V = \\begin{bmatrix} \\cos(30°) & \\sin(30°) \\\\ \\cos(120°) & \\sin(120°) \\end{bmatrix}$" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.8660254, 0.5 ],\n", " [-0.5 , 0.8660254]])" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "angle120 = 120 * np.pi / 180\n", "V = np.array([\n", " [np.cos(angle30), np.sin(angle30)],\n", " [np.cos(angle120), np.sin(angle120)]\n", " ])\n", "V" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the product $VP$:" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 2.69807621, 5.21410162, 1.8660254 , 4.23371686],\n", " [-1.32679492, 1.03108891, 1.23205081, -1.8669873 ]])" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "V @ P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first row is equal to $V_{1,*} P$, which is the coordinates of the projection of $P$ onto the 30° axis, as we have seen above. The second row is $V_{2,*} P$, which is the coordinates of the projection of $P$ onto the 120° axis. So basically we obtained the coordinates of $P$ after rotating the horizontal and vertical axes by 30° (or equivalently after rotating the polygon by -30° around the origin)! Let's plot $VP$ to see this:" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "P_rotated = V @ P\n", "plot_transformation(P, P_rotated, \"$P$\", \"$VP$\", [-2, 6, -2, 4], arrows=True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Matrix $V$ is called a **rotation matrix**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 21: Dibuja la figura anterior y rotala 180º respecto al origen**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Matrix multiplication – Other linear transformations\n", "More generally, any linear transformation $f$ that maps n-dimensional vectors to m-dimensional vectors can be represented as an $m \\times n$ matrix. For example, say $\\textbf{u}$ is a 3-dimensional vector:\n", "\n", "$\\textbf{u} = \\begin{pmatrix} x \\\\ y \\\\ z \\end{pmatrix}$\n", "\n", "and $f$ is defined as:\n", "\n", "$f(\\textbf{u}) = \\begin{pmatrix}\n", "ax + by + cz \\\\\n", "dx + ey + fz\n", "\\end{pmatrix}$\n", "\n", "This transformation $f$ maps 3-dimensional vectors to 2-dimensional vectors in a linear way (i.e. the resulting coordinates only involve sums of multiples of the original coordinates). We can represent this transformation as matrix $F$:\n", "\n", "$F = \\begin{bmatrix}\n", "a & b & c \\\\\n", "d & e & f\n", "\\end{bmatrix}$\n", "\n", "Now, to compute $f(\\textbf{u})$ we can simply do a matrix multiplication:\n", "\n", "$f(\\textbf{u}) = F \\textbf{u}$\n", "\n", "If we have a matrix $G = \\begin{bmatrix}\\textbf{u}_1 & \\textbf{u}_2 & \\cdots & \\textbf{u}_q \\end{bmatrix}$, where each $\\textbf{u}_i$ is a 3-dimensional column vector, then $FG$ results in the linear transformation of all vectors $\\textbf{u}_i$ as defined by the matrix $F$:\n", "\n", "$FG = \\begin{bmatrix}f(\\textbf{u}_1) & f(\\textbf{u}_2) & \\cdots & f(\\textbf{u}_q) \\end{bmatrix}$\n", "\n", "To summarize, the matrix on the left-hand side of a dot product specifies what linear transformation to apply to the right-hand side vectors. We have already shown that this can be used to perform projections and rotations, but any other linear transformation is possible. For example, here is a transformation known as a *shear mapping*:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 22: ¿Qué es una transformación lineal?**" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[3. , 4. , 1. , 4.6],\n", " [0.2, 3.5, 2. , 0.5]])" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGMCAYAAAB6R8ChAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABRhElEQVR4nO3deXyUZ7k//s8zzyxJJhtJyAYJCWEPECDQlrIU2oJSqK2tXaStaNWv/YlVytejHus5th5tXb5qPdaDUs+pSw8t1i52t6GWrZQS2fctKyEQspA9sz3P74+rQxKSQCaZeWb7vF+vvCDDZHKTJ8l85r6v+7oVXdd1EBERERnEFOwBEBERUXRh+CAiIiJDMXwQERGRoRg+iIiIyFAMH0RERGQohg8iIiIyFMMHERERGYrhg4iIiAzF8EFERESGYvggIiIiQ/kUPvLy8qAoSp+31atXB2p8REREFGHMvty5tLQUHo/n0vuHDh3CkiVLcNddd/l9YERERBSZlOEcLLdmzRq88cYbOHnyJBRF8ee4iIiIKEL5NPPRk9PpxHPPPYe1a9deMXg4HA44HI5L72uahsbGRqSmpjKwEBERhQld19Ha2ors7GyYTMMsGdWHaOPGjbqqqnpNTc0V7/f9739fB8A3vvGNb3zjG98i4K26unqo0eGSIS+7fOITn4DVasXrr79+xftdPvPR3NyM3NxcnDhxAikpKUP51OQnLpcL77//PhYvXgyLxRLs4UQ1XovQwWsROngtQktjYyMmTJiAixcvIikpaViPNaRll8rKSmzatAkvv/zyVe9rs9lgs9n63J6SkoLU1NShfHryE5fLhbi4OKSmpvIHO8h4LUIHr0Xo4LUITf4omRjSos2zzz6L9PR0LF++fNgDICIioujic/jQNA3PPvssVq1aBbN5yPWqREREFKV8Dh+bNm1CVVUVHnzwwUCMh4iIiCKcz1MXS5cuxRBrVImIiIh4tgsREREZi+GDiIiIDMXwQURERIZi+CAiIiJDMXwQERGRoRg+iIiIyFAMH0RERGQohg8iIiIyFMMHERERGYrhg4iIiAzF8EFERESGYvggIiIiQzF8EBERkaEYPoiIiMhQDB9ERERkKIYPIiIiMhTDBxERERmK4YOIiIgMxfBBREREhmL4ICIiIkMxfBAREZGhGD6IiIjIUAwfREREZCiGDyIiIjIUwwcREREZiuGDiIiIDMXwQURERIZi+CAiIiJDMXwQERGRoRg+iIiIyFAMH0RERGQohg8iIiIyFMMHERERGYrhg4iIiAzF8EFERESGYvggIiIiQzF8EBERkaEYPoiIiMhQDB9ERERkKJ/DR01NDe6//36kpqYiLi4OM2bMwO7duwMxNiIiIopAZl/u3NTUhHnz5mHx4sV4++23kZ6ejtOnTyM5OTlAwyMiIqJI41P4+MlPfoKcnBw8++yzl27Ly8vz95iIiIgogvkUPl577TV84hOfwF133YUtW7Zg1KhR+OpXv4ovf/nLA36Mw+GAw+G49H5LSwsAwOVyweVyDXHY5A/erz+vQ/DxWoQOXovQwWsRWvx5HRRd1/XB3jkmJgYAsHbtWtx1113YtWsX1qxZg9/97nf43Oc+1+/HPPbYY3j88cf73L5hwwbExcUNcdhERERkpI6ODqxcuRLNzc1ITEwc1mP5FD6sVitmz56NHTt2XLrt61//OkpLS/Hhhx/2+zH9zXzk5OSgtrYWqampwxg6DZfL5UJJSQmWLFkCi8US7OFENV6L0MFrETp4LUJLQ0MDsrKy/BI+fFp2ycrKwpQpU3rdNnnyZLz00ksDfozNZoPNZutzu8Vi4TdTiOC1CB28FqGD1yJ08FqEBn9eA5+22s6bNw/Hjx/vdduJEycwZswYvw2IiIiIIptP4eORRx7Bzp078cQTT+DUqVPYsGED1q9fj9WrVwdqfERERBRhfAofc+bMwSuvvILnn38eU6dOxX/8x3/gqaeewn333Reo8REREVGE8anmAwBWrFiBFStWBGIsREREFAV4tgsREREZiuGDiIiIDMXwQURERIZi+CAiIiJDMXwQERGRoRg+iIiIyFAMH0RERGQohg8iIiIyFMMHERERGYrhg4iIiAzF8EFERESGYvggIiIiQzF8EBERkaEYPoiIiMhQDB9ERERkKIYPIiIiMhTDBxERERmK4YOIiIgMxfBBREREhmL4ICIiIkMxfBAREZGhGD6IiIjIUAwfREREZCiGDyIiIjIUwwcREREZiuGDiIiIDMXwQURERIZi+CAiIiJDMXwQERGRoRg+iIiIyFAMH0RERGQohg8iIiIyFMMHERERGYrhg4iIiAzF8EFERESGYvggIiIiQzF8EBERkaEYPoiIiMhQPoWPxx57DIqi9HrLzMwM1NiIiIgoApl9/YDCwkJs2rTp0vuqqvp1QERERBTZfA4fZrOZsx1EREQ0ZD6Hj5MnTyI7Oxs2mw3XXnstnnjiCYwdO3bA+zscDjgcjkvvt7S0AABcLhdcLtcQhkz+4v368zoEH69F6OC1CB28FqHFn9dB0XVdH+yd3377bXR0dGDChAk4f/48fvjDH+LYsWM4fPgwUlNT+/2Yxx57DI8//nif2zds2IC4uLihj5yIiIgM09HRgZUrV6K5uRmJiYnDeiyfwsfl2tvbUVBQgG9961tYu3Ztv/fpb+YjJycHtbW1AwYWMobL5UJJSQmWLFkCi8US7OFENV6L0MFrETp4LUJLQ0MDsrKy/BI+fF526clut2PatGk4efLkgPex2Wyw2Wx9brdYLPxmChG8FqGD1yJ08FqEDl6L0ODPazCsPh8OhwNHjx5FVlaWv8ZDREREEc6n8PHNb34TW7ZsQXl5OT766CN85jOfQUtLC1atWhWo8REREVGE8WnZ5cyZM/jsZz+L+vp6jBw5Etdddx127tyJMWPGBGp8REREFGF8Ch8vvPBCoMZBREREUYJnuxAREZGhGD6IiIjIUAwfREREZCiGDyIiIjIUwwcREREZiuGDiIiIDMXwQURERIZi+CAiIiJDMXwQERGRoRg+iIiIyFAMH0RERGQohg8iIiIyFMMHERERGYrhg4iIiAzF8EFERESGYvggIiIiQzF8EBERkaEYPoiIiMhQDB9ERERkKIYPIiIiMhTDBxERERmK4YOIiIgMxfBBREREhmL4ICIiIkMxfBAREZGhGD6IiIjIUAwfREREZCiGDyIiIjIUwwcREREZiuGDiIiIDMXwQURERIZi+CAiIiJDMXwQERGRoRg+iIiIyFAMH0RERGQohg8iIiIyFMMHERERGYrhg4iIiAzF8EFERESGGlb4ePLJJ6EoCtasWeOn4RAREVGkG3L4KC0txfr16zF9+nR/joeIiIgi3JDCR1tbG+677z4888wzGDFihL/HRERERBHMPJQPWr16NZYvX46bb74ZP/zhD694X4fDAYfDcen9lpYWAIDL5YLL5RrKpyc/8X79eR2Cj9cidPBahA5ei9Diz+vgc/h44YUXsGfPHpSWlg7q/k8++SQef/zxPre///77iIuL8/XTUwCUlJQEewj0MV6L0MFrETp4LUJDR0eH3x5L0XVdH+ydq6urMXv2bLz77rsoKioCACxatAgzZszAU0891e/H9DfzkZOTg9raWqSmpg5v9DQsLpcLJSUlWLJkCSwWS7CHE9V4LUIHr0Xo4LUILQ0NDcjKykJzczMSExOH9Vg+zXzs3r0bdXV1KC4uvnSbx+PB1q1b8fTTT8PhcEBV1V4fY7PZYLPZ+jyWxWLhN1OI4LUIHbwWoYPXInTwWoQGf14Dn8LHTTfdhIMHD/a67Qtf+AImTZqEb3/7232CBxEREdHlfAofCQkJmDp1aq/b7HY7UlNT+9xORERE1B92OCUiIiJDDWmrbU+bN2/2wzCIiIgoWnDmg4iIiAzF8EFERESGYvggIiIiQzF8EBERkaEYPoiIiMhQDB9ERERkKIYPIiIiMhTDBxERERmK4YOIiIgMxfBBREREhmL4ICIiIkMxfBAREZGhGD6IiIjIUAwfREREZCiGDyIiIjIUwwcREREZiuGDKATU1gItLdZgD4OIgk3XgTNngFOn5O8RyhzsARBFs/PngVdfBaqqFZypzsW99wZ7REQUFLoOXLgAPP88sGcPkJwMfOUrwJQpwR5ZQDB8EAWRy6PhRLkHLrcHLhcnIomigq4DDQ3AkSPA3r3yvscD7NwJdHQA8fGAqgK5ucEeacAwfBAZqLJSlliK52i40OrARd2JDqcNcRYTJk1qCvbwiChQnE6gvBzYtw84cECWVpqbga4ueVNVICkJmDYNuOMOYM4cQFGCPeqAYfggMkBlJbB5M3DqtI4utxuehA4kJsmLHZsNsJlMyM5uDfYwicjfHA5ZTlm3Djh5UmY2nE7AbJallfh4oLUVyMkBbr8duOEGwGIJ9qgDjuGDKIB6ho4OpxsOjweTCj1QVfn32hoFHpeChFQFqaldQR0rEQ2TywWUlcnsxpEjwPz5QE0NcPEiUFcnyytjx8osR2YmkJgoMx0mE1BUBNjtwf4fGIbhgygAGhuB11/vGzpmXeNGQmL3/ZwOBSNTTRg/XoeJJR9E4eXy2o3jx4H6+u7ZDbcbKCiQ2o2cHLnfRx8BmgZcdx2waBGQkRHs/0VQMHwQBYBq0XDstAetnf2HDq+x4zXcNFeB4tGxaZPx4ySiIdB1mc147z15leGt3dA0qduYPBnIz5fZDbMZOH0a+OADoKUFGDECmDEDWLAgaoMHwPBB5BeVlcCxY8DimzTUtznQ2O7E3JtMSBup9Rs6vFSTgvgYM1wul3GDJaLB885uHD4syylZWbJscuECcO6c/JmdLTMcOTmylOItFK2tBbZtk/slJgKzZgF33w3MnBnRxaSDwfBBNAyX13RoCZ0YnSuNgfILtCt+bFsrkJXGH0GikHOlnSnp6cDcuTLDkZUFTJ/ef4FoXZ008bFYgEmTpJh04cKoKCYdDP7mIxqCgQpJk5IH35Hw3Tct0DtteGBlRG/nJwofDocEjZ//vHfthtncPbuRmyuzGF49i7UcDik6PXtWikdvuw1ITQWWLYuqYtLBYPgg8kFbG/DSS1cvJL2ajg6grtaEtHgT0tICN14iGkDPnSn19VKnUVXVvTNFUWTGYuxYqd240oyF2w0cPAjs2iX1HAsXyp/p6cb8X8IQwweRDyw2DdXn3Wjq1IYUOryqyk0wqyZkZytISpLfg0QUQFfameJ2A52dQEqKzGzcey9gtV69LkPX5QyWDz6QVyYjRkjdx5IlUV/TcTUMH0RXUFkJlJYCy2/V0NQphaTXLlZgt+tDCh1eFadV2MwmTJzov7ESUT+8O1Oef162uV6+M8U7u5GdjUsNeAbj7FkpJj1/XpZhiouBu+6SGQ8Gj6ti+CDqx+U1He5YBwqLPACAzKzhnTTpdgPVlSYk2VRMmOCHwRKRuHxnyowZMrtx4YJsR7vSzhRfbN4shahxcbJc8+lPy9ZZM59SB4tfKaIeBiokzc33+O1znK02AZqC5CQFWVl+e1ii6HSlnSnl5cDEiTLDccMN0tRrOLtN2tpkxiMxERgzRgpJly2TEEI+YfgggsxG/O//Dr+QdDAqykywmlVMnMjZWaIhczjk6Pk//3ngnSl5eXJ2ynC4XFJM2twsjzdtmsyo2GwSamhIGD6IAOiKhjbn8AtJB6NwugfjshVMZr0H0eA4nd07U1RVCkOrqmRXyqlTfbuK+qOXhqZ1F5O2t0s30oceAsaP56sGP2D4oKhUWSm1YsuWa3AoUkg6/ToFM+cNr5B0MDIygckzfShsI4o2H9duKAcPYvT778P0zjtSy9HRIUsc118vSx/jxkntht3u30BQUyO/IC5cABISgNmzpZiUwcNvGD4oqlxe09GqOzF/sRsAkDxieIWkg5UYyw6HRP3SdaCpCfj1r4GyMijNzbDHxMhtiYmyM6WgABg9uvtj/NkxtKUF2LpVZlns9u5i0vnzWUzqZ/xqUlQYqJC0qNht6Dh27VAxbbwZ6VPZZZmiXM+dKSdOyFbV8nKZbTh1CmhogJ6djbrx41GQnQ01KSmwsw5tbcDJk1JQmpfXXUwaGxu4zxnFGD4ooum6bO8/eizwhaRX09YK7N5pRvURM6aMZ/igKNRzZ8r+/bK84d2ZcvasdARNSgJuuQWw2aCbzWjSdQkdgQgeLpfsjtE0qSWZN09mOWbNkroSChifwse6deuwbt06VFRUAAAKCwvx7//+71i2bFkgxkY0bG5NgxLjQlOnHrTQ4VVZpsJqNiEnRxl2AT5RWHE4gHffBd56q7t24/KdKePGATExvT9OD9BSqKbJLMeOHTKW++6TbbijR7OmwyA+hY/Ro0fjxz/+McaNGwcA+OMf/4jbbrsNe/fuRWFhYUAGSOQL7/LKghs0xCRLIWnBNGDMJAQtdHhVlJlgM7OxGEW4nrMbWVmyj72qSpZWTp/u3VXUXztTfOEtJq2rk7EUF8uMR06OseOIcj6Fj1tvvbXX+z/60Y+wbt067Ny5k+GDgurymo7aFheWf1oOTImNBRDkZVuXE6ipMmFELFuqU4S50pkpo0dL0EhMlN4YU6YMvavocDU1Adu3SzCy24HCQuCOO2TnDItJDTfkr7jH48GLL76I9vZ2zJ07d8D7ORwOOByOS++3tLQAAFwuF1w8TSuovF//cL4OlZXAli0KysqBDqcHTo8HkwrdmDnHDc1jzO6VwagqN0HXgORkDcnJWp+D5CLhWkQKXotB0nWguhqm3/9eZhNaWqR2Q9eBxETokyZBnzhR+mN4eZdVBrmc4vr4fq7hLr80N8P0l79I6MnLg/7JT0JfskRemeg6T3YcJH/+TCi67ttVPXjwIObOnYuuri7Ex8djw4YNuOWWWwa8/2OPPYbHH3+8z+0bNmxAHFvS0jDs3JmJ8nLpMGgy6Rg7thlTpjTAbjd2B8tgfPRRJsrKkjBxYhNmzaoL9nCIfKPrsLa2wn72LKAoaPJO32kaxr36KkwuFzrT09GWlYX2rCw4gzW70YPidkNX1UvjSDl6FLamJtRPnw4Xi66GpKOjAytXrkRzczMSE4e3ju1z+HA6naiqqsLFixfx0ksv4fe//z22bNmCKVOm9Hv//mY+cnJyUFtbi9TU1GENnobH5XKhpKQES5YsgSVMtl54C99dHg3vf+DGW28pl2Y6EhJDZ6bjcq/91YbOxhis+pyOsWP7/ns4XotIxWvxsY9rN5QDB6AcPNg9uwFAW7BAli4SE6WYNDExILUbLl1HCYAlACyDDTMfdyY17dgBbfJk4NprgenTpf7EZPL7GKNJQ0MDsrKy/BI+fF52sVqtlwpOZ8+ejdLSUvzqV7/C7373u37vb7PZYLPZ+txusVii+wc7hITDtfDWdEwu1DB6nBSSjhoH3PdFbyFpaHcMvfs+Hek2MxITr3xqdzhci2gRtdfC4ZD96bt2DXhmilpQ0P2NnJAQ2PHoOiyKcvXwoesSkLZvl14hiYlQ09KA5cuv/ENHg+bPn4dhV9nout5rZoPIny4vJD1e7ca9q5xQFPl9EuwdLIOVEGPGiORgj4LoMt6dKfv3SwHm+fOyM2XnTunyGYgzUwKhqUl2sFRUyIzMlCnAnXdKMSmDR0jyKXx897vfxbJly5CTk4PW1la88MIL2Lx5M955551AjY+i1EAdSWdd4w72UrLP3G62VKcQ0bOr6L59vXemTJ8uTb4SE7ubbYVA7cZV7dwJlJYCVquEpOXLgU98om/PEAopPoWP8+fP44EHHkBtbS2SkpIwffp0vPPOO1iyZEmgxkdRqKQE2Lot+B1J/aHlIrDxzzZcP1PFPfeE/u9xilC6LttgX3pJOnp6u4pqWnffjUmTgBEjgj3SwevqkmUWRZFZmcWLgdtvD6//QxTzKXz893//d6DGQVFO06QWzOXRkJThRFMnwjp0eJWXqVChwuFQGDzIGD37bpjNMgNQXi4NvkpLe3cVzckJj9kNL02T2ZrGRtnCO26cLK9Yrb239FLIY2cVCirv8kp6hoai66SQNDYFeOBLQJw92KMbvorTJtjMJnY1pcByuaRGY98+4MCB7tmNlBSpf7DbgVGj5ITWjIzQrd0YiK7L/2nbNglWI0dKS/QpU1jTEaYYPigoLq/p0I67kTHReel3YiQED0cXUFtjQqqdXU0pQDo6gN//Hjh2rP+dKZMmodc33zC3RwaDrbERygcfyC8Nb2fSO+9k8AhzDB9kqCsVkobbi7GrqaowwayYkJGu8IBMGj7vzpSqKiA3V+odqqpkNqC5OXx2pgxWRweUnTuRV1sLpb1dzoJZsQJYsoTFpBGA4YMMs3Mn8OZbkVFIOhgVZSZYzZz1oCEa6MyUri7ZjWKzyUzGzTd3N/wKl9qNq+nqAo4fh3LiBJCQAP3Tn5ZzWJKTgz0y8hOGDwool0tegLk8GpKzHGhxKhg/KbJDBwB4PEBVuYp4C+s9yEe6DvzjH/LW386UCROAvDwg0o6n8HiAc+dkb7rLBcyaBX3aNFRevIiC++8P/5kc6oXhgwLCu7xiMmu4abkUkuoq8LkvA9a+DW8jjqYB183zQGsxYfToYI+GQlbP2Y30dKnZKC8HPvpIikfDeWfKYHmLSbdulWZhd90FfPKTQH4+dE1D11tvBXuEFAAMH+RX/dV0jJvlRPzHHZijIXgA8iJt0QIVmUnBHgmFnIF2phQUyPkjdnv37EYk1G5cSX09cHkx6dy5soUWkBRPEYnhg/ziSoWk8QE++iFUJcTwx4t6OHsWePHF3l1Fe+5Myc8HxowJ9iiN0dYmsztHjkjtytixwK23Sv0Ki0mjAn870rAdPgy8sDF6CkmvpqUZOH9WRUEKf7yilndnSlsbEB8vO1NOngTefrt3V9GxYyN/duNy7e1ycJ3bLTM9N90E3HabfE0oavC3Iw1JZycQGyuFpPHpDjhVIH+SFtWhw+vUcRX7PrKhs076IFEUGOjMlJgYoKhI+lEkJgJLl3afnxJptRtXomkSNs6elcLS+fMlcN1zj8z6UNRh+CCfeJdXmls03HGfAxc7ndB14N5VMntMQGUZu5pGDV0HXn0V+Oc/+9+Zkpkp9Qsmk9x/5MigDtdwui69SLZvlxqW4mJg1ixZXlLV6Apg1AufLmhQ+qvpOHbahYws+XcGD9HRAZyvNSEtnv09Io53duPUKWD0aKCuTpZW3noLqK6Ojp0pvqivlwZo1dWy9JSQIMsrVmuwR0YhgE8ZdEVXKiSN9uWV/lSVm2BWTcjOVsKxkzVdbqCdKXPmSKGk3S5H0RcXR1/txkDa2qSj4NGj8jUqKOguJmXwoI8xfNCAzpwBfv/fDB2+qDitwsaupmEv7tw5KE8/LUWi/e1MycyU2g3qbf9+2TqrKHKQ3Y03ymwHkzhdhuGDemlpkd8TLo8Gxe6AbYSOjBE6Q8cguN1AdaUJSTaV9R7hxLszxWKRmY4zZ2Byu6H8/e/cmTJYH3/d0N4OjBgBXHONFJNmZQV7ZBSiGD4IQPfyypkaDZ990IEOjxSS3npnd60cXdmF8woUXUFyksLfuaFsoJ0po0ZJLYfZjI5Ro6DfcANrN65E1+UXR12dBLS8PGD5cvmFkZfHrxldEcNHlKuri8Wf/qSgorJ7eeXQcTfyC+TfGTwGL2uUjm+s0WF28/duSOrsBF57rXftRs+dKYmJwPjxAABN16EXFvJCDuTCBSkmPXMGSE0FvvUtYNo0zgrRoDF8RKnKSmDTJgXvvZeLrFwPXLqbNR1+kJVmQSxr6oLPO7tx4YLssqirA06fBl54QZYGrrQzRdeDO/ZQ5i0mPXJEGv2MGyfFpFOnMniQTxg+olBLC/A/z2po6fDAZNIxdpIDxdfpDB3DZFYVxFrVYA8jenlrN3ruTHE6pf7A45GdKbNnS00Cazd843AAe/YAe/fKdOjo0dKZ9FOfYjEpDQnDR5SorwfS0qSQtE1zID1fQ5rHgzkzylA4Lx0mld8Kw7H7IxUX66xQbwKLTY32z3/KDouBzkzxHtYGgEcMD4HLBRw7JuEjNRW49lrg7rslwBENEZ9xIpy3kPR0mYa7HnBAiZVC0gU3ArrmRsU+d7CHGBHKT5ngbFXR3h7skUQ47+xGaqosq9TUAG+8IcsA3JniP95lK4dDllomTZIlllmzpC6GtTA0TAwfEaq/5mBHT7kxear8u6IAXNn2j7ZW4MJ5E9ITTd56RfKXy3emHDsm70+fLjUHqiq7VNLSgNxc7kzxh7o6aYdeUwN8+tPALbdI4GCQIz9i+Igw7EhqvMoyFVazCTk5CuLjgz2aCFFfD7z3njStqqnpuzPFZuMrcH9rbQU+/FACnreYdPZsYMqUYI+MIhDDRwRxuYANz2uov+hh6DBQRZkJNjMbiw1Zzyl+XZdX3nv2yIFtPWs3eGZKYPRXTLpkiexiSUgI9ugoQjF8hLmaGvm97NY0XGh3IGeKBwmNCkOHQVxOoKbKhBGxbKnuk/52piQmSsBwu4G4ONm+mZvL2o1A6uoCnn9einRTU4G5c4G77gIyMoI9MopwDB9hqufyypIVDqSMckDXgaJZwR5ZdDlTZYICE1JTlag7Ld1nui6Nqfbu7X9nit0uYcMbNHJygjveSKXrsnx17pwUk86aJbfdey9YtERGYfgIM/3VdFTUuDEiO9gji05Wm45JE4EJeVwJ6MPpBM6fl+PU6+pkmu4Pf5C/c2dKcNTVSQDMyJCOpAsXytffamU7YzIUw0eYYCFpaBqVo2PRbBUxfN7srt04cqR7dqOpCZg/X6b3VRXIzwcmT2bthtG8xaTHjwMxMfL1v+MOWd4iCgKGjzCg68Cbb2k4XclC0lBjNZsQY4nyrqbV1cCOHQOfmWIycWdKsDgcwO7dEga925KXLgVWrGDwoKBi+AhRlZXSmFFRNVxodSB3qhtarImhI4Scq1WQkx5lP0Le2Q2LRV5N19UBb78tr6q5MyW0HD8ObN0q1yUtrbuYND092CMjYvgINT2XV4rnOjFuehd0HRiTD4zJ14I9POph87sW6J02fP5zEd5Svb+dKWPHyqyG2y31ApMny5IKazeCz+MBamslGMbGytk2994rfTuIQgTDR4jor6bjQrMbBWxDGpJaLgJNjQoyEpXI3JTR2Qns2iWBo7+dKZmZvY9QnzQpqMMlSHHvuXPSgC0rC/j852Xpa8oUFpNSyGH4CDIWkoan8jIVNlXFmDEKYmODPRo/cLlkGUVR5BXzqVPAM8/0rt3gzpTQ1NIiNTcnTsh1WrsWmDkTkfGNSZGK4SPIPvxIw4GjLCQNNxWnTbBZwrixWH87UxRFZjPa27t3pqSns3YjVDkccqLvvn1yvXJypJiUwYPCAMOHwSor5fd4fKIUkmZPciG/Q2XoCCOOLqC2xoRUexiGj1OnZPdDfztTkpOlJ0d2tgSNgoJgj5b64/EAhw4BH30kM1ZpacD110sxKTvdUZhg+DBIz+WV/IlOXLNICklHpAA33Mxj7cNJVYUJZsWEjHQFKSnBHs0V6Lr02bDbgQsXZDnlj38ETp/mzpRw5fHILNW2bRIWi4qAe+5hUKSww/ARYP3VdGR5PNA0/p4PV5XlJljNptDc4dLfzpRrr5Xb3W4JGNyZEn5aW6UIuLFRDn67915ZIisu5i8SCksMHwFSVQW8/z4LSSPRgsVumObEIGdUsEfysZYWCRsDnZnS1CSBg0Ej/LS0ANu3y2zVihXATTfJtWRNB4U5ho8AOXGShaSRKjHBhAnjgtjV1OWSWYyuLllK+eAD4LXXuDMlknR1AaWlwP79EiBzcmSJZRZPjqTI4FP4ePLJJ/Hyyy/j2LFjiI2NxfXXX4+f/OQnmBh2VXf+V1kpBecZWVJIOiLPiYJCM2YUM3REmkSjD3Lpb2dKRoa8tbdL4EhLY+1GJHC7u4tJPR4pIJ0/H/jMZ+QaE0UIn8LHli1bsHr1asyZMwdutxuPPvooli5diiNHjsButwdqjCGtZ01H8kgXln66EwBgtcn0PEUOXQfefcOCaePNSJ4v53MFjKYBJ0/2rt3ouTPF4ZDzUrw7U9jkK/y53cDGjVLXMWIEMGOG1Hbk5wd7ZER+51P4eOedd3q9/+yzzyI9PR27d+/GwoUL/TqwUNdfIWlGggdut8ySUuRpalRQfkpFZ70Zi/397a7rUB2O7mPoz50DfvlLCRzcmRLZNE12IzU1ARMnSrC8+27p18FrTBFqWE+Tzc3NAICUK+w3dDgccDgcl95vaWkBALhcLrhcruF8+qDZtEnB9g+ADqfUdEwudGPmHDcSEqUXuuYJ8gAHSfO4e/1JV1Z+0gyLCcjJcUNRdPjt21fXoT3zDMZt2wZXc7MUi3o8UFJSgKws6GPHyhLL5bUbOnvvB4Lr46+rK9Bf3+ZmKDt2QE9OlsOBbrxRwqXVKtfazZ9L73NEuD5XRBp/XgdF14f2E6brOm677TY0NTVh27ZtA97vsccew+OPP97n9g0bNiAuTI903rkzC+XlUsjxqU+dht3OXxLRYNOmXFy4EIvZs89j/PiL/ntgXcfYN96Apa0Nrvh4lN9yC3Q1iAWtFFBqZyfSDh1CUlkZFE1DV0oKKpcu5SwHhbyOjg6sXLkSzc3NSEwcXjHjkMPH6tWr8eabb2L79u0YPXr0gPfrb+YjJycHtbW1SE1NHcqnDjqPBzh2DEhIALJHabjY6Ub1OSdefcmCKVM9mDDZDVsg6wH8RPO4UXVwJ3KnXQeTyrWiK+nsAP70TCxS4mxYs0ZDUpJ/H99VXY2Kf/93jK+vhzJ+PPSbbuJhYEHi0nWUAFgCwOLPQOB2Qzl0CMquXfJLJDUV+rx50G+/ncWkA3C5XCgpKcGSJUtg4a6toGtoaEBWVpZfwseQnnEefvhhvPbaa9i6desVgwcA2Gw22Gy2PrdbLJaw/WayWKQWzCs2xobj++3Quzz45w4Pdn2oYcJkD6YWeZA6MvSnxk2qmeHjKqqrTLCYzcjJUZGWFoBZiZwc1CxciIkffQT1+HHpSnr99Xw1HCy6Doui+C98VFRIkVhbW+9i0rw8/zx+hAvn54tI4s9r4NMzjq7rePjhh/HKK69g8+bNyGcV9iVz5wJ2u4pdu1TUntdQcUzD0YMeZGR5MHWGB2PHa+BMeviqOK3CZg7sWS4dGRnQvvpVqP/5n3L+it3eO+VS+NE06cVSWSnvFxfLGSwzZjBYUlTzKXysXr0aGzZswN/+9jckJCTg3LlzAICkpCTERnnHPZsNmDMHmD0bqKw0obTUhCNHVLQ3avjgH27k5nUxfIQxm01Hot2AlurTpwNf+hKwbh2wcycwbpwc9kYDe/BB6ep6NbfeCnz5y4EfDwBcvAjU1srf09KA++6TXUvFxf7dDpebC1RX9709NlZmVZYtA77zHR44RyHHp5+CdevWAQAWLVrU6/Znn30Wn//85/01prCmKPIzn5cHtLYq2L1bha6rKMw1o77NgYsdLuzYYkZungejcnW++AmSpdcm4NzZvjUVMTE6snM0zF/kxoOrHUhJlWWzW27VkJ9qMqYMY8EC6WJaXQ3U1EgAYXLtX0tLd/CIj7/yE3thYeDH09kJ7NoFHDwoM1df+5q8Ihnm+ni/Ghq6g8eIEbJLBpBdMg0NwNGj8rZxI/Dhh7JFmyhE+LzsQoOXkAB05zQVOSlx0No0nDqk4eBeDxKTNRQWeTBxsicsClQjxcUm5VLwSEzSYPn4d7bHDVxsMqHspIqykyreed2C5/7WhsxsHQkxFmOf/2+8UV49v/MOUFYmjabYQKav06e7//7Tn8qha8Hgckng2LVLllrS04GFC2U6NCEhMJ9z9+7uv7//vrRf92pqAr77XeC3v5UA++ijwJ/+FJhxEA0By+kNlphgwqL5ZmSn2KB3WVG6zYo/PWPDlk1mNFzgNIgRjhzoThH//Zd2vL+nFe/vacXWA63YfrAZd90vu7Pqzpnwnz+JQVOjggRbEIrdkpMlhLhcwJ//LK/yqbdTp+TP2FhgVBBO+tM04MQJ4LnngB07ul9x/PCHssQTqOABdIcPi0UOm+tpxAjgN7/pnu15663AjYNoCBg+DDZiBLB8OfB//y9wx20qxo+xItFmRcUxG158zoaaagaQQDtyUMKH2aJj7Dit178lJgOP/qgLBROkU9zW98zY+Ecb/vSsGpyeXiNHypKL2w288oo0IKNu3pmPceOML+DUNAk/f/+7fO7Zs6W+4lvfAsaMCfzn37NH/pwypXvJpSeTSWZeAFmG8YRJ90OKCpzHDZL+ClTPnlUxZ6qCpk4nOp0enKlSkJSs82A6Pzt6SMJHwfjuJZeeTCZgapEHp0+oaGk2waKakJwcpM0JigJ89asy67F7N/D668CnP93/k0006hk+jNLVJSHw/HlZXrn9dpl5WLDA2KUx78xHz+WWyzmd8md8POuGKKQwfARZzwJVt1uB2WxFaoIVbZ0ebPwfD5paNOSN1TC1yM0CVT/xznxMmDLwK0FvF2GrVUesNbBbbK8qLg545BHgRz+SE0/ffhtYsYJPJm1tEgAAOWQv0Do65Jj7Q4eAJUvktNmpUwNTTHo1TU1Aebn8faDwoetSaAoAs2YZMy6iQWL4CCE9XzRpLhXjclWUlemoq/bgzTKVBap+0HIRqKmS1caJk/sPH7oO7N8jFyN1pA6b2YAttlczYoSs1f3whzLV/957wM03R3cX1J7FpuvWAevX93+/hx6Shm1DdXkx6ciRMtMxnMccLu+SCzBwL5jf/a47oKxaFfAhEfmC4SNEJSYCn/88UFenoLTUjP37zWjt8KB0mwc7t2lYtMSFCZO1qz4O9XbkUPdswcTC/sPHi89ZLwWUwmkacnLMsNsNGd6VZWUBa9cCTz4JHD8up9xOnRrsUQVPz/DR2jrw/XJzh/Tw5gcfBDIz5dC39nYgJUVOmr333iE/pt/0DB89Zz6cTuDkSeB//gd46im57cYbGT4o5DB8hLj0dClQvflmYP9+FaWl0kF1/BhANTnh0XR0dkoJQLTPwg/G0Z7hY0p3eHM5gcpyE17daMVz/y31FAUTPJhRpAR/1qOnggLg4YeB116TWQ+HQwqIopE3fBQVAf/xH359aEtzM5SGBnkVYDJJcda990rYC4W1z57bbK90LszKlTIDwl8OFGIYPsKEzQZcc40UqZ49a8KoUTHQNBuaO114YZMHp04BU6Z7MGWaB/EB3N0X7o722Ga7cPrAa/Wf/JQTuXkaYq224NZ79KeoCJg0Cdi0CThyRAJJNJ574Q0fY8f693GbmpDkbYc+aRLw9a/LEkso9VnxznzExXVv51UUKSzNygKuvVa6qrI9P4WoEPpposFQlO52BiaTgsQYK5zNQIyi4dBuD/bs8kiB6gw3RuWwQPVy3pmPmFgd9njZO6soQFycjrR0HdNmerD8006Mn6ThwlkzlHYlNDtT22zST6KzE3jjDWnbHeylACN1dHS3L/dH+OjokJoOqxXIz0dSRYXc/sQTofUE7nLJWL39TR57DPiXfwnqkIiGguEjzKmqdHA+dky265aVmXsVqBZf62ZtyMfaWoGqCqnl+P/WduELDzmveP+iqSrSQ3kWyW6XRmQtLcCbbwKf+Uz0nOFRVoZLjVd8PeCypUV6puzaJYe+KYqEuVGjZH1zxQokPf88dJsNysiRwFe+IstcbW3StfT3v5fZhZ6OHZOgsmmT7EQZP14KhC+vtaipkVqMTZvkpFuPR2ZXvvc94FOf6n3fL34ReP55KXb9t3+TfiLt7fKn9/8+e7Zv/3eiEMHwEQFUVRoZFhb2LVB1dwKAPMnqemgsVwfLsUMqdF2+AIXTr95wKTEmDJYyFi+WDpvvvgu8+ipwzz3B2fppNO+Si9XqW2fTzk6ZKejslO2nqanyhN7ZCWRkAN/8JjByJBIrKmSH0bx5sq32sceA/ftlV83atRIKvDZtkuBQUAB84xvy9f/b36RiXFGAz32u+74vvyw7lZYtk/31jY3AM88Ad9wBfPSRzGB57dsnSyrz5gFLl8pWa5ere8lFUbiFlsIWw0eE6VmgeuCAismTY2GJsaKp3YVde93Yv9uEwiIPxo7XEG05xLvkoig6Jk8dOHzU1ymoOGVGyjw1KB27faKqcgpuWxuwfbu8or/rLqkFiGTeZYe8PN+KKbdvl+WaZcuka2xBgWybveceSe+KArS3I+HMGUnr774ru0W8vFtuvWpqZMbp1luBDRu6x/LQQxIafvnL3uHjwQelYLinlSulI+o773SHD7cbOHxYCopffFE+h9f998ufBQVAUtLg/+9EIYThI0J5O6gKFZlJKhordLQ1aNj8dw8+2OzB5ELAHkXfAt7mYjljtCt2jT113IRj+y1IMPX+nR+yrFZZe2tri54uqGVl8qev9R51dfLn2bNSM3PnnVJM2jPAHDkCk9sNz1e+ArVn8ADkBys2tvv9H/xAen888YQst/Q0fbqc+dJTzz3bbW3SLdVmk2LWrq7ufzt6VILHvff2/Sb0znxwyYXCWPQ88xDuvFPB7t0qdu9W0XhRw6E9JtTVjEV1gxXTZuoR30HVO/Mx5SpLLhVlKmxmNfR2uVzJ5V1Q//536YIaiRe0q0tmHIDB1Xt4i1PdbunT8cEHsoTS3CxfH7MZmDv30t2VAwcAAHp/yfPIke7mYh6PzEq0tg7c3r1nbYiuy/2ffho4cEA+f089H2PfPvlz5cre92lvlx4vQO8lGqIww/ARRbwHbi5YIAWqO3eqKKlWcL7aBqdDw+gxjmAPMWA6OoCK01JsOmXawOGj5SLQ1KggI1Ex9LgQv/B2Qf3JTySMtLZGZv1HWZnMNgBXDh8ul4SM0lKZBfrKV2Q68JFH5JTXN96Q04KfegpYvVpCASR86IoC/fIn9/PnJcTMnCnvV1fLbMfq1XK+S396fv2/+lU54v7uu6UQNStLxvXGG8CvftV7V82+fRKMFi7s/Xj79nX/3xk+KIwxfEQhb4HqhAk6zOZyJCePw/jxVoxOU9HY5sSFJjd27TCjcLoHqSODcZSr/x0/rELTZBbgSjMf5WUqbKqKvDyl1+x62MjKAn76U6lL+OgjeVUfafUfU6bI7pOBaJrMDnz4oaTOlBRZorj2Wvk7IGHh9tvlSX/xYtnB0iN8tGdlwRYf3/tx9+6VP73ho6VF/szLkyKrKykvl+Dxta8Bv/5173/72c8khEyZ0n3bvn2ypHR5Tce8eQjO8cpE/sXwEeWSk5245Rb94x5VFiTGWFBxxIPyozqOHPAgI8uDqTOkQDWcmyTOnOPBgermq96v4rQJNksInOUyHFYrcN11sjyxfTsQEyNpM9LpOnDmDLBtmxwhn5QknfnuvVee2Bsa+n5MzMeHJPWoLFYOHEDz5MlIv/y+l4ePMWMk3L30kuyAufycnfPnZQcNIOMC0Gctb/16KWqdNat3o7j9+yUUEUUohg/qY9xYFdcWA0eOqGhv7FGgOs2DwumR20HV0QXU1piQag/yKbb+YDbLE9qGDbI8YDb3feKLNJWVUmwbFydh6847pZbDm5ofeURmhG67TXaKdHYCf/mLFOm+8ILcp7oaSmMjmseO7T98ZGR013EkJclSzm9+I2HvnntkbbOqSkJfRgawcaPcd9o06cny+ONSaBofD5SUyH0VpTvQfDwGNDRwGy1FNIYP6mP0aNmt2drau0D18B4PDuzxYNX/ccAagceJNDUpSLAryEhXLs3Oh7WUFOkf8ec/yxNdbGzkdUF1uWSG5+xZqa9YulRC1pIl3bMaXjffDFy4IDtQGhpkX3pxsSzPXHON3Gf/fgBAc3+1JHv39u12+qtfSbBYv75750t2NjB/vmy39UpOlt4fa9ZIz5CsLJmR+d735HP3fNyPx9ArkBBFGIYPGtDlBaqlpSbE2VXkpitobHfC6dZw+oQJo3M12GKu+nAhLzNLxyNrgQj4r3Rbvlx2VbzyinRBvfNOedINdy6X1EXs3i1FmXPmyJk3KSkD7/BZterqp7uuWAGX04m6t97q+28nT/a9TVVl9uMrX7n6mBcu7H0ardflNRwrVrCugyIewwddVc8Oqh6PCapqw8gEG8qqXdj8jg5N0TBhsgdTi8K/QDXZboYtkn4qFEVeYTc3S23B3/4W3l1QPR7p6LpjhyybpKbKjpfFiyNzWzFRhIqkX7NkgJ5Fp6pmwfgxQO15DRXHNBw9GL4Fqi4nYI8zwWYOo0EPViR0QfUWk27dKi3Jk5JkpuOee6RDKYMHUVhh+KAhGzNGWhdUVsqSzOUFqivucCEtPTxmQnbtMONchRW3rwitQ0z9pmcX1LIyoL4+fOo/NA14+205z8VuB6ZOla6f117rW2t1IgoZDB80LIoibQ7y8noXqHY5NOSN1tHuckHX5URZe3xovkDVdaCizASTU4UtAgtpL4mLk4PTysqALVtkBiHUK2tbWqSxV0KC9L249VYpHL28mJSIwgrDB/lNzwLVhgYT0tPj4PZoaGx34YU/6NCho7DIg4mTPSFVoNrUqKC12YTMZBMKCoI9mgBLTJTlCo9HAkh9vbT1vrxHRTA5nd09NbKyZEfKlCkSOHiQGlFEYPggv1PV7g0VZtUEk9MGuwlo7fCgdJsHH20PrQLVitMmWM0m5OdH9llsl3j7Snz4oXQKvXBBzisJ9rSUxyOdSXfskEPVCgpku+qoUcEfGxH5FcMHBVxamhw5sn+/itJStU+B6nUL3MgaFbwQUllmgs0cAY3FfGEyyRRVaalsV7Xbg1fsouvdjbm8xaQzZgCf/SyDB1GEYvggQ9hs0ktpzhwpUN21y4SjR6VA1arqANwA5HnIyOeajg7gfK0JafFh3lJ9KIqKZBfMunWyiyQ21vguqA0N8rmrq6Xr57Rp3cWkobQURER+xfBBhupZoNrSouDIERXXFtvR5fKgvs2Bt97W0dKsYGqRG6Ny9YAHkapyE8yqCdnZSnSWEyxYID1AgtEFtaUFOHRIln0KCrqLSSO66peIAIYPCqLERDkSAwBirSqyEuPQUKmhqVXDm2UqEpO1gBeojkzXsWAeMCY7MI8fFozsgup0yoFrXV0SMpYvB264Qd7CtfEZEfmM4YNChtkMfOlL0jNk/36zIQWqqSN1XD/NDGs0/yRc3gX18GH/hw+PBzh2TIpJAeDBB2UdLjuaUx9R9IrmX7kUgtLT5cXwzTf3LVCNiXEgdaTbr58v1io7XaKetwvqlCnAqVPSTXT06OE/rq7LabPbtwNNTXLAWmGhnDbrPW6eiKIOwweFpP4KVG+6SYUpxoWGdidOl2morjShcLoH8QlD+xynjpuQnWpFfiobZQKQfcaLFknoKCmRAJKePvT9xxcuANu2yeMkJADTp0tb9zlzWExKFOUYPiik9SxQBRQAVoywW7HjXQ2HD3qwt9SDvLEaps5wY1TO4AtUdR3YscUMq25Bih0YPz5g/4XwM26czFL87GdSh7Fihe/prLYW+OtfpTHYuHFSTHrTTSwmJSIADB8UpmbPMkFzm1BWZkZdtcfnAtX6OgUd7SYkp0hzMbpMTo7Mepw8Cbz3nqyDXW22wuOR5mA1NRI6Fi6U1PipT7GYlIh6YfigsDRlirzV1SkoLTX3KlA9cdSNz6x0XfHjK8pMsFmknbqZPwV9ZWYCjzwCPPmkdB212wfugurxAEePAh99JEsqM2fKW2YmG4QRUb/4a5fCWn8FqkUzVYxMMKGx3Ykuh46K0yaMHa/1WjmIyq6mviooAB5+GPjFL/rvgqrrQEWFFJNevCjFpKNGAZ/8JGs6iOiKGD4oIvQsUNV1FSaTivQEG7Z+6Mbmv+v4YLMHk6d5UDjdAwC4cN6E9MQo7Grqq4G6oNbVSejwFpMWFUkx6ezZDB5EdFUMHxRRFKV7pt9kUpAYa8GYTKDxoobDe6RAVdMAm9mE0aMV2O3BHW9Y6NkFdcsW2Tp77JgEkfHjpabjxhuj5FQ+IvIHn8PH1q1b8bOf/Qy7d+9GbW0tXnnlFdx+++0BGBrR8M2aJS/Kjx2T5mVlZWZ0ujywqCacOQO4XIDFEuxRhoHly4G2Nnk7elS24y5ZIrtYEoa415mIopbP4aO9vR1FRUX4whe+gDvvvDMQYyLyK1WVvlaFhVKgumuXirffdyIrC+j0mGA2m6EoCpqbEZ3nu1yJ2y29Ojo7pSV6ba0Ukt5yC7B4MZdYiGhIfA4fy5Ytw7JlywIxFqKAS08HblzqQdbkLnR1ApX1gMWswOy24rnfW5Gba8I11wCTJ0d54zFdBw4cAP7yF1li0XUpJJ0+XY69f/99YPNm4Fvf4swHEfks4DUfDocDDofj0vstLS0AAJfLBZfrytshKbC8X/9oug66DjS2OmA2uxGfAGgewOEBDh/XUNeq4eJRFSdPmZCcZMLMmTqKi3VDWlSE1LWorITy179C2bdPmo3Z7dDmzZPkpihAcjJMZWVAayvwy19Ce+QR6esRIULqWkQ5XovQ4s/roOi6PuSTuhRFuWrNx2OPPYbHH3+8z+0bNmxAXFzcUD81kc80DXj77XyMGNGFWbPqEBPj6fXvnZ1mnDqVhNOnk9HZKbncZNIxalQbZs6sg93u33NlQo2ltRUj9+9HQnU1AEAzm9E4eTIaJ06EfllhjKWtDbmbNsHc2YmO9HScWbQIelRPFRFFvo6ODqxcuRLNzc1IHOarsoDPfPzrv/4r1q5de+n9lpYW5OTkYPHixUhNTQ30p6crcLlcKCkpwZIlS2CJgqrL6mqg9J8K2t0OjJ9T0O+yyuS50jOr/LSKw/vNqK0xwWRT8YllOhLj5QN03f+9s4J+LVpbgTfegOnYMcDphD5tGvTZs4GBXiAkJAA33ADTX/8KOJ2YXl8PfdWqiKgBCfq1oEt4LUJLQ0OD3x4r4OHDZrPB1s95DhaLhd9MISJarkV5OeDW3cgdC1isA3/rm1RgwmRgwmQPGuo1NNZ7cLZdQ4vHjBS7FS89b0Z6uoI5c/x/MKuh18Ltlj4dFy8Ce/bIQXCTJkldR3Ly1T8+NVW22b78shxEl5IC3HlnxHQ1jZafi3DAaxEa/HkN2OeDosbx44DDpSFvrDboj0lN05GaJiuTbV1ulFV4sOeIDbEnVezapSIvTwm/AlVdB/btA158UTqUTpsGpKVJ8PB15iIrS3a+vPEG8NJLwNixsr+ZiOgKfA4fbW1tOHXq1KX3y8vLsW/fPqSkpCA3N9evgyPyl6Ym4Nx5HW5dQ27e4MPH5UZm6FhxpwOH96soO6Wi9biK0+UqRiSZMGuWdFgN6c0fFRXAxo3A3r2XikmRni5vQ5WfL03Gjh8Hzp8HnE42HCOiK/I5fPzzn//E4sWLL73vredYtWoV/vCHP/htYET+dPw44HRryBqlISZ26I+jKMCoHB2jctxob3PjyEEVRw6oqDpvwoVNZmRlmTB5cgguOzQ0yBH327cD9fUywzFvnsx6+ONkvcJCmfU4dEg6ny5YEEZTQURkNJ9/6yxatAjD2CBDFBQnTgAOt4apPiy5XI09Hpgz14NZ13hQcdqE0yfdcCe4UdtsRYrdioP7VHg80mE1qDtRz5wBHn9cGoQ5nTKgOXMkJPhTbKx0Pt21CygtBe69F8jJ8e/nIKKIwJoPigpjxug4Xev2qd5jsFQVKJigoWCCPHZ9qxPnLzrx8psx0F1mlJSYUFQktSH+LlAdkK4DDoe0Qt+7V/6ekyOzHYFs4xofLwWsu3dL6Pm3f5N6EiKiHhg+KCoUX+dBSoHTsM+n68DUWS4c3q/h3EUTmneoKC01oEBV1yVsvPwyMGaMBIERI4DbbzfuEJvZs4GzZ2W66f/9P+DRR0O8EIaIjMbwQVGhtcvYDolmMzBtpgdTZ3hw9oyCQ/vMKD9tulSgumCeCZ/8pJ8/aXk58MILspPl4kVpg75kiX9qOnxhsQArVkiNyaFDwK9+BXzzmxHVBZWIhofhgyKaxyMvwN12NxCE/lfdBaoutLUCRw9JgWrSaA8a261IjrWgsVFBY6NMWgxJfX13MWlDg0ypzJ8PTJ1qfPDwstmA226Ts2FKS4Hf/hb42teCNx4iCin8TUARraoK+N8NGhyKGQ982RnU/lfxCVKgWnytByYTUNPUidrmTnz0fgxOHVFRfyEfI0cqKC72YZLg1VeB11+XLa4uV3cxaSjMMsTHy3LPiy8CW7dK47LPfz7IgyKiUMDwQRHNu8tldIEWMo03e/bx0jTAqbvR6vKgpcWK197UsXmzjqKiq3RQ7eyUYtIPP5SENW6czHYYcQqeL1JSpAvqa68B7e1AS0vojZGIDMfwQRFL1z/uaurWkFfg/10u/jJvkRvF17ix+W/n0dg1GrVNGi5+IB1Ui4oU3Hnnx3fUdWmD3tws22bPnpXeGuPGAZmZQf0/XFFWFrBqlTQ427xZ6lD8vc2XiMIKwwdFrPp6oL5eh6ZryBkTuuEDAKw2YMKEixhT5MC5Wu1SgaoeA3Q4zYirroT2/Ea49hyEzeSSjqLjx4dPI6+YGKCgADh2TGZtJkwAZs4M9qiIKEgYPihieWc9RuVqsIRJt+/LC1RjWurR9LNX4d67C601DhxryAJmzsBYNQ95JidCZCVpcCwWaeP+xz/KetK3viV7joko6jB8UMSS8OEJSGOxQDO1tyH7/XeRsOU9mOsvQPG4cSx1Ef6e+gkonnhY3zchI8mFOeMvoii/BTHWMPk/pqTIAXbeLbjf/S7AM6GIog7DB0Wkzk6gulqH060hr8AT7OH4ROnsRPw/SjDilb9A6eqCY2wBOoqvQUFCIu5uqcGB8hQcrR6BigsqapvSsGl/GoryW7BsVl3or8IoCrBwoVygsjLg5z9nF1SiKMTwQREpNhb4/P9x45+HXIgPh+aamgZLSwusp0/CfvggLOfOwjE6B12Tp8IzsvvE2bREB24sqsW8KedxtDoZB8pT0NAWg/I6MwAN3mYmuo6Q2d3Th6pK0elrr3V3Qf3ud7kLhiiKMHxQxLLEuTFxSugvR1gqypD46l9hrq9BwqgKwG6HI38cHOMmDvgxNouGGWMbUZTfiJoGOwAdZy52Is5qhlmx4Y/v5WN6Xgtmj29GYpzbsP/LoF3eBfU//5NdUImiCMMHRSyjW6r7Sq2/gKQ3XkXc7l0wXWzCxZwsaAl2aBnZg34MRQFGp7UDkNmOdocbe08norpBwfnmEdh2JAWTRrdjzviLyM/oCK3ZkJ5dUMvKurcOE1HEY/igiFNeDmzdriExW8G4iUPtWR44prZWxL/3dyRsff9SMWnb1OkoWzgXk9s1DLdsY3p+E+wxbhwoT8WZBjv2lMXiUJX9UoHqzLHNsFpC5OsSHw/cead0aN2xQ07cTU0N9qiIKMAYPijiHDkCHDqiYYzHhHETQ2vZxdRQj4xf/BjWs2c+LiYdh47Z18AVnwCPzQa0dw77c6gmHRNGtWDCqBbUt9h6FajWNadiSk5L6IQPQAJHQgJw6hTwj3/IbpipU0O4aIWIhovhgyJKd1dTT+h0NdV1wO2Grfw0Yg/th9rWCndyMtqvuR6etJEB/dQ9C1SPnUlGW6cFzY42eBQzEqxmbNqfgRun18NiDnIYMZmkCdlbbwEvvww89BBwww3BHRMRBQzDB0WUc+eApos6dEXHqJzghw9r+WkkvvkqXBnZsDQ2wBMXh+YlywCr1dBX9jaLhqL8RgCA2wO0drpxtsGMMw0W44OHrgMOB9DV1f3mdMq/xcbKGTCjRhk7JiIyFMMHRRQ5SM6DnDFaUE9vN1+oQ+IbryJuTynMTY1wZmaj7caboQeh1arFbIJVNcFiVmBV5e9m1YT2OBVpc+oD80l1XQJFz5DhcHTvAbZaZWeL3Q7k5Ejzsfh4ebPZpBMqEUUshg+KKMePI6iNxUxtrUgoeQfx2zfDXH8B8HjQUTgNXdNmBDx4KApgUU2wmU2wegOHaoLJ1P8Miz3GA3vMML9OLlfvGYyuLgkYgGynjY2VkJGZKQEjMVECh90uQSMmhrUdRFGI4YMiRksLUFOjw+XRMCbf+CUX+/bNSHzrNVhrz0oxacF4dBRfAy0+3u+fSzUplwKG1WyCRVVgUU1QAvFE7nZ3z1x0dsqfHo+EDItFAkRMjCyVpKX1DRixsVLTQUT0MYYPihgdHcDILA/UNg1xdgM/scsFW/lpxG/fCltFGVyZ2Wi/Zi48qf5pGT7QsolfeTy9w0VXl4QOQDqSegNGRoZshU1O7g4XdjsQFxc+J+wSUdAxfFDEyMwEbrvbiYZWA5qL6Tqs5aehNjTAUlcL65lqODMy4VqyDK5ROUNeSrCaTYgb5LKJzzSt/0JPRZGZiZgYqbdISZEZDG/A6BkygllIQ0QRg79JKGLouo7WLnfAX4Cb685LMenef0JxOdE+5zo4csbIEsQgXb5sAlXBIQCZSTGwDGfp5PKdJA6HvAESMmw2CRmJidJNdMSI3uHCbpdiUCKiAGL4oIjQ3Ay4dA88WuC2jZpaW6SYdNtmmBsuAJqGzqlFcGWPvuKMwGCWTVy63l2oeTVD2UmSkNAdLux2nqFCREHF8EERYfNmYPtOHUVzVRTN8u9OF8XhgP2DLUjY9M6lYtKucRPQWTwHmr27mNTX3SZXxZ0kRBShGD4o7Gma9PfocmlITfPzLheXC/GbN2HEi8/D1N4GV5YUk2LkSAkZw91t0nMnyYgRcjCN282dJEQU0Rg+KOzV1ADNrRpUi46sUX5YdtF1mFpboDY1IfbQPsSerYYpYyT0aYsRk5eHRLPq226Twe4kAYCior51GNxJQkQRhuGDwt6JE9JYLCfPM6znaEUB7E31GPHGK4g5chhK4WRYYmJgKpoCzC668gdfaSeJosgMRX87SbwBw2oF3n0XmDfPp8JVIqJwxPBBYe/4ccDh0pA3dvBLLmZVQaxFRYxFRaxFha2zDba33oDyj3/I8e66DsTMAMbmd3/QYHeSJCX5vpPEZcD2YCKiEMHwQWGtsRE4d16HW9eQm9d/+LBZTBIwPv4zxqLC4l02cTiATe8Cr78OnD0rSyMTJsjyh6oCVVXcSUJE5GcMHxTWvEsuWdkaYuMgMxlW9eOQYUKMWR14t0lnJ/Bv/wacPi17dRMTgeuuA0Z+fMy91cqdJEREAcDwQWFt6lRANwH2OBsKs2N9220SGythIi0NuOsueTDvEgl3khARBQzDB4W1+Hhg7jXDqDL99relVoO7SYiIDMPwQdEtLi7YIyAiijqcUyYiIiJDMXwQERGRoRg+iIiIyFBDCh//9V//hfz8fMTExKC4uBjbtm3z97iIiIgoQvkcPjZu3Ig1a9bg0Ucfxd69e7FgwQIsW7YMVVVVgRgfERERRRifw8cvfvELfPGLX8SXvvQlTJ48GU899RRycnKwbt26QIyPiIiIIoxPW22dTid2796N73znO71uX7p0KXbs2NHvxzgcDji8518AaG5uBgA0Njb6OlbyM5fLhY6ODjQ0NMDCw8yCitcidPBahA5ei9Difd7W9eGfHu5T+Kivr4fH40FGRkav2zMyMnDu3Ll+P+bJJ5/E448/3uf2CRMm+PKpiYiIKAQ0NDQgKSlpWI8xpCZjl7ew1nV9wLbW//qv/4q1a9deev/ixYsYM2YMqqqqhj14Gp6Wlhbk5OSguroaiYmJwR5OVOO1CB28FqGD1yK0NDc3Izc3FykpKcN+LJ/CR1paGlRV7TPLUVdX12c2xMtms8Fms/W5PSkpid9MISIxMZHXIkTwWoQOXovQwWsRWkx+OPPKp0ewWq0oLi5GSUlJr9tLSkpw/fXXD3swREREFPl8XnZZu3YtHnjgAcyePRtz587F+vXrUVVVhYceeigQ4yMiIqII43P4uOeee9DQ0IAf/OAHqK2txdSpU/HWW29hzJgxg/p4m82G73//+/0uxZCxeC1CB69F6OC1CB28FqHFn9dD0f2xZ4aIiIhokHi2CxERERmK4YOIiIgMxfBBREREhmL4ICIiIkMZGj7+67/+C/n5+YiJiUFxcTG2bdtm5KcnSLv7OXPmICEhAenp6bj99ttx/PjxYA+LINdGURSsWbMm2EOJWjU1Nbj//vuRmpqKuLg4zJgxA7t37w72sKKO2+3G9773PeTn5yM2NhZjx47FD37wA2iaFuyhRbytW7fi1ltvRXZ2NhRFwauvvtrr33Vdx2OPPYbs7GzExsZi0aJFOHz4sM+fx7DwsXHjRqxZswaPPvoo9u7diwULFmDZsmWoqqoyaggEYMuWLVi9ejV27tyJkpISuN1uLF26FO3t7cEeWlQrLS3F+vXrMX369GAPJWo1NTVh3rx5sFgsePvtt3HkyBH8/Oc/R3JycrCHFnV+8pOf4Le//S2efvppHD16FD/96U/xs5/9DL/+9a+DPbSI197ejqKiIjz99NP9/vtPf/pT/OIXv8DTTz+N0tJSZGZmYsmSJWhtbfXtE+kGueaaa/SHHnqo122TJk3Sv/Od7xg1BOpHXV2dDkDfsmVLsIcStVpbW/Xx48frJSUl+g033KB/4xvfCPaQotK3v/1tff78+cEeBum6vnz5cv3BBx/sddsdd9yh33///UEaUXQCoL/yyiuX3tc0Tc/MzNR//OMfX7qtq6tLT0pK0n/729/69NiGzHw4nU7s3r0bS5cu7XX70qVLsWPHDiOGQANobm4GAL8cFERDs3r1aixfvhw333xzsIcS1V577TXMnj0bd911F9LT0zFz5kw888wzwR5WVJo/fz7ee+89nDhxAgCwf/9+bN++HbfcckuQRxbdysvLce7cuV7P5TabDTfccIPPz+VDOtXWV/X19fB4PH0On8vIyOhzSB0ZR9d1rF27FvPnz8fUqVODPZyo9MILL2DPnj0oLS0N9lCiXllZGdatW4e1a9fiu9/9Lnbt2oWvf/3rsNls+NznPhfs4UWVb3/722hubsakSZOgqio8Hg9+9KMf4bOf/WywhxbVvM/X/T2XV1ZW+vRYhoQPL0VRer2v63qf28g4X/va13DgwAFs37492EOJStXV1fjGN76Bd999FzExMcEeTtTTNA2zZ8/GE088AQCYOXMmDh8+jHXr1jF8GGzjxo147rnnsGHDBhQWFmLfvn1Ys2YNsrOzsWrVqmAPL+r547nckPCRlpYGVVX7zHLU1dX1SVBkjIcffhivvfYatm7ditGjRwd7OFFp9+7dqKurQ3Fx8aXbPB4Ptm7diqeffhoOhwOqqgZxhNElKysLU6ZM6XXb5MmT8dJLLwVpRNHrX/7lX/Cd73wH9957LwBg2rRpqKysxJNPPsnwEUSZmZkAZAYkKyvr0u1DeS43pObDarWiuLgYJSUlvW4vKSnB9ddfb8QQ6GO6ruNrX/saXn75ZfzjH/9Afn5+sIcUtW666SYcPHgQ+/btu/Q2e/Zs3Hfffdi3bx+Dh8HmzZvXZ9v5iRMnBn1oJvlPR0cHTKbeT0+qqnKrbZDl5+cjMzOz13O50+nEli1bfH4uN2zZZe3atXjggQcwe/ZszJ07F+vXr0dVVRUeeugho4ZAkOLGDRs24G9/+xsSEhIuzUYlJSUhNjY2yKOLLgkJCX1qbex2O1JTU1mDEwSPPPIIrr/+ejzxxBO4++67sWvXLqxfvx7r168P9tCizq233oof/ehHyM3NRWFhIfbu3Ytf/OIXePDBB4M9tIjX1taGU6dOXXq/vLwc+/btQ0pKCnJzc7FmzRo88cQTGD9+PMaPH48nnngCcXFxWLlypW+fyB/bcQbrN7/5jT5mzBjdarXqs2bN4vbOIADQ79uzzz4b7KGRrnOrbZC9/vrr+tSpU3WbzaZPmjRJX79+fbCHFJVaWlr0b3zjG3pubq4eExOjjx07Vn/00Ud1h8MR7KFFvPfff7/f54hVq1bpui7bbb///e/rmZmZus1m0xcuXKgfPHjQ58+j6Lqu+yMtEREREQ0Gz3YhIiIiQzF8EBERkaEYPoiIiMhQDB9ERERkKIYPIiIiMhTDBxERERmK4YOIiIgMxfBBREREhmL4ICIiIkMxfBAREZGhGD6IiIjIUAwfREREZKj/H+YkWsaE9b7JAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "F_shear = np.array([\n", " [1, 1.5],\n", " [0, 1]\n", " ])\n", "plot_transformation(P, F_shear @ P, \"$P$\", \"$F_{shear} P$\",\n", " axis=[0, 10, 0, 7])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at how this transformation affects the **unit square**: " ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGICAYAAACTGeABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABb4ElEQVR4nO3deXxU1d0/8M+dJZM9IQmEBBKI7IsGDCLIJkvAQBF3W1pBBCtFpRi1gvSxov6M+liLFgF9RCl1QzaXNgqjIjtKMAEEgUACYUkICdmXWe/vj5PJOhMyYZKbmfm8X6+8yNycO3NzHHM/c+75nivJsiyDiIiISCEqpQ+AiIiIvBvDCBERESmKYYSIiIgUxTBCREREimIYISIiIkUxjBAREZGiGEaIiIhIUQwjREREpCiGESIiIlIUwwgREREpyukwsnPnTkyfPh3R0dGQJAmff/75Vff56KOPEB8fD39/f0RFRWHOnDkoLCxszfESERGRh3E6jFRUVCA+Ph4rVqxoUfvdu3dj1qxZmDt3Lo4ePYoNGzbgwIEDmDdvntMHS0RERJ5H4+wOSUlJSEpKanH7/fv3o2fPnli4cCEAIC4uDo888ghee+01Z1+aiIiIPJDTYcRZt9xyC5YuXYrU1FQkJSUhPz8fGzduxLRp0xzuYzAYYDAYah9brVZcuXIF4eHhkCSprQ+ZiIiIXECWZZSVlSE6OhoqVTMXY+RrAEDesmXLVdtt2LBBDgwMlDUajQxAvv3222Wj0eiw/d/+9jcZAL/4xS9+8Ytf/PKAr3PnzjWbE6SaUNEqkiRhy5YtuOOOOxy2OXbsGCZNmoQnnngCU6ZMQW5uLp5++mncdNNNWLNmjd19Go+MlJSUIDY2FidPnkRYWFhrD5dawWQyYfv27Rg/fjy0Wq3Sh+N12P/KYd8rh32vLFf2f1lZGeLi4lBcXIyQkBCH7dr8Mk1KSgpGjRqFp59+GgBwww03ICAgAGPGjMFLL72EqKioJvvodDrodLom28PCwhAeHt7Wh0z1mEwm+Pv7Izw8nH8UFMD+Vw77Xjnse2W5sv9t+19tikWbrzNSWVnZ5DqRWq0GAFzDoAwRERF5CKfDSHl5OTIyMpCRkQEAyM7ORkZGBnJycgAAS5YswaxZs2rbT58+HZs3b8aqVauQlZWFPXv2YOHChRg+fDiio6Nd81sQERGR23L6Mk1aWhrGjx9f+zg5ORkAMHv2bKxduxa5ubm1wQQAHnzwQZSVlWHFihV48sknERoaigkTJuDVV191weETERGRu3M6jNx6663NXl5Zu3Ztk22PP/44Hn/8cWdfioiIiLwA701DREREimIYISIiIkUxjBAREZGiGEaIiIhIUQwjREREpCiGESIiIlIUwwgREREpimGEiIiIFMUwQkRERIpiGCEiIiJFMYwQERGRohhGiIiISFEMI0RERKQohhEiIiJSFMMIERERKYphhIiIiBTFMEJERESKYhghIiIiRTGMEBERkaIYRoiIiEhRDCNERESkKIYRIiIiUhTDCBERESmKYYSIiIgUxTBCREREimIYISIiIkUxjBAREZGinA4jO3fuxPTp0xEdHQ1JkvD5559fdR+DwYClS5eiR48e0Ol06NWrF95///3WHC8RERF5GI2zO1RUVCA+Ph5z5szB3Xff3aJ97rvvPly6dAlr1qxB7969kZ+fD7PZ7PTBEhERkedxOowkJSUhKSmpxe2/+eYb7NixA1lZWQgLCwMA9OzZ09mXJSIiIg/ldBhx1pdffolhw4bhtddew7///W8EBATg9ttvx4svvgg/Pz+7+xgMBhgMhtrHpaWlAACTyQSTydTWh0z12Pqb/a4M9r9y2PfKYd8ry5X939LnaPMwkpWVhd27d8PX1xdbtmxBQUEBFixYgCtXrjicN5KSkoJly5Y12b59+3b4+/u39SGTHXq9XulD8Grsf+Ww75XDvleWK/q/srKyRe0kWZbl1r6IJEnYsmUL7rjjDodtJk+ejF27diEvLw8hISEAgM2bN+Oee+5BRUWF3dEReyMjMTExyM3NRXh4eGsPl1rBZDJBr9cjMTERWq1W6cPxOux/5bDvlcO+V5Yr+7+0tBQREREoKSlBcHCww3ZtPjISFRWFbt261QYRABgwYABkWcb58+fRp0+fJvvodDrodLom27VaLd+YCmHfK4v9rxz2vXLY98pyRf+3dP82X2dk1KhRuHjxIsrLy2u3nTx5EiqVCt27d2/rlyciIqIOzukwUl5ejoyMDGRkZAAAsrOzkZGRgZycHADAkiVLMGvWrNr2M2fORHh4OObMmYNjx45h586dePrpp/HQQw85nMBKRERE3sPpMJKWloahQ4di6NChAIDk5GQMHToUzz33HAAgNze3NpgAQGBgIPR6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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Square = np.array([\n", " [0, 0, 1, 1],\n", " [0, 1, 1, 0]\n", " ])\n", "plot_transformation(Square, F_shear @ Square, \"$Square$\", \"$F_{shear} Square$\",\n", " axis=[0, 2.6, 0, 1.8])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 23: ¿Qué relación (numérica) hay entre la matríz `F_shear` y la transformación resultante de `Square`?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's look at a **squeeze mapping**:" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "F_squeeze = np.array([\n", " [1.4, 0],\n", " [0, 1/1.4]\n", " ])\n", "plot_transformation(P, F_squeeze @ P, \"$P$\", \"$F_{squeeze} P$\",\n", " axis=[0, 7, 0, 5])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The effect on the unit square is:" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "image/png": "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rrmGv/71r6djyKeUVfYlzeFM3ZdEwir7kkhYZV8Siebal7T4jEsVm81W57lhGA2WnSw+2PIzQbi5VXnllVd48MEHWbp0KZ06dTpVw/tWmpqb3+/nhhtuYN68efTv3/90De9bCefnFggEsNlsvPTSS4wcOZKrrrqKxx9/nOeff/6M/EspnNy2bt3K7Nmzuf/++9m4cSP//e9/2bNnT9TctsNK+5JIWWFf0lRW3JeEw2r7knA0176kxUvV5ORkHA5Hg7/2cnNzG/wlVKVz585B451OJx06dDhlYw1XJLlVWbp0KdOnT+e1115jwoQJp3KYEQk3t+LiYjZs2EBGRgY///nPAfMX1DAMnE4nK1as4LLLLjstYz+ZSH5uqampdO3alcTExOplAwcOxDAMDhw4QL9+/U7pmJsqktzmz5/P2LFjufvuuwE499xziY+PZ9y4cTz88MOWnpWwyr7k2zjT9yXhstK+JBJW2ZdEorn2JS0+4+J2uxk+fDjp6el1lqenpzNmzJig64wePbpB/IoVKxgxYgQul+uUjTVckeQG5l9HN998My+//PIZex5BuLklJCSwefNmNm3aVP01c+ZMzj77bDZt2sSFF154uoZ+UpH83MaOHcuhQ4c4fvx49bIdO3Zgt9vp1q3bKR1vOCLJrbS0FLu97q7C4XAANbMTVmWVfUmkrLAvCZeV9iWRsMq+JBLNti8J61TeU+TVV181XC6XsXjxYmPr1q3GHXfcYcTHxxt79+41DMMw5s6da9x4443V8bt37zbi4uKMO++809i6dauxePFiw+VyGcuWLWupFEIKN7eXX37ZcDqdxlNPPWVkZ2dXfx07dqylUggp3NzqO5OvBAg3t+LiYqNbt27G97//fWPLli3GqlWrjH79+hkzZsxoqRRCCje35557znA6ncbChQuNXbt2GWvXrjVGjBhhjBw5sqVSCKm4uNjIyMgwMjIyDMB4/PHHjYyMDGPfvn2GYVh7XxJublbal4SbW31n8r4k3NystC8JN7fm2pecEYWLYRjGU089ZfTs2dNwu93G+eefb6xatar6tZtuuskYP358nfiPPvrIGDZsmOF2u41evXoZixYtOs0jbrpwchs/frwBNPi66aabTv/AmyDcn1ttZ/LOxjDCz23btm3GhAkTjNjYWKNbt27GnDlzjNLS0tM86qYJN7cnnnjCGDRokBEbG2ukpqYaP/7xj40DBw6c5lGf3Icfftjo74+V9yXh5malfUkkP7fazuR9SSS5WWVfEkluzbEvsRmGxed6RUREpNVo8XNcRERERJpKhYuIiIhYhgoXERERsQwVLiIiImIZKlxERETEMlS4iIiIiGWocBERERHLUOEiIiIilqHCRURERCxDhYuIiIhYhgoXERERsYz/D+LLIg/kGdY9AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_transformation(Square, F_squeeze @ Square, \"$Square$\", \"$F_{squeeze} Square$\",\n", " axis=[0, 1.8, 0, 1.2])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 24: ¿Qué relación (numérica) hay entre la matríz `F_squeeze` y la transformación resultante de `Square`?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's show a last one -- reflection through the horizontal axis:" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "data": { "image/png": "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g8vl0rppuvDcc88hNzcX0dHRKCwsxOeff651k3Rl3bp1mDlzJhISEpCSkoKbb74ZR48e1bpZurdu3TpIkoQHHnhA66boTk1NDb7//e8jOTkZsbGxmDZtGkpLS7Vulq54PB48+uijnbkyevRo/PKXv4TP59O6aUMS1jvK+R05cgQ+nw/PP/888vPzceDAAdx9991oa2vDU089pXXzwtrmzZvxwAMP4LnnnsP8+fPx/PPPY8WKFTh06BCysrK0bp4ubN26FatXr8bMmTPh8XjwyCOPYNmyZTh06BDi4uK0bp4ulZSU4IUXXkBBQYHWTdGdpqYmzJ8/H4sXL8aHH36IlJQUlJeXY9iwYVo3TVf+4z/+A7///e+xceNGTJo0Cbt27cKdd96JxMRE3H///Vo374rp9pa2X/3qV1i/fj0qKiq0bkpYmz17NmbMmIH169d3PjZhwgTcfPPNWLdunYYt068zZ84gJSUFW7duxcKFC7Vuju60trZixowZeO655/D4449j2rRpePrpp7Vulm48/PDD+PLLLznjNkTXX389UlNT8dJLL3U+9g//8A+IjY3FK6+8omHLhkYX0++BNDc3dx74QoG5XC6UlpZi2bJlPR5ftmwZtm/frlGr9K+5uRkA+P/vCq1evRrXXXcdlixZonVTdOmdd95BUVERvvOd7yAlJQXTp0/Hiy++qHWzdGfBggX45JNPcOzYMQDA3r178cUXX+Daa6/VuGVDo4vp90uVl5fjd7/7HX79619r3ZSwdvbsWXi9XqSmpvZ4PDU1FfX19Rq1St8URcGDDz6IBQsWYPLkyVo3R3dee+017N69GyUlJVo3RbcqKiqwfv16PPjgg/j5z3+OnTt34p//+Z9htVrxgx/8QOvm6cZDDz2E5uZmjB8/HiaTCV6vF0888QT+8R//UeumDYmmI/U1a9ZAkqTLvu3atavH19TW1mL58uX4zne+gx/96EcatVxfJEnq8bGiKL0eo4G59957sW/fPvzP//yP1k3Rnerqatx///149dVXER0drXVzdMvn82HGjBl48sknMX36dPz4xz/G3Xff3WOJjfq3efNmvPrqq9i0aRN2796NjRs34qmnnsLGjRu1btqQaDpSv/fee3Hbbbdd9jk5OTmd79fW1mLx4sWYO3cuXnjhBZVbp392ux0mk6nXqLyxsbHX6J36d9999+Gdd97Btm3bkJGRoXVzdKe0tBSNjY0oLCzsfMzr9WLbtm145pln4HQ6YTKZNGyhPowcORITJ07s8diECRPw5ptvatQiffrXf/1XPPzww50ZNGXKFJw6dQrr1q3D7bffrnHrrpymoW6322G32wf03JqaGixevBiFhYXYsGFD51nr1LeoqCgUFhaiuLgY3/rWtzofLy4uxk033aRhy/RFURTcd999eOutt/DZZ58hNzdX6ybp0tVXX439+/f3eOzOO+/E+PHj8dBDDzHQB2j+/Pm9bqk8duwYsrOzNWqRPrW3t/fKEZPJxFvaQqG2thaLFi1CVlYWnnrqKZw5c6bzc2lpaRq2LPw9+OCDWLVqFYqKijpnOKqqqnDPPfdo3TTdWL16NTZt2oS3334bCQkJnTMfiYmJiImJ0bh1+pGQkNCrDiEuLg7JycmsTxiEn/70p5g3bx6efPJJ3Hrrrdi5cydeeOEFzl4O0g033IAnnngCWVlZmDRpEvbs2YPf/OY3+OEPf6h104ZG0YENGzYoAAK+Uf+effZZJTs7W4mKilJmzJihbN26Vesm6Upf//c2bNigddN076qrrlLuv/9+rZuhO++++64yefJkxWq1KuPHj1deeOEFrZukOw6HQ7n//vuVrKwsJTo6Whk9erTyyCOPKE6nU+umDYlu71MnIiKinrgwTUREZBAMdSIiIoNgqBMRERkEQ52IiMggGOpEREQGwVAnIiIyCIY6ERGRQTDUiYiIDIKhTkREZBAMdSIiIoNgqBMRERkEQ52IiMgg/j9XtIHfm567FAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "F_reflect = np.array([\n", " [1, 0],\n", " [0, -1]\n", " ])\n", "plot_transformation(P, F_reflect @ P, \"$P$\", \"$F_{reflect} P$\",\n", " axis=[-2, 9, -4.5, 4.5])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Matrix inverse\n", "Now that we understand that a matrix can represent any linear transformation, a natural question is: can we find a transformation matrix that reverses the effect of a given transformation matrix $F$? The answer is yes… sometimes! When it exists, such a matrix is called the **inverse** of $F$, and it is noted $F^{-1}$.\n", "\n", "For example, the rotation, the shear mapping and the squeeze mapping above all have inverse transformations. Let's demonstrate this on the shear mapping:" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "image/png": "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+7//y49+9COuvfZaAPr06cOuXbt44oknFD7CqG3btoDVA5KZmXns8TO5loek5sPlcjFw4EDmzZtX4/F58+YxdOjQUDRBvmaaJvfeey9vvPEGH3/8MXl5eeFuUqs1duxY1q5dy6pVq459DRo0iBtuuIFVq1YpeITYsGHDThl2/tVXX9V70UxpPBUVFdhsNS9PdrtdQ23DLC8vj7Zt29a4lnu9XhYsWNDga3nIbrtMmzaNm266iUGDBnH++eczY8YMdu/ezd133x2qJghWcePMmTN5++23iY+PP9YblZiYSHR0dJhb17rEx8efUmsTGxtLSkqKanDC4MEHH2To0KE8/vjjfOtb3+KLL75gxowZzJgxI9xNa3UmT57Mr371K3Jzc+nVqxcrV67k97//Pbfffnu4m9bilZWVsXXr1mPf79ixg1WrVtGmTRtyc3N54IEHePzxx+nSpQtdunTh8ccfJyYmhuuvv75hB2qM4Tj19eyzz5rt27c3XS6Xec4552h4ZxgAtX69+OKL4W6amKaG2obZnDlzzN69e5tut9vs3r27OWPGjHA3qVUqKSkx77//fjM3N9eMiooyO3bsaD700EOmx+MJd9NavPnz59d6jbjllltM07SG2/785z8327Zta7rdbnPkyJHm2rVrG3wcwzRNszHSkoiIiEh9aG0XERERCSmFDxEREQkphQ8REREJKYUPERERCSmFDxEREQkphQ8REREJKYUPERERCSmFDxEREQkphQ8REREJKYUPERERCSmFDxEREQkphQ8REREJqf8HHW8w420PR9cAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "F_inv_shear = np.array([\n", " [1, -1.5],\n", " [0, 1]\n", "])\n", "P_sheared = F_shear @ P\n", "P_unsheared = F_inv_shear @ P_sheared\n", "plot_transformation(P_sheared, P_unsheared, \"$P_{sheared}$\", \"$P_{unsheared}$\",\n", " axis=[0, 10, 0, 7])\n", "plt.plot(P[0], P[1], \"b--\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 25: ¿Cuándo NO podremos deshacer un transformación lineal?**\n", "\n", "> Pista: Tiene que ver con el determinante." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We applied a shear mapping on $P$, just like we did before, but then we applied a second transformation to the result, and *lo and behold* this had the effect of coming back to the original $P$ (I've plotted the original $P$'s outline to double-check). The second transformation is the inverse of the first one.\n", "\n", "We defined the inverse matrix $F_{shear}^{-1}$ manually this time, but NumPy provides an `inv` function to compute a matrix's inverse, so we could have written instead:" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1. , -1.5],\n", " [ 0. , 1. ]])" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F_inv_shear = LA.inv(F_shear)\n", "F_inv_shear" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Only square matrices can be inversed. This makes sense when you think about it: if you have a transformation that reduces the number of dimensions, then some information is lost and there is no way that you can get it back. For example say you use a $2 \\times 3$ matrix to project a 3D object onto a plane. The result may look like this:" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "image/png": "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ESNGWLNnzw5oGzRokDV//vxG+z/22GPWoEGDAtp+//vfW8nJyWGbY2fS1nqXlpZakqwjR47YMLvOTZJVVFTUbB/Wd+i0pt6s79A6ePCgJcnauHFjk33sWOOXxBWU8vJyud1ujRw50t+WnJwst9utrVu3NntsWVmZevXqpX/+53/WrFmzdPDgwXBP96JTV1enXbt2KSMjI6A9IyOjyfqWl5cH9R83bpx27twpn88Xtrl2BhdS77MSExMVHx+vW2+9VaWlpeGc5iWN9d0xWN+hUVNTI0mKjo5uso8da/ySCCjV1dXq1atXUHuvXr1UXV3d5HGZmZl666239Pe//10vvviiPv74Y/3mN79RbW1tOKd70Tl06JAaGhqCvgQyNja2yfpWV1c32r++vl6HDh0K21w7gwupd3x8vJYtW6bCwkK98847GjhwoG699VZt2rTJjilfcljf9mJ9h45lWcrOztavf/1rDRkypMl+dqzxNn9ZoEmeffZZ5ebmNtvn448/lvTTn9Q/n2VZjbafNXXqVP/tIUOGaPjw4UpISNAHH3yg3/72txc4687r/Fq2VN/G+jfWjsa1pd4DBw4M+A6slJQU7d+/Xy+88ILGjBkT1nleqljf9mF9h86DDz6oTz/9VFu2bGmxb7jX+EUdUB588EHdfffdzfbp16+fPv30U3333XdB933//fdBCbA58fHxSkhI0N69e9s8184sJiZGERERQf97P3jwYJP1jYuLa7R/ZGSkevbsGba5dgYXUu/GJCcna+XKlaGeHsT6NgHru+0eeughvffee9q0aZN+9atfNdvXjjV+UQeUmJgYxcTEtNgvJSVFNTU12rFjh0aMGCFJ2r59u2pqapSamtrqn3f48GHt379f8fHxFzznzqhr165KSkpSSUmJ/1unJamkpESTJk1q9JiUlBS9//77AW0ffvihhg8fLqfTGdb5XuwupN6NqaioYC2HCeu747G+W8+yLD300EMqKipSWVmZ+vfv3+IxtqzxkL3d1nDjx4+3rr/+equ8vNwqLy+3hg4dat1+++0BfQYOHGi98847lmVZ1rFjx6w//OEP1tatW619+/ZZpaWlVkpKivXLX/7S8nq9HXEKRlu9erXldDqt5cuXW59//rk1d+5c6/LLL7e+/vpry7Isa/78+VZWVpa////+7/9a3bp1s+bNm2d9/vnn1vLlyy2n02n913/9V0edwkWlrfVeuHChVVRUZH355ZfWZ599Zs2fP9+SZBUWFnbUKVxUjh07ZlVUVFgVFRWWJOull16yKioqrP/7v/+zLIv1HWptrTfru33+/d//3XK73VZZWZnl8Xj828mTJ/19OmKNXzIB5fDhw9a9995rde/e3erevbt17733Bn0kTZL1xhtvWJZlWSdPnrQyMjKsq666ynI6nVbfvn2tadOmWVVVVfZP/iLxyiuvWAkJCVbXrl2tYcOGBXxEbdq0adbNN98c0L+srMxKTEy0unbtavXr18969dVXbZ7xxa0t9X7++eeta665xoqKirKuvPJK69e//rX1wQcfdMCsL05nP8Z6/jZt2jTLsljfodbWerO+26exWp/7+9CyOmaNO85MDgAAwBiXxMeMAQDAxYWAAgAAjENAAQAAxiGgAAAA4xBQAACAcQgoAADAOAQUAABgHAIKAAAwDgEFAAAYh4ACAACMQ0ABAADG+f9YSCs4/wAfsgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot([0, 0, 1, 1, 0, 0.1, 0.1, 0, 0.1, 1.1, 1.0, 1.1, 1.1, 1.0, 1.1, 0.1],\n", " [0, 1, 1, 0, 0, 0.1, 1.1, 1.0, 1.1, 1.1, 1.0, 1.1, 0.1, 0, 0.1, 0.1],\n", " \"r-\")\n", "plt.axis([-0.5, 2.1, -0.5, 1.5])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looking at this image, it is impossible to tell whether this is the projection of a cube or the projection of a narrow rectangular object. Some information has been lost in the projection.\n", "\n", "Even square transformation matrices can lose information. For example, consider this transformation matrix:" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "data": { "image/png": "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NLs9/PDDePjhh0diU0RkFbpunCP3XeMcbEuXdq2B/swzI7NNohHAtdaJyByCYKx8NlKOHRu5bRGNIN7GlIiIyMIY5ERERBbGICciIrIwBjkREZGFMciJiIgsjEFORERkYQxyIiIiC2OQExERWRiDnIiIyMIY5ERERBbGICciIrIwBjkREZGFMciJiIgsjEFORERkYQxyIiIiC2OQExERWRiDnIiIyMIY5ERERBbGICciIrIwBjkREZGFMciJiIgsjEFORERkYQxyIiIiC2OQExERWRiDnIiIyMIY5ERERBbGICciIrIwBjkREZGFMciJiIgsjEFORERkYQxyIiIiC2OQExERWRiDnIiIyMIY5ERERBbGICciIrIwBjkREZGFMciJiIgsjEFORERkYQxyIiIiC2OQExERWRiDnIiIyMIY5ERERBbGICciIrIwBjkREZGFMciJiIgsjEFORERkYQxyIiIiC2OQExERWRiDnIiIyMIY5ERERBbGICciIrIwBjkREZGFMciJiIgsjEFORERkYQxyIiIiC2OQExERWRiDnIiIyMIY5ERERBbGICciIrIwBjkREZGFMciJiIgsjEFORERkYUEN8qeeegpz585FVFQUEhISgrkpIiKiiBTUIPd4PLjtttvwwx/+MJibISIiilhyMJ98xYoVAIBXXnnFr/Futxtut7vz68bGRgBAfX39sNcWThRFQVtbG+rq6mCz2cwuJ2RxP/mH+8k/3E/+4X7yjy/ndF0P+HuDGuSBWrlyZWf4d5ebm2tCNURERCOrrq4O8fHxAX1PSAX5448/juXLl3d+3dDQgJycHFRUVAT8D4skTU1NyMrKQmVlJeLi4swuJ2RxP/mH+8k/3E/+4X7yT2NjI7Kzs5GYmBjw9wYc5E888USfR83dbd26FUVFRQEX43A44HA4ej0eHx/PHwA/xMXFcT/5gfvJP9xP/uF+8g/3k39EMfDWtYCD/JFHHsGdd9454JixY8cGXAgREREFLuAgT05ORnJycjBqISIiogAF9Rx5RUUF6uvrUVFRAVVVsWvXLgDAxIkTERMTc9Hvdzgc+M1vftPndDt14X7yD/eTf7if/MP95B/uJ/8MZT8J+mB63f30wAMP4NVXX+31+Pr16zF//vxgbZaIiChiBDXIiYiIKLi41joREZGFMciJiIgsjEFORERkYQxyIiIiCwvpIH/xxRcxbtw4OJ1OzJo1C59//rnZJYWUTZs2YcmSJUhPT4cgCHjnnXfMLikkrVy5ErNnz0ZsbCzGjBmDm2++GYcPHza7rJCzatUqFBQUdK7AVVxcjI8++sjsskLaypUrIQgCHnvsMbNLCSlPPPEEBEHo8ZGammp2WSHp5MmTuOeee5CUlISoqCjMmDED27dvD+g5QjbIX3/9dTz22GP41a9+hZ07d+Ib3/gGFi9ejIqKCrNLCxmtra0oLCzE888/b3YpIW3jxo1YtmwZtmzZgpKSEni9XixatAitra1mlxZSMjMz8cwzz2Dbtm3Ytm0brrrqKtx0003Yv3+/2aWFpK1bt2L16tUoKCgwu5SQlJeXh1OnTnV+7N271+ySQs65c+cwb9482Gw2fPTRRzhw4AB+97vfISEhIbAn0kPUnDlz9KVLl/Z4bMqUKfovfvELkyoKbQD0t99+2+wyLKG2tlYHoG/cuNHsUkLeqFGj9JdfftnsMkJOc3OzPmnSJL2kpES/8sor9UcffdTskkLKb37zG72wsNDsMkLez3/+c/3yyy8f8vOE5BG5x+PB9u3bsWjRoh6PL1q0CF9++aVJVVG48N3nfjB3GYoUqqpi7dq1aG1tRXFxsdnlhJxly5bhhhtuwDXXXGN2KSGrtLQU6enpGDduHO68804cO3bM7JJCznvvvYeioiLcdtttGDNmDGbOnImXXnop4OcJySA/e/YsVFVFSkpKj8dTUlJQU1NjUlUUDnRdx/Lly3H55ZcjPz/f7HJCzt69exETEwOHw4GlS5fi7bffxrRp08wuK6SsXbsWO3bswMqVK80uJWRdeumleO211/DJJ5/gpZdeQk1NDebOnYu6ujqzSwspx44dw6pVqzBp0iR88sknWLp0KX784x/jtddeC+h5Qup+5BcSBKHH17qu93qMKBCPPPII9uzZgy+++MLsUkLS5MmTsWvXLjQ0NOAf//gH7r//fmzcuJFhfl5lZSUeffRRrFu3Dk6n0+xyQtbixYs7P58+fTqKi4sxYcIEvPrqq1i+fLmJlYUWTdNQVFSEp59+GgAwc+ZM7N+/H6tWrcJ9993n9/OE5BF5cnIyJEnqdfRdW1vb6yidyF8/+tGP8N5772H9+vXIzMw0u5yQZLfbMXHiRBQVFWHlypUoLCzEc889Z3ZZIWP79u2ora3FrFmzIMsyZFnGxo0b8Yc//AGyLENVVbNLDEnR0dGYPn06SktLzS4lpKSlpfV6kzx16tSAm7pDMsjtdjtmzZqFkpKSHo+XlJRg7ty5JlVFVqXrOh555BG89dZb+OyzzzBu3DizS7IMXdfhdrvNLiNkXH311di7dy927drV+VFUVIS7774bu3btgiRJZpcYktxuNw4ePIi0tDSzSwkp8+bN63Up7JEjR5CTkxPQ84Ts1Pry5ctx7733oqioCMXFxVi9ejUqKiqwdOlSs0sLGS0tLTh69Gjn18ePH8euXbuQmJiI7OxsEysLLcuWLcOaNWvw7rvvIjY2tnOmJz4+Hi6Xy+TqQscvf/lLLF68GFlZWWhubsbatWuxYcMGfPzxx2aXFjJiY2N79VZER0cjKSmJPRfd/OxnP8OSJUuQnZ2N2tpaPPnkk2hqasL9999vdmkh5Sc/+Qnmzp2Lp59+Grfffju+/vprrF69GqtXrw7siYbc9x5EL7zwgp6Tk6Pb7Xb9kksu4eVCF1i/fr0OoNfH/fffb3ZpIaWvfQRA/8tf/mJ2aSHlwQcf7Px9Gz16tH711Vfr69atM7uskMfLz3q744479LS0NN1ms+np6en6t771LX3//v1mlxWS3n//fT0/P193OBz6lClT9NWrVwf8HLyNKRERkYWF5DlyIiIi8g+DnIiIyMIY5ERERBbGICciIrIwBjkREZGFMciJiIgsjEFORERkYQxyIiIiC2OQExERWRiDnIiIyMIY5ERERBb2/wF00dwvt3FSAAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "F_project = np.array([\n", " [1, 0],\n", " [0, 0]\n", " ])\n", "plot_transformation(P, F_project @ P, \"$P$\", r\"$F_{project} \\cdot P$\",\n", " axis=[0, 6, -1, 4])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This transformation matrix performs a projection onto the horizontal axis. Our polygon gets entirely flattened out so some information is entirely lost, and it is impossible to go back to the original polygon using a linear transformation. In other words, $F_{project}$ has no inverse. Such a square matrix that cannot be inversed is called a **singular matrix** (aka degenerate matrix). If we ask NumPy to calculate its inverse, it raises an exception:" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LinAlgError: Singular matrix\n" ] } ], "source": [ "try:\n", " LA.inv(F_project)\n", "except LA.LinAlgError as e:\n", " print(\"LinAlgError:\", e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is another example of a singular matrix. This one performs a projection onto the axis at a 30° angle above the horizontal axis:" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAGiCAYAAAAcH0QnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABM50lEQVR4nO3deXxU9b3/8dc5M5NJQjaSQBIg7CD7IouCKyoq1n0v1q21LS1aLe2tS1u3W8Xetve2va20alv1evlhN61tXeBWBHdZZZN9SVgDScieycyZ8/vjmI0EmIRMZk7yfj4eeZA5nJnzzWGYd873+znfr2Hbto2IiIi4khnrBoiIiEj7KchFRERcTEEuIiLiYgpyERERF1OQi4iIuJiCXERExMUU5CIiIi6mIBcREXExBbmIiIiLKchFRERcrNOCfP78+RiGwX333ddZhxQREenyOiXIV6xYwTPPPMO4ceM643AiIiLdRtSDvLKykltuuYVnn32Wnj17RvtwIiIi3Yo32geYO3cuX/jCF7jooov40Y9+dMJ9A4EAgUCg4XE4HKakpISsrCwMw4h2U0VERGLCtm0qKiro06cPptm2a+yoBvmiRYtYvXo1K1asiGj/+fPn89hjj0WzSSIiInGrsLCQfv36tek5UQvywsJC7r33XhYvXkxiYmJEz3nwwQeZN29ew+OysjL69+/P1q1byczMjFZTXS8YDLJ06VJmzJiBz+eLdXPils5TZHSeIqPzFBmdp8iUlJQwfPhwUlNT2/zcqAX5qlWrKCoqYtKkSQ3bLMti+fLl/OpXvyIQCODxeJo9x+/34/f7W7xWZmYmWVlZ0Wqq6wWDQZKTk8nKytJ/lBPQeYqMzlNkdJ4io/PUNu0ZRo5akF944YWsX7++2bY777yTESNGcP/997cIcREREWm7qAV5amoqY8aMabatR48eZGVltdguIiIi7aOZ3URERFws6refNfXOO+905uFERES6PF2Ri4iIuJiCXERExMUU5CIiIi6mIBcREXExBbmIiIiLKchFRERcTEEuIiLiYgpyERERF1OQi4iIuJiCXERExMUU5CIiIi6mIBcREXExBbmIiIiLKchFRERcTEEuIiLiYgpyERERF1OQi4iIuJiCXERExMUU5CIiIi6mIBcREXExBbmIiIiLKchFRERcTEEuIiLiYgpyERERF1OQi4iI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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "angle30 = 30 * np.pi / 180\n", "F_project_30 = np.array([\n", " [np.cos(angle30)**2, np.sin(2*angle30)/2],\n", " [np.sin(2*angle30)/2, np.sin(angle30)**2]\n", " ])\n", "plot_transformation(P, F_project_30 @ P, \"$P$\", r\"$F_{project\\_30} \\cdot P$\",\n", " axis=[0, 6, -1, 4])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But this time, due to floating point rounding errors, NumPy manages to calculate an inverse (notice how large the elements are, though):" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1.54810441e+16, -2.68139549e+16],\n", " [-2.68139549e+16, 4.64431323e+16]])" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LA.inv(F_project_30)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you might expect, the dot product of a matrix by its inverse results in the identity matrix:\n", "\n", "$M \\cdot M^{-1} = M^{-1} \\cdot M = I$\n", "\n", "This makes sense since doing a linear transformation followed by the inverse transformation results in no change at all." ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 0.],\n", " [0., 1.]])" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F_shear @ LA.inv(F_shear)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another way to express this is that the inverse of the inverse of a matrix $M$ is $M$ itself:\n", "\n", "$((M)^{-1})^{-1} = M$" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1. , 1.5],\n", " [0. , 1. ]])" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LA.inv(LA.inv(F_shear))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Also, the inverse of scaling by a factor of $\\lambda$ is of course scaling by a factor of $\\frac{1}{\\lambda}$:\n", "\n", "$ (\\lambda \\times M)^{-1} = \\frac{1}{\\lambda} \\times M^{-1}$\n", "\n", "Once you understand the geometric interpretation of matrices as linear transformations, most of these properties seem fairly intuitive.\n", "\n", "A matrix that is its own inverse is called an **involution**. The simplest examples are reflection matrices, or a rotation by 180°, but there are also more complex involutions, for example imagine a transformation that squeezes horizontally, then reflects over the vertical axis and finally rotates by 90° clockwise. Pick up a napkin and try doing that twice: you will end up in the original position. Here is the corresponding involutory matrix:" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "F_involution = np.array([\n", " [0, -2],\n", " [-1/2, 0]\n", " ])\n", "plot_transformation(P, F_involution @ P, \"$P$\", r\"$F_{involution} \\cdot P$\",\n", " axis=[-8, 5, -4, 4])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 26: ¿Qué ocurre si multiplicamos `F_involution` por si misma (`@`)?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, a square matrix $H$ whose inverse is its own transpose is an **orthogonal matrix**:\n", "\n", "$H^{-1} = H^T$\n", "\n", "Therefore:\n", "\n", "$H \\cdot H^T = H^T \\cdot H = I$\n", "\n", "It corresponds to a transformation that preserves distances, such as rotations and reflections, and combinations of these, but not rescaling, shearing or squeezing. Let's check that $F_{reflect}$ is indeed orthogonal:" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1, 0],\n", " [0, 1]])" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F_reflect @ F_reflect.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 27: Busca otra matriz que su inversa sea igual a su traspuesta y aplica la transformación sobre `P` de manera gráfica en un plano 2D.**" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1.00000000e+00 -7.43708407e-18]\n", " [-7.43708407e-18 1.00000000e+00]]\n" ] }, { "data": { "image/png": "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O5bS0lI+9alPcfz48WHdf0S7RYuhGclxDiL+2bbNfffdx4oVK5gzZ060mxN2e/bsYdmyZXR2dpKens6zzz7LrFmzot2ssNqwYQPbt29ny5Yt0W5KxFx++eX87ne/Y9q0aVRXV/P973+f5cuXs2/fPnJzc4f0GCHv4Qw0sXThx9atW0P9tDFtOMc5iPj35S9/md27d/Pkk09GuykRMX36dHbu3MmmTZv40pe+xLp169i/f3+0mxU2lZWVfO1rX+Pxxx/H4/FEuzkRs3btWu68807mzp3L6tWrefHFFwF47LHHhvwYIe/hfPnLX+ZTn/rURW8zceLEUD9tTJLjHJLPV77yFV544QXefvttxo0bF+3mRITL5WLKlCkALF68mC1btvDQQw/xy1/+MsotC49t27ZRU1PDokWLur9mmiZvv/02P/vZz/D5fBiGEcUWRkZaWhpz587lyJEjQ75PyAMnLy+PvLy8UD9sXOp9nMPtt9/e/fWysjJuvfXWKLZMhJpt23zlK1/h2Wef5c0336S0tDTaTYoa27bx+XzRbkbYXHfddf2qs+655x5mzJjB17/+9aQIGwCfz8eBAwdYuXLlkO8T1TmciooK6uvrqaiowDRNdu7cCcCUKVNIT0+PZtNCZrTHOcSj1tZWjh492v35iRMn2LlzJzk5OYwfPz6KLQuf9evX88QTT/D888/j9Xq7e7WZmZmkpKREuXXh861vfYu1a9dSUlJCS0sLGzZs4M0332Tjxo3RblrYeL3efnNzaWlp5ObmJvSc3T/+4z9yyy23MH78eGpqavj+979Pc3Mz69atG/qDjL5YbuTWrVtnA/0+3njjjWg2K+R+/vOf2xMmTLBdLpe9cOHChC+VfeONNwZ8XdetWxftpoXNQNcL2I8++mi0mxZWn//857u/t8eMGWNfd9119quvvhrtZkVcMpRFf/KTn7SLiopsp9Npjx071r7jjjvsffv2Desx5HgCIYQQESHrcIQQQkSEBI4QQoiIkMARQggRERI4QgghIkICRwghRERI4AghhIgICRwhhBARIYEjhBAiIiRwhBBCRIQEjhBCiIiQwBFCCBER/z80DIJpTlJyggAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "F_reflect2 = np.array([\n", " [np.cos(angle30), -np.sin(angle30)],\n", " [np.sin(angle30), np.cos(angle30)]\n", " ])\n", "print(F_reflect2 @ F_reflect2.T)\n", "plot_transformation(P, F_reflect2 @ P, \"$P$\", r\"$F_{involution} \\cdot P$\",\n", " axis=[-1, 5, 0, 6])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 0],\n", " [ 0, -1]])" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F_reflect\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Determinant\n", "The determinant of a square matrix $M$, noted $\\det(M)$ or $\\det M$ or $|M|$ is a value that can be calculated from its elements $(M_{i,j})$ using various equivalent methods. One of the simplest methods is this recursive approach:\n", "\n", "$|M| = M_{1,1}\\times|M^{(1,1)}| - M_{1,2}\\times|M^{(1,2)}| + M_{1,3}\\times|M^{(1,3)}| - M_{1,4}\\times|M^{(1,4)}| + \\cdots ± M_{1,n}\\times|M^{(1,n)}|$\n", "\n", "* Where $M^{(i,j)}$ is the matrix $M$ without row $i$ and column $j$.\n", "\n", "For example, let's calculate the determinant of the following $3 \\times 3$ matrix:\n", "\n", "$M = \\begin{bmatrix}\n", " 1 & 2 & 3 \\\\\n", " 4 & 5 & 6 \\\\\n", " 7 & 8 & 0\n", "\\end{bmatrix}$\n", "\n", "Using the method above, we get:\n", "\n", "$|M| = 1 \\times \\left | \\begin{bmatrix} 5 & 6 \\\\ 8 & 0 \\end{bmatrix} \\right |\n", " - 2 \\times \\left | \\begin{bmatrix} 4 & 6 \\\\ 7 & 0 \\end{bmatrix} \\right |\n", " + 3 \\times \\left | \\begin{bmatrix} 4 & 5 \\\\ 7 & 8 \\end{bmatrix} \\right |$\n", "\n", "Now we need to compute the determinant of each of these $2 \\times 2$ matrices (these determinants are called **minors**):\n", "\n", "$\\left | \\begin{bmatrix} 5 & 6 \\\\ 8 & 0 \\end{bmatrix} \\right | = 5 \\times 0 - 6 \\times 8 = -48$\n", "\n", "$\\left | \\begin{bmatrix} 4 & 6 \\\\ 7 & 0 \\end{bmatrix} \\right | = 4 \\times 0 - 6 \\times 7 = -42$\n", "\n", "$\\left | \\begin{bmatrix} 4 & 5 \\\\ 7 & 8 \\end{bmatrix} \\right | = 4 \\times 8 - 5 \\times 7 = -3$\n", "\n", "Now we can calculate the final result:\n", "\n", "$|M| = 1 \\times (-48) - 2 \\times (-42) + 3 \\times (-3) = 27$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get the determinant of a matrix, you can call NumPy's `det` function in the `numpy.linalg` module:" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "27.0" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = np.array([\n", " [1, 2, 3],\n", " [4, 5, 6],\n", " [7, 8, 0]\n", " ])\n", "LA.det(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the main uses of the determinant is to *determine* whether a square matrix can be inversed or not: if the determinant is equal to 0, then the matrix *cannot* be inversed (it is a singular matrix), and if the determinant is not 0, then it *can* be inversed.\n", "\n", "For example, let's compute the determinant for the $F_{project}$, $F_{project\\_30}$ and $F_{shear}$ matrices that we defined earlier:" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LA.det(F_project)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's right, $F_{project}$ is singular, as we saw earlier." ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.6148781609251353e-17" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LA.det(F_project_30)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This determinant is suspiciously close to 0: it really should be 0, but it's not due to tiny floating point errors. The matrix is actually singular." ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LA.det(F_shear)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Perfect! This matrix *can* be inversed as we saw earlier. Wow, math really works!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The determinant can also be used to measure how much a linear transformation affects surface areas: for example, the projection matrices $F_{project}$ and $F_{project\\_30}$ completely flatten the polygon $P$, until its area is zero. This is why the determinant of these matrices is 0. The shear mapping modified the shape of the polygon, but it did not affect its surface area, which is why the determinant is 1. You can try computing the determinant of a rotation matrix, and you should also find 1. What about a scaling matrix? Let's see:" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [ { "data": { "image/png": "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RjfDEpqamnQA+s6dO41uiumlpqbqTz/9tNHNMJ2Ojg59+vTpekVFhX7TTTfpjz76qNFNMpWf/OQnemlpqdHNML0f/vCH+tKlS8f9OKbskXu9Xuzbtw+33nrrgNtvvfVWfPTRRwa1iqJFYJ/7sewyFCtUVcULL7yArq4ulJeXG90c01m/fj3uvPNOrFixwuimmNbJkyeRm5uLyZMn4/7770dNTY3RTTKd1157DWVlZfjyl7+MzMxMzJ8/H0899dSoH8eUQX7p0iWoqoqsrKwBt2dlZaGxsdGgVlE00HUdGzZswNKlS1FcXGx0c0zn8OHDSEhIgNPpxLp16/Dyyy9j9uzZRjfLVF544QXs378fGzduNLoppnX99dfj+eefxzvvvIOnnnoKjY2NWLx4MZqbm41umqnU1NRg06ZNmD59Ot555x2sW7cO3//+9/H888+P6nFMtR/51SRJGvC9ruuDbiMajUceeQSffvopPvjgA6ObYkozZszAwYMH0draij/+8Y948MEHsXPnTob5Z+rr6/Hoo49i27ZtcLlcRjfHtFatWnXl67lz56K8vBxTp07Fc889hw0bNhjYMnPRNA1lZWX4+c9/DgCYP38+qqqqsGnTJnz9618P+nFM2SPPyMiAoiiDet9NTU2DeulEwfre976H1157Ddu3b0deXp7RzTElh8OBadOmoaysDBs3bkRpaSl+/etfG90s09i3bx+ampqwYMEC2Gw22Gw27Ny5E//6r/8Km80GVVWNbqIpxcfHY+7cuTh58qTRTTGVnJycQW+SZ82aNeqiblMGucPhwIIFC1BRUTHg9oqKCixevNigVpFV6bqORx55BH/605/w3nvvYfLkyUY3yTJ0XYfH4zG6GaZxyy234PDhwzh48OCVj7KyMnz1q1/FwYMHoSiK0U00JY/Hg6NHjyInJ8foppjKkiVLBl0Ke+LECRQWFo7qcUw7tL5hwwY88MADKCsrQ3l5OTZv3oy6ujqsW7fO6KaZRmdnJ06dOnXl+9OnT+PgwYNIS0tDQUGBgS0zl/Xr12PLli149dVXkZiYeGWkJzk5GW632+DWmcePfvQjrFq1Cvn5+ejo6MALL7yAHTt2YOvWrUY3zTQSExMH1VbEx8cjPT2dNRf9/O3f/i1Wr16NgoICNDU14ac//Sna29vx4IMPGt00U/nBD36AxYsX4+c//znuvfdefPLJJ9i8eTM2b948ugcad917GP3bv/2bXlhYqDscDv26667j5UJX2b59uw5g0MeDDz5odNNMZahjBEB/5plnjG6aqXzjG9+48v9twoQJ+i233KJv27bN6GaZHi8/G+y+++7Tc3JydLvdrufm5upf/OIX9aqqKqObZUqvv/66XlxcrDudTn3mzJn65s2bR/0Y3MaUiIjIwkw5R05ERETBYZATERFZGIOciIjIwhjkREREFsYgJyIisjAGORERkYUxyImIiCyMQU5ERGRhDHIiIiILY5ATERFZGIOciIjIwv5/oko8nF9tQOsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "F_scale = np.array([\n", " [0.5, 0],\n", " [0, 0.5]\n", " ])\n", "plot_transformation(P, F_scale @ P, \"$P$\", r\"$F_{scale} \\cdot P$\",\n", " axis=[0, 6, -1, 4])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We rescaled the polygon by a factor of 1/2 on both vertical and horizontal axes so the surface area of the resulting polygon is $1/4^{th}$ of the original polygon. Let's compute the determinant and check that:" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.25" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LA.det(F_scale)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Correct!\n", "\n", "The determinant can actually be negative, when the transformation results in a \"flipped over\" version of the original polygon (e.g. a left-hand glove becomes a right-hand glove). For example, the determinant of the `F_reflect` matrix is -1 because the surface area is preserved but the polygon gets flipped over:" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-1.0" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LA.det(F_reflect)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 28: ¿Sobre que aspecto de un polígono nos da información el determinante?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Composing linear transformations\n", "Several linear transformations can be chained simply by performing multiple dot products in a row. For example, to perform a squeeze mapping followed by a shear mapping, just write:" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [], "source": [ "P_squeezed_then_sheared = F_shear @ (F_squeeze @ P)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the dot product is associative, the following code is equivalent:" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [], "source": [ "P_squeezed_then_sheared = F_shear @ F_squeeze @ P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the order of the transformations is the reverse of the dot product order.\n", "\n", "If we are going to perform this composition of linear transformations more than once, we might as well save the composition matrix like this:" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [], "source": [ "F_squeeze_then_shear = F_shear @ F_squeeze\n", "P_squeezed_then_sheared = F_squeeze_then_shear @ P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From now on we can perform both transformations in just one dot product, which can lead to a very significant performance boost." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What if you want to perform the inverse of this double transformation? Well, if you squeezed and then you sheared, and you want to undo what you have done, it should be obvious that you should unshear first and then unsqueeze. In more mathematical terms, given two invertible (aka nonsingular) matrices $Q$ and $R$:\n", "\n", "$(Q \\cdot R)^{-1} = R^{-1} \\cdot Q^{-1}$\n", "\n", "And in NumPy:" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ True, True],\n", " [ True, True]])" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LA.inv(F_shear @ F_squeeze) == LA.inv(F_squeeze) @ LA.inv(F_shear)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Singular Value Decomposition\n", "It turns out that any $m \\times n$ matrix $M$ can be decomposed into the dot product of three simple matrices:\n", "* a rotation matrix $U$ (an $m \\times m$ orthogonal matrix)\n", "* a scaling & projecting matrix $\\Sigma$ (an $m \\times n$ diagonal matrix)\n", "* and another rotation matrix $V^T$ (an $n \\times n$ orthogonal matrix)\n", "\n", "$M = U \\cdot \\Sigma \\cdot V^{T}$\n", "\n", "For example, let's decompose the shear transformation:" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.89442719, -0.4472136 ],\n", " [ 0.4472136 , 0.89442719]])" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U, S_diag, V_T = LA.svd(F_shear) # note: in python 3 you can rename S_diag to Σ_diag\n", "U" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([2. , 0.5])" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S_diag" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that this is just a 1D array containing the diagonal values of Σ. To get the actual matrix Σ, we can use NumPy's `diag` function:" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2. , 0. ],\n", " [0. , 0.5]])" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S = np.diag(S_diag)\n", "S" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's check that $U \\cdot \\Sigma \\cdot V^T$ is indeed equal to `F_shear`:" ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1.00000000e+00, 1.50000000e+00],\n", " [-1.25949234e-17, 1.00000000e+00]])" ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U @ np.diag(S_diag) @ V_T" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1. , 1.5],\n", " [0. , 1. ]])" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F_shear" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It worked like a charm. Let's apply these transformations one by one (in reverse order) on the unit square to understand what's going on. First, let's apply the first rotation $V^T$:" ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGiCAYAAAAba+fDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABKjUlEQVR4nO3deXxU1d0/8M+dJZOFLJCFJBDCHjZFJGgCsklBQBDEx0ptEdRSkapF5OEn2gXsY9E+atGqUFoUEa1UEZUSlfg0CSiLARL2JUAgISQEQjYSMrkzc39/HCbbzGQjk5nc+3m/Xnll5s65M+dwE/Pxe889V1IURQERERGRSug83QEiIiKitsRwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREquLWcLNjxw5Mnz4d0dHRkCQJX3zxRaPtU1NTIUmSw9eJEyfc2U0iIiJSEYM737yiogJDhw7Fo48+igceeKDZ+508eRJBQUE1z8PDw93RPSIiIlIht4abKVOmYMqUKS3eLyIiAiEhIW3fISIiIlI9t4ab1ho2bBiqqqowaNAg/Pa3v8X48eNdtjWbzTCbzTXPbTYbrl69itDQUEiS1B7dJSIiolZQFAXl5eWIjo6GTtd2M2W8KtxERUVh7dq1GD58OMxmMz788ENMmDABqampGDNmjNN9Vq5ciRUrVrRzT4mIiKit5Obmonv37m32fpKiKEqbvVtjHyRJ2LJlC2bOnNmi/aZPnw5JkvDVV185fb1h5aa0tBQ9evTAqVOn0KVLl5vpcociyzJSUlIwfvx4GI1GT3en3Whx3FocM6DNcWtxzADHraVxX716Ff3790dJSQmCg4Pb7H29qnLjTEJCAjZu3OjydZPJBJPJ5LC9S5cuCA0NdWfXvIosy/D390doaKhmfikAbY5bi2MGtDluLY4Z4Li1Nm4AbT6NxOvXucnIyEBUVJSnu0FEREQdhFsrN9euXcPp06drnmdnZyMzMxNdunRBjx49sGzZMuTl5WHDhg0AgFWrVqFnz54YPHgwqqursXHjRmzevBmbN292ZzeJiIhIRdwabvbt21fvSqfFixcDAObOnYv169cjPz8fOTk5Na9XV1djyZIlyMvLg5+fHwYPHoxt27Zh6tSp7uwmERERqYhbw824cePQ2Hzl9evX13u+dOlSLF261J1dIiIiIpXz+jk3RERERC3BcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREquLWcLNjxw5Mnz4d0dHRkCQJX3zxRZP7pKWlYfjw4fD19UXv3r2xZs0ad3aRiIiIVMbgzjevqKjA0KFD8eijj+KBBx5osn12djamTp2K+fPnY+PGjfjhhx+wcOFChIeHN2t/LVMUQJYlVFeLx3UZjYAkicdWq/hyxWAAdDrvaWuzARaL67Y2W/3HjbXV68WXO9uK49A2bXU68W/RsK0sOx5jIiKq5dZwM2XKFEyZMqXZ7desWYMePXpg1apVAICBAwdi3759eO2111yGG7PZDLPZXPO8rKwMACDLMuTG/nKoiKIA69bZkJbWHxkZgE5XPzksWGBDRIR4nJYmIS1Ncvlejz9uQ7du4vGuXRK++85120cesaFnT/E4PV3C11+7bjt7tg39+4vHmZnAV1+5Lho+8IANgweLx0ePAps3u247dapIHbIs49Qp4JNPXLedMkXBiBEiFZw7B2zY4LrtT36iYORI0TYvD1i3znXbsWMVjB0r2hYWAmvWuG6bmKhg4kTRtqQEeOst123j4xVMnSraVlQAr78u2tpsQFlZD0ycqI2fbzv777NWfq8BbY4Z4Li1NG53jdWt4aaldu/ejUmTJtXbds8992DdunWQZRlGo9Fhn5UrV2LFihUO21NSUuDv7++2vnoTWZaQliaSw5kzZxxe/+67bISEVAMADh8ORVZWmMv3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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_transformation(Square, V_T @ Square, \"$Square$\", r\"$V^T \\cdot Square$\",\n", " axis=[-0.5, 3.5 , -1.5, 1.5])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's rescale along the vertical and horizontal axes using $\\Sigma$:" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "data": { "image/png": "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K1aswPHjx/Hmm2/ijTfewOOPP+7JZhIREZGKeLTmZt++fcjKymq57Sj8Xbx4MdavX4/i4uKWoAMA6enp2LJlCx599FG8/PLLSE5OxosvvtjhMnAiIiKitjwabmbNmoXOVpqvX7++3X0zZ87EgQMHPNgqIiIiUjO/qrkhIiIiulIMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqDDdERESkKgw3REREpCoMN0RERKQqXgk3r7zyCtLT0xEUFISJEyfiq6++6vDY3NxcSJLU7uPEiRPeaCoRERH1cx4PNx988AEeeeQRPPXUUzh48CCmT5+O+fPno7CwsNPnnTx5EsXFxS0fw4YN83RTiYiISAU8Hm5eeOEF/PSnP8XPfvYzjBo1CuvWrUNKSgpeffXVTp8XHx+PxMTElg+tVuvpphIREZEK6Dz54haLBfv378cTTzzhcv+cOXOwc+fOTp87YcIENDc3Y/To0Xj66aeRlZXl9jiz2Qyz2dxyu7a2FgBgtVphtVqvsAf9h6OvgdRnIDD7HYh9BgKz34HYZ4D9DqR+e6qvHg035eXlkGUZCQkJLvcnJCSgpKTE7XOSkpLw+uuvY+LEiTCbzfjLX/6CG264Abm5uZgxY0a749euXYs1a9a0uz8nJwcmk6lvOtKPZGdn+7oJPhGI/Q7EPgOB2e9A7DPAfgeCxsZGj7yuR8ONgyRJLrcVRWl3n8OIESMwYsSIltuZmZk4f/48nn/+ebfhZtWqVVixYkXL7draWqSkpCArKwsxMTF91AP/Z7VakZ2djdmzZ0Ov1/u6OV4TiP0OxD4DgdnvQOwzwH4HUr8rKio88roeDTexsbHQarXtRmlKS0vbjeZ0ZsqUKdiwYYPbx4xGI4xGY7v79Xp9wPxwOGO/A0cg9hkIzH4HYp8B9jsQeKqfHi0oNhgMmDhxYrshtuzsbEydOrXbr3Pw4EEkJSX1dfOIiIhIhTw+LbVixQosWrQIGRkZyMzMxOuvv47CwkIsW7YMgJhWKioqwjvvvAMAWLduHQYNGoQxY8bAYrFgw4YN2LhxIzZu3OjpphIREZEKeDzc3HPPPaioqMAzzzyD4uJijB07Flu2bEFaWhoAoLi42GXPG4vFgscffxxFRUUIDg7GmDFjsHnzZixYsMDTTSXyKlkG8vOB6mpgxgwgQEahiYg8zisFxcuXL8fy5cvdPrZ+/XqX2ytXrsTKlSu90Coi38rOBrZ/bQcA6HQazJzp4wYREakEry1F5CWyDDhWPTaYbYgfXI8muxl1zVbk5QHNzb5tHxGRWjDcEHmYLAP79gEvvghs+lTGmbJ6nClrgN4kY/HPLQiPtKO6Tsbu3b5uKRGROnhlWoooEMkycPAg8NVXQFmFHQ1mGy5WyRg1SYbeII7RaoGJU2zI+UKDvDwtJk8GgoJ8224iov6O4Yaoj7kLNfogGZNmyBg9Toauzf+6IcPt2L/LMXqjZe0NEdEVYrgh6mN79wKfft51qHHQaMTozZ6vJISF8QKxRERXiuGG6ArJMlBXB0RGikLhiIHN0Ji0mDS581DjbMhwOwYNMWNIghYA14QTEV0JhhuiXnKeftLqZdx4dxMaLTIA4O5FMjq4fJpbGo34KK1rRoSJ4YaI6Eow3BD1UEc1NSVlMsIjxDE9CTbOGs125O21wqjV45pr+q7NRESBhOGGqJt6WijcG+fOaJD9uR0DYoHRo7lyioioNxhuiLrp22+Bjz72TKhxSBtsd9r3hiuniIh6g5v4EXVAloGSEvHvBrMNuqh6hCc0Y9IMC+77qQXjJ/RtsAFaV041mG3ctZiIqJc4ckPUhvP0U0OTjO8vboJVEYXCN94ue/zrc98bIqIrw3BDdFlHNTVFxXbEJ3qvHY7RG+5aTETUOww3FPC8USjcUxy9ISLqPYYbCngVFcCmT2TUN8s+DzUOjtGb44ckpKRw12Iiop5guKGAI8tAYSGQni4KheulZgwYLiEiUvF5qHE2dIQdQ0eYERPDXYuJiHrCT36NE3me8/RTRZWMOxc1QRcsCoSnZ/m4cW44NgLkrsVERD3DcEOq1+GOwqV2DEzzdeu6VlNnx+cHbYiJ0CEz09etISLyfww3pFr+WCjcG4VnNcj5UsaAWB0mTAC0LMEhIupUP/n1TtRzFguw+R8yKmv9p1C4N9qunJo61dctIiLyb/3s1zxRx2QZOHkSGDUKaLTYcKm+GUOuAoZK6JehxqHtvje8oCYRUef66a97olayDOzfLyEvT0w/zb6lCbHJNgDAVSoJAs6jN3v29PKS40REAYLXlqJ+yxFqNm8ejI8/VXD2ogUWyYzaBruvm9bnnK85tWuXBIuF/3WJiDrCkRvqd+x24MABUSh8qUxBQ4MekRoLJs3wr31q+ppj9Kam3o5Tp6J83RwiIr+l0rcBUrttX8sovChDZ7Ri4sRSXH9HHAxGdf84azRARqYNRWdlRBprfd0cIiK/pe53A1IFWQa++QYYPx4wyzZcqm3GsAkKEodIGDnajAtHqlQ7WtPW0BF2DB5qw9l8q6+bEthkGbBaeUVTIj8VIG8J1B+13afmXFkzho4Rb+rpQ8QxdtmHDfQDitK6kzH1IVkGamuB6mpx8bHmZmDECKCxUXy88QZQVQVMmADceiuQkuLrFhORE4Yb8jsdbb4nSwGeZJzU1hqw4a92DBkEzJjh69b0Q7IsQkpYmPh3UxOwZQtw7pwIM9XV4r7mZsBsBvR68Y22WkWiPH9ehJviYmD3bmDyZIYcIj/CcEN+Q1GA/fv7/47C3lBVZcSps3ZcughMmsTZkQ5duABcugSUlorPZWWt4UWjAb73PaCuTgSYbduA8nLxgwiIQBMaCsTGApGRQGIiYDSKobL0dBF89u0Djh0TwcgRcm6/HRgwwJe9Jgp4fLsgvyFJwOFjMs5e7N87CntDSkodimvkll2LZ870dYu8rO20UWmpCC719cD114tRl5oaYONGEXBkGbDZxFI75/BSUiKSYUiICCaACDQhIUBwcMdzfnq9+MjKAjIyXEOOVgvcdpsIQ5wzJPIJvm2Qzzimn4YPB7RGUSicNsYOQ5SGoaYLGg2QMdmG3K025OVpMXmyykZvnMNLbS0wZIgYYQEg/fGPwLffuk4bOYeXxkYRKvR6ETRiY4GICDH6EhHRcXgJD+9dW8PCWkPO4cNAQwPw0UfAsGHi66SmcrqKyMv49kFe17amZsgYMyZNtwAA4hKAuATW1nTH4GEyDuyx98/RG7tdJDRA/EDs2gWcPu06beQILxYLMHeuCC8pKcDRo0BRkeu0kXN4SU1tvbro4MHe61NYGFou/FVXBxw6BOTlASYTa3KIvIzhhrymo0LhkHCGmd5oe80pvxu9qasTQcUxbeSYOnKElzvvFKMydXUiBJw7137aKCxMhBeDQXwGoMydK0ZcOps28rWwMGDQIODixfY1OQw5RB7HcENekZ8P5OSwULivOV9zau9eLaZP99IXdlfzUloqVhSZzWLU5bPPxBt722kjR3jZuxeIihLBZcgQUYQbESGCQUiISGrO4UVRxIfJ5L+hxpnRKKarrr1W9LVtyPn+90VdDhH1Ob6tkFecL2KhsCdoNMDkaTY01CqYNMnUdy/sHF4GDmwNLDk54toXbZdKO8JLUZEIJYoiQg/QvZqXuLi+a7u/CQ11H3IiI4EbbmDhMZEH8O2F+pxj+ikxEYiKE4XC8cNkTLJrGWo8IH2oHYAdzbIVRuh7/gLffQecPNl+2sgRXmbOBHQ6EWKOHRPHA+5rXoYNE6EFEJveUSvnkHPqlPh+OwqPFQUYPZrTVUR9hG8z1Gfa1tREJ1ow9zYzADGTMH4Ca2s8qbSuGeHBetjtgBYdTBuVl4vb8+aJKaKqKjFNcuyY+6XSoaEi1EREANHR4uPaa7teKk0dCw0FrrlG/LuuTiwjz8sT4ZA1OUR9guGGrlhHhcJJaTIvD+ApsgxtTTV09fXQVlVBV16KM2HjsPlwDCakN2Fm4z/EG6a7pdKOk5KQIOpCIiPFevyulkoD4njqO2Fhot6ovNx94TFrcoh6heGGrsjRo8DWrSwU7nN2OzR1tbCbQgCNBprmJgQdOQTTwX3QVJbDWFWKONuH0DY3Q7JYIMkyLiZdj6LzmWjeA0xJPwVjebn7pdKhoeLf+stTWNxN17dMpg4Lj6Vrr4U+OtrXLSTqd/j2Q1ekpt6GsxftDDW9pK2qgv78OejKS6GrqICushzaygpoa2ugaW5C/TXi2gqSxQJDwXcIPn4EdkkCEuOgq6yC3RQCOSYW9tAwDBwSjDAlGLWWEOxKuh0z51Rx2Kw/cVN4LGVnQ7nvPnHpiAEDeD6JuolvQ9Rtjumn4GBg0FBRKGxKlDE1S4Pho+0MNc5kGZq6Omhrq1umjXSVFdBVlKNp/ATIYWHQ1tUiKP8AQvbvgSTLgCxDclzmXAEUnQ760kuwDkyB3WSCefgoWJMHwBoSiu8GxEDfqEDb5s1u8ogybD0QjLxTsZg8shZBBrsPOk9XxCnk2AsLYQsOBj79FBg6VNToTJrEmhyiLvDtiLrUtqZGG2TFnYuaodWKjWBHjw/AN9A24cUWHw/FYISmqRFBR75BWO6/oDE3Q3KaNnKEF23pJcgJiVB0OkiyDNvlkRc5PAJyeDjsIaGwB5ugtN3nBYAcFQUZEG94TU3tmjUsuQa7TzahtikEu09FYebYCi99Q6jPhYYCo0aJGqnISODrr0Xx8ccfs/CYqAsMN9ShjgqFJ1wVAKueHIW3Wi0gyzCcK4Bp/x7oKsqhrayEtrbaJbw0jxoLW3QMJJsV2soKGArPQdHpIIeEtkwbOcKLLSYOiql1TxrzyNF91myNxmn05kQUJg+v4uiNGjiCTn09dzwm6gaGG3Lr9Gng88/VXSgsNTdDV1rSbtrIEV6arpoAW0QUtA310F0sQsi+3e2mjRzhRQ4Lgy0hEYpeD6SkoXnMeChGo09qJJxHbw6fC8O1w2q83gbygI42A3SEnB/9qPcX/yRSGZW8TVFfk9HPC4U7qHmxpKRBjomF1NwE46kTCP/yi3bTRgBEeNEb0Dx8JBSDAbb4BDROnNTltBEAQKeD4sNvlkYDzBxXAglaZAy1+awdqlVbC/zwh907dsIEYM2avv367kJOTo5YUn711dzxmAgMN4TW6SezGbg6QxQKW4NlZM3XIG2wnxYKX14qra2qhL6uDpqGBmitVhjOnUH4F1vaTRs5woslNQ2WtHRIigLJbIYCqd20UUfhRY7tP5cISIuvBwA0WowIMfrjCeznHn3U9fZ774kNER980PX+gQM91wbnkHPpEnD8OHDmjAg5JSXi0g6crqIAxd96AaxtTY3ZboUurhmOcpAhw/2jVkNTXQXTgb1ul0orzc2ozLwW4cUfQ9fUDG1NNYKPftNu2sgRXqyJSZBjYlteu3nUGB/2zPNqmqzQa8R+Nga94uPWqER4uAgVDooC/OlP4irgzvd7S2io+ADEaqovvxSjOf/6F2tyKGAx3ASgjgqFr8mUYTB4qRF2OzS1tW2mjSpbwos5fTCsqYOgqa6G/lIxwrb92+1SaVtoKOxaLezBJtjCI8VS6eQBnU8bBZD8M+E48O1ATB9dy5VTnlJSAjQ2AoMH+7olYsfjiRNFQTwLjymAMdwEmMJCYONGLxQKu6l5kaOiYYtPgKapCbpLxYja+L7bpdIAoCsvQ3NDA+wGI+zGIJgHD3U7bSRLEqqigzGgsgmOGCNHx/RhR/o3rUZBVb3ElVOedOaM+Jye7tt2OHRVeLx0KS+jQarHcBNg9ME2FF6SodXbryzUXA4v0Eiwh4RC09wEbUU5IrZ86naptCTLsCYkwjxkGACIJdMVFW6XSttDQmEPCYFiDGr5cg1x8X30HQgsfrXvzXvvAe+/3/3jP/20b7++ogALF4r9gZYsAe64o3vP27IFeO018e9nnhFFu84KCsRnb4eb+npRSLx/P3D2rJiS0ulaL3I6ZgwwfjywaJE45tgxEXCGDwfGjWPhMakaw42KOaafSkqArNmiULjBLGPurRISkpRuhRrJYoHx+FG3S6U15mZYEpJgGTJMBJiGBoR+lSOe6KbmxZqYDMug9JZfqOahI/jL1cP8at8b53MdEtJ6bStvfv2UFODUKeDcue49p75ehDIAmDKlfbABxMiNRuPdcPP118Crr4pA42AyiemokhLx4Rixee+91pGc6mrgyBGx10NKCnDxInDjjZyuItXxSrh55ZVX8D//8z8oLi7GmDFjsG7dOkyfPr3D47dt24YVK1bg6NGjSE5OxsqVK7Fs2TJvNFUV3NXUBCc2Iz5RFJQOSFHEyEu1+8sD2KJi0Dx6DLR1tdCUlSHq040dXh5AGyR+odpNJiiRUaj93nzYTabu1bww2HiF34zezJsnilxLS8UVyZ97DnDazNArBg0S4eb8+e4d/8EHYum3wQD85CfujykoAJKSvDfV869/AS++KEaixo0TI1CjRrV+LysrRYD56ivAYmn9f9a28HjLFjFPvWMHa3JIdTwebj744AM88sgjeOWVV3DdddfhT3/6E+bPn49jx44hNTW13fEFBQVYsGABli5dig0bNmDHjh1Yvnw54uLicOedd3q6uf2aLAP790vIywPKy22QaysRhkpMG1yGASUK7PoB0DQ1QlNbi5h3/tzh5QFsUTHQVVdC0elgNxhhjU+AEmzq1uUBrAP5y9Hf+M3oTVSU2PPlP/9TjHY89xzw6197dwRn0CDx+fx5Mcqh0XR8bFERsHmz+Pftt4tpnLZqa4GKCqCTP9b6VFUV8PrrItjMmQM89FD7Y6KjgRkzxIfZ7P51wsKAmTPd1+Qw5JAKeDzcvPDCC/jpT3+Kn/3sZwCAdevW4Z///CdeffVVrF27tt3xr732GlJTU7Fu3ToAwKhRo7Bv3z48//zzbsON2WyG2ek/cG1tLQDAarXCarV6oEf+qaiwGRdfOQub/VUMqq/EGLkSAyNqEW+qge60BbY9UWgccxUkm/ie6EqKAUWBHBJyeYfdcNjDwyGHh0MODYccGdXy2ubEJF91q0tym8+BoDd9Hpxcg7CTTahpDsHJ4mCMTq33RNO6lpwM6emnof3lLyEdOgT7Cy9AfvzxzkPGZVZFcfncG1JamvilZzbDWlIiRlw6oH3zTWhsNiixsbDdeacIFG1f77vvoAMgDxoE+xW0qyNt+6zZsQPay9cUsy5c6LZNLgyGDo+Rzp6FZs8eSEeOiOk3gwHKjh1Qvv4asNuh/fBDKCNHwnbokMvzdFddBen4ccgvvAC7u3AFQLt0KTRvvw37j34E+c9/bn1AliF99RWk7GxIO3dCunBBTKHp9cDQobDfeSfsDz8M6+U587a/wzUrV0K7bh3sCxZA3rQJ0vvvQ7N+PaRvvoFUWQn5mWdgf+KJ1icUFkLz2mvQfPmlGGFragJSUmCfOxf2lSuB5OTOv39e5uhvIL13eaqvHg03FosF+/fvxxPOP2wA5syZg507d7p9Tl5eHubMmeNy39y5c/HGG2/AarVC3+avvLVr12KNmx1Ac3JyYPL2kLcPybKEhOqz0NvMiItrQnR0M6DT4KIpBtaQEDTFxqJi3LCW47Wjh0A2GFQzNXQ8OtjXTfC6nvZ54KxK6PVlOBtpwVlfbnkzfDgS/t//w6S1a6HZsQNnIyNxeOnSbj89G+j6Tb0D+tRULLj87wPnzqHE3WgMgLj8fEzduxcAsG/JElzsICQMKSjAWAB70tNR6oFw4+Do87gLF+BYcP5FaGjvApWiYMz69Rj6ySctd1lNJugbGyEVFKChoQF1KSlIBHAhPh4HtmxpOU5rNmPByZOQAOxsbkal02POZm3bhggAR/V6nHE6JurECcxwej+Q9XrY9Xro6+uB/Hxo8/NR85e/4OtnnwX0emRnZ7u87tR//QtxAAo0GoRNnoz4/HzYNRrRfknCHqsVpZe/XvrmzRjz1lvQ2sQu3bagIGjsdmi++w7aV16B7d138fV//Rfq/XCUqm2/1ayxsdEjr+vRcFNeXg5ZlpGQkOByf0JCAkpKStw+p6SkxO3xNpsN5eXlSGrzl9aqVauwYsWKltu1tbVISUlBVlYWYmICZ0mw1WzGvw4XYrRch+D6WsihIbAOSIHBIOoAIgEkVba5inRDs9fb2ddkiDf5UZVN0Pq6MV7S6z5rmwA7EGs1wmTw8Xfr2mthX74cmv/9XwzevBlp0dGwf//7nT7FqijIBjAbgL63oTw8HEpMDKSKCmQUFsI+ZUr7Y2QZujffBADYx47F1dOn4+oOXk57eaVUxuDBHvlDoW2fNU5/sC348EPYFy5ET5c7av76V2g/+QSKwQD7PffAPncuEBYGa00NtG++iZDcXJguFyonx8QgsbERUlkZlJtugnTxIjR2OxSNBlOWLWut4XHW1ATdhQsAgFE/+AFGzpjR8pDU2Aj5/vuh3HorlPHjgfh4QJJgraqC5q23oHnqKUSfOoW5ZWX4IjkZs2fPdvmDVne57mlwbi6g08H26qtQFi6EFBICW0UFMoKCgJAQaF5+Gdr/+z8o0dGQH38c9h/+EEhMhGy3w75zJ7QPPgjj8ePI2rAB8ldf9ej750lWqxXZ2dnt+q1mFRWeqQH0SkGx1OY/vaIo7e7r6nh39wOA0WiE0U0hn16vD5gfDgf71SlouioTtvNFMB4/gqCiC1B0WtjiE6F4bXc+39Be/ggkve1zQ5MVsiUYIUEyjHof7nsze7Yofn33XWj/8hdoo6KA732v8+coCvSSJMKN2dy6Wigiovu1O2lpQEUFtIWF0Lr7PfTPf4pCW40GmqVLoekstBQUAJGR0EdHd+9rO+tu+537nJkJbNoEyDK0H34I7datQEaGWPI9diwQ18UlQg4dAv72N0CrFdODV1/d+jMUGQn8x38Ap09DKioCAGhHjoT2H/8AystFfc7lEgBp2DDoo6Lcfgns3w9cHi3RZWS49usHPxAfbcXHi1qsEyeA9euh37MHuO0219/j586JnxcAks0G7NgB3fjxra/hGIX7+mvgsceAAQMgffml6IPz18rKEt/DkSOh2b0bmosXxc+EHwmk9y9P9bPrie4rEBsbC61W226UprS0tN3ojENiYqLb43U6XUCNxPRWXGQILOmDUTdnAeq+Nw/WhCToLxZBf6EQksXi6+aRH9h+NAYvfJKKXSc7eHPyprvvbq17efttoCfz7/v2iRVMP/mJeFPsLkdRcWFh+8ecl37Pm9f18u6XXgLeeaf7X9tZb9o/bBjw+ONA7OVLiNTUiNVTf/gD8NOfAr/4BfDJJx0XEr/zjpheW7DA/bJ2rVZc7NNh7Fhg/nxg5EigrAzIyxP3h4Z2vOJs3z7xOT1dhLaecFzV3F37Dx5s/fdvfysCXVuKIq77ZbcDr7wi2u3OiBGtbXP3c0D9nkdHbgwGAyZOnIjs7GzcfvvtLfdnZ2fj1ltvdfuczMxMfPbZZy73bd26FRkZGQGTZK9EZLAelU0ybNDBkj4YlpRUGM4Xwnj8CAwBNJLjT6rqDbjm4e5tGDd9TDHeeWybR9sTFWJBk0Xx/b43APDhh0BxsZjSefhh76yccvyVXlQklhhqnf6u/+tfxWhKWBhw332eb0tvXHed2HPnm29EkDh8WLxBK4oY3XjjDSA7G/jv/3Zdan/ihFgGr9GI1V8diYwUn+PjxfcBaN0n55FHxO36euDJJ8X9P/6x65Tc/v3is7vw1NAAvPsu8NlnYhSpvFxcuqINZcCA9s91hJuICOCBB9y3fceO1nB1//3ioyM1NeJzANVmBhKPT0utWLECixYtQkZGBjIzM/H666+jsLCwZd+aVatWoaioCO9c/utn2bJleOmll7BixQosXboUeXl5eOONN/DXv/7V001VBY1GQnyYERerL9fT6Bhy/MELS/Ncbv9h0ziU1QbhucV7Xe4fnFgHT/ObfW8OH24dJbntNvHm6Q2OkRubTQQcx5YUFy4A//iH+PcPf9j6xu6PtFrgmmvEByDeqHfvBv7+d7H6qLBQ7NHz4x+3PudygTSGD28d+XHHETbaXisrKEgsRQfEiE5ZGXD0qAhS48aJvYs0mtZw4zwCBADbtwP33iu+5w4mk5hKc6yWu3QJAKCMcXNBW0e4ufFGdHgRPOc/jC+/VpeGDOnecdSveDzc3HPPPaioqMAzzzyD4uJijB07Flu2bEHa5b+eiouLUeg0LJieno4tW7bg0Ucfxcsvv4zk5GS8+OKL3OOmB6JMBpTWmWGTnVZSMOT4TFSoBbdntu6IqyjArzdMxIgBNS73e4tf7HtTVQU8/7yYPhg5EvjRj3r+Gtdd17tLNKSkiCJcm02EAEe4efNNcV96OjB3bs9ft6d62353IiLEvjcTJgA//7nox9Gjrsd895343NWbueNyEm3DTWFh67Sh4/ex1dq647FeL/b9OXZMPOY8cnP8uJjma2oS+++sWAFMmwY4lxqcPi2CFwDl6qvb7yLtCDedXXndsWz9d78DVq7svJ+kal4pKF6+fDmWL1/u9rH169e3u2/mzJk4cOCAh1ulXu1Gb5wx5PhcYVko6poMGJNW5bM2+HT0RpZFsKmqEqMjK1e6Tg15mk4HDBgg3jwdf1gdOOA6ndGNfXf8UlycGJUpKWlft1JdLT67W+HkUFvbGorahiBH6ImPd32NqCjxvE2bRECR5dbjHNasEcEmKwv48kv339+//U18Dg4Wgdc53FRUiJE1oHW0yh3HaE1w4G0NQa766f9g6kqUyQCdtpNVHpdDDguPve9oYSQAYHSK78KNY/TGbLUj70QUmi1e/FXw7rtiSkqSxF/wnU2ReIpjaurcOfFm/MYb4vaMGeKCk/2V2dw6ddR2/xbHnjiOkOPO3/8uLtkAtB+5KS4Wn91tfBgeLup4ysvFbb1eFFu/9JIoPN6+Xdx/773ug01dHeDY7O+qq9qHXceojcEgpsQ64njet992fAwFBF44U6U6Hb1xxpGcTikKMG75nWgw6/HEXfn4+fzurWr5y7+H4lcbMsS/H8vBtDGt8//HCsUqpdGp1X3e3s7UNuqxcccgbDuchBMXIlFVL7ZQCAmS8VFeImZfXY4bxpdh1rgKzw1c7NsHbNwo/n3nncDEiR76Ql1wFBUXFoo6m/PnRU3JkiW+aU9Xzp4VAaKrFaNvvdU6YjN7tutjycli9CU/v30hNSBqchzTZBER7b/W5eXdLYW4bX32mbgQJyCWZZeVtV7WwfEcR/hxZreLFWNnz4rbbWt1gNZwM2ZMx/U2gAg++/aJAP30050vja+o6Pr7Sf0WR25UrMvRG2ccyXFLkoBhA8Qv5lNF3VvWWtuox7qPxV+Xc6857xJsAOB4YSQ0kh0jB1b3aVs7s3lvCmY9cROe+etEbDuSjEvVJhj1MrQaBVX1Buw9HYXnPhyGO357rec2rS4rE0uWFQUYPdq3q5EcIzfFxWKFFAB8//u+GUXqBs3WraKW5g9/EG/e9U6Xz6irA3btEvvEOHYDvvHG9iEhM1N8vnRJXHjz8qVqUFsLvP8+sHZt63RO21EboHUk6OxZMcLTfPkPp3PnRLs2bmwtwp44EVi8uHUJuWOK6vnngW2XVwMqighU8+aJomRH2HI37eQIN51NSQHiewSI4HLddSJwNTS0Pn7unNhy4Prre7+En/oFjtyoWLdHb5xxJKedkQNrkH8mFqe7GW5e/HQMKuuDYNTb8NQ9+e0eP3Y+CoMS6hFs9M4VsTbuGIT/9+ZkKIqEzJGXcP+8E5g4rAxhweIv8dLqIBwrTMbHealosmg8F26+/LJ107pz51xX8rizapW42rUnOEZu7HbRpsTEzpdH+5hUUCCmi3JyxAcggoiitIYMQIxqLFwoglpb06aJEPHNN62vExIi3vwlSVxd/ORJUSDsLtxMmyZC0KVLIhi8844IJLIsXmflSuDVV8Wx6emiLicrC5g0SRQUP/usCB2zZol2arWiDic5Wayau/FG8dwrCTdTpogAtXKlqP+55RbRt6go0U/nOqSnn+78tahfY7hRObcrp7qDIafFiMsjLN8Wh3d5IekzJWF451/iGl73zzuBlLgGl8er6g0oqTLhpkneWSVVVmPErzdMhKJIuGfGd/jtkr3tjomPbMaAmLOYPqoO0aEeHKVzvg5SQ0PHxzk4pkE8IS5OvPk6RkB++lPvXp28h+Rf/QqaAwdEMPnuO6C0VCzZdrxxp6aKWpWsrI6nWjQa8Yb+wQeiBqayEjAaxfNuvllM+Th2D3a3ospoFKM7b78tAlBdnfg+TpokQoRe31rv4xyOQkLELsrPPScC0YkTrYEoK0vsx+MoBNbr29fUNDaK/XmArsMNIHYnnjFD1Pt8/bVYet7cLIrIBw4Uoza33OJ++otUg+FG5Xo1euOMIQcjU6oBAE0WHQrLQjEooeMraj/7wdWwylokRzfggQXH2z1+9NzlepvLr+lpW/alosEs3rQfvfVwh8dt3puEs5diMXdCVYcrp746Go3//Twd249Go7pBj+ToZtw5tRirf3AK7/x7IJa/Nh6jUupw7OVcl+eNeXAWjp0Pwx+XpuPhT+91+9o/+eNVeOtfqVhyQyHe+o9vXB6TZbGr8j8OxuHzY9H4j4pglFQZodcpGJbUgLuuu4hHbjmDYGP75eyPvTEaL3wyBDdmXMJnv9yDv24fgDeyU5BfEIHK+jo8+8PjePJu1+LTwrJgvLIlDVsPxuPMJROazBqkxDZj/sRSrPr+aSTHdLD7rycFB4uRk2nTrux1jEax7N7d0vuSktbQ6W7kBhDTdo891vHrd7a0fdQoEY7q68V01LFjIvD+9rfA5Mmi/skx9eW8U7XJ1LoCq7uuvVaEMApYDDcBoNejN84COOSMHNBaQHnqYkSH4earown49zdiZ9VVd+e7nXY6dj4SADA61Tsrpb4rbt2ILrKTUZm0+HqcvBDtdt8bRQH+31uj8fuPW/+aDzdZUXApBM9vGoq9pyMxLk1MN00Y7Fps2mjW4mRRCADgmiEdFKIC2P+dmPK7Or223WO7T0Xh+qenttw26sU1sWob9Th4JgIHz0Tgk92J2L52Bwx615/x/AKxnf+QpAbMWz0ZWw/GQ6uxI9xkgyQpmDDE9eu99PkgPPbmaFhsov4jJMgGBRK+KwnBS5vT8cHXydj23E6MSuk44PZbZ86Iz8HB7ldE9RXHdNW117aGHEfh8V13iVEkoivEcBMArnj0xlkAhpzIUAsSoxpRUmXCqQsRmDOhqN0xsl3Cf70vhrknjyjFTZPcX3fH2yulwoJb/wL+38/G4D9uOQK9rn3I7Wzfm9V/HY7ffzwEQQYZv154CvfPPYfoMCvKagx47M3R+EtOCg6eEeGkbbg5VBAG2a6BRqPg6nT34abJrMGx8yKEXT24fbgpqgjCsnlncfOUYpQNqsEPIi0waCRU1evxRnYKnnh7FHafisKG3IH4yWzX73t+gWjXm1+mQqex4/UHv8G9M4sQEiSjolbvEuL+9/NBePj1cYgOs+A/7ziJH11/AYlRZtjtwI7j0Vj2yngcOx+Gn7x4FfL+Z0en3/d+yRFu0tM9coXzdtqGnOPHxUdQkCg47+loDZEThpsA0SejN84CLOSMGFAtwk0HRcXv5gzBqaJIaDV2/Pre/R2+zvHzkYgNb0JcRO+CZrNFi/J6A8rtQTDLZpi6uKr33Gsu4PUvRsEma/Dy52Pw/rYhyBp/EZmjSjFlZCmSo8VW+x3tWpxzKAa/+WA4dFo7Pnt6D753detS3rgIC958+BvsPhWFU0ViU7cJbcLJgcuhZ1hSA0KD3b9ZfVMQDpssCpncBaC7phXjrmnFsCoKtigKpMtvvFGhVjx++xkcLQzD+n+lYsfxaJdwc640GJV14ufQJkvY8dudGJ/eenmLmPDW4Pf1sWg88uexGBDThC9/swsjB7aOzGg0wPQxlfho1V6MXH49dp2MxrnSYKTFN3X6ve93HJv0eftyBI6QM3WqKJo+cgT49lskFRZCunBBFHq33bOHqAsMNwGiT0dvnAVIyBmZUoNtR5Jx6mL7cFPbqMe6T8YBAO6d9S1GpXQ8/fLP33xxRe3496EkPPiKqLvYsPLfuG5kaafHj0+vwh9/vhPPvj8BFytDUFEXhL/vGIy/7xA1FSMGVuOuaWdw36zv3I7ePPHOKCiKhAcXFLgEGwedVsHcCaVO4ca1744RnWuGVHfYxn3fRgIA0hMaEBHS8yLicJN4jtnqWunt+NoA8NsfHXcJNs4UBXj0z2Ngt0t4Zdlhl2DjbMTABkSEWFHToEdhmQrDjWPkpqN6G08zGsVHWBhQVoawwkJIhw+LUZ3Jk4Fbb2XIoW5juAkgfT5640zlIcexYqqgJAw2WYJO2/o9XPfxWFTVGxEVasaK2474qIUdW5BxAXMmFGHH8QTkfJOMXSficepiBBRFwskLkfiv96/B374ajI1PfukyeqMoCvacioJWY8fjt3/X4esnRooC27T4RkSHWV0eO/CdI9z0rt4GABqatXg3dwA+2ZuAvWfD0VBrQKO5/a+ugbGuYePgGVFvExFixQPzz3b49Xccj24JWPe/PB73v9zhoahpEMXZJi8t4/eqt97ydQtaxcai4MYbMWz/fteaHIYc6iaGmwDisdEbZyoNOY4N9yw2LQpKwjBsgHgj/q44DBtyhgIAHrv9UKdFu76k0yqYObYEM8eWAAAqao3Izh+A17aMwrnSMJwqisSLn43BE9//BrtPNkGv0+PjXYkAgEnDqzEwtuOfmZpG8YbfdtTGapNwtFDU0lwzuJNwczlYtH0+AGw/Eo17f38NiiparxVkMtoQF2GGRhIB81J1EABgbKrryIxj5ObGjEvtCo2dfbYnoeXfjtfqypDEbixlpytiDQ2FMmuW+8LjJUvEkm5v1AZRv8RwE2A8OnrjTGUhZ2hSLfRaGVZZi1MXI1rCzbMfTIBV1mJ0ahV+MLPj0Y2+siDjAr59830ciQ7G2MreT4vEhJuxcMYZzBhbgln/eSOsshZ7T8VBowFuyzyH6FAZS1+cBQCY2MmoCyBqZoD24eRoYRjMVrHqqO2qJIe6Ri2OnRdTWm2LiY+fD8W81VPQZNFixpgKPHzrd2gcWY6FETboL7+pnb4YguHLrr/8NdxPiWWN6/yioIfOivb/bvExrLzT8+eQeqht4fHp0+LaZLIMjBsHREeL6SwiJww3AcYrozfOVBJy9DoFgxPrcLIoEqeKInDjteex7Ugicg4lAwB+fe+Bfnkh6eToRiRFN6GwLBRNl6d6wk1W2OxAcZU4N1Gh1g6fX1Grx7ajYtO4tlNPjtAzKL6xw9f4dE8iZLv7YuI17w9Hk0WLrHHl+PI3eZAlUVAMtP61/revxfc/2CBj5IDWWpmKWj0ulAe7bVdbl6rFG6O3doymXnKEnGnTxKZ8R46Izf2+/RYYOpTTVeSC4SYAeW30xpkKQs7IlOqWcGOTJTx7een3LZPPYdLwMh+3rneazFqU1YipmKHJriMn1ss/HxcrO/6reO3fh6HZcnl0ps3Iy+lisb/N0CT3Uzh2O/DaF+IyCDFhFqTEuQbu7ZdD070zi6DRAG1/XOsatfjz1lQAwFXpNS7XgXSM2hh0Msamuh81ctBqxAt/e7m95Of0evERFiYueHrihAg5rMkhJ/3wb026Uo7RG5/oxxfoHOF0Ac13c4fi9MUImIxWPHFXvm8b5sbx8xG4VNV1/chzf7saTRbxN849M1ynZHRascx8y74E2OT2tQ2f743Huk/TAQBxEWYMiHENJ1ab+PVSWuM+uK7+6wh8fUwEmKvd1Ns0mkVaKa9t/3y7HfjJi1fjbKkJQPtg5Qg3Y1LrO623AYCxaeK57+YORFkHbXWoqPXfSzQEpJQU1wt0btkCPPmkuPTCefd7TVFgYLgJUD26Yrgn9MOQ47gMw7nS0Jarfi+/8TiSov1vSfAH24dg5hM34bE/T0bOoSTUNra+KVfXG7D14ADc9dwN2JAjroP1oxtOYXqbq5cvyBBvDsVVQViy7uqWkFFRq8cz7w/DHWuvbbn4prti4FEposD30NkI/PbvQ9HQLMLKkXNhWPyHq/HbjUMREybOtbuVUo4i5Bc+GYyvjkYDEMu2952OxLzVU5D9TRy0GhHA2k49OVZKdbYE3eHnc8V1virqDLjuP6/DZ3sSWtoKiP1y3v7XQFz/VCbeyeGIgN9xTFe5Czl797pe04wCBqelApTXa2860o+mq0YMFG+gsl2D6gYj0uLr8LO5J3zcKveOnY+E2arDRzvT8dFOMboSGmSFXQEaza1BJ8hgw8M3H8UDN7a/DtZPZ5/A374ajDMl4Xh320C8u21gyz4vkqTgP+/4Fnkno7DtSKzb1VB3TyvGM+8PR8GlEKx6ZxRWvTMKOq0dNlmDiBArPly5D8teHQ/A/eZ9v7nvBLKenoqyGiNmrLoOJqMNMgCzWYfk6Ca899gB3PjMZADuwk3XS9AdpoysxvM/PoqVb4/G6YuhuOW/JkGSFESFWtHQrG0pigaAp+8+1eXrkY+0LTw+f15MVVVVicLj8HBxsU4KCAw3AcwntTcd6QchJzm6EREhZtQ0iCm9p+45CGMXOwT7yluPbEfOoSTsPJ6Ao+eicKE8BHVNekgSEBfRhOHJNbhu9CXcMbUACVHuA65OB/xhaR6e/eAanL4YgfpmHUxGGbOvKsPDNxdg+phKRP5gHoD2K5UAsRfM9rU78cTbo5B7JAaVdQakxjXh5kklePSWMzDoFZRcnjpzd9mF60ZXIffZnfjVeyOQdyIKGgmIT2zAjzKLseKWAuz/VgQYvc7uUlfTaNbi1EWxAquzJejOHrv9DGaMrcBLn6fj6+PRKKoIQrNFgwExzRgY04zrx5fjlkklHa76Ij/iCDmyLK4ofuSIuKzDkSPiCuisyQkIkqKoa8yutrYWERERKC8vR0xMjK+b4zVWqxVbtmzBggULoNd3vy6got7s+9Ebd2y2boUcGWhZFq11/0qq480+2+3AhpyhaLaEtLtieEFJMAbf/z0AwKnX/o1hyZ7d+8Vx+YUFktSyFFztArHPwBX2W1Fa979pbhbLxo8cASorxRXG4+KABx8EJk3q+4Zfod7+Hu/PKioqEBsbi5qaGoSHh/fZ63LkJsD51eiNs34wkhMIOrrmFNA69RMWbO1wRRRRn1MUoKEBqK8H6uqA6mqgpgaorRW3IyLEhTcBkc737RPDkFFR4qKcQUGswwkADDcBzm9qbzrSRcgBQ47HOa45lRClwGzVtAs3V6fXcqNY6juXp5NM9fUiwFRXi6XfycmA2SymmrZuFcdKEqDVivCi1YrgkpAA3HCDGKUxmcRVzqOigPh48TkqirU3AYDhhvx39MZZByFHMuiB6GG+bp2qaTTAwplnEBoERIS0XgYh37EzcTeKdolayDLQ1CRGVUJCxJXAm5qA3Fwx8lJfD42iICUqCpqqKhFaEhOBQYNEQImMBC5dAoKDgdhY8ZGQ0HF4+f73fdRR8iWGG/L/0RtnbUKO7oS4UKX+4gUosfGcrvIQg84Oiw1oMNsQYhS/NhwjN+6WgRNBUcTuwW2njerrRbCJiRErmxxXA29uFiM0SUlAcDAsNhuUKVNEaElLA6ZOba2lmTaN15WiTjHcEIB+Mnrj7HLIaU5OBo7sgjU+AcEXWJPjaecrgLPFcZg1rgIX3vrS180hX3CMvLiredHrgVGjRHgBxGiMLLtOGyUliemitDTg7rvFCIzJBMyaJR6PjITdYEDBP/6BUQsWiNdsi8GGusBwQwD62eiNM534Ea6/fg5sFy+y8NiDFAX4aOdA1DeFIthod1k5RSrSNrzYbCKQWCyi5uWf/xSPA+1rXuLigIwMcWkEk0mMumi1rtNGkZFi2qhtQBk6tPXf1o6vZ0bUHQw31KLfjd444+oqj5MkYOLQcmw9YGq3cor6EVkWQSU4uPXfe/YAFRWu00aAOOnh4cDcuWLqKD4eGDFCrFaKiWlf8xIdDQwY0Pq1hg/3TR8p4DHcUIt+O3rjjCHHoxwrp2qbQrD7VBRHb/xZWZmYMnJX8xIUBEyfLsKL0QiUlorHnKeNHOElIQG45RbxmCQBs2eL53BqiPwYww256NejN84Ycjyis31vyEs6qnmxWoGxY8XUkd0O7NolAk3bpdJJSWIX35tuEtNDwcHAddeJxzubNnII6vqCrES+xnBDLlQxeuOMIafPcfTGw5zDS1OTKLytqRHTR19/DRQXu04bOcKLXg/MmycCSliYCCkNDe2XSrsLLwG0mzsFBoYbakc1ozfOGHL6DEdvrpDdLr6JgAgyJ06IwNJ2qTQAjU4H3H+/CDYGgwgogOu0kXN4GT1ahB0AuPpq7/eNyE8w3FA7qhu9ccaQ0yeGJdfgwHcNGJNi8XVT/FNjY2tYaVvz0tQkLuwoSeLj9GlRH9N2qXRMDJToaGhsNrFkOjS0dZqps2kjImK4IfdUOXrjjCHnimg0wMIZZ2DUaxBkCO76CWrirualtlbUuziWSx84IHbRdXd5gLAwsSFdbKwIMYWF4vXcTBspVivsW7a0FvNGRPi690T9AsMNuaXq0RtnDDm9JkmAxWZ32bVYFZzDS2ysKNQ1m4FvvgHOnm2/VNoRXsaMAVJSRDgxmYCiIveXB2hb8zJwoI86SqReKvqNRH1N9aM3zhhyeu3oeT3OXEzCbVNK+l/tTVERcPGi+8sDAGL6KDy8demz4/IA7mpepkxpvabR9Om+6xMRMdxQxwJm9MYZQ06PKArwxf5ENFtMSIr2k5VTnV0eoK5O7KDr2NL/5EngwgX3lweIiQFuvFFsSmcyiZVHzc1dL5UmIp9juKFOBdTojTOGnG6RJB+snJJlETKcw0tamnjMbAby88X0kaOBbWtehg0DhgwRgWXiRDFy053LAwQHWG0RUT/GcEOdCsjRG2cMOV3q831vHCMvjjBhsQCnT0P67jsMliRoiora17yEhQGJia3XMtLr3S+VjooSnx3njZcHIFIlhhvqUsCO3jhjyOlQr/e9qa0VK4rcXR7Abhc1LJGRot6lvh5SVRX0RqP7mpdp00QxrySJcKTRcNqIKIAx3FCXAn70xhlDjlsuozcnwjFz8AX3NS8jRoiwYrcD586Jmhd3lwcwmURgGT1ajOA0NcFeVoZzBw5gyB13QBsZ2XF4cWxiR0QBi+GGuoWjN20Ecsix26FpaoSmsRGahnrYIqKg0WowNeEkjnxlgSb/a9hSi6DT2NvXvISFAePHi88VFcDRo927PAAAJCSgubBQbGbHURki6gTDDXULR286oMaQ46hn0WgAux26kmIYz5yGtq4Omvp6aBrrIdkvh1xJQuNV18CakoJhAyVcTA9DWoMWmpQhQJybmpe0NLG02uGGG7zfPyJSPYYb6jaO3nSin4UcyWKBtqYamoZ6aGpqoK2rcQkvzSPHwhYXD0gStNVVMBaeg6LVQTEaYUtIgj0oCHJUNGzRMWjMmAzzsJFQgoJwza1WWDALmvREjq4Qkc8w3FC3cfSmG/wh5LSZNnKEF2t8IpTQMEgWM3SllxB89LDY4l+rBbRal/BiHjECjRMnwx4cDMliRUPhWdji4iBHRMIeHgG7yf0+L4rBgCYYUNNkQ3iwnvmGiHyC4YZ6hKM33eTJkGO3Q19fD11ZBaTgYCg6vQgsJcUwfXOw3bSRI7zYwyLQNHwk5IhISOZmEWSiYyBHx8AWE9dpeLGmDepJ85Czw4JLZ/RYvFjUCBMReRPDDfUIR2966ApDjqa+DobvvnWZNpKaGmBNiEVkcRksQ4bBMngoFKMBSnAIoNe3mzZyhBfz0OGwJSW3vHbD9CyPdXvvbg3kJhm7d2sxc6bHvgwRkVsMN9RjHL3phU5CjramGtqqypbwYk1KhjVZXExRU18H06GDrtNGYQlQtEDj1deg+ZoMNF0zCfagYChaLWrn39jptJE3aDTAxCk25HyhQV6eFpMnc/SGiLyL4YZ6jKM3V8BNyDF9cwDamprW8JKUjIZpM2APNkHRaGAZMtRl2sgWEoIzpw5i0ITp0Ghd/wvbkgb4qGOtKsolnDmthawoqG+wo6BAg1GjfN0qIgokDDfUKxy9uUJOIUeOioFks7aEFzkyCkqwqeXQmkGDXZ5ql21+uxJpR64Oh/O1CNbrEBuqxbixEoYM8XWriCjQMNxQr3D0po/odGjMvM7XregTGg0wOEWHi6cNGDtGwsyZYnsbIiJv03jyxauqqrBo0SJEREQgIiICixYtQnV1dafPWbJkCSRJcvmYMmWKJ5tJvRRlMkCn9c8RBPK8inIJWz/X4dRxDeLDjRiZGI4bphnx4HIJd9/NYENEvuPRkZt7770XFy5cwBdffAEAuP/++7Fo0SJ89tlnnT5v3rx5eOutt1puG/xsAzQSOHoTmCrKJezfpcWZb8X0k86iRfz3pJaZMoYaIvI1j4Wb48eP44svvsCuXbswefJkAMD//d//ITMzEydPnsSIESM6fK7RaERiYqKnmkZ9iLU3gaNtqIkJ0bZMP/lpCRARBSiPhZu8vDxERES0BBsAmDJlCiIiIrBz585Ow01ubi7i4+MRGRmJmTNn4tlnn0V8fLzbY81mM8xmc8vt2tpaAIDVaoXVau2j3vg/R1990efoYC1KanwzemOXbS6fA4Ev+rx/tw77dukQpNchKkiL0aMVzJhhaxml8caPnS9/xn0lEPsMsN+B1G9P9dVj4aakpMRtIImPj0dJSUmHz5s/fz7uuusupKWloaCgAL/85S9x/fXXY//+/TAaje2OX7t2LdasWdPu/pycHJhMpnb3q112dravm+AThYd3+boJXufpPitK64iMrToYlRdTkZJSh2HDKhASYsb+/R798h0KxJ/xQOwzwH4HgsbGRo+8bo/DzerVq92GCWd79+4FAEjurj2jKG7vd7jnnnta/j127FhkZGQgLS0Nmzdvxh133NHu+FWrVmHFihUtt2tra5GSkoKsrCzExMR02R+1sFqtyM7OxuzZs6HX673+9SsbLD4ZvbHLNhQe3oXUcVPa7fmiVp7uc2W5hH279YiMsmPBXC1iQgzQaiTceisQHd3nX67bfP0z7guB2GeA/Q6kfldUVHjkdXv8m/Ghhx7CwoULOz1m0KBBOHToEC5dutTusbKyMiT0oOIwKSkJaWlpOH36tNvHjUaj2xEdvV4fMD8cznzV77hwHSqbZJ/V3mi0uoAJNw593ee2NTWWai3iQiU46vn9pVA4EP9vB2KfAfY7EHiqnz3+zRgbG4vY2Nguj8vMzERNTQ327NmDSZMmAQB2796NmpoaTJ06tdtfr6KiAufPn0dSUlJPm0pexJVT/VdnhcJcqEhE/ZHH9rkZNWoU5s2bh6VLl2LXrl3YtWsXli5diptuusmlmHjkyJHYtGkTAKC+vh6PP/448vLycPbsWeTm5uLmm29GbGwsbr/9dk81lfoI973pf44d1uDDDQYUnzMiJsSISRN03KeGiPo9j47jv/vuu3j44YcxZ84cAMAtt9yCl156yeWYkydPoqamBgCg1Wpx+PBhvPPOO6iurkZSUhKysrLwwQcfICwszJNNpT7A0Zv+wW4XuwlrNMA1Y/U4uc+IkSO4ozARqYdHw010dDQ2bNjQ6TGK0lqjERwcjH/+85+ebBJ5GPe98V+O6SdFkbDoPg1iQ43QaiSseBQIDfV164iI+k5gVWCSx3H0xv+0rakJMWphtEvQXp6UZrAhIrVhuKE+x9Eb/9BZoXBkpK9bR0TkOQw31Oc4euN7Z89o8MWn+nahhjU1RBQIGG7IIzh6431WK6DXi0LhCWP0OLHHiLRUhhoiCjwMN+QRHL3xHsf0U3WlBsuXS4gPF4XCv3gICArydeuIiLyP4YY8hqM3nlVZLuHAXl1LTY3JoIW1VoI2UjzOYENEgYrhhjyGozeeUVkuYceOZNTbgmAyGlhTQ0TUBsMNeRRHb/pWeamED98NQuXFMAwdasT48VqGGiKiNhhuyKM4enPlmpuAoGBRKDxqiAHjhulwRluHZcvsGDhQ6+vmERH5HY9dW4rIgdec6p2KcglbP9fhr+sNCDcYMTIxHIkRQViyRMG0aRc5WkNE1AGO3JDHcfSmZ9puvhdq0KK+TII2Xjyu4/9aIqJO8dckeQVrb7rW2Y7CHKUhIuo+hhvyCo7edK6xEdj4rgFGHUMNEdGVYrghr+Hojav6OiA0TBQKD0o0IivTCJuNoYaI6Eox3JDXcPRGcEw/FXynxQMPACMHiR2Fb7tNBB0iIroyDDfkVYE8etO2pibapEVdqQTtYPE4gw0RUd9guCGvCsTRGxYKExF5F8MNeV0gjd7YbMBnG/WQbHqGGiIiL2G4Ia9T++hNVaWEyCgFWi2QHG3ELbONuFTCUENE5C0MN+QTahy9cZ5+uvcHEqZMMECrkRA/HZC4QTMRkdcw3JBPqGn0xl1NjblGgvZygTCDDRGRdzHckM/099EbFgoTEfknhhvymf48eqMoQM4/9WioZqEwEZG/Ybghn+pPozcV5RLCwxUYg4DYUCPuvtmIo0cYaoiI/A3DDflUfxi9cZ5+mjdHwoLviULhhNHAmNG+bh0REbXFcEM+56+jN+5qaiRLa6EwERH5J4Yb8jl/G71hoTARUf/GcEN+wZ9Gbw7s1qL4nJGhhoion2K4Ib/gy9GbinIJBoOCiEhRKPyDW434ajtDDRFRf8VwQ37D26M3ztNPkyZq8MN79NBqJCAcuPturzSBiIg8gOGG/Ia3Rm/c1dSE6CVouJMwEZEqMNyQX/Hk6A0LhYmIAgPDDfkVT47eFJzWsFCYiCgAMNyQ3+mr0ZuKcgl2GUhIUhAbasRdC4yI0Eq47jqGGiIiNWO4Ib9zpaM3ztNPQwdp8YsHdNBpRUHNHXf0ZUuJiMgfMdyQX+rN6I27mpoB8WL0BlrPtZWIiPwLww35pZ6M3tTUGLB1swFnz+hZKExERAw35L+6O3pTVWVE8UUjYkL0DDVERMRwQ/6ro9GbinIJDXUSBg2xI9pkRGpqHQYP1mDSJImhhoiIGG7IvzmP3jjX1MRFafG9yTpoJBs0GmDePAV6va9bS0RE/oDhhvyaRiMhRGPEh5/YXAqFRw+TYLUARqOvW0hERP6G4Yb8XmKUAQ1VGsSE6NrV1Fitvm0bERH5H4Yb8nsGg4R779IjLIyFwkRE1DWGG+oXhg71dQuIiKi/0Pi6AURERER9ieGGiIiIVIXhhoiIiFSF4YaIiIhUheGGiIiIVIXhhoiIiFSF4YaIiIhUxaPh5tlnn8XUqVNhMpkQGRnZrecoioLVq1cjOTkZwcHBmDVrFo4ePerJZhIREZGKeDTcWCwW3HXXXXjggQe6/Zz//u//xgsvvICXXnoJe/fuRWJiImbPno26ujoPtpSIiIjUwqPhZs2aNXj00Ucxbty4bh2vKArWrVuHp556CnfccQfGjh2Lt99+G42NjXjvvfc82VQiIiJSCb+6/EJBQQFKSkowZ86clvuMRiNmzpyJnTt34uc//3m755jNZpjN5pbbtbW1AACr1QprAF1V0dHXQOozEJj9DsQ+A4HZ70DsM8B+B1K/PdVXvwo3JSUlAICENldHTEhIwLlz59w+Z+3atVizZk27+3NycmAymfq+kX4uOzvb103wiUDsdyD2GQjMfgdinwH2OxA0NjZ65HV7HG5Wr17tNkw427t3LzIyMnrdKEmSXG4ritLuPodVq1ZhxYoVLbdra2uRkpKCrKwsxMTE9LoN/Y3VakV2djZmz54NvV7v6+Z4TSD2OxD7DARmvwOxzwD7HUj9rqio8Mjr9jjcPPTQQ1i4cGGnxwwaNKhXjUlMTAQgRnCSkpJa7i8tLW03muNgNBphNBrb3a/X6wPmh8MZ+x04ArHPQGD2OxD7DLDfgcBT/exxuImNjUVsbKwn2oL09HQkJiYiOzsbEyZMACBWXG3btg2/+93vPPI1iYiISF08ulqqsLAQ+fn5KCwshCzLyM/PR35+Purr61uOGTlyJDZt2gRATEc98sgjeO6557Bp0yYcOXIES5Ysgclkwr333uvJphIREZFKeLSg+Fe/+hXefvvtltuO0ZicnBzMmjULAHDy5EnU1NS0HLNy5Uo0NTVh+fLlqKqqwuTJk7F161aEhYV5sqlERESkEh4NN+vXr8f69es7PUZRFJfbkiRh9erVWL16tecaRkRERKrFa0sRERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqeDTcPPvss5g6dSpMJhMiIyO79ZwlS5ZAkiSXjylTpniymURERKQiHg03FosFd911Fx544IEePW/evHkoLi5u+diyZYuHWkhERERqo/Pki69ZswYAsH79+h49z2g0IjExsVvHms1mmM3mlts1NTUAgMrKyh59zf7OarWisbERFRUV0Ov1vm6O1wRivwOxz0Bg9jsQ+wyw34HUb8d7taIoffq6Hg03vZWbm4v4+HhERkZi5syZePbZZxEfH+/22LVr17aEKGfDhw/3dDOJiIioD1RUVCAiIqLPXk9S+jouubF+/Xo88sgjqK6u7vLYDz74AKGhoUhLS0NBQQF++ctfwmazYf/+/TAaje2ObztyU11djbS0NBQWFvbpN8rf1dbWIiUlBefPn0d4eLivm+M1gdjvQOwzEJj9DsQ+A+x3IPW7pqYGqampqKqq6nZtbnf0eORm9erVbkdKnO3duxcZGRm9atA999zT8u+xY8ciIyMDaWlp2Lx5M+644452xxuNRrehJyIiImB+OJyFh4ez3wEiEPsMBGa/A7HPAPsdSDSavi0B7nG4eeihh7Bw4cJOjxk0aFBv29NOUlIS0tLScPr06T57TSIiIlKvHoeb2NhYxMbGeqItblVUVOD8+fNISkry2tckIiKi/sujS8ELCwuRn5+PwsJCyLKM/Px85Ofno76+vuWYkSNHYtOmTQCA+vp6PP7448jLy8PZs2eRm5uLm2++GbGxsbj99tu79TWNRiN+/etfu52qUjP2O3D6HYh9BgKz34HYZ4D9DqR+e6rPHi0oXrJkCd5+++129+fk5GDWrFmiAZKEt956C0uWLEFTUxNuu+02HDx4ENXV1UhKSkJWVhZ+85vfICUlxVPNJCIiIhXxymopIiIiIm/htaWIiIhIVRhuiIiISFUYboiIiEhVGG6IiIhIVVQRbqqqqrBo0SJEREQgIiICixYt6vJSD0uWLIEkSS4fU6ZM8U6De+mVV15Beno6goKCMHHiRHz11VedHr9t2zZMnDgRQUFBGDx4MF577TUvtbTv9KTPubm57c6pJEk4ceKEF1t85bZv346bb74ZycnJkCQJH3/8cZfP6e/nuqd9VsO5Xrt2La699lqEhYUhPj4et912G06ePNnl8/r7ue5Nv9Vwvl999VWMHz++ZffhzMxM/OMf/+j0Of39XPe0z315nlURbu69917k5+fjiy++wBdffIH8/HwsWrSoy+fNmzcPxcXFLR9btmzxQmt754MPPsAjjzyCp556CgcPHsT06dMxf/58FBYWuj2+oKAACxYswPTp03Hw4EE8+eSTePjhh7Fx40Yvt7z3etpnh5MnT7qc12HDhnmpxX2joaEBV111FV566aVuHa+Gc93TPjv053O9bds2PPjgg9i1axeys7Nhs9kwZ84cNDQ0dPgcNZzr3vTboT+f74EDB+K3v/0t9u3bh3379uH666/HrbfeiqNHj7o9Xg3nuqd9duiT86z0c8eOHVMAKLt27Wq5Ly8vTwGgnDhxosPnLV68WLn11lu90MK+MWnSJGXZsmUu940cOVJ54okn3B6/cuVKZeTIkS73/fznP1emTJnisTb2tZ72OScnRwGgVFVVeaF13gFA2bRpU6fHqOFcO+tOn9V4rktLSxUAyrZt2zo8Rm3nWlG61281nm9FUZSoqCjlz3/+s9vH1HiuFaXzPvflee73Izd5eXmIiIjA5MmTW+6bMmUKIiIisHPnzk6fm5ubi/j4eAwfPhxLly5FaWmpp5vbKxaLBfv378ecOXNc7p8zZ06HfczLy2t3/Ny5c7Fv3z5YrVaPtbWv9KbPDhMmTEBSUhJuuOEG5OTkeLKZfqG/n+sroaZzXVNTAwCIjo7u8Bg1nuvu9NtBLedblmW8//77aGhoQGZmpttj1Hauu9Nnh744z/0+3JSUlCA+Pr7d/fHx8SgpKenwefPnz8e7776Lf//73/j973+PvXv34vrrr4fZbPZkc3ulvLwcsiwjISHB5f6EhIQO+1hSUuL2eJvNhvLyco+1ta/0ps9JSUl4/fXXsXHjRnz00UcYMWIEbrjhBmzfvt0bTfaZ/n6ue0Nt51pRFKxYsQLTpk3D2LFjOzxObee6u/1Wy/k+fPgwQkNDYTQasWzZMmzatAmjR492e6xaznVP+tyX57nHF870ltWrV2PNmjWdHrN3714A4hIObSmK4vZ+h3vuuafl32PHjkVGRgbS0tKwefNm3HHHHb1stWe17U9XfXR3vLv7/VlP+jxixAiMGDGi5XZmZibOnz+P559/HjNmzPBoO31NDee6J9R2rh966CEcOnQIX3/9dZfHqulcd7ffajnfI0aMQH5+Pqqrq7Fx40YsXrwY27Zt6/DNXg3nuid97svz7Lfh5qGHHsLChQs7PWbQoEE4dOgQLl261O6xsrKydqm3M0lJSUhLS8Pp06d73FZPi42NhVarbTdiUVpa2mEfExMT3R6v0+kQExPjsbb2ld702Z0pU6Zgw4YNfd08v9Lfz3Vf6a/n+he/+AU+/fRTbN++HQMHDuz0WDWd6570253+eL4NBgOGDh0KAMjIyMDevXvxxz/+EX/605/aHauWc92TPrvT2/Pst+EmNjYWsbGxXR6XmZmJmpoa7NmzB5MmTQIA7N69GzU1NZg6dWq3v15FRQXOnz+PpKSkXrfZUwwGAyZOnIjs7GyXq6NnZ2fj1ltvdfuczMxMfPbZZy73bd26FRkZGdDr9R5tb1/oTZ/dOXjwoF+e077U3891X+lv51pRFPziF7/Apk2bkJubi/T09C6fo4Zz3Zt+u9Pfzrc7iqJ0WAqhhnPtTmd9dqfX5/mKS5L9wLx585Tx48creXl5Sl5enjJu3DjlpptucjlmxIgRykcffaQoiqLU1dUpjz32mLJz506loKBAycnJUTIzM5UBAwYotbW1vuhCl95//31Fr9crb7zxhnLs2DHlkUceUUJCQpSzZ88qiqIoTzzxhLJo0aKW48+cOaOYTCbl0UcfVY4dO6a88cYbil6vV/7+97/7qgs91tM+/+EPf1A2bdqknDp1Sjly5IjyxBNPKACUjRs3+qoLvVJXV6ccPHhQOXjwoAJAeeGFF5SDBw8q586dUxRFnee6p31Ww7l+4IEHlIiICCU3N1cpLi5u+WhsbGw5Ro3nujf9VsP5XrVqlbJ9+3aloKBAOXTokPLkk08qGo1G2bp1q6Io6jzXPe1zX55nVYSbiooK5b777lPCwsKUsLAw5b777mu3lAyA8tZbbymKoiiNjY3KnDlzlLi4OEWv1yupqanK4sWLlcLCQu83vgdefvllJS0tTTEYDMo111zjsnRy8eLFysyZM12Oz83NVSZMmKAYDAZl0KBByquvvurlFl+5nvT5d7/7nTJkyBAlKChIiYqKUqZNm6Zs3rzZB62+Mo7lkG0/Fi9erCiKOs91T/ushnPtrr/Ov6cURZ3nujf9VsP5/slPftLyuywuLk654YYbWt7kFUWd57qnfe7L8ywpyuUKJSIiIiIV6PdLwYmIiIicMdwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqjDcEBERkaow3BAREZGqMNwQERGRqvx/5Uy5j29yVmgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_transformation(V_T @ Square, S @ V_T @ Square,\n", " r\"$V^T \\cdot Square$\",\n", " r\"$\\Sigma \\cdot V^T \\cdot Square$\",\n", " axis=[-0.5, 3.5 , -1.5, 1.5])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we apply the second rotation $U$:" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [ { "data": { "image/png": "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bZ4qKhEREamIRxfxe/fddzF48GCkpqYiNTUVQ4YMwTvvvFPnmKysLJSUlAAAtFotjhw5gltuuQV9+/bF/Pnz0bdvX6SnpyMkJMSTRSUiIiKV8Ogifp06dcL69esbPcZ5slZAQAC+/PJLTxaJiIiIVM6jLTdERERE3sZwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESqwnBDREREqsJwQ0RERKrCcENERESq4tFw88wzz2Ds2LEIDAxEeHh4kx4jhMCKFSsQHx+PgIAATJ48GceOHfNkMYmIiEhFPBpuTCYT7rjjDjz44INNfsyf//xnvPDCC1izZg3279+P2NhYTJs2DWVlZR4sKREREamFR8PNypUrsWTJEgwePLhJxwshsHr1ajz55JOYM2cOBg0ahLfeeguVlZV47733PFlUIiIiUgldWxfAWXZ2NvLy8pCamlp7m8FgwKRJk7B792488MADDR5jNBphNBprr5eWlgIAzGYzzGaz5wvdTtjr6kt1Bnyz3r5YZ8A36+2LdQZYb1+qt6fq2q7CTV5eHgAgJiamzu0xMTE4e/asy8esWrUKK1eubHD7tm3bEBgY2PqFbOfS0tLaughtwhfr7Yt1Bnyz3r5YZ4D19gWVlZUeed5mh5sVK1a4DBPO9u/fj+Tk5BYXSlGUOteFEA1us1u+fDmWLl1ae720tBTdunVDSkoKIiMjW1yGjsZsNiMtLQ3Tpk2DXq9v6+J4jS/W2xfrDPhmvX2xzgDr7Uv1Liws9MjzNjvcLF68GHfddVejx3Tv3r1FhYmNjQUg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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_transformation(S @ V_T @ Square, U @ S @ V_T @ Square,\n", " r\"$\\Sigma \\cdot V^T \\cdot Square$\",\n", " r\"$U \\cdot \\Sigma \\cdot V^T \\cdot Square$\",\n", " axis=[-0.5, 3.5 , -1.5, 1.5])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we can see that the result is indeed a shear mapping of the original unit square." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Eigenvectors and eigenvalues\n", "An **eigenvector** of a square matrix $M$ (also called a **characteristic vector**) is a non-zero vector that remains on the same line after transformation by the linear transformation associated with $M$. A more formal definition is any vector $v$ such that:\n", "\n", "$M \\cdot v = \\lambda \\times v$\n", "\n", "Where $\\lambda$ is a scalar value called the **eigenvalue** associated to the vector $v$.\n", "\n", "For example, any horizontal vector remains horizontal after applying the shear mapping (as you can see on the image above), so it is an eigenvector of $M$. A vertical vector ends up tilted to the right, so vertical vectors are *NOT* eigenvectors of $M$.\n", "\n", "If we look at the squeeze mapping, we find that any horizontal or vertical vector keeps its direction (although its length changes), so all horizontal and vertical vectors are eigenvectors of $F_{squeeze}$.\n", "\n", "However, rotation matrices have no eigenvectors at all (except if the rotation angle is 0° or 180°, in which case all non-zero vectors are eigenvectors).\n", "\n", "NumPy's `eig` function returns the list of unit eigenvectors and their corresponding eigenvalues for any square matrix. Let's look at the eigenvectors and eigenvalues of the squeeze mapping matrix $F_{squeeze}$:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Pregunta 29: ¿Como se llaman los eigenvectors en español?**" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1.4 , 0.71428571])" ] }, "execution_count": 138, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigenvalues, eigenvectors = LA.eig(F_squeeze)\n", "eigenvalues # [λ0, λ1, …]" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 0.],\n", " [0., 1.]])" ] }, "execution_count": 139, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigenvectors # [v0, v1, …]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Indeed, the horizontal vectors are stretched by a factor of 1.4, and the vertical vectors are shrunk by a factor of 1/1.4=0.714…, so far so good. Let's look at the shear mapping matrix $F_{shear}$:" ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1., 1.])" ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigenvalues2, eigenvectors2 = LA.eig(F_shear)\n", "eigenvalues2 # [λ0, λ1, …]" ] }, { "cell_type": "code", "execution_count": 141, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1.00000000e+00, -1.00000000e+00],\n", " [ 0.00000000e+00, 1.48029737e-16]])" ] }, "execution_count": 141, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigenvectors2 # [v0, v1, …]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wait, what!? We expected just one unit eigenvector, not two. The second vector is almost equal to $\\begin{pmatrix}-1 \\\\ 0 \\end{pmatrix}$, which is on the same line as the first vector $\\begin{pmatrix}1 \\\\ 0 \\end{pmatrix}$. This is due to floating point errors. We can safely ignore vectors that are (almost) collinear (i.e. on the same line)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Trace\n", "The trace of a square matrix $M$, noted $tr(M)$ is the sum of the values on its main diagonal. For example:" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "123" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D = np.array([\n", " [100, 200, 300],\n", " [ 10, 20, 30],\n", " [ 1, 2, 3],\n", " ])\n", "D.trace()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The trace does not have a simple geometric interpretation (in general), but it has a number of properties that make it useful in many areas:\n", "* $tr(A + B) = tr(A) + tr(B)$\n", "* $tr(A \\cdot B) = tr(B \\cdot A)$\n", "* $tr(A \\cdot B \\cdot \\cdots \\cdot Y \\cdot Z) = tr(Z \\cdot A \\cdot B \\cdot \\cdots \\cdot Y)$\n", "* $tr(A^T \\cdot B) = tr(A \\cdot B^T) = tr(B^T \\cdot A) = tr(B \\cdot A^T) = \\sum_{i,j}X_{i,j} \\times Y_{i,j}$\n", "* …\n", "\n", "It does, however, have a useful geometric interpretation in the case of projection matrices (such as $F_{project}$ that we discussed earlier): it corresponds to the number of dimensions after projection. For example:" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F_project.trace()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# What's next?\n", "This concludes this introduction to Linear Algebra. Although these basics cover most of what you will need to know for Machine Learning, if you wish to go deeper into this topic there are many options available: Linear Algebra [books](https://linear.axler.net/), [Khan Academy](https://www.khanacademy.org/math/linear-algebra) lessons, or just [Wikipedia](https://en.wikipedia.org/wiki/Linear_algebra) pages." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" }, "toc": { "toc_cell": false, "toc_number_sections": true, "toc_threshold": 6, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }