|
NumberTheory`AlgebraicNumberFields`
このパッケージを使うと,有理数を有限代数に拡大した計算を行う関数が利用できるようになる.使用されている概念とアルゴリズムについての詳細は,H. Cohen著「A Course In Computational Algebraic Number Theory」(Springer-Verlag出版,1993)等を参照されたい.
Mathematica では代数的数をRootオブジェクトとして表現することができる.Rootオブジェクトは代数的数の最小多項式と根番号(Rootオブジェクトが最小多項式のどの根を表しているのかを示す整数)を含んでいる.これにより,任意の複素代数的数の表現が一意的となる.一方で,この表現での演算操作はコストが高いという問題もある.そのため,Mathematica では演算式の簡約化のために追加の関数RootReduceを使用することが必要となる.固定の有理数の有限代数的拡大体 ( )での計算に限定する場合は, ( )の要素のより便利な表現,つまり の多項式を使用することができる.

有理数の有限拡大体の要素としての代数的数の表現
パッケージをロードする.
In[1]:=
f が次数l で整数係数かつ最高次の係数が1である既約多項式関数であり,また が有理数なら, は不活性数値オブジェクトである.
In[2]:=
Out[2]=
Nを使うと,Algebraicオブジェクトの数値的近似が求められる.
In[3]:=
Out[3]=
= Root[f, k]を評価すると代数的数になるすべてのf とkおよびすべての有理数のリスト についても, は評価すると, = Root[g, n]である となる.ここでd は の最小多項式の主係数でり, は代数的整数,m はg の次数で,以下が成り立つ.

Algebraicは最高次の係数が1で係数リストの長さが拡大体の次数と等しい拡大体を定義する多項式を自動的に作成する.
In[4]:=
Out[4]=
Algebraicで指定されている多項式f が還元可能なら,根がRoot[f, k]であるf の還元不可能な因子で指定される拡大体が得られる.
In[5]:=
Out[5]=
有理数を表すAlgebraicオブジェクトは自動的に数値に還元される.
In[6]:=
Out[6]=
明らかに同じ体に存在する(つまり第1,第3要素が等しい)オブジェクトの加算または乗算,有理数とAlgebraicオブジェクトの加算または乗算,あるいはAlgebraicオブジェクトの整数乗を行うと,Algebraicオブジェクトが得られる.
In[7]:=
Out[9]=
RootReduceはAlgebraicオブジェクトをRootオブジェクトに変換する.
In[10]:=
Out[10]=

任意の代数的数を代数体の要素として表すための関数
ToCommonFieldを使うと,指定の代数的数を含む有理数の共通の有限拡大体を求めることができる.
In[11]:=
Out[11]=
次の式は をRoot[ 4]により生成された体の要素として表す.
In[12]:=
Out[12]=
有理数の固定の有限拡大体内での計算は,複素代数的数すべての体の中での計算より格段に速い.
{x, y, z}が代数的数{a, b, c}で置き換えられた有理関数f の値を求めるとする.
In[13]:=
{a, b, c}におけるf の値をRootReduceを使って直接計算すると,多少時間がかかる.
In[15]:=
Out[15]=
これをより速く行う別の方法として,{a, b, c}を含む共通の代数体で計算を行うというものがある.
In[16]:=
Out[16]=
共通の数体の中での計算は格段に速い.
In[17]:=
Out[17]=
結果のAlgebraicオブジェクトをRootオブジェクトに変換するのも速い.
In[18]:=
Out[18]=

ToCommonFieldのオプション.
デフォルトのオプション設定SmallestField -> False ToCommonFieldでは,入力の中のAlgebraicオブジェクトが数体を生成し,それによって可能な最小のものではない共通体を求めることができるかどうかを確認しない.
1つ目のオブジェクトは に等しいため,これが示す第4次体 (Root[ 4])を生成しない.しかし,ToCommonFieldが求めた共通体には体すべて (Root[ 4])が含まれる.
In[19]:=
Out[19]=
SmallestField -> Trueと設定すると,ToCommonFieldは可能な最小の体を求める.
In[20]:=
Out[20]=

