ECC与数论、数论史、代数,二次剩余符号的程序计算,高次剩余,高斯和 2013-03-23 21:52:49

CoCoA 2015-10-9 22:49
Computational Commutative Algebra
http://vdisk.weibo.com/s/Fst8dC2oag9yO?category_id=0&parents_ref=Fst8dC2oag9Ij
计算交换代数2
丁丹
计算交换代数将要成为这个世纪应用到现实世界的最为重要的数学工具之一,随着当今计算技术的飞速发展,采用符号计算的方法处理工业尺度的问题已经成为现实。本书的主要目的是继续 为这种发展趋势提供理论基础,深入其中将可以发现与现世界相关的很多线索和暗示。虽然数值方法至今依然占据着统治地位,符号方法被视作数值方法的补充;虽然少数计算机代数系统( 包括CoCoA)提供了进行混合计算的可能(例如混合了数值和符号方法),但是,数值多项式代数这个领域依然很不成熟。因此,一些问题只好留待将来解决,这些问题包括如何用数值多项 式表示测量数据,如何用数值多项式计算Grobner基、边缘基、SAGBI基等。总之,计算交换代数的工业应用确实存在,目前正在不断发展,不久的将来将会成为最重要的数学工具之一。
本书是《计算交换代数》的第2卷,正如第1卷的前言所说:“计算交换代数的基本概念和观念深深根植于20世纪的数学发展当中,并且我们准备在不久的将来回顾更多该理论发展”。第2卷对第1卷没有涉及或者不够深入的方面做了详细的论述,可以用下列几个具体问题来描述本书所涉及的内容,假设给定某域K上的多项式环P=K[x1,x2,……xn],
问题一:如何对P赋予合适的分级,以对计算交换代数有用;
问题二:如何将一个任意的理想或模与一个同构的理想或分级的模相联系;
问题三:如何利用同构来计算Grobner基和进行在理想和模基本操作更为有效;
问题四:如何计算生成元的最小同构系统、最小同构表示等等;
问题五:如何计算有限生成分级模的Hilbert函数和Hilbert级数;
问题六:如何计算分级模的Hilbert多项式,可以从中导出不变式吗;
问题七:分级环的维数的代数和几何解释是什么;
问题八:数学家会被计算机代替吗;
问题九:除了Grobner基之外还有什么。
本书可以将读者培养成交换代数的爱好者、精通者,甚至这方面的数学家。

计算交换代数C++库
http://cocoa.dima.unige.it/cocoalib/

http://cocoa.dima.unige.it/cocoalib/changelog-0.99.shtml 
http://vdisk.weibo.com/s/Fst8dC2oag9yO?category_id=0&parents_ref=Fst8dC2oag9Ij
CoCoA可用来解线性方程组、多项式方程组
# Use R::=QQ[x,y,z];System:=Ideal(x+y+z-1,x+2*y+4*z+1,x+3*y+9*z-1);ReducedGBasis(System);
[z -2, y +8, x -7]
因此方程组{ {1,1,1},{1,2,4},{1,3,9}}X={1,-1,1}的解是(z=2, y=-8, x=7)
# Use R::=QQ[x,y,z];System:=Ideal(x-y+z-2,3*x-z+6,x+y-1);ReducedGBasis(System);
[z -21/5, y -8/5, x +3/5]
因此方程组的解是(z=21/5,y=8/5,x=-3/5)
# Use R::=QQ[x,y,z,w];System:=Ideal(9*x+18*y+9*z-27*w-1,18*x+45*y-45*w-2,9*x+126
*z+9*w-16,-27*x-45*y+9*z+135*w-8);ReducedGBasis(System);
[w -1/9, z -1/9, y -1/9, x -1/9]
因此方程组{ {9,18,9,-27},{18,45,0,-45},{9,0,126,9},{-27,-45,9,135}}X={1,2,16,8}的解是(w=1/9, z=1/9, y=1/9, x=1/9)
# Define square(X) Return X^2;EndDefine;
# square(5);
25

