スキップしてメイン コンテンツに移動

Aurifeuille 恒等式の計算方法 (Stevenhagen)

この Aurifeuille シリーズは2年ほどブランクがあって3回目。 前2回は Aurifeuillian 因数分解Aurifeuille 恒等式 について書いた。 今回は計算方法の一つを紹介する。

簡単にするためにあまり複雑な一般化は省いて、 平方因子を持たない \(2\) 以上の整数 \(k\) に対し、\(n\) を \(k \equiv 1 \pmod{4}\) ならば \(k\)、そうでなければ \(2k\) とする。 このときある整数係数多項式 \(F\) と \(G\) により円分多項式 \(\Phi_n(X)\) を \(F(X)^2 - kX G(X)^2\) という形(Aurifeuille 恒等式)に書ける。 この \(F\) と \(G\) を求める方法を見ていきたい。

\(k=5\) の時のように整数 \(\Phi_n(k)\) の因数分解をして \(k\) 進数展開から求めるのは、いろいろ問題がある。 整数の因数分解自体が難しいし、\(k\) 以上の係数や負の係数が必要になると破綻してしまう。 一般的に使える方法は、もっと代数的な議論だ。

前に見たように \(k\zeta_n\) が \(\mathbb{Q}[\zeta_n]\) で平方数になっているというのがキーだった。 ここで紹介する Stevenhagen の方法は、\(\sqrt{k\zeta_n}\) が \(\mathbb{Q}[\zeta_n]\) に入っているならば、\(\zeta_n\) の多項式で表せるという事実に基づいている。

具体的な \(\sqrt{k\zeta_n}\) を表す \(\zeta_n\) の多項式が \[H(X) = \sum_{1 \leq a \leq 2n \land (a, 2n) =1 \land (\frac{k}{a})=1} X^{(a+1)/2}\] と与えられる。実際 \(X\) に \(\zeta_n\) を代入すると、 \(1/2\) 乗は \(\zeta_n\) を \(\zeta_{2n}\) にし、 \(+1\) の分の \(\zeta_{2n}\) で括った残りは \(\mathbb{Q}(\zeta_2n)\) から \(\mathbb{Q}(\sqrt{k})\) へのトレースになりそれは値として \(\sqrt{k}\) だから結局 \(\zeta_{2n}\sqrt{k} = \sqrt{k\zeta_n}\) となる。 この \(H\) と \(\Phi_n\) にユークリッドの互除法を適用する。 余りの次数が段階的に下がっていくが、最初に \(\phi(n)/2\) 以下になった多項式を \(f\) とし、次の段階の多項式を \(f^*\) とする。 このとき、\(f^*\) の定数項を \(f\) の適当な有理数 \(\alpha\) 倍で消したもの \(f^*-\alpha f\) を \(Xg\) とおくと、 \(f\) を先頭項係数 \(c\) で割ったものが \(F\)、逆にその \(c\) を \(g\) に掛けたものの符号を調整すると \(k G\) となる。 という形で \(F\) と \(G\) が求められる。