代数的数の特性を求める関数
代数的数a の最小多項式は,整数係数を持ち,f(a) 0のなる最小の正の主係数を持つ最低次の多項式f である.
次の式は純関数として表された の最小多項式を返す.
In[21]:=
Out[21]=
次はx の多項式として表された の最小多項式を返す.
In[22]:=
Out[22]=
代数的数はその最高次の係数が1のとき,かつそのときに限り,代数的整数である.
が代数的整数であることを示す.
In[23]:=
Out[23]=
が代数的整数ではないことを示す.
In[24]:=
Out[24]=
n が代数的整数となる最小の正の整数n を求める.
In[25]:=
Out[25]=
代数的数a のトレースはMinimalPolynomial[a]のすべての根の和である.
のトレース.
In[26]:=
Out[26]=
代数的数a のノルムはMinimalPolynomial[a]のすべての根の積である.
のノルム.
In[27]:=
Out[27]=
a と1/a の両方が代数的整数,あるいは同様にAlgebraicNumberNorm[a]が1または-1の場合かつその場合に限り,代数的数は代数的単数となる.
GoldenRatioが代数的単数であることを示す.
In[28]:=
Out[28]=
は代数的単数ではない.
In[29]:=
Out[29]=
代数的数a は整数n について である場合,かつその場合に限り,1のベキ根である.
は1のベキ根である.
In[30]:=
Out[30]=

代数体の要素の特性を計算する関数
a がAlgebraic[f, coeffs, k]であるとすると,NumberFieldCharacteristicPolynomial[a, x]は に等しい.ここで,d は (Root[f, k])/ (a)の拡大次数である.
のNumberFieldCharacteristicPolynomialは次数4の有理数の拡大体の要素として表されるが,これは のMinimalPolynomialの2乗である.
In[31]:=
Out[31]=
NumberFieldTrace[a]はNumberFieldCharacteristicPolynomial[a]のすべての根の和である.a がAlgebraic[f, coeffs, k]ならば,NumberFieldTrace[a]は と等しくなる.ここでd は (Root[f, k])/ (a)の拡大次数である.
のNumberFieldTraceは次数4の有理数の拡大体の要素として表されるが,これは のAlgebraicNumberTraceの2倍である.
In[32]:=
Out[32]=
In[33]:=
Out[33]=
NumberFieldNorm[a]はNumberFieldCharacteristicPolynomial[a]のすべての根の積である.a がAlgebraic[f, coeffs, k]なら,NumberFieldNorm[a]は に等しい.ここでd は (Root[f, k])/ (a)の拡大次数である.
のNumberFieldNormは,次数4の有理数の拡大体の要素として表されるが,これは のAlgebraicNumberNormの2乗に等しい.
In[34]:=
Out[34]=
In[35]:=
Out[35]=

代数体の特性を計算する関数
代数体K の整数底は,K の代数的整数の -加群の底を形成する代数的数のリストである. K が代数的整数であり,すべての代数的整数z K が次のように一意的に表せるとき,かつその場合に限り, は代数体K の整数底である.

ここで は整数係数である.
の1次の根により生成された数体の整数底.
In[36]:=
Out[36]=
)の整数底.
In[37]:=
Out[37]=
の4次の根により生成された数体の1のベキ根.
In[38]:=
Out[38]=
数体 )のすべての1のベキ根.
In[39]:=
Out[39]=
K が代数的単数であり,すべての代数的単数u K が次のように一意的に表される場合,かつその場合に限り, は代数体K の基本単数である.

ここで, は1のベキ根, は整数ベキ指数である.
の3次の根により生成された体の基本単数一式.
In[40]:=
Out[40]=
2次体 )の基本単数.
In[41]:=
Out[41]=
の1次の根により生成された体のノルム9の要素の類の代表値一式.
In[42]:=
Out[42]=
体 )のノルム2の要素の類の代表値一式.
In[43]:=
Out[43]=
多項式 が実根1つと,2つの共役複素根のペアを持つことを示す.
In[44]:=
Out[44]=
体 )が12個の実embeddingと6個の複素embeddingのペアを持つことを示す.
In[45]:=
Out[45]=
数体K の判別式はK の整数底 の判別式,つまり要素が である行列の判別式である.判別式の値は,整数底の値に依存しない.
 )の判別式.
In[46]:=
Out[46]=
多項式 の根により生成された体の判別式を求める.判別式の値はどの根を用いるかに因らない.
In[47]:=
Out[47]=
数体K の単数基準は,次の対数embeddingにおいてK の単数のグループの像の格子容積である.

ここで は におけるK の実embedding, は におけるK の複素embeddingの共役ペアの1つである.
 )の単数基準.
In[48]:=
Out[48]=
多項式 の根により生成された体の単数基準を求める.単数基準の値は根の選択に因らない.
In[49]:=
Out[49]=
|