Kontsevich topological recursion¶
Kontsevich topological recursion that computes intersection of psi classes.
EXAMPLES:
sage: from surface_dynamics import KontsevichTR
sage: K = KontsevichTR()
sage: for p in [(4,),(5,0),(4,1),(3,2)]:
....: n = len(p)
....: assert sum(p) == n + 3
....: c = K.F(2, n, p) / prod((2*i + 1).multifactorial(2) for i in p)
....: print(p, c)
(4,) 1/1152
(5, 0) 1/1152
(4, 1) 1/384
(3, 2) 29/5760
- class surface_dynamics.topological_recursion.kontsevich.KontsevichTR[source]¶
Bases:
UniqueRepresentation
,TopologicalRecursion
Topological recursion for intersection of psi classes (Witten’s conjecture)
int_{Mgn} exp(L_i^2/2 psi_i)
EXAMPLES:
sage: from surface_dynamics import KontsevichTR sage: K = KontsevichTR() sage: [K.F(2, 1, (i,)) for i in range(5)] [0, 0, 0, 0, 105/128] sage: K.polynomial(0,3) 1 sage: K.polynomial(0,4) 3*b0 + 3*b1 + 3*b2 + 3*b3 sage: K.polynomial(0,5) 15*b0^2 + 18*b0*b1 + ... sage: K.polynomial(1,1) 1/8*b0 sage: K.polynomial(1,2) 5/8*b0^2 + 3/8*b0*b1 + 5/8*b1^2 sage: K.write(0, 4) [1, 0, 0, 0] 1/2 sage: K.write(0, 5) [2, 0, 0, 0, 0] 1/8 [1, 1, 0, 0, 0] 1/2 sage: K.write(1, 2) [2, 0] 1/192 [1, 1] 1/96 sage: K.write(2, 1) [4] 1/442368
- surface_dynamics.topological_recursion.kontsevich.psi_correlator(*args)[source]¶
Return the integral of psi classes
EXAMPLES:
Examples in genus 0:
sage: from surface_dynamics.topological_recursion.kontsevich import psi_correlator sage: psi_correlator(0,0,0) 1 sage: psi_correlator(1,0,0,0) 1 sage: psi_correlator(2,0,0,0,0) 1 sage: psi_correlator(1,1,0,0,0) 2
Examples in genus 1:
sage: psi_correlator(1) 1/24 sage: psi_correlator(2, 0) 1/24 sage: psi_correlator(1, 1) 1/24 sage: psi_correlator(3, 0, 0) 1/24 sage: psi_correlator(2, 1, 0) 1/12 sage: psi_correlator(1, 1, 1) 1/12
genus 2:
sage: psi_correlator(7) 1/82944 sage: psi_correlator(7, 1) 5/82944 sage: psi_correlator(6, 2) 77/414720 sage: psi_correlator(5, 3) 503/1451520 sage: psi_correlator(4, 4) 607/1451520