diff --git a/math/linear-algebra-for-ml/README.md b/math/linear-algebra-for-ml/README.md new file mode 100644 index 0000000..4818663 --- /dev/null +++ b/math/linear-algebra-for-ml/README.md @@ -0,0 +1,2 @@ +- Course: Linear Algebra for Machine Learning and Data Science +- Course link: https://www.coursera.org/learn/machine-learning-linear-algebra/home/welcome diff --git a/math/linear-algebra-for-ml/linear_systems_as_matrices.ipynb b/math/linear-algebra-for-ml/linear_systems_as_matrices.ipynb new file mode 100644 index 0000000..93c577e --- /dev/null +++ b/math/linear-algebra-for-ml/linear_systems_as_matrices.ipynb @@ -0,0 +1,671 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "560379d3", + "metadata": {}, + "source": [ + "# Representing Systems of Equations as Matrices" + ] + }, + { + "cell_type": "markdown", + "id": "f77b4377", + "metadata": {}, + "source": [ + "By completing this lab, you will be able to use basic programming skills with Python and the [`NumPy`](https://numpy.org/doc/stable/index.html) package to represent systems of linear equations as matrices. In this notebook, you will:\n", + "\n", + "- Use the [`NumPy`](https://numpy.org/doc/stable/index.html) linear algebra package to model systems of linear equations as matrices.\n", + "- Evaluate the determinant of the matrix and examine the relationship between matrix singularity and the number of solutions of the linear system." + ] + }, + { + "cell_type": "markdown", + "id": "39688a16", + "metadata": {}, + "source": [ + "# Table of Contents\n", + "\n", + "- [ 1 - Representing and Solving System of Linear Equations using Matrices](#1)\n", + " - [ 1.1 - System of Linear Equations](#1.1)\n", + " - [ 1.2 - Systems of Linear Equations using Matrices](#1.2)\n", + " - [ 1.3 - Evaluating Determinant of a Matrix](#1.3)\n", + "- [ 2 - Visualizing 2x2 Systems as Plotlines](#2)\n", + " - [ 2.1 - Elimination Method](#2.1)\n", + " - [ 2.2 - Graphical Representation of the Solution](#2.2)\n", + "- [ 3 - System of Linear Equations with No Solutions](#3)\n", + "- [ 4 - System of Linear Equations with Infinite Number of Solutions](#4)" + ] + }, + { + "cell_type": "markdown", + "id": "d6165c13", + "metadata": {}, + "source": [ + "## Packages\n", + "\n", + "Load the `NumPy` package to access its functions. Additionally, load the `matplotlib.pyplot` package, which you will use for creating the plots." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "fa3dcf04", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from utils import plot_lines" + ] + }, + { + "cell_type": "markdown", + "id": "3a5552bd", + "metadata": {}, + "source": [ + "\n", + "## 1 - Representing System of Linear Equations using Matrices" + ] + }, + { + "cell_type": "markdown", + "id": "7de33135", + "metadata": {}, + "source": [ + "\n", + "### 1.1 - System of Linear Equations\n", + "\n", + "A **system of linear equations** (or **linear system**) is a collection of one or more linear equations involving the same variables. For example:\n", + "\n", + "\n", + "$$\n", + "\\begin{cases} \n", + "-x_1+3x_2=7, \\\\ 3x_1+2x_2=1, \\end{cases}\\tag{1}\n", + "$$\n", + "\n", + "is a system of two equations with two unknown variables $x_1$ and $x_2$. **To solve** a system of linear equations means to find values for the variables $x_1$ and $x_2$ such that all of its equations are simultaneously satisfied.\n", + "\n", + "A linear system is **singular** if it has no unique solution, and otherwise, it is said to be **non-singular**." + ] + }, + { + "cell_type": "markdown", + "id": "stone-century", + "metadata": {}, + "source": [ + "\n", + "### 1.2 - System of Linear Equations as Matrices\n", + "In the lecture, you saw that we represented linear systems of equations as matrices. The system $(1)$ represented as a matrix is as follows:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "-1 & 3 & 7 \\\\\n", + "3 & 2 & 1\n", + "\\end{bmatrix}\n", + "$$ \n", + "\n", + "Each row represents an equation in the system. The first column represents the coefficients of $x_1$ in the system, the second column represents the coefficients of $x_2$, and the third column represents the constant values on the right side of the equals signs in the equations.\n", + "\n", + "We could further choose to represent the coefficients of the system $(1)$ as its own matrix $A$ as follows:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "-1 & 3\\\\\n", + "3 & 2\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "and the outputs of the system as a vector $b$ like this:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "7 \\\\\n", + "1\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "We show the matrix $A$ and vector $b$ in `NumPy` below:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e5758e1b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Matrix A:\n", + "[[-1. 3.]\n", + " [ 3. 2.]]\n", + "\n", + "Array b:\n", + "[7. 1.]\n" + ] + } + ], + "source": [ + "A = np.array([\n", + " [-1, 3],\n", + " [3, 2]\n", + " ], dtype=np.dtype(float))\n", + "\n", + "b = np.array([7, 1], dtype=np.dtype(float))\n", + "\n", + "print(\"Matrix A:\")\n", + "print(A)\n", + "print(\"\\nArray b:\")\n", + "print(b)" + ] + }, + { + "cell_type": "markdown", + "id": "cb8d9457", + "metadata": {}, + "source": [ + "What are the dimensions of matrix $A$ and vector $b$?\n", + "\n", + "You can confirm the dimensions of $A$ and $b$ using the `shape` attribute (you can also use `np.shape()` as an alternative)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ddc3b411", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shape of A: (2, 2)\n", + "Shape of b: (2,)\n" + ] + } + ], + "source": [ + "print(f\"Shape of A: {A.shape}\")\n", + "print(f\"Shape of b: {b.shape}\")\n", + "\n", + "# print(f\"Shape of A: {np.shape(A)}\")\n", + "# print(f\"Shape of A: {np.shape(b)}\")" + ] + }, + { + "cell_type": "markdown", + "id": "ee2f505f", + "metadata": {}, + "source": [ + "In the lectures, you manually solved some simple linear systems with two equations. However, you have yet to formalize the approach to solving systems of linear equations. In this lab, we use a handy function to solve the equations.\n", + "\n", + "The `NumPy` linear algebra package provides a quick and reliable way to solve systems of linear equations using the function `np.linalg.solve(A, b)`. Here, $A$ is a matrix, as you've seen previously, where each row represents one equation in the system, and each column corresponds to the variables $x_1$ and $x_2$. $b$ is a 1-D array of the free (right side) coefficients. More information about the `np.linalg.solve()` function can be found in the [documentation](https://numpy.org/doc/stable/reference/generated/numpy.linalg.solve.html).\n", + "\n", + "To find the solution of the system $(1)$, we will simply use the `np.linalg.solve(A, b)` function. The result will be saved in the 1-D array $x$, where the elements correspond to the values of $x_1$ and $x_2$:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "5e87fd89", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solution: [-1. 2.]\n" + ] + } + ], + "source": [ + "x = np.linalg.solve(A, b)\n", + "\n", + "print(f\"Solution: {x}\")" + ] + }, + { + "cell_type": "markdown", + "id": "15e5933b", + "metadata": {}, + "source": [ + "The first column in this output is the solution to the variable $x_1$, and the second column is the solution to the variable $x_2$. Confirm that the solution is correct by substituting these values of $x_1$ and $x_2$ into the original system of equations." + ] + }, + { + "cell_type": "markdown", + "id": "0720e16c", + "metadata": {}, + "source": [ + "\n", + "### 1.3 - Evaluating Determinant of a Matrix\n", + "\n", + "The matrix $A$ corresponding to the linear system $(1)$ is a **square matrix** - it has the same number of rows and columns. In the case of a square matrix, it is possible to calculate its determinant - a real number which characterizes some properties of the matrix. A linear system containing two (or more) equations with the same number of unknown variables will have one solution if and only if matrix $A$ has a non-zero determinant.\n", + "\n", + "In this course, it's useful to calculate properties like the determinant by hand to develop an intuition for how it is calculated, but these calculations are also easily done by a computer.\n", + "\n", + "Let's calculate the determinant using the `NumPy` linear algebra package. You can do it with the `np.linalg.det(A)` function. More information about it can be found in [the official documentation](https://numpy.org/doc/stable/reference/generated/numpy.linalg.det.html)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6cb492c2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Determinant of matrix A: -11.00\n" + ] + } + ], + "source": [ + "d = np.linalg.det(A)\n", + "\n", + "print(f\"Determinant of matrix A: {d:.2f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "76d5e51f", + "metadata": {}, + "source": [ + "Note that its value is non-zero, as expected for a system with exactly one solution." + ] + }, + { + "cell_type": "markdown", + "id": "acoustic-click", + "metadata": {}, + "source": [ + "\n", + "## 2 - Visualizing 2x2 Systems as Plotlines" + ] + }, + { + "cell_type": "markdown", + "id": "otherwise-madness", + "metadata": {}, + "source": [ + "You can see how easy it is to use contemporary packages to solve linear equations and calculate useful properties of matrices like the determinant. In this section, we will visualize a 2x2 system as plot lines, as you saw in the ungraded plugin." + ] + }, + { + "cell_type": "markdown", + "id": "678e3bd9", + "metadata": {}, + "source": [ + "\n", + "### 2.1 - Representation of the system as a matrix\n", + "\n", + "Before you visualize the system $(1)$, you would want to represent the system in a matrix with the form:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "-1 & 3 & 7 \\\\\n", + "3 & 2 & 1\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "To do this, you can either create a new matrix with these values or horizontally stack the $A$ and $b$ matrices you created earlier. Note that the `np.hstack()` function will require you to reshape array $b$ before it is stacked, as its current shape is $(2,)$. The code below includes the `.reshape((2, 1))` command to allow the horizontal stack to be completed." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ba69936f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[-1. 3. 7.]\n", + " [ 3. 2. 1.]]\n" + ] + } + ], + "source": [ + "A_system = np.hstack((A, b.reshape((2, 1))))\n", + "\n", + "print(A_system)" + ] + }, + { + "cell_type": "markdown", + "id": "b8d17bbc", + "metadata": {}, + "source": [ + "Let's review how to extract a row of a matrix, which will help later in performing the required operations with the rows. Remember that indexing of arrays in Python starts from zero, so to extract the second row of a matrix, you need to use the following code:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "aac1370c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3. 2. 1.]\n" + ] + } + ], + "source": [ + "print(A_system[1])" + ] + }, + { + "cell_type": "markdown", + "id": "4ac3d039", + "metadata": {}, + "source": [ + "\n", + "### 2.2 - Graphical Representation of the Solution\n", + "\n", + "A linear equation in two variables (here, $x_1$ and $x_2$) can be represented geometrically by a line in the plane. This is called the **graph of the linear equation**. In the case of the system of two equations, there will be two lines corresponding to each of the equations, and the solution will be the intersection point of those lines.\n", + "\n", + "In the following code, you will define a function `plot_lines()` to plot the lines and use it later to represent the solution which you found earlier. Do not worry if the code in the following cell is not clear - at this stage, it is not important to understand." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "5e9ad8c1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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7x2goqKC6urqVvuAT/cO1vnhD3/IoEGDuOCCT6cYjfcOZvvud7/LHXfcQVVVFXvssQfr1q1rs2Yu7y2XbQqFApkkk0aXIpInS5Ys4aSTTuLqq69m7ty5XHTRRdx///1Ntlu0aBGffPIJu+yyS7Ov05GRZY8ePRgxYgQPPPAAEydOrL//gQceYMKECe16H1u2bGHDhg3t2ibX996Wur2DdXr37k2fPn3qw1BrpkyZwh133EF1dTVDhgxpd+06HXn/hUSBTJJJo0sRyYPXX3+dsWPHMnXqVM466yxGjRrFvvvuS3V1NaNHj67fbs2aNXz961/n5ptvbnGU2NGR5dSpUzn99NMZNWoUhxxyCNdffz1vvfUWkydPrt9m1qxZzJo1i5deegmAadOmcdxxx7HDDjvg7tx+++1UV1c3WGerbptddtmFdevWNdkm1/cepvPOO49bb72Vu+++mx122KF+T6G7138OG7/3XN5brtsUksQHMjPrDfwCOBHYEXgGmOLuT8XamIQve3RZeTZMrtLoUkRytnbtWo499liOP/54fvaznwFQXl7OxIkTueiii+qXR9iwYQMnnngiF110UShn6H35y19mzZo1zJgxg7fffpvy8nLmzZvHbrvtVr9NTU0N//rXv+o/XrlyJV/72tdYuXIl2223Hfvuuy/33XcfxxxzTE7b5Prew3bttdcCcOSRRza4f9q0afzyl78Emr536Pz7L0SJD2TATcC+wDeA/wBfAx40s33c/c1YO5Pw1Y0uX31Uo0sRaZc+ffrw4osvNrl/zpw59f92d8444wyOOOIITj/99NB6Offcczn33HNbfPziiy9usNDq7NmzgdaPxavbpjm5vPfOaK12Nndv9v7sY8gav/dcXz/XHgpFoncnmNk2wARgmrtXu/syd78YWAZ8O9bmJBpZ17rUgrEikm+PPfYYc+bM4e6772b48OEMHz6c559/Pu62InPUUUcxceJE5s2bx5AhQwp2UdU0SPoesm5AV+DjRvevBw6Nvh2JhUaXIhKSQw89lC1FvAh19lpohXZmbNpYS7sLk8LMFgKbgVOBlcBpwC3AMnffu9G2k4BJAKWlpSMqKysj6bG1M26SXCvqeq3V6rbxfUY9ciY9NrzLy589nzd3b37hxnzUyre01oq6nmrFW2u77bbL6Yy6Ops3b85pral8ibKeaiWrVhj1li1bxvvvv9/sYxUVFYvdfWSTB9w90TdgMPAI4MAm4EngNuCF1p5XVlbmUamqqkplrajrtVnr+bvcL8R9Wk/3d5aFWyuP0lor6nqqFW+tF154oV3bf/DBBx2u1RFR1lOtZNUKo15r3w/AIm8mlyR+ruPur7j7F4ASYBd3HwV0B5bH25lErm50+clHUKlrXYqISHIkPpDVcfcP3f1tM9sBOAb4S9w9SQzGXwW9+wdnXS68Ju5uREREcpL4QGZmx5jZGDPb3cy+CFQB/wLCvwqqFJ7ssy7nToOaV+LtR0REJAeJD2TAdsAs4CXgf4EFwNHu/kmsXUl8ysfD/qdpdCkiIomR+EDm7pXuPtjdt3L3ge7+HXdv/tQGKR7jr9boUkREEiPxgUykWRpdiohIgiiQSXppdCkiIgmhQCbpptGliIgkgAKZpJtGlyIikgAKZJJ+WjBWRFLu0Ucf5YQTTmDQoEGYGbNnz87peRdffDFm1uA2YMCABttce+217L777pSWljJixAjmz58fwjvonLoet95665x7zH7v2267bbPvvaOv3REKZFIcsheMfWxW3N2IiORVbW0t5eXlXHnllWyzzTbteu7ee+/N22+/XX97/vnn6x+bM2cOU6ZM4Uc/+hELFizg4IMPZsyYMaxYsSLfb6GJM844g4svvrjN7bJ7fOaZZ9rVY917f/nll5u8986+dnspkElxyB5dzpsGNcvi7UdECsadd97JVlttxeuvv15/35QpUxg8eDCrVq2KsbPcjR07lpkzZ3LyySfTpUv7frV369aNAQMG1N9KS0vrH7vssss444wzOOecc9h77725+uqrGThwINddd139NnF//rJ7HDp0aLM9tqTuvffv37/Je+/sa7eXApkUj/rR5XqoPFujSxEB4OSTT2bYsGHMmDEDgEsvvZQ//vGP/O1vf6N///45v87MmTMpKSlh4MCBlJSUNHsrxHHfq6++yqBBg9h999059dRTefXVVwHYuHEjixcv5uijj26w/dFHH83ChQvrP87X568jcu2xJXXvfdiwYQ3eez5eu7265f0VRQrZ+Ktg2UOfji4PuyDujkTS63vW4kO9w6x7qbdrczNj5syZHHfccQwePJhLLrmEhx9+mL322os33niD008/ndWrV9O9e3emT5/OSSed1OzrTJ48mVNOOYXa2lpKSkqa3WbQoEHtfjth+vznP8/s2bMZMmQIq1evZsaMGRx88MH885//ZMOGDWzevLlJqOrfvz8PPvhg/cetff7qnHDCCcyfP58jjzySP/3pT3nrv6amJqcem5P93l977TUuu+yy+vfet2/fTr12RyiQSXGpG13OPjEYXQ4dC/32jLsrEYnZ0UcfzQEHHMBPfvIT7r33Xg444AAgGGldccUVDB8+nNWrVzNixAiOPfZYevbs2eQ1+vTpQ58+fVi3bh29e3cscv7kJz/hkksuaXWbqqoqRo8e3aHXb2zMmDENPj7wwAPZY489uOWWWzj11FOBIHBlc/cm97X0+avz3e9+l3POOYdbbrmlxV5mzpzJzJkz6z/esGEDZsall15af999993HYYcd1uS5ufTYWPZ733333TniiCPq3/vUqVM79dodoUAmxadudPnM7cHocnIVtPOYCxHJQSt7qjoTWsLw8MMPs2TJEty9wR6RgQMHMnDgQAB23HFHdthhB2pqath1112bvEbjQNGclgJFnf/3//4fX/va11p9jeZq50tJSQmf/exnefnll+nXrx9du3Zl5cqVDbZZvXp1k71GLX3+6lRUVFBdXd1q7bo9jBCcpPCLX/yCQYMGccEFn04yGu9hbE+Pbcl+7/l+7VwokElx0uhSRDKWLFnCSSedxNVXX83cuXO56KKLuP/++5tst2jRIj755BN22WWXZl8nHyPLfv360a9fv/a/iTz5+OOPeemll6ioqKBHjx6MGDGCBx54gIkTJ9Zv88ADDzBhwoT6j3P9/LWlbg8jfBrY+/Tpw557tjzFyLXHXGS/93y/di4UyKQ4aXQpIsDrr7/O2LFjmTp1KmeddRajRo1i3333pbq6usFYcM2aNXz961/n5ptvbnFclY+RZUfV1taybFlw9viWLVtYsWIFzz77LH369KnfozZr1ixmzZrFSy+9VP+8733ve3zpS19i1113ZfXq1fziF7/gww8/5Bvf+AYAU6dO5fTTT2fUqFEMHz6cW2+9lbfeeovJkycDuX/+wpTd4yGHHML111/foMdc3vvy5cu57LLLGrz3XF87XxTIpHhljy7nnAXfrtboUqSIrF27lmOPPZbjjz+en/3sZwCUl5czceJELrroIh5//HEgOJbpxBNP5KKLLuLggw+Os+UWLVq0qH7PDsD06dOZPn063/jGN+oXia2pqeFf//pX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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_lines(A_system)" + ] + }, + { + "cell_type": "markdown", + "id": "homeless-statistics", + "metadata": {}, + "source": [ + "Notice how the lines intersect at $(x_1,x_2) = (-1, 2)$, the solution to the system of equations." + ] + }, + { + "cell_type": "markdown", + "id": "696ec734", + "metadata": {}, + "source": [ + "\n", + "## 3 - System of Linear Equations with No Solutions\n", + "\n", + "Given another system of linear equations:\n", + "\n", + "$$\n", + "\\begin{cases} \n", + "-x_1+3x_2=7, \\\\ 3x_1-9x_2=1, \\end{cases}\\tag{2}\n", + "$$\n", + "\n", + "Let's find the determinant of the corresponding matrix." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "4780129a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Determinant of matrix A_2: 0.00\n" + ] + } + ], + "source": [ + "A_2 = np.array([\n", + " [-1, 3],\n", + " [3, -9]\n", + " ], dtype=np.dtype(float))\n", + "\n", + "b_2 = np.array([7, 1], dtype=np.dtype(float))\n", + "\n", + "d_2 = np.linalg.det(A_2)\n", + "\n", + "print(f\"Determinant of matrix A_2: {d_2:.2f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "e60bd6f9", + "metadata": {}, + "source": [ + "It is equal to zero, thus the system cannot have one unique solution. It will either have infinitely many solutions or none. The consistency of it will depend on the free coefficients (right-side coefficients). You can run the code in the following cell to check that the `np.linalg.solve()` function will give an error due to singularity." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "14f088b4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Singular matrix\n" + ] + } + ], + "source": [ + "try:\n", + " x_2 = np.linalg.solve(A_2, b_2)\n", + "except np.linalg.LinAlgError as err:\n", + " print(err)" + ] + }, + { + "cell_type": "markdown", + "id": "498c259c", + "metadata": {}, + "source": [ + "Construct the matrix corresponding to this linear system:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "86947dce", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[-1. 3. 7.]\n", + " [ 3. -9. 1.]]\n" + ] + } + ], + "source": [ + "A_2_system = np.hstack((A_2, b_2.reshape((2, 1))))\n", + "print(A_2_system)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3d204598", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAAJVCAYAAABwN+m0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABMkklEQVR4nO3de5ycdX33/9cnJMhhEyBmwRgP1cCC3pxsAgp4yIKiHOqRoL0FRS0pxVYqVgX0LthC7AEVbxFtvalSPECs9UABOfzYIBClJJUAIlREgSIhCVHJckhI8vn9MZOw2ezszh5mrrlmXs/H43rAXnPNvL8zmd1973Vd870iM5EkSVJxJhU9AEmSpE5nIZMkSSqYhUySJKlgFjJJkqSCWcgkSZIKZiGTJEkq2OSiB1CUXXfdNffcc8+mZD3xxBPsvPPObZfV7DyzypXV7DyzzGqVPLPKldXsvGXLlq3OzO5tbsjMjlx6enqyWfr6+toyq9l5ZpUrq9l5ZpnVKnlmlSur2XnA0hyil3jIUpIkqWAWMkmSpIJZyCRJkgpmIZMkSSqYhUySJKlgHTvthSRpYj3++OOsXLmSZ555ZsRtd9llF37+8583YVTNzzOrXFkTmTdlyhR23313pk2bNur7WsgkSeP2+OOP8+ijjzJr1ix23HFHImLY7deuXcvUqVObNLrm5plVrqyJystMnnrqKR5++GGAUZcyD1lKksZt5cqVzJo1i5122mnEMia1o4hgp512YtasWaxcuXLU97eQSZLG7ZlnnmHHHXcsehhS4Xbccce6DtsPZiGTJE0I94xJY/8+sJBJkiQVzEImSZJUMAuZJEkFu+iii3jJS17CDjvswJw5c7jpppuG3f6LX/wi+++/P7NmzWLatGkccsghXHnllUNuM23atJrbFO3Tn/40Bx10ENOmTaO7u5s/+qM/4q677hrxfvU8tzI8/4EsZJIkFejyyy/ntNNO46yzzuKnP/0phx56KEcddRQPPvhgzfu84AUv4O///u/50Y9+xNKlSzn88MN561vfyh133LHNNv/1X/9Vc5tGOemkkzjnnHNG3G7x4sWceuqpLFmyhBtuuIHJkyfz+te/njVr1gx7v3qeW5HPfywsZJKkjvbtb3+b5zznOTzwwANb1p122mnMnj2bRx99tOH5n/3sZznppJM4+eSTednLXsYXvvAFZs6cyZe+9KWa93nLW97CUUcdxezZs+np6eG8885j6tSp/PjHP95mmz333LPmNkU/92uuuYb3ve997Lvvvuy3335ceumlrFq1iltvvXXY+9Xz3OrZppVYyCRJHe24445jv/3249xzzwXg/PPP51vf+hY//OEP2WOPPep+nIULF9LV1cXMmTPp6uoachl8KHL9+vUsW7aMI488cqv1Rx55JEuWLKkrd+PGjVx22WX09/dz6KGHjmqbiXruE2Xt2rVs2rSJXXfdte77jOf5txJn6pckNUR8bLhbGzcLe/7D6LaPCBYuXMgxxxzD7NmzOe+887jhhhvYa6+9eOihhzjxxBNZuXIlU6ZM4eyzz+btb3/7kI9zyimncPzxx9Pf309XV9eQ28yaNWurr1evXs3GjRu3KT977LEH119//bDjvvPOOznkkEN4+umn6erq4rvf/S777bffqLYZ7rkDvPnNb+amm27iiCOO4Ktf/eqw45kIp512GgceeCAHH3zwiNtOxPNvJRYySVLHO/LIIznooIP45Cc/yRVXXMFBBx0EwOTJk7ngggs48MADWblyJXPmzOFNb3oTO+200zaPMX36dKZPnz6my/AMnrsqM0ecz2rvvffm5ptvZsOGDXznO9/hve99L4sXL2bffffdapvbb7+d3/3udzW3qfXcAT784Q9z8sknc8kllww7loULF7Jw4cItX69bt46I4Pzzz9+y7uqrr+Y1r3lNzcc4/fTTufnmm7n55pvZbrvths2r97nVs02rsJBJkhpiuD1Vzb5W4UhuuOEGli9fTmZutbdq5syZzJw5E4Ddd9+d3XbbjdWrV/OiF71om8cYXEqGMriUzJgxg+22244VK1Zstd3KlStHPGS4/fbbM3v2bKZOncrcuXO57bbb+NznPsfFF1+81TZ77rknQM1taj13gN7eXhYvXjzsOODZvYObffzjH2fWrFl86EMf2rJu8N7BgT784Q9z2WWX0dfXx0tf+lLWrl07YmY9z62ebVqFhUyS1NGWL1/O29/+dr7whS9w5ZVXcuaZZ3LNNddss93SpUt55plneOELXzjk44zlkOX222/PnDlzuO6665g/f/6W9ddddx3veMc7RvU8Nm3axLp160a1Tb3PfSSb9w5uNnXqVKZPn76lDA3ntNNO47LLLmPx4sXss88+o87ebCzPv5VYyCRJHeuBBx7g6KOP5vTTT+f9738/Bx98MPvvvz+LFy9m3rx5W7Z77LHHeM973sPFF19c81DiWA9Znn766Zx44okcfPDBHHbYYXz5y1/mN7/5DaeccsqWbS688EIuvPBC7rnnHgDOOOMMjjnmGHbbbTcyk29+85ssXrx4q3m2Nm/zwhe+kLVr126zTb3PvZE++MEPcumll/K9732P3Xbbbcuewszc8hoOfu71PLd6t2klpS9kETEV+FvgbcDuwE+B0zLztkIHJklqaWvWrOFNb3oTxx57LH/9138NwL777sv8+fM588wzt0yPsG7dOt72trdx5plnNuQTeu985zt57LHHOPfcc3nkkUfYd999ueqqq3jxi1+8ZZvVq1dz7733bvl6xYoVnHDCCaxYsYJddtmF/fffn6uvvpo3vvGNdW1T73NvtIsuugiAI444Yqv1Z5xxBp/+9KeBbZ87jP/5t6LSFzLg/wH7A+8F/gc4Abg+Il6emQ8XOjJJUsuaPn06P//5z7dZf/nll2/5/8zkpJNO4vDDD+fEE09s2FhOPfVUTj311Jq3n3POOVtNtPq1r30NGP5cvM3bDKWe5z4ew2UPlJlDrh94Dtng517v49c7hlZR6nnIImJH4B3AGZm5ODPvy8xzgPuAPyt0cJKk0rvlllu4/PLL+d73vseBBx7IgQceyJ133ln0sJrm9a9/PfPnz+eqq65in332adlJVdtB2feQTQa2A54etP4p4NXNH44kqZ28+tWvZtOmTUUPozAD50JrtU/GtpuotbuwLCJiCbAReBewAvhj4BLgvszce9C2C4AFAN3d3XMWLVrUlDEO94mbMmc1O8+scmU1O8+sYrN22WWXuj5Rt9nGjRvrmmtqojQzz6xyZTUi77777uP3v//9kLf19vYuy8y529yQmaVegNnAjUACG4D/BL4O3D3c/Xp6erJZ+vr62jKr2XlmlSur2XlmFZt19913j2r7xx9/fMxZY9HMPLPKldWIvOG+H4ClOUQvKfU5ZACZ+cvMfB3QBbwwMw8GpgC/KnZkkiRJ9Sl9IdssM5/IzEciYjfgjcD3ix6TJElSPcp+Uj8R8UYqxfIeYE/gH4F7gcZfBVWSJGkCtMMesl2AC6kUsn8FbgaOzMxnCh2VJElSnUq/hywzFwHN+bikJElSA7TDHjJJkqRSs5BJkiQVzEImSZJUMAuZJElSwSxkkiQV7KKLLuIlL3kJO+ywA3PmzOGmm24advsvfvGL7L///syaNYtp06ZxyCGHcOWVVw65zbRp02pu0y5G+/oB/OhHP+LNb37zltfwa1/72rDbRMSQ20wUC5kkSQW6/PLLOe200zjrrLP46U9/yqGHHspRRx3Fgw8+WPM+L3jBC/j7v/97fvSjH7F06VIOP/xw3vrWt3LHHXdss81//dd/1dymUU466STOOeechufA2F4/qFy7dd999+Xzn/88O+6445i3mSgWMklSR/v2t7/Nc57zHB544IEt60477TRmz57No48+2vD8z372s5x00kmcfPLJvOxlL+MLX/gCM2fO5Etf+lLN+7zlLW/hqKOOYvbs2fT09HDeeecxdepUfvzjH2+zzZ577llzm6Kf+0QYy+sHcPTRR7Nw4UKOO+44Jk0aug7Vs81EsZBJkjracccdx3777ce5554LwPnnn8+3vvUtfvjDH7LHHnvU/TgLFy6kq6uLmTNn0tXVNeQy+FDa+vXrWbZsGUceeeRW64888kiWLFlSV+7GjRu57LLL6O/v59BDDx3VNhP13IsyEa9fqyj9xLCSpBb1V1HzpqmNzD0/R7V5RLBw4UKOOeYYZs+ezXnnnccNN9zAXnvtxUMPPcSJJ57IypUrmTJlCmeffTZvf/vbh3ycU045heOPP57+/n66urqG3GbWrFlbfb169Wo2bty4TfnZY489uP7664cd95133skhhxzC008/TVdXF9/97nfZb7/9RrXNcM8d4M1vfjM33XQTRxxxBF/9autdkXA8r1+rsZBJkjrekUceyUEHHcQnP/lJrrjiCg466CAAJk+ezAUXXMCBBx7IypUrmTNnDm9605vYaaedtnmM6dOnM336dNauXcvUqaOrnBFbl9fM3GbdYHvvvTc333wzGzZs4Dvf+Q7vfe97Wbx4Mfvuu+9W29x+++387ne/q7lNrecO8OEPf5iTTz6ZSy65ZNixLFy4kIULF275et26dUQE559//pZ1V199Na95zWtqPsYnP/lJzjvvvGFz+vr6mDdv3jbrx/L6tRoLmSSpMYbZUzWW0tJIN9xwA8uXLyczt9rbMnPmTGbOnAnA7rvvzm677cbq1at50YtetM1jDC4lQxlcSmbMmMF2223HihUrttpu5cqVIx4y3H777Zk9ezZTp05l7ty53HbbbXzuc5/j4osv3mqbPffcE6DmNrWeO0Bvby+LFy8edhzw7N7BzT7+8Y8za9YsPvShD21ZN3jv4GB/+Zd/yQknnADAE088wc4777zNNoNf9/G8fq3GQiZJ6mjLly/n7W9/O1/4whe48sorOfPMM7nmmmu22W7p0qU888wzvPCFLxzyccZyyHL77bdnzpw5XHfddcyfP3/L+uuuu453vOMdo3oemzZtYt26daPapt7nPpLNewc3mzp1KtOnT99SBusxY8YMZsyYAdRf2Cfy9SuahUyS1LEeeOABjj76aE4//XTe//73c/DBB7P//vuzePHirQ6NPfbYY7znPe/h4osvrnkobKyHLE8//XROPPFEDj74YA477DC+/OUv85vf/IZTTjllyzYXXnghF154Iffccw8AZ5xxBscccwy77bYbmck3v/lNFi9evNU8Y5u3eeELX8jatWu32abe597qxvL6QWVKi/vuuw+oFNUHH3yQ22+/nenTp2/ZE1fPNhPFQiZJ6khr1qzhTW96E8ceeyx//dd/DcC+++7L/PnzOfPMM7dMD7Fu3Tre9ra3ceaZZ9b8FON4vPOd7+Sxxx7j3HPP5ZFHHmHfffflqquu4sUvfvGWbVavXs2999675esVK1ZwwgknsGLFCnbZZRf2339/rr76at74xjfWtU29z70MxvL6QWWPZ29v75avzz77bM4++2ze+973bpkAtp5tJoqFTJLUkaZPn87Pf/7zbdZffvnlW/4/MznppJM4/PDDOfHEExs2llNPPZVTTz215u3nnHPOVhOtbi4Dw+2NG64w1PPcx6ORM9oPZbSvH8C8efPIrJznWOt1HLhNozkPmSRJNdxyyy1cfvnlfO973+PAAw/kwAMP5M477yx6WE3z+te/nvnz53PVVVexzz77lGrPWdmUeg9ZRGwHnAOcAMwEHgG+AZyTmRsKHJokqQ28+tWvZtOmTUUPozAD5/JqtU/GtptSFzLg48AHgfcCdwL7A5cA64C/LXBckiRJdSt7ITsUuCIzr6h+/euI+AHwygLHJEmSNCplP4fsZqA3IvYBiIiXA4cDVxU6KkmSpFGIZn16oBGiMhnMucCZwEYqe/zOy8xP1th+AbAAoLu7e86iRYuaMs7hJgksc1az88wqV1az88wqNmuXXXYZ1SSgGzduZLvtthtT1lg0M8+scmU1Iu++++7j97///ZC3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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_lines(A_2_system)" + ] + }, + { + "cell_type": "markdown", + "id": "registered-grace", + "metadata": {}, + "source": [ + "As expected, the lines of the two equations are parallel." + ] + }, + { + "cell_type": "markdown", + "id": "6d4b7fb7", + "metadata": {}, + "source": [ + "\n", + "## 4 - System of Linear Equations with an Infinite Number of Solutions\n", + "\n", + "By changing the free coefficients of the system $(2)$, you can bring it to consistency:\n", + "\n", + "$$\n", + "\\begin{cases} \n", + "-x_1+3x_2=7, \\\\ 3x_1-9x_2=-21, \\end{cases}\\tag{3}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "517d4898", + "metadata": {}, + "outputs": [], + "source": [ + "b_3 = np.array([7, -21], dtype=np.dtype(float))" + ] + }, + { + "cell_type": "markdown", + "id": "ad9f41d9", + "metadata": {}, + "source": [ + "Prepare the new matrix, corresponding to the system $(3)$:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "8e03845c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ -1. 3. 7.]\n", + " [ 3. -9. -21.]]\n" + ] + } + ], + "source": [ + "A_3_system = np.hstack((A_2, b_3.reshape((2, 1))))\n", + "print(A_3_system)" + ] + }, + { + "cell_type": "markdown", + "id": "81b0fc6e", + "metadata": {}, + "source": [ + "Thus, from the corresponding linear system\n", + "\n", + "$$\n", + "\\begin{cases} \n", + "-x_1+3x_2=7, \\\\ 0=0, \\end{cases}\\tag{4}\n", + "$$\n", + "\n", + "the solutions of the linear system $(3)$ are:\n", + "\n", + "$$\n", + "x_1=3x_2-7, \\tag{5}\n", + "$$\n", + "\n", + "where $x_2$ is any real number.\n", + "\n", + "If you plot the equations of the system, how many lines do you expect to see in the graph now? Check it using the code below:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "1c8c88c0", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAAJVCAYAAABwN+m0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABFbklEQVR4nO3de5xcBX3//9eHQEBYgqQskQLeCItiuGgCXwNesoBAxCsatF9BUUtK0cpPaK0oFSwQ25oKfkX0W+u3UqjCohVEboLsUm5VEpCLiBWVi0BIAiJZLgGSz++PmcTNZi+zuzNz5sy+no/HPGBnzsz7cyazu+8958yZyEwkSZJUnE2KHkCSJGmys5BJkiQVzEImSZJUMAuZJElSwSxkkiRJBbOQSZIkFWzTogcoyotf/OKcOXNmU7Keeuopttpqq7bLanaeWeXKanaeWWa1Sp5Z5cpqdt7SpUtXZmbnRjdk5qS8dHV1ZbP09va2ZVaz88wqV1az88wyq1XyzCpXVrPzgCU5RC9xl6UkSVLBLGSSJEkFs5BJkiQVzEImSZJUMAuZJElSwSbtaS8kSa1n7dq1/O53v+Opp56q6+Nus802/OIXv6jrY5rVHln1zNtss83YfvvtmTZt2pjvayGTJLWMlStXEhHstttubLJJ/XbirFq1iq233rpuj2dW+2TVKy8zeeaZZ3jooYcAxlzK3GUpSWoZTzzxBDNmzKhrGZOaISLYcsst2XHHHVm+fPmY7+8rXpLUMtasWcNmm21W9BjSuL3oRS/i+eefH/P9LGSSpJYSEUWPII3beF+/FjJJkqSCWcgkSZIKZiGTJKkNnHPOObziFa9giy22YPbs2Vx//fUjLv/Vr36VPffck2nTpjFt2jTmzp3LZZddNuwyO+6445DLFO0LX/gC++yzD9OmTaOzs5O3v/3t3HXXXaPer5Z1q+U5qhcLmSRJJXfhhRdy/PHH85nPfIbbbruN/fbbj/nz5/PAAw8Me5+ddtqJf/zHf+TWW29lyZIlHHDAAbzrXe/ijjvuGHKZvr6+IZdplKOPPppTTz111OX6+vo47rjjuOmmm7j22mvZdNNNOeigg3j88cdHvF8t61bLc1QvFjJJkibooosuYvPNN+f+++9ff93xxx/PLrvswqOPPtrw/C996UscffTRHHPMMbz61a/mK1/5CjvssANf+9rXhr3PO9/5TubPn8/MmTPp6urijDPOYOutt+bmm28ecpldd911yGWKXverrrqKD3/4w8yaNYs99tiD8847jxUrVnDjjTeOeL9a1q2W56heLGSSJE3Qe9/7XvbYYw9OP/10ABYvXsx3vvMdrrzySmbMmFHz4yxatIiOjo4RL4N3RT733HMsXbqUgw8+eIPrDz74YG666aaactesWcMFF1xAf38/++2335iWqde618uqVatYu3Yt2267bc33mcj614tn6pcktaz4VL0eaWxnYc9/GtujRwSLFi3isMMOY6eddmLx4sVce+217Lrrrjz44IMcddRRLF++nM0224xTTjmFww8/fMjHOfbYYzniiCNGzNpxxx03+HrlypWsWbNmo/IzY8YMrrnmmhEf684772Tu3Lk8++yzdHR08P3vf5899thjTMsMXPdddtmFM844Y/26A7zjHe/g+uuv58ADD+S73/3uiPPUw/HHH8/ee+/N3LlzR122HutfLxYySZLq4OCDD2afffbhtNNO49JLL2WfffYBYNNNN+Wss85i7733Zvny5cyePZtDDz2ULbfccqPHmD59OtOnTx9X/uDzX2XmqOfE2m233fjZz37GE088wfe+9z0+9KEP0dfXx6xZszZa5qGHHuLKK68ccpl1637yySdvsO4An/zkJznmmGM499xzR5xl0aJFLFq0aP3Xq1evJiJYvHjx+uuuuOIK3vjGNw77GCeccAI33HADN9xwA1OmTBkxr9Z1q+U5qgcLmSSpZY11S9VwmvHZiNdeey233347mbnB1qoddtiBHXbYAYDtt9+ebbfdlpUrV/LSl750o8cYXEqGMriUbLfddkyZMoVly5ZtsNzy5ctH3WU4depUZs6cCcCcOXO45ZZbOPPMM/nmN7+50TIzZszgzW9+85DLDLfuAN3d3fT19Y04B2y4dbC/v5/TTjuNHXfckU984hPrlxm8dXCgT37yk1xwwQX09vbyyle+ctS8WtetlueoHixkkiRN0O23387hhx/OV77yFS655BJOOukkrrrqqo2WW7JkCc8//zw777zzkI8znl2WU6dOZfbs2Vx99dUsWLBg/fVXX30173nPe8a0HmvXrmX16tVjWmbgul922WXDrvtoBm4dXFegp0+fvr4MjeT444/nggsuoK+vj1e96lVjzl5nPOtfLxYySZIm4P777+etb30rJ5xwAh/5yEd4zWtew9y5c+nr62PevHnrl3vsscf44Ac/yDe/+c1hdyWOd5flCSecwFFHHcW+++7L/vvvz9e//nUefvhhjj322PXLnH322Zx99tncc889AHz605/msMMOY+edd2bVqlV8+9vfpq+vb4PzbA1cZtmyZVxyySUbLDN43ffdd1/23HPPjda9kT72sY9x3nnncfHFF7Ptttuu31K47k0QQ617Les2eJnhnqN6KX0hi4itgdOAdwPbA7cBx2fmLYUOJklqe48//jiHHnoob3vb2/jc5z4HwO67786CBQs46aST1p8eYfXq1bz73e/mpJNOasg79N73vvfx2GOPcfrpp/PII48wa9YsLr/8cl72spetX2blypX88pe/XP/1smXLOPLII1m2bBnbbLMNe+65J1dccQWHHHLIkMtMmzaNvfbaa/0yQ637rFmzNlr3RjvnnHMAOPDAAze4/pRTTll/HrPB6w4jr9tQywz3HNVL6QsZ8K/AnsCHgN8BRwLXRMTumflQoZNJktra9OnT+cUvfrHR9RdeeOH6/89Mjj76aA444ACOOuqohs1y3HHHcdxxxw17+6mnnrrBiVa/9a1vjfqYA5cZfBxeLes+EbXMB5XndzSD133w4w93jGGtM9RDqc9DFhEvAt4DfDoz+zLz3sw8FbgX+MtCh5MkCbjxxhu58MILufjii9l7773Ze++9ufPOO4seq2kOOuggFixYwOWXX85OO+3UtC1nZVP2LWSbAlOAZwdd/wzwhuaPI0nSht7whjewdu3aoscozGjnQlNF1LKpr5VFxE3AGuD9wDLgz4BzgXszc7dByy4EFgJ0dnbO7unpacqM/f396w8sbKesZueZVa6sZueZ1R5Z22yzTU3vqhurNWvW1HReKrMmX1Yj8u69917+8Ic/DHlbd3f30sycs9ENmVnqC7ALcB2QwAvAT4HzgbtHul9XV1c2S29vb1tmNTvPrHJlNTvPrPbIuvvuuxuS9+STTzbkcc0qf1Yj8kZ6HQNLcoheUupjyAAy89eZ+WagA9g5M/cFNgN+W+xkkiRJtSl9IVsnM5/KzEciYlvgEOCSomeSJEmqRdkP6iciDqFSLO8BZgJfBH4J/FuRc0mSJNWqHbaQbQOcTaWQ/TtwA3BwZj5f6FSSJEk1Kv0WsszsAZrzdklJkqQGaIctZJIkSaVmIZMkSSqYhUySJKlgFjJJkqSCWcgkSWoD55xzDq94xSvYYostmD17Ntdff/2Iy3/1q19lzz33ZNq0aUybNo25c+dy2WWXDbvMjjvuOOQyRfvCF77APvvsw7Rp0+js7OTtb387d91116j3q2XdanmO6sVCJklSyV144YUcf/zxfOYzn+G2225jv/32Y/78+TzwwAPD3mennXbiH//xH7n11ltZsmQJBxxwAO9617u44447hlymr69vyGUa5eijj+bUU08ddbm+vj6OO+44brrpJq699lo23XRTDjroIB5//PER71fLutXyHNWLhUySpAm66KKL2Hzzzbn//vvXX3f88cezyy678OijjzY8/0tf+hJHH300xxxzDK9+9av5yle+wg477MDXvva1Ye/zzne+k/nz5zNz5ky6uro444wz2Hrrrbn55puHXGbXXXcdcpmi1/2qq67iwx/+MLNmzWKPPfbgvPPOY8WKFdx4440j3q+WdavlOaoXC5kkSRP03ve+lz322IPTTz8dgMWLF/Od73yHK6+8khkzZtT8OIsWLaKjo2PEy+Bdkc899xxLly7l4IMP3uD6gw8+mJtuuqmm3DVr1nDBBRfQ39/PfvvtN6Zl6rXu9bJq1SrWrl3LtttuW/N9JrL+9VL6E8NKktrYX0ddHmbrsd5hcY5p8Yhg0aJFHHbYYey0004sXryYa6+9ll133ZUHH3yQo446iuXLl7PZZptxyimncPjhhw/5OMceeyxHHHHEiFk77rjjBl+vXLmSNWvWbFR+ZsyYwTXXXDPiY915553MnTuXZ599lo6ODr7//e+zxx57jGmZgeu+yy67cMYZZ6xfd4B3vOMdXH/99Rx44IF897vfHXGeejj++OPZe++9mTt37qjL1mP968VCJklSHRx88MHss88+nHbaaVx66aXss88+AGy66aacddZZ7L333ixfvpzZs2dz6KGHsuWWW270GNOnT2f69Onjyo/YsLxm5kbXDbbbbrvxs5/9jCeeeILvfe97fOhDH6Kvr49Zs2ZttMxDDz3ElVdeOeQy69b95JNP3mDdAT75yU9yzDHHcO655444y6JFi1i0aNH6r1evXk1EsHjx4vXXXXHFFbzxjW8c9jFOOOEEbrjhBm644QamTJkyYl6t61bLc1QPFjJJUusa45aq4axatYqttx7zdrIxufbaa7n99tvJzA22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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_lines(A_3_system)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fitting-container", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}