{ "cells": [ { "cell_type": "markdown", "id": "673d534f-4cde-40bf-82c6-24b0e78fa1c8", "metadata": {}, "source": [ "maximaを起動したらまず以下のコマンドでGF.macを読み込みます。" ] }, { "cell_type": "code", "execution_count": 1, "id": "6eda2588-8023-41ea-97e5-ccd8e30734ba", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{0}$}\\mbox{ /opt/homebrew/Cellar/maxima/5.46.0\\_10/share/maxima/5.46.0/share/contrib/gf/GF.mac }\\]" ], "text/plain": [ "(%o0) /opt/homebrew/Cellar/maxima/5.46.0_10/share/maxima/5.46.0/share/contrib/\\\n", "gf/GF.mac" ], "text/x-maxima": [ "\"/opt/homebrew/Cellar/maxima/5.46.0_10/share/maxima/5.46.0/share/contrib/gf/GF.mac\"" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "load(GF);" ] }, { "cell_type": "markdown", "id": "f6d0ce8a-a77d-4397-88fe-b514991b5eb1", "metadata": {}, "source": [ "まず$F_5$には$\\sqrt{2}$は存在しないことを確認しておきます。" ] }, { "cell_type": "code", "execution_count": 2, "id": "baeaec8c-a0d9-4721-96cc-ec0c4dd8d310", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{1}$}-1\\]" ], "text/plain": [ "(%o1) - 1" ], "text/x-maxima": [ "-1" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "jacobi(2,5);" ] }, { "cell_type": "markdown", "id": "e1904f0f-d525-4fdb-94f8-313997145bcd", "metadata": {}, "source": [ "$F_5(\\sqrt{2})$を構成します。gf_xxxコマンドはこの体の上で動作します。" ] }, { "cell_type": "code", "execution_count": 3, "id": "00ee38d7-92c4-4650-b9b3-cb25cea1ab87", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{2}$}\\mbox{ Structure [GF-DATA] }\\]" ], "text/plain": [ "(%o2) Structure [GF-DATA]" ], "text/x-maxima": [ "Structure\\ \\[GF\\-DATA\\]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gf_set_data(5,x^2-2);" ] }, { "cell_type": "markdown", "id": "372132d3-48cd-4c56-b0cc-8368491fb901", "metadata": {}, "source": [ "これで$F_5(\\sqrt{2})$が構成できました。以下で登場する$x$は$\\sqrt{2}$を指すと考えてください。例えば$x$に$x$をかけると$2$になるはずです。乗算にはgf_multを使います。" ] }, { "cell_type": "code", "execution_count": 4, "id": "a4940084-c7a7-4bde-801e-6b1709f865be", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{3}$}2\\]" ], "text/plain": [ "(%o3) 2" ], "text/x-maxima": [ "2" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gf_mult(x,x);" ] }, { "cell_type": "markdown", "id": "f2b52bbd-783c-4c3b-9c5a-7031b7da6090", "metadata": {}, "source": [ "$F_5(\\sqrt{2})^{\\times}$は巡回群になるのですが、gf_primitiveを使ってその生成元を求めることもできます。" ] }, { "cell_type": "code", "execution_count": 5, "id": "1aeac752-0d91-4893-8ccc-3f6a53047656", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{4}$}x+2\\]" ], "text/plain": [ "(%o4) x + 2" ], "text/x-maxima": [ "x+2" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a:gf_primitive();" ] }, { "cell_type": "markdown", "id": "41041b89-9a0d-40df-a077-a485c4f06d48", "metadata": {}, "source": [ "これは$\\sqrt{2}+2$が生成元だということです。実際に$x+2$の冪乗をいくつか求めてみます。" ] }, { "cell_type": "code", "execution_count": 6, "id": "45c2282b-2c25-4d31-b208-1996539054b4", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{5}$}\\left[ 1 , x+2 , 4\\,x+1 , 4\\,x , 3\\,x+3 , 4\\,x+2 , 3\\,x+1 , 2\\,x+3 , 2\\,x , 4\\,x+4 , 2\\,x+1 , 1 \\right] \\]" ], "text/plain": [ "(%o5) [1, x + 2, 4 x + 1, 4 x, 3 x + 3, 4 x + 2, 3 x + 1, 2 x + 3, 2 x, \n", " 4 x + 4, 2 x + 1, 1]" ], "text/x-maxima": [ "[1,x+2,4*x+1,4*x,3*x+3,4*x+2,3*x+1,2*x+3,2*x,4*x+4,2*x+1,1]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "map(lambda([i],gf_exp(x+2,i)),[0,1,2,3,4,5,19,20,21,22,23,24]);" ] }, { "cell_type": "markdown", "id": "0f329036-d8c9-490b-b41c-7c8c22906af1", "metadata": {}, "source": [ "**命題3.34**の公式 $(a+b)^p=a^p+b^p$を実際の値を入れて試してみます。$F_5(\\sqrt{2})$で$(a+b)^5=a^5+b^5$を試してみましょう。適当に$a=\\sqrt{2}+3,\\, b=3\\sqrt{2}+1$とおいてみます。" ] }, { "cell_type": "code", "execution_count": 7, "id": "7b698aa5-da7e-44ba-a2ac-ec8c20307eb4", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{6}$}x+3\\]" ], "text/plain": [ "(%o6) x + 3" ], "text/x-maxima": [ "x+3" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{7}$}3\\,x+1\\]" ], "text/plain": [ "(%o7) 3 x + 1" ], "text/x-maxima": [ "3*x+1" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a:x+3;b:3*x+1;" ] }, { "cell_type": "markdown", "id": "b3c6d375-6e84-4c93-9a86-587bab6d222e", "metadata": {}, "source": [ "まず$(a+b)^5$を計算します。gf_addで加算、gf_expで冪乗を計算します。" ] }, { "cell_type": "code", "execution_count": 8, "id": "f0fc580d-34a7-42bc-bc03-e5caf14ad935", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{8}$}x+4\\]" ], "text/plain": [ "(%o8) x + 4" ], "text/x-maxima": [ "x+4" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gf_exp(gf_add(a,b),5);" ] }, { "cell_type": "markdown", "id": "358a13f1-bbce-477c-bb17-62082a006fba", "metadata": {}, "source": [ "結果は$\\sqrt{2}+4$です。\n", "今度は$a^5+b^5$を計算してみます。先にgf_expで冪乗を求めてからgf_addで加算します。" ] }, { "cell_type": "code", "execution_count": 9, "id": "8601a4ea-455c-493e-821c-04f4a19c6dd9", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{9}$}x+4\\]" ], "text/plain": [ "(%o9) x + 4" ], "text/x-maxima": [ "x+4" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gf_add(gf_exp(a,5),gf_exp(b,5));" ] }, { "cell_type": "markdown", "id": "dcab666c-88e5-4f5f-bcb6-26bc61ee57cb", "metadata": {}, "source": [ "結果は$\\sqrt{2}+4$で同じ値になりました。" ] }, { "cell_type": "markdown", "id": "125a5996-831f-47a4-8ed5-ffe43282b9a6", "metadata": { "tags": [] }, "source": [ "次は**命題3.48**が$F_p$で成り立つこと、つまり$a\\in F_p \\iff a^p=a$を値を入れて試してみます。まず任意の$F_5$の元$c$について$c^5=c$が成り立つことを確認します。" ] }, { "cell_type": "code", "execution_count": 10, "id": "4eed2712-a1b2-4ebb-974c-5ed32e833dcd", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{10}$}\\left[ \\left[ 1 , 1 \\right] , \\left[ 2 , 2 \\right] , \\left[ 3 , 3 \\right] , \\left[ 4 , 4 \\right] \\right] \\]" ], "text/plain": [ "(%o10) [[1, 1], [2, 2], [3, 3], [4, 4]]" ], "text/x-maxima": [ "[[1,1],[2,2],[3,3],[4,4]]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "map(lambda([c],[c,gf_exp(c,5)]),[1,2,3,4]);" ] }, { "cell_type": "markdown", "id": "e34523f2-58c1-4c88-a4c7-3eff13ed2d92", "metadata": {}, "source": [ "$F_5$の元ではない場合についても確認します。先ほど定義した$a,b$はいずれも$F_5$の元ではありませんから、$a^5\\neq a,\\, b^5\\neq b$のはずです。やってみましょう。" ] }, { "cell_type": "code", "execution_count": 11, "id": "57f4dc3f-210b-4798-a37e-45431d27036d", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{11}$}\\left[ x+3 , 4\\,x+3 \\right] \\]" ], "text/plain": [ "(%o11) [x + 3, 4 x + 3]" ], "text/x-maxima": [ "[x+3,4*x+3]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{12}$}\\left[ 3\\,x+1 , 2\\,x+1 \\right] \\]" ], "text/plain": [ "(%o12) [3 x + 1, 2 x + 1]" ], "text/x-maxima": [ "[3*x+1,2*x+1]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[a,gf_exp(a,5)];\n", "[b,gf_exp(b,5)];" ] }, { "cell_type": "markdown", "id": "cb53cd5e-1813-47a0-a21e-a112a4b74a22", "metadata": { "tags": [] }, "source": [ "**命題3.48**が$F_{p^f}$で成り立つこと、つまり$a\\in F_{p^f} \\iff a^{p^f}=a$を値を入れて試してみます。$F_{5^2}=F_{25}$なので$F_5(\\sqrt{2})$の任意の要素$x$で$x^{25}=x$が成り立ちます。先ほど定義した$a,b$でも成り立つことを見ましょう。" ] }, { "cell_type": "code", "execution_count": 12, "id": "83e8159a-0bfd-4fde-a35f-e0d2b4150149", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{13}$}\\left[ x+3 , x+3 \\right] \\]" ], "text/plain": [ "(%o13) [x + 3, x + 3]" ], "text/x-maxima": [ "[x+3,x+3]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[a,gf_exp(a,25)];" ] }, { "cell_type": "code", "execution_count": 13, "id": "28d57048-6338-4cd0-82ee-09e2a503f8dd", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{14}$}\\left[ 3\\,x+1 , 3\\,x+1 \\right] \\]" ], "text/plain": [ "(%o14) [3 x + 1, 3 x + 1]" ], "text/x-maxima": [ "[3*x+1,3*x+1]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[b,gf_exp(b,25)];" ] }, { "cell_type": "code", "execution_count": null, "id": "062cf663-312c-4ad9-9f89-e002d8734ec6", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Maxima", "language": "maxima", "name": "maxima" }, "language_info": { "codemirror_mode": "maxima", "file_extension": ".mac", "mimetype": "text/x-maxima", "name": "maxima", "pygments_lexer": "maxima", "version": "5.46.0" } }, "nbformat": 4, "nbformat_minor": 5 }