0%

PARI使用介绍

PARI使用介绍

本文介绍利用PARI/GP程序计算数域的一些代数量,代码主要参考[1]-[3].
PARI/GP官网为http://pari.math.u-bordeaux.fr,可安装后使用,也可在浏览器直接使用.

1.计算$\mathbb{Q}$添加一个多项式的根生成的域的类群.例如多项式为
输入

1
2
3
T = x^6 - 3*x^5 + 5*x^3 - 3*x + 1;
F = bnfinit(T);\\ the number field Q[x]/(T)
F.cyc

输出
1
%2 = []

表示类群是平凡的.

输入

1
2
3
4
T = x^4 + 13*x^2 - 12*x + 52;
F = bnfinit(T); \\ F = Q[x]/(T), together with class group
F.cyc
%3 = [14] \\ output: Cl_F ~ Z/(14)

上面最后一行$\%3=14$表示输出结果,其中$3$表示第几个程序,不用关心,$14$表示输出结果:类群是$14$阶循环群.
注意加”;”时程序不会输出,不加”;”才能输出结果。在PARI中双斜杠“$\setminus\setminus$”表示注释。

一般来说,借助多项式T,可用 nfiniy() 函数生成一个域,但若考虑域代数结构时,一般用包含类群,单位群的 bnfinit() 函数。

PARI还可计算分歧指数,如下

1
2
3
4
5
6
7
T=x^6-3*x^5+5*x^3-3*x+1;
F=bnfint(T);
P2 = idealprimedec(F,2)[1]; \\ a prime above 2
[P2.e,P2.f] \\ ramification index and residue degree
%1=[3,2] \\ e(P/p)=3,f(P/p)=2
bnflogef(F,P2)
%2=[6,1]

上面$[6,1]$表示对数分歧指数,剩余类次数为$\widetilde{e}(P/p)=6,\widetilde{f}(P/p)=1.$

2.计算$\mathbb{Q}$添加两个多项式的根生成域的子群,例如计算的理想类群

程序如下:

1
2
3
4
T = polcompositum(x^2+41, x^3-3*x+1, 2);
F=bnfinit(T);
F.cyc
%4=[72,3] //Cl(F) ~ Z/(72) +Z/(3)

类群为$CL(F)\cong \mathbb{Z}/(72)\oplus \mathbb{Z}/(3)$.

3.计算对数类群.若$K$是一个数域,$l$是固定的素数,设表示$l$上的素数.用表示$K$的关于素数$l$的对数类群,用表示所有在$l$上的素理想所在对数理想类在对数类群中生成的子群.
用$Cl’$表示商群的$l-sylow$子群.
定义映射

其中
则有正合列

PARI中对函数\textbf{bnflog}输入一个数域$F$及一个素数$l$,其返回值为$(\widetilde{Cl},\widetilde{Cl}(l),Cl’),$
例如输入

1
2
3
4
T=x^3+6*x-1;
F=bnfinit(T);
bnflog(F,3)
%5= [[], [], []]

表明3-对数类群及其他两个群都是平凡的.

下设$F$是一个代数数域,一些PARI命令如下.

PARI代码 含义
F=bnfinit(T) 用不可约多项式T生成域:F= Q[x]/(T)
F.cyc 代数数域F的类数
F.zk 数域F的整基,输出结果中含有一个变量,表示定义域F的多项式T的一个根
F.disc 数域F的判别式
left(F.tu) 数域F单位群的单位根部分
left(F.fu) 数域F单位群的自由部分部分,输出为基本单位(输出结果中含有一个变量,表示定义域F的多项式T的一个根)
polisirreducible(f) 判断整数环上首一多项式f是否为不可约多项式,若是:返回1;否则,返回0
dec = idealprimedec(K,5);#dec 数域K中在5上素理想的个数;此时若再输入[pr1,pr2]=dec,则pr1,pr2分别表示5上的第一个和第二个素理想,pr1.f,pr1.e分别表示其剩余类域扩张次数和分歧指数
命令 含义
poldisc(f) 多项式f的判别式
polroots(f) 多项式f的根
polrootsreal(f,{[a, b]}) 多项式f(在区间[a,b]中)的实根

当然PARI还有许多功能,可见网站中Help/community下的Tutorials页面。

参考资料:

1.PARI官网.Algebraic number theory with GP.
2.PARI官网.PARI基本的函数.
3.Karim Belabas,Jean-Francois Jaulent,.The logarithmic class group package in PARI/GP