csage.server.notebook.notebook
Notebook
q)q}q(U_Notebook__worksheetsq}q(Utalkq(csage.server.notebook.worksheet
Worksheet
qoq}q (U_Worksheet__filenameq
UtalkqU_Worksheet__cellsq]q
((csage.server.notebook.cell
Cell
qoq}q(U _Cell__inqU%hide%html
INTERFACES
qU_Cell__introspect_htmlqU!qU_Cell__worksheetqhU_Cell__completionsqU_Cell__introspectqU_Cell__out_htmlqU U _Cell__idqKU_Cell__is_htmlqU_before_preparseqUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/7")
%hide%html
INTERFACES
qU
_Cell__dirqU%sage_notebook/worksheets/talk/cells/7qU
_Cell__outqUD
INTERFACES
q Uhas_new_outputq!U_Cell__versionq"KU_Cell__sageq#csage.interfaces.sage0
reduce_load_Sage
q$)Rq%U_Cell__typeq&Uwrapq'U_Cell__timeq(U_Cell__interruptedq)ub(hoq*}q+(hUf = maxima('1/(x^3-17)'); fq,hU!q-hhhhhU hK hhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/0")
f = maxima('1/(x^3-17)'); fq.hU%sage_notebook/worksheets/talk/cells/0q/hU
1/(x^3 - 17)
q0h!h"Kh#h%h&h'h(h)ub(hoq1}q2(hU#f = maxima('1/(x^3-17)'); f
show(f)q3hU!q4hhhhhU hKhhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/1")
f = maxima('1/(x^3-17)'); f
show(f)q5hU%sage_notebook/worksheets/talk/cells/1q6hU>
\frac{1}{x^3-17}
q7h!h"Kh#h%h&h'h(h)ub(hoq8}q9(hU9f = maxima('1/(x^3-17)'); f
print type(f)
print parent(f)q:hU!q;hhhhhU hKhhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/2")
f = maxima('1/(x^3-17)'); f
print type(f)
print parent(f)q
Maxima
q>h!h"Kh#h%h&h'h(h)ub(hoq?}q@(hU4f = maxima('1/(x^3-17)'); f
g = f.integrate('x'); gqAhU!qBhhhhhU hKhhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/4")
f = maxima('1/(x^3-17)'); f
g = f.integrate('x'); gqChU%sage_notebook/worksheets/talk/cells/4qDhU
-log(x^2 + 17^(1/3)*x + 17^(2/3))/(6*17^(2/3)) - atan((2*x + 17^(1/3))/(sqrt(3)*17^(1/3)))/(sqrt(3)*17^(2/3)) + log(x - 17^(1/3))/(3*17^(2/3))
qEh!h"Kh#h%h&h'h(h)ub(hoqF}qG(hU8f = maxima('1/(x^3-17)'); f
g = f.integrate('x')
show(g)qHhU!qIhhhhhU hKhhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/5")
f = maxima('1/(x^3-17)'); f
g = f.integrate('x')
show(g)qJhU%sage_notebook/worksheets/talk/cells/5qKhT9
-\frac{\log \left(x^2+17^{\frac{1}{3}} x+17^{\frac{2}{3}}\right)}{6 17^{\frac{2}{3}}}-\frac{\tan^{-1} \left(\frac{2 x+17^{\frac{1}{3}}}{ \sqrt{3} 17^{\frac{1}{3}}}\right)}{\sqrt{3} 17^{\frac{2}{3}}}+\frac{ \log \left(x-17^{\frac{1}{3}}\right)}{3 17^{\frac{2}{3}}}
qLh!h"Kh#h%h&h'h(h)ub(hoqM}qN(hU:A = gp('[a,b,c;d,e,f;g,h,i]')
print type(A)
print A^(-1)qOhU!qPhhhhhU hKhhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/6")
A = gp('[a,b,c;d,e,f;g,h,i]')
print type(A)
print A^(-1)qQhU%sage_notebook/worksheets/talk/cells/6qRhTs
[(i*e - h*f)/((i*e - h*f)*a + ((-i*d + g*f)*b + (h*d - g*e)*c)), (-i*b + h*c)/((i*e - h*f)*a + ((-i*d + g*f)*b + (h*d - g*e)*c)), (f*b - e*c)/((i*e - h*f)*a + ((-i*d + g*f)*b + (h*d - g*e)*c)); (-i*d + g*f)/((i*e - h*f)*a + ((-i*d + g*f)*b + (h*d - g*e)*c)), (i*a - g*c)/((i*e - h*f)*a + ((-i*d + g*f)*b + (h*d - g*e)*c)), (-f*a + d*c)/((i*e - h*f)*a + ((-i*d + g*f)*b + (h*d - g*e)*c)); (h*d - g*e)/((i*e - h*f)*a + ((-i*d + g*f)*b + (h*d - g*e)*c)), (-h*a + g*b)/((i*e - h*f)*a + ((-i*d + g*f)*b + (h*d - g*e)*c)), (e*a - d*b)/((i*e - h*f)*a + ((-i*d + g*f)*b + (h*d - g*e)*c))]
qSh!h"K h#h%h&h'h(h)ub(hoqT}qU(hU7A = octave('rand(5)')
print A
print "-"*50
print A^(-1)qVhU!qWhhhhhU hK hhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/9")
A = octave('rand(5)')
print A
print "-"*50
print A^(-1)qXhU%sage_notebook/worksheets/talk/cells/9qYhT
0.606882 0.407053 0.374677 0.33873 0.0553781
0.804416 0.643066 0.249212 0.668254 0.362118
0.262804 0.731762 0.85011 0.987666 0.461414
0.502698 0.38873 0.383876 0.557125 0.487106
0.908636 0.721689 0.283123 0.25374 0.158238
--------------------------------------------------
2.06233 0.111601 -1.20343 1.01368 -0.588433
-3.29794 0.283076 1.39619 -2.02494 2.66857
2.05289 -2.93651 0.348355 1.52787 0.282525
1.39214 2.93408 0.143896 -1.60482 -2.68113
-2.70653 -1.38272 -0.31137 3.25421 1.32151
qZh!h"Kh#h%h&h'h(h)ub(hoq[}q\(hU,v = octave('[1:1:10]')
print v
print v.fft()q]U_Cell__introspect_htmlq^U!q_hhhU_Cell__introspectq`hU hKU_Cell__is_htmlqaU_before_preparseqbUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/11")
v = octave('[1:1:10]')
print v
print v.fft()qchU&sage_notebook/worksheets/talk/cells/11qdhU
(55,0) (-5,15.3884) (-5,6.88191) (-5,3.63271) (-5,1.6246) (-5,4.44089e-16) (-5,-1.6246) (-5,-3.63271) (-5,-6.88191) (-5,-15.3884)
qeh!h"KU_Cell__sageqfh%h&h'U_Cell__timeqgh)ub(hoqh}qi(U _Cell__inqjU%hide%html
NATIVE CODE
qkh^U!qlU_Cell__worksheetqmhU_Cell__completionsqnh`U_Cell__out_htmlqoU U _Cell__idqpKhahbUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/14")
%hide%html
NATIVE CODE
qqU
_Cell__dirqrU&sage_notebook/worksheets/talk/cells/14qsU
_Cell__outqtUE
NATIVE CODE
quUhas_new_outputqvU_Cell__versionqwKhfh%U_Cell__typeqxh'hgU_Cell__interruptedqyub(hoqz}q{(hjUtime n=factorial(10^6)q|h^U!q}hmhhnh`hoU hpKhahbUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/15")
__SAGE_t__=cputime()
__SAGE_w__=walltime()
n=factorial(10^6)q~hrU&sage_notebook/worksheets/talk/cells/15qhtU+
CPU time: 3.00 s, Wall time: 3.14 s
qhvhwKhfh%hxh'hghyub(hoq}q(hjUQf = ZZ['x'](range(10^4))
print f.degree()
t = cputime()
g = f^3
print cputime(t)qh^U!qhmhhnh`hoU hpKhahbUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/17")
f = ZZ['x'](range(10^4))
print f.degree()
t = cputime()
g = f^3
print cputime(t)qhrU&sage_notebook/worksheets/talk/cells/17qhtU
9999
0.75
qhvhwKhfh%hxh'hghyub(hoq}q(hjUpf = ZZ['x'](range(10^4))
h = maple(str(f))
t = walltime()
z = (h*h).expand()
print "Maple time: ", walltime(t)
qh^U!qhmhhnh`hoU hpKhahbT7 os.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/19")
f = ZZ['x'](range(10^4))
h = maple(str(f))
t = walltime()
z = (h*h).expand()
print "Maple time: ", walltime(t)
h = mathematica(str(f))
t = walltime()
z = (h*h).Expand()
print "Mathematica time: ", walltime(t)qhrU&sage_notebook/worksheets/talk/cells/19qhtU
Maple time: 5.84448409081qhvhwKhfNhxh'hghyub(hoq}q(hjU%hide%html
PYREX
qU_Cell__introspect_htmlqU!qhpKhnh`hoU hmhU_Cell__is_htmlqU_before_preparseqU~os.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/23")
%hide%html
PYREX
qhrU&sage_notebook/worksheets/talk/cells/23qhtU?
PYREX
qhvhwKU_Cell__sageqh%hxUwrapqhghyub(hoq}q(U _Cell__inqUUdef is2pow_1(n):
while n != 0 and n%2 == 0:
n = n >> 1
return n == 1qhU!qU_Cell__worksheetqhU_Cell__completionsqU_Cell__introspectqU_Cell__out_htmlqU U _Cell__idqKhhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/27")
def is2pow_1(n):
while n != 0 and n%2 == 0:
n = n >> 1
return n == 1qU
_Cell__dirqU&sage_notebook/worksheets/talk/cells/27qU
_Cell__outqU
qUhas_new_outputqU_Cell__versionqKhh%U_Cell__typeqhU_Cell__timeqU_Cell__interruptedqub(hoq}q(hU,time [n for n in range(10^5) if is2pow_1(n)]qhU!qhhhhhU hKhhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/26")
__SAGE_t__=cputime()
__SAGE_w__=walltime()
[n for n in range(10^5) if is2pow_1(n)]qhU&sage_notebook/worksheets/talk/cells/26qhU
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536]
CPU time: 13.55 s, Wall time: 25.68 s
qhhKhh%hhhhub(hoq}q(hjUj%pyrex
def is2pow_2(unsigned int n):
while n != 0 and n%2 == 0:
n = n >> 1
return n == 1qhU!qhmhhnhhoUT_sage7.cqhpKhhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/24")
%pyrex
def is2pow_2(unsigned int n):
while n != 0 and n%2 == 0:
n = n >> 1
return n == 1qhrU&sage_notebook/worksheets/talk/cells/24qhtU
qhvhwKhh%hxhhhyub(hoq}q(hU,time [n for n in range(10^5) if is2pow_2(n)]qhU!qhhhhhU hKhhUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/talk/cells/25")
__SAGE_t__=cputime()
__SAGE_w__=walltime()
[n for n in range(10^5) if is2pow_2(n)]qhU&sage_notebook/worksheets/talk/cells/25qhU
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536]
CPU time: 0.05 s, Wall time: 0.06 s
qhhKhh%hhhhub(hoq}q(hU hhhhU hKhU&sage_notebook/worksheets/talk/cells/28qhU hhK hhhubeU_Worksheet__synchroqKcU_Worksheet__nameqUtalkqU_Worksheet__dirqUsage_notebook/worksheets/talkqU_Worksheet__attachedq}qU_Worksheet__queueq]qU_Worksheet__next_idqKU_Worksheet__passcryptq҈U_Worksheet__comp_is_runningqӉU_Worksheet__saltqU1161275078.682094qU_Worksheet__notebookqhU_Worksheet__idqK U_Worksheet__next_block_idqKU_Worksheet__systemqNU_Worksheet__passcodeqU
11G3BJNEUV/PkqubUblankq(hoq}q(U_Worksheet__filenameqUblankqU_Worksheet__cellsq]q((hoq}q(U _Cell__inqUhg_sageqU_Cell__introspect_htmlqU!qU_Cell__worksheetqhU_Cell__completionsqU_Cell__introspectqU_Cell__out_htmlqU U _Cell__idqM hwKU_before_preparseqUlos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/blank/cells/1")
hg_sageqU
_Cell__dirqU&sage_notebook/worksheets/blank/cells/1qU
_Cell__outqU
Status of modified or unknown files:
cd "/Volumes/HOME/s/devel/sage" && hg status
M sage/server/notebook/cell.py
---
Branch: main
Hg repository 'SAGE Library Source Code' in directory /Volumes/HOME/s/devel/sage
qUhas_new_outputqU_Cell__is_htmlqU_Cell__sageqh%U_Cell__typeqh'U_Cell__timeqU_Cell__interruptedqub(hoq}q(hjUBhg_sage.ci(comment='Get rid of stripping blanks in output cells.')qh^U!qhmhhnh`hoU hpM hahbUos.chdir("/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/worksheets/blank/cells/17")
hg_sage.ci(comment='Get rid of stripping blanks in output cells.')qhrU'sage_notebook/worksheets/blank/cells/17qhtUh
cd "/Volumes/HOME/s/devel/sage" && hg commit -m "Get rid of stripping blanks in output cells."
r hvhwKhfh%hxh'hghyub(hor }r (U _Cell__inr U]show(plot(sin,-2,3,thickness=5,alpha=0.2)+\
plot(cos,-2,3, alpha=0.7, rgbcolor=(1,0,0)))r hU!r U_Cell__worksheetr hU_Cell__completionsr hU_Cell__out_htmlr U>r U _Cell__idr
M hUos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/8")
show(plot(sin,-2,3,thickness=5,alpha=0.2)+ plot(cos,-2,3, alpha=0.7, rgbcolor=(1,0,0)))r U
_Cell__dirr U&sage_notebook/worksheets/blank/cells/8r
U
_Cell__outr U Uhas_new_outputr hhh%U_Cell__typer Uwrapr hU_Cell__interruptedr ub(hor }r (j Ua = 10r hU!r j hj hj U j
M hU]os.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/2")
a = 10r j U&sage_notebook/worksheets/blank/cells/2r j U j hhh%j j hj ub(hor }r (j Ua^3 + a - 1r hU!r j hj hj U j
M hUbos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/3")
a^3 + a - 1r j U&sage_notebook/worksheets/blank/cells/3r j U1009r j hhh%j j hj ub(hor }r! (j UK = NumberField(x^3 + 2)r" hU!r# j hj hj U j
M hUoos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/4")
K = NumberField(x^3 + 2)r$ j U&sage_notebook/worksheets/blank/cells/4r% j U j hhh%j j hj ub(hor& }r' (j UKhU!r( j hj hj U j
M hUXos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/5")
Kr) j U&sage_notebook/worksheets/blank/cells/5r* j U2Number Field in a with defining polynomial x^3 + 2r+ j hhh%j j hj ub(hor, }r- (j U+%gp
e = ellinit([1,2,3,4,5]);
elltors(e)
r. hU!r/ j hj hj U j
M hUos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/9")
%gp
e = ellinit([1,2,3,4,5]);
elltors(e)r0 j U&sage_notebook/worksheets/blank/cells/9r1 j U[1, [], []]r2 j hhh%j j hj ub(hor3 }r4 (j U%gp
ellglobalred(e)r5 hU!r6 j hj hj U j
M hUjos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/6")
%gp
ellglobalred(e)r7 j U&sage_notebook/worksheets/blank/cells/6r8 j U[10351, [1, -1, 0, -1], 1]r9 j hhh%j j hj ub(hor: }r; (j U.k = gp('nfinit(%s)'%(K.defining_polynomial()))r< hU!r= j hj hj U j
M
U_word_being_completedr> UK.definr? hUos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/10")
k = gp('nfinit(%s)'%(K.defining_polynomial()))r@ j U'sage_notebook/worksheets/blank/cells/10rA j U j hhh%j j hj ub(horB }rC (j UkhU!rD j hj hj U j
M hUYos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/11")
krE j U'sage_notebook/worksheets/blank/cells/11rF j T [x^3 + 2, [1, 1], -108, 1, [[1, -1.259921049894873164767210607, 1.587401051968199474751705639; 1, 0.6299605249474365823836053036 - 1.091123635971721403560072614*I, -0.7937005259840997373758528196 - 1.374729636998602626383479197*I], [1, -1.259921049894873164767210607, 1.587401051968199474751705639; 1, -0.4611631110242848211764673106, -2.168430162982702363759332016; 1, 1.721084160919157985943677918, 0.5810291110145028890076263773], 0, [3, 0, 0; 0, 0, -6; 0, -6, 0], [6, 0, 0; 0, 6, 0; 0, 0, 3], [-2, 0, 0; 0, 0, 1; 0, 1, 0], [2, [0, 0, -2; 1, 0, 0; 0, 1, 0]]], [-1.259921049894873164767210607, 0.6299605249474365823836053036 - 1.091123635971721403560072614*I], [1, x, x^2], [1, 0, 0; 0, 1, 0; 0, 0, 1], [1, 0, 0, 0, 0, -2, 0, -2, 0; 0, 1, 0, 1, 0, 0, 0, 0, -2; 0, 0, 1, 0, 1, 0, 1, 0, 0]]rG j hhh%j j hj ub(horH }rI (j UR. = PolynomialRing(K)rJ hU!rK j hj hj U j
M j> Uk.nfrL hUqos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/12")
R. = PolynomialRing(K)rM j U'sage_notebook/worksheets/blank/cells/12rN j U j hhh%j j hj ub(horO }rP (j URhU!rQ j hj hj U j
M
hUYos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/13")
RrR j U'sage_notebook/worksheets/blank/cells/13rS j UWUnivariate Polynomial Ring in t over Number Field in a with defining polynomial x^3 + 2rT j hhh%j j hj ub(horU }rV (j U
factor(t^3-2)rW hU!rX j hj hj U j
M hUeos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/14")
factor(t^3-2)rY j U'sage_notebook/worksheets/blank/cells/14rZ j U(t + a) * (t^2 + (-a)*t + a^2)r[ j hhh%j j hj ub(hor\ }r] (j UKhU!r^ j hj hj U j
M hUYos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/15")
Kr_ j U'sage_notebook/worksheets/blank/cells/15r` j U2Number Field in a with defining polynomial x^3 + 2ra j hhh%j j hj ub(horb }rc (j U j hj j U j
M j U'sage_notebook/worksheets/blank/cells/16rd j U j j j j ubeU_Worksheet__synchrore K U_Worksheet__comp_is_runningrf U_Worksheet__dirrg Usage_notebook/worksheets/blankrh U_Worksheet__attachedri }rj U_Worksheet__queuerk ]rl U_Worksheet__next_idrm M h҈U_Worksheet__namern Ublankro hU1161274882.020710rp U_Worksheet__notebookrq hU_Worksheet__idrr KU_Worksheet__next_block_idrs KU_Worksheet__systemrt NhU
11G3BJNEUV/Pkru ubuU_Notebook__historyrv ]rw (U# Worksheet 'bsd' (2006-08-27 at 19:58)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: GE = plot(E, rgbcolor=(1,0,.5), thickness=2)
sage: show(GE)
rx U# Worksheet 'bsd' (2006-08-27 at 19:58)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: GE = plot(E, rgbcolor=(1,0,1), thickness=2)
sage: show(GE)
ry U# Worksheet 'bsd' (2006-08-27 at 19:58)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: GE = plot(E, rgbcolor=(1,0,1), thickness=3)
sage: show(GE)
rz U# Worksheet 'bsd' (2006-08-27 at 19:58)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: GE = plot(E, rgbcolor=(1,0,1), thickness=3)
sage: show(GE)
r{ U# Worksheet 'bsd' (2006-08-27 at 19:59)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: GE = plot(E, rgbcolor=(1,0,1), thickness=3)
sage: show(GE,dpi=125)
r| U# Worksheet 'bsd' (2006-08-27 at 19:59)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: GE = plot(E, rgbcolor=(1,0,1), thickness=3)
sage: show(GE,dpi=150)
r} T) # Worksheet 'bsd' (2006-08-27 at 19:59)
sage: G = plot(E, thickness=.6, rgbcolor=(1,0,1))
sage: Q = P
sage: n = 100
sage: for i in range(n):
... Q = Q + P
... if abs(Q[0]) < 3 and abs(Q[1]) < 5:
... G += point(Q,rgbcolor=(1,0,0),pointsize=10+float(i)*100/n)
...
sage: show(G,dpi=150)
r~ T1 # Worksheet 'bsd' (2006-08-27 at 19:59)
sage: G = plot(E, xmax=5, thickness=.6, rgbcolor=(1,0,1))
sage: Q = P
sage: n = 100
sage: for i in range(n):
... Q = Q + P
... if abs(Q[0]) < 3 and abs(Q[1]) < 5:
... G += point(Q,rgbcolor=(1,0,0),pointsize=10+float(i)*100/n)
...
sage: show(G,dpi=150)
r T) # Worksheet 'bsd' (2006-08-27 at 20:00)
sage: G = plot(E, thickness=.6, rgbcolor=(1,0,1))
sage: Q = P
sage: n = 100
sage: for i in range(n):
... Q = Q + P
... if abs(Q[0]) < 3 and abs(Q[1]) < 5:
... G += point(Q,rgbcolor=(1,0,0),pointsize=10+float(i)*100/n)
...
sage: show(G,dpi=150)
r U# Worksheet 'bsd' (2006-08-27 at 20:05)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: GE = plot(E, rgbcolor=(1,0,1), thickness=3)
sage: show(GE,dpi=150)
r T # Worksheet 'bsd' (2006-08-27 at 22:29)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2 - 10x - 20
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html>
hide%html> Question: How often does each possibility occur? (Conjecture: 50% each.)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2 - 10x - 20
has only finitely many rational points!
Question: Is there an a priori way to tell which type
of elliptic curve we are dealing with?
...r T # Worksheet 'bsd' (2006-08-27 at 22:29)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html>
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2 - 10x - 20
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html>
hide%html> Question: How often does each possibility occur? (Conjecture: 50% each.)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2 - 10x - 20
has only finitely many rational points!
Question: Is there an a priori way to tell which type
of elliptic curve we a...r T # Worksheet 'bsd' (2006-08-27 at 22:30)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html>
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2 - 10x - 20
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html>
hide%html> Question: How often does each possibility occur? (Conjecture: 50% each.)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2 - 10x - 20
has only finitely many rational points!
Question: Is there an a priori way to tell which type
of elliptic curve ...r T$ # Worksheet 'bsd' (2006-08-27 at 22:30)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html>
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2 - 10x - 20
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html>
hide%html> Question: How often does each possibility occur? (Conjecture: 50% each.)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2 - 10x - 20
has only finitely many rational points!
Question: Is there an a priori way to tell which type
of elliptic cu...r T( # Worksheet 'bsd' (2006-08-27 at 22:30)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html>
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2 - 10x - 20
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html>
hide%html> Question: How often does each possibility occur? (Conjecture: 50% each.)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2 - 10x - 20
has only finitely many rational points!
Question: Is there an a priori way to tell which type
of ellipti...r T( # Worksheet 'bsd' (2006-08-27 at 22:30)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html>
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2 - 10x - 20
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each.)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2 - 10x - 20
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of ellip...r T # Worksheet 'bsd' (2006-08-27 at 22:31)
sage: # Tally up the number of points
sage: E = EllipticCurve([0,0,1,-1,0])
sage: print '.'*40
sage: print '%10s%-3s%10s%10s'%('','p','Number of Points', 'p+1-N_p')
sage: for p in primes(200):
... print '%10s%-10s%-10s%-10s'%('',p,E.Np(p))
........................................
p Number of Points p+1-N_p
Traceback (most recent call last):
for p in primes(200):
File "/Volumes/HOME/talks/2006-08-28-musa/", line 2, in ?
TypeError: not enough arguments for format stringr T # Worksheet 'bsd' (2006-08-27 at 22:31)
sage: # Tally up the number of points
sage: E = EllipticCurve([0,0,1,-1,0])
sage: print '.'*40
sage: print '%10s%-3s%10s%10s'%('','p','Number of Points', 'p+1-N_p')
sage: for p in primes(200):
... print '%10s%-10s%-10s%-10s'%('',p,E.Np(p),E.ap(p))
........................................
p Number of Points p+1-N_p
2 5 -2
3 7 -3
5 8 -2
7 9 -1
11 17 -5
13 16 -2
17 18 0
19 20 0
23 22 2
...r T # Worksheet 'bsd' (2006-08-27 at 22:31)
sage: # Tally up the number of points
sage: E = EllipticCurve([0,0,1,-1,0])
sage: print '.'*40
sage: print '%10s%-3s%10s%10s'%('','p','N_p', 'p+1-N_p')
sage: for p in primes(200):
... print '%10s%-10s%-10s%-10s'%('',p,E.Np(p),E.ap(p))
........................................
p N_p p+1-N_p
2 5 -2
3 7 -3
5 8 -2
7 9 -1
11 17 -5
13 16 -2
17 18 0
19 20 0
23 22 2
...r T # Worksheet 'bsd' (2006-08-27 at 22:31)
sage: # Tally up the number of points
sage: E = EllipticCurve([0,0,1,-1,0])
sage: print '.'*40
sage: print '%10s%-2s%10s%10s'%('','p','N_p', 'p+1-N_p')
sage: for p in primes(200):
... print '%10s%-10s%-10s%-10s'%('',p,E.Np(p),E.ap(p))
........................................
p N_p p+1-N_p
2 5 -2
3 7 -3
5 8 -2
7 9 -1
11 17 -5
13 16 -2
17 18 0
19 20 0
23 22 2
...r T # Worksheet 'bsd' (2006-08-27 at 22:31)
sage: # Tally up the number of points
sage: E = EllipticCurve([0,0,1,-1,0])
sage: print '.'*40
sage: print '%10s%-2s%10s%12s'%('','p','N_p', 'p+1-N_p')
sage: for p in primes(200):
... print '%10s%-10s%-10s%-10s'%('',p,E.Np(p),E.ap(p))
........................................
p N_p p+1-N_p
2 5 -2
3 7 -3
5 8 -2
7 9 -1
11 17 -5
13 16 -2
17 18 0
19 20 0
23 22 2
...r T # Worksheet 'bsd' (2006-08-27 at 22:31)
sage: # Tally up the number of points
sage: E = EllipticCurve([0,0,1,-1,0])
sage: print '.'*40
sage: print '%10s%-2s%10s%13s'%('','p','N_p', 'p+1-N_p')
sage: for p in primes(200):
... print '%10s%-10s%-10s%-10s'%('',p,E.Np(p),E.ap(p))
........................................
p N_p p+1-N_p
2 5 -2
3 7 -3
5 8 -2
7 9 -1
11 17 -5
13 16 -2
17 18 0
19 20 0
23 22 2
...r T # Worksheet 'bsd' (2006-08-27 at 22:34)
sage: # Tally up the number of points (including point at infinity)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: print '.'*40
sage: print '%10s%-2s%10s%13s'%('','p','N_p', 'p+1-N_p')
sage: for p in primes(200):
... print '%10s%-10s%-10s%-10s'%('',p,E.Np(p),E.ap(p))
........................................
p N_p p+1-N_p
2 5 -2
3 7 -3
5 8 -2
7 9 -1
11 17 -5
13 16 -2
17 18 0
19 20 0
23 22 2
...r U# Worksheet 'bsd' (2006-08-27 at 22:39)
sage: # ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
sage: # Laurent Clozel, Nicholas Shepherd-Barron
sage: # -- THE SATO-TATE C
r T= # Worksheet 'bsd' (2006-08-27 at 22:46)
sage: # ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
sage: # Laurent Clozel, Nicholas Shepherd-Barron
sage: # -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
sage: #%auto
sage: def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
sage: def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
sage: def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
sage: def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
sage: C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1.01, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
sage: G = graph_ellcurve(E,50,num=10000)
sage: show(C + G)
Traceback (most recent call last):
...
ValueError: Unable to compute f(-1.00906990181)r T # Worksheet 'bsd' (2006-08-27 at 22:46)
sage: # ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
sage: # Laurent Clozel, Nicholas Shepherd-Barron
sage: # -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
sage: #%auto
sage: def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
sage: def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
sage: def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
sage: def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
sage: C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
sage: G = graph_ellcurve(E,50,num=10000)
sage: show(C + G)
r T # Worksheet 'bsd' (2006-08-27 at 22:47)
sage: # ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
sage: # Laurent Clozel, Nicholas Shepherd-Barron
sage: # -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
sage: #%auto
sage: def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
sage: def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
sage: def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
sage: def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
sage: C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
sage: G = graph_ellcurve(E,50,num=10000)
sage: show(C + G, xmin=0)
r TU # Worksheet 'bsd' (2006-08-27 at 22:47)
hide%html>
hide%html> DEFINITION: The L-series of E
hide%html> is
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> where
hide%html>
hide%html> a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
hide%html>
hide%html>
DEFINITION: The L-series of E
is
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
where
a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
r T # Worksheet 'bsd' (2006-08-27 at 22:47)
sage: # ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
sage: # Laurent Clozel, Nicholas Shepherd-Barron
sage: # -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
sage: #%auto
sage: def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
sage: def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
sage: def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
sage: def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
sage: C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
sage: G = graph_ellcurve(E,50,num=10000)
sage: show(C + G, ymin=0)
r T # Worksheet 'bsd' (2006-08-27 at 22:47)
sage: # ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
sage: # Laurent Clozel, Nicholas Shepherd-Barron
sage: # -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
sage: #%auto
sage: def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
sage: def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
sage: def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
sage: def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
sage: C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
sage: G = graph_ellcurve(E,50,num=10000)
sage: show(C + G, ymin=0, figsize=[5,10])
r T # Worksheet 'bsd' (2006-08-27 at 22:47)
sage: # ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
sage: # Laurent Clozel, Nicholas Shepherd-Barron
sage: # -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
sage: #%auto
sage: def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
sage: def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
sage: def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
sage: def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
sage: C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
sage: G = graph_ellcurve(E,50,num=10000)
sage: show(C + G, ymin=0, figsize=[10,5])
r T # Worksheet 'bsd' (2006-08-27 at 22:48)
sage: # ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
sage: # Laurent Clozel, Nicholas Shepherd-Barron
sage: # -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
sage: #%auto
sage: def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
sage: def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
sage: def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
sage: def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
sage: C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
sage: G = graph_ellcurve(E,50,num=50000)
sage: show(C + G, ymin=0, figsize=[8,4])
r T # Worksheet 'bsd' (2006-08-27 at 22:48)
hide> print "ASIDE -- big recent theorem of Richard Taylor, Michael Harris, "
hide> print "Laurent Clozel, Nicholas Shepherd-Barron "
hide> print " -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases)."
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
Laurent Clozel, Nicholas Shepherd-Barron
-- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).r T # Worksheet 'bsd' (2006-08-27 at 22:48)
hide> print "ASIDE -- big recent theorem of Richard Taylor, Michael Harris, "
hide> print "Laurent Clozel, Nicholas Shepherd-Barron "
hide> print " -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases)."
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
Laurent Clozel, Nicholas Shepherd-Barron
-- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).r T # Worksheet 'bsd' (2006-08-27 at 22:49)
hide> print "ASIDE -- big recent theorem of Richard Taylor, Michael Harris, "
hide> print "Laurent Clozel, Nicholas Shepherd-Barron "
hide> print " -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases)."
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
Laurent Clozel, Nicholas Shepherd-Barron
-- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).r T # Worksheet 'bsd' (2006-08-27 at 22:49)
hide> print "ASIDE -- big recent theorem of Richard Taylor, Michael Harris, "
hide> print "Laurent Clozel, Nicholas Shepherd-Barron "
hide> print " -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
"
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
Laurent Clozel, Nicholas Shepherd-Barron
-- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
r T # Worksheet 'bsd' (2006-08-27 at 22:49)
hide> print "ASIDE -- big recent theorem of Richard Taylor, Michael Harris, "
hide> print "Laurent Clozel, Nicholas Shepherd-Barron "
hide> print " -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases)."
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
Laurent Clozel, Nicholas Shepherd-Barron
-- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).r T+ # Worksheet 'bsd' (2006-08-27 at 22:50)
hide%html> The L-function of an elliptic curve is an analytic (or holomorphic)
hide%html> function on C defined by counting points modulo primes:
hide%html>
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> We now count some points! It's not too hard.
hide%html>
T
The L-function of an elliptic curve is an analytic (or holomorphic)
function on C defined by counting points modulo primes:
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
We now count some points! It's not too hard.
Tr T # Worksheet 'bsd' (2006-08-27 at 22:51)
hide%html> The L-function of an elliptic curve is an analytic (or holomorphic)
hide%html> function on C defined by counting points modulo primes:
hide%html>
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> We now count some points!
hide%html>
The L-function of an elliptic curve is an analytic (or holomorphic)
function on C defined by counting points modulo primes:
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
We now count some points!
r T # Worksheet 'bsd' (2006-08-27 at 22:51)
hide%html> The L-function of an elliptic curve is an analytic (or holomorphic)
hide%html> function on C defined by counting points modulo primes:
hide%html>
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> We now count some points...
hide%html>
The L-function of an elliptic curve is an analytic (or holomorphic)
function on C defined by counting points modulo primes:
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
We now count some points...
r TJ # Worksheet 'bsd' (2006-08-27 at 22:52)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.5,.4,.7), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('grey', color=(.9,.9,.9))
sage: t.plane((0,0,0),(0,0,1),'grey')
sage: t.cylinder((0,0,0),(1,0,0),.01,'black')
sage: t.cylinder((0,0,0),(0,1,0),.01,'black')
sage: n=50
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .01, 'r%s'%i)
...
...
sage: t.save()
Traceback (most recent call last):
...
NameError: name 'L' is not definedr Tb # Worksheet 'bsd' (2006-08-27 at 22:53)
sage: # Compute the L-series in SAGE
sage: E = EllipticCurve([0,0,1,-1,0])
sage: L = E.Lseries_dokchitser(10)
sage: print L
sage: plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, plot_division=0, thickness=2).show()
Dokchitser L-function associated to Elliptic Curve defined by y^2 + y = x^3 - x over Rational Fieldr T # Worksheet 'bsd' (2006-08-27 at 22:53)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.5,.4,.7), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('grey', color=(.9,.9,.9))
sage: t.plane((0,0,0),(0,0,1),'grey')
sage: t.cylinder((0,0,0),(1,0,0),.01,'black')
sage: t.cylinder((0,0,0),(0,1,0),.01,'black')
sage: n=50
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .01, 'r%s'%i)
...
...
sage: t.save()
r T # Worksheet 'bsd' (2006-08-27 at 22:54)
hide> print "ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
"
hide> print "Laurent Clozel, Nicholas Shepherd-Barron
"
hide> print " -- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
"
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
Laurent Clozel, Nicholas Shepherd-Barron
-- THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
r T # Worksheet 'bsd' (2006-08-27 at 22:54)
hide> print "ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
"
hide> print "Laurent Clozel, Nicholas Shepherd-Barron
"
hide> print " THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
"
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
Laurent Clozel, Nicholas Shepherd-Barron
THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
r T # Worksheet 'bsd' (2006-08-27 at 22:56)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.5,.4,.7), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('grey', color=(.9,.9,.9))
sage: t.plane((0,0,0),(0,0,1),'grey')
sage: t.cylinder((0,0,0),(1,0,0),.01,'black')
sage: t.cylinder((0,0,0),(0,1,0),.01,'black')
sage: n=1000
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .01, 'r%s'%i)
...
...
sage: t.save()
r T# # Worksheet '_scratch_' (2006-08-27 at 22:56)
slide> An {\dred elliptic curve} $E$ over $\mathbf{Q}$
slide> is a smooth projective curve defined by an equation
slide> $$
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
slide> $$
slide> with $a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}$.
r T # Worksheet 'bsd' (2006-08-27 at 22:57)
html>
html> An elliptic curve $E$ over $\mathbf{Q}$
html> is a smooth projective curve defined by an equation
html> $$
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
html> $$
html> with $a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}$.
html>
An elliptic curve $E$ over $\mathbf{Q}$
is a smooth projective curve defined by an equation
$$
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
$$
with $a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}$.
r T # Worksheet 'bsd' (2006-08-27 at 22:58)
html>
html> An elliptic curve
html> E
html> over
html> \mathbf{Q}
html> is a smooth projective curve defined by an equation
html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
html>
html> with
html>
html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}
html>
html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}
r T& # Worksheet 'bsd' (2006-08-27 at 22:58)
html>
html> An elliptic curve
html> E
html> over
html> \mathbf{Q}
html> is a smooth projective curve defined by an equation
html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
html>
html> with
html>
html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}
html>
html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}
r T( # Worksheet 'bsd' (2006-08-27 at 22:58)
html>
html> An elliptic curve
html> E
html> over
html> \mathbf{Q}
html> is a smooth projective curve defined by an equation
html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
html>
html> with
html>
html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
html>
html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
r T@ # Worksheet 'bsd' (2006-08-27 at 22:59)
html>
html> An elliptic curve
html> E
html> over
html> \mathbf{Q}
html> is a smooth projective curve defined by an equation
html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
html>
html> with
html>
html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
html>
html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
r T> # Worksheet 'bsd' (2006-08-27 at 22:59)
html>
html> An elliptic curve
html> E
html> over
html> \mathbf{Q}
html> is a smooth projective curve defined by an equation
html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
html>
html> with
html>
html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
html>
html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
r T> # Worksheet 'bsd' (2006-08-27 at 22:59)
html>
html> An elliptic curve
html> E
html> over
html> \mathbf{Q}
html> is a smooth projective curve defined by an equation
html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
html>
html> with
html>
html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
html>
html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
r T> # Worksheet 'bsd' (2006-08-27 at 22:59)
html>
html> An elliptic curve
html> E
html> over
html> \mathbf{Q}
html> is a smooth projective curve defined by an equation
html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
html>
html> with
html>
html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
html>
html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
r T` # Worksheet 'bsd' (2006-08-27 at 22:59)
html>
html> An elliptic curve
html> E
html> over
html> \mathbf{Q}
html> is a smooth projective curve defined by an equation
html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
html>
html> with
html>
html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
html>
html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
r T # Worksheet 'bsd' (2006-08-27 at 23:00)
hide%html>
hide%html> An elliptic curve
hide%html> E
hide%html> over
hide%html> \mathbf{Q}
hide%html> is a smooth projective curve defined by an equation
hide%html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
hide%html>
hide%html> with
hide%html>
hide%html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
hide%html>
hide%html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
r UN# Worksheet '_scratch_' (2006-08-27 at 23:01)
sage: arg(-2)
3.1415926535897931r UD# Worksheet '_scratch_' (2006-08-27 at 23:02)
sage: arg(-2)>=pi
Truer T # Worksheet 'bsd' (2006-08-27 at 23:02)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('grey', color=(.9,.9,.9))
sage: t.plane((0,0,0),(0,0,1),'grey')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=10
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.save()
r T # Worksheet 'bsd' (2006-08-27 at 23:03)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('grey', color=(.9,.9,.9))
sage: t.plane((0,0,0),(0,0,1),'grey')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=100
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.save()
r T # Worksheet 'bsd' (2006-08-27 at 23:03)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('grey', color=(.9,.9,.9))
sage: t.plane((0,0,0),(0,0,1),'grey')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=100
sage: for i in range(n):
... x = random()/2+.8; y = 0 #y = random()/2 - .25
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.save()
r TH # Worksheet 'bsd' (2006-08-27 at 23:04)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('grey', color=(.9,.9,.9))
sage: t.plane((0,0,-10),(0,0,1),'grey')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=100
sage: for i in range(n):
... x = random()/2+.8; y = 0 #y = random()/2 - .25
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.save()
Traceback (most recent call last):
...
gen.PariError: (8)r T # Worksheet 'bsd' (2006-08-27 at 23:04)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('grey', color=(.9,.9,.9))
sage: t.plane((0,0,-10),(0,0,1),'grey')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=100
sage: for i in range(n):
... x = random()/2+.8; y = 0 #y = random()/2 - .25
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.save()
r TG # Worksheet 'bsd' (2006-08-27 at 23:05)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('white', color=(1,1,1))
sage: t.plane((0,0,-10),(0,0,1),'white')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=100
sage: for i in range(n):
... x = random()/2+.8; y = 0 #y = random()/2 - .25
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.save()
Traceback (most recent call last):
...
gen.PariError: (8)r Tz # Worksheet 'bsd' (2006-08-27 at 23:05)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('white', color=(1,1,1))
sage: t.plane((0,0,-10),(0,0,1),'white')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=100
sage: for i in range(n):
... x = random()/2+.8; y = 0 #y = random()/2 - .25
... try:
... z = L(x+I*y)
... except:
... continue
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.save()
Traceback (most recent call last):
...
gen.PariError: (8)r TT # Worksheet 'bsd' (2006-08-27 at 23:05)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('white', color=(1,1,1))
sage: t.plane((0,0,-10),(0,0,1),'white')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=100
sage: for i in range(n):
... x = random()/2+.8; y = 0 #y = random()/2 - .25
... try:
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... except:
... continue
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.save()
r TM # Worksheet 'bsd' (2006-08-27 at 23:06)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('white', color=(1,1,1))
sage: t.plane((0,0,-10),(0,0,1),'white')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=100
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... try:
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... except:
... continue
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.save()
r Tb # Worksheet 'bsd' (2006-08-27 at 23:06)
sage: # Compute the L-series in SAGE
sage: E = EllipticCurve([0,0,1,-1,0])
sage: L = E.Lseries_dokchitser(10)
sage: print L
sage: plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, plot_division=0, thickness=2).show()
Dokchitser L-function associated to Elliptic Curve defined by y^2 + y = x^3 - x over Rational Fieldr T # Worksheet 'bsd' (2006-08-27 at 23:07)
hide%html>
hide%html> Conjecture (Birch and Swinnerton-Dyer): The order of vanishing of
hide%html> L(E,s) at s=1 equals
hide%html> the rank of E.
hide%html>
hide%html>
hide%html>
hide%html> This is a theorem when the order of vanishing is \leq 1.
hide%html>
hide%html>
hide%html> There is also a conjecture about the first nonzero coefficient
hide%html> of the Taylor expansion of L(E,s)
hide%html> about s=1.
hide%html>
Conjecture (Birch and Swinnerton-Dyer): The order of vanishing of
L(E,s) at s=1 equals
the rank of E.
This is a theorem when the order of vanishing is \leq 1.
There is also a conjecture about the first nonzero coefficient
of the Taylor expansion of ...r TN # Worksheet 'bsd' (2006-08-27 at 23:09)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=4)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('white', color=(1,1,1))
sage: t.plane((0,0,-10),(0,0,1),'white')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=1000
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... try:
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r >= pi:
... r -= pi
... m *= -1
... except:
... continue
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.show()
r UJ# Worksheet '_scratch_' (2006-08-27 at 23:09)
sage: arg(-2+.1*I)>=pi
Falser US# Worksheet '_scratch_' (2006-08-27 at 23:09)
sage: arg(-2+.1*I)
3.0916342578678506r UJ# Worksheet '_scratch_' (2006-08-27 at 23:09)
sage: arg(-2+.1*I)>=pi
Falser US# Worksheet '_scratch_' (2006-08-27 at 23:10)
sage: arg(-2+.1*I)
3.0916342578678506r UU# Worksheet '_scratch_' (2006-08-27 at 23:10)
sage: arg(-2+.001*I)
3.1410926536314601r UL# Worksheet '_scratch_' (2006-08-27 at 23:10)
sage: arg(-2+.001*I)>=pi
Falser UU# Worksheet '_scratch_' (2006-08-27 at 23:10)
sage: arg(-2+.001*I)
3.1410926536314601r UX# Worksheet '_scratch_' (2006-08-27 at 23:10)
sage: arg(2+.001*I)
0.00049999995833333955r UX# Worksheet '_scratch_' (2006-08-27 at 23:10)
sage: arg(2+.001*I)
0.00049999995833333955r UX# Worksheet '_scratch_' (2006-08-27 at 23:10)
sage: arg(2+.001*I)
0.00049999995833333955r UU# Worksheet '_scratch_' (2006-08-27 at 23:10)
sage: arg(-2+.001*I)
3.1410926536314601r UV# Worksheet '_scratch_' (2006-08-27 at 23:11)
sage: arg(-2-.001*I)
-3.1410926536314601r UY# Worksheet '_scratch_' (2006-08-27 at 23:11)
sage: arg(2-.001*I)
-0.00049999995833333955r UY# Worksheet '_scratch_' (2006-08-27 at 23:11)
sage: arg(2-.001*I)
-0.00049999995833333955r UW# Worksheet '_scratch_' (2006-08-27 at 23:11)
sage: arg(-(2-.001*I))
3.1410926536314601r U\# Worksheet '_scratch_' (2006-08-27 at 23:11)
sage: arg(2-.001*I) + pi
3.1410926536314596r TM # Worksheet 'bsd' (2006-08-27 at 23:13)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=2)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('white', color=(1,1,1))
sage: t.plane((0,0,-10),(0,0,1),'white')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=1000
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... try:
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)
... if r < 0 :
... r += pi
... m *= -1
... except:
... continue
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .009, 'r%s'%i)
...
...
sage: t.show()
r Uw# Worksheet '_scratch_' (2006-08-27 at 23:14)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: L = E.Lseries_dokchitser(10)
r UV# Worksheet '_scratch_' (2006-08-27 at 23:14)
sage: L(1-0.1*I)
-0.0018635 - 0.030731*Ir UV# Worksheet '_scratch_' (2006-08-27 at 23:14)
sage: L(1+0.1*I)
-0.0018635 + 0.030731*Ir U_# Worksheet '_scratch_' (2006-08-27 at 23:14)
sage: z1 = L(1-0.1*I); z1
-0.0018635 - 0.030731*Ir U_# Worksheet '_scratch_' (2006-08-27 at 23:14)
sage: z2 = L(1+0.1*I); z2
-0.0018635 + 0.030731*Ir UX# Worksheet '_scratch_' (2006-08-27 at 23:15)
sage: abs(z1), arg(z1)
(0.030792, -1.6309)r UW# Worksheet '_scratch_' (2006-08-27 at 23:15)
sage: abs(z2), arg(z2)
(0.030792, 1.6309)r T # Worksheet 'bsd' (2006-08-27 at 23:17)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=2)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('white', color=(1,1,1))
sage: t.plane((0,0,-10),(0,0,1),'white')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=1000
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... try:
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)+pi
... except:
... continue
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .009, 'r%s'%i)
...
...
sage: t.show()
r T
# Worksheet 'bsd' (2006-08-28 at 00:00)
sage: t = Tachyon(xres=800, yres=600, camera_center=(1.2,.4,.4), look_at=(1,0,0), raydepth=2)
sage: t.light((10,3,2), 1, (1,1,1))
sage: t.light((10,-3,2), 1, (1,1,1))
sage: t.texture('black', color=(0,0,0))
sage: t.texture('red', color=(1,0,0))
sage: t.texture('white', color=(1,1,1))
sage: t.plane((0,0,-10),(0,0,1),'white')
sage: t.cylinder((0,0,0),(1,0,0),.001,'black')
sage: t.cylinder((0,0,0),(0,1,0),.001,'black')
sage: n=10000
sage: for i in range(n):
... x = random()/2+.8; y = random()/2 - .25
... try:
... z = L(x+I*y)
... m = abs(z)
... r = arg(z)+pi
... except:
... continue
... t.texture('r%s'%i,color=(r/7,r,0))
... t.sphere((x,-y,m), .005, 'r%s'%i)
...
...
sage: t.show()
r Tt # Worksheet 'bsd' (2006-08-28 at 07:39)
hide%html>
hide%html> An elliptic curve
hide%html> E
hide%html> over
hide%html> \mathbf{Q}
hide%html> is a smooth projective curve defined by an equation
hide%html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
hide%html>
hide%html> with
hide%html>
hide%html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
hide%html>
hide%html> EXAMPLE:
hide%html>
hide%html> y^2 + y = x^3 - x,
hide%html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
EXAMPLE:
y^2 + y = x^3 - x,...r T # Worksheet 'bsd' (2006-08-28 at 07:40)
hide%html>
hide%html> An elliptic curve
hide%html> E
hide%html> over
hide%html> \mathbf{Q}
hide%html> is a smooth projective curve defined by an equation
hide%html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
hide%html>
hide%html> with
hide%html>
hide%html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
hide%html>
hide%html> EXAMPLE:
hide%html>
hide%html>
hide%html> y^2 + y = x^3 - x,
hide%html>
hide%html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
EXAMPLE:
y^2 + y = x^3 ...r T # Worksheet 'bsd' (2006-08-28 at 07:41)
hide%html>
hide%html> An elliptic curve
hide%html> E
hide%html> over
hide%html> \mathbf{Q}
hide%html> is a smooth projective curve defined by an equation
hide%html>
... y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
...
hide%html>
hide%html> with
hide%html>
hide%html> a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
hide%html>
hide%html> EXAMPLE:
hide%html>
hide%html>
hide%html> y^2 + y = x^3 - x,
hide%html>
hide%html>
An elliptic curve
E
over
\mathbf{Q}
is a smooth projective curve defined by an equation
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6,
with
a_1,a_2,a_3,a_4,a_6 \in \mathbf{Q}.
EXAMPLE:
y^2 + y = x^3 ...r U# Worksheet '_scratch_' (2006-08-28 at 07:43)
sage: EC('37b')
Traceback (most recent call last):
...
NameError: name 'EC' is not definedr U# Worksheet '_scratch_' (2006-08-28 at 07:43)
sage: EllipticCurve('37b')
Elliptic Curve defined by y^2 + y = x^3 + x^2 - 23*x - 50 over Rational Fieldr Un# Worksheet '_scratch_' (2006-08-28 at 07:43)
sage: latex(EllipticCurve('37b'))
y^2 + y = x^3 + x^2 - 23x - 50r T( # Worksheet 'bsd' (2006-08-28 at 07:43)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html>
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 + x^2 - 23x - 50
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each.)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 + x^2 - 23x - 50
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of ellip...r Ud# Worksheet '_scratch_' (2006-08-28 at 07:43)
sage: latex(EllipticCurve('11a3'))
y^2 + y = x^3 - x^2r TB # Worksheet 'bsd' (2006-08-28 at 07:44)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html>
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each -- See Bektemirov,Mazur,Stein,Watkins)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of elliptic curve w...r T: # Worksheet 'bsd' (2006-08-28 at 07:44)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html>
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each -- See Bektemirov,Mazur,Stein,Watkins)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of elliptic curve we are de...r T
# Worksheet 'bsd' (2006-08-28 at 07:45)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each -- See Bektemirov,Mazur,Stein,Watkins)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of elliptic curve we are dealing with?
<...r T
# Worksheet 'bsd' (2006-08-28 at 07:45)
hide%html> Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html>
hide%html> y^2 + y = x^3 - x^2
hide%html>
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each -- See Bektemirov, Mazur, Stein, Watkins)
hide%html>
Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of elliptic curve we are dealing with?
<...r T # Worksheet 'bsd' (2006-08-28 at 07:45)
hide%html> A Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x^2
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each -- See Bektemirov, Mazur, Stein, Watkins)
hide%html>
A Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of elliptic curve we are dealing with?
Question 2: How often does each ...r T # Worksheet 'bsd' (2006-08-28 at 07:45)
hide%html> A Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x^2
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each -- See Bektemirov, Mazur, Stein, Watkins)
hide%html>
A Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of elliptic curve we are dealing with?
Question 2: How often does each possibil...r T # Worksheet 'bsd' (2006-08-28 at 07:46)
hide%html> A Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x^2
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each -- See Bektemirov, Mazur, Stein, Watkins)
hide%html>
A Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of elliptic curve we are dealing with?
Question 2: How often does each possibility oc...r T # Worksheet 'bsd' (2006-08-28 at 07:46)
hide%html>
hide%html> A Sharp Contrast:
hide%html>
hide%html>
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x
hide%html> has infinitely many rational points.
hide%html> -
hide%html> The elliptic curve
hide%html> y^2 + y = x^3 - x^2
hide%html> has only finitely many rational points!
hide%html>
hide%html>
hide%html> Question 1: Is there an a priori way to tell which type
hide%html> of elliptic curve we are dealing with?
hide%html>
hide%html> Question 2: How often does each possibility occur? (Conjecture: 50% each -- See Bektemirov, Mazur, Stein, Watkins)
hide%html>
hide%html>
A Sharp Contrast:
-
The elliptic curve
y^2 + y = x^3 - x
has infinitely many rational points.
-
The elliptic curve
y^2 + y = x^3 - x^2
has only finitely many rational points!
Question 1: Is there an a priori way to tell which type
of elliptic curve we are dealing with?
Question 2: How often do...r TS # Worksheet 'bsd' (2006-08-28 at 07:47)
hide%html>
hide%html> The L-function of an elliptic curve is an analytic (or holomorphic)
hide%html> function on C defined by counting points modulo primes:
hide%html>
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> We now count some points...
hide%html>
hide%html>
The L-function of an elliptic curve is an analytic (or holomorphic)
function on C defined by counting points modulo primes:
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
We now count some points...
r T # Worksheet 'bsd' (2006-08-28 at 07:47)
hide%html>
hide%html> The L-function
... of an elliptic curve is an analytic (or holomorphic)
...
hide%html> function on C defined by counting points modulo primes:
hide%html>
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> We now count some points...
hide%html>
hide%html>
The L-function
of an elliptic curve is an analytic (or holomorphic)
function on C defined by counting points modulo primes:
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
We now count some points...
r T; # Worksheet 'bsd' (2006-08-28 at 07:48)
hide%html>
hide%html> The L-function
... of an elliptic curve is an analytic (or holomorphic)
...
hide%html> function on C defined by counting points modulo primes:
hide%html>
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> Formally:
hide%html> L(E,1) = \prod_{p} \left(\frac{p}{\#E(\mathbf{F}_p)}\right).
hide%html>
hide%html>
hide%html>
The L-function
of an elliptic curve is an analytic (or holomorphic)
function on C defined by counting points modulo primes:
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
Formally:
L(E,1) = \prod_{p} \left(\frac{p}{\#E(\mathbf{F}_p)}\right).
r T! # Worksheet 'bsd' (2006-08-28 at 07:48)
hide%html>
hide%html> The L-function
... of an elliptic curve is an analytic (or holomorphic)
...
hide%html> function on C defined by counting points modulo primes:
hide%html>
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> Formally:
hide%html> L(E,1) = \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
hide%html>
hide%html>
hide%html>
The L-function
of an elliptic curve is an analytic (or holomorphic)
function on C defined by counting points modulo primes:
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
Formally:
L(E,1) = \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
r T # Worksheet 'bsd' (2006-08-28 at 07:49)
sage: # Some Pictures of Counting Points
sage: E = EllipticCurve([0,0,1,-1,0])
sage: G = [plot(E.change_ring(GF(p)), pointsize=30, rgbcolor=(1,0,0))\
... for p in primes(42) if p!=37]
...
sage: show(graphics_array(G,4,3),fontsize=4)
r T # Worksheet 'bsd' (2006-08-28 at 07:50)
sage: # Tally up the number of points (including point at infinity)
sage: E = EllipticCurve([0,0,1,-1,0])
sage: print '.'*40
sage: print '%10s%-2s%10s%13s'%('','p','N_p', 'p+1-N_p')
sage: for p in primes(1000):
... print '%10s%-10s%-10s%-10s'%('',p,E.Np(p),E.ap(p))
........................................
p N_p p+1-N_p
2 5 -2
3 7 -3
5 8 -2
7 9 -1
11 17 -5
13 16 -2
17 18 0
19 20 0
23 22 2
...r TF # Worksheet 'bsd' (2006-08-28 at 07:51)
hide> print """
hide>
hide> ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
hide> Laurent Clozel, Nicholas Shepherd-Barron
hide> THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
hide> """
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Richard Taylor, Michael Harris,
Laurent Clozel, Nicholas Shepherd-Barron
THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
r T> # Worksheet 'bsd' (2006-08-28 at 07:52)
hide> print """
hide>
hide> ASIDE -- big recent theorem of Taylor, Harris,
hide> Clozel, Shepherd-Barron
hide> THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
hide> """
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), \
... (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) \
... if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, \
... plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Taylor, Harris,
Clozel, Shepherd-Barron
THE SATO-TATE CONJECTURE is a theorem (in a wide range of cases).
r TD # Worksheet 'bsd' (2006-08-28 at 07:52)
hide> print """
hide>
hide> ASIDE -- big recent theorem of Taylor, Harris,
hide> Clozel, Shepherd-Barron
hide> THE SATO-TATE CONJECTURE is a theorem
(in a wide range of cases).
hide> """
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), \
... (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) \
... if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, \
... plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Taylor, Harris,
Clozel, Shepherd-Barron
THE SATO-TATE CONJECTURE is a theorem
(in a wide range of cases).
r TE # Worksheet 'bsd' (2006-08-28 at 07:53)
hide> print """
hide>
hide> ASIDE -- big recent theorem of Taylor, Harris,
hide> Clozel, Shepherd-Barron
hide> THE SATO-TATE CONJECTURE is a theorem
hide> (in a wide range of cases).
hide> """
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), \
... (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) \
... if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, \
... plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Taylor, Harris,
Clozel, Shepherd-Barron
THE SATO-TATE CONJECTURE is a theorem
(in a wide range of cases).
r T. # Worksheet 'bsd' (2006-08-28 at 07:54)
hide> print """
hide>
hide> ASIDE -- big recent theorem of Taylor, Harris,
hide> Clozel, Shepherd-Barron
hide>
hide> THE SATO-TATE CONJECTURE is a theorem
hide> (in a wide range of cases).
hide> """
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), \
... (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) \
... if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, \
... plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, figsize=[8,4])
ASIDE -- big recent theorem of Taylor, Harris,
Clozel, Shepherd-Barron
THE SATO-TATE CONJECTURE is a theorem
(in a wide range of cases).
r T8 # Worksheet 'bsd' (2006-08-28 at 07:54)
hide> print """
hide>
hide> ASIDE -- big recent theorem of Taylor, Harris,
hide> Clozel, Shepherd-Barron
hide>
hide> THE SATO-TATE CONJECTURE is a theorem
hide> (in a wide range of cases).
hide> """
hide> #%auto
hide> def dist(v, b, left=float(0), right=float(pi)):
... """
... We divide the interval between left (default: 0) and
... right (default: pi) up into b bins.
...
... For each number in v (which must left and right),
... we find which bin it lies in and add this to a counter.
... This function then returns the bins and the number of
... elements of v that lie in each one.
... ALGORITHM: To find the index of the bin that a given
... number x lies in, we multiply x by b/length and take the
... floor.
... """
... length = right - left
... normalize = float(b/length)
... vals = {}
... d = dict([(i,0) for i in range(b)])
... for x in v:
... n = int(normalize*(float(x)-left))
... d[n] += 1
... return d, len(v)
...
hide> def graph(d, b, num=5000, left=float(0), right=float(pi)):
... s = Graphics()
... left = float(left); right = float(right)
... length = right - left
... w = length/b
... k = 0
... for i, n in d.iteritems():
... k += n
... # ith bin has n objects in it.
... s += polygon([(w*i+left,0), (w*(i+1)+left,0), \
... (w*(i+1)+left, n/(num*w)), \
... (w*i+left, n/(num*w))],\
... rgbcolor=(0,0,0.5))
... return s
...
hide> def sato_tate(E, N):
... return [E.ap(p)/(2*sqrt(p)) for p in prime_range(N+1) \
... if N%p != 0]
...
hide> def graph_ellcurve(E, b=10, num=5000):
... v = sato_tate(E, num)
... d, total_number_of_points = dist(v,b,-1,1)
... return graph(d, b, total_number_of_points,-1,1)
...
hide> C = plot( lambda x: (2/pi) * sqrt(1-x^2), -1, 1, \
... plot_points=200, \
... rgbcolor=(1,0,0), thickness=4,alpha=0.7)
...
hide> G = graph_ellcurve(E,50,num=50000)
hide> show(C + G, ymin=0, ymax=.75, figsize=[8,4])
ASIDE -- big recent theorem of Taylor, Harris,
Clozel, Shepherd-Barron
THE SATO-TATE CONJECTURE is a theorem
(in a wide range of cases).
r Tw # Worksheet 'bsd' (2006-08-28 at 07:54)
hide%html>
hide%html> DEFINITION: The L-series of E
hide%html> is
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> where
hide%html>
hide%html> a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
hide%html>
hide%html>
DEFINITION: The L-series of E
is
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
where
a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
r T # Worksheet 'bsd' (2006-08-28 at 07:55)
hide%html>
hide%html> DEFINITION: The L-series of E
hide%html> is
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> where
hide%html>
hide%html> a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
hide%html>
hide%html>
DEFINITION: The L-series of E
is
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
where
a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
r T # Worksheet 'bsd' (2006-08-28 at 07:55)
hide%html>
hide%html> DEFINITION: The L-series of E
hide%html> is
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> where
hide%html>
hide%html> a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
hide%html>
hide%html>
DEFINITION: The L-series of E
is
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
where
a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
r T # Worksheet 'bsd' (2006-08-28 at 07:55)
hide%html>
hide%html> DEFINITION: The L-series of E
hide%html> is
hide%html>
hide%html> \displaystyle
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> where
hide%html>
hide%html> a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
hide%html>
hide%html>
DEFINITION: The L-series of E
is
\displaystyle
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
where
a_p = p+1 - \#E(\mathbf{Z}/p\mathbf{Z})
r TY # Worksheet 'bsd' (2006-08-28 at 07:56)
hide%html>
hide%html> The L-function
... of an elliptic curve is an analytic (or holomorphic)
...
hide%html> function on \mathbf{C}
hide%html> defined by counting points modulo primes:
hide%html>
hide%html>
hide%html> L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
hide%html>
hide%html>
hide%html> Formally:
hide%html> L(E,1) = \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
hide%html>
hide%html>
hide%html>
The L-function
of an elliptic curve is an analytic (or holomorphic)
function on \mathbf{C}
defined by counting points modulo primes:
L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).
Formally:
L(E,1) = \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.