From b61b3c6264988227fd20aa05456aff700f492534 Mon Sep 17 00:00:00 2001
From: Jan Snellman <jan.snellman@liu.se>
Date: Mon, 29 Apr 2024 11:12:20 +0200
Subject: [PATCH] =?UTF-8?q?uppgifter=20kedjebr=C3=A5k=20PPT?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .ipynb_checkpoints/Untitled1-checkpoint.ipynb |   6 +
 .ipynb_checkpoints/t2-checkpoint.ipynb        | 463 ++++++++++++++++++
 Untitled1.ipynb                               | 463 ++++++++++++++++++
 homepage/index.org                            |   2 +
 homepage/sitemap.org                          |   2 +-
 public/index.html                             |  33 +-
 public/sitemap.html                           |   6 +-
 t2.ipynb                                      | 463 ++++++++++++++++++
 8 files changed, 1422 insertions(+), 16 deletions(-)
 create mode 100644 .ipynb_checkpoints/Untitled1-checkpoint.ipynb
 create mode 100644 .ipynb_checkpoints/t2-checkpoint.ipynb
 create mode 100644 Untitled1.ipynb
 create mode 100644 t2.ipynb

diff --git a/.ipynb_checkpoints/Untitled1-checkpoint.ipynb b/.ipynb_checkpoints/Untitled1-checkpoint.ipynb
new file mode 100644
index 0000000..363fcab
--- /dev/null
+++ b/.ipynb_checkpoints/Untitled1-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/.ipynb_checkpoints/t2-checkpoint.ipynb b/.ipynb_checkpoints/t2-checkpoint.ipynb
new file mode 100644
index 0000000..03d8318
--- /dev/null
+++ b/.ipynb_checkpoints/t2-checkpoint.ipynb
@@ -0,0 +1,463 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "9ecab153",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(x, y)"
+      ]
+     },
+     "execution_count": 1,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "var('x,y')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "ce0ab8a1",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "g(x,y) = x^2 + y^2 - 9"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "d63bdcf7",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "f(x,y)= x^2 +x*y +y^2 -4*y"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "220e5c14",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(2*x, 2*y)"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "gradg = g(x,y).gradient()\n",
+    "gradg"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "2fb288a7",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(2*x + y, x + 2*y - 4)"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "gradf = f(x,y).gradient()\n",
+    "gradf"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "54d7ffa7",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Multivariate Polynomial Ring in la, x, y over Algebraic Field"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "R.<la,x,y> = PolynomialRing(QQbar,order='lex')\n",
+    "R"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "fbe53eff",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "e1 = 2*x+y - la*2*x\n",
+    "e2 = x+2*y -4 - la*2*y\n",
+    "e3 = x^2 + y^2-9"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "5635dddc",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "I = ideal(e1,e2,e3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "f79e370f",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[la + 1/18*y^3 + (-1/36)*y - 1, x + 1/2*y^2 - 9/4, y^4 + (-5)*y^2 - 63/4]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "I.groebner_basis()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "id": "d3392e18",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[{y: -2.681495060562937?, x: -1.345207879911715?, la: 1.996684267393276?},\n",
+       " {y: 2.681495060562937?, x: -1.345207879911715?, la: 0.003315732606724674?},\n",
+       " {y: -1.480005324255096?*I, x: 3.345207879911715?, la: 1 - 0.2212127582776941?*I},\n",
+       " {y: 1.480005324255096?*I, x: 3.345207879911715?, la: 1 + 0.2212127582776941?*I}]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "I.variety()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "id": "a4935561",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "x^2 - 2*x - 9/2"
+      ]
+     },
+     "execution_count": 24,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "x.subs(I.variety()[0]).minpoly()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "15a7d053",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5dcf93b0",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "id": "9081c07e",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "R.<x,y,z> = PolynomialRing(QQbar,order='lex')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "id": "f33912f1",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "A = matrix(R,[[y*z,1,2*x],[x*z,1,2*y],[x*y,1,2*z]])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "id": "4523617a",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(-2)*x^2*y + 2*x^2*z + 2*x*y^2 + (-2)*x*z^2 + (-2)*y^2*z + 2*y*z^2"
+      ]
+     },
+     "execution_count": 29,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "f1=A.det()\n",
+    "f1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "id": "fc38b38c",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "x + y + z - 1"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "f2 = x+y+z-1\n",
+    "f2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "id": "a2d7db27",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "x^2 + y^2 + z^2 - 1"
+      ]
+     },
+     "execution_count": 31,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "f3 = x^2 + y^2 + z^2-1\n",
+    "f3"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "id": "ffb34a3f",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Ideal ((-2)*x^2*y + 2*x^2*z + 2*x*y^2 + (-2)*x*z^2 + (-2)*y^2*z + 2*y*z^2, x + y + z - 1, x^2 + y^2 + z^2 - 1) of Multivariate Polynomial Ring in x, y, z over Algebraic Field"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "J = ideal(f1,f2,f3)\n",
+    "J"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "id": "991507b1",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[{z: 0, y: 0, x: 1},\n",
+       " {z: 0, y: 1, x: 0},\n",
+       " {z: 1, y: 0, x: 0},\n",
+       " {z: 0.6666666666666667?, y: 0.6666666666666667?, x: -0.3333333333333334?},\n",
+       " {z: 0.6666666666666667?, y: -0.3333333333333334?, x: 0.6666666666666667?},\n",
+       " {z: -0.3333333333333334?, y: 0.6666666666666667?, x: 0.6666666666666667?}]"
+      ]
+     },
+     "execution_count": 33,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "J.variety()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "id": "d950f08a",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[x + y + z - 1, y^2 + y*z - y + z^2 - z, y*z^2 + (-2/3)*y*z + 1/2*z^3 + (-5/6)*z^2 + 1/3*z, z^4 + (-4/3)*z^3 + 1/9*z^2 + 2/9*z]"
+      ]
+     },
+     "execution_count": 35,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "jgb=J.groebner_basis()\n",
+    "jgb"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "id": "f71c0645",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "z^4 + (-4/3)*z^3 + 1/9*z^2 + 2/9*z"
+      ]
+     },
+     "execution_count": 37,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "jgb[3]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "id": "4b26bc25",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "z * (z - 1) * (z - 2/3) * (z + 1/3)"
+      ]
+     },
+     "execution_count": 39,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "jgb[3].factor()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "id": "7945c62d",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Ideal ((-2)*x^2*y + 2*x^2*z + 2*x*y^2 + (-2)*x*z^2 + (-2)*y^2*z + 2*y*z^2, x + y + z - 1, x^2 + y^2 + z^2 - 1) of Multivariate Polynomial Ring in x, y, z over Algebraic Field"
+      ]
+     },
+     "execution_count": 40,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "J"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5edad37f",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "SageMath 10.1",
+   "language": "sage",
+   "name": "sagemath"
+  },
+  "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.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/Untitled1.ipynb b/Untitled1.ipynb
new file mode 100644
index 0000000..19d9d5b
--- /dev/null
+++ b/Untitled1.ipynb
@@ -0,0 +1,463 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "d07ea913",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(x, y)"
+      ]
+     },
+     "execution_count": 1,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "var('x,y')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "30b7e0f3",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "g(x,y) = x^2 + y^2 - 9"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "5f695aaa",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "f(x,y)= x^2 +x*y +y^2 -4*y"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "701aed0e",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(2*x, 2*y)"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "gradg = g(x,y).gradient()\n",
+    "gradg"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "ebb00f48",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(2*x + y, x + 2*y - 4)"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "gradf = f(x,y).gradient()\n",
+    "gradf"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "dbc0ed3b",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Multivariate Polynomial Ring in la, x, y over Algebraic Field"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "R.<la,x,y> = PolynomialRing(QQbar,order='lex')\n",
+    "R"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "e82d9224",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "e1 = 2*x+y - la*2*x\n",
+    "e2 = x+2*y -4 - la*2*y\n",
+    "e3 = x^2 + y^2-9"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "c51a6b16",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "I = ideal(e1,e2,e3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "5a9e061c",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[la + 1/18*y^3 + (-1/36)*y - 1, x + 1/2*y^2 - 9/4, y^4 + (-5)*y^2 - 63/4]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "I.groebner_basis()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "id": "a51b0491",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[{y: -2.681495060562937?, x: -1.345207879911715?, la: 1.996684267393276?},\n",
+       " {y: 2.681495060562937?, x: -1.345207879911715?, la: 0.003315732606724674?},\n",
+       " {y: -1.480005324255096?*I, x: 3.345207879911715?, la: 1 - 0.2212127582776941?*I},\n",
+       " {y: 1.480005324255096?*I, x: 3.345207879911715?, la: 1 + 0.2212127582776941?*I}]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "I.variety()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "id": "ff87ebbf",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "x^2 - 2*x - 9/2"
+      ]
+     },
+     "execution_count": 24,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "x.subs(I.variety()[0]).minpoly()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "45778ed0",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "a7f12dbb",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "id": "aa794406",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "R.<x,y,z> = PolynomialRing(QQbar,order='lex')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "id": "f941187e",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "A = matrix(R,[[y*z,1,2*x],[x*z,1,2*y],[x*y,1,2*z]])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "id": "3ed1478f",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(-2)*x^2*y + 2*x^2*z + 2*x*y^2 + (-2)*x*z^2 + (-2)*y^2*z + 2*y*z^2"
+      ]
+     },
+     "execution_count": 29,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "f1=A.det()\n",
+    "f1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "id": "60c173ea",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "x + y + z - 1"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "f2 = x+y+z-1\n",
+    "f2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "id": "9d9d2f92",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "x^2 + y^2 + z^2 - 1"
+      ]
+     },
+     "execution_count": 31,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "f3 = x^2 + y^2 + z^2-1\n",
+    "f3"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "id": "c5388074",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Ideal ((-2)*x^2*y + 2*x^2*z + 2*x*y^2 + (-2)*x*z^2 + (-2)*y^2*z + 2*y*z^2, x + y + z - 1, x^2 + y^2 + z^2 - 1) of Multivariate Polynomial Ring in x, y, z over Algebraic Field"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "J = ideal(f1,f2,f3)\n",
+    "J"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "id": "4c83a33e",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[{z: 0, y: 0, x: 1},\n",
+       " {z: 0, y: 1, x: 0},\n",
+       " {z: 1, y: 0, x: 0},\n",
+       " {z: 0.6666666666666667?, y: 0.6666666666666667?, x: -0.3333333333333334?},\n",
+       " {z: 0.6666666666666667?, y: -0.3333333333333334?, x: 0.6666666666666667?},\n",
+       " {z: -0.3333333333333334?, y: 0.6666666666666667?, x: 0.6666666666666667?}]"
+      ]
+     },
+     "execution_count": 33,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "J.variety()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "id": "db8474fb",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[x + y + z - 1, y^2 + y*z - y + z^2 - z, y*z^2 + (-2/3)*y*z + 1/2*z^3 + (-5/6)*z^2 + 1/3*z, z^4 + (-4/3)*z^3 + 1/9*z^2 + 2/9*z]"
+      ]
+     },
+     "execution_count": 35,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "jgb=J.groebner_basis()\n",
+    "jgb"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "id": "dacdffed",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "z^4 + (-4/3)*z^3 + 1/9*z^2 + 2/9*z"
+      ]
+     },
+     "execution_count": 37,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "jgb[3]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "id": "ac01d945",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "z * (z - 1) * (z - 2/3) * (z + 1/3)"
+      ]
+     },
+     "execution_count": 39,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "jgb[3].factor()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "id": "586ad09b",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Ideal ((-2)*x^2*y + 2*x^2*z + 2*x*y^2 + (-2)*x*z^2 + (-2)*y^2*z + 2*y*z^2, x + y + z - 1, x^2 + y^2 + z^2 - 1) of Multivariate Polynomial Ring in x, y, z over Algebraic Field"
+      ]
+     },
+     "execution_count": 40,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "J"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "d35170a9",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "SageMath 10.1",
+   "language": "sage",
+   "name": "sagemath"
+  },
+  "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.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/homepage/index.org b/homepage/index.org
index d6f96cb..0038e55 100644
--- a/homepage/index.org
+++ b/homepage/index.org
@@ -23,6 +23,8 @@ Skriftlig tentamen.
 | TATA54/TEN1 | Talteori | 2024-08-22 | 14-18 | Linköping | 2024-07-23 - 2024-08-12 |
 
 * Allra senaste nytt VT2024 <<allra-senaste-nytt>>
