第一级模数形式¶
计算 \(\Delta\)¶
模块化形式
\[\Delta = q\prod(1-q^n)^{24} = \sum \tau(n)q^n\]
可能是世界上最著名的模块化形式。我们从这个定义中计算出一些术语。
sage: R.<q> = QQ[[]]
sage: q * prod( 1-q^n+O(q^6) for n in (1..5) )^24
q - 24*q^2 + 252*q^3 - 1472*q^4 + 4830*q^5 - 6048*q^6 + O(q^7)
有更好的方法来计算 \(\Delta\) ,这相当于只需几次多项式乘法 \(\ZZ\) 。
sage: D = delta_qexp(10^5) # less than 10 seconds
sage: D[:10]
q - 24*q^2 + 252*q^3 - 1472*q^4 + ...
sage: [p for p in primes(10^5) if D[p] % p == 0]
[2, 3, 5, 7, 2411]
sage: D[2411]
4542041100095889012
sage: f = eisenstein_series_qexp(12,6) - D[:6]; f
691/65520 + 2073*q^2 + 176896*q^3 + 4197825*q^4 + 48823296*q^5 + O(q^6)
sage: f % 691
O(q^6)
维克多·米勒基数¶
维克多·米勒的基础 \(M_k(\mathrm{SL}_2(\ZZ))\) 是减排梯队的基础。这是一个引理,它有所有的整数系数,并且有一个相当好的对角形状。
sage: victor_miller_basis(24, 6)
[
1 + 52416000*q^3 + 39007332000*q^4 + 6609020221440*q^5 + O(q^6),
q + 195660*q^3 + 12080128*q^4 + 44656110*q^5 + O(q^6),
q^2 - 48*q^3 + 1080*q^4 - 15040*q^5 + O(q^6)
]
sage: from sage.modular.dims import dimension_modular_forms
sage: dimension_modular_forms(1,200)
17
sage: B = victor_miller_basis(200, 18) #5 seconds
sage: B
[
1 + 79288314420681734048660707200000*q^17 + O(q^18),
q + 2687602718106772837928968846869*q^17 + O(q^18),
...
q^16 + 96*q^17 + O(q^18)
]
注:Craig Citro已经使上述计算在代码中快了一个数量级,他还没有完全理解Sage。
“我会清理它们并很快提交它们,因为我正在做的事情需要它们……我目前正在将第一级子类的模块化形式的空间作为现有代码,并且实际上利用了我们所有的快速 \(E_k\) 和 \(\Delta\) 计算代码,以及清理一些东西。