{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Playing with imaginary quadratic irrationals\n", "Yasuaki Honda at gmail dot com\n", "\n", "- Two imaginary quadratic irrationals \\\\(\\alpha\\\\) and \\\\(\\beta\\\\) are equivalent iff there is a modular transformation f(z) in \\\\(SL_2(Z)\\\\).\n", "- Two imaginary quadratic irrationals are equivalent, their determinant are equal.\n", "- However, even if the determinant of two imaginary quadratic irrationals are equal, they may not be equivalent.\n", "- For a given negative determinant, there are finitely many imaginary quadratic irrationals whose determinant are equal to the given one. The number of such imaginary quadratic irrationals is called class number." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "install_github(\"YasuakiHonda\",\"modular_j\",\"main\")$" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "asdf_load(\"modular_j\")$" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{15}$}\\frac{\\sqrt{35}\\,i+1}{6}\\]" ], "text/plain": [ " sqrt(35) %i + 1\n", "(%o15) ---------------\n", " 6" ], "text/x-maxima": [ "(sqrt(35)*%i+1)/6" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a:(1+sqrt(-35))/6;" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{16}$}\\frac{\\sqrt{35}\\,i-1}{6}\\]" ], "text/plain": [ " sqrt(35) %i - 1\n", "(%o16) ---------------\n", " 6" ], "text/x-maxima": [ "(sqrt(35)*%i-1)/6" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "FindInFD(a);" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{17}$}f\\left(x\\right):=\\frac{3\\,x+5}{1\\,x+2}\\]" ], "text/plain": [ " 3 x + 5\n", "(%o17) f(x) := -------\n", " 1 x + 2" ], "text/x-maxima": [ "f(x):=(3*x+5)/(1*x+2)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(x):=(3*x+5)/(1*x+2);" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{18}$}\\frac{\\sqrt{35}\\,i+89}{34}\\]" ], "text/plain": [ " sqrt(35) %i + 89\n", "(%o18) ----------------\n", " 34" ], "text/x-maxima": [ "(sqrt(35)*%i+89)/34" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(a),ratsimp,algebraic:true;" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{19}$}\\mathbf{false}\\]" ], "text/plain": [ "(%o19) false" ], "text/x-maxima": [ "false" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "InFD(%);" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Ta: \\(3\\)" ], "text/plain": [ "inline-value" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "S" ], "text/plain": [ "inline-value" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "Ta: \\(2\\)" ], "text/plain": [ "inline-value" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{20}$}\\frac{\\sqrt{35}\\,i-1}{6}\\]" ], "text/plain": [ " sqrt(35) %i - 1\n", "(%o20) ---------------\n", " 6" ], "text/x-maxima": [ "(sqrt(35)*%i-1)/6" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "FindInFD(f(a));" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{21}$}-35\\]" ], "text/plain": [ "(%o21) - 35" ], "text/x-maxima": [ "-35" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "FindDetIrr(a);" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{22}$}\\left[ \\frac{\\sqrt{35}\\,i-1}{6} , \\frac{\\sqrt{35}\\,i-1}{2} \\right] \\]" ], "text/plain": [ " sqrt(35) %i - 1 sqrt(35) %i - 1\n", "(%o22) [---------------, ---------------]\n", " 6 2" ], "text/x-maxima": [ "[(sqrt(35)*%i-1)/6,(sqrt(35)*%i-1)/2]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "FindReducedQuadIrrD(-35);" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{23}$}\\left[ \\mathbf{true} , \\mathbf{true} \\right] \\]" ], "text/plain": [ "(%o23) [true, true]" ], "text/x-maxima": [ "[true,true]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "map(InFD,%);" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{3}$}2\\]" ], "text/plain": [ "(%o3) 2" ], "text/x-maxima": [ "2" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "FindClassNumberD(-35);" ] }, { "cell_type": "code", "execution_count": null, "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.44.0" } }, "nbformat": 4, "nbformat_minor": 4 }