+** 2024-04-29
+Till nästa gång så tittar vi på 12.4.3b, 12.4.8, 13.1.2, 13.1.3. 
 ** 2024-04-23
 Jag pratade om "Eulers regel" som uttrycker kedjebråkskonvergenterna
 q_n/p_n till [x_0;x_1,x_2,\dots] som rationella funktioner i
diff --git a/homepage/sitemap.org b/homepage/sitemap.org
index c1e5cb8..aa4e7f7 100644
--- a/homepage/sitemap.org
+++ b/homepage/sitemap.org
@@ -2,7 +2,6 @@
 
 - [[file:newlectures/newlecture.org][Föreläsningar i Talteori]]
 - [[file:newlectures/new-lect-0.org][Talteori översiktsföreläsning]]
-- [[file:index.org][TATA54 Talteori]]
 - [[file:lectures/Henselfaktorisering.org][Henselfaktorisering]]
 - [[file:senaste-nytt.org][senaste-nytt]]
 - [[file:labs/lecture5.org][lecture5]]
@@ -11,5 +10,6 @@
 - [[file:labs/lecture2.org][lecture2]]
 - [[file:labs/lecture1.org][lecture1]]
 - [[file:labs/lecture0.org][lecture0]]
+- [[file:index.org][TATA54 Talteori]]
 - [[file:labs/kedjebraklab.org][Sagemath-övningar på kedjebråk]]
 - [[file:labs/HenselLyftLabHT2023.org][SageMath-övningar på Hensellyft, primitiva rötter, och KRS]]
