英文:
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.<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())
Note however that that particular polynomial does not define an isogeny.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论