Sage 中的椭圆点
Elliptic points in Sage
我想使用 Sage 找到同余子群 Gamma(N)
、Gamma_1(N)
等的椭圆点。我知道 MAGMA (EllipticPoints(G)
) 中有一个简单的函数,但在 Sage 中找不到类似的东西。有什么建议吗?
Sage 具有函数 Gamma
、Gamma0
、Gamma1
来定义模群的同余子群。
给定这样一个组,方法nu2
和nu3
给出了
该组的 2 阶和 3 阶椭圆点。
sage: G = Gamma0(13)
sage: G.nu2()
2
sage: G.nu3()
2
方法ncusps
、index
、genus
给出了尖点数,
索引,同余组的属。
sage: G.ncusps()
2
sage: G.index()
14
sage: G.genus()
0
您所指的 Magma 文档可能是这样的:
https://magma.maths.usyd.edu.au/magma/handbook/text/1554.
在这种情况下,您需要
上半平面。这是获取它们的方法。
定义函数elliptic_points
如下。
def elliptic_points(G):
F = FareySymbol(G)
P = F.pairings()
if all(n > 0 for n in P):
return []
M = F.pairing_matrices()
ell = []
for k, n in enumerate(P):
if n < 0:
a, b, c, d = list(M[k])
R.<x> = QQbar[]
p = c*x^2 + (d-a)*x - b
for r in p.roots(multiplicities=False):
if r.imag() > 0:
ell.append(r)
return ell
然后下面的作品:
sage: G = Gamma0(13)
sage: ell = elliptic_points(G)
sage: ell
[0.2692307692307693? + 0.06661733875264913?*I,
0.3846153846153846? + 0.07692307692307692?*I,
0.6153846153846154? + 0.07692307692307692?*I,
0.7307692307692308? + 0.06661733875264913?*I]
sage: for p in ell:
....: print p.radical_expression()
....:
1/26*I*sqrt(3) + 7/26
1/13*I + 5/13
1/13*I + 8/13
1/26*I*sqrt(3) + 19/26
我在现有的 Sage 代码中找不到这个函数。
可能值得添加它。
我想使用 Sage 找到同余子群 Gamma(N)
、Gamma_1(N)
等的椭圆点。我知道 MAGMA (EllipticPoints(G)
) 中有一个简单的函数,但在 Sage 中找不到类似的东西。有什么建议吗?
Sage 具有函数 Gamma
、Gamma0
、Gamma1
来定义模群的同余子群。
给定这样一个组,方法nu2
和nu3
给出了
该组的 2 阶和 3 阶椭圆点。
sage: G = Gamma0(13)
sage: G.nu2()
2
sage: G.nu3()
2
方法ncusps
、index
、genus
给出了尖点数,
索引,同余组的属。
sage: G.ncusps()
2
sage: G.index()
14
sage: G.genus()
0
您所指的 Magma 文档可能是这样的: https://magma.maths.usyd.edu.au/magma/handbook/text/1554.
在这种情况下,您需要 上半平面。这是获取它们的方法。
定义函数elliptic_points
如下。
def elliptic_points(G):
F = FareySymbol(G)
P = F.pairings()
if all(n > 0 for n in P):
return []
M = F.pairing_matrices()
ell = []
for k, n in enumerate(P):
if n < 0:
a, b, c, d = list(M[k])
R.<x> = QQbar[]
p = c*x^2 + (d-a)*x - b
for r in p.roots(multiplicities=False):
if r.imag() > 0:
ell.append(r)
return ell
然后下面的作品:
sage: G = Gamma0(13)
sage: ell = elliptic_points(G)
sage: ell
[0.2692307692307693? + 0.06661733875264913?*I,
0.3846153846153846? + 0.07692307692307692?*I,
0.6153846153846154? + 0.07692307692307692?*I,
0.7307692307692308? + 0.06661733875264913?*I]
sage: for p in ell:
....: print p.radical_expression()
....:
1/26*I*sqrt(3) + 7/26
1/13*I + 5/13
1/13*I + 8/13
1/26*I*sqrt(3) + 19/26
我在现有的 Sage 代码中找不到这个函数。 可能值得添加它。