\ No newline at end of file
diff --git a/public/index.html b/public/index.html
index 960fa0f..e267400 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html lang="sv">
 <head>
-<!-- 2024-04-23 -->
+<!-- 2024-04-29 -->
 <meta charset="utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1" />
 <title>TATA54 Talteori</title>
@@ -74,17 +74,18 @@
 </li>
 <li><a href="#orgda7b5cb">Allra senaste nytt VT2024 </a>
 <ul>
+<li><a href="#org6916c72">2024-04-29</a></li>
 <li><a href="#org2fc933f">2024-04-23</a></li>
 <li><a href="#org0e96bfa">2024-04-22</a></li>
 <li><a href="#org796ce06">2024-04-14</a>
 <ul>
-<li><a href="#orge6da327">Uppgifter att räkna till nästa gång</a></li>
+<li><a href="#org7d0c4fd">Uppgifter att räkna till nästa gång</a></li>
 <li><a href="#org87e8642">Datorlaboration</a></li>
 </ul>
 </li>
 <li><a href="#orgff00c35">2024-04-07</a>
 <ul>
-<li><a href="#org7d0c4fd">Uppgifter att räkna till nästa gång</a></li>
+<li><a href="#org1367de2">Uppgifter att räkna till nästa gång</a></li>
 <li><a href="#orgcb6d72a">Beviset för kvadratisk reciprocitet</a></li>
 </ul>
 </li>