n次分圆多项式仅包含所有的n次单位原根,degΦ_n(x)=φ(n)
Φ_1(x)=x-1
# Use ZZ[x];cyclotomic(1,x);cyclotomic(5,x);
x -1
x^4 +x^3 +x^2 +x +1
Φ_2(x)=(x^2-1)/Φ_1(x)=x+1
# Use ZZ[x];cyclotomic(2,x);
x +1
Φ_3(x)=(x^3-1)/Φ_1(x)=x^2+x+1
# Use QQ[x];cyclotomic(3,x);
x^2 +x +1
Φ_4(x)=(x^4-1)/(Φ_1(x)Φ_2(x))=x^2+1
# Use QQ[z];cyclotomic(4,z);
z^2 +1
Φ_6(x)=(x^6-1)/(Φ_1(x)Φ_2(x)Φ_3(x))=x^2-x+1
# Use ZZ[x];cyclotomic(6,x);
x^2 -x +1
Φ_12(x)=(x^12-1)/(Φ_1(x)Φ_2(x)Φ_3(x)Φ_4(x)Φ_6(x))=x^4-x^2+1
# Use ZZ[x];cyclotomic(12,x);
x^4 -x^2 +1

在交换代数中,一个环的克鲁尔维数定义为素理想链的最大长度。此概念以德国数学家Wolfgang Krull(1899-1971)命名。
定义:设交换环R中有n+1个素理想P_0,…,P_n,使得P_0{<}P_1{<}…{<}P_n,则称之为长度为n的素理想链,一个无法插入新的素理想的链被称作极大的。
R的克鲁尔维数定义为素理想链的最大可能长度,这也等于是R中素理想的最大可能高度。
# Use R::=QQ[x,y,z];dim(R/ideal(x));dim(R/ideal(y^2-x,x*z-y^3));
2
1

# abs(-3);
3
# abs(-2/3);
2/3
# Fp::=ZZ/(7); IsFiniteField(Fp);
true
# IsField(ZZ);IsField(QQ);F7::=ZZ/(7);IsField(F7);Z4::=ZZ/(4);IsField(Z4);
false
true
true
false
# IsZZ(ZZ);IsZZ(QQ);F7::=ZZ/(7);IsZZ(F7);Z4::=ZZ/(4);IsZZ(Z4);
true
false
false
false
# IsQuotientRing(ZZ);IsQuotientRing(QQ);F7::=ZZ/(7);IsQuotientRing(F7);Z4::=ZZ/(4);IsQuotientRing(Z4);
false
false
true
true
# IsQQ(ZZ);IsQQ(QQ);F7::=ZZ/(7);IsQQ(F7);Z4::=ZZ/(4);IsQQ(Z4);
false
true
false
false
# IsTrueGCDDomain(ZZ);IsTrueGCDDomain(QQ);F7::=ZZ/(7);IsTrueGCDDomain(F7);Z4::=ZZ/(4);IsTrueGCDDomain(Z4);
true
false
false
false
# type(4);
INT
# type(5);
INT
# type(1.2);
RAT
# type(ZZ);
RING
# P::=ZZ/(101)[x,y,z];
# type(RingElem(ZZ,5));
RINGELEM

# Use QQ;
# type(QQ);
RING
# type(RingElem(QQ,5));
RINGELEM
# QQ=RingQQ();
true

# Two:=RingElem(RingZZ(),2);
# Two;
2
# Three:=RingElem(RingZZ(),3);Three;
3
# Type(Two);
RINGELEM
# IsZZ(RingOf(Two));
true
# IsZZ(RingOf(Three));
true
# Four:=RingElem(RingZZ(),4);Four;
4
# IsZZ(RingOf(Four));
true
# IsQQ(RingOf(Two));
false
# IsQQ(RingOf(Three));
false
# IsQQ(RingOf(Four));
false
# div(10,3);
3
# mod(10,3);
1
# div(-10,3);
-3
# mod(-10,3);
-1

# Use R::=QQ[x,y];S:=R/ideal(x);IsQuotientRing(S);dim(S);
true
1
# Use Qi::=QQ[i];CC:=Qi/ideal(i^2+1);type(CC);dim(CC);IsTrueGCDDomain(CC);IsQuotientRing(CC);IsField(CC);IsFiniteField(CC);Use CC[x];(x+i)^2;
RING
0
false
true
true
false
x^2 +(2*i)*x +(-1)

