summaryrefslogtreecommitdiffstats
path: root/divers
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2012-10-26 16:14:42 (GMT)
committerDavid A. Madore <david+git@madore.org>2012-10-26 16:14:42 (GMT)
commitc98afa04341862b7fec54a5bf677cedaba831fde (patch)
tree04bdf53e936582c960d68f483a10b4fc16a90eb7 /divers
parent8b2f0fd949c235af04c9997e8480f26ed41e112f (diff)
downloadgalois-c98afa04341862b7fec54a5bf677cedaba831fde.zip
galois-c98afa04341862b7fec54a5bf677cedaba831fde.tar.gz
galois-c98afa04341862b7fec54a5bf677cedaba831fde.tar.bz2
sageries: R├ęsolution de quintiques r├ęsolubles.
Diffstat (limited to 'divers')
-rw-r--r--divers/sageries/exemple-quintique-resoluble29
-rw-r--r--divers/sageries/exemple-quintique-resoluble-227
2 files changed, 56 insertions, 0 deletions
diff --git a/divers/sageries/exemple-quintique-resoluble b/divers/sageries/exemple-quintique-resoluble
new file mode 100644
index 0000000..8cfb4a5
--- /dev/null
+++ b/divers/sageries/exemple-quintique-resoluble
@@ -0,0 +1,29 @@
+R.<z4,z3,z2,z1,z0,y4,y3,y2,y1,y0,v1,u1,v0,u0,x,zeta5,sqrtm10m2sqrt5,sqrtm10p2sqrt5,sqrt5,sqrtm2> = PolynomialRing(QQ,['z4','z3','z2','z1','z0','y4','y3','y2','y1','y0','v1','u1','v0','u0','x','zeta5','sqrtm10m2sqrt5','sqrtm10p2sqrt5','sqrt5','sqrtm2'],order='degrevlex(5),degrevlex(5),degrevlex(4),lex(6)')
+Izeta = R.ideal(sum([zeta5^i for i in range(5)]))
+Ifullnum = R.ideal([zeta5 - 1/8*sqrtm10p2sqrt5*sqrt5 - 1/8*sqrtm10p2sqrt5 - 1/4*sqrt5 + 1/4, sqrtm10m2sqrt5 - 1/2*sqrtm10p2sqrt5*sqrt5 - 1/2*sqrtm10p2sqrt5, sqrtm10p2sqrt5^2 - 2*sqrt5 + 10, sqrt5^2 - 5])
+
+f = x^5 - 5*x + 12
+elt = SymmetricFunctionAlgebra(QQ, basis='elementary')
+sigma1 = elt([1]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigma2 = elt([2]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigma3 = elt([3]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigma4 = elt([4]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigma5 = elt([5]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigmas = [1,sigma1,sigma2,sigma3,sigma4,sigma5]
+rootrels = [sigmas[i] - (-1)^i * f.coefficient({x:f.degree()-i}) for i in range(1,len(sigmas))]
+Idecomp = R.ideal(rootrels)
+zs = [z0,z1,z2,z3,z4]
+ys = [y0,y1,y2,y3,y4]
+symp = sum([zs[i]^2 * (zs[(i+1)%5]*zs[(i+4)%5] + zs[(i+2)%5]*zs[(i+3)%5]) for i in range(5)])
+symq = sum([zs[i] * zs[(i+1)%5] for i in range(5)])
+Idecp = (Idecomp + R.ideal(symp-40))
+Idecq = (Idecomp + R.ideal(symq+5))
+lagrange = [sum([zs[i]*zeta5^((i*j)%5) for i in range(5)]) for j in range(5)]
+Iresolv0 = Izeta + Idecq + R.ideal([ys[i]-lagrange[i] for i in range(5)])
+B0 = Iresolv0.groebner_basis()
+Iresolv1 = R.ideal(B0) + R.ideal([u0 - (y1^5+y4^5), u1 - (y1^5-y4^5), v0 - (y2^5+y3^5), v1 - (y2^5-y3^5)])
+B1 = Iresolv1.groebner_basis()
+Iresolv = R.ideal(B1) + Ifullnum
+B = Iresolv.groebner_basis()
+Iresolv2 = R.ideal(B) + R.ideal(sqrtm2 - (sqrt5*(z0*z2^3 + z1*z3^3 + z2*z4^3 + z3*z0^3 + z4*z1^3 - 5)/50))
+B2 = Iresolv2.groebner_basis()
diff --git a/divers/sageries/exemple-quintique-resoluble-2 b/divers/sageries/exemple-quintique-resoluble-2
new file mode 100644
index 0000000..e8ed7e1
--- /dev/null
+++ b/divers/sageries/exemple-quintique-resoluble-2
@@ -0,0 +1,27 @@
+R.<z4,z3,z2,z1,z0,y4,y3,y2,y1,y0,x,zeta5,sqrtm10m2sqrt5,sqrtm10p2sqrt5,sqrt5,rt5of2> = PolynomialRing(QQ,['z4','z3','z2','z1','z0','y4','y3','y2','y1','y0','x','zeta5','sqrtm10m2sqrt5','sqrtm10p2sqrt5','sqrt5','rt5of2'],order='degrevlex(5),degrevlex(5),lex(6)')
+Izeta = R.ideal(sum([zeta5^i for i in range(5)]))
+Ifullnum = R.ideal([zeta5 - 1/8*sqrtm10p2sqrt5*sqrt5 - 1/8*sqrtm10p2sqrt5 - 1/4*sqrt5 + 1/4, sqrtm10m2sqrt5 - 1/2*sqrtm10p2sqrt5*sqrt5 - 1/2*sqrtm10p2sqrt5, sqrtm10p2sqrt5^2 - 2*sqrt5 + 10, sqrt5^2 - 5])
+
+f = x^5 + 100*x^2 + 1000
+elt = SymmetricFunctionAlgebra(QQ, basis='elementary')
+sigma1 = elt([1]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigma2 = elt([2]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigma3 = elt([3]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigma4 = elt([4]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigma5 = elt([5]).expand(5).subs(x0=z0,x1=z1,x2=z2,x3=z3,x4=z4)
+sigmas = [1,sigma1,sigma2,sigma3,sigma4,sigma5]
+rootrels = [sigmas[i] - (-1)^i * f.coefficient({x:f.degree()-i}) for i in range(1,len(sigmas))]
+Idecomp = R.ideal(rootrels)
+zs = [z0,z1,z2,z3,z4]
+ys = [y0,y1,y2,y3,y4]
+symp = sum([zs[i]^2 * (zs[(i+1)%5]*zs[(i+4)%5] + zs[(i+2)%5]*zs[(i+3)%5]) for i in range(5)])
+symq = sum([zs[i] * zs[(i+1)%5] for i in range(5)])
+Idecp = Idecomp + R.ideal(symp-2000)
+Idecq = Izeta + Idecp + R.ideal(symq-20*(2*(1 + zeta5 + zeta5^4) - 1))
+lagrange = [sum([zs[i]*zeta5^((i*j)%5) for i in range(5)]) for j in range(5)]
+Iresolv0 = Izeta + Idecq + R.ideal([ys[i]-lagrange[i] for i in range(5)]) + R.ideal([y0, y1^2*y3 - 1000, y1*y3^3 + 5000, y2^5 + 400000, y2*y4^2 + 1000, y1*y4 - 100, y3^2*y4 + 500, y2*y3 + 100, y3*y4^3 + 5000, y4^5 + 50000, y1^5 + 200000, y1^3*y2 - 20000, y3^5 - 25000, y2^3*y4 - 20000, y1*y2^2 + 2000])
+B0 = Iresolv0.groebner_basis()
+Iresolv = R.ideal(B0) + Ifullnum
+B = Iresolv.groebner_basis()
+Iresolv2 = R.ideal(B) + R.ideal(rt5of2 + y1/10)
+B2 = Iresolv2.groebner_basis()