diff --git a/Arbejde_videre_med_Output.ipynb b/Arbejde_videre_med_Output.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..8b5179ae61c070c73fc2f23926be19637b91544f
--- /dev/null
+++ b/Arbejde_videre_med_Output.ipynb
@@ -0,0 +1,743 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<font size=\"5\"><center>\n",
+    "Kursus: 01005 Matematik 1 \\\n",
+    "Forfatter: Jakob Lemvig \\\n",
+    "Email: jakle@dtu.dk\n",
+    "</font></center>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "IPython console for SymPy 1.11.1 (Python 3.10.6-64-bit) (ground types: python)\n",
+      "\n",
+      "These commands were executed:\n",
+      ">>> from sympy import *\n",
+      ">>> x, y, z, t = symbols('x y z t')\n",
+      ">>> k, m, n = symbols('k m n', integer=True)\n",
+      ">>> f, g, h = symbols('f g h', cls=Function)\n",
+      ">>> init_printing()\n",
+      "\n",
+      "Documentation can be found at https://docs.sympy.org/1.11.1/\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "from sympy import *\n",
+    "init_session()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Hvordan arbejder man videre med output/løsninger i SymPy?\n",
+    "\n",
+    "Man kommer tit ud for at skulle arbejde videre med output eller en løsning i SymPy. Fx hvis man bliver bedt om at angive en løsning ud af uendeligt mange løsninger. Lad os kigge på nogle typiske eksempler."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Egenvektorer\n",
+    "\n",
+    "Vi ønsker ofte at arbejde videre med egenvektorer af en matrix, men det kan hurtigt blive besværligt at skrive alle (lin. uafh.) egenvektorerne ind manuelt. Hvis man bruger `eigenvects`-metoden gemmer SymPy al information i en liste:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "c43ae7ec",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/latex": [
+       "$\\displaystyle \\left[ \\left( 1, \\  1, \\  \\left[ \\left[\\begin{matrix}-1\\\\\\frac{1}{2}\\\\1\\end{matrix}\\right]\\right]\\right), \\  \\left( 10, \\  2, \\  \\left[ \\left[\\begin{matrix}\\frac{1}{2}\\\\1\\\\0\\end{matrix}\\right], \\  \\left[\\begin{matrix}1\\\\0\\\\1\\end{matrix}\\right]\\right]\\right)\\right]$"
+      ],
+      "text/plain": [
+       "⎡⎛      ⎡⎡-1 ⎤⎤⎞  ⎛       ⎡⎡1/2⎤  ⎡1⎤⎤⎞⎤\n",
+       "⎢⎜      ⎢⎢   ⎥⎥⎟  ⎜       ⎢⎢   ⎥  ⎢ ⎥⎥⎟⎥\n",
+       "⎢⎜1, 1, ⎢⎢1/2⎥⎥⎟, ⎜10, 2, ⎢⎢ 1 ⎥, ⎢0⎥⎥⎟⎥\n",
+       "⎢⎜      ⎢⎢   ⎥⎥⎟  ⎜       ⎢⎢   ⎥  ⎢ ⎥⎥⎟⎥\n",
+       "⎣⎝      ⎣⎣ 1 ⎦⎦⎠  ⎝       ⎣⎣ 0 ⎦  ⎣1⎦⎦⎠⎦"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "list"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "A = Matrix([[6,2,4],[2,9,-2],[4,-2,6]])\n",
+    "ev = A.eigenvects()\n",
+    "display(ev, type(ev))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "`eigenvects()` giver altså en liste af tuples, hvor egenvektorerne gemmes på plads 2 i hver tuple. Vi kan derfor gemme alle egenvektorerne i en liste af vektorer på følgende måde:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/latex": [
+       "$\\displaystyle \\left[ \\left[\\begin{matrix}-1\\\\\\frac{1}{2}\\\\1\\end{matrix}\\right], \\  \\left[\\begin{matrix}\\frac{1}{2}\\\\1\\\\0\\end{matrix}\\right], \\  \\left[\\begin{matrix}1\\\\0\\\\1\\end{matrix}\\right]\\right]$"
+      ],
+      "text/plain": [
+       "⎡⎡-1 ⎤  ⎡1/2⎤  ⎡1⎤⎤\n",
+       "⎢⎢   ⎥  ⎢   ⎥  ⎢ ⎥⎥\n",
+       "⎢⎢1/2⎥, ⎢ 1 ⎥, ⎢0⎥⎥\n",
+       "⎢⎢   ⎥  ⎢   ⎥  ⎢ ⎥⎥\n",
+       "⎣⎣ 1 ⎦  ⎣ 0 ⎦  ⎣1⎦⎦"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "list_of_ev = []\n",
+    "[list_of_ev.extend(ev[k][2]) for k in range(0,len(ev))]\n",
+    "list_of_ev"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Eller som matrix:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/latex": [
+       "$\\displaystyle \\left[\\begin{matrix}-1 & \\frac{1}{2} & 1\\\\\\frac{1}{2} & 1 & 0\\\\1 & 0 & 1\\end{matrix}\\right]$"
+      ],
+      "text/plain": [
+       "⎡-1   1/2  1⎤\n",
+       "⎢           ⎥\n",
+       "⎢1/2   1   0⎥\n",
+       "⎢           ⎥\n",
+       "⎣ 1    0   1⎦"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "Matrix(A.shape[0],len(list_of_ev),Matrix((list_of_ev))).T"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Hvis vi gerne vil arbejde videre med egenvektorerne som søjler i en matrix, er det meget nemmere at bruge `diagonalize` metoden:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "789ade26",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/latex": [
+       "$\\displaystyle \\left( \\left[\\begin{matrix}-2 & 1 & 1\\\\1 & 2 & 0\\\\2 & 0 & 1\\end{matrix}\\right], \\  \\left[\\begin{matrix}1 & 0 & 0\\\\0 & 10 & 0\\\\0 & 0 & 10\\end{matrix}\\right]\\right)$"
+      ],
+      "text/plain": [
+       "⎛⎡-2  1  1⎤  ⎡1  0   0 ⎤⎞\n",
+       "⎜⎢        ⎥  ⎢         ⎥⎟\n",
+       "⎜⎢1   2  0⎥, ⎢0  10  0 ⎥⎟\n",
+       "⎜⎢        ⎥  ⎢         ⎥⎟\n",
+       "⎝⎣2   0  1⎦  ⎣0  0   10⎦⎠"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "V, Lamda = A.diagonalize()\n",
+    "V, Lamda"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "9f7a8935",
+   "metadata": {},
+   "source": [
+    "## Et lineært ligningssystem med flere løsninger\n",
+    "\n",
+    "Vi ønsker at løse det inhomogene ligningssystem: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHkAAAAUCAYAAACpkJLNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAADq0lEQVR4nO3ae4hVVRTH8c+kRH8YBf0zEJRBEESCUFFQhBIWJZSWUkjmgEX0IKYgzEhWqwcpRSpR2AMcqf6xBoQwsocYQi8RTO2dIRRSGUogPayc/th34HZ1HvfOmbkjzvefc89+rR97n73WXufcjr6+PhMcf2TmGZiL2ZiGM3EYu7AWayPiCJzULpETjJj5eAmX4BOsQi8uwMtYn5kdMLlNAislM7uUp3dmRGxpr5ox4xtch439OxYy8yF8ihtxA3orXeTMfAezMC8ieuvKO5RFWIQVEfFglXZHyvGoOyI2D1D+U2auwROYgd6q3fUDOILHMnNSXfnTykS9OJ4mqo7jVfdA/F27/kPF7joiPsvMV5SJWYiemvu4H+txZ5X2qmIsdGdmN05vosuOiNjQgp3JuLV2+zajE5OX4SZEZk5R3MYmLKyPHeOQ0dbdjbObaL8OG1qws1w5fL0VEZugoz6Fysy9TQp5LSJuaSzMzCfR794+xKyI+L2hzVLlYHAe/sLHWBoRuwcz2ILGdRHRNZyGw9R9N+7A1FrR53g8IjY2oWlUyMx7sRpf4bKIOMDRO3kP/mxi3H0DlO+v+724caJqzMDz2IYOPIr3MvP8fnEDsMrRbm86rlee/r0NdTsGGauR4ej+EUvwrZKCLsKGzLwwInY2YatSMvMeZYG/wJX1c9hR9cuQzFyAV/EzOrEmIoaMaTUX+RvmRMSbTdrsMsIUqlXdtb4HFC/0wiBtuo1STK6NvRK7lQX+pb6+6hTqWvT0G8NW3JaZqyLi6yG6n6rsjINVahoOrequncTnY4ri3gej2yjE5MxcosThHUp4+bWxTWWLnJmX4w3FnV0dEfsz82G8jhWYM8QQq2tCP6pK03BoRXdmTqvpPAWHMDcidg1mJyKmVquczFymhLntuGqgMFeJu87M6diCP3B5ROypq9uGi3BFRGwdoP8zuLnW9/sW7HdpwV23qjszT8ZZOA3zcDtmDHVorJLMXKR4n3/xrBLqGtkbET0j3smZea6Sj/UpO2FPQ5OleBdP4dJj9F+pLPDMVha4VUaiOyIO47va7fbMvBj3YfGoiv4/59Suk5RQcCw+QE/lB69myMzVSm46MyK+bJuQEZKZm7HvWOnkeKBtHygy8znl7dIcHMzMzlrVoYg41C5dQ5GZy7ERPyiHxQVKOji7jbIGpZ1foe6qXd9vKE88MrZSmqJTSbU6lTi4E9f0v10aj7TVXU8wNkz8aeAEYGKRTwD+Axz4oiassDLEAAAAAElFTkSuQmCC",
+      "text/latex": [
+       "$\\displaystyle - x_{2} + x_{3} = 2$"
+      ],
+      "text/plain": [
+       "-x₂ + x₃ = 2"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAL4AAAAUCAYAAAAz84cVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAAE/0lEQVR4nO2aa6gVVRiGn6MSBUZCf6SoDIQoFDQVg0S8YFFCaSmFaBoqUYmcojIle32tSCnUQxesDE9af+yCFFZ2EUvTSqRT2sXKEAu7WCcCybTy9GPNiXE7e++Zs6/n8sCwZ2Zd5nvXt2Zdvj0NbW1tANg+G5gMTAQGA+cCx4E9wFpgraQTdEFsTwfWR5dzJa2ppT3lorv4tCM6e8XOpwLPACOBj4BVwMvAIGANsMF2Q2UlVB/b5wGPA0dqbUsF6C4+zayzT+z8a+AaYFP87bC9CPgYuB64LqqwptieRXiTx0raWkI9DVE9vwGvAHeVw746otP4tEQy6/y/40vaklSjpJ9srwYeAsbEC9t+C5gATJEUv9/eoWYCyyXdWwZxlWA+MI6ga1yhjJ1Ra3fxaUd09koqkMDf0e8/OffvBk4AD9juHbv/KKGBnq6nBopj+2JgGdAk6f0URTqt1jx0OZ/mIVFnn4SMJ2G7D3BTdPlmPE3Sp7bXExpkBtAcTS93AhuAW0s0uiJEmtYDB4FFacp0Vq1J1INPbTcC/TIUaZG0MeMz8uos2vEJo+Ig4HVJmxPSFwM3ALLdlzCtbAZm1HHE4H5gKDBK0tEM5Tqj1iTqwaeNwAUZ8j8HbMz4jLw6G9rDmUnYng80AV8Bl0tqzZPvYaB9+tsBTJD0Z06e0YTN4zDgHOBmSc3FLLd9gIwNJGlWgfpGAh8AKyTdE7u/BBBFwpkptS4kbKYuAo4BHwILJe0tZHgHtL4gaXqG/OX26e3ALcCA6NbnwIOSNmWxqRIU05l3xLc9Lyr4BTA+XwNFHI6dz85toIi+wF5gXXSkZRWnTolDgGsJo8CBnLSWfBVFU986QhRgcQYb4qTROgZ4EtgFNABLgXdsX1KkHfcDf2Ww5VCGvJXw6Q/AAuAbwn5xJrDR9jBJn2WxrZyk0Zk44kfrr5WEjjpe0i8FHjINeB74GegPrJZUcB1o+wgwL82In6f8LDoQzrTdD/g9ZfYmSY055TNrjcr1Bf4AJkl6La295aTSPo2VbSXMbk+lsKdfmjojUq3x0+o8ZcS3vYCwNmohTG+/FnjI1UBz+0OAbcAc26sk7StmZA04BjybJ+1Swrp/O7AP2BlPLFHrmYQRMe1LV1aq4dMoAjSVMLPvSGFWI2Ve42fReVLHt72YMC3vBq4oNBXaHgW8RJjurpR02PZ9wIvAcmBScS3VJdrIzklKi9b4Qwl7hDU5aaVqbSI4Y2eRfGWn0j61PZig63TCv9+TJe0pZpekAZnFFCCLTogtdWzPJLzp/wKPEabmXA5IarY9BNgKHCVERvbHDNgFDAdGS9qWx8iaLHWK1LmEhM1tGbSuAG6Myn5XDlvTUg2f2j4NOB84C5gCzAXGFNvIl5MsOtsv4iP+hdFvb8I0lMR7trcTYqJthFFhf06ehcDbwCPAZZkU1Bm2B1KCVtsrCZ1+bLU7fUTFfSrpOPBtdLnb9gjgDmB2ydanJ5VOwssBFAlnVopSR/zOgO0mQix8rKQva21PtbC9BTiUNcxabarW8aPIxsDocgdhE/Iq0CrpYFWMqBK2nyD86zmJEFJr54ikLvMVqO1lwCbge8IGfhohvDlR0hu1tK0Yab/VKQfDgU+i4wzA0fnSKtpQLW4jdIR3gR9jR1f7+rM/Iey5j6B1BHBVvXd6qNFSp4ceak01R/weeqgbejp+D92S/wB9U/pYy1V1tAAAAABJRU5ErkJggg==",
+      "text/latex": [
+       "$\\displaystyle 2 x_{1} + 4 x_{2} - 2 x_{3} = 2$"
+      ],
+      "text/plain": [
+       "2⋅x₁ + 4⋅x₂ - 2⋅x₃ = 2"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "x1,x2,x3 = symbols('x1:4')\n",
+    "eq1 = Eq(-x2 + x3, 2)\n",
+    "eq2 = Eq(2*x1 + 4*x2 - 2*x3, 2)\n",
+    "display(eq1, eq2)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "hvis totalmatrix er givet ved "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "57c54709",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/latex": [
+       "$\\displaystyle \\left[\\begin{matrix}0 & -1 & 1 & 2\\\\2 & 4 & -2 & 2\\end{matrix}\\right]$"
+      ],
+      "text/plain": [
+       "⎡0  -1  1   2⎤\n",
+       "⎢            ⎥\n",
+       "⎣2  4   -2  2⎦"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "A, b = linear_eq_to_matrix([eq1, eq2], [x1, x2, x3])\n",
+    "T = A.row_join(b)\n",
+    "display(T)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "34345904",
+   "metadata": {},
+   "source": [
+    "Det kan løses direkte ved brug af SymPy på flere forskellige måder:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "6b058e32",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/latex": [
+       "$\\displaystyle \\left( \\left[\\begin{matrix}5 - \\tau_{0}\\\\\\tau_{0} - 2\\\\\\tau_{0}\\end{matrix}\\right], \\  \\left[\\begin{matrix}\\tau_{0}\\end{matrix}\\right]\\right)$"
+      ],
+      "text/plain": [
+       "⎛⎡5 - τ₀⎤      ⎞\n",
+       "⎜⎢      ⎥      ⎟\n",
+       "⎜⎢τ₀ - 2⎥, [τ₀]⎟\n",
+       "⎜⎢      ⎥      ⎟\n",
+       "⎝⎣  τ₀  ⎦      ⎠"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/latex": [
+       "$\\displaystyle \\left\\{\\left( 5 - \\tau_{0}, \\  \\tau_{0} - 2, \\  \\tau_{0}\\right)\\right\\}$"
+      ],
+      "text/plain": [
+       "{(5 - τ₀, τ₀ - 2, τ₀)}"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/latex": [
+       "$\\displaystyle \\left\\{ x_{1} : 5 - x_{3}, \\  x_{2} : x_{3} - 2\\right\\}$"
+      ],
+      "text/plain": [
+       "{x₁: 5 - x₃, x₂: x₃ - 2}"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "sols1 = A.gauss_jordan_solve(b)\n",
+    "sols2 = linsolve(T)\n",
+    "sols3 = solve([eq1,eq2])\n",
+    "display(sols1,sols2,sols3)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Vi forestiller os at vi gerne vil angive den løsning, hvor den frie parameter er lig med $4$.** Vi bemærker først at løsningerne gemmes i forskellige data-typer, så det er svært at lave en generel metode:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(tuple, sympy.sets.sets.FiniteSet, dict)"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "type(sols1), type(sols2), type(sols3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "SetKind(TupleKind(NumberKind, NumberKind, NumberKind))"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "sols2.kind"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Vi prøver:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/latex": [
+       "$\\displaystyle \\left[\\begin{matrix}5 - \\tau_{0}\\\\\\tau_{0} - 2\\\\\\tau_{0}\\end{matrix}\\right]$"
+      ],
+      "text/plain": [
+       "⎡5 - τ₀⎤\n",
+       "⎢      ⎥\n",
+       "⎢τ₀ - 2⎥\n",
+       "⎢      ⎥\n",
+       "⎣  τ₀  ⎦"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "display(sols1[0])\n",
+    "# sols1[0].subs(tau0,4)      # Fejlmeddelelse: NameError: name 'tau0' is not defined"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "men 'tau0' er ikke defineret. Vi kan undersøge sagen nærmere med:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "\"MutableDenseMatrix([[Add(Integer(5), Mul(Integer(-1), Symbol('tau0')))], [Add(Symbol('tau0'), Integer(-2))], [Symbol('tau0')]])\""
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "srepr(sols1[0])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Vi ser at 'tau0' faktisk hedder `Symbol('tau0')`, så en mulighed er:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/latex": [
+       "$\\displaystyle \\left[\\begin{matrix}1\\\\2\\\\4\\end{matrix}\\right]$"
+      ],
+      "text/plain": [
+       "⎡1⎤\n",
+       "⎢ ⎥\n",
+       "⎢2⎥\n",
+       "⎢ ⎥\n",
+       "⎣4⎦"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "sols1[0].subs(Symbol('tau0'),4) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2c05071d",
+   "metadata": {},
+   "source": [
+    "### Brug af `free_symbol`-metoden:\n",
+    "\n",
+    "Vi kan mere generelt få fat i de frie variable ved `free_symbols`-metoden:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/latex": [
+       "$\\displaystyle \\left( \\left[\\begin{matrix}5 - \\tau_{0}\\\\\\tau_{0} - 2\\\\\\tau_{0}\\end{matrix}\\right], \\  \\left[\\begin{matrix}\\tau_{0}\\end{matrix}\\right]\\right)$"
+      ],
+      "text/plain": [
+       "⎛⎡5 - τ₀⎤      ⎞\n",
+       "⎜⎢      ⎥      ⎟\n",
+       "⎜⎢τ₀ - 2⎥, [τ₀]⎟\n",
+       "⎜⎢      ⎥      ⎟\n",
+       "⎝⎣  τ₀  ⎦      ⎠"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAAVCAYAAAAAY20CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAAC3UlEQVR4nNXXTYhWZRQH8N9MEVmhggOTBZJQWYtKsSKChCD7WATtpI1FVJhQTJ8QBKcTWBuZapWQC6ONLYYIjMhNYB/0ZRgYRpuEINOJIisS+3hb3Hvrzn3ve993RAfmvzncc85znv/h3Oec5xnr9XoWM85uU2bma7gDqyPi94Wl1MpnPT7HAxGxs24ba1YgM6/DJ3giIqYXjOUQZOabuAGXRcRvlX68xXcbjuOVBeI2Kl7AhXikrpxTgcy8HF9jZ0Q8uKD0RkBmHsJ5il/7H/rPwH0YwxuNhRM4Vtq6cBLLIuLEaWHcj914FhvxLv0J3IK/8XFDfwGeq31fgnuwH3tq+tkzSB4+LGV/Apl5PtbiULPzRMRhReaV7/2KBHZHxPYzSLiJz0q5oVLUD/HFOAtHRgi0tpQHTgerURERv+AEVlW6+i+0opQ/jxDrmlJ+OcghM7fiSazEV5iKiPfnQ3gAfsJk9VGvwB+lPLdrdWaO4Wp8HxGzA3w24WU8j3X4CO9k5qo2/3liSY3rnAocK+UK3ViNpf4/UG14DLsi4tXy++HMvB0P4el50a0hM8exHN9WunoFjmAWa4bEuaKUBwdscg7WY2/DtBc3jk63FWsUrfxApfgvgYjoYR8mMvPSjiBLS3l8gH1C0QyONvRHFZN0DjJzV2b2MvPeIeQprhLwXqVoXiVmSnlbR5BvSjmVmdOZefcIG3eh4vDXCL63KubUW83FFWYUZ2HzoAgR8QWewZ+YwrUNlx/LTSYb+kn80BLyKvyKt7uYZ+Yy3IU9EfFdawIRcRIv4frMXNeRxLaIWBkR4xHxeEuM/YppWcdGRTeqk1qu6Gg7ImJY+96s6JBzBmfbe+BFbFFcHe4cEnQQpvF6Zn6q6FZbcBF2NPxuUlSy89qemUsU3WsmIj6o2/reA+WCDbgZ20/1QVMOsqcUg+wgHo2IfacY60psUrTmw3VbawKLCW0PmkWFfwH4Hdu5138UYAAAAABJRU5ErkJggg==",
+      "text/latex": [
+       "$\\displaystyle \\left( \\tau_{0},\\right)$"
+      ],
+      "text/plain": [
+       "(τ₀,)"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# sols1\n",
+    "sols1_as_tuple = Tuple(*sols1)\n",
+    "var1_as_tuple = Tuple(*sols1_as_tuple.free_symbols)\n",
+    "display(sols1_as_tuple, var1_as_tuple)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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",
+      "text/latex": [
+       "$\\displaystyle \\left( \\left( 5 - \\tau_{0}, \\  \\tau_{0} - 2, \\  \\tau_{0}\\right),\\right)$"
+      ],
+      "text/plain": [
+       "((5 - τ₀, τ₀ - 2, τ₀),)"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAAVCAYAAAAAY20CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAAC3UlEQVR4nNXXTYhWZRQH8N9MEVmhggOTBZJQWYtKsSKChCD7WATtpI1FVJhQTJ8QBKcTWBuZapWQC6ONLYYIjMhNYB/0ZRgYRpuEINOJIisS+3hb3Hvrzn3ve993RAfmvzncc85znv/h3Oec5xnr9XoWM85uU2bma7gDqyPi94Wl1MpnPT7HAxGxs24ba1YgM6/DJ3giIqYXjOUQZOabuAGXRcRvlX68xXcbjuOVBeI2Kl7AhXikrpxTgcy8HF9jZ0Q8uKD0RkBmHsJ5il/7H/rPwH0YwxuNhRM4Vtq6cBLLIuLEaWHcj914FhvxLv0J3IK/8XFDfwGeq31fgnuwH3tq+tkzSB4+LGV/Apl5PtbiULPzRMRhReaV7/2KBHZHxPYzSLiJz0q5oVLUD/HFOAtHRgi0tpQHTgerURERv+AEVlW6+i+0opQ/jxDrmlJ+OcghM7fiSazEV5iKiPfnQ3gAfsJk9VGvwB+lPLdrdWaO4Wp8HxGzA3w24WU8j3X4CO9k5qo2/3liSY3rnAocK+UK3ViNpf4/UG14DLsi4tXy++HMvB0P4el50a0hM8exHN9WunoFjmAWa4bEuaKUBwdscg7WY2/DtBc3jk63FWsUrfxApfgvgYjoYR8mMvPSjiBLS3l8gH1C0QyONvRHFZN0DjJzV2b2MvPeIeQprhLwXqVoXiVmSnlbR5BvSjmVmdOZefcIG3eh4vDXCL63KubUW83FFWYUZ2HzoAgR8QWewZ+YwrUNlx/LTSYb+kn80BLyKvyKt7uYZ+Yy3IU9EfFdawIRcRIv4frMXNeRxLaIWBkR4xHxeEuM/YppWcdGRTeqk1qu6Gg7ImJY+96s6JBzBmfbe+BFbFFcHe4cEnQQpvF6Zn6q6FZbcBF2NPxuUlSy89qemUsU3WsmIj6o2/reA+WCDbgZ20/1QVMOsqcUg+wgHo2IfacY60psUrTmw3VbawKLCW0PmkWFfwH4Hdu5138UYAAAAABJRU5ErkJggg==",
+      "text/latex": [
+       "$\\displaystyle \\left( \\tau_{0},\\right)$"
+      ],
+      "text/plain": [
+       "(τ₀,)"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# sols2\n",
+    "sols2_as_tuple = Tuple(*sols2)\n",
+    "var2_as_tuple = Tuple(*sols2_as_tuple.free_symbols)\n",
+    "display(sols2_as_tuple, var2_as_tuple)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAUCAYAAADFlsDIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAADc0lEQVR4nO3YX4hVVRTH8c9oD1pGkkFSIAXW0EMhWSClUtIkBZFYEAX2v6iwhJjCiWK1jAqpNIsKRGiilwolQpOMIoj+kmCBYD1UkMFIkmJNZaVOD+fcuHM9d7wzt7n54A8O+7DPWut8zz7rrL3P7hoaGnJMrem4qs7MfAVX4MyI+K2zSP+/MnM2tuKOiFhX6+9qzKzMvBCfozciVnWU8ihSZr6JOTgrIgZhQoXd4/gFL3WQ7WjUk5iO+2odwzIrM8/G11gXEXd2HO8oU2buwPGKcnSosWbdii68XuH4LnpwbURsqOvvwsu4CSsjYvl4wVdpnLlew6Nl/C2Nn+FlOIjPKhwfwCE8lpkT6/qfLoHWdnqgOsD1cdn2UFezMvMEzMKOqhkwIr7CqzgHS0qfh3A/3sDdYwRqS+PM9UXZzmd4gT8dEzEwgvMj2I/IzKWKyWALlkTEoTag2tW4cEXEvjLuDIavs6aV7d4RnHdm5rNYjufxCRZHxF/1dpk5H72YjdNwS0T0jxX6SBoFVx8Woxt/KspNX0RsHyH8HpzK8Mz6o2wnHYFtd935bRHxe4XNFGzHsrq4461WuC7Bi7gIC3AA72XmySPEnax8hvrM+qlspx1mXiozb1AUzl2KNcgyFTUhIjZjc+nTPwLIf6JRcC1s8FuCfbgYGyviTsBUfM/wzBpQvJ3uJkBXol+RMefhG9yemZX2nVKbXCcqxqBZ6elWLKW+pG6wImIIH+KUzJzZADQX6/EjFkbEbjysyMyVLT5XpTKzPzOHMvPmMfi2y7VGMRCfNrk+p2w/4PDfndqi7t90zcxZ2KRI156IGICIWK/42bw6M+e1ANZMNYYDo3FqlyszV2EuromIg03MLlesO9+qB61pg6J23VgGnIl3MKR4c9822PeV7VMtPF8znYtf8XarDu1yZeZqXI8FEfFdE5uTsAibImIn1bsOfXgC50fEtlYfoJkycxBLq5YOmTkVP+OZiHiw3Xu1yLMG1+HSiNgxgt29eA7zIuIjqvezVuMurMBVYwSaglrdm4AZ5WezJyJ+qDOdh7/Rka2gzHxBscpfhL2ZOb28NFjbhintJiuyc0NtoKjYoomI/WXAreUv0Fh0AbaVx2Rkeb6i4V4bI2JSROwa431Gq3sUM+D7itm/dvQ22J2BtY39h32Gx9Rc/wByJHWldifP3wAAAABJRU5ErkJggg==",
+      "text/latex": [
+       "$\\displaystyle \\left( x_{1}, \\  x_{2}\\right)$"
+      ],
+      "text/plain": [
+       "(x₁, x₂)"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJYAAAAVCAYAAACkJReUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAAFFUlEQVR4nO2af6xPZRzHXxdbdGts2rqbpWv9MFsk1aYVkWSyVsRqRlr6wSopFSp79+4nq9CvpWbD1FaNpYWojYVaPyihsFJKQ5RSlBS3P57zvY7jfO91ru/3uur72u6e+/2c5znn/ZzzOZ/P8+OUVVVVUaJEoWmSZrQ9A+gNtJG0u34llThWsH0usBy4SdLU+LGyZMSyfT7wEXC3pIkx+0bg1DzX+FFSRSFFl6hfbLcE+gJ9gPZAK2AvsBqYBkyTtD+l3RtAZ+AMSbty9rSI9SjwG/BCyrGdwOQU+64UW4ljiwGEZ74FWAx8D5wM9AOmAr1tD5CUHDs9TghEI4DHcsaDIpbtM4F1wFRJN8dbRxELSZUF7U6JBoHtS4ByYF48MtmuAD4GTgH6S5qd0nYtcDxh6LQfDo1YNwBlwGvFkV94bL8D9CTRadtlhBA+BJggaUxJV34kLcpj32p7CiGTdQMOcSzgVeBBQn8XwqGOdSmwD/gwz/WPsz0IaA3sBlYBSyTty9SLwnIP8CnwsO05MS1PEh7eS0fp4TVUXXXh76j8J8/x96Oy2rEa5Y7YLgc6AmtrmAlWADMJ3jsZWAR8ZfviI1F9JEj6PNLUDhgMYPs+4C7gdWB4SVfdsd0EuC76uSBPtU+ismvO0Ch2sBXQmDB4S2Ma0IPgXOWEmcOLQCXwtu2z6yK8QIwD9gCyfRvB8RcCg9NmMiVdmRgPnAXMl7QwrYKknYR+ts7Z4qmwZVT+kqexE6Y1wDDbu4BRhBzbtyaFtSxZpPGKpEG1VZK0yfZkYAzwLPAB0E/S3ti1bwVuIbwIAF8Aj0ial0FPJoqtq1j3M3b+EYRnu44o6tbADsIsEjg4Yv0ZlU0P98IRU6Kya421AhuA9Rn+NmfQsT32/1BJfySO/wCMBjoB5xHS+BzbHTJcoy4UU1fR7mcUYZ8GvgS6S9pRS5NmHPChgyLWtqhsSTZyN668toqSemQ892FheyBhULyVkKrvIDGGkfRmotn9tocDFxAmIcecriLez5HAJEJW6iFpWy31GwEtgG9ztnjE2kJwkrYZdXSOym8ytisIti8HphNuQgfCm3mj7bz9sN3Y9rXACYT09L/RVRu2RxOcaiUhUtXoVBFtCctUK3OGaseKVlSXACfZPj1xsXbRrDEpohJ4Lvr5cqYeFADbFwGzCOmkl6TtwAOESDwhpX77aEz4FyGF95W0OqXedNtVtq9vSLqKje1xhMH6CkKk+ukwm+aCy+KcIbmONRu4GugFfB2zXwOMsr0E+A74HTiNsK/UFJhPCPn1hu2OwFzCNlNPSVsAJM2yvRy40nYXSUtjzdYTllSaA/2BGba7SVqTOH3uhcu3bnO0dBUN20OAhwjrmEuBEXZyvsZGSdNTml8WtatO62mOtY2wbvF8zL6YEO7OAS4kjKd+BZYR1mpmpuwhFY0ooi4AqggRYUOiyljgXeAJDrxNRLOx3AuzItpwvxMYmmjfnvDyZJox1oOuYtImKhsDI/PUeY+Q3qux3Ry4CpgraVPOnvZ1w1jCZmInSZ8VQnFDxfYiYHN8Cm67BfAz8JSkexuKroaK7duBZ4Aukpbl7GlfN0wChhHC4hX1I6/42B5PiECbgBOBgYS9rz6Jql0IWxgTqQcy6Gpw2G5GiMKz404FKY4laY/twUB32+X/oQ/9KggTjArC+GcV0Du5mizpLbKv5RVdVwOlEniJRHqElFRYokQhaFR7lRIlsvMvQVhcWbYw8twAAAAASUVORK5CYII=",
+      "text/latex": [
+       "$\\displaystyle \\left( 5 - x_{3}, \\  x_{3} - 2\\right)$"
+      ],
+      "text/plain": [
+       "(5 - x₃, x₃ - 2)"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# sols3 er en dictionary, så den skal tilgås ved:\n",
+    "display(tuple(sols3.keys()),tuple(sols3.values()))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJYAAAAVCAYAAACkJReUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAAFFUlEQVR4nO2af6xPZRzHXxdbdGts2rqbpWv9MFsk1aYVkWSyVsRqRlr6wSopFSp79+4nq9CvpWbD1FaNpYWojYVaPyihsFJKQ5RSlBS3P57zvY7jfO91ru/3uur72u6e+/2c5znn/ZzzOZ/P8+OUVVVVUaJEoWmSZrQ9A+gNtJG0u34llThWsH0usBy4SdLU+LGyZMSyfT7wEXC3pIkx+0bg1DzX+FFSRSFFl6hfbLcE+gJ9gPZAK2AvsBqYBkyTtD+l3RtAZ+AMSbty9rSI9SjwG/BCyrGdwOQU+64UW4ljiwGEZ74FWAx8D5wM9AOmAr1tD5CUHDs9TghEI4DHcsaDIpbtM4F1wFRJN8dbRxELSZUF7U6JBoHtS4ByYF48MtmuAD4GTgH6S5qd0nYtcDxh6LQfDo1YNwBlwGvFkV94bL8D9CTRadtlhBA+BJggaUxJV34kLcpj32p7CiGTdQMOcSzgVeBBQn8XwqGOdSmwD/gwz/WPsz0IaA3sBlYBSyTty9SLwnIP8CnwsO05MS1PEh7eS0fp4TVUXXXh76j8J8/x96Oy2rEa5Y7YLgc6AmtrmAlWADMJ3jsZWAR8ZfviI1F9JEj6PNLUDhgMYPs+4C7gdWB4SVfdsd0EuC76uSBPtU+ismvO0Ch2sBXQmDB4S2Ma0IPgXOWEmcOLQCXwtu2z6yK8QIwD9gCyfRvB8RcCg9NmMiVdmRgPnAXMl7QwrYKknYR+ts7Z4qmwZVT+kqexE6Y1wDDbu4BRhBzbtyaFtSxZpPGKpEG1VZK0yfZkYAzwLPAB0E/S3ti1bwVuIbwIAF8Aj0ial0FPJoqtq1j3M3b+EYRnu44o6tbADsIsEjg4Yv0ZlU0P98IRU6Kya421AhuA9Rn+NmfQsT32/1BJfySO/wCMBjoB5xHS+BzbHTJcoy4UU1fR7mcUYZ8GvgS6S9pRS5NmHPChgyLWtqhsSTZyN668toqSemQ892FheyBhULyVkKrvIDGGkfRmotn9tocDFxAmIcecriLez5HAJEJW6iFpWy31GwEtgG9ztnjE2kJwkrYZdXSOym8ytisIti8HphNuQgfCm3mj7bz9sN3Y9rXACYT09L/RVRu2RxOcaiUhUtXoVBFtCctUK3OGaseKVlSXACfZPj1xsXbRrDEpohJ4Lvr5cqYeFADbFwGzCOmkl6TtwAOESDwhpX77aEz4FyGF95W0OqXedNtVtq9vSLqKje1xhMH6CkKk+ukwm+aCy+KcIbmONRu4GugFfB2zXwOMsr0E+A74HTiNsK/UFJhPCPn1hu2OwFzCNlNPSVsAJM2yvRy40nYXSUtjzdYTllSaA/2BGba7SVqTOH3uhcu3bnO0dBUN20OAhwjrmEuBEXZyvsZGSdNTml8WtatO62mOtY2wbvF8zL6YEO7OAS4kjKd+BZYR1mpmpuwhFY0ooi4AqggRYUOiyljgXeAJDrxNRLOx3AuzItpwvxMYmmjfnvDyZJox1oOuYtImKhsDI/PUeY+Q3qux3Ry4CpgraVPOnvZ1w1jCZmInSZ8VQnFDxfYiYHN8Cm67BfAz8JSkexuKroaK7duBZ4Aukpbl7GlfN0wChhHC4hX1I6/42B5PiECbgBOBgYS9rz6Jql0IWxgTqQcy6Gpw2G5GiMKz404FKY4laY/twUB32+X/oQ/9KggTjArC+GcV0Du5mizpLbKv5RVdVwOlEniJRHqElFRYokQhaFR7lRIlsvMvQVhcWbYw8twAAAAASUVORK5CYII=",
+      "text/latex": [
+       "$\\displaystyle \\left( 5 - x_{3}, \\  x_{3} - 2\\right)$"
+      ],
+      "text/plain": [
+       "(5 - x₃, x₃ - 2)"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAAVCAYAAAAAY20CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAADKUlEQVR4nNXXbajfYxgH8M85RzEjqykrJQpL2ZqnTJkoxxrJQ15odUbmaRERmacul+dlHkqitbLFC7QTMuUgSoiQ52ZFXhx1ZEWHYYYdL+7f/+x3/ud3HmydU+f75vr/rv913/f3uq+H+747hoaGzGTs06TMzI1YhiMi4vfppdTI5wR8jCsiYn39v472CGTmSfgQN0XEI9PGcgJk5otYjKMiYntL39lgex9+xZPTxG2yeADzcF1dOSICmXk0vsH6iLhyWulNApm5Bfsrqb2L0TVwGTrwfMPg19GNiyKit6bvwNO4BGsiYvXU0AfP4a6KRx+jU+hM/IsPGgbfjF24JzO7avq1Cvl1U0we3qtkd0sx7EBmzsYibGnqPBHxOZ7BMeipxtyGG/ECVk0V6xo+quRpLUU9AoeiCwPjTHAndiAy81ql4PvQ08rJqUREDFbrH9bS1WtgbiV/GWeC/sx8DKvxON7HhRGxs26XmdfgKhxeqb7GvRHx6t65AH7GIa2PegT+rOR+E0ywrfZ7ZUT80WDzA27B8TgRb+GlzFz4v+mOxiy7uY6IwE+VnGsMZOZypWh/VHry9RpyPyJeblPdnpmrcAq+2CPaZf1OzMH3LV09AgPK7s4fY/DZ2ICvsBBbcXlmNtrXxnVl5sU4QEm5vcF8pc1/1lIMOxARQ3gHB2fmkW0kTsUmJTWWRsQ23KFEcM0YxBdk5nb8hadwQUR82WC3ITOHMvPSSTiwuJJvj3KgQuuAWlpbYBE2YxDdETFQObxJuWCdl5lLGhbbqrTlk5VrycbMPLbBrsXhn0k4cJZyTg2naPtJ3KvUwgo8UUXiNQwpO/9dm/2teAMP2b07oOpM31afn1SXxBuwsm2OBfgN43aozDwI52NzRPQ3OhARO6s2eX9mHhcRnyrF2oiIeFPJycmgE/u2kZqj1NPDETFm+66wQumQa+vKpvfAo7gad+PcSZIbgcx8UNnRfhyI5Tgd57SZLsHfGPfanpmzlGj3RsS79f9GORAROzKzB2dk5uw9fNDMw7OVHFRa57KI6Gtb6xUTnzuUA3Gd0gVHYNSDZqah6UEzo/AfJu4K5UKWGpoAAAAASUVORK5CYII=",
+      "text/latex": [
+       "$\\displaystyle \\left( x_{3},\\right)$"
+      ],
+      "text/plain": [
+       "(x₃,)"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# sols3\n",
+    "sols3_as_tuple = Tuple(*sols3.values())              # bemærk `values`-metoden bruges\n",
+    "var3_as_tuple = Tuple(*sols3_as_tuple.free_symbols)\n",
+    "display(sols3_as_tuple, var3_as_tuple)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Lad os samle det i én kommando:**"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAALwAAAAVCAYAAAD8WoSNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAAFC0lEQVR4nO2bbYgVVRjHf6tSmqGRgpZkipUJbVlWSKBlZikVZCVCWFpUWKRsmYZQ/PsHvXwwrQgyFNyoqD4sEaihH5JWi7TMtSxNerECX1azNCWxdPtw5up1vHfd2Z2596r3B5eHeeacmf8899xnznlmbk1LSwtVqpwudCnktP0WMA4YKGl/aSVVqdJxbA8DvgIekrQw56+JZ3jb1wCrgSclzc3zbwEuLHL8HZL6pi26Smmx3QsYD9wK1AL9gIPAt8AiYJGkw+VTmAzbHwLDgYsl7YPCGf55YC/wRoF9e4BXCvj3paSxSnmZQPjetwErgN+APsCdwEJgnO0Jkk6WefCLhOQ9HXgBYhne9iXAJmChpIfze0YZHkkDSqO1SqmxfSPQHViSn8lt9wXWABcAd0tqKJPExNjeCJxFmJ4fjmf4B4Aa4IOSK2sHtnsDzQTNrXEQ6CnpQPaqKlfXiZD0SRH/dtvzCXf/G4DUBnwJYvU+8CwwBlgWH/A3AYeAL4p0PtP2JKA/sB/4BmiUdCihiLQ4G3gub3sAMBlYCyzO8+8s8aCqVF0d4d/I/pfycbOO1WeRHQMsOzKlsd2dMEffKKk23quVResvwP2SPm2HmFSx/SCwAJgpaU659eSoVF1txXYXYB1wGTBW0rIMz5VqrGz3BP4CvpR0bae8ff2AzoQFSyEWAaOBvoR5Xi3wJuEX+bHtKzoqLgWGRrapjBoKMTSyTWXU0BFeIgz2pVkO9oihkW1K42CS9gAHCLOSY6o0vSL7Z5GOjrk2AFNt7wNmEOZJ41s7+QlKm4V4V9KkBO1zP7r1rWh4FJgJnAd8B9RJWpngHO0hE10liCe2pxO+303AvUn6tpMsYrWbUG0iP8P/E9muCQXOj+zINrT9CfghwWdrW0XYrgEuB7ZK2lmkzUTgVUKJ6krgc8LdqX9bz5OUjHVlFs9I12ORru+BUZJ2J+mflAxj1Y1ofOdn+ObI9jqueevkhHU/UUNJoxMeOwkDgR4cXaQU4gmgXtKCaHua7bHAI8Dsk01XlvG0XQfMI9zJR0tqbr1HKqQeK9udgHMIa81jMvw2wuAdnFDk8Mj+nLBf2lwa2Q2Fdto+AxgGLI/tWg5cdxrqKortpwiDvYmQ2Usx2CGbWA0mlDybIG/AR0/PGoHeti+KnWhIVMWJCxgAvB5tvlP8OkpCj8juLbK/N2FRviPm30FYiB/Bdr3tFttTKklXKbD9DGGRupaQ2Xe1oU9a8coiVrmEvAKOf7WgAbgLuAX4Mc8/EZhhuxH4FfgbGER456IrsBQod7ltc2TrbJ9LKEO9185j5RJBGjXnNHVliu3JhJr4IWAlMN2O1yrYIqk+5ksrXlnE6mbC9XwEx05pIAz4ZuC+mH8F4SHAIOAewjzqemAV4SHBbZIOdlBYh5D0NfA04QFJHXB1rMkuwoX3ifn7ANtjvlrCj3pJhenKmoGR7UzQqgKfKQX6pRKvtGMV1eDvABZL+h0Kvy05m7ACvkrSuo5cQKVhezWwPv89IdubgQZJs6Ptc4A/gJclzaoUXZVKqeOVJFa2pwGvASMkrYLCb0vOA6YSbm23ZyW8TMwF3ra9hlAJmAqcz9HSKsAIQoaZe3z3suqqVEodrzbFynY3QtWmITfYoUCGjxqPBEYBc061P4BEDy1mER5abAAel9RYXlWVq6sSaUusbA8hrD3rJW3J+QsO+CpVTlXii9YqVU5p/geojlcEm2u1/AAAAABJRU5ErkJggg==",
+      "text/latex": [
+       "$\\displaystyle \\left( 5 - \\tau_{0}, \\  \\tau_{0} - 2, \\  \\tau_{0}\\right)$"
+      ],
+      "text/plain": [
+       "(5 - τ₀, τ₀ - 2, τ₀)"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAAAUCAYAAAAJD/ojAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABJ0AAASdAHeZh94AAADkklEQVR4nO3YW6hVVRQG4O+oD0k3wR4EKzBKC5LMCO1BS1MjgrAsesiypIjADkZSGNlwCJUPqRlFgobHJChBIqjIlyIzupNQdCPIkjDMjMrILnZ6WGufttt9vOy9l56iHzaTOeacY/z7X3ONOebq6u3t9T+qw6BjTeC/jiHNjJm5DpdjVET8cnQp/fuQmRfgPdwaEWvqx7oaU0RmXoi3sSAiltfZr8HFGIfzcCKejojZFRIfjqtwBcZiJH7Hh1iLtRHxV1Xx63jMxvqye4CI5ZznMBFnRcSemr1ZingAP+GJBvt9mKcQ+Jv2aR8WrsVqTFA89EewEediDTZkZleVBDLzNDyGPYeY+hBGoLveuJ/AmTka07AhIn5tcHAnRuMk3N4G5yPB57gSp0bE9RGxMCLm4mxsxyxcXVXw8uGtxfdYdbC5EfEOPsVtmdmna2MOnosuPNvEwat1gVtnfQSIiFf6sX+bmasUb9slil1dBboxtYwx9TDmP4PFmI5NHJgipmEf3uoUwwrxR9n+WYXzzDwHS7EyIjYf5rI3ynZ6zdAncGYer8ivnwz0yiEzh+DGsvtyRf7X42vcewRL3y3byTVD/Q4eicHY0S7Bo4ClioPupYjYVIH/+3E+bmpyFvWLiPgRe3F6zVYv8PCy/aETDKtCZnbjLsWBckMF/icodu2yiHizBRe7cUqtUy9w7Ukd1zq9apGZ87ASH2NKROzusP8heEpRvSxq0c1Q/2i5XxWxs2yHG4DIzPlYgY9waUTsPPiKlnCCohSFvf1US6szc7Xi8JvfwHEQhuHLmq1e4B34DmM6x7czyMx7FHl3K6ZHxK6KQv2GJ/sZG6/Iy1vwGZqljzGKMndrzdAncET0ZuZmzMrMMyPii3bZZmYP5uDmiOhp0cciLMH7mHGotNBOzPJAu6Ufv4sVAq9rdlUuMbFs++4MjReNjYrb0WXYT+DMnImZZXdE2V5U/iHYFRELGvzVcnxLtWpmzlGIuw+vo7vJa7utQci2YraJGQquz9cMzQTeqagxH28YG6fYGfU4o/zBV2gUeCx+xostEh5VtoMxv585r6GngzFbQmaerNiAL0TE9pq92de0hXgQ4yPigzYCDlPc4ZdFxN2t+hnoMeti34FHMSkittTszb6mrVDcYJa0GXOS4jq7/FATO4hjEVNmDsVCbKwXlyY7uFwwGVPw8EC/Ng8ElN8trkNPRGyrH/sbGUIvLKnRTFUAAAAASUVORK5CYII=",
+      "text/latex": [
+       "$\\displaystyle \\left( 1, \\  2, \\  4\\right)$"
+      ],
+      "text/plain": [
+       "(1, 2, 4)"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# virker både for sols1 og sols2, mens sols3 kræver sols3.values()\n",
+    "sols = linsolve((A,b))    # or sols = A.gauss_jordan_solve(b)\n",
+    "var = Tuple(*Tuple(*sols).free_symbols)\n",
+    "display(Tuple(*sols)[0])\n",
+    "Tuple(*sols)[0].subs(var[0],4)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Det er lige til at generalisere dette til tilfælde med flere frie variable. Prøv."
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3.10.6 ('mat1-pilot': venv)",
+   "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.10.6"
+  },
+  "orig_nbformat": 4,
+  "vscode": {
+   "interpreter": {
+    "hash": "0ba7452ab71c50cb9c4d5c0b7e104e5d7d626d39ddaf30384c30e1499f7a54e3"
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Konvertering af Notebook til PDF.ipynb b/Konvertering af Notebook til PDF.ipynb
deleted file mode 120000
index cac7755fdbe738e53f7f0e09febe07909f285e5d..0000000000000000000000000000000000000000
--- a/Konvertering af Notebook til PDF.ipynb	
+++ /dev/null
@@ -1 +0,0 @@
-/home/jakle/Python/pilot-project-for-01005/Konvertering af Notebook til PDF.ipynb
\ No newline at end of file
diff --git a/Konvertering af Notebook til PDF.ipynb b/Konvertering af Notebook til PDF.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..1fe29f5c4325ac3e663a789507e02c231233ee0d
--- /dev/null
+++ b/Konvertering af Notebook til PDF.ipynb	
@@ -0,0 +1,159 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Af Christian Mikkelstrup, Hans Henrik Hermansen og Jakob Lemvig"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Generelt om aflevering af eksamens- og hjemmeopgaver\n",
+    "\n",
+    "Først et par kommentarer om afleveringer i 01005 Matematik 1:\n",
+    "\n",
+    "> <font size=\"6\">**Hvis alt går galt til eksamen, så aflever blot en tom PDF og `ipynb`-filen som bilag**  \n",
+    "> Den \"tomme\" PDF bør henvise til bilaget og forklare at I ikke kunne eksportere til PDF.</font>\n",
+    "\n",
+    "> <font size=\"6\">Gør jeres matematik **reproducerbar**. Det kan gøres ved at vedhæfte jeres Notebook i `ipynb`-format som bilag til jeres hjemmeafleveringer. Hvis I skriver selve afleveringen direkte som en Notebook, er dette trin selvfølgelig ikke nødvendigt. \n",
+    "</font>"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Konvertering af Notebooks\n",
+    "\n",
+    "I denne notebook bliver der først gennemgået installationen, hvorefter 3 metoder til eksportering præsenteres, hvormed man kan exportere sin fine Jupyter Notebook til et pdf dokument. Der vil være en *simpel metode*, som vil være fremgangsmåden for klart de fleste af jer, en *advanceret metode*, hvis I vil have endnu mere kontrol over hvordan jeres pdf ser ud, eller en metode der altid virker (men dog ikke er lige så pæn). Dette er vigtigt til aflevering af hjemmeopgaverr, da disse skal afleveres som pdf (.ipynb filer godtages ikke). I kan passende exportere dette dokument (eller enhver af demoerne) for at teste at jeres exportering virker!"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Installering\n",
+    "Før vi kan begynde at eksportere dokumenter, er det krævet at installere 2-3 ting. Først skal vi bruge **pandoc**, som er et værktøj til at konverterer mellem forskellige dokument-formater. Det kan hentes på link: [https://pandoc.org/installing.html](https://pandoc.org/installing.html). Derudover skal vi bruge **LaTeX**. Download er specifik til styresystemet, så Windows systemer skal bruge [MikTex](https://miktex.org), Mac systemer skal bruge [MacTex](https://tug.org/mactex/) og Linux systemer skal bruge [Tex Live](https://tug.org/texlive/). Endelig vil det være nyttigt at installere [nbconvert](https://nbconvert.readthedocs.io/en/latest/), da det giver mulighed for konvertering af Notebooks via terminalen.\n",
+    "\n",
+    "## Noter for nbconvert installation\n",
+    "\n",
+    "- **Installation**: Åben først en terminal (fra toolbar: Terminal > New Terminal (eller ctrl+shift+\\`). Kør: `pip install nbconvert` eller `conda install nbconvert`, se denne [guide](https://nbconvert.readthedocs.io/en/latest/install.html)\n",
+    "- The command-line **syntax** to run the nbconvert script is:\n",
+    "    ```\n",
+    "    jupyter nbconvert --to FORMAT notebook.ipynb\n",
+    "    ```\n",
+    "    This will convert the Jupyter notebook file notebook.ipynb into the output format given by the FORMAT string.\n",
+    "\n",
+    "\n",
+    "## Noter for LaTeX installation\n",
+    "\n",
+    "### Linux\n",
+    "\n",
+    "Guiden under [Tex Live](https://tug.org/texlive/) er ret god (tl;dr: Unix(ish)), men vi skulle notere/justere 3 ting:\n",
+    "- Step 4: i stedet for stjerne, skulle vi skrive hvad cifre der var kommer til mappen. Man kan finde ud af hvilke mapper og filer der ligger hvor man er nu ved at skrive ``ls`` i kommandovinduet.\n",
+    "- Step 5: Her skulle vi skrive ``sudo`` og mellemrum før resten af linjen for at den kunne køre. Dette krævede også at man indtaster koden til computeren.\n",
+    "- Step 6: De beder dig her om at tilføje den til din PATH. Måden det har virket for os er ved at åbne \".bashrc\" i \"/home/\" (gemt fil) og tilføje linjen nederst: ``PATH=\"/usr/local/texlive/2022/bin/x86_64-linux:$PATH\"``\n",
+    "\n",
+    "### Ekstra for Mac og Windows\n",
+    "\n",
+    "Sørg for at notere stien hvori programmet downloades. Når programmet er installeret, så sørg for at åbne programmet og downloade eventuelle optateringer, hvis du bliver bedt om det (Eksempelvis i MiKTeX, hvor en knap siger \"Check for updates\", og så kan man trykke på \"Update now\" under \"Updates\" fanen). For Windows og Mac skal stien til det downloadede program tilføjes til \"PATH\" (gør så python kan bruge LaTeX kommandoerne):\n",
+    "\n",
+    "- For Windows kan man søge efter \"Rediger systemmiljøvariablerne\" (\"Edit the system environment variables\" på engelsk) og vælge \"Miljøvariabler\" (\"Environment Variables\"). Derefter kan man under \"Brugervariabler\" dobbeltklikke på \"Path\" (\"User variables\" og \"PATH\"). Inde på denne meny skal man trykke \"Ny\" (\"New\") og indsætte stien til hvor man har downloaded filen i formatet (med \"DOWNLOADPATH\" erstattet med jeres sti): ``DOWNLOADPATH\\MiKTeX\\miktex\\bin\\x64\\``  Nu kan du trykke på \"OK\" på alle de åbnede vinduer for at lukke dem igen.\n",
+    "- For Mac kan man tilføje programmet til \"PATH\" ved brug af én kommando fra kommandolinjen: ``export PATH=/Library/TeX/texbin:$PATH``\n",
+    "\n",
+    "Når installationen er færdig er det krævet, at du genstarter Visual Studio Code før du kan eksportere til PDF."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Eksportering\n",
+    "\n",
+    "## Kort om de forskellige løsninger\n",
+    "\n",
+    "### Brug af GUI i VS Code\n",
+    "1. PDF via $\\LaTeX$: Ctrl-Shift-P (Linux/Windows) eller Cmd-Shift-P (Mac) og skriv \"**Export to PDF**\". Alternativt: Tryk på $\\cdots$ i toolbaren lige over notebooken og vælg \"eksport -> PDF\".\n",
+    "1. PDF via HTML: Ctrl-Shift-P (Linux/Windows) eller Cmd-Shift-P (Mac) og skriv \"**Export to HTML**\". Alternativt: Tryk på $\\cdots$ i toolbaren lige over notebooken og vælg \"eksport -> HTML\". Åben derefter HTML-filen i en browser og vælg \"Print -> Print to PDF\".\n",
+    "\n",
+    "### Brug af nbconvert fra terminalen (uafhængigt af VS Code)\n",
+    "Ved længere rapporter er det nyttigt at eksportere jeres Notebook til en LaTeX-fil (se 1. nedenfor). Ved kortere afleveringer bør I eksportere til PDF (se 2. og 3. nedenfor). Vi skal først åbne en terminal eller command prompt. I VS Code kan i vælge Terminal > New Terminal. I terminalen skal vi derefter navigere til den folder/mappe/bibliotek hvor Notebooken ligger, fx `cd Mat1-opgaver`. Derefter kalder vi `jupyter nbconvert` fra terminalen på følgende måder:    \n",
+    "\n",
+    "1. Direkte til $\\LaTeX$: `jupyter nbconvert --to latex notebook.ipynb`. Herefter til PDF via: `xelatex notebook.tex`\n",
+    "1. Direkte til PDF via LaTeX: `jupyter nbconvert --to pdf notebook.ipynb`\n",
+    "1. Til PDF via HTML `jupyter nbconvert --to html notebook.ipynb`. Åben derefter HTML-filen i en browser og vælg \"Print -> Print to PDF\"."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Mere information om eksport til PDF via LaTeX (fra GUI i VS Code)\n",
+    "\n",
+    "Du skal åbne filen du gerne vil have eksporteret til pdf. Inde på filen kan du søge efter kommandoen (Man finder søge-baren ved Ctrl-Shift-P eller Cmd-Shift-P på Mac) \"**Export to PDF**\". Du får her mulighed for at vælge hvor din pdf skal gemmes. Det kan godt tage noget tid før den bliver færdig med at eksportere.\n",
+    "\n",
+    "Noter ved eksport ved denne metode:\n",
+    "\n",
+    "- Det kan give mening at have det første i dokumentet være forfatteren (lavet af), da dette er det første der kommer ind under den automatisk genererede overskrift.\n",
+    "- Overskriften i pdf-dokumentet bliver navnet på notebook filen.\n",
+    "- Der bliver automatisk lavet afsnit eller underafsnit når man i markdown har indsat \"#\" eller \"##\" (eller \"###\").\n",
+    "- Specielle symboler kan nogle gange forsvinde. Eksempelvis kommer de fancy *Shift* og *Cmd* for Mac ikke med hvis man eksporterer \"Intro-SymPy.ipynb\". Overvej om man kan skrive deres navn i stedet for."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Mere information om advanceret eksport til PDF\n",
+    "\n",
+    "Hvis man gerne vil have mere kontrol over layoutet i den resulterende pdf, skal man åbne en terminal i mappen hvor jupyter notebook'en ligger. Dette kan gøres i Visual Studio Code under \"Terminal -> New Terminal\", og (hvis ikke kommandoen ``pwd`` viser den rigtige sti) skrive ``cd \"den_fulde_sti_indsættes_her\"``. Herefter skrives følgende kommando (med \"notebook\" erstattet med notebook'ens navn)\n",
+    "\n",
+    "`jupyter nbconvert notebook.ipynb --to latex`\n",
+    "\n",
+    "Dette laver en række nye filer i samme mappe som notebook'en, hvoraf én af dem gerne skal være en \".tex\" fil med samme navn som notebook'en. Denne LaTeX fil skal så åbnes i det downloadede LaTeX system (MikTex, MacTex eller Tex Live). Man kan også arbejde videre med denne fil på [Overleaf](https://www.overleaf.com/), men da denne mulighed bruger internet, kan dette ikke bruges til eksamen. \n",
+    "\n",
+    "Nu kan man så justere ved den rå LaTeX kildekode før man kompilerer dokumentet! Her er et par detaljer som vi har brugt eller noteret ved denne metode:\n",
+    "\n",
+    "- Standard formatet ved brug af denne metode, hvis der ikke gøres mere, er præcis det samme som den simple eksportering.\n",
+    "- Man kan ændre overskriften i PDF'en ved at finde og justere den linje i dokumentet hvor der står ``\\title{notebook_title_here}``.\n",
+    "- Hvis man gerne vil indsætte forfattere i den auto-genererede overskrift, kan man i linjen under titlen indsætte følgende linje: ``\\author{my_name_here}``\n",
+    "- Man kan fjerne tallene før overskrifterne ved at finde de steder hvor der står ``\\section{header}`` (eller ``\\subsection{header}`` og ``\\subsubsection{header}``) og erstatte med ``\\section*{header}`` (eller ``\\subsection*{header}`` og ``\\subsubsection*{header}``).\n",
+    "- Det er ikke altid at den kompilerer. Eksempelvis kan \"Intro-SymPy.ipynb\" dokumentet ikke kompileres uden justeringer, da det indeholder fancy versioner af *shift* og *command* for mac. Man kan eksempelvis komme rundt om dette problem ved at skrive ``Cmd`` og ``Shift`` i stedet for. I den simple version fjernede den helt bare symbolerne i stedet for at smide en fejl. Dette er bare en advarsel om, at du bliver bedt om at gøre noget, hvis den støder på problemer. \n",
+    "- I linux kan man kompilere sit dokument ved at navigere til et kommandovindue hen til den korrekte sti, hvorefter man kører kommandoen ``xelatex filename.tex``"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Hvis alt andet fejler\n",
+    "\n",
+    "Eksportering fra notebook til latex er stadig ret nyt, så man kan ende i en situation hvor ens flotte notebook bare ikke vil eksportere, også selvom det ser godt ud i Visual Studio Code. Hvis det ikke virker når man sidder til eksamen, eller man ikke orker bruge mere tid på det, skal du følge disse instruktioner! \n",
+    "\n",
+    "Inde på filen kan du søge efter kommandoen \"**Export to HTML**\". Du får her mulighed for at vælge hvor filen skal gemmes. Hvis dette ikke virker, så prøv `jupyter nbconvert --to html notebook.ipynb` i terminalen. Herefter skal du åbne den nye \".html\" fil i en browser (den bruger ikke internet på trods af at det er en browser). Du kan nu vælge at \"printe\" siden, og som printer vælge \"Gem som PDF\" (\"Save as PDF\"). "
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3.10.6 ('mat1-pilot': venv)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "name": "python",
+   "version": "3.10.6"
+  },
+  "orig_nbformat": 4,
+  "vscode": {
+   "interpreter": {
+    "hash": "0ba7452ab71c50cb9c4d5c0b7e104e5d7d626d39ddaf30384c30e1499f7a54e3"
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}