# Define IsArtinian(I) Return Dim(RingOf(I)/I)=0;EndDefine;
# Use R::=QQ[x,y];S:=R/ideal(x);IsQuotientRing(S);IsArtinian(ideal(x));
true
false
20151024添加:
GAP内建命令LogFFE( z, r )求离散对数
生成有限域F_2[x]/(x^5+x^3+1),已知f=x^5+x^3+1在F_2上本原。设a为f的一个根,计算a^2+a+1对a的离散对数。
gap> F2:=GF(2);x:=Indeterminate(F2,"x");f:=x^5+x^3+1;F:=GF(F2,f);a:=PrimitiveRoot(F);Print(LogFFE(a^2+a+1,a),"\n");
GF(2)
x
x^5+x^3+Z(2)^0
GF(2^5)
Z(2^5)
11
a^2+a+1对a的离散对数为11。
在有限域F_2[x]/(x^7+x^6+1)中,已知f=x^7+x^6+1在F_2上本原。设a为f的一个根,求a^3+a+1对a的离散对数。
gap> F2:=GF(2);x:=Indeterminate(F2, "x");f:=x^7+x^6+1;F:=GF(F2,f);a:=PrimitiveRoot(F);Print(LogFFE(a^3+a+1,a),"\n");
GF(2)
x
x^7+x^6+Z(2)^0
GF(2^7)
Z(2^7)
31
有两种有限域的构造方法:
一个是从某个素域通过单扩张得到有限域。定理:一个有限域一定是它所含素域的单扩域。
另一个是通过添加某个多项式的根得到分裂域。定理:设F_p是含有p个元素的素域,q=p^n(n>=1),那么多项式f(x)=x^q-x在F_q上的分裂域是一个含有q个元素的有限域。

求多项式x^2+x+1在F_16中的子域,零元,单位,本原元。
gap> F16:=GF(2,4);x:=Indeterminate(F16,"x");f:=x^2+x+1;F:=GF(F16,f);PrimitiveRoot(F);Zero(f);One(f);Characteristic(f);Order(f);Inverse(f);DegreeFFE(f);
GF(2^4)
x
x^2+x+Z(2)^0
AsField( GF(2^4), GF(2^8) )
Z(2^8)
0*Z(2)
Z(2)^0
2

Fermat小定理:若p是素数,a和p互素,则a^p≡a(modp)。
Fermat小定理可用于素性测试,这样就可以测试F5是合数还是素数。
gap> F0:=2^(2^0)+1;F1:=2^(2^1)+1;F2:=2^(2^2)+1;F3:=2^(2^3)+1;F4:=2^(2^4)+1;2^F0 mod F0;2^F1 mod F1;2^F2 mod F2;2^F3 mod F3;2^F4 mod F4;
3
5
17
257
65537
2
2
2
2
2
gap> 3^F0 mod F0;3^F1 mod F1;3^F2 mod F2;3^F3 mod F3;3^F4 mod F4;
0
3
3
3
3
gap> F5:=2^(2^5)+1;
4294967297
gap>  PowerMod(2,F0,F0);PowerMod(2,F1,F1);PowerMod(2,F2,F2);PowerMod(2,F3,F3);PowerMod(2,F4,F4);PowerMod(2,F5,F5);
2
2
2
2
2
2
gap>  PowerMod(3,F0,F0);PowerMod(3,F1,F1);PowerMod(3,F2,F2);PowerMod(3,F3,F3);PowerMod(3,F4,F4);PowerMod(3,F5,F5);
0
3
3
3
3
497143886
gap> F5 mod 3;
2
所以F_5不是素数。事实上
gap> Factors(F5);
[ 641, 6700417 ]
gap>  PowerMod(4,F0,F0);PowerMod(4,F1,F1);PowerMod(4,F2,F2);PowerMod(4,F3,F3);PowerMod(4,F4,F4);PowerMod(4,F5,F5);
1
4
4
4
4
4

第9个费马数是合数
gap>  F9:=2^(2^9)+1;
1340780792994259709957402499820584612747936582059239337772356144372176403007354697680187429816690342769003185818648605\
0853753882811946569946433649006084097
gap> PowerMod(2,F9,F9);
2
gap> PowerMod(3,F9,F9);
1334675769651040385428187301046783395533879238453972810857773932975597967623327836963094381826193117863973778281140461\
7970328133474715265143960685411614642
gap> Factors(F9);
[ 2424833, 7455602825647884208337395736200454918783366342657,
  741640062627530801524787141901937474059940781097519023905821316144415759504705008092818711693940737 ]

