Explanations about how the values are
calculated.
The totally real subfield of a cyclotomic field.
Of
roots of unity of order 5
Of
roots of unity of order 7
Of
roots
of unity of order 8
Of
roots of unity of order 11
Of
roots of unity of order 12
Of
roots of unity of order 13
Quadratic Fields.
discriminant
5
discriminant
8
discriminant
12
discriminant
13
discriminant
17
discriminant
21
discriminant
24
discriminant
28
discriminant
29
discriminant
33
discriminant
37
discriminant
40
discriminant
41
discriminant
44
Cyclic Cubic Fields
Of
Q(exp(2*Pi*i/7))
Of
Q(exp(2*Pi*i/13))
Of
Q(exp(2*Pi*i/19))
Non-Galois Cubic Fields.
x^3
- 9*x - 6
x^3
- 9*x - 3
x^3
- x^2 - 7*x + 2
x^3
- 11*x - 11
The calculations of values of zeta
functions were done using PARI (Version 2.0.17 (beta), Windows NT ix86
(ix86 kernel), 32-bit version, running on Windows NT '98). A problem is
that the size of the values
grows very fast. It was found, experimentally, that setting the
precision
by \p 180 works best (for a larger precision the answer
PARI
supplies is usually wrong!). Even at this precision at some point PARI
announces "precision loss in truncation" and very often produces wrong
answers before this annoucement is made. One easily recognizes that the
result is wrong by a sharp increase in its size and by the denominator
being way too big (either in size or having wrong primes dividing it).
Calculating Riemann's zeta function.
(09:16) \p2000 (No
problem with precision in this function)
realprecision = 2003 significant digits (2000 digits displayed)
(09:16)
for(i=1,100,a=round(zeta(1-2*i)*(6*i)!)/(6*i)!;print("zeta(1-",2*i,")
= ",a," ",factor(denominator(a))))
Calculating the minimal polynomial.
Here is an example for roots of unity of order 8. (No need arose for
a general function).
? ? a=exp(2*Pi*I/8);
? ? round((x-2*real(a))*(x-2*real(a^3)))
%4 = x^2 - 2
Initializing a number field and obtaining some invariants.
? k = nfinit(x^2-5);
? k[3]
(The discriminant)
? 5
Calculating the factorization of primes in the totally real field.
? ? k=nfinit(x^2-5);
? ? forprime(i=2,32,a=idealprincipal(k,i);print(i,"
",idealfactor(k,a)))
2 Mat([[2, [2, 0]~, 1, 2, [1, 0]~], 1])
3 Mat([[3, [3, 0]~, 1, 2, [1, 0]~], 1])
5 Mat([[5, [-1, 2]~, 2, 1, [-1, 2]~], 2])
7 Mat([[7, [7, 0]~, 1, 2, [1, 0]~], 1])
11 [[11, [-5, 2]~, 1, 1, [3, 2]~], 1; [11, [3, 2]~, 1, 1, [-5,
2]~], 1]
13 Mat([[13, [13, 0]~, 1, 2, [1, 0]~], 1])
17 Mat([[17, [17, 0]~, 1, 2, [1, 0]~], 1])
19 [[19, [-10, 2]~, 1, 1, [8, 2]~], 1; [19, [8, 2]~, 1, 1, [9,
2]~], 1]
23 Mat([[23, [23, 0]~, 1, 2, [1, 0]~], 1])
29 [[29, [-12, 2]~, 1, 1, [10, 2]~], 1; [29, [10, 2]~, 1, 1,
[-12, 2]~], 1]
31 [[31, [-7, 2]~, 1, 1, [5, 2]~], 1; [31, [5, 2]~, 1, 1, [-7,
2]~], 1]
Calculating the value. The script used is very simple. Here
is
an example
? ? \p180
realprecision = 183 significant digits (180 digits
displayed)
? ? k=zetakinit(x^5 + x^4 - 4*x^3 - 3*x^2 + 3*x +
1);for(i=1,16,t=round(zetak(k,1-2*i)*32!)/32!;print("z(",(1-2*i),")
=",t,"=",factor(denominator(t))))
z(-1)=-20/33 [3, 1; 11, 1]
z(-3)=1695622/165 [3, 1; 5, 1; 11, 1]
z(-5)=-50936925341420/693 [3, 2; 7, 1; 11, 1]
z(-7) =3543010400763352360091/165=[3, 1; 5, 1; 11, 1]
z(-9) =-3064839249175370545023293582020/33=[3, 1; 11,
1]
z(-11)
=150607491678457644611241613057523401954646722/45045=[3,
2; 5, 1; 7, 1; 11, 1; 13, 1]
z(-13)
=-22786609701564620802831984165768429157292386800423020/33=[3,
1; 11, 1]
z(-15)
=3536453128145555872124660832571626062092079545106341991126179692667/5610=[2,
1; 3, 1; 5, 1; 11, 1; 17, 1]
z(-17)
=-82870594275907635610187436559268476911703227525756627620509217091783293008291940/39501=[3,
3; 7, 1; 11, 1; 19, 1]
z(-19)
=18101711521606517304423113131909702437120441255887075037380681034586375053865444166752853062/825=[3,
1; 5, 2; 11, 1]
z(-21)
=-5351670936024492939166666065913000091973169152733384440393242319773760895634658032449754173452447868870060/8349=[3,
1; 11, 2; 23, 1]
z(-23)=3933397627801024785773628245144706556399758829607091351873360917366068054009441081200629620752513951663521629804029045786187829996892580542856105913948216758885700075519999999513/82759437283573817805748593649155833590143242364518400000000000=[2,48;
3, 21; 5, 11; 7, 6; 11, 4; 13, 3; 17, 2; 19, 2; 23, 2; 29, 1; 31, 1;
37,
1; 41, 1; 43, 1; 47, 1] (Note this
result
is clearly wrong).
*** precision loss in truncation
Non-cyclic cubics. I wanted fields with small discriminant.
To
find examples I used John Johnes data
(http://math.la.asu.edu/~jj/numberfields/),
that I assembled into one big list L and ran
for(i=1,100,if(poldegree(L[i])==2,,k=nfinit(L[i]);print(L[i],"
",polgalois(L[i]), " ", k[2]," ",k[3])))