最後の部分が不思議な感じなのでもう少し補足しておく。 補助的な多項式 \(\gamma_i\) を \(\gamma_0 = 1\), \(\gamma_1 = 0\) から始めて、 \[ \Phi_n = \begin{vmatrix} 1 & H \\ 0 & \Phi_n \end{vmatrix} = \pm\begin{vmatrix} \gamma_i & f_i\\ \gamma_{i+1} & f_{i+1}\end{vmatrix}\] とユークリッドの互除法を行変形と見ていくと、行列式は符号を除いて一定である。 定数項を消す処理も行変形なので \[ \Phi_n = \pm\begin{vmatrix} \gamma & f\\ \gamma^* & f^*\end{vmatrix} = \pm\begin{vmatrix} \gamma & f \\ \gamma' & Xg \end{vmatrix}\] が得られる。 一方 Aurifeuille 恒等式は \[ \Phi_n = \begin{vmatrix} cG & cF \\ c^{-1}F & c^{-1} X k G\end{vmatrix}\] と表現できる。 最後の二つの式の右辺の要素同士が(符号を除いて)等しいことが言える(詳しくは参考文献を)ので上のようなアルゴリズムとなる。

例として \(k=7\) としてみよう。\(n=14\) だ。 \(1\) 以上 \(28\) 以下かつ \(28\) と互いに素かつヤコビ記号 \(\left(\frac{7}{a}\right)\) が \(1\) という条件を満たすのは \(a \in \{1,3,9,19,25,27\}\) なので、 \[H_{14}(X) = X + X^2 + X^5 + X^{10} + X^{13} + X^{14}\] だ。 この \(f_0=H_{14}\) と円分多項式 \(f_1=\Phi_{14}\) にユークリッドの互除法を適用する。 \[f_2(X) = f_0(X) \bmod f_1(X) = X^4 - 2 X^3 + 2 X^2 + 2\] \[f_3(X) = f_1(X) \bmod f_2(X) = -X^3 - 3 X^2 - 3 X - 1\] \[f_4(X) = f_2(X) \bmod f_3(X) = 14 X^2 + 14 X + 7\] ここで \(f_3\) の次数が \(\phi(14)/2=3\) 以下なので、\(f = f_3\) 、\(f^* = f_4\) とする。 \(f^*\) の定数項 \(7\) を \(f\) で消すために \(\alpha=-7\) とする。 \[f^*(X) - \alpha f(X) = -7 X^3 -7 X^2 -7 X\] これを \(X\) で割って \[g(X) = -7 X^2 -7 X -7\] を得る。 \(f\) の先頭係数は \(-1\) なので、 \[F(X) = -f(X) = X^3 + 3 X^2 + 3 X + 1\] \[G(X) = -g(X) / 7 = X^2 + X + 1\] よって \[\Phi_{14}(X) = (X^3 + 3 X^2 + 3 X + 1)^2 - 7X (X^2 + X + 1)^2\] を得る。

参考文献

P. Stevenhagen "On Aurifeullian factorizations Indagationes Mathematicae (Proceedings), Volume 90, Issue 4, 1987, Pages 451-468

このブログの人気の投稿

「函数」音訳説について探してみる

Twitter に書こうかと思ったが、ちょっと長くなるのでこっちに書くことにする。 「函数」が音訳というデマと、本当の語源 というブログ記事について ツイートされてるの を見た。 詳しい内容はリンクを辿って読んでみて欲しい。 その記事中の「函数」音訳説という部分で、引用されているものが意外と新しい1980年代以降のものなので、さすがにもっと古いだろう、と探してみた。 1. 武部良明「漢字の用法」(1976) このほか武部良明『漢字の用法』(角川書店1976)にも同様の記述があるという(未確認)。 とあって、たまたま同書(三版)を持っているので調べてみた。 「関数」ではなく「関・函」の項にあった。 「函」は「いれる」意味。 したがって、「函数」という漢字の組み合わせからは、「対応して定まる数」という意味は出てこない。 「函数」については function という原語の音 fun を、「函」の音カン(現代中国語 han)で写したものとされている。 これに対し現代表記の「関数」は、全体の意味を「かかりあう数」と考え、「函」の部分を、同音で「かかりあう」意味の「関」に書き換えたものである。 2. 遠山啓「関数を考える」(1972) 近所の図書館で見つけた。 会話体の文章の中で、先生役が言っている。 はっきりはわからないが, 中国語の発音では function と似ていて, しかも意味も近いらしいのだ. 3. 遠山啓「数学は変貌する」(1971) 2012年にちくま学芸文庫から出た「現代数学入門」所収。 「関数を考える」が中学生ぐらいを対象にしたシリーズの一冊なので、そこでいきなり初披露ということは無いだろうと見当をつけて遡って探した。 機能とは簡単にいうと働きです。 ライプニッツが初めてファンクションという言葉を使った. ライプニッツはドイツ人ですが, ドイツ語は当時はいなかの言葉みたいで, フランスが文化の中心であったから, フランス語で書いてありますので, フォンクション (fonction) です. もとは日本では「函数」, あとになって「関数」と改めたのです. なぜこんな函の数という妙な言葉を使ったか, これは中国からきた字です. 中国人は各国語を音まで似せて訳すことがうまい. フォンクションは中国語で函数を中国読みしますと非常に似ているのだそ...

「函数」音訳説について探してみる (まとめ)

これは 「函数」音訳説について探してみる 「函数」音訳説について探してみる (辞書編) の続きになるので、まずはそちらを読んでもらえると解りやすいと思う。 ざっくり言うと、函数は function の中国における音訳、という俗説( 「函数」が音訳というデマと、本当の語源 参照)の起源を求めて、できるだけ古い言及を探そうというクエストの記録。 先に結論から言うと、遠山啓「キュート数学I」(1967)ついで「角川新字源」(1968)という1960年代末発行の二つが見つかった。 遠山啓 既に「関数を考える」(1972)と「数学は変貌する」(1971)は見つけていたが、さらに古いものが見つかった。 「キュート数学I」(1967)だ。 元は三省堂から出版されたもののよう(実物は見ていない)だが、二度形態を変えて再度刊行されている。 一つめが太郎次郎社の遠山啓著作集シリーズの「数学教育論11 数楽への招待I」(1981)、 もう一つがソフトバンククリエイティブの「基礎からわかる数学入門」(2013)だ。 先生●それには歴史的な事情があるのだ. ヨーロッパの数学が中国に伝えられたとき, function は「函数」と訳された. 中国語ではやはり function の意味をもっているが, 同時に音も似ているらしい. それがそのまま日本に伝えられ, 「函数」となり, 「函」が当用漢字にないので, それがさらに「関数」になったわけだ. 引用は「基礎からわかる数学入門」によるが、「数楽への招待I」でも約物の違いぐらいで内容は変わらない。 角川新字源 既に辞書編で書いたように、新字源は1968年の初版から音訳説を採っていると思われる。 若干の歯切れの悪さは、Google Books にある1978年発行のもののスキャンより古い時代のものを当たった訳ではないので、 細かい修正の一部として書き直された可能性が捨てきれないことによる。 (スキャンでない現物は近所の古本屋で1989年発行のものだけは見ることができ、1978年のものと同じ文言だった。) その他 「広辞苑」は辞書編で第五版(1999)まで遡ったが、その後第四版(1991)も「函数」の項で音訳説を紹介しつつ「関数」に飛ばす、という同じ内容であることを確認した。 期待して第三版(1983)を調べたら、こちらは音訳説無し...

「函数」音訳説について探してみる (辞書編)

前回 は数学の本の中で音訳説に言及しているものを探したが、今回は辞書。 Google Books で検索したら角川新字源が引っかかったので辞書も見た方が良いのかな、というぐらいのことだったのだが、古い辞書を見るのは意外に難しい。 角川書店 武部良昭 「漢字の用法」(1976)が前回見つけた辞典類における一番古い言及だった。 で、新字源。 実物は今のところ手に取れていないが、 Google Books を信じれば、初版(1973)に 函数の函は function の fun の発音を表わす。今は関数と書く。 との記述があるらしい。 (疑っているのは版の扱いで、本当に初版のスキャンなのか、初版が1973年であるところの「新字源」の後の版のスキャンなのかという部分。) 追記1(2018-09-23): 改訂版(1994)を見ることができた。上の引用と同じ文言だった。 そして、初版は1968年。 「1973年」の出所が知りたくて、Google Books で奥付を探してみた(判明した初版出版年の「昭和四十三年」で書籍内検索した)のだが、 出てきたのは 昭和五十三年一月二十日一二五版発行 と1978年を示唆する結果だった。 版と数えてはいるが要は刷のことだろう。 ということで若干引っかかりは感じるが、つまり、改訂版以前の細かい修正の一部として取り入れられた可能性は残らなくもないが、 現時点で発見された一番古い音訳説が「新字源」初版(1968)と言って大丈夫そうだ。 追記2(2018-09-23): 「角川国語大辞典」(1982)にも表記に関する注意として次のように書かれている。 函数は function の音訳。 三省堂 「新明解国語辞典」第六版(2005)では函数の見出しで最初に次のような説明が入る。 function の、中国での音訳。 「函」は「独立変数を含む」という意味も兼ねる 第四版(1989)でも同じ内容を確認した。 初版まで遡れれば1972年となるが、第三版以前については未調査。 一方「三省堂国語辞典」第七版(2013)では語源に言及していなかった。 「大辞林」第三版(2006)も「例解新国語辞典」第二版(1990)も言及無し。 (追記 2018-09-23: 「広辞林」第五版(1973)も言及無し) 岩波書店 意外にも音訳説を押し出し...