用欧拉的二次不可约多项式x^2+x+41计算x从10到50的数,查看是否全部为素数;
gap> for i in [10..50] do x:=i;y:=x^2+x+41;Print(y);Print(":");Print(IsPrime(y));Print(Factors(y));Print("\n"); od;
151:true[ 151 ]
173:true[ 173 ]
197:true[ 197 ]
223:true[ 223 ]
251:true[ 251 ]
281:true[ 281 ]
313:true[ 313 ]
347:true[ 347 ]
383:true[ 383 ]
421:true[ 421 ]
461:true[ 461 ]
503:true[ 503 ]
547:true[ 547 ]
593:true[ 593 ]
641:true[ 641 ]
691:true[ 691 ]
743:true[ 743 ]
797:true[ 797 ]
853:true[ 853 ]
911:true[ 911 ]
971:true[ 971 ]
1033:true[ 1033 ]
1097:true[ 1097 ]
1163:true[ 1163 ]
1231:true[ 1231 ]
1301:true[ 1301 ]
1373:true[ 1373 ]
1447:true[ 1447 ]
1523:true[ 1523 ]
1601:true[ 1601 ]
1681:false[ 41, 41 ]
1763:false[ 41, 43 ]
1847:true[ 1847 ]
1933:true[ 1933 ]
2021:false[ 43, 47 ]
2111:true[ 2111 ]
2203:true[ 2203 ]
2297:true[ 2297 ]
2393:true[ 2393 ]
2491:false[ 47, 53 ]
2591:true[ 2591 ]