@@ -257,6 +258,14 @@ Skriftlig tentamen.
 <h2 id="orgda7b5cb">Allra senaste nytt VT2024 <a id="org53d52c1"></a></h2>
 <div class="outline-text-2" id="text-orgda7b5cb">
 </div>
+<div id="outline-container-org6916c72" class="outline-3">
+<h3 id="org6916c72">2024-04-29</h3>
+<div class="outline-text-3" id="text-org6916c72">
+<p>
+Till nästa gång så tittar vi på 12.4.3b, 12.4.8, 13.1.2, 13.1.3. 
+</p>
+</div>
+</div>
 <div id="outline-container-org2fc933f" class="outline-3">
 <h3 id="org2fc933f">2024-04-23</h3>
 <div class="outline-text-3" id="text-org2fc933f">
@@ -286,9 +295,9 @@ Till på fredag 12.4.5b, 12.4.6b
 <h3 id="org796ce06">2024-04-14</h3>
 <div class="outline-text-3" id="text-org796ce06">
 </div>
-<div id="outline-container-orge6da327" class="outline-4">
-<h4 id="orge6da327">Uppgifter att räkna till nästa gång</h4>
-<div class="outline-text-4" id="text-orge6da327">
+<div id="outline-container-org7d0c4fd" class="outline-4">
+<h4 id="org7d0c4fd">Uppgifter att räkna till nästa gång</h4>
+<div class="outline-text-4" id="text-org7d0c4fd">
 <p>
 12.2.1bf, 12.2.2cd, 12.2.3c, 12.2.11
 </p>
@@ -309,9 +318,9 @@ gränsvärdet av a(k,m) då m går mot oändligheten?
 <h3 id="orgff00c35">2024-04-07</h3>
 <div class="outline-text-3" id="text-orgff00c35">
 </div>
