-
関数
- AlgebraicIntegerQ
- AlgebraicNumber
- AlgebraicNumberDenominator
- AlgebraicNumberNorm
- AlgebraicNumberTrace
- AlgebraicUnitQ
- Automatic
- Extension
- False
- MinimalPolynomial
- NumberFieldClassNumber
- NumberFieldDiscriminant
- NumberFieldFundamentalUnits
- NumberFieldIntegralBasis
- NumberFieldNormRepresentatives
- NumberFieldRegulator
- NumberFieldRootsOfUnity
- NumberFieldSignature
- RootOfUnityQ
- ToNumberField
- True
-
-
関数
- AlgebraicIntegerQ
- AlgebraicNumber
- AlgebraicNumberDenominator
- AlgebraicNumberNorm
- AlgebraicNumberTrace
- AlgebraicUnitQ
- Automatic
- Extension
- False
- MinimalPolynomial
- NumberFieldClassNumber
- NumberFieldDiscriminant
- NumberFieldFundamentalUnits
- NumberFieldIntegralBasis
- NumberFieldNormRepresentatives
- NumberFieldRegulator
- NumberFieldRootsOfUnity
- NumberFieldSignature
- RootOfUnityQ
- ToNumberField
- True
-
関数
代数的数体
Wolfram言語では代数的数をRootオブジェクトとして表現することができる.Rootオブジェクトは代数的数の最小多項式と根番号(Rootオブジェクトが最小多項式のどの根を表しているのかを示す整数)を含んでいる.これにより,任意の複素代数的数の表現が一意的となる.一方で,この表現での演算操作はコストが高いという問題もある.そのため,Wolfram言語では演算式の簡約化のために追加の関数RootReduceを使用することが必要となる.計算を固定された有理数の有限次代数拡大
内に限定することで,その要素を
の多項式としてより簡単に表現することができる.
| AlgebraicNumber[θ,{c0,c1,…,cn}] |
a = AlgebraicNumber[Root[#^3 - # + 1&, 1], {1, 2, 3}]N[a, 20]任意の代数的数
および任意の実数のリスト
に対して,AlgebraicNumber[θ,{c0,…,cl}]を評価すると,AlgebraicNumber[ξ,{d0,…,dm}]になる.ここで
は,
の最小多項式の主係数の任意の因子
について
となるような代数的整数,
は
の最小多項式の次数,そして以下が成り立つ.
AlgebraicNumber[Root[2 #^4 - 3 # + 2&, 1], {1, 2, 3, 4, 5, 6}]AlgebraicNumber[Root[#^5 - 7 # + 1&, 1], {0, 7, 0, 0, 0, -1}]a = AlgebraicNumber[Root[#^4 + 7 # - 21&, 1], {1, 2, 3, 4}];
b = AlgebraicNumber[Root[#^4 + 7 # - 21&, 1], {9, 8, 7, 5}];
(2 a^2 - 3 a b + 5 b^5 - 3/a^8 - b^4 + (1/2)) + 9RootReduce[a]| ToNumberField[a,θ] | θ により生成された数体上で代数的数 a を表す |
| ToNumberField[{a1,a2,…},θ] | θ により生成された体上で ai を表す |
| ToNumberField[{a1,a2,…}] | 単独の代数的数により生成された共通の拡大体上で ai を表す |
ToNumberField[{Sqrt[2], Sqrt[3]}]ToNumberField[Sqrt[6], Root[1 - 10 #^2 + #^4&, 4]]有理数の固定の有限拡大体内での計算は,複素代数的数すべての体の中での計算より格段に速い.
{a, b, c} = {I, Sqrt[2], Root[#^3 - 2 # + 3&, 1]};
f = (-2 y z (7 + x - y + z^2) + (6 + x^2 + 2 y) (-11 + x y + z^2)/2 y z (-4 - x + 3 y z) - (6 + x^2 + 2 y) (2 - 2 x + z^3));RootReduce[f /. {x -> a, y -> b, z -> c}]//Timing({aa, bb, cc} = ToNumberField[{a, b, c}])//Timing(d = (-2 y z (7 + x - y + z^2) + (6 + x^2 + 2 y) (-11 + x y + z^2)/2 y z (-4 - x + 3 y z) - (6 + x^2 + 2 y) (2 - 2 x + z^3)) /. {x -> aa, y -> bb, z -> cc})//TimingRootReduce[d]//TimingToNumberField[{a1,a2,…}]はToNumberField[{a1,a2,…},Automatic]と等価であり,必ずしも最小共通拡大体は使わない.ToNumberField[{a1,a2,…},All]は常に最小共通拡大体を使う.
ToNumberField[{AlgebraicNumber[Root[1 - 10 #^2 + #^4&, 4], {0, -(9/2), 0, (1/2)}], Sqrt[5]}]ToNumberField[{AlgebraicNumber[Root[1 - 10 #^2 + #^4&, 4], {0, -(9/2), 0, (1/2)}], Sqrt[5]}, All]| MinimalPolynomial[a] | 代数的数 a の整数の最小多項式の純関数表現を返す |
| MinimalPolynomial[a,x] | x の多項式として表された代数的数 a の最小多項式を返す |
| AlgebraicIntegerQ[a] | 代数的数 a が代数的整数ならTrueを,さもなければFalseを返す |
| AlgebraicNumberDenominator[a] | na が代数的整数となるような最小の正の整数 n を返す |
| AlgebraicNumberTrace[a] | 代数的数 a のトレースを返す |
| AlgebraicNumberNorm[a] | 代数的数 a のノルムを返す |
| AlgebraicUnitQ[a] | 代数的数 a が代数的単数ならばTrueを,それ以外ならFalseを返す |
| RootOfUnityQ[a] | 代数的数 a が1のベキ根ならばTrueを,それ以外ならFalseを返す |
代数的数
の最小多項式は,整数係数を持ち,
となる最小の正の主係数を持つ最低次の多項式
である.
MinimalPolynomial[Sqrt[2] + Sqrt[3]]MinimalPolynomial[Root[#^5 - 2 # + 7&, 1]^2 + 1, x]代数的数はそのMinimalPolynomialがモニックのとき,かつそのときに限り,代数的整数である.
AlgebraicIntegerQ[(1/2) (1 + Sqrt[5])]AlgebraicIntegerQ[(1/4) (1 + Sqrt[5])]AlgebraicNumberDenominator[(1/4) (1 + Sqrt[5])]代数的数 a のトレースはMinimalPolynomial[a]のすべての根の和である.
AlgebraicNumberTrace[(-1)^1 / 7]代数的数a のノルムはMinimalPolynomial[a]のすべての根の積である.
AlgebraicNumberNorm[Sqrt[3] + Sqrt[5]]
と
の両方が代数的整数の場合,言い換えるとAlgebraicNumberNorm[a]が
または
の場合かつその場合に限り,代数的数
は代数的単位元となる.
AlgebraicUnitQ[GoldenRatio]AlgebraicUnitQ[AlgebraicNumber[Root[#^3 - 4 # + 17&, 1], {1, 2, 3}]]整数
について
である場合,かつその場合に限り,代数的数
は1のベキ根である.
RootOfUnityQ[(1/2) (Sqrt[2 + Sqrt[2]] + I Sqrt[2 - Sqrt[2]])]| MinimalPolynomial[s,x,Extension->a] | |
| 体 | |
| MinimalPolynomial[s,x,Extension->Automatic] | |
| 第1引数により生成された数体上のAlgebraicNumberオブジェクト s の特性多項式を返す | |
| AlgebraicNumberTrace[a,Extension->θ] | |
| 体 | |
| AlgebraicNumberTrace[a,Extension->Automatic] | |
| 第1引数により生成された数体上のAlgebraicNumberオブジェクト a のトレースを返す | |
| AlgebraicNumberNorm[a,Extension->θ] | |
| 体 | |
| AlgebraicNumberNorm[a,Extension->Automatic] | |
| 第1引数により生成された数体上のAlgebraicNumberオブジェクト a のノルムを返す | |
a がAlgebraicNumber[θ,coeffs]であるとすると,MinimalPolynomial[a,x,Extension->Automatic]はMinimalPolynomial[a,x]d に等しい.ここで,d は
の拡大次数である.
a = AlgebraicNumber[Root[1 - 10 #^2 + #^4&, 4], {0, -(9/2), 0, (1/2)}];
MinimalPolynomial[a, x]
MinimalPolynomial[a, x, Extension -> Automatic]//Factor代数的数のトレースは,特性多項式の根の総和である.a がAlgebraicNumber[θ,coeffs]ならば,AlgebraicNumberTrace[a,Extension->Automatic]はd AlgebraicNumberTrace[a]と等しい.ここで d は
の拡大次数である.
a = AlgebraicNumber[Root[1 - 10 #^2 + #^4&, 4], {1, -(9/2), 0, (1/2)}];
AlgebraicNumberTrace[a]
AlgebraicNumberTrace[a, Extension -> Automatic]代数的数のノルムは,特性多項式の根の総積である.a がAlgebraicNumber[θ,coeffs]なら,AlgebraicNumberNorm[a,Extension->Automatic]はAlgebraicNumberNorm[a]dに等しい.ここで d は
の拡大次数である.
a = AlgebraicNumber[Root[1 - 10 #^2 + #^4&, 4], {5, -(9/2), 0, (1/2)}];
AlgebraicNumberNorm[a]
AlgebraicNumberNorm[a, Extension -> Automatic]| NumberFieldIntegralBasis[a] | 代数的数 a により生成された体 |
| NumberFieldRootsOfUnity[a] | 代数的数 a により生成された体 |
| NumberFieldFundamentalUnits[a] | 代数的数 a により生成された体 |
| NumberFieldNormRepresentatives[a,m] | |
| 代数的数 a により生成された体 | |
| NumberFieldSignature[a] | 代数的数 a により生成された体 |
| NumberFieldDiscriminant[a] | 代数的数 a により生成された体 |
| NumberFieldRegulator[a] | 代数的数 a により生成された体 |
| NumberFieldClassNumber[a] | 代数的数 aにより生成された数体 |
代数体
の整数底は,
の代数的整数の
‐加群の底を形成する代数的数のリストである.
が代数的整数であり,すべての代数的整数
が次のように一意的に表せるとき,かつその場合に限り,集合
は代数体
の整数底である.
NumberFieldIntegralBasis[18^1 / 3]NumberFieldIntegralBasis[Root[533 + 429 # + 18 #^2 + #^3&, 1]]NumberFieldIntegralBasis[533 + 429 # + 18 #^2 + #^3&, 1]NumberFieldRootsOfUnity[Root[9 - 2 #^2 + #^4&, 4]]NumberFieldRootsOfUnity[1 + I Sqrt[3]]
が代数的単位元であり,すべての代数的単位元
が次のように一意的に表される場合,かつその場合に限り,
は代数体
の基本単位元である.
NumberFieldFundamentalUnits[Root[#^4 - 10 #^2 + 1&, 3]]NumberFieldFundamentalUnits[Sqrt[21]]NumberFieldNormRepresentatives[Root[#^2 - 7&, 1], 9]NumberFieldNormRepresentatives[Sqrt[2] + Sqrt[3], 2]NumberFieldSignature[Root[#^5 + #^4 + #^3 + #^2 + 1&, 1]]a = Sqrt[2] + Root[#^3 - 11 # - 2&, 1] + AlgebraicNumber[Root[#^4 - 3 # + 1&, 2], {1, 2, 3}];
NumberFieldSignature[a]数体
の判別式は
の整数底
の判別式,つまり要素がAlgebraicNumberTrace[ai aj,Extension->Automatic]である行列の判別式である.判別式の値は,整数底の値に依存しない.
NumberFieldDiscriminant[2 - Sqrt[3] + 5^1 / 4]NumberFieldDiscriminant[#^5 + #^4 + #^3 + #^2 + 1&]数体
の基準は,次の対数埋込みにおいて
の単位元のグループの写像の格子体積である.
ここで
, …,
は
の
への実数埋込みであり,
, …,
は
の
への複素共役埋込みのなかの1つである.
NumberFieldRegulator[Sqrt[61]]NumberFieldRegulator[#^3 - 3 #^2 + 1&]NumberFieldClassNumber[Sqrt[-71]]