Maxima で綴る数学の旅

紙と鉛筆の代わりに、数式処理システムMaxima / Macsyma を使って、数学を楽しみましょう

-数学- 高次の円分多項式で係数が1,0,-1以外になる場合の計算による確認

f:id:jurupapa:20210424093513j:plain

 

鈴木の定理の証明は、係数がnや-nになる円分多項式及び、そうなるその円分多項式のその部分の係数を簡単に計算する方法を与えています。従って実際にMaximaで計算してみることが出来ます。

まず論文中の補題\( (P)\)の条件を満足する素数列を得る必要がありますね。

\( (P)\) 任意の3以上の自然数\(t\)に対して、\(t\)個の異なる素数\(p_1 \lt p_2 \lt \cdots \lt p_t\)を、\(p_1 + p_2 \gt p_t\)が成り立つようにとることができます。  

コードはこんな感じになります。

(%i1) search_suzuki_p(t,p1):=block([reslist:[ ],pi],
                pi:p1,
                for i:1 thru t do block([ ],
                   push(pi,reslist),
                   pi:next_prime(pi)),
                while apply("+",lastn(reslist,2))<=reslist[1] do block([ ],
                   reslist:firstn(reslist,t-1),
                   push(pi,reslist),
                   pi:next_prime(pi)
                ),
                return(reverse(reslist)))$

やっていることは単純です。指定された素数p1からt個の素数を作りreslistという変数に格納します。これが条件\(p_1+p_2 \gt p_t\)を満たしていればreslistを返します。満たしていなければ、最初の素数を捨てて、次の素数をreslistに加えて条件を確認する、ということを条件が満たされるまで繰り返します。

 

試してみましょう。条件を満たす5個の素数を3から初めて探します。

(%i2) search_suzuki_p(5,3);

$$ \tag{${\it \%o}_{2}$}\left[ 11 , 13 , 17 , 19 , 23 \right] $$

11+13=24>23ですから確かに欲しい素数列です。うまく動いています!

 

この素数列を使って、この素数の積を次数としてもつ円分多項式を、\(mod\, X^{24}\)で書くとこうなる、というのが論文の中の合同式の変形の最後の式でした。
(%i3) sum(X^n,n,0,23)*(1-lsum(X^p,p,%));

$$ \tag{${\it \%o}_{3}$}\left(-X^{23}-X^{19}-X^{17}-X^{13}-X^{11}+1\right)\,\left(X^{23}+X^{22}+X^{21}+X^{20}+X^{19}+X^{18}+X^{17}+X^{16}+X^{15}+X^{14}+X^{13}+X^{12}+X^{11}+X^{10}+X^9+X^8+X^7+X^6+X^5+X^4+X^3+X^2+X+1\right) $$

これを\(mod\, X^{24}\)で展開します。
(%i4) remainder(expand(%),X^24);

$$ \tag{${\it \%o}_{4}$}-4\,X^{23}-3\,X^{22}-3\,X^{21}-3\,X^{20}-3\,X^{19}-2\,X^{18}-2\,X^{17}-X^{16}-X^{15}-X^{14}-X^{13}+X^{10}+X^9+X^8+X^7+X^6+X^5+X^4+X^3+X^2+X+1 $$

\(mod\, X^{24}\)の範囲でちゃんと計算できて、\(X^{23}\)の係数は-4であることが分かります。

 

もう少し長く、9個の素数で条件を満たすものを探します。
(%i5) search_suzuki_p(9,3);

$$ \tag{${\it \%o}_{5}$}\left[ 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 \right] $$

31+37=68>67ですから欲しい素数列が得られました。

\(mod\, X^{68}\)での対応する円分多項式は次の通りです。
(%i6) sum(X^n,n,0,67)*(1-lsum(X^p,p,%));

$$ \tag{${\it \%o}_{6}$}\left(-X^{67}-X^{61}-X^{59}-X^{53}-X^{47}-X^{43}-X^{41}-X^{37}-X^{31}+1\right)\,\left(X^{67}+X^{66}+X^{65}+X^{64}+X^{63}+X^{62}+X^{61}+X^{60}+X^{59}+X^{58}+X^{57}+X^{56}+X^{55}+X^{54}+X^{53}+X^{52}+X^{51}+X^{50}+X^{49}+X^{48}+X^{47}+X^{46}+X^{45}+X^{44}+X^{43}+X^{42}+X^{41}+X^{40}+X^{39}+X^{38}+X^{37}+X^{36}+X^{35}+X^{34}+X^{33}+X^{32}+X^{31}+X^{30}+X^{29}+X^{28}+X^{27}+X^{26}+X^{25}+X^{24}+X^{23}+X^{22}+X^{21}+X^{20}+X^{19}+X^{18}+X^{17}+X^{16}+X^{15}+X^{14}+X^{13}+X^{12}+X^{11}+X^{10}+X^9+X^8+X^7+X^6+X^5+X^4+X^3+X^2+X+1\right) $$

展開して67次以下の項を計算します。
(%i7) remainder(expand(%),X^68);

$$ \tag{${\it \%o}_{7}$}-8\,X^{67}-7\,X^{66}-7\,X^{65}-7\,X^{64}-7\,X^{63}-7\,X^{62}-7\,X^{61}-6\,X^{60}-6\,X^{59}-5\,X^{58}-5\,X^{57}-5\,X^{56}-5\,X^{55}-5\,X^{54}-5\,X^{53}-4\,X^{52}-4\,X^{51}-4\,X^{50}-4\,X^{49}-4\,X^{48}-4\,X^{47}-3\,X^{46}-3\,X^{45}-3\,X^{44}-3\,X^{43}-2\,X^{42}-2\,X^{41}-X^{40}-X^{39}-X^{38}-X^{37}+X^{30}+X^{29}+X^{28}+X^{27}+X^{26}+X^{25}+X^{24}+X^{23}+X^{22}+X^{21}+X^{20}+X^{19}+X^{18}+X^{17}+X^{16}+X^{15}+X^{14}+X^{13}+X^{12}+X^{11}+X^{10}+X^9+X^8+X^7+X^6+X^5+X^4+X^3+X^2+X+1 $$

確かに\(X^{67}\)の係数は-8, \(X^{66}\)の係数は-7であることが確認できます。

 

ちなみにこの円分多項式の次数は、
(%i8) apply("*",%o5);

$$ \tag{${\it \%o}_{8}$}1214635883296783 $$

です。またこの円分多項式多項式としての次数は、
(%i9) totient(%);

$$ \tag{${\it \%o}_{9}$}996821489664000 $$

いずれにしろ巨大な多項式であることは確かです。元の定義に基づいた計算ではMaximaでも途中でスタック溢れが起きてしまいます。

 

\(mod\, X^{p+1}\)での計算は強力です。