{ "cells": [ { "cell_type": "markdown", "id": "e38ede7c", "metadata": {}, "source": [ "# 1の7乗根\n", "\n", "1の原始7乗根 $\\zeta$ は、次の方程式を満たします。\n", "\n", "$$\n", "\\Phi_7(x)=x^6+x^5+x^4+x^3+x^2+x+1=0.\n", "$$\n", "\n", "六つの原始7乗根には、$(\\mathbb Z/7\\mathbb Z)^\\times$ が置換として作用します。\n", "まず複素共役による商を取り、三つの実周期を残します。次に、1の3乗根上の\n", "3点フーリエ変換を使います。\n" ] }, { "cell_type": "markdown", "id": "046475f3", "metadata": {}, "source": [ "## 三つの共役周期\n", "\n", "指数 $k$ と $7-k$ を組にすると、$a_{11},a_{12},a_{13}$ が得られます。\n", "自明でない1の7乗根をすべて足した値が $-1$ なので、これらの和も $-1$ です。\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "236e73a5", "metadata": {}, "outputs": [], "source": [ "def z : MathValue := rtu 7\n", "\n", "def a11 : MathValue := z ^ 1 + z ^ 6\n", "def a12 : MathValue := z ^ 2 + z ^ 5\n", "def a13 : MathValue := z ^ 3 + z ^ 4\n", "\n", "def b10 : MathValue := a11 + a12 + a13\n", "\n", "def cyclotomic7 : MathValue :=\n", " '((rtu 7)^6 + (rtu 7)^5 + (rtu 7)^4\n", " + (rtu 7)^3 + (rtu 7)^2 + rtu 7 + 1)\n", "\n", "def reduce7 (v : MathValue) : MathValue :=\n", " idealNFWith [w] [cyclotomic7] v\n", "\n", "def b10' : MathValue := reduce7 b10\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "fe6e5c71", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$-1$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "b10'\n" ] }, { "cell_type": "markdown", "id": "01802a37", "metadata": {}, "source": [ "## フーリエ・レゾルベント\n", "\n", "$\\omega=(-1+i\\sqrt3)/2$ とすると、位数3の巡回置換の二つの非自明な指標から、互いに\n", "共役な二組の三つ組が得られます。それぞれの三つ組の積を取れば、巡回置換による\n", "曖昧さが消えます。それらの積を $\\Phi_7(\\zeta)$ を法として簡約すると、$\\omega$\n", "だけの式が残るため、それぞれのフーリエ成分を一つの立方根から復元できます。\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "7711c357", "metadata": {}, "outputs": [], "source": [ "def b11 : MathValue := a11 + w * a12 + w ^ 2 * a13\n", "def b12 : MathValue := a13 + w * a11 + w ^ 2 * a12\n", "def b13 : MathValue := a12 + w * a13 + w ^ 2 * a11\n", "\n", "def b14 : MathValue := a11 + w * a13 + w ^ 2 * a12\n", "def b15 : MathValue := a12 + w * a11 + w ^ 2 * a13\n", "def b16 : MathValue := a13 + w * a12 + w ^ 2 * a11\n", "\n", "def b11Cube : MathValue := reduce7 (b11 * b12 * b13)\n", "def b14Cube : MathValue := reduce7 (b14 * b15 * b16)\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "82be293f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$(21 w + 14, -21 w - 7, 343)$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(b11Cube, b14Cube, b11Cube * b14Cube)\n" ] }, { "cell_type": "markdown", "id": "6a957768", "metadata": {}, "source": [ "## 変換を逆にたどる\n", "\n", "表示された二つの被開立方数は互いに共役で、その積は $7^3$ です。積が $7$ となり、\n", "再構成した実周期が正になるよう、互いに共役な立方根の分枝を選びます。それらを\n", "逆変換すると、$a_{11}=\\zeta+\\zeta^{-1}=2\\cos(2\\pi/7)$ が得られます。\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "bc4cb22a", "metadata": {}, "outputs": [], "source": [ "def b11' : MathValue := rt 3 b11Cube\n", "def b14' : MathValue := rt 3 b14Cube\n", "\n", "def a11' : MathValue := (b10' + b11' + b14') / 3\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "5f2b3629", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\frac{1}{6} \\sqrt[3]{3 w + 2} \\sqrt[3]{7} + \\frac{1}{6} \\sqrt[3]{-3 w - 1} \\sqrt[3]{7} + \\frac{-1}{6}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a11' / 2\n" ] }, { "cell_type": "markdown", "id": "31427058", "metadata": {}, "source": [ "## 1の7乗根そのものを復元する\n", "\n", "$a_{11}'=\\zeta+\\zeta^{-1}$ が分かれば、$\\zeta$ は次の二次方程式の解です。\n", "\n", "$$\n", "x^2-a_{11}'x+1=0.\n", "$$\n", "\n", "選択した冪根の分枝により、共役な対のどちらが先に現れるかが決まります。\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "a06ba7dc", "metadata": {}, "outputs": [], "source": [ "def quadraticRoots7\n", " (a : MathValue)\n", " (b : MathValue)\n", " (c : MathValue)\n", " : (MathValue, MathValue) :=\n", " ( ((- b) + sqrt (b ^ 2 - 4 * a * c)) / (2 * a)\n", " , ((- b) - sqrt (b ^ 2 - 4 * a * c)) / (2 * a) )\n", "\n", "def z1' : MathValue := fst (quadraticRoots7 1 (- a11') 1)\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "8f249803", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\frac{1}{6} \\sqrt[3]{3 w + 2} \\sqrt[3]{7} + \\frac{1}{6} \\sqrt[3]{-3 w - 1} \\sqrt[3]{7} + \\frac{1}{6} \\sqrt{\\sqrt[3]{3 w + 2}^{2} \\sqrt[3]{7}^{2} + \\sqrt[3]{-3 w - 1}^{2} \\sqrt[3]{7}^{2} + 2 \\sqrt[3]{-3 w - 1} \\sqrt[3]{3 w + 2} \\sqrt[3]{7}^{2} - 2 \\sqrt[3]{3 w + 2} \\sqrt[3]{7} - 2 \\sqrt[3]{-3 w - 1} \\sqrt[3]{7} - 35} + \\frac{-1}{6}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "z1'\n" ] }, { "cell_type": "markdown", "id": "359b8d41", "metadata": {}, "source": [ "最後の二次方程式に代入すると0になります。この検算は、入れ子になった平方根が\n", "どのような形に整形されているかに依存しません。\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "5e39bde5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$0$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "z1' ^ 2 - a11' * z1' + 1\n" ] }, { "cell_type": "markdown", "id": "3c97d95e", "metadata": {}, "source": [ "## まとめ\n", "\n", "6次の円分方程式を、一つの3点変換、立方根、そして最後の二次方程式へ分解しました。\n", "コードはガロア群の部分群構造に沿っているため、各冪根がどこから生じたのかを\n", "明示できます。\n" ] } ], "metadata": { "kernelspec": { "display_name": "Egison", "language": "egison", "name": "egison" }, "language_info": { "codemirror_mode": "egison", "file_extension": ".egi", "mimetype": "text/x-egison", "name": "egison" } }, "nbformat": 4, "nbformat_minor": 5 }