如何从有理函数在SageMath中构造同构。

huangapple go评论49阅读模式
英文:

How to construct an isogeny in SageMath from rational functions

问题

I am trying to construct the isogeny described in Example 2.5 of this paper in SageMath, but as far as I can tell (say from this post), there is no way to directly construct an isogeny from its rational maps.

这是我要翻译的部分,代码部分不包括在内。

英文:

I am trying to construct the isogeny described in Example 2.5 of this paper in SageMath, but as far as I can tell (say from this post), there is no way to directly construct an isogeny from its rational maps.

The suggested workaround in the second linked post is to pass the kernel polynomial as a lone parameter into E.isogeny(), but I am getting an error when trying that. Here's a MWE showing the error:

sage: R.<x,y,z,t> = PolynomialRing(GF(43), 4)
sage: E1 = EllipticCurve(y^2 - (x^3 - 14*x^2 - 6*x + 17))
sage: f = (x-37)^2*(x-40)^2
sage: E1.isogeny(f)

and I get an error saying that I have invalid parameters for the isogeny constructor. Where is this error coming from, and how can I construct the isogeny?

答案1

得分: 1

Sage不接受多元多项式作为核多项式。请使用 .univariate_polynomial() 将 f 转换为单变量多项式:

sage: R.<x,y,z,t> = PolynomialRing(GF(43), 4)
E1 = EllipticCurve(y^2 - (x^3 - 14*x^2 - 6*x + 17))
sage: f = (x-37)^2*(x-40)^2
sage: E1.isogeny(f.univariate_polynomial())

然而请注意,该特定多项式并不定义一个同态。

英文:

Sage doesn't accept multivariate polynomials as kernel polynomials. Use .univariate_polynomial() to convert f:

sage: R.&lt;x,y,z,t&gt; = PolynomialRing(GF(43), 4)
E1 = EllipticCurve(y^2 - (x^3 - 14*x^2 - 6*x + 17))
sage: f = (x-37)^2*(x-40)^2
sage: E1.isogeny(f.univariate_polynomial())

Note however that that particular polynomial does not define an isogeny.

huangapple
  • 本文由 发表于 2023年5月22日 05:37:04
  • 转载请务必保留本文链接:https://go.coder-hub.com/76302030.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定