{ "cells": [ { "cell_type": "markdown", "id": "b36fe48a", "metadata": {}, "source": [ "# Linear Algebra 1" ] }, { "cell_type": "markdown", "id": "1bd3f270", "metadata": {}, "source": [ "**Instructor:** Tommy Stone, Applied Ocean Science (AOS) PhD student (thstone@ucsd.edu)\n", "\n", "**TAs:** Sam Schulz (s1schulz@ucsd.edu), Camilla Marcellini (cmarcellini@ucsd.edu )\n", "\n", "\n", "Linear algebra is a branch of mathematics that studies vectors, vector spaces, linear transformations, and systems of linear equations. At its core, it provides a framework for understanding and working with quantities that have both magnitude and direction, as well as the relationships between them. The subject focuses on operations with matrices and vectors, making it a powerful language for expressing and solving mathematical problems.\n", "\n", "\n", "Lecture notes adapted from \n", "\n", "1) [David Vishny 2022 lecture notes](https://drive.google.com/drive/u/0/folders/1_u2dI7ji43XYKnbOKjp2eArOeWUBOlMT) for the SIO Math Workshop\n", "2) [Essence of Linear Algebra](https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) By 3Blue1Brown\n", "3) [Linear Algebra and Its Applications](https://math.mit.edu/~gs/) by Gilbert Strang, 4th Edition\n", "4) [Mathematical Methods for Physics and Engineering](https://search-library.ucsd.edu/permalink/01UCS_SDI/ld412s/alma991000027069706535\n", ") By K.R Riely, M.P Hobson, S. J. Bence " ] }, { "cell_type": "markdown", "id": "07d14d8b", "metadata": {}, "source": [ "## 1 | Why Linear Algebra?\n", "\n", "The first question we must ask is why is Linear Algebra important in Earth Sciences? \n", "\n", "### 1.1 Application of Linear Algebra\n", "\n", "Linear Algebra is essential because it provides the mathematical foundation for analysis of large datasets, solving a system of equations as well as identifying patterns in complex systems. Earth Science disciplines use Linear Algebra with General Circulation Models (CGM), Wave Dynamics, Eigenvalues, Singular Value Decomposition (SVD), Least Squares Fitting, Neural Networks and many more. In order to go into these advanced topics we need to first to learrn the basis of Linear Algebra which are vectors and matrices." ] }, { "cell_type": "markdown", "id": "9e82cb22", "metadata": {}, "source": [ "## 2 | Review - Scalars, Vectors, Matrices, Tensors and Dimensions (Oh my!)\n", "\n", "In this first section we will review our definitions of\n", "\n", "1) Scalars\n", "2) Vectors\n", "3) Matrices\n", "4) Tensors" ] }, { "cell_type": "markdown", "id": "a386577f", "metadata": {}, "source": [ "### 2.1 Notation\n", "\n", "Typical notation you will find for scalars, vectors and matrices\n", "\n", "1) Scalars are indicated by lower case letters.\n", "\n", "$$\n", "c\n", "$$\n", "\n", "2) Vectors will have an arrow above a lower case letter\n", "\n", "$$\n", "\\vec{u} = \\begin{bmatrix}u \\\\ v\\end{bmatrix}\n", "$$\n", "\n", "3) Another way to represent a vector is by multiplying the scalar values of $u_x,u_y,u_z$ by their basis vectors $\\hat{i}, \\hat{j}, \\hat{k}$\n", "\n", "$$\n", "\\vec{u} = u_x \\hat{i} + u_y \\hat{j} + u_z \\hat{k}\n", "$$\n", "\n", "4) Matrices are indicated by capital letters and/or also indicated in **bold**\n", "\n", "$$\n", "\\mathbf{A} = \\begin{bmatrix} a & b \\\\ c & d \\end{bmatrix}\n", "$$\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "id": "1bda0ed2", "metadata": {}, "source": [ "### 2.2 Scalars\n", "\n", "A scalar is a quantity that can be fully described by a number. Examples of scalars are \n", "\n", "* Temperature (T)\n", "* Salinity (S)\n", "* Mass (m)\n", "\n", "\n", "### 2.3 Vectors\n", "\n", "A vector is an object that has both a magnitude (length) and a direction. The components (or elements) of a vector are scalars. \n", "\n", "$$\n", "\\vec{v} = \\begin{bmatrix} v_x \\\\ v_y \\\\ v_z \\end{bmatrix}\n", "$$\n", "\n", "Where $v_x, v_y$ and $v_z$ are scalar components of the vector $\\vec{v}$. Examples of vectors are\n", "\n", "* Force\n", "* Acceleration\n", "* Momentum\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "dec89c2b", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc0AAAHUCAYAAABYnHNOAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPDFJREFUeJzt3XlcVPX+x/H3iDCBAgWYQqKSe6V50xaXm6C5UKZ207LMpbTyppXLtSwzpW7S4s26WWqWW9fU0kxzSypR7y9N3NJsU8uoIHcxNXHE7++PcxlF0A4KHIZ5PR8PHvI9c86Zz/fLyJvvzFlcxhgjAADwp8o5XQAAAL6C0AQAwCZCEwAAmwhNAABsIjQBALCJ0AQAwCZCEwAAmwhNAABsIjQBALCJ0ITjbrvtNgUHB+vgwYNnXad79+4KDAzUrl27ivS5R48erQ8//LBI9/lnXC5Xnq+wsDA1a9ZMM2fOLNE6fMnRo0c1atQopaamnvc+MjIyNGrUKG3atCnfY6NGjZLL5Tr/AuE3CE04rk+fPjp27JjefffdAh/PysrSvHnz1KFDB1WuXLlIn9uJ0JSkLl26aPXq1fr88881YcIEHTp0SHffffdZx8DfHT16VElJSRccmklJSQWGZt++fbV69erzLxB+g9CE4xITExUTE6PJkycX+PjMmTP1xx9/qE+fPiVc2fnxeDw6ceLEOdepXLmybrjhBjVt2lR33323Fi1aJEmaOHFiSZSYxx9//CF/vwR11apVdcMNNzhdBnyBAUqBJ554wkgymzdvzvfYddddZ6Kjo82JEyeMMcZkZmaaBx54wFx22WUmMDDQ1KhRw4waNcp4PJ482x07dswkJSWZevXqGbfbbSIiIkx8fLz5v//7P2OMMZLyfbVs2dK7/ZYtW0zHjh3NxRdfbNxut7n66qvN1KlT8zzH8uXLjSQzffp0M3jwYBMTE2NcLpf55ptvztpXSaZ///75lleqVMnUrVs3z7KsrCwzZMgQU6NGDRMYGGhiYmLMo48+ag4fPlzgPidMmGBq165tgoKCTP369c3MmTPzrDdlyhQjyXz88cfm3nvvNVFRUUaS+eOPP4wxxsyaNcvccMMNJiQkxFSoUMG0bdvWbNiwIc8+duzYYe68804THR1tgoKCzKWXXmpatWplNm7cmGc9O/vq1auXqVChgtm2bZtJTEw0FSpUMFWrVjWDBw82x44dM8YY8+OPPxb4s+rVq5cxxpht27aZ3r17m1q1apng4GATExNjOnTokOe1lPtzOvNr5MiRxhhjRo4cac78dZiTk2NeeOEFU7duXRMUFGQqVapkevToYX7++ec867Vs2dJceeWVZu3ataZFixYmODjYxMXFmeTkZJOTk5Pv5wzfRmiiVNi2bZtxuVxm4MCBeZZv3brVSDLDhg0zxliBGRsba6pXr24mTpxoPvnkE/Pss88at9ttevfu7d3O4/GYhIQEU758efOPf/zDLF682CxYsMA8+eST3iBZvXq1CQ4ONjfffLNZvXq1Wb16tdm6dasxxphvv/3WhIaGmpo1a5rp06ebRYsWmbvuustIMi+88IL3eXJ/GV922WWmS5cuZsGCBWbhwoVm3759Z+1rQaF58OBBExAQYG699VbvsiNHjphGjRqZqKgo8/LLL5tPPvnEvPrqqyY8PNy0atXKnDx5Ms8+Y2NjzRVXXGFmzpxpFixYYNq3b28kmffff9+7Xm5oXnbZZeaBBx4wS5YsMXPmzDEnTpwwzz33nHG5XOa+++4zCxcuNB988IFp2rSpqVChgndcjDGmbt26platWuadd94xK1asMHPnzjVDhgwxy5cv965jd1+9evXyBvyYMWPMJ598Yp5++mnjcrlMUlKSMcb642fp0qVGkunTp4/3Z7V9+3ZjjDErVqwwQ4YMMXPmzDErVqww8+bNM507dzbBwcHm22+/NcZYf3zk9v2pp57y7iM3AAsKzQceeMBIMgMGDDBLly41EyZMMJUqVTKxsbFmz5493vVatmxpIiMjTe3atc2ECRNMSkqKeeihh4wkM23atLO+DuCbCE2UGi1btjRRUVHm+PHj3mVDhgwxksz3339vjDHmwQcfNBUrVjQ//fRTnm3HjBljJHl/IU+fPt1IMpMmTTrnc1aoUME7Yzldt27djNvtNunp6XmWJyYmmpCQEHPw4EFjzKnQvPHGG233U5J56KGHjMfjMcePHzfff/+96dixowkNDTXr1q3zrpecnGzKlStn0tLS8mw/Z84cI8ksXrw4zz6Dg4PNb7/95l124sQJU69ePVOrVi3vstzg6NmzZ559pqenm/Lly5uHH344z/Lff//dVKlSxdxxxx3GGGP27t1rJJlXXnnlrP2zuy9jrNCUZN57770869588815Zt17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q1bq1KmTtm7dan8nBsYYY+bPn29cLpc5fvy406U45sUXXzRxcXFOl1HipkyZYsLDw50uo9hdd911pl+/fnmW1atXzwwbNsyhipwjycybN8/pMhy1e/duI8msWLHC6VIcdckll5i33nrL9vp+O9M83f79+zVjxgw1a9bML2+TkysrK0sRERFOl4FicPz4ca1fv15t27bNs7xt27b6/PPPHaoKTsq9VaK//p/PycnRrFmzdOTIETVt2tT2dn4dmo8//rgqVKigyMhIpaena/78+U6X5JgdO3botddeU79+/ZwuBcVg7969ysnJUeXKlfMsr1y5sn777TeHqoJTjDEaPHiwWrRooauuusrpckrUli1bVLFiRbndbvXr10/z5s3TFVdcYXv7MhWao0aNksvlOufXunXrvOsPHTpUGzdu1LJlyxQQEKCePXue101JS5PCjoFkXQC/ffv26tq1q/r27etQ5UXjfPrvT06/U5Bk/fI8cxnKvgEDBmjz5s2aOXOm06WUuLp162rTpk1as2aN/v73v6tXr176+uuvbW/vExdst2vAgAHq1q3bOdepUaOG9/vcu6zUqVNH9evXV2xsrNasWVOoqXppU9gxyMjIUEJCgpo2bao333yzmKsrfoXtv7+IiopSQEBAvlnl7t27880+UbY9/PDDWrBggVauXOmXN7wICgpSrVq1JElNmjRRWlqaXn31VU2cONHW9mUqNO3eaqwguTPM029a7YsKMwa//vqrEhIS1LhxY02ZMkXlyvn+Gw8X8hooy4KCgtS4cWOlpKTotttu8y5PSUlRp06dHKwMJcUYo4cffljz5s1Tamqq4uLinC6pVDDGFOr3fpkKTbvWrl2rtWvXqkWLFrrkkkv0ww8/6Omnn1bNmjV9epZZGBkZGYqPj1e1atU0ZswY7dmzx/tYlSpVHKys5KSnp2v//v1KT09XTk6ONm3aJEmqVauW9/ZzZcngwYPVo0cPNWnSxPvOQnp6ut98jn348GFt377d2/7xxx+1adMmRURE5Lv9YFnUv39/vfvuu5o/f75CQ0O97zqEh4crODjY4epKxpNPPqnExETFxsbq999/16xZs5SamqqlS5fa30mxHMNbym3evNkkJCSYiIgI43a7TY0aNUy/fv3ML7/84nRpJWbKlClGUoFf/qJXr14F9n/58uVOl1ZsXn/9dVO9enUTFBRkrrnmGr863WD58uUF/rx79erldGkl4mz/36dMmeJ0aSXmvvvu877+K1WqZFq3bm2WLVtWqH1wazAAAGzy/Q+xAAAoIYQmAAA2EZoAANhEaAIAYBOhCQCATYQmAAA2EZoAANhEaAIAYBOhCaBAqampcrlcOnjwoNOlAKUGoQmUcjk5OWrWrJluv/32PMuzsrIUGxurp556qliet1mzZsrMzFR4eHix7B/wRVxGD/AB27ZtU6NGjfTmm2+qe/fukqSePXvqyy+/VFpamoKCghyuEPAPzDQBH1C7dm0lJyfr4YcfVkZGhubPn69Zs2Zp2rRpZw3Mxx9/XHXq1FFISIguv/xyjRgxQh6PR5J1O6SbbrpJ7du3994W7+DBg6pWrZqGDx8uKf/bsz/99JNuvfVWXXLJJapQoYKuvPJKLV68uPg7D5QifnlrMMAX5d4LsWfPntqyZYuefvppNWrU6Kzrh4aGaurUqYqJidGWLVt0//33KzQ0VI899phcLpemTZumBg0a6N///rceffRR9evXT5UrV9aoUaMK3F///v11/PhxrVy5UhUqVNDXX39dJm+hBpwLb88CPuTbb79V/fr11aBBA23YsEHly9v/u/ell17S7NmztW7dOu+y999/Xz169NDgwYP16quvauPGjapTp44ka6aZkJCgAwcO6OKLL1bDhg11++23a+TIkUXeL8BX8PYs4EMmT56skJAQ/fjjj/rll18kSf369VPFihW9X7nmzJmjFi1aqEqVKqpYsaJGjBih9PT0PPvr2rWr/va3vyk5OVn/+te/vIFZkEceeUT//Oc/1bx5c40cOVKbN28unk4CpRihCfiI1atXa+zYsZo/f76aNm2qPn36yBijZ555Rps2bfJ+SdKaNWvUrVs3JSYmauHChdq4caOGDx+u48eP59nn0aNHtX79egUEBGjbtm3nfP6+ffvqhx9+UI8ePbRlyxY1adJEr732WnF1Fyidiva+2ACKw9GjR03t2rVN//79jTHG/PTTTyY0NNSMHz++wPXHjBljLr/88jzL+vTpY8LDw/Ms69evn6lXr55ZtmyZKV++vPn000+9jy1fvtxIMgcOHCjwOYYNG2YaNGhw/p0CfBAzTcAHDBs2TCdPntQLL7wgSapWrZr+9a9/aejQodq5c2e+9WvVqqX09HTNmjVLO3bs0L///W/NmzcvzzqLFi3S5MmTNWPGDLVp00bDhg1Tr169dODAgQJrGDhwoD7++GP9+OOP2rBhgz777DPVr1+/yPsKlGpOpzaAc0tNTTUBAQFm1apV+R5r27atadWqlTl58mS+x4YOHWoiIyNNxYoVzZ133mnGjh3rnWnu3r3bVK5c2YwePdq7vsfjMdddd5254447jDH5Z5oDBgwwNWvWNG6321SqVMn06NHD7N27t+g7DJRiHD0LAIBNvD0LAIBNhCYAADYRmgAA2ERoAgBgE6EJAIBNhCYAADYRmgAA2ERoAgBgE6EJAIBNhCYAADYRmgAA2PT/NMdmc1ZMuLgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Define the vector\n", "vector = np.array([2, 3])\n", "\n", "# Create the plot\n", "plt.figure(figsize=(5, 5))\n", "plt.quiver(0, 0, vector[0], vector[1], angles='xy', scale_units='xy', scale=1, color='b')\n", "plt.xlim(-3, 3)\n", "plt.ylim(-4, 4)\n", "plt.grid()\n", "plt.axhline(0, color='black',linewidth=0.5)\n", "plt.axvline(0, color='black',linewidth=0.5)\n", "plt.title(\"Vector Representation\")\n", "plt.xlabel(\"X-axis\")\n", "plt.ylabel(\"Y-axis\")\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "0e530f7a", "metadata": {}, "source": [ "We also know that we can add vectors\n", "\n", "$$\n", "\\begin{align*}\n", "\\vec{v} &= \\begin{bmatrix} 1 \\\\ 3 \\end{bmatrix} \\\\\n", "\\vec{w} &= \\begin{bmatrix} 2 \\\\ -1 \\end{bmatrix}\n", "\\end{align*}\n", "$$\n", "\n", "$$\n", "\\vec{v} + \\vec{w} = \\begin{bmatrix} 1 \\\\ 3 \\end{bmatrix} + \\begin{bmatrix} 2 \\\\ -1 \\end{bmatrix} = \\begin{bmatrix} 3 \\\\ 2 \\end{bmatrix}\n", "$$\n", "\n", "and we can also multiply vectors by a constant, or **scale** the vector\n", "\n", "$$\n", "c \\vec{v} = 2 \\begin{bmatrix} 1 \\\\ 3 \\end{bmatrix} = \\begin{bmatrix} 2 \\\\ 6 \\end{bmatrix}" ] }, { "cell_type": "markdown", "id": "9fe7c423", "metadata": {}, "source": [ "### 2.4 Linear Combinations and Spans\n", "\n", "A linear combination of two vectors is defined as \n", "\n", "$$\n", "a \\vec{u} + b \\vec{v}\n", "$$\n", "\n", "Where a and b are scalar values. We call the span of a set of vectors to be a linear combination of those two vectors given an adjustable parameter which are the scalars. The below plot shows an example of the span of vectors $\\vec{u}$ and $\\vec{v}$. The span is of all 2D space indicated by the red dots (imagine these as the end points of vectors)" ] }, { "cell_type": "code", "execution_count": 7, "id": "e75c2541", "metadata": {}, "outputs": [ { "data": { "image/png": "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crJYvXq11X15Dhw4IACIRYsWWdV05MgRAUB89tlnxa6fAQMGCA8PD6t5gYGBolatWuLRRx8VX331ldi4caN44YUXBACxefNmq+dwd3cXjz76qPj2229FYmKi6NSpkwgICBAAxOnTpy3Lvvvuu0Kj0YjBgweLtWvXilWrVolWrVoJDw8PceTIEat6nJ2dRUBAgHj33XdFUlKSmD59unB0dBTdu3d/oPUeGhoqqlSpIurXry8WLFggkpOTxYgRIwQAq/9TFy5cEL6+vqJmzZpi8eLFlv+jef2kpKRYlv3666+FRqMRzz33nFi1apVYs2aN6N69u9BqteKnn34qsC3vtx/t2LFDuLm5ia5du1r+n929XgrTunVr4evrW+C48+STT4qaNWuKnJycUq2nL774Qmg0GqHT6cSyZcvETz/9JObPny9GjBghhBDi5MmTonfv3gKApca840Fubq7o1KmTcHR0FFOnThVJSUniww8/FB4eHuLxxx+3OmYEBgaK6tWrizp16oi4uDiRkpIifvvtN7F9+3ah0WjEyy+/LNavXy82bdokFi9eLPr161fselAjBoty7PLly6J169YCgAAgnJycxDPPPCOio6PF9evXrZYNDAwUGo1G7N+/32p+hw4dhJeXl7h582ahz5GTkyOMRqOIiIgQjz/+uNV9AES1atVEZmamZd6FCxeEg4ODiI6OLrb2SZMmCQDi119/tZo/fPhwodFoxPHjx61q79atW7GPd6/CgsWrr74q6tSpY5lu3769GDp0qKhcubLlAP/LL78IACIpKUkIIcSxY8cEAMvBLc+vv/4qAIjJkycXW8fDBovZs2dbLTtixAjh6uoqcnNzhRDmFwQAYs6cOVbLnTt3Tri5uVkFpLvl5uYKo9Eozpw5IwCIxMTEAs/99ttvF/i9e4OFEOYXzuDgYKt5w4cPF15eXgX2w3sVFSxcXV3FmTNnLPNu374tvL29xeuvv26Z99JLLwk3NzerF6ecnBzRsGFDq2Bx9uxZ4ejoKEaNGmX1PNevXxd+fn7ixRdftKoHgPjkk0+sln333XcFALFt2zYhROnWe2hoaKH7+qOPPio6depkmZ44cWKR/0fvDhY3b94U3t7eokePHlbLmUwm8dhjj4mnnnrKMq+k+5EQQnh4eIgBAwaIksrbt1etWmWZd/jwYQFATJkyRQhR8vV0/fp1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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define two vectors\n", "vector_u = np.array([1, 2])\n", "vector_v = np.array([2, 1])\n", "\n", "# Create a grid of scalar values for the linear combination\n", "scalars = np.linspace(-2, 2, 10)\n", "\n", "# Create the plot\n", "plt.figure(figsize=(6, 6))\n", "plt.axhline(0, color='black', linewidth=0.5)\n", "plt.axvline(0, color='black', linewidth=0.5)\n", "plt.grid()\n", "\n", "# Plot the span of the vectors\n", "for a in scalars:\n", " for b in scalars:\n", " linear_combination = a * vector_u + b * vector_v\n", " plt.plot(linear_combination[0], linear_combination[1], 'ro', markersize=2)\n", "\n", "# Plot the original vectors\n", "plt.quiver(0, 0, vector_u[0], vector_u[1], angles='xy', scale_units='xy', scale=1, color='b', label='Vector u')\n", "plt.quiver(0, 0, vector_v[0], vector_v[1], angles='xy', scale_units='xy', scale=1, color='g', label='Vector v')\n", "\n", "plt.xlim(-5, 5)\n", "plt.ylim(-5, 5)\n", "plt.title(\"Span of Two Linearly Independent Vectors\")\n", "plt.xlabel(\"X-axis\")\n", "plt.ylabel(\"Y-axis\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "743ac219", "metadata": {}, "source": [ "Not all vectors will span 2D space. If both vectors are zero vectors then they will remain at the origin\n", "\n", "$$\n", "\\begin{align*}\n", "\\vec{u} = \\begin{bmatrix} 0 \\\\ 0 \\end{bmatrix}, \\vec{v} = \\begin{bmatrix} 0 \\\\ 0 \\end{bmatrix} \\\\\n", "a\\vec{u} + b \\vec{v} = \\begin{bmatrix} 0 \\\\ 0 \\end{bmatrix}\n", "\\end{align*}\n", "$$\n", "\n", "Or, if two vectors are parallel, then the span will only be on the line of the two vectors (as shown below). \n" ] }, { "cell_type": "code", "execution_count": 8, "id": "14050a12", "metadata": {}, "outputs": [ { "data": { "image/png": "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MDDQDB06NF+v/1wXChZ5/W645pprTKdOnQq8jV9++cX4+/vn2j/yEyxuvPFG4+/vX+BtlnQcCinBKlSooNWrV2v9+vV66aWXdMcdd2jnzp16+umn1ahRIx05ciTH8g0aNNC1116bo69Hjx5KTk7Wxo0bXX0LFixQq1atFBgYKC8vL3l7e+u9995TXFxcrhratm2roKAgV7ty5cqqVKnSJc+oXrFiha655hrXFGW2Pn36yBijFStW5HscrHKp15Kamqpvv/1W3bp1U0BAgDIyMlxfXbp0UWpqqtatW+d6fkHG8ZZbblH58uUvWWN0dLSuvfbaHNPhU6dOlcPh0MMPP3wlL1+Scp3c9uWXX6pt27aqVq1ajtfbuXNnSdLKlStzLN+9e3f5+fm52kFBQbr99tu1atUqZWZmFngMJekf//hHjnZUVJQkud6XtWvXKjU1VT179syxXMuWLVWzZs1cr6dhw4Zq3Lhxjm136tQpz0MYl7t/X4zD4dADDzygLVu2aMOGDZLOHtb84osvdNddd6ls2bIFGqclS5bo6quvVvv27Qtcy+nTp/Xjjz/q7rvvVmBgoKvf09NT999/v/74449ch53uuuuuXOu54YYbNHPmTD3//PNat26dnE5ngWs5V5UqVXL9boiKiirwuCckJKhr164KCwvTu+++W+A6zv95wFkEi1KgWbNmGjFihBYsWKDExEQ9/vjjSkhI0CuvvJJjuSpVquR6bnZf9vHeTz75RPfee6+qV6+u999/X2vXrtX69evVt2/fXJdrSWfDzfl8fX115syZi9Z89OjRPM8Er1atWo56itKlXsvRo0eVkZGhN954Q97e3jm+unTpIkmuMFfQcSzIWfGDBw/Wt99+qx07dsjpdOqdd97R3Xffnef7W1B79+6Vr6+vgoODJUl//fWXvvjii1yvt0GDBjleb7YL7WPp6ek6depUgcYw2/nvi6+vryTleF8utu1z/fXXX9qyZUuubQcFBckYc8ltZ2//Uvv3pTzwwAPy8PDQjBkzJElz585Venq6+vXr53pN+R2nw4cPKzQ09LLqOH78uIwxBfpZzGvZ+fPnq3fv3nr33XfVokULBQcHq1evXjp48OBl1WXFuO/du1dt27aVl5eXvv32W9c+XRD79u1zjQP+lvusPpRo3t7eGj16tCZOnKhff/01x2N5/ZBn92X/IL//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p7Zu3apOnTqpe/fu2rJli+bPn6/vv/9eAwcOdC3fq1cvffjhh5o0aZLi4uI0efJklSlTRmFhYVq4cKEkaceOHTpw4IBef/11SdLw4cO1cOFCzZo1Sxs3blTdunXVqVMnHTt2LEeNw4cP17hx4xQXF6eoqKgiGJX8IVgAAJCHvn37KiEhQbGxsa6+6dOnq3v37ipfvrzGjx+vHj16aOjQoYqIiFDLli01adIkzZ49W6mpqdq5c6c++ugjTZ8+Xd26dVPt2rXVrl07de/eXZ6engoODpYkVapUSVWqVFG5cuV0+vRpTZkyRePHj1fnzp11zTXX6J133pG/v7/ee++9HPWNHTtWHTp0UJ06dVShQoWiHJqL4qoQAADyUL9+fbVs2VLTp09X27ZttXv3bq1evVrLli2TJG3YsEG7du3S3LlzXc8xxrhuY75161Z5enqqTZs2+d7m7t275XQ61apVK1eft7e3brjhBsWdd7v0Zs2aXeErLBzMWAAAcAH9+vXTwoULlZycrBkzZqhmzZpq166dpLO3537kkUe0efNm19cvv/yi+Ph41alTR/7+/gXeXvZhl/M/T8UYk6uvTJkyF11X9l00zz2U43Q6C1xTQREsAAC4gHvvvVeenp6aN2+eZs2apQceeMD1B75Jkybatm2b6tatm+vLx8dHjRo1UlZWllauXJnnurM/QfTcj0/Pfu7333/v6nM6nfr5558VGRlZoNorVqwoSTpw4ICrb/PmzQVax+UgWAAAcAGBgYG677779MwzzygxMdF15YYkjRgxQmvXrtWAAQO0efNmxcfH6/PPP9egQYMkSeHh4erdu7f69u2rTz/9VHv27FFsbKwWLVokSapZs6YcDoe+/PJLHT58WKdOnVKZMmX06KOP6qmnntLSpUv122+/6aGHHlJKSorrSpT8qlu3rsLCwhQTE6OdO3fqq6++0oQJEywbmwshWAAAbGFM0X5drn79+un48eNq3769atSo4eqPiorSypUrFR8fr5tvvlnXXXedRo0apapVq7qWmTJliu6++2499thjql+/vh555BGlpKRIkqpXr64xY8Zo5MiRqly5sutqkpdeekl33XWX7r//fjVp0kS7du3S119/rfLlyxeobm9vb33wwQfavn27rr32Wr388st6/vnnL38g8slhzJUMt3tJTk5WuXLllJSUpLJly9pdTr45nU4tXrxYXbp0kbe3t93llAqMedHLPmHthx9+YMyLSFHs56mpqdqzZ49q1ap12R/DXZJkZWUpOTlZZcuWLZaf+Hqx9yu/f0OL36sCAABui2ABAAAsQ7AAAACWIVgAAADLECwAAIBlCBYAAMAyBAsAAGAZggUAALAMwQIAAFiGj00HANjCMcZx6YUsZEaXmhtN24oZCwAAznP77berffv2eT62du1aORwObdy48Yq2ERsbK4fDoRMnTlzReoobggUAAOfp16+fVqxYob179+Z6bPr06WrcuLGaNGliQ2W5GWOUkZFhdxkuBAsAAM7TtWtXVapUSTNnzszRn5KSovnz57s+wnzNmjVq3bq1/P39FRYWpsGDB+v06dOu5dPS0jR8+HCFhYXJ19dX9erV05w5c5SQkKC2bdtKksqXLy+Hw+H6SPa0tDQNHjxYlSpVkp+fn2666SatX7/etc7smY6vv/5azZo1k6+vr1avXp3rNbRo0UIjR47M0Xf48GF5e3vru+++s2KY8kSwAADgPF5eXurVq5dmzpypcz8EfMGCBUpPT1fPnj21detWderUSd27d9eWLVs0f/58ff/9966PP5ekXr166cMPP9SkSZMUFxenyZMnq0yZMgoLC9PChQslSTt27NCBAwf0+uuvS5KGDx+uhQsXatasWdq4caPq1q2rTp066dixYzlqHD58uMaNG6e4uDhFRUXleg09e/bUBx98kKP++fPnq3LlymrTpo2l43UuggUAAHno27evEhISFBsb6+qbPn26unfvrvLly2v8+PHq0aOHhg4dqoiICLVs2VKTJk3S7NmzlZqaqp07d+qjjz7S9OnT1a1bN9WuXVvt2rVT9+7d5enpqeDgYElSpUqVVKVKFZUrV06nT5/WlClTNH78eHXu3FnXXHON3nnnHfn7++u9997LUd/YsWPVoUMH1alTRxUqVMhV/3333afExER9//33rr558+apR48ehfqR7QQLAADyUL9+fbVs2VLTp0+XJO3evVurV69W3759JUkbNmzQzJkzFRgY6Prq1KmTsrKytGfPHm3evFmenp4Fmh3YvXu3nE6nWrVq5erz9vbWDTfcoLi4uBzLNmvW7KLrqlixojp06KC5c+dKkvbs2aO1a9eqZ8+e+a7nchAsAAC4gH79+mnhwoVKTk7WjBkzVLNmTbVr106SlJWVpUceeUSbN292ff3yyy+Kj49XnTp15O/vX+DtZR+2cDgcufrP7ytTpswl19ezZ099/PHHcjqdmjdvnho0aKBrr722wHUVhNsGi3HjxsnhcGjo0KF2lwIAKKHuvfdeeXp6at68eZo1a5YeeOAB1x/4Jk2aaNu2bapbt26uLx8fHzVq1EhZWVlauXJlnuv28fGRJGVmZrr6sp977uELp9Opn3/+WZGRkQWu/84771RqaqqWLl2qefPm6d///neB11FQbhks1q9fr2nTpuV5sgoAAFYJDAzUfffdp2eeeUaJiYmuKzckacSIEVq7dq0GDBigzZs3Kz4+Xp9//rkGDRokSQoPD1fv3r3Vt29fffrpp9qzZ49iY2O1aNEiSVLNmjXlcDj05Zdf6vDhwzp16pTKlCmjRx99VE899ZSWLl2q3377TQ899JBSUlJcV6IURJkyZXTHHXdo1KhRiouLU48ePSwZl4sybubkyZMmIiLCLF++3LRp08YMGTIk389NSkoykkxSUlLhFVgI0tPTzaeffmrS09PtLqXUYMyLXnp6urn++usZ8yKUUa+eyfTwMBn16hXaNs6cOWN+++03c+bMmULbRmFbs2aNkWQ6duyY67GffvrJdOjQwQQGBpoyZcqYqKgo88ILL7geP3PmjHn88cdN1apVjY+Pj6lbt6558803TWZmpjHGmLFjx5oqVaoYh8Nhevfu7XrOoEGDTEhIiPH19TWtWrUyP/30k2ud3333nZFkjh8/nq/6v/rqKyPJtG7d+pLLXuz9yu/fUIcxxq3ucdq7d28FBwdr4sSJio6OVuPGjfXaa6/luWxaWprS0tJc7eTkZIWFhenIkSMqW7ZsEVV85ZxOp5YvX64OHTrI29vb7nJKBca86DmdTkVHRys2NpYxLwIejRrJc8cOGUkOSZn16ilr61bLt5Oamqr9+/crPDxcfn5+lq/f3RhjdPLkSQUFBeU6Z6I4SE1NVUJCgsLCwnK9X8nJyQoJCVFSUtJF/4a61WeFfPjhh9q4cWOOG4VczLhx4zRmzJhc/cuWLVNAQIDV5RW65cuX211CqcOYFz3GvGjcHh/vChVGkiM+XosXL7Z8O15eXqpSpYpOnTql9PR0y9fvrk6ePGl3CXlKT0/XmTNntGrVqlx380xJScnXOtxmxmL//v1q1qyZli1b5jqjlRkLFBbGvOgxY1G00urXUeDv+5mxKGLMWBQjGzZs0KFDh9S0aVNXX2ZmplatWqU333xTaWlp8vT0zPEcX19f+fr65lqXt7e3W/7icte63RljXvQY88K37o91at/vmLZM8lX4YaeyIiLkuX27PC/91ALLzMyUw+GQh4dHod6UyV1kZWVJkmtMihsPDw85HI48fw7z+3PpNsGiXbt22npemn7ggQdUv359jRgxIleoAADktuWvLeo8t7NOO09rzORe6u7ZXV26dCmUUIHSyW2CRVBQkBo2bJijr0yZMqpQoUKufgBAbjuP7lSHOR10IvWEJKlBSAPpeNFs202Oupd6VrxPxW8eBgBgub0n9qr97PY6dPqQq++aitcU+nazp8/ze+If7JX9Pl3J4Ui3mbHIy7kfDAMAyNuBkwfUfk577U/en6O/QaUG2rJzS6Fu29PTU1dddZUOHTobaAICAorlSYtFJSsrS+np6UpNTS1W51gYY5SSkqJDhw7pqquuuqLTC9w6WAAALu5oylF1fL+jdh3blaO/nG85VQ+qri0q3GAhSVWqVJEkV7gozYwxOnPmjPz9/YtlwLrqqqtc79flIlgAQAmVnJasznM769dDv+Z6rFHlRkX2h83hcKhq1aqqVKmSnE5nkWyzuHI6nVq1apVat25d7K5+8vb2tuRCCIIFAJRAKc4U3f7B7VqfmPcNBRtValTEFZ09LFLar+Dz9PRURkaG/Pz8il2wsErxOcADALBEema67v7obq3au+qCy9gRLFA6ECwAoATJyMpQz096asmuJRddrlFlggUKB8ECAEqILJOlh754SB//9vEll21Yifv/oHAQLACghHBmOvX0TU9r+4Dt2j5gu/o07pPncmFlw3SV31VFWhtKD07eBIASwtfLV1dXuFqSdOzMMS38baHrsTLeZXTaeVqSFFU5ypb6UDowYwEAJdCENRN0Mv3vj+Z+7dbX1KNRD0mcuInCxYwFAJQwR1KOaNJPk1zt8KvC1fva3rqvwX36OfFnTtxEoSJYAEAJM2HNBJ1KP+Vq/+fm/8jb01vent766O6P5OflZ2N1KOkIFgBQghxJOaI3fnrD1a5dvrZ6XdvL1b62yrV2lIVShHMsAKAEeXXNq66TNKW/ZyuAokKwAIAS4vDpw3rzpzdd7Trl6+j+a++3sSKURgQLACghxq8Zn2O2YlTrUfLy4Ig3ihbBAgBKgEOnD+mt9W+52nWD66pnVE8bK0JpRbAAgBLglR9eUYozxdVmtgJ2IVgAgJv769Rfmrx+sqsdERzhuhkWUNQIFgDg5l754RWdyTjjaj/X5jlmK2AbggUAuLGDpw5qys9TXO16FerpXw3/ZWNFKO0IFgDgxl7+/uVcsxWeHp42VoTSjmABAG7qwMkDmrphqqtdP6S+7mtwn40VAQQLAHBbL33/klIzUl3t51ozWwH7ESwAwA0lnkzU2xvedrUjQyJ1b4N7bawIOItgAQBu6KXvX1JaZpqrPbrNaGYrUCwQLADAzfyZ/KembZjmajeo2ED3NLjHxoqAvxEsAMDNjPt+XK7ZCg8Hv85RPLAnAoAb2Z+0X+9sfMfVblipoe665i4bKwJyIlgAgBt56fuXlJ6Z7mozW4Hihr0RANzE/qT9enfTu652VOUodY/sbmNFQG4ECwBwEy+ufpHZChR77JEA4Ab2ntir9za952pfW/la3Vn/TvsKAi6Aj78DADfw4uoXtWmSU1cflXZWkOJXxzBbgWKJvRIAirmEEwka0neaGhyRvIzU4Ih0R7en7S4LyBPBAgCKuRdXv6iIo5KR5ND/f4+Pt7kqIG8ECwAoxvYc36MZm2doZ4VzQoUkRUTYWxhwAQQLACjGXlj9gjKyMtRwoLQtRDKeHlL9+lJcnN2lAXkiWABAMfX78d81c/NMV7vPi83kcGYQKlCsESwAoJh6ftXzyjSZrnZMmxg5HA4bKwIujWABAMXQrmO7NPuX2a729dWuV5eILjZWBOQPwQIAiqEXVr+Qc7YimtkKuAeCBQAUM7uO7dKcX+a42jdWv1Gd63a2sSIg/wgWAFDM/HfVf5mtgNsiWABAMbLz6E69v+V9V7t5aHN1qtPJxoqAgiFYAEAx8t9V/1WWyXK1x0SPYbYCboVgAQDFxI4jOzRv6zxXu0VoC3Wo3cHGioCCI1gAQDHBbAVKAoIFABQD249s1we/fuBqtwprpfa129tYEXB5CBYAUAyMXTmW2QqUCAQLALDZb4d/04e/fuhq31zjZt1S6xYbKwIuH8ECAGw2duVYGRlXm9kKuDOCBQDYaNuhbfpo20euduuarRUdHm1fQcAVIlgAgI3GrmK2AiULwQIAbPLroV+1YNsCVzs6PJrZCrg9ggUA2GTMyjG5ZisAd0ewAAAbbPlriz7+7WNX+5Zat6h1zdY2VgRYg2ABADYYszLn7ERMmxh7CgEsRrAAgCK2+eBmfRL3iavdrlY73VzzZhsrAqxDsACAIjZ25dgcbc6tQElCsACAIrT54GYt2r7I1e5Qu4Na1WhlY0WAtQgWAFCEYmJjcrSZrUBJQ7AAgCKy8cBGfbbjM1e7U51OahHWwsaKAOsRLACgiJw/WxETHZPncoA7I1gAQBH4OfFnfbHzC1f71rq3qnlocxsrAgoHwQIAisD5963g3AqUVAQLAChk6/9cry93fulqd4noohuq32BjRUDhIVgAQCGLWRmTs81dNlGCESwAoBD9+MePWhy/2NXuenVXXV/9ehsrAgoXwQIAChGzFShtCBYAUEjW7l+rpbuWutq3X327mlZramNFQOEjWABAIcn1CabctwKlAMECAArB2v1r9fXur13tO+rdoSZVm9hYEVA0CBYAUAhGx47O0Wa2AqWFl90FAEBJ88O+HzRx2HJdfVTaWUEa9WY3Na7S2O6ygCLBjAUAWKx68w5qcETyMlKDI9Lc/2yyuySgyBAsAMBCq/euVvWDZ2QkOSQZSf579ttcFVB0CBYAYKGYlTHaWeHvUOGQpIgIe4sCihDBAgAssmrvKq3Ys0INB0rbQqRMD4dUv74UF2d3aUCRIVgAgEXOvRKk0UCHth/YQqhAqUOwAAALxCbEKjYh1tW+p8E9alipoX0FATYhWADAFTLG5JitcMih51o/Z2NFgH3cJliMGzdO119/vYKCglSpUiXdeeed2rFjh91lAYC+S/hOq/aucrXvbXCvGlRqYGNFgH3cJlisXLlSAwYM0Lp167R8+XJlZGSoY8eOOn36tN2lASjFjDGKiY1xtR1y6Lk2zFag9HKbO28uXbo0R3vGjBmqVKmSNmzYoNatW9tUFYDSbsWeFVq9b7Wr/c+G/9Q1Fa+xsSLAXm4TLM6XlJQkSQoODr7gMmlpaUpLS3O1k5OTJUlOp1NOp7NwC7RQdq3uVLO7Y8yLnjuOuTFGL6x8Qf4e/pIkD4eHnm31rNu8Bnccc3fnzmOe35odxhhTyLVYzhijO+64Q8ePH9fq1asvuFxMTIzGjBmTq3/evHkKCAgozBIBXIYXXnhBzz77rN1lAMhDSkqKevTooaSkJJUtW/aCy7llsBgwYIC++uorff/99woNDb3gcnnNWISFhenIkSMXHZTixul0avny5erQoYO8vb3tLqdUYMyLntPpVHR0tGJjY91izI0x6vh+R/3050+Szs5W/PTgT4qo4D532WQ/L3ruPObJyckKCQm5ZLBwu0MhgwYN0ueff65Vq1ZdNFRIkq+vr3x9fXP1e3t7u90bKrlv3e6MMS967jLmX+/6Wiv3r3S1/x31b11TxT3PrXCXMS9J3HHM81uv2wQLY4wGDRqkRYsWKTY2VrVq1bK7JACllDFGj38e42p7yEOjWo+yrR6gOHGbYDFgwADNmzdPn332mYKCgnTw4EFJUrly5eTv729zdQBKk4lffK24k+tc7fuu+beurnC1jRUBxYfb3MdiypQpSkpKUnR0tKpWrer6mj9/vt2lAShFNm40Gr7477tsKstTY9sxWwFkc5sZCzc8xxRACRMXJ7V9eIkyb//J1Rd2/H7VDa5rY1VA8eI2MxYAYKc9e6T2HYySm+Scrbi93H/sKwoohggWAHAJiYlS+/ZSYpmvpOo///3AL70UHVXHvsKAYohgAQAXceSI1KGD9PvvRoqO+fuBTC9p1X/UqJFtpQHFEsECAC4gKUnq1En67TdJV38pVdvw94O/9JZvSm3V5fQKIAeCBQDk4fRp6bbbpI0bJSnv2YprrpG83OYUeKBoECwA4DxpaVL37tIPP/x/R73PpWob/15g8wPSiXAOgwB5IGsDwHm+/15q2FBq0EDKMkavp8b8/WCml7Tq7AelESyA3AgWAHCedu3OfknSyFmfSgmb/35wU18pqaYkKSqqyEsDij0OhQDABWRkZun1zWP+7sj01kP1//5Yd2YsgNyYsQCAC3hm9qdKveoXV/uatH56+5Ua+mvn2fMvqlSxsTigmGLGAgDykJGZpTe2xpzT4aPpfZ6RwyHNmCF17So5HLaVBxRbBAsAyMOImZ8otdxWV7th+oO6MTJMkhQcLE2daldlQPFGsACA82RkZumtbeecW5Hho+l9n86xjJ9fERcFuAmCBQCc56kZHyut3K+udiPnQ7q+XqiNFQHug2ABAOfIyMzSlN/Ona3wzTVbAeDCCBYAcI4npi9QWrnfXO0o58NqdnV1GysC3AvBAgD+X7ozU1PjzpmtcPppRr+R9hUEuCGCBQD8vyemf6T0cnGuduPMR9QkopqNFQHuh2ABADo7WzFtx9i/O5x+mvHgCPsKAtwUwQIAJD3+3odKL7fd1b4uq78a16lqY0WAeyJYACj10p2Zeif+3NkKf81ktgK4LAQLAKXekHc/kLPsTle7adajiqrNB4EAl4NgAaBUS03P0KBnH1D6GOnXN3V2tuKh4XaXBbgtggWAUu1YWA1dczxDXkZqcETaPcVfDWtVtrsswG0RLACUWqnpGap4+ICMJIckI6lWUpLNVQHujWABoNQa9M5c7azwd6hwSHJERNhcFeDeCBYASqXU9AzN/P2/ajhQ2hYiZTik1Lp1pbi4Sz8ZwAURLACUSo+9PUcZZXdLkhoOlG5+ZoT84uNtrgpwfwQLAKVOSqpTc/b+9++O9EDNeuRJ+woCShCCBYBS57Fps5URtMfVbuExSPXCQmysCCg5CBYASpXTqemau+/5vzvSAzXrkSfsKwgoYQgWAEqVx96erYygBFe7pedgRYRWsK8goIQhWAAoNU6dSdfc/efMVqQFaXZ/ZisAKxEsAJQa/d+eqcygva72Td5DVKdasI0VASUPwQJAqXDqTLo+/POFvzvSymp2/2H2FQSUUAQLAKXCw1OmKzNwn6vd2meoalUtb2NFQMlEsABQ4iWfTtNHB86ZrUgtp9mPPm5fQUAJRrAAUOI9MnW6MgP/cLXb+A5VzcpX2VcQUIIRLACUaMmn07Tg4It/d6SW06xHh9pWD1DSESwAlGgPTnk3x2xFW79hzFYAhYhgAaDEOnEqVQsP/T1b4Ui9SjMfHWJjRUDJR7AAUGI9OOUdZZVJdLVv8X9CNSqVs7EioOQjWAAokY6fPKNFh8e52o7U8pr56GAbKwJKB4IFgBLp7GzFAVe7XcATCq1Y1saKgNKBYAGgxDmWfEafHjlntuJMsGb0H2RjRUDpQbAAUOL0m/K2ssocdLU7BD7JbAVQRAgWAEqUI0kp+vzYS66240wFzXh0oI0VAaULwQJAidJvylRlBfzlancKekrVKgTZWBFQuhAsAJQYh0+c1hfHX3a1HWdCNOPRATZWBJQ+BAsAJUbfKVNlAg652rcGPaUqwYE2VgSUPgQLACXCoeOn9dWJc2YrUipq5mPMVgBFjWABoER4YMpkmYDDrnaXq4arUvkyNlYElE4ECwBu7+CxU1qS/Iqr7UippOn9H7WxIqD0IlgAcHsPTHlLxv+Iq317+RHMVgA2IVgAcGsHjp3U1yfHu9oeKZX13qP9bawIKN0IFgDc2gOT35LxP+pq315+hELKBdhYEVC6ESwAuK3Eoye17NQ5sxWnq2j6Y8xWAHYiWABwW30mvyHjf8zVviNkpILL+ttYEQCCBQC39MfhZH2T8qqr7XG6qt7t/7CNFQGQCBYA3FSfKZNk/I672t0qPs1sBVAMECwAuJ19h5K04swEV9vjdDW9++hDNlYEIBvBAoDbeWDqJBm/E65294pP66pAP/sKAuBCsADgVvb+dULfnfmfq+1xqrreefRBGysCcC4vuwsAgILoM/V1bX33hK4+Ku2sIP135DPMVgDFCDMWANzG3r9O6M1JY9TgiORlpAZHpLnTXre7LADnIFgAcBu9pkzU1ceNjCSHJCPJc/dum6sCcC6CBQC3sOfAca1Kf007K/wdKhySFBFhb2EAciBYAHALvadOlHyT1XCgtC1EynR4SPXrS3FxdpcG4BwFDhZLly7V999/72q/9dZbaty4sXr06KHjx49f5JkAcHl2Jx7Taudrrva1vWsq9fQZQgVQDBU4WDz11FNKTk6WJG3dulVPPPGEunTpot9//13Dhg2zvEAA6D31f5LvSVe7R+izCvT3sbEiABdS4MtN9+zZo2uuuUaStHDhQnXt2lUvvviiNm7cqC5dulheIIDSLf6Po/oh83XJ82zb62S4po7oY2tNAC6swDMWPj4+SklJkSR988036tixoyQpODjYNZMBAFbp/fYEyeeUq92zxn8U4OdtY0UALqbAMxY33XSThg0bplatWumnn37S/PnzJUk7d+5UaGio5QUCKL127D+itVlvuNpeJ2tp8oheNlYE4FIKPGPx5ptvysvLSx9//LGmTJmi6tWrS5KWLFmiW2+91fICAZRefablnK34N7MVQLFX4BmLGjVq6Msvv8zVP3HiREsKAgBJitt3WOtyzFbU1lsj7rexIgD5ka9gkZycrLJly7r+fTHZywHAlegz7VXJ57Sr3Tt8FLMVgBvIV7AoX768Dhw4oEqVKumqq66Sw+HItYwxRg6HQ5mZmZYXCaB02ZZwSD+ZN11t7+S6evPpf9tYEYD8ylewWLFihYKDg13/zitYAIBV+rwzXvJJ+btde5T8fPgwZsAd5OsntU2bNq5/R0dHF1YtAKC4vYf0s+MtV9s7OUKTnu5hY0UACqLAV4WMGjUqz8MdSUlJ+te//mVJUQBKr/6zJkneZ1ztvnWYrQDcSYGDxezZs9WqVSvtPuejimNjY9WoUSMlJCRYWRuAUmiz413Xv72Tr9ZrD/IfFsCdFDhYbNmyReHh4WrcuLHeeecdPfXUU+rYsaP69OmT48PJAOCynDNb8WDEc8xWAG6mwMGiXLly+vDDDzV48GA98sgjev3117VkyRKNHTtWnp6ehVFjDpMnT1atWrXk5+enpk2bavXq1YW+TQCFb+uev3K0fZLq67V+/7SpGgCXq8DBQpLeeOMNTZw4Uf/6179Uu3ZtDR48WL/88ovVteUyf/58DR06VM8++6w2bdqkm2++WZ07d9a+ffsKfdsACtdjs3PeZO/hes/Jx7vw/7MCwFoFDhadO3fWmDFjNHv2bM2dO1ebNm1S69at1bx5c73yyiuFUaPL//73P/Xr108PPvigIiMj9dprryksLExTpkwp1O0CKFxbfj+oLR4zXG2fpEhN6HuvjRUBuFwFPniZkZGhLVu2qFq1apIkf39/TZkyRV27dtWDDz6o4cOHW16kJKWnp2vDhg0aOXJkjv6OHTtqzZo1eT4nLS1NaWlprnb2XUOdTqecTmeh1FkYsmt1p5rdHWNetCKqldfgWm9rhcbL38NfvSKfk0NZcjqz7C6tRGM/L3ruPOb5rdlhjDFWbfTIkSMKCQmxanU5JCYmqnr16vrhhx/UsmVLV/+LL76oWbNmaceOHbmeExMTozFjxuTqb9KkSZGcDwKgYOLj4xUREWF3GQDykJmZqY0bNyopKemiH99h6enWhRUqznX+XT+zbyWel6efflrDhg1ztZOTkxUWFqZly5a51WeaOJ1OLV++XB06dJC3N5+VUBQY86LndDoVHR2t2NhYxryIsJ8XPXce8+Tk5Hz9nS9wsMjMzNTEiRP10Ucfad++fUpPT8/x+LFjxwq6ynwJCQmRp6enDh48mKP/0KFDqly5cp7P8fX1la+vb65+b29vt3tDJfet250x5kWPMS96jHnRc8cxz2+9BT55c8yYMfrf//6ne++9V0lJSRo2bJi6d+8uDw8PxcTEFHR1+ebj46OmTZtq+fLlOfqXL1+e49AIAACwT4FnLObOnat33nlHt912m8aMGaN//etfqlOnjqKiorRu3ToNHjy4MOqUJA0bNkz333+/mjVrphYtWmjatGnat2+f+vfvX2jbBAAA+VfgYHHw4EE1atRIkhQYGKikpCRJUteuXTVq1ChrqzvPfffdp6NHj2rs2LE6cOCAGjZsqMWLF6tmzZqFul0AAJA/BT4UEhoaqgMHDkiS6tatq2XLlkmS1q9fn+f5DFZ77LHHlJCQoLS0NG3YsEGtW7cu9G0CAID8KXCw6Natm7799ltJ0pAhQzRq1ChFRESoV69e6tu3r+UFAgAA91HgQyEvvfSS69933323QkNDtWbNGtWtW1f/+Mc/LC0OAAC4lyu+j0Xz5s3VvHlzK2oBAABu7rI+hCxb2bJl9fvvv1tVCwAAcHP5DhZ//PFHrj4L7wYOAABKgHwHi4YNG2rOnDmFWQsAAHBz+Q4WL774ogYMGKC77rpLR48elST9+9//dqvP3AAAAIUr38Hiscce0y+//KLjx4+rQYMG+vzzzzVlypQi+eAxAADgHgp0VUitWrW0YsUKvfnmm7rrrrsUGRkpL6+cq9i4caOlBQIAAPdR4MtN9+7dq4ULFyo4OFh33HFHrmABAABKrwKlgnfeeUdPPPGE2rdvr19//VUVK1YsrLoAAIAbynewuPXWW/XTTz/pzTffVK9evQqzJgAlSWSkFB8vRURIcXF2VwOgkOU7WGRmZmrLli0KDQ0tzHoAlCSRkdL27Wf/vX372TbhAijR8h0sli9fXph1ACiJ4uMv3gZQ4lzRLb0B4KIiIi7eBlDiECwAFJ64OKl+fcnT8+x3DoMAJR7XigIoXIQJoFRhxgIAAFiGYAEAACxDsAAAAJYhWAAAAMsQLAAAgGUIFgAAwDIECwAAYBmCBQAAsAzBAgAAWIZgAQAALEOwAAAAliFYAAAAyxAsAACAZQgWAADAMgQLAABgGYIFAACwDMECAABYhmABAAAsQ7AAAACWIVgAAADLECwAAIBlCBYAAMAyBAsAAGAZggUAALAMwQIAAFiGYAEAACxDsAAAAJYhWAAAAMsQLAAAgGUIFgAAwDIECwAAYBmCBQAAsAzBAgAAWIZgAQAALEOwAAAAliFYAPhbZKTk5XX2OwBcBoIFgLMiI6Xt26XMzLPfCRcALgPBAsBZ8fEXbwNAPhAsAJwVEXHxNgDkA8ECwFlxcVL9+pKn59nvcXF2VwTADXnZXQCAYoQwAeAKMWMBAAAsQ7AAAACWIVgAAADLECwAAIBlCBYAAMAyBAsAAGAZggUAALAMwQIAAFiGYAEAACxDsAAAAJYhWAAAAMsQLAAAgGUIFgAAwDIECwAAYBmCBQAAsAzBAgAAWIZgAQAALEOwAAAAliFYAAAAyxAsAACAZQgWAADAMgQLAABgGYIFAACwjFsEi4SEBPXr10+1atWSv7+/6tSpo9GjRys9Pd3u0gAAwDm87C4gP7Zv366srCy9/fbbqlu3rn799Vc99NBDOn36tF599VW7ywMAAP/PLYLFrbfeqltvvdXVrl27tnbs2KEpU6YQLAAAKEbcIljkJSkpScHBwRddJi0tTWlpaa52cnKyJMnpdMrpdBZqfVbKrtWdanZ3jHnRY8yLHmNe9Nx5zPNbs1sGi927d+uNN97QhAkTLrrcuHHjNGbMmFz9y5YtU0BAQGGVV2iWL19udwmlDmNe9BjzoseYFz13HPOUlJR8LecwxphCruWCYmJi8vzDf67169erWbNmrnZiYqLatGmjNm3a6N13373oc/OasQgLC9ORI0dUtmzZKyu+CDmdTi1fvlwdOnSQt7e33eWUCox50XM6nYqOjlZsbCxjXkTYz4ueO495cnKyQkJClJSUdNG/obbOWAwcOFD//Oc/L7pMeHi469+JiYlq27atWrRooWnTpl1y/b6+vvL19c3V7+3t7XZvqOS+dbszxrzoMeZFjzEveu445vmt19ZgERISopCQkHwt++eff6pt27Zq2rSpZsyYIQ8Pt7hSFgCAUsUtzrFITExUdHS0atSooVdffVWHDx92PValShUbKwMAAOdyi2CxbNky7dq1S7t27VJoaGiOx2w8RQQAAJzHLY4n9OnTR8aYPL8AAEDx4RbBAgAAuAeCBeDOIiMlL6+z3wGgGCBYAO4qMlLavl3KzDz7nXABoBggWADuKj7+4m0AsAHBAnBXEREXbwOADQgWgLuKi5Pq15c8Pc9+j4uzuyIAcI/7WAC4AMIEgGKGGQsAAGAZggUAALAMwQIAAFiGYAEAACxDsAAAAJYhWAAAAMsQLAAAgGUIFgAAwDIECwAAYBmCBQAAsAzBAgAAWIZgAQAALEOwAAAAliFYAAAAyxAsAACAZQgWAADAMgQLAABgGYIFAACwDMECAABYhmABAAAsQ7AAAACWIVgAAADLECwAAIBlCBYAAMAyBAsAAGAZggUAALAMwQIAAFiGYAEAACxDsAAAAJYhWAAAAMsQLAAAgGUIFgAAwDIECwAAYBmCBQAAsAzBAgAAWIZgARSVyEjJy+vsdwAooQgWQFGIjJS2b5cyM89+J1wAKKEIFkBRiI+/eBsASgiCBVAUIiIu3gaAEoJgARSFuDipfn3J0/Ps97g4uysCgELhZXcBQKlBmABQCjBjAQAALEOwAAAAliFYAAAAyxAsAACAZQgWAADAMgQLAABgGYIFAACwDMECAABYhmABAAAsQ7AAAACWIVgAAADLECwAAIBlCBYAAMAyBAsAAGAZggUAALAMwQIAAFiGYAEAACxDsAAAAJYhWAAAAMsQLAAAgGUIFgAAwDIECwAAYBmCBQAAsAzBAgAAWIZgAQAALEOwAAAAliFYAAAAyxAsAACAZQgWAADAMgQLAABgGYIFAACwDMECAABYhmABAAAsQ7AAAACWcbtgkZaWpsaNG8vhcGjz5s12lwMAAM7hdsFi+PDhqlatmt1lAACAPLhVsFiyZImWLVumV1991e5SUMJ5NGqk27t3l0ejRnaXAgBuxcvuAvLrr7/+0kMPPaRPP/1UAQEB+XpOWlqa0tLSXO3k5GRJktPplNPpLJQ6C0N2re5UszvzaNRInjt2yEjy2LFDmfXrK2vrVrvLKvHYz4seY1703HnM81uzWwQLY4z69Omj/v37q1mzZkpISMjX88aNG6cxY8bk6l+2bFm+w0lxsnz5crtLKBVuj4+XkeSQzn6Pj9fixYttrqr0YD8veox50XPHMU9JScnXcg5jjCnkWi4oJiYmzz/851q/fr3WrFmj+fPna9WqVfL09FRCQoJq1aqlTZs2qXHjxhd8bl4zFmFhYTpy5IjKli1r1csodE6nU8uXL1eHDh3k7e1tdzkl3rkzFg5JmfXqMWNRBJxOp6KjoxUbG8t+XkT43VL03HnMk5OTFRISoqSkpIv+DbV1xmLgwIH65z//edFlwsPD9fzzz2vdunXy9fXN8VizZs3Us2dPzZo1K8/n+vr65nqOJHl7e7vdGyq5b91uZ/t2ZdavL0d8vLIiIuS5fbs87a6pFGE/L3qMedFzxzHPb722BouQkBCFhIRccrlJkybp+eefd7UTExPVqVMnzZ8/XzfeeGNhlohSKmvrVi1evFhdunQhVABAAbjFORY1atTI0Q4MDJQk1alTR6GhoXaUBAAA8uBWl5sCAIDizS1mLM4XHh4uG885BQAAF8CMBQAAsAzBAgAAWIZgAQAALEOwAAAAliFYAAAAyxAsAACAZQgWAADAMgQLAABgGYIFAACwDMECAABYhmABAAAsQ7AAAACWIVgAAADLECwAAIBlCBYAAMAyBAsAAGAZggUAALAMwQIAAFiGYAEAACxDsAAAAJYhWAAAAMsQLAAAgGUIFgAAwDIECwAAYBmCBQAAsAzBAgAAWIZgAQAALEOwAAAAliFYAAAAyxAsAACAZQgWAADAMgQLAABgGYIFSobISMnL6+x3AIBtCBZwf5GR0vbtUmbm2e+ECwCwDcEC7i8+/uJtAECRIVjA/UVEXLwNACgyBAu4v7g4qX59ydPz7Pe4OLsrAoBSy8vuAgBLECYAoFgoVcHCGCNJSk5OtrmSgnE6nUpJSVFycrK8vb3tLqdUYMyLntPpVGZmJmNehNjPi547j3n2387sv6UXUqqCxcmTJyVJYWFhNlcC4EJCQkLsLgHARZw8eVLlypW74OMOc6noUYJkZWUpMTFRQUFBcjgcdpeTb8nJyQoLC9P+/ftVtmxZu8spFRjzoseYFz3GvOi585gbY3Ty5ElVq1ZNHh4XPkWzVM1YeHh4KDQ01O4yLlvZsmXdbkd0d4x50WPMix5jXvTcdcwvNlORjatCAACAZQgWAADAMgQLN+Dr66vRo0fL19fX7lJKDca86DHmRY8xL3qlYcxL1cmbAACgcDFjAQAALEOwAAAAliFYAAAAyxAsAACAZQgWbiwtLU2NGzeWw+HQ5s2b7S6nxEpISFC/fv1Uq1Yt+fv7q06dOho9erTS09PtLq1EmTx5smrVqiU/Pz81bdpUq1evtrukEmvcuHG6/vrrFRQUpEqVKunOO+/Ujh077C6rVBk3bpwcDoeGDh1qdymWI1i4seHDh6tatWp2l1Hibd++XVlZWXr77be1bds2TZw4UVOnTtUzzzxjd2klxvz58zV06FA9++yz2rRpk26++WZ17txZ+/bts7u0EmnlypUaMGCA1q1bp+XLlysjI0MdO3bU6dOn7S6tVFi/fr2mTZumqKgou0spFFxu6qaWLFmiYcOGaeHChWrQoIE2bdqkxo0b211WqTF+/HhNmTJFv//+u92llAg33nijmjRpoilTprj6IiMjdeedd2rcuHE2VlY6HD58WJUqVdLKlSvVunVru8sp0U6dOqUmTZpo8uTJev7559W4cWO99tprdpdlKWYs3NBff/2lhx56SHPmzFFAQIDd5ZRKSUlJCg4OtruMEiE9PV0bNmxQx44dc/R37NhRa9assamq0iUpKUmS2KeLwIABA3Tbbbepffv2dpdSaErVh5CVBMYY9enTR/3791ezZs2UkJBgd0mlzu7du/XGG29owoQJdpdSIhw5ckSZmZmqXLlyjv7KlSvr4MGDNlVVehhjNGzYMN10001q2LCh3eWUaB9++KE2btyo9evX211KoWLGopiIiYmRw+G46NfPP/+sN954Q8nJyXr66aftLtnt5XfMz5WYmKhbb71V99xzjx588EGbKi+ZHA5HjrYxJlcfrDdw4EBt2bJFH3zwgd2llGj79+/XkCFD9P7778vPz8/ucgoV51gUE0eOHNGRI0cuukx4eLj++c9/6osvvsjxCzczM1Oenp7q2bOnZs2aVdillhj5HfPsXwKJiYlq27atbrzxRs2cOVMeHuRyK6SnpysgIEALFixQt27dXP1DhgzR5s2btXLlShurK9kGDRqkTz/9VKtWrVKtWrXsLqdE+/TTT9WtWzd5enq6+jIzM+VwOOTh4aG0tLQcj7kzgoWb2bdvn5KTk13txMREderUSR9//LFuvPFGhYaG2lhdyfXnn3+qbdu2atq0qd5///0S8wuguLjxxhvVtGlTTZ482dV3zTXX6I477uDkzUJgjNGgQYO0aNEixcbGKiIiwu6SSryTJ09q7969OfoeeOAB1a9fXyNGjChRh6E4x8LN1KhRI0c7MDBQklSnTh1CRSFJTExUdHS0atSooVdffVWHDx92PValShUbKys5hg0bpvvvv1/NmjVTixYtNG3aNO3bt0/9+/e3u7QSacCAAZo3b54+++wzBQUFuc5lKVeunPz9/W2urmQKCgrKFR7KlCmjChUqlKhQIREsgEtatmyZdu3apV27duUKb0z4WeO+++7T0aNHNXbsWB04cEANGzbU4sWLVbNmTbtLK5GyL+uNjo7O0T9jxgz16dOn6AtCicKhEAAAYBnOPgMAAJYhWAAAAMsQLAAAgGUIFgAAwDIECwAAYBmCBQAAsAzBAgAAWIZgAQAALEOwAOB2YmNj5XA4dOLECbtLAXAeggWAy5aZmamWLVvqrrvuytGflJSksLAw/ec//ymU7bZs2VIHDhxQuXLlCmX9AC4ft/QGcEXi4+PVuHFjTZs2TT179pQk9erVS7/88ovWr18vHx8fmysEUJSYsQBwRSIiIjRu3DgNGjRIiYmJ+uyzz/Thhx9q1qxZFwwVI0aM0NVXX62AgADVrl1bo0aNktPplHT2g93at2+vW2+91fUhbydOnFCNGjX07LPPSsp9KGTv3r26/fbbVb58eZUpU0YNGjTQ4sWLC//FA8iFTzcFcMUGDRqkRYsWqVevXtq6dauee+45NW7c+ILLBwUFaebMmapWrZq2bt2qhx56SEFBQRo+fLgcDodmzZqlRo0aadKkSRoyZIj69++vypUrKyYmJs/1DRgwQOnp6Vq1apXKlCmj3377TYGBgYXzYgFcFIdCAFhi+/btioyMVKNGjbRx40Z5eeX//y3jx4/X/Pnz9fPPP7v6FixYoPvvv1/Dhg3T66+/rk2bNunqq6+WdHbGom3btjp+/LiuuuoqRUVF6a677tLo0aMtf10ACoZDIQAsMX36dAUEBGjPnj36448/JEn9+/dXYGCg6yvbxx9/rJtuuklVqlRRYGCgRo0apX379uVY3z333KPu3btr3LhxmjBhgitU5GXw4MF6/vnn1apVK40ePVpbtmwpnBcJ4JIIFgCu2Nq1azVx4kR99tlnatGihfr16ydjjMaOHavNmze7viRp3bp1+uc//6nOnTvryy+/1KZNm/Tss88qPT09xzpTUlK0YcMGeXp6Kj4+/qLbf/DBB/X777/r/vvv19atW9WsWTO98cYbhfVyAVyMAYArkJKSYiIiIsyAAQOMMcbs3bvXBAUFmSlTpuS5/Kuvvmpq166do69fv36mXLlyOfr69+9v6tevb5YtW2a8vLzMt99+63rsu+++M5LM8ePH89zGyJEjTaNGjS7/RQG4bMxYALgiI0eOVFZWll5++WVJUo0aNTRhwgQ99dRTSkhIyLV83bp1tW/fPn344YfavXu3Jk2apEWLFuVY5quvvtL06dM1d+5cdejQQSNHjlTv3r11/PjxPGsYOnSovv76a+3Zs0cbN27UihUrFBkZaflrBXBpnLwJ4LKtXLlS7dq1U2xsrG666aYcj3Xq1EkZGRn65ptv5HA4cjw2fPhwTZ8+XWlpabrtttvUvHlzxcTE6MSJEzp8+LAaNWqkIUOG6Omnn5YkZWRkqFWrVgoPD9f8+fNznbw5aNAgLVmyRH/88YfKli2rW2+9VRMnTlSFChWKbCwAnEWwAAAAluFQCAAAsAzBAgAAWIZgAQAALEOwAAAAliFYAAAAyxAsAACAZQgWAADAMgQLAABgGYIFAACwDMECAABYhmABAAAs83/86S8WcetoEgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define two linearly dependent vectors\n", "vector_u = np.array([1, 2])\n", "vector_v = 2 * vector_u # Scalar multiple of vector_u\n", "\n", "# Create a grid of scalar values for the linear combination\n", "scalars = np.linspace(-2, 2, 10)\n", "\n", "# Create the plot\n", "plt.figure(figsize=(6, 6))\n", "plt.axhline(0, color='black', linewidth=0.5)\n", "plt.axvline(0, color='black', linewidth=0.5)\n", "plt.grid()\n", "\n", "# Plot the span of the vectors\n", "for a in scalars:\n", " for b in scalars:\n", " linear_combination = a * vector_u + b * vector_v\n", " plt.plot(linear_combination[0], linear_combination[1], 'ro', markersize=2)\n", "\n", "# Plot the original vectors\n", "plt.quiver(0, 0, vector_u[0], vector_u[1], angles='xy', scale_units='xy', scale=1, color='b', label='Vector u')\n", "plt.quiver(0, 0, vector_v[0], vector_v[1], angles='xy', scale_units='xy', scale=1, color='g', label='Vector v')\n", "\n", "plt.xlim(-5, 5)\n", "plt.ylim(-5, 5)\n", "plt.title(\"Span of Linearly Dependent Vectors in 2D\")\n", "plt.xlabel(\"X-axis\")\n", "plt.ylabel(\"Y-axis\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "52f87a78", "metadata": {}, "source": [ "**Review**\n", "\n", "---\n", "\n", "If you have a set of vectors which does not add dimensionality to the span (i.e. the vectors are parallel in 2D) then it is said that these vectors are **linearly dependent**. For all other vectors they will be **linearly independent**. You will see the topic of linear dependence/independence come up when describing a matrix. This description of span and linear dependence/independence also applies to 3D and higher dimensions. \n", "\n" ] }, { "cell_type": "markdown", "id": "3b6c0b0b", "metadata": {}, "source": [ "### 2.5 Matrices\n", "\n", "A matrix is a rectangular array of scalar values arranged in **rows** and **columns**\n", "\n", "$$\n", "A = \\begin{bmatrix}a_{i,j} & a_{i,j + 1} & ... & a_{i,j + N}\\\\ a_{i + 1,j} & a_{i + 1,j + 1} & ... & a_{i + 1,j + N} \\\\ . & . & . \\\\ . & . & . \\\\ . & . & . \\\\ a_{i + M,j} & a_{i + M,j + 1} & ... & a_{i + M,j + N} \\end{bmatrix}\n", "$$\n", "\n", "Where $i$ is the **row** index and $j$ is the **column** index for each element in the matrix. A matrix will have two dimensions listed as MxN. M is the number of rows and N is the number of columns. This will be important when we go into the algebra side. An example of a matrix will be a list or temperature values described by their latitude and longitude position\n", "\n", "\n", "![Example Matrix](../_static/matrix.jpg)\n", "\n", "**Question**: From the above example, what are the dimensions of the 2D matrix (i.e. What is the value for M and N)?\n", "\n", "Solution: 4 x 4. _Note: A matrix does not have to be a square, it can also be a MxN matrix where M > N or N < M_\n", "\n" ] }, { "cell_type": "markdown", "id": "23da7e68", "metadata": {}, "source": [ "### 2.6 Tensors\n", "\n", "Scalars, Vectors and Matrices are all different order **Tensors**. Tensors are described by their order where the order is the description on the number of the dimensions of the object\n", "\n", "* **Scalars** are **0th order tensor** (a single number)\n", "* **Vectors** are **1st order tensors** (a list of numbers [x y z])\n", "* **Matrices** are **2nd order tensors** ([M] rows and [N] columns)\n", "\n", "There are also 3rd order tensors. An example of this is a tensor with dimensions **Latitude x Longitude x Time**. \n", "\n", "![Example Tensor](../_static/tensor.jpg)\n", "\n", "There can also be higher order tensors but for our purposes we will only be using 2nd order tensors (a matrix).\n", "\n", "_Note: The definition of the word tensor is a bit confusing because it depends on the field you are in to determine it's definition. \n" ] }, { "cell_type": "markdown", "id": "b20b4c51", "metadata": {}, "source": [ "## 3 | The Algebra in Linear Algebra\n", "\n", "### 3.1 | Matrix Addition\n", "\n", "### 3.2 | Matrix Multiplication \n", "\n", "### 3.3 | Linear Transformations" ] }, { "cell_type": "markdown", "id": "fafa3a5e", "metadata": {}, "source": [ "## 4 | The Determinant and Inverse Matrices" ] } ], "metadata": { "kernelspec": { "display_name": "workshop-docs", "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.13" } }, "nbformat": 4, "nbformat_minor": 5 }