二次互反律中引入勒让德符号:
Lengendre符号L(n/p)=1,当存在整数x满足x的平方模p余n;反之为-1。
gap> IsPrime(593);
true
克罗内克-雅可比符号J(438,593)=-1即同余式x^2≡286(mod563)无解,n=438是模数m2=593的二次非剩余。
设n=0或1(mod4),n非平方数且m>0,则Kronecker符号J(n,m)定义为:
若m整除n,即m|n,则J(n,m)=0,
若n=1(mod8),则J(n,2)=1
若n=5(mod8),则J(n,2)=-1
若m为奇素数且m不整除n,则J(n,m)转化为勒让德符号L(n/m)。
Jacobi符号Jacobi(n,m)=J(n/m)(1837年),n>2且为奇整数,取值范围为{0,1,-1},是勒让德符号的一种推广,但是根据雅可比符号的值不能判断同余式是否有解;勒让德符号L(n/p)在GAP4中的另一种推广Legendre(n,m)=L(n/m)能准确判断二次同余方程x^2≡n(mod m)一定是否有解。
gap> n:=11;;m:=35;;Legendre(n,m);Jacobi(n,m);#9^2 = 11 mod 35
1//准确的判断是否有解
1//雅可比符号的值
gap> n:=-1;;m:=9;;Legendre(n,m);Jacobi(n,m);#x^2 = -1 mod 3,9均无解
-1//准确的判断是否有解
1//雅可比符号的值
gap> n:=2;;m:=3599;;Legendre(n,m);Jacobi(n,m);#x^2 = 2 mod 3599无解
-1//准确的判断是否有解
1//雅可比符号的值
gap> n:=3;;m:=35;;Legendre(n,m);Jacobi(n,m);#x^2 = 3 mod 35无解
-1//准确的判断是否有解
1//雅可比符号的值
gap> n1:=286;;n2:=438;;m1:=563;;m2:=593;;IsPrime(m1);Legendre(n1,m1);Jacobi(n1,m1);IsPrime(m2);Legendre(n2,m2);Jacobi(n2,m2);
true
-1
-1
true
-1
-1
即使当m=p时,GAP4中的这两个符号还是有细微区别的。
gap> M:=[3,5,7,11,13,17];for i in M do Print(Legendre(-3,i));Print(",");Print(Jacobi(-3,i));Print("\n"); od;
[ 3, 5, 7, 11, 13, 17 ]
1,0
-1,-1
1,1
-1,-1
1,1
-1,-1
gap> n:=5;;M:=[3,5,7,11,13,17];;for i in M do Print(Legendre(n,i));Print(",");Print(Jacobi(n,i));Print("\n"); od;
-1,-1
1,0
-1,-1
1,1
-1,-1
-1,-1
gap> n:=-7;;M:=[3,5,7,11,13,17];;for i in M do Print(Legendre(n,i));Print(",");Print(Jacobi(n,i));Print("\n"); od;
-1,-1
-1,-1
1,0
1,1
-1,-1
-1,-1
gap> n:=-11;;M:=[3,5,7,11,13,17];;for i in M do Print(Legendre(n,i));Print(",");Print(Jacobi(n,i));Print("\n"); od;
1,1
1,1
-1,-1
1,0
-1,-1
-1,-1
模m是2或合数的情形:
gap> n:=13;;M:=[2,4,6,8,9,10,12,14,15,16];;for i in M do Print(Legendre(n,i));Print(",");Print(Jacobi(n,i));Print("\n"); od;
1,-1
1,1
1,-1
-1,-1
1,1
-1,1
1,1
-1,1
-1,-1
-1,1
gap> n:=-3;;M:=[2,4,6,8,9,10,12,14,15,16];;for i in M do Print(Legendre(n,i));Print(",");Print(Jacobi(n,i));Print("\n"); od;
1,-1
1,1
1,0
-1,-1
-1,0
-1,1
1,0
1,-1
-1,0
-1,1
gap> m:=8;;for n in [5] do Print("n=");Print(n);Print(",m=8:");Print(Legendre(n,m));Print(",");Print(Jacobi(n,m));Print("\n"); od;
n=5,m=8:-1,-1
gap> m:=5;;for n in [8] do Print("n=");Print(n);Print(",m=5:");Print(Legendre(n,m));Print(",");Print(Jacobi(n,m));Print("\n"); od;
n=8,m=5:-1,-1
http://math.fau.edu/richman/jacobi.htm
5,45都是奇数,该网站求得的雅可比符号值为:
(8/5) = (3/5) = (2/3) = -(1/3) = -1
(11/45) = (1/11) = 1
Not a residue
请输入一个素数 p=5 和一个与它互素的正整数 m=8 :
勒让德符号 (m=8 / p=5 ) 的值为      -1
gap> m:=45;;for n in [1..60] do Print("n=");Print(n);Print(",m=45:");Print(Legendre(n,m));Print(",");Print(Jacobi(n,m));Print("\n"); od;
n=1,m=45:1,1
n=2,m=45:-1,-1
n=3,m=45:-1,0
n=4,m=45:1,1
n=5,m=45:-1,0
n=6,m=45:-1,0
n=7,m=45:-1,-1
n=8,m=45:-1,-1
n=9,m=45:1,0
n=10,m=45:1,0
n=11,m=45:-1,1
n=12,m=45:-1,0
n=13,m=45:-1,-1
n=14,m=45:-1,1
n=15,m=45:-1,0
n=16,m=45:1,1
n=17,m=45:-1,-1
n=18,m=45:-1,0
n=19,m=45:1,1
n=20,m=45:-1,0
n=21,m=45:-1,0
n=22,m=45:-1,-1
n=23,m=45:-1,-1
n=24,m=45:-1,0
n=25,m=45:1,0
n=26,m=45:-1,1
n=27,m=45:-1,0
n=28,m=45:-1,-1
n=29,m=45:-1,1
n=30,m=45:-1,0
n=31,m=45:1,1
n=32,m=45:-1,-1
n=33,m=45:-1,0
n=34,m=45:1,1
n=35,m=45:-1,0
n=36,m=45:1,0
n=37,m=45:-1,-1
n=38,m=45:-1,-1
n=39,m=45:-1,0
n=40,m=45:1,0
n=41,m=45:-1,1
n=42,m=45:-1,0
n=43,m=45:-1,-1
n=44,m=45:-1,1
n=45,m=45:1,0
n=46,m=45:1,1
n=47,m=45:-1,-1
n=48,m=45:-1,0
n=49,m=45:1,1
n=50,m=45:-1,0
n=51,m=45:-1,0
n=52,m=45:-1,-1
n=53,m=45:-1,-1
n=54,m=45:1,0
n=55,m=45:1,0
n=56,m=45:-1,1
n=57,m=45:-1,0
n=58,m=45:-1,-1
n=59,m=45:-1,1
n=60,m=45:-1,0
【二次高斯和、高次高斯和】
高斯研究了g=∑[a=1->p-1](a|p)(ζ_p)^a,ζ_p=e^(2pii/p),
其中(a|p)为勒让德符号,g现在叫作高斯和(在此之前拉格朗日研究过与高斯和类似的数,叫拉格朗日结式)。高斯利用勒让德符号关系(a|p)(b|p)=(ab|p)证明了
g^2=(-1|p)p=p,若p≡1(mod4);-p,若p≡3(mod4)。
于是g=±sqrt((-1|p)p)。进而高斯通过不平凡的努力决定出此式右边的符号恒为正,
即g=sqrt(p)或sqrt(p)i。
http://www.docin.com/p-276938834.html
定义:令p是一个奇素数,ζ_p=e^(2pii/p),则g_a=∑[t=0->p-1](i/p)(ζ_p)^(at)叫做二次高斯和,其中(t|p)是勒让德符号。
命题:g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值