-<div id="outline-container-org7d0c4fd" class="outline-4">
-<h4 id="org7d0c4fd">Uppgifter att räkna till nästa gång</h4>
-<div class="outline-text-4" id="text-org7d0c4fd">
+<div id="outline-container-org1367de2" class="outline-4">
+<h4 id="org1367de2">Uppgifter att räkna till nästa gång</h4>
+<div class="outline-text-4" id="text-org1367de2">
 <p>
 11.1.1d, 11.1.4, 11.1.25ab, 11.2.1cd, 11.2.2, 11.2.3,11.2.4
 </p>
@@ -439,7 +448,7 @@ H_L_tree(f,p,r).plot(layout='tree')
 </div>
 
 
-<figure id="orgb640d28">
+<figure id="orga443756">
 <img src="img/Henseluppgift.png" alt="Henseluppgift.png">
 
 </figure>
@@ -1665,7 +1674,7 @@ Another text is <a href="https://wstein.org/ent/">Elementary Number Theory</a> a
 </ul>
 
 
-<figure id="org296c115">
+<figure id="orgd70112c">
 <img src="img/sieveE.jpg" alt="sieveE.jpg">
 
 </figure>
@@ -1686,7 +1695,7 @@ Another text is <a href="https://wstein.org/ent/">Elementary Number Theory</a> a
 </main>
 <footer id="postamble" class="status">
 <p class="author">F&ouml;rfattare: Jan Snellman Jan Snellman</p>
-<p class="date">Created: 2024-04-23</p>
+<p class="date">Created: 2024-04-29</p>
 <p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
 </footer>
 </body>
diff --git a/public/sitemap.html b/public/sitemap.html
index c466128..7372682 100644
--- a/public/sitemap.html
+++ b/public/sitemap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-<!-- 2024-04-23 -->
+<!-- 2024-04-29 -->
 <meta charset="utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1" />
 <title>Kurshemsida</title>
@@ -208,7 +208,6 @@
 </header><ul class="org-ul">
 <li><a href="newlectures/newlecture.html">Föreläsningar i Talteori</a></li>
 <li><a href="newlectures/new-lect-0.html">Talteori översiktsföreläsning</a></li>
-<li><a href="index.html">TATA54 Talteori</a></li>
 <li><a href="lectures/Henselfaktorisering.html">Henselfaktorisering</a></li>
 <li><a href="senaste-nytt.html">senaste-nytt</a></li>
 <li><a href="labs/lecture5.html">lecture5</a></li>
@@ -217,13 +216,14 @@
 <li><a href="labs/lecture2.html">lecture2</a></li>
 <li><a href="labs/lecture1.html">lecture1</a></li>
 <li><a href="labs/lecture0.html">lecture0</a></li>
+<li><a href="index.html">TATA54 Talteori</a></li>
 <li><a href="labs/kedjebraklab.html">Sagemath-övningar på kedjebråk</a></li>
 <li><a href="labs/HenselLyftLabHT2023.html">SageMath-övningar på Hensellyft, primitiva rötter, och KRS</a></li>
 </ul>
 </main>
 <footer id="postamble" class="status">
 <p class="author">Author: Jan Snellman</p>
-<p class="date">Created: 2024-04-23</p>
+<p class="date">Created: 2024-04-29</p>
 <p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
 </footer>
 </body>
diff --git a/t2.ipynb b/t2.ipynb
new file mode 100644
index 0000000..03d8318
--- /dev/null
+++ b/t2.ipynb
@@ -0,0 +1,463 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "9ecab153",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(x, y)"
+      ]
+     },
+     "execution_count": 1,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "var('x,y')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "ce0ab8a1",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "g(x,y) = x^2 + y^2 - 9"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "d63bdcf7",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "f(x,y)= x^2 +x*y +y^2 -4*y"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "220e5c14",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(2*x, 2*y)"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "gradg = g(x,y).gradient()\n",
+    "gradg"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "2fb288a7",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(2*x + y, x + 2*y - 4)"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "gradf = f(x,y).gradient()\n",
+    "gradf"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "54d7ffa7",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Multivariate Polynomial Ring in la, x, y over Algebraic Field"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "R.<la,x,y> = PolynomialRing(QQbar,order='lex')\n",
+    "R"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "fbe53eff",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "e1 = 2*x+y - la*2*x\n",
+    "e2 = x+2*y -4 - la*2*y\n",
+    "e3 = x^2 + y^2-9"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "5635dddc",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "I = ideal(e1,e2,e3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "f79e370f",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[la + 1/18*y^3 + (-1/36)*y - 1, x + 1/2*y^2 - 9/4, y^4 + (-5)*y^2 - 63/4]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "I.groebner_basis()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "id": "d3392e18",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[{y: -2.681495060562937?, x: -1.345207879911715?, la: 1.996684267393276?},\n",
+       " {y: 2.681495060562937?, x: -1.345207879911715?, la: 0.003315732606724674?},\n",
+       " {y: -1.480005324255096?*I, x: 3.345207879911715?, la: 1 - 0.2212127582776941?*I},\n",
+       " {y: 1.480005324255096?*I, x: 3.345207879911715?, la: 1 + 0.2212127582776941?*I}]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "I.variety()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "id": "a4935561",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "x^2 - 2*x - 9/2"
+      ]
+     },
+     "execution_count": 24,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "x.subs(I.variety()[0]).minpoly()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "15a7d053",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5dcf93b0",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "id": "9081c07e",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "R.<x,y,z> = PolynomialRing(QQbar,order='lex')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "id": "f33912f1",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "A = matrix(R,[[y*z,1,2*x],[x*z,1,2*y],[x*y,1,2*z]])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "id": "4523617a",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(-2)*x^2*y + 2*x^2*z + 2*x*y^2 + (-2)*x*z^2 + (-2)*y^2*z + 2*y*z^2"
+      ]
+     },
+     "execution_count": 29,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "f1=A.det()\n",
+    "f1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "id": "fc38b38c",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "x + y + z - 1"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "f2 = x+y+z-1\n",
+    "f2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "id": "a2d7db27",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "x^2 + y^2 + z^2 - 1"
+      ]
+     },
+     "execution_count": 31,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "f3 = x^2 + y^2 + z^2-1\n",
+    "f3"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "id": "ffb34a3f",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Ideal ((-2)*x^2*y + 2*x^2*z + 2*x*y^2 + (-2)*x*z^2 + (-2)*y^2*z + 2*y*z^2, x + y + z - 1, x^2 + y^2 + z^2 - 1) of Multivariate Polynomial Ring in x, y, z over Algebraic Field"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "J = ideal(f1,f2,f3)\n",
+    "J"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "id": "991507b1",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[{z: 0, y: 0, x: 1},\n",
+       " {z: 0, y: 1, x: 0},\n",
+       " {z: 1, y: 0, x: 0},\n",
+       " {z: 0.6666666666666667?, y: 0.6666666666666667?, x: -0.3333333333333334?},\n",
+       " {z: 0.6666666666666667?, y: -0.3333333333333334?, x: 0.6666666666666667?},\n",
+       " {z: -0.3333333333333334?, y: 0.6666666666666667?, x: 0.6666666666666667?}]"
+      ]
+     },
+     "execution_count": 33,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "J.variety()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "id": "d950f08a",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[x + y + z - 1, y^2 + y*z - y + z^2 - z, y*z^2 + (-2/3)*y*z + 1/2*z^3 + (-5/6)*z^2 + 1/3*z, z^4 + (-4/3)*z^3 + 1/9*z^2 + 2/9*z]"
+      ]
+     },
+     "execution_count": 35,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "jgb=J.groebner_basis()\n",
+    "jgb"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "id": "f71c0645",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "z^4 + (-4/3)*z^3 + 1/9*z^2 + 2/9*z"
+      ]
+     },
+     "execution_count": 37,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "jgb[3]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "id": "4b26bc25",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "z * (z - 1) * (z - 2/3) * (z + 1/3)"
+      ]
+     },
+     "execution_count": 39,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "jgb[3].factor()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "id": "7945c62d",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Ideal ((-2)*x^2*y + 2*x^2*z + 2*x*y^2 + (-2)*x*z^2 + (-2)*y^2*z + 2*y*z^2, x + y + z - 1, x^2 + y^2 + z^2 - 1) of Multivariate Polynomial Ring in x, y, z over Algebraic Field"
+      ]
+     },
+     "execution_count": 40,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "J"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5edad37f",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "SageMath 10.1",
+   "language": "sage",
+   "name": "sagemath"
+  },
+  "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.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
-- 
GitLab