CoCalc Public Filesquestions / 2016-08-30-average-root-number-cremona.sagewsOpen with one click!
Authors: Wei Ho, Nathan Kaplan, William A. Stein, Jamie Weigandt
Views : 41
Compute Environment: Ubuntu 18.04 (Deprecated)

The question:

" why is our root number graph so choppy looking?"

makes me very suspicious and wonder about the same graph over Cremona's data... so let's do that.

%auto db = CremonaDatabase()

Here we take all curves in Cremona's tables up to conductor 350K, including all curves in each isogeny class.

(Note: I'm using the parity of the rank to compute the root number, since I didn't easily see the root number in the database...)

%time %python v = [] s = 0.0 n = 0 for N in range(10000): for lbl, c in db.allcurves(N).iteritems(): s += (1 if (c[1]%2==0) else -1) n += 1 v.append(s/n) v = stats.TimeSeries(v) v.plot()
CPU time: 5.53 s, Wall time: 12.48 s
# Log scale base = 1.2 w = [[i,v[int(base^i)]] for i in range(1,round(floor(log(len(v),base))))] show(line(w) + points(w,pointsize=30,color='grey'), ymin=-.1)
v[0]
1.0
%time %python v = [] s = 0.0 n = 0 for N in range(350000): for lbl, c in db.allcurves(N).iteritems(): s += (1 if (c[1]%2==0) else -1) n += 1 v.append(s/n) v = stats.TimeSeries(v)
CPU time: 116.69 s, Wall time: 116.74 s
# the beginning: v[:100].plot()
# yes there really are that many curves of rank 0 at the beginning! len(list(cremona_curves(range(11,37))))
76
v[:1000].plot()
v[:10000].plot()
# The full data up to 350K on a linear scale. v.plot(ymin=-.2)

Now the same on a log scale, except using a smaller base than 10 since our data only goes up to 350K...

base = 1.2 w = [[i,v[int(base^i)]] for i in range(1,round(floor(log(len(v),base))))] line(w) + points(w,pointsize=30,color='grey')

Well that is disturbingly different than the picture in our paper...