PARI使用介绍
本文介绍利用PARI/GP程序计算数域的一些代数量,代码主要参考[1]-[3].
PARI/GP官网为http://pari.math.u-bordeaux.fr,可安装后使用,也可在浏览器直接使用.
1.计算$\mathbb{Q}$添加一个多项式的根生成的域的类群.例如多项式为
输入1
2
3T = 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
4T = 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
7T=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
4T = 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
4T=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