跳到内容
新问题

对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。

单击“注册GitHub”,表示您同意我们的服务条款隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。

已经在GitHub上了?登录到您的帐户

椭圆曲线模符号中的错误 #10236

关闭
克里斯伍特里奇已打开此问题2010年11月8日·19条评论
关闭

椭圆曲线模符号中的错误 #10236

克里斯伍特里奇已打开此问题2010年11月8日·19条评论

评论

@克里斯伍特里奇
复制链接
贡献者

下面的两个计算应该得出相同的答案。首先是圣人中的模块符号

sage:E=椭圆曲线('11a1')sage:m=E.模块符号()鼠尾草:m(1/7)7/10鼠尾草:m(0)1/5

然后使用ec_lib:

sage:m=E.modular_symbol(use_clib=真)鼠尾草:m(1/7)6/5鼠尾草:m(0)1/5

[1/7]的实际值必须为7/10,如下所示

sage:ans=E.anlist(10^5)鼠尾草:twopii=CC(2*pi*i)鼠尾草:s=0鼠尾草:n=1sage:当n<50000时:….:s+=ans[n]/n*exp(twopii*n/7)….:n+=1sage:s.real()/E.period_lattice().basis()[0]0.694799317284868

0处的两个值相等的事实表明,这不太可能是模块符号缩放的问题。


这是另一个错误。也许相同,也许不同。这个看起来像在缩放。但我感到困惑,因为这个例子最初是在缩放函数的设计中使用的。

sage:E=椭圆曲线('121b1')sage:m=E.模块符号()鼠尾草:m(1/7)2sage:m._scaling-2

实际上应该是[1/7]+=1/2。

sage:ans=E.anlist(10^5)鼠尾草:s=0鼠尾草:n=1sage:当n<100000时:s+=ans[n]/n*exp(两个pii*n/7)n+=1....:     sage:s.real()/E.period_lattice().basis()[0]0.484665473298495

这最初由Andrew Ohana报道。

复写的副本:@约翰克雷莫纳 @威廉姆斯坦

组件:椭圆曲线

关键词:模块化符号

作者:克里斯·伍特里奇

审核人:约翰·克雷莫纳

合并:sage-4.6.1α3

从迁移创建的问题https://trac.sagemath.org/ticket/10236

@克里斯伍特里奇
复制链接
贡献者 作者

注释:1

一种猜测可能是我误解了eclib的输出。我假设在ell_modular_symbol.py的第553行中

sage:从sage.libs.cremona.newforms导入ECModularSymbolsage:E=椭圆曲线('11a1')sage:m=EC模块符号(E)鼠尾草:m(1/2)2

意味着2πi\int_{r}^{0}f(z)dz=m(r)*Omega
其中f是模形式,Omega=1.2692是实周期。也许这是不对的。然后应该改进sage.libs.cremona.newforms.pyx中的文档。

@克里斯伍特里奇
复制链接
贡献者 作者

注释:2

第二个bug独立于第一个bug,我在原始实现中发现了错误。我很快就会发布一个补丁来解决这部分问题。

@克里斯伍特里奇
复制链接
贡献者 作者

附件:trac_10236_1.patch.gz

第一个补丁解决了第二个问题。出口4.6

@克里斯伍特里奇
复制链接
贡献者 作者

评论:3

我现在发现了所有的问题。。。都是我的错。对不起!我会很快发布补丁。

@克里斯伍特里奇
复制链接
贡献者 作者

评论:4

在路上我发现了第二个补丁#9476(变更集14823)。我必须恢复这一点。的确,eclib现在有负空格,但newforms.pyx中没有实现负的调用函数。因此,到目前为止,E.modular_symbol(use_clib=True,sign=-1)(r)将计算+模符号。很抱歉我没有看#9476。因此,我还将还原#9247这使得在p-adic L函数中默认选择eclib。

之后我会另外开一张票来换这个。

@克里斯伍特里奇
复制链接
贡献者 作者

附件:trac_10236_2.patch.gz

解决剩余的问题。出口4.6。此修补程序必须在第一个修补程序之后应用。

@克里斯伍特里奇
复制链接
贡献者 作者

作者:克里斯·伍特里奇

@克里斯伍特里奇
复制链接
贡献者 作者

注释:5

在第一个补丁之后应用的第二个补丁将解决票证描述中的这两个问题,并恢复之前介绍的一些错误。

问题是公式中的“/2”。我完全不知道我为什么要把它放在那里。为了检查公式是否正确,我做了以下操作:

sage:rs=平坦([[a在srange(1,m)中的a/m,如果gcd(a,m)==1]在srange(2,20)中的m)sage:表示cremona_curves中的E([11..100]):….:m=E.模块符号(use_clib=假)….:me=E.modular_symbol(use_clib=真)….:对于r in rs:….:如果m(r)!=我(r):….:打印E.标签(),r,m(r),me(r)

很高兴没有任何产出。

因此,这些补丁已准备好进行审查。

@克里斯伍特里奇
复制链接
贡献者 作者

注释:6

关于负模符号的后续信息,请参见#10256.

@约翰克雷莫纳
复制链接
成员

注释:7

我想这其中至少有一部分是我的错,因为我没有同时做所有事情#9476.

我希望在很长时间内有时间复习一下。。。

@克里斯伍特里奇
复制链接
贡献者 作者

注释:8

对不起,ellrational字段中也有要更改的文档字符串。我今天晚些时候会这样做。

@克里斯伍特里奇
复制链接
贡献者 作者

导出4.6后应用于其他两个

@克里斯伍特里奇
复制链接
贡献者 作者

附件:trac_10236_3.patch.gz

附件:trac_10236_4.补丁.gz

在其他三个贴片之后使用

@克里斯伍特里奇
复制链接
贡献者 作者

注释:9

我希望现在我已经找到了。

@约翰克雷莫纳
复制链接
成员

注释:10

补丁看起来很好(注意:最后两个补丁只是修复了旧的错误doctest输出!),可以很好地应用于4.6.1.alpha1。我现在正在测试。

@约翰克雷莫纳
复制链接
成员

审核人:约翰·克雷莫纳

@约翰克雷莫纳
复制链接
成员

评论:11

正在答复@约翰克雷莫纳:

补丁看起来很好(注意:最后两个补丁只是修复了旧的错误doctest输出!),可以很好地应用于4.6.1.alpha1。我现在正在测试。

全部通过!

@jdemeyer公司
复制链接

评论:12

里程碑为4.6.2(如果希望在4.6.1中合并此里程碑,请相应更改里程碑)

@jdemeyer公司
复制链接

合并:圣母-4.6.1.α3

免费注册 在GitHub上加入此对话.已经有账户了吗?登录以发表评论
项目
还没有
开发

没有分支或拉请求

3名参与者