Skip to content
Snippets Groups Projects
Rosen12-3-checkpoint.ipynb 17.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jan Snellman's avatar
    Jan Snellman committed
    {
     "cells": [
      {
       "cell_type": "code",
       "execution_count": 1,
       "id": "a0564571-faf2-47f7-80b8-6b93da370de6",
       "metadata": {},
       "outputs": [],
       "source": [
        "# 12.3.1c"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 12,
       "id": "97f1a9eb-89f3-493e-a564-9ceed016b7ba",
       "metadata": {},
       "outputs": [],
       "source": [
        "N=6\n",
        "alpha = vector(QQbar,[0 for _ in range(N)])\n",
        "a = vector(QQbar,[0 for _ in range(N)])\n",
        "t = vector(QQbar,[0 for _ in range(N)])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": null,
       "id": "43236aea-32a2-4b2e-ad87-674ea0443341",
       "metadata": {},
       "outputs": [],
       "source": []
      },
      {
       "cell_type": "code",
       "execution_count": 13,
       "id": "4c58f2d2-829b-4e8e-8b41-e18241a04c39",
       "metadata": {},
       "outputs": [],
       "source": [
        "alpha[0] = sqrt(5)"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 20,
       "id": "d239123d-8f1d-4c2a-8723-e488035f4882",
       "metadata": {},
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "0 2.236067977499790? 2 0.2360679774997897?\n",
          "1 4.236067977499789? 4 0.2360679774997897?\n",
          "2 4.236067977499789? 4 0.2360679774997897?\n",
          "3 4.23606797749979? 4 0.23606797749979?\n",
          "4 4.2360679774998? 4 0.2360679774998?\n"
         ]
        }
       ],
       "source": [
        "for k in range(N-1):\n",
        "    a[k], t[k] = floor(alpha[k]), alpha[k] - floor(alpha[k])\n",
        "    alpha[k+1] = 1 / t[k]\n",
        "    print(k,alpha[k], a[k], t[k])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 24,
       "id": "91e64dfc-7d82-41da-97a3-907b70fb04cf",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[2; 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, ...]"
          ]
         },
         "execution_count": 24,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(alpha[0])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 25,
       "id": "4805e461-de3a-4ad1-b68b-0ac1254a9fa2",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[4; 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, ...]"
          ]
         },
         "execution_count": 25,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(alpha[1])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 26,
       "id": "74e5c6b5-4141-48a2-9ed0-5145ec962206",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[0; 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, ...]"
          ]
         },
         "execution_count": 26,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(t[1])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": null,
       "id": "ce40fb53-525d-4778-ab65-d3b9de12fd0a",
       "metadata": {},
       "outputs": [],
       "source": []
      },
      {
       "cell_type": "code",
       "execution_count": 28,
       "id": "5f179ca2-6fe2-4acf-8ee5-efc16c9f92d7",
       "metadata": {},
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "0 3.358898943540674? 3 0.3588989435406736?\n",
          "1 2.786299647846891? 2 0.7862996478468912?\n",
          "2 1.271779788708135? 1 0.2717797887081347?\n",
          "3 3.679449471770337? 3 0.679449471770337?\n",
          "4 1.471779788708135? 1 0.471779788708135?\n"
         ]
        }
       ],
       "source": [
        "alpha[0] = sqrt(19)-1\n",
        "for k in range(N-1):\n",
        "    a[k], t[k] = floor(alpha[k]), alpha[k] - floor(alpha[k])\n",
        "    alpha[k+1] = 1 / t[k]\n",
        "    print(k,alpha[k], a[k], t[k])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 29,
       "id": "befb67c1-8720-4d6f-88da-1920b91edfab",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[3; 2, 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, ...]"
          ]
         },
         "execution_count": 29,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(alpha[0])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 30,
       "id": "73ca37dd-732c-4614-87e5-f546b69ff166",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[0; 2, 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, ...]"
          ]
         },
         "execution_count": 30,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(t[0])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 31,
       "id": "3e32ecf1-bb17-4e8c-88cc-ab86cb26c262",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[2; 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, 1, ...]"
          ]
         },
         "execution_count": 31,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(1/t[0])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 34,
       "id": "ad4f7e53-2f82-4592-b1b1-ce52cc96373f",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[3; 2, 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, ...]"
          ]
         },
         "execution_count": 34,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(a[0] + t[0])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 35,
       "id": "2a3daa68-23ea-4292-b642-b9b293468494",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[3; 2, 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, 1, 3, 1, 2, 8, 2, ...]"
          ]
         },
         "execution_count": 35,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(a[0] + 1/(a[1] +t[1]))"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": null,
       "id": "e33f1445-ebf7-4ad9-8441-093613207188",
       "metadata": {},
       "outputs": [],
       "source": []
      },
      {
       "cell_type": "code",
       "execution_count": null,
       "id": "1c92946d-cb2e-458f-967e-c10cc12be1aa",
       "metadata": {},
       "outputs": [],
       "source": []
      },
      {
       "cell_type": "code",
       "execution_count": null,
       "id": "e5b2db5f-d125-43eb-837f-27896ceabd02",
       "metadata": {},
       "outputs": [],
       "source": []
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": 1,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "44991d26-ebed-44ad-9883-e49b90842e8e",
       "metadata": {},
       "outputs": [],
       "source": [
        "#12.3.2.a"
       ]
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": 2,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "a05c12c9-9df9-464d-b932-62a81a1d4429",
       "metadata": {},
       "outputs": [],
       "source": [
        "R.<x> = QQbar[]\n",
        "f0 = x^3-2\n",
        "d=3"
       ]
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": null,
       "id": "7ffc1d57-0784-4119-825f-32f5459cc945",
       "metadata": {},
       "outputs": [],
       "source": []
      },
      {
       "cell_type": "code",
       "execution_count": 5,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "1f050106-4454-441f-ab17-869bb1e7deb9",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[(1.259921049894873?, 1),\n",
           " (-0.6299605249474365? - 1.091123635971722?*I, 1),\n",
           " (-0.6299605249474365? + 1.091123635971722?*I, 1)]"
          ]
         },
    
    Jan Snellman's avatar
    Jan Snellman committed
         "execution_count": 5,
    
    Jan Snellman's avatar
    Jan Snellman committed
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "f0.roots()"
       ]
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": 7,
       "id": "3327b8b5-8e8e-4f34-97d0-8b24e06410e2",
       "metadata": {
        "scrolled": true
       },
       "outputs": [
        {
         "data": {
          "text/plain": [
           "1.259921049894873?"
          ]
         },
         "execution_count": 7,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "alfa0=f0.roots()[0][0]\n",
        "alfa0"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 8,
       "id": "4ddb6330-657c-4387-b902-6e055b0097b0",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[1; 3, 1, 5, 1, 1, 4, 1, 1, 8, 1, 14, 1, 10, 2, 1, 4, 12, 2, 3, ...]"
          ]
         },
         "execution_count": 8,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(alfa0)"
       ]
      },
      {
       "cell_type": "raw",
       "id": "d800b558-13db-47be-be2c-a1a878594129",
       "metadata": {},
       "source": []
      },
      {
       "cell_type": "code",
       "execution_count": 9,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "78e5e15c-0cc0-4dff-a8a2-5693f4b4a339",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "x^3 - 3*x^2 - 3*x - 1"
          ]
         },
    
    Jan Snellman's avatar
    Jan Snellman committed
         "execution_count": 9,
    
    Jan Snellman's avatar
    Jan Snellman committed
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "a0 = 1\n",
        "f1 = (-x)^d*f0(a0 + 1/x)\n",
        "f1 =R(f1)\n",
        "f1"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 47,
       "id": "5d9d0f98-5ecc-4e6a-b074-813c329fdbf1",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[(3.847322101863073?, 1),\n",
           " (-0.4236610509315363? - 0.2836060010268813?*I, 1),\n",
           " (-0.4236610509315363? + 0.2836060010268813?*I, 1)]"
          ]
         },
         "execution_count": 47,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "f1.roots()"
       ]
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": 10,
       "id": "c54abfa7-4930-4a3f-9c2c-3bf05d5b32a0",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[3; 1, 5, 1, 1, 4, 1, 1, 8, 1, 14, 1, 10, 2, 1, 4, 12, 2, 3, 2, ...]"
          ]
         },
         "execution_count": 10,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "alfa1=f1.roots()[0][0]\n",
        "continued_fraction(alfa1)"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 12,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "5801d40e-a2a8-46e9-bdd9-39b33d52f83f",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "10*x^3 - 6*x^2 - 6*x - 1"
          ]
         },
    
    Jan Snellman's avatar
    Jan Snellman committed
         "execution_count": 12,
    
    Jan Snellman's avatar
    Jan Snellman committed
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "a1 = 3\n",
        "f2 = (-x)^d*f1(a1 + 1/x)\n",
        "f2 =R(f2)\n",
        "f2"
       ]
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": 13,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "c4c0bc9d-9bbf-4d8d-b063-d1dc78245ff6",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[(1.180188735548410?, 1),\n",
           " (-0.2900943677742046? - 0.02403056328910778?*I, 1),\n",
           " (-0.2900943677742046? + 0.02403056328910778?*I, 1)]"
          ]
         },
    
    Jan Snellman's avatar
    Jan Snellman committed
         "execution_count": 13,
    
    Jan Snellman's avatar
    Jan Snellman committed
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "f2.roots()"
       ]
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": 14,
       "id": "c049c466-ebf9-4853-9ebf-2be2a169b069",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[1; 5, 1, 1, 4, 1, 1, 8, 1, 14, 1, 10, 2, 1, 4, 12, 2, 3, 2, 1, ...]"
          ]
         },
         "execution_count": 14,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "alfa2=f2.roots()[0][0]\n",
        "continued_fraction(alfa2)"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 16,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "9953eae5-e5d1-48f6-bda3-e464b1a6c6c1",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "3*x^3 - 12*x^2 - 24*x - 10"
          ]
         },
    
    Jan Snellman's avatar
    Jan Snellman committed
         "execution_count": 16,
    
    Jan Snellman's avatar
    Jan Snellman committed
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "a2 = 1\n",
        "f3 = (-x)^d*f2(a2 + 1/x)\n",
        "f3 =R(f3)\n",
        "f3"
       ]
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": 17,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "0a66ff0f-dc17-42ae-b8ee-6535c8541aac",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[(5.549736485782388?, 1),\n",
           " (-0.7748682428911940? - 0.01443345604526783?*I, 1),\n",
           " (-0.7748682428911940? + 0.01443345604526783?*I, 1)]"
          ]
         },
    
    Jan Snellman's avatar
    Jan Snellman committed
         "execution_count": 17,
    
    Jan Snellman's avatar
    Jan Snellman committed
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "f3.roots()"
       ]
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": 18,
       "id": "b4fc68d2-c006-43ce-945d-f809360adb11",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[5; 1, 1, 4, 1, 1, 8, 1, 14, 1, 10, 2, 1, 4, 12, 2, 3, 2, 1, 3, ...]"
          ]
         },
         "execution_count": 18,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "alfa3=f3.roots()[0][0]\n",
        "continued_fraction(alfa3)"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 20,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "0c50aa3c-5f4c-4d34-bc2f-a5de911952b9",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "55*x^3 - 81*x^2 - 33*x - 3"
          ]
         },
    
    Jan Snellman's avatar
    Jan Snellman committed
         "execution_count": 20,
    
    Jan Snellman's avatar
    Jan Snellman committed
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "a3 = 5\n",
        "f4 = (-x)^d*f3(a3 + 1/x)\n",
        "f4 =R(f4)\n",
        "f4"
       ]
      },
      {
       "cell_type": "code",
    
    Jan Snellman's avatar
    Jan Snellman committed
       "execution_count": 21,
    
    Jan Snellman's avatar
    Jan Snellman committed
       "id": "d99ecd1d-0a85-4ebb-a69b-546456037c87",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[(1.819053357131272?, 1),\n",
           " (-0.1731630422019992? - 0.00043279622203746?*I, 1),\n",
           " (-0.1731630422019992? + 0.00043279622203746?*I, 1)]"
          ]
         },
    
    Jan Snellman's avatar
    Jan Snellman committed
         "execution_count": 21,
    
    Jan Snellman's avatar
    Jan Snellman committed
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "f4.roots()"
       ]
      },
    
    Jan Snellman's avatar
    Jan Snellman committed
      {
       "cell_type": "code",
       "execution_count": 22,
       "id": "c72bd901-5e62-4abf-ab21-758fc8a6d91d",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[1; 1, 4, 1, 1, 8, 1, 14, 1, 10, 2, 1, 4, 12, 2, 3, 2, 1, 3, 4, ...]"
          ]
         },
         "execution_count": 22,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "alfa4=f4.roots()[0][0]\n",
        "continued_fraction(alfa4)"
       ]
      },
    
    Jan Snellman's avatar
    Jan Snellman committed
      {
       "cell_type": "code",
       "execution_count": 54,
       "id": "468aa920-5d96-4aba-af0d-906c8823f6c4",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[1; 3, 1, 5, 1, 1, 4, 1, 1, 8, 1, 14, 1, 10, 2, 1, 4, 12, 2, 3, ...]"
          ]
         },
         "execution_count": 54,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "continued_fraction(2^(1/3))"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": null,
       "id": "73ee5ba0-8a57-4afc-a637-3ef24d89ad58",
       "metadata": {},
       "outputs": [],
       "source": []
      },
      {
       "cell_type": "code",
       "execution_count": null,
       "id": "c9930f4b-758a-4edd-b462-827914d8f867",
       "metadata": {},
       "outputs": [],
       "source": []
      },
      {
       "cell_type": "code",
       "execution_count": 55,
       "id": "d742e1d1-7935-46ee-bd91-3037e9791149",
       "metadata": {},
       "outputs": [],
       "source": [
        "#12.3.4"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 67,
       "id": "cd9a0eb9-823a-46cf-a3ce-ce344d55ceb4",
       "metadata": {},
       "outputs": [],
       "source": [
        "a=vector([2,1,2,1,1,4])\n",
        "N=len(a)\n",
        "v=[]\n",
        "v.append(vector([1,0]))\n",
        "v.append(vector([0,1]))"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 68,
       "id": "22b9d3bd-d905-4ecc-a841-0469335e7707",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[(1, 0), (0, 1)]"
          ]
         },
         "execution_count": 68,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "v"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 72,
       "id": "a89b77b0-93bf-4c2a-82db-f1f1a7d99938",
       "metadata": {},
       "outputs": [],
       "source": [
        "for k in range(N):\n",
        "    v.append(a[k]*v[-1] + v[-2])"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 73,
       "id": "5f5c0c05-47f0-4538-8046-1a75fe629b55",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[(1, 0), (0, 1), (1, 2), (1, 3), (3, 8), (4, 11), (7, 19), (32, 87)]"
          ]
         },
         "execution_count": 73,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "v"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 77,
       "id": "b8feab8b-f3ed-477c-8ee2-9f88a8728ea2",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "[2, 3, 8/3, 11/4, 19/7, 87/32]"
          ]
         },
         "execution_count": 77,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "conve =[c[1]/c[0] for c in v[2:]]\n",
        "conve"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 79,
       "id": "a560f987-04f8-40a1-8b1e-366949e8464e",
       "metadata": {},
       "outputs": [
        {
         "data": {
          "text/plain": [
           "1/224"
          ]
         },
         "execution_count": 79,
         "metadata": {},
         "output_type": "execute_result"
        }
       ],
       "source": [
        "conve[5] - conve[4]"
       ]
      },
      {
       "cell_type": "code",
       "execution_count": null,
       "id": "dcbebe47-9e94-4540-8f4d-99f1217ca1b0",
       "metadata": {},
       "outputs": [],
       "source": []
      }
     ],
     "metadata": {
      "kernelspec": {
       "display_name": "SageMath 10.2.beta9",
       "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.1"
      }
     },
     "nbformat": 4,
     "nbformat_minor": 5
    }