csage.server.notebook.notebook Notebook q)q}q(U_Notebook__worksheetsq}q(Utalkq(csage.server.notebook.worksheet Worksheet qoq}q (U_Worksheet__filenameq Utalkq U_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_htmlqUU	_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-hhhhhUhKhhUos.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!
q4hhhhhUhKhhUos.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;hhhhhUhKhhUos.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!
qBhhhhhUhKhhUos.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!
qIhhhhhUhKhhUos.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!
qPhhhhhUhKhhUos.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!
qWhhhhhUhK	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`hUhKU_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_htmlqoUU	_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`hoUhpKhahbUos.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`hoUhpKhahbUos.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`hoUhpKhahbT7os.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`hoUhmhU_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_htmlqUU	_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!
qhhhhhUhKhhUos.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!
qhhhhhUhKhhUos.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(hUhhhhUhKhU&sage_notebook/worksheets/talk/cells/28qhUhhKhhhubeU_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__idqKU_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_htmlqUU	_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`hoUhpM 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."  


rhvhwKhfh%hxh'hghyub(hor}r(U	_Cell__inrU]show(plot(sin,-2,3,thickness=5,alpha=0.2)+\
     plot(cos,-2,3, alpha=0.7, rgbcolor=(1,0,0)))rhU!
rU_Cell__worksheetrhU_Cell__completionsrhU_Cell__out_htmlrU>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)))rU
_Cell__dirrU&sage_notebook/worksheets/blank/cells/8r
U
_Cell__outrUUhas_new_outputrhhh%U_Cell__typerUwraprhU_Cell__interruptedrub(hor}r(jUa = 10rhU!
rjhjhjUj
M hU]os.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/2")
a = 10rjU&sage_notebook/worksheets/blank/cells/2rjUjhhh%jjhjub(hor}r(jUa^3 + a - 1rhU!
rjhjhjUj
M hUbos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/3")
a^3 + a - 1rjU&sage_notebook/worksheets/blank/cells/3rjU1009rjhhh%jjhjub(hor }r!(jUK = NumberField(x^3 + 2)r"hU!
r#jhjhjUj
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%jUjhhh%jjhjub(hor&}r'(jUKhU!
r(jhjhjUj
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*jU2Number Field in a with defining polynomial x^3 + 2r+jhhh%jjhjub(hor,}r-(jU+%gp

e = ellinit([1,2,3,4,5]);
elltors(e)

r.hU!
r/jhjhjUj
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)r0jU&sage_notebook/worksheets/blank/cells/9r1jU[1, [], []]r2jhhh%jjhjub(hor3}r4(jU%gp
ellglobalred(e)r5hU!
r6jhjhjUj
M hUjos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/6")
%gp
ellglobalred(e)r7jU&sage_notebook/worksheets/blank/cells/6r8jU[10351, [1, -1, 0, -1], 1]r9jhhh%jjhjub(hor:}r;(jU.k = gp('nfinit(%s)'%(K.defining_polynomial()))r<hU!
r=jhjhjUj
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/10rAjUjhhh%jjhjub(horB}rC(jUkhU!
rDjhjhjUj
M hUYos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/11")
krEjU'sage_notebook/worksheets/blank/cells/11rFjT[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]]rGjhhh%jjhjub(horH}rI(jUR. = PolynomialRing(K)rJhU!
rKjhjhjUj
M j>Uk.nfrLhUqos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/12")
R. = PolynomialRing(K)rMjU'sage_notebook/worksheets/blank/cells/12rNjUjhhh%jjhjub(horO}rP(jURhU!
rQjhjhjUj
M
 hUYos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/13")
RrRjU'sage_notebook/worksheets/blank/cells/13rSjUWUnivariate Polynomial Ring in t over Number Field in a with defining polynomial x^3 + 2rTjhhh%jjhjub(horU}rV(jU
factor(t^3-2)rWhU!
rXjhjhjUj
M hUeos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/blank/cells/14")
factor(t^3-2)rYjU'sage_notebook/worksheets/blank/cells/14rZjU(t + a) * (t^2 + (-a)*t + a^2)r[jhhh%jjhjub(hor\}r](jUKhU!
r^jhjhjUj
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`jU2Number Field in a with defining polynomial x^3 + 2rajhhh%jjhjub(horb}rc(jUjhjjUj
M jU'sage_notebook/worksheets/blank/cells/16rdjUjjjjubeU_Worksheet__synchroreK U_Worksheet__comp_is_runningrfU_Worksheet__dirrgUsage_notebook/worksheets/blankrhU_Worksheet__attachedri}rjU_Worksheet__queuerk]rlU_Worksheet__next_idrmM h҈U_Worksheet__namernUblankrohU1161274882.020710rpU_Worksheet__notebookrqhU_Worksheet__idrrKU_Worksheet__next_block_idrsKU_Worksheet__systemrtNhU
11G3BJNEUV/PkruubuU_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)
rxU# 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)
ryU# 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)
rzU# 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)
rT)# 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)
rU# 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)
rT# Worksheet 'bsd' (2006-08-27 at 22:29)
hide%html> 

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve

    hide%html>
    y^2 + y = x^3 - x
    hide%html> has infinitely many rational points. hide%html>
  2. 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:

  1. The elliptic curve

    y^2 + y = x^3 - x
    has infinitely many rational points.
  2. 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? ...rT# Worksheet 'bsd' (2006-08-27 at 22:29) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve

    hide%html>
    y^2 + y = x^3 - x
    hide%html>
    hide%html> has infinitely many rational points. hide%html>
  2. 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:

  1. The elliptic curve

    y^2 + y = x^3 - x

    has infinitely many rational points.
  2. 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...rT # Worksheet 'bsd' (2006-08-27 at 22:30) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve

    hide%html>
    y^2 + y = x^3 - x
    hide%html>
    hide%html> has infinitely many rational points.
    hide%html>
  2. 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:

  1. The elliptic curve

    y^2 + y = x^3 - x

    has infinitely many rational points.
  2. 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 ...rT$# Worksheet 'bsd' (2006-08-27 at 22:30) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve

    hide%html>
    y^2 + y = x^3 - x
    hide%html>
    hide%html> has infinitely many rational points.
    hide%html>
  2. 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:

  1. The elliptic curve

    y^2 + y = x^3 - x

    has infinitely many rational points.
  2. 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...rT(# Worksheet 'bsd' (2006-08-27 at 22:30) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve

    hide%html>
    y^2 + y = x^3 - x
    hide%html>
    hide%html> has infinitely many rational points.


    hide%html>
  2. 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:

  1. The elliptic curve

    y^2 + y = x^3 - x

    has infinitely many rational points.


  2. 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...rT(# Worksheet 'bsd' (2006-08-27 at 22:30) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve

    hide%html>
    y^2 + y = x^3 - x
    hide%html>
    hide%html> has infinitely many rational points.


    hide%html>
  2. 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:

  1. The elliptic curve

    y^2 + y = x^3 - x

    has infinitely many rational points.


  2. 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...rT# 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 stringrT# 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 ...rT# 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 ...rT# 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 ...rT# 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 ...rT# 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 ...rT# 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 ...rU# 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 rT=# 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)rT# 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) rT# 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) rTU# 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})

rT# 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) rT# 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]) rT# 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]) rT# 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]) rT# 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).rT# 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).rT# 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).rT# 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).

rT# 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).rT+# 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.

TrT# 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!

rT# 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...

rTJ# 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 definedrTb# 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 FieldrT# 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() rT# 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).

rT # 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).

rT# 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() rT## 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}$. rT# 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}$.

rT# 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}

rT&# 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}

rT(# 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}.

rT@# 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}.
rT># 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}.
rT># 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}.
rT># 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}.
rT`# 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}.
rT# 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}.
rUN# Worksheet '_scratch_' (2006-08-27 at 23:01) sage: arg(-2) 3.1415926535897931rUD# Worksheet '_scratch_' (2006-08-27 at 23:02) sage: arg(-2)>=pi TruerT# 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() rT# 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() rT # 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() rTH# 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)rT# 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() rTG# 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)rTz# 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)rTT# 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() rTM# 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() rTb# 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 FieldrT# 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 ...rTN# 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() rUJ# Worksheet '_scratch_' (2006-08-27 at 23:09) sage: arg(-2+.1*I)>=pi FalserUS# Worksheet '_scratch_' (2006-08-27 at 23:09) sage: arg(-2+.1*I) 3.0916342578678506rUJ# Worksheet '_scratch_' (2006-08-27 at 23:09) sage: arg(-2+.1*I)>=pi FalserUS# Worksheet '_scratch_' (2006-08-27 at 23:10) sage: arg(-2+.1*I) 3.0916342578678506rUU# Worksheet '_scratch_' (2006-08-27 at 23:10) sage: arg(-2+.001*I) 3.1410926536314601rUL# Worksheet '_scratch_' (2006-08-27 at 23:10) sage: arg(-2+.001*I)>=pi FalserUU# Worksheet '_scratch_' (2006-08-27 at 23:10) sage: arg(-2+.001*I) 3.1410926536314601rUX# Worksheet '_scratch_' (2006-08-27 at 23:10) sage: arg(2+.001*I) 0.00049999995833333955rUX# Worksheet '_scratch_' (2006-08-27 at 23:10) sage: arg(2+.001*I) 0.00049999995833333955rUX# Worksheet '_scratch_' (2006-08-27 at 23:10) sage: arg(2+.001*I) 0.00049999995833333955rUU# Worksheet '_scratch_' (2006-08-27 at 23:10) sage: arg(-2+.001*I) 3.1410926536314601rUV# Worksheet '_scratch_' (2006-08-27 at 23:11) sage: arg(-2-.001*I) -3.1410926536314601rUY# Worksheet '_scratch_' (2006-08-27 at 23:11) sage: arg(2-.001*I) -0.00049999995833333955rUY# Worksheet '_scratch_' (2006-08-27 at 23:11) sage: arg(2-.001*I) -0.00049999995833333955rUW# Worksheet '_scratch_' (2006-08-27 at 23:11) sage: arg(-(2-.001*I)) 3.1410926536314601rU\# Worksheet '_scratch_' (2006-08-27 at 23:11) sage: arg(2-.001*I) + pi 3.1410926536314596rTM# 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() rUw# Worksheet '_scratch_' (2006-08-27 at 23:14) sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) rUV# Worksheet '_scratch_' (2006-08-27 at 23:14) sage: L(1-0.1*I) -0.0018635 - 0.030731*IrUV# Worksheet '_scratch_' (2006-08-27 at 23:14) sage: L(1+0.1*I) -0.0018635 + 0.030731*IrU_# Worksheet '_scratch_' (2006-08-27 at 23:14) sage: z1 = L(1-0.1*I); z1 -0.0018635 - 0.030731*IrU_# Worksheet '_scratch_' (2006-08-27 at 23:14) sage: z2 = L(1+0.1*I); z2 -0.0018635 + 0.030731*IrUX# Worksheet '_scratch_' (2006-08-27 at 23:15) sage: abs(z1), arg(z1) (0.030792, -1.6309)rUW# Worksheet '_scratch_' (2006-08-27 at 23:15) sage: abs(z2), arg(z2) (0.030792, 1.6309)rT # 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() rT # 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() rTt# 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,
...rT# 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 ...rT# 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 ...rU# Worksheet '_scratch_' (2006-08-28 at 07:43) sage: EC('37b') Traceback (most recent call last): ... NameError: name 'EC' is not definedrU# 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 FieldrUn# Worksheet '_scratch_' (2006-08-28 at 07:43) sage: latex(EllipticCurve('37b')) y^2 + y = x^3 + x^2 - 23x - 50rT(# Worksheet 'bsd' (2006-08-28 at 07:43) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve

    hide%html>
    y^2 + y = x^3 - x
    hide%html>
    hide%html> has infinitely many rational points.


    hide%html>
  2. 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:

  1. The elliptic curve

    y^2 + y = x^3 - x

    has infinitely many rational points.


  2. 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...rUd# Worksheet '_scratch_' (2006-08-28 at 07:43) sage: latex(EllipticCurve('11a3')) y^2 + y = x^3 - x^2rTB# Worksheet 'bsd' (2006-08-28 at 07:44) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve

    hide%html>
    y^2 + y = x^3 - x
    hide%html>
    hide%html> has infinitely many rational points.


    hide%html>
  2. 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:

  1. The elliptic curve

    y^2 + y = x^3 - x

    has infinitely many rational points.


  2. 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...rT:# Worksheet 'bsd' (2006-08-28 at 07:44) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve
    hide%html>
    y^2 + y = x^3 - x
    hide%html>
    hide%html> has infinitely many rational points.


    hide%html>
  2. 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:

  1. The elliptic curve
    y^2 + y = x^3 - x

    has infinitely many rational points.


  2. 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...rT # Worksheet 'bsd' (2006-08-28 at 07:45) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve hide%html>
    y^2 + y = x^3 - x
    hide%html> has infinitely many rational points.


    hide%html>
  2. 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:

  1. The elliptic curve
    y^2 + y = x^3 - x
    has infinitely many rational points.


  2. 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?
<...rT # Worksheet 'bsd' (2006-08-28 at 07:45) hide%html>

Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve hide%html>
    y^2 + y = x^3 - x
    hide%html> has infinitely many rational points.


    hide%html>
  2. 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:

  1. The elliptic curve
    y^2 + y = x^3 - x
    has infinitely many rational points.


  2. 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?
<...rT# Worksheet 'bsd' (2006-08-28 at 07:45) hide%html>

A Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve hide%html> y^2 + y = x^3 - x hide%html> has infinitely many rational points.


    hide%html>
  2. 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:

  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.


  2. 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 ...rT# Worksheet 'bsd' (2006-08-28 at 07:45) hide%html>

A Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve hide%html> y^2 + y = x^3 - x hide%html> has infinitely many rational points.
    hide%html>
  2. 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:

  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
  2. 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...rT# Worksheet 'bsd' (2006-08-28 at 07:46) hide%html>

A Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve hide%html> y^2 + y = x^3 - x hide%html> has infinitely many rational points.
    hide%html>
  2. 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:

  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
  2. 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...rT# Worksheet 'bsd' (2006-08-28 at 07:46) hide%html> hide%html>

A Sharp Contrast: hide%html>

hide%html>
    hide%html>
  1. hide%html> The elliptic curve hide%html> y^2 + y = x^3 - x hide%html> has infinitely many rational points.
    hide%html>
  2. 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:

  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
  2. 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...rTS# 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...

rT# 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...

rT;# 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).

rT!# 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)}.

rT# 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) rT# 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 ...rTF # 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).

rT> # 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).

rTD # 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).

rTE # 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).

rT. # 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).
rT8 # 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).
rTw# 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})
rT# 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})
rT# 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})
rT# 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})
rTY# 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)}. hide%html>

The L-function ... of an elliptic curve is an analytic (or holomorphic) ... hide%html> function on \mathbb{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 \mathbb{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)}. hide%html>

The L-function ... of an elliptic curve is an analytic (or holomorphic) ... hide%html> function on \mathbbb{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 \mathbbb{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)}. hide%html>

The L-function ... of an elliptic curve is an analytic (or holomorphic) ... hide%html> function on \mathbb{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 \mathbb{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)}. hide%html> Recall that hide%html> 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>
Recall that 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})
rU# Worksheet 'bsd' (2006-08-28 at 07:57) sage: # Compute the L-series in SAGE sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) sage: plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, plot_division=0, thickness=2).show() rU# Worksheet 'bsd' (2006-08-28 at 07:57) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) sage: plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2).show() rT@# Worksheet 'bsd' (2006-08-28 at 07:58) 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> This is a theorem when the order of vanishing is \leq 1. 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. 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 L(E,s) about 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> This is a theorem when the order of vanishing is \leq 1. 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. 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 L(E,s) about hide%html> Conjecture (Birch and Swinnerton-Dyer):
hide%html> The order of vanishing of hide%html> L(E,s) at s=1 equals hide%html> the rank of E. hide%html>
hide%html> This is a theorem when the order of vanishing is \leq 1. 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. 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 L(E,s) about <...rTH# Worksheet 'bsd' (2006-08-28 at 07:59) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
hide%html> The order of vanishing of hide%html> L(E,s) at s=1 equals hide%html> the rank of E. hide%html>

hide%html> This is a theorem when the order of vanishing is \leq 1. 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. 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 L(E,s) abo...rT# Worksheet 'bsd' (2006-08-28 at 08:00) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
hide%html> The order of vanishing of hide%html> L(E,s) at s=1 equals hide%html> the rank of E. hide%html>

hide%html> This is a theorem when the order of vanishing is 0 or 1. hide%html>
hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. 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. 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 0 or 1.
It is an open problem to prove that the order of vanishing can ever be 4 or larger.
There is also a conjecture about the first nonzero coefficien...rT# Worksheet 'bsd' (2006-08-28 at 08:00) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
hide%html> 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>
  1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
  2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
  3. 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.

  1. This is a theorem when the order of vanishing is 0 or 1.
  2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
  3. There is also a conjecture about the first nonzero...rT# Worksheet 'bsd' (2006-08-28 at 08:00) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
    hide%html> 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>
    1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
    2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
    3. 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.

    1. This is a theorem when the order of vanishing is 0 or 1.
    2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
    3. There is also a conjecture about the first...rT# Worksheet 'bsd' (2006-08-28 at 08:01) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
      hide%html> The order of vanishing of hide%html> \ord_{s=1} L(E,s) = \text{rank } E at s=1 equals hide%html> the rank of E. hide%html>

      hide%html>
        hide%html>
      1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
      2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
      3. 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 \ord_{s=1} L(E,s) = \text{rank } E at s=1 equals the rank of E.

      1. This is a theorem when the order of vanishing is 0 or 1.
      2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
      3. There is also ...rT# Worksheet 'bsd' (2006-08-28 at 08:01) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
        hide%html> The order of vanishing of hide%html> \text{ord}_{s=1} L(E,s) = \text{rank } E at s=1 equals hide%html> the rank of E. hide%html>

        hide%html>
          hide%html>
        1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
        2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
        3. 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 \text{ord}_{s=1} L(E,s) = \text{rank } E at s=1 equals the rank of E.

        1. This is a theorem when the order of vanishing is 0 or 1.
        2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
        3. There is...rTv# Worksheet 'bsd' (2006-08-28 at 08:01) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
          hide%html> \text{ord}_{s=1} L(E,s) = \text{rank } E hide%html>

          hide%html>
            hide%html>
          1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
          2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
          3. 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):
          \text{ord}_{s=1} L(E,s) = \text{rank } E

          1. This is a theorem when the order of vanishing is 0 or 1.
          2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
          3. There is also a conjecture about the first nonzero coefficient of the Taylor expansion of L(E,s) hide%html> Conjecture (Birch and Swinnerton-Dyer):
            hide%html>
            hide%html> \text{ord}_{s=1} L(E,s) = \text{rank } E hide%html>
            hide%html>

            hide%html>
              hide%html>
            1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
            2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
            3. 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):
            \text{ord}_{s=1} L(E,s) = \text{rank } E


            1. This is a theorem when the order of vanishing is 0 or 1.
            2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
            3. There is also a conjecture about the first nonzero coefficient of the Taylor expansion of hide%html> Conjecture (Birch and Swinnerton-Dyer):
              hide%html> hide%html> \text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

              hide%html>
                hide%html>
              1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
              2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
              3. 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):
              \text{ord}_{s=1} L(E,s) = \text{rank } E

              1. This is a theorem when the order of vanishing is 0 or 1.
              2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
              3. There is also a conjecture about the first nonzero coefficient of the Taylor expansi...r T# Worksheet 'bsd' (2006-08-28 at 08:02) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html>

                hide%html>
                  hide%html>
                1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
                2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
                3. 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):
                \text{ord}_{s=1} L(E,s) = \text{rank } E

                1. This is a theorem when the order of vanishing is 0 or 1.
                2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                3. There is also a conjecture about the first nonzero coefficient of the Taylor expansion of hide%html> Conjecture (Birch and Swinnerton-Dyer):
                  hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html>

                  hide%html>
                    hide%html>
                  1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
                  2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
                  3. 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):
                  \text{ord}_{s=1} L(E,s) = \text{rank } E

                  1. This is a theorem when the order of vanishing is 0 or 1.
                  2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                  3. There is also a conjecture about the first nonzero coefficient of the Taylor expansion of L(E,s) hide%html> Conjecture (Birch and Swinnerton-Dyer):
                    hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html>

                    hide%html>
                      hide%html>
                    1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
                    2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
                    3. 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):
                         \text{ord}_{s=1} L(E,s) = \text{rank } E

                    1. This is a theorem when the order of vanishing is 0 or 1.
                    2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                    3. There is also a conjecture about the first nonzero coefficient of the Taylor expansion ...rT# Worksheet 'bsd' (2006-08-28 at 08:03) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                      hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html>

                      hide%html>
                        hide%html>
                      1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
                      2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
                      3. 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):
                           \text{ord}_{s=1} L(E,s) = \text{rank } E

                      1. This is a theorem when the order of vanishing is 0 or 1.
                      2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                      3. There is also a conjecture about the first nonzero coefficient of the Taylor expansion ...rT# Worksheet 'bsd' (2006-08-28 at 08:03) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                        hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                        hide%html>
                          hide%html>
                        1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
                        2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
                        3. 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):
                             \text{ord}_{s=1} L(E,s) = \text{rank } E

                        1. This is a theorem when the order of vanishing is 0 or 1.
                        2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                        3. There is also a conjecture about the first nonzero coefficient of the Ta...rT# Worksheet 'bsd' (2006-08-28 at 08:03) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                          hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                          hide%html>
                            hide%html>
                          1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
                          2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
                          3. 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):
                               \text{ord}_{s=1} L(E,s) = \text{rank } E

                          1. This is a theorem when the order of vanishing is 0 or 1.
                          2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                          3. There is also a conjecture about the first nonzero coefficient of the Ta...rT# Worksheet 'bsd' (2006-08-28 at 08:03) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                            hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                            hide%html>
                              hide%html>
                            1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
                            2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
                            3. 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):
                                 \text{ord}_{s=1} L(E,s) = \text{rank } E

                            1. This is a theorem when the order of vanishing is 0 or 1.
                            2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                            3. There is also a conjecture about the first nonzero coefficient of the T...rT# Worksheet 'bsd' (2006-08-28 at 08:03) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                              hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                              hide%html>
                                hide%html>
                              1. This is a theorem when the order of vanishing is 0 or 1. hide%html>
                              2. hide%html> It is an open problem to prove that the order of vanishing hide%html> can ever be 4 or larger. hide%html>
                              3. 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):
                                   \text{ord}_{s=1} L(E,s) = \text{rank } E

                              1. This is a theorem when the order of vanishing is 0 or 1.
                              2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                              3. There is also a conjecture about the first nonzer...rTV# Worksheet 'bsd' (2006-08-28 at 08:04) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                hide%html>
                                  hide%html>
                                1. This is a theorem ... when the order of vanishing is 0 or 1. ... hide%html>
                                2. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger. hide%html>
                                3. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> 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):
                                     \text{ord}_{s=1} L(E,s) = \text{rank } E

                                1. This is a theorem when the order of vanishing is 0 or 1.
                                2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                                3. There is also a hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                  hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                  hide%html>
                                    hide%html>
                                  1. This is a theorem ... when the order of vanishing is 0 or 1.
                                    ... hide%html>
                                  2. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger. hide%html>
                                  3. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> 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):
                                       \text{ord}_{s=1} L(E,s) = \text{rank } E

                                  1. This is a theorem when the order of vanishing is 0 or 1.
                                  2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.
                                  3. There is also a ...rTn# Worksheet 'bsd' (2006-08-28 at 08:04) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                    hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                    hide%html>
                                      hide%html>
                                    1. This is a theorem ... when the order of vanishing is 0 or 1.

                                      ... hide%html>
                                    2. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                      hide%html>
                                    3. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> 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):
                                         \text{ord}_{s=1} L(E,s) = \text{rank } E

                                    1. This is a theorem when the order of vanishing is 0 or 1.

                                    2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.

                                    3. Ther...rT# Worksheet 'bsd' (2006-08-28 at 08:05) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                      hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                      hide%html>
                                        hide%html>
                                      1. This is a theorem ... when the order of vanishing is 0 or 1.

                                        ... hide%html>
                                      2. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                        hide%html>
                                      3. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1.

                                        hide%html>
                                      hide%html> (back to slides) Conjecture (Birch and Swinnerton-Dyer):
                                           \text{ord}_{s=1} L(E,s) = \text{rank } E

                                      1. This is a theorem when the order of vanishing is 0 or 1.

                                      2. It is an open problem to prove that the order of vanishing can ever be 4 or larger.

                                      3. Ther...rT# Worksheet 'bsd' (2006-08-28 at 08:07) hide%html>

                                        The Birch and Swinnerton-Dyer Conjecture for 37A

                                        hide%html>

                                        hide%html> This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer hide%html> for the elliptic curve

                                        hide%html>
                                        y^2 + y = x^3 - x,
                                        hide%html>
                                        hide%html> affectionately referred to by mathematicians as 37a. hide%html>

                                        The Birch and Swinnerton-Dyer Conjecture for 37A

                                        This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer for the elliptic curve

                                        y^2 + y = x^3 - x,

                                        affectionately referred to by mathematicians as 37a.

                                        rT# Worksheet 'bsd' (2006-08-28 at 08:07) 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:

                                        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:

                                        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:

                                        hide%html> An elliptic curve hide%html> E hide%html> over hide%html> \mathbf{Q} hide%html> is a smooth projective curve determined 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 determined 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:

                                        hide%html>

                                        A Sharp Contrast: hide%html>

                                        hide%html>
                                          hide%html>
                                        1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                          hide%html>
                                        2. 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>

                                        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:

                                        1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                        2. 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 o...r TO# Worksheet 'bsd' (2006-08-28 at 08:10) hide%html> hide%html>

                                        A Sharp Contrast: hide%html>

                                        hide%html>
                                          hide%html>
                                        1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                          hide%html>
                                        2. 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>

                                        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:

                                        1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                        2. 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...r!T~# Worksheet 'bsd' (2006-08-28 at 08:11) hide%html> hide%html> The L-function ... of an elliptic curve is an analytic (or holomorphic) ... hide%html> function on \mathbb{C} hide%html> defined by counting points modulo primes: hide%html>

                                        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> Formally: hide%html> \displaystyle hide%html> L(E,1) = \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html>

                                        hide%html> The L-function of an elliptic curve is an analytic (or holomorphic) function on \mathbb{C} defined by counting points modulo primes:

                                        \displaystyle L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).

                                        Formally: \displaystyle L(E,1) = \prod_{p} ...r"Tn# Worksheet 'bsd' (2006-08-28 at 08:11) hide%html> hide%html> The L-function ... of an elliptic curve is an analytic ... hide%html> function on \mathbb{C} hide%html> defined by counting points modulo primes: hide%html>

                                        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> Formally: hide%html> \displaystyle hide%html> L(E,1) = \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html>
                                        hide%html> The L-function of an elliptic curve is an analytic function on \mathbb{C} defined by counting points modulo primes:

                                        \displaystyle L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).

                                        Formally: \displaystyle L(E,1) = \prod_{p} \frac{p}{\#E(\ma...r#TP# Worksheet 'bsd' (2006-08-28 at 08:12) hide%html> hide%html> The L-function ... of an elliptic curve is a ... hide%html> function on the complex numbers hide%html> defined by counting points modulo primes: hide%html>

                                        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> Formally: hide%html> \displaystyle hide%html> L(E,1) = \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html>
                                        hide%html> The L-function of an elliptic curve is a function on the complex numbers defined by counting points modulo primes:

                                        \displaystyle L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).

                                        Formally: \displaystyle L(E,1) = \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
                                        ...r$T# Worksheet 'bsd' (2006-08-28 at 08:13) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) # Tim Dokchitser sage: plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2).show() r%T# Worksheet 'bsd' (2006-08-28 at 08:15) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                        hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                        hide%html>
                                          hide%html>
                                        1. This is a theorem ... when the order of vanishing is 0 or 1.

                                          ... hide%html>
                                        2. It is a million dollar Clay Problem. hide%html>

                                          hide%html>
                                        3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                          hide%html>
                                        4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1.

                                          hide%html>
                                        hide%html> (back to slides) Conjecture (Birch and Swinnerton-Dyer):
                                             \text{ord}_{s=1} L(E,s) = \text{rank } E

                                        1. This is a theorem when the order of vanishing is 0 or 1.

                                        2. It is a million dollar Clay Problem.

                                        3. It is an open pro...r&T# Worksheet 'bsd' (2006-08-28 at 08:16) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                          hide%html>       class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                          hide%html>
                                            hide%html>
                                          1. This is a theorem ... when the order of vanishing is 0 or 1.

                                            ... hide%html>
                                          2. It is a million dollar Clay Problem. hide%html>

                                            hide%html>
                                          3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                            hide%html>
                                          4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                          hide%html> (back to slides) Conjecture (Birch and Swinnerton-Dyer):
                                               \text{ord}_{s=1} L(E,s) = \text{rank } E

                                          1. This is a theorem when the order of vanishing is 0 or 1.

                                          2. It is a million dollar Clay Problem.

                                          3. It is an open pro...r'U# Worksheet 'bsd' (2006-08-28 at 08:29) sage: print """ sage: sage:

                                            Birch's Parallel Lines

                                            sage: """

                                            Birch's Parallel Lines

                                            r(U# Worksheet 'bsd' (2006-08-28 at 08:29) sage: print """ sage: sage:

                                            Birch's Parallel Lines

                                            sage: sage: """

                                            Birch's Parallel Lines

                                            r)T@# Worksheet 'bsd' (2006-08-28 at 08:35) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p,pr)) ... return line(v, **args) ... sage: G = [f(e) for e in E] sage: show(graphics_array(G,2,2))

                                            Birch's Parallel Lines?

                                            r*TC# Worksheet 'bsd' (2006-08-28 at 08:36) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p,pr)) ... return line(v, **args) ... sage: G = sum([f(E[i],hue=i/4) for i in range(4)]) sage: show(G)

                                            Birch's Parallel Lines?

                                            r+TI# Worksheet 'bsd' (2006-08-28 at 08:36) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, exp(pr))) ... return line(v, **args) ... sage: G = sum([f(E[i],hue=i/4) for i in range(4)]) sage: show(G)

                                            Birch's Parallel Lines?

                                            r,TG# Worksheet 'bsd' (2006-08-28 at 08:36) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, 10*pr)) ... return line(v, **args) ... sage: G = sum([f(E[i],hue=i/4) for i in range(4)]) sage: show(G)

                                            Birch's Parallel Lines?

                                            r-TI# Worksheet 'bsd' (2006-08-28 at 08:36) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, 10*pr)) ... return line(v, **args) ... sage: G = sum([f(E[i],hue=i/4.0) for i in range(4)]) sage: show(G)

                                            Birch's Parallel Lines?

                                            r.TZ# Worksheet 'bsd' (2006-08-28 at 08:37) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, 10*pr)) ... return line(v, **args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G)

                                            Birch's Parallel Lines?

                                            r/Tc# Worksheet 'bsd' (2006-08-28 at 08:37) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, 10*pr)) ... return line(v, **args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,xmax=2.5)

                                            Birch's Parallel Lines?

                                            r0Tc# Worksheet 'bsd' (2006-08-28 at 08:37) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, 10*pr)) ... return line(v, **args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=2.5)

                                            Birch's Parallel Lines?

                                            r1T`# Worksheet 'bsd' (2006-08-28 at 08:37) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, pr)) ... return line(v, **args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.25)

                                            Birch's Parallel Lines?

                                            r2Tg# Worksheet 'bsd' (2006-08-28 at 08:37) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=100, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, pr)) ... return line(v, **args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.25,ymin=0)

                                            Birch's Parallel Lines?

                                            r3Tg# Worksheet 'bsd' (2006-08-28 at 08:37) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, pr)) ... return line(v, **args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.25,ymin=0)

                                            Birch's Parallel Lines?

                                            r4Ty# Worksheet 'bsd' (2006-08-28 at 08:38) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.25,ymin=0)

                                            Birch's Parallel Lines?

                                            r5T# Worksheet 'bsd' (2006-08-28 at 08:38) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, exp(pr+1))) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.25,ymin=0)

                                            Birch's Parallel Lines?

                                            r6T# Worksheet 'bsd' (2006-08-28 at 08:38) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, log(pr+1))) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.25,ymin=0)

                                            Birch's Parallel Lines?

                                            r7Ty# Worksheet 'bsd' (2006-08-28 at 08:38) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.25,ymin=0)

                                            Birch's Parallel Lines?

                                            r8T# Worksheet 'bsd' (2006-08-28 at 08:38) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.25,ymin=0,dpi=200)

                                            Birch's Parallel Lines?

                                            r9T# Worksheet 'bsd' (2006-08-28 at 08:39) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(B): ... pr *= float(p/E.Np(p)) ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.35,ymin=0,dpi=200)

                                            Birch's Parallel Lines?

                                            r:T# Worksheet 'bsd' (2006-08-28 at 08:39) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(5,B): ... pr *= float(p/E.Np(p)) ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymax=.35,ymin=0,dpi=200)

                                            Birch's Parallel Lines?

                                            r;Tz# Worksheet 'bsd' (2006-08-28 at 08:39) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(5,B): ... pr *= float(p/E.Np(p)) ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymin=0,dpi=200)

                                            Birch's Parallel Lines?

                                            r<T# Worksheet 'bsd' (2006-08-28 at 08:39) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(2,B): ... pr *= float(p/E.Np(p)) ... if p >= 5: ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymin=0,dpi=200)

                                            Birch's Parallel Lines?

                                            r=T# Worksheet 'bsd' (2006-08-28 at 08:39) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=200, **args): ... v = []; pr = 1 ... for p in prime_range(2,B): ... pr *= float(p/E.Np(p)) ... if p >= 5: ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymin=0,ymax=.25,dpi=200)

                                            Birch's Parallel Lines?

                                            r>T# Worksheet 'bsd' (2006-08-28 at 08:40) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=1000, **args): ... v = []; pr = 1 ... for p in prime_range(2,B): ... pr *= float(p/E.Np(p)) ... if p >= 5: ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymin=0,ymax=.25,dpi=200)

                                            Birch's Parallel Lines?

                                            r?T# Worksheet 'bsd' (2006-08-28 at 08:41) sage: print """ sage: sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=1000, **args): ... v = []; pr = 1 ... for p in prime_range(2,B): ... pr *= float(p/E.Np(p)) ... if p >= 5: ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymin=0,ymax=.25,dpi=200)

                                            Birch's Parallel Lines?

                                            r@TT# Worksheet 'bsd' (2006-08-28 at 12:03) hide%html> hide%html> The L-function ... of an elliptic curve is a ... hide%html> function on the complex numbers hide%html> defined by counting points modulo primes: hide%html>

                                            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> Formally: hide%html> \displaystyle hide%html> L(E,1) ``='' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html> hide%html>
                                            The L-function of an elliptic curve is a function on the complex numbers defined by counting points modulo primes:

                                            \displaystyle L(E,s) = \prod_{p} \left(\frac{1}{1-a_p p^{-s} + p^{1-2s}}\right).

                                            Formally: \displaystyle L(E,1) ``='' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. sage:

                                            Birch's Parallel Lines?

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=1000, **args): ... v = []; pr = 1 ... for p in prime_range(2,B): ... pr *= float(p/E.Np(p)) ... if p >= 5: ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymin=0,ymax=.25,dpi=200)

                                            Birch's Parallel Lines?

                                            rET# Worksheet 'bsd' (2006-08-28 at 14:45) sage: print """ sage: sage:

                                            Birch's Parallel Lines

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=1000, **args): ... v = []; pr = 1 ... for p in prime_range(2,B): ... pr *= float(p/E.Np(p)) ... if p >= 5: ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymin=0,ymax=.25,dpi=200)

                                            Birch's Parallel Lines

                                            rFU_# Worksheet 'bsd' (2006-08-28 at 14:45) html> END ENDrGU# Worksheet 'bsd' (2006-08-28 at 14:45) html%hide>

                                            html%hide> END html%hide>

                                            Traceback (most recent call last): ... NameError: name 'hide' is not definedrHU# Worksheet 'bsd' (2006-08-28 at 14:45) hide%html>

                                            hide%html> END hide%html>

                                            END

                                            rIU# Worksheet 'bsd' (2006-08-28 at 14:59) sage: E = EllipticCurve([0,0,1,-1,0]) sage: G = plot(E, rgbcolor=(1,0,1), thickness=3) sage: show(G,dpi=160) rJT# Worksheet 'bsd' (2006-08-28 at 14:59) sage: E = EllipticCurve([0,0,1,-1,0]) sage: P = E([0,0]) sage: Q = P sage: for n in range(30): ... print '%-10s%-60s'%(n, Q) ... Q += P 0 (0 : 0 : 1) 1 (1 : 0 : 1) 2 (-1 : -1 : 1) 3 (2 : -3 : 1) 4 (1/4 : -5/8 : 1) 5 (6 : 14 : 1) 6 (-5/9 : 8/27 : 1) ...rKTO# Worksheet 'bsd' (2006-08-28 at 15:00) sage: E = EllipticCurve([0,0,1,-1,0]) 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) rLT# Worksheet 'bsd' (2006-08-28 at 15:00) sage: t = Tachyon(xres=1000, yres=800, camera_center=(2,7,4), look_at=(2,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: E = EllipticCurve('37a') sage: P = E([0,0]) sage: Q = P sage: n = 100 sage: for i in range(n): ... Q = Q + P ... c = i/n + .1 ... t.texture('r%s'%i,color=(float(i/n),0,0)) ... t.sphere((Q[0], -Q[1], .01), .04, 'r%s'%i) ... ... sage: t.save() rMT# Worksheet 'bsd' (2006-08-28 at 15:01) hide%html> hide%html> The L-function hide%html> L(E,s) ... of an elliptic curve is a ... hide%html> function on the complex numbers hide%html> defined by counting points modulo primes so that formally hide%html>

                                            hide%html> \displaystyle hide%html> L(E,1) ``='' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html> hide%html>
                                            The L-function L(E,s) of an elliptic curve is a function on the complex numbers defined by counting points modulo primes so that formally

                                            \displaystyle L(E,1) ``='' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
                                            rNT# Worksheet 'bsd' (2006-08-28 at 15:01) hide%html> hide%html> The L-function hide%html> L(E,s) ... of an elliptic curve is a ... hide%html> function on the complex numbers hide%html> defined by counting points modulo primes so that formally hide%html>

                                            hide%html>
                                            \displaystyle hide%html> L(E,1) ``='' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html>
                                            hide%html>
                                            The L-function L(E,s) of an elliptic curve is a function on the complex numbers defined by counting points modulo primes so that formally

                                            \displaystyle L(E,1) ``='' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
                                            rOT# Worksheet 'bsd' (2006-08-28 at 15:01) hide%html> hide%html> The L-function hide%html> L(E,s) ... of an elliptic curve is a ... hide%html> function on the complex numbers hide%html> defined by counting points modulo primes so that formally hide%html>

                                            hide%html>
                                            hide%html> \displaystyle hide%html> L(E,1) ``='' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html>
                                            hide%html>
                                            The L-function L(E,s) of an elliptic curve is a function on the complex numbers defined by counting points modulo primes so that formally

                                            \displaystyle L(E,1) ``='' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
                                            rPT# Worksheet 'bsd' (2006-08-28 at 15:01) hide%html> hide%html> The L-function hide%html> L(E,s) ... of an elliptic curve is a ... hide%html> function on the complex numbers hide%html> defined by counting points modulo primes so that formally hide%html>

                                            hide%html>
                                            hide%html> \displaystyle hide%html> L(E,1) ``=\,\,'' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html>
                                            hide%html>
                                            The L-function L(E,s) of an elliptic curve is a function on the complex numbers defined by counting points modulo primes so that formally

                                            \displaystyle L(E,1) ``=\,\,'' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
                                            rQT# Worksheet 'bsd' (2006-08-28 at 15:01) 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) rRT# Worksheet 'bsd' (2006-08-28 at 15:02) 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 ...rST8 # Worksheet 'bsd' (2006-08-28 at 15:02) 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).
                                            rTT# Worksheet 'bsd' (2006-08-28 at 15:02) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) # Tim Dokchitser sage: plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2).show() rUT# Worksheet 'bsd' (2006-08-28 at 15:02) sage: print """ sage: sage:

                                            Birch's Parallel Lines

                                            sage: sage: """ sage: E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... sage: def f(E, B=1000, **args): ... v = []; pr = 1 ... for p in prime_range(2,B): ... pr *= float(p/E.Np(p)) ... if p >= 5: ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... sage: G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) sage: show(G,ymin=0,ymax=.25,dpi=200)

                                            Birch's Parallel Lines

                                            rVT# Worksheet 'bsd' (2006-08-28 at 15:02) hide> print """ hide> hide>

                                            Birch's Parallel Lines

                                            hide> hide> """ hide> E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... hide> def f(E, B=1000, **args): ... v = []; pr = 1 ... for p in prime_range(2,B): ... pr *= float(p/E.Np(p)) ... if p >= 5: ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... hide> G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) hide> show(G,ymin=0,ymax=.25,dpi=200)

                                            Birch's Parallel Lines

                                            rWTJ# Worksheet 'bsd' (2006-08-28 at 15:05) sage: E = EllipticCurve([0,0,1,-1,0]) 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 + i*100/n) ... sage: show(G,dpi=150) rXT:# Worksheet 'bsd' (2006-08-28 at 15:05) hide%html> hide%html>

                                            A Sharp Contrast:

                                            hide%html>
                                              hide%html>
                                            1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                              hide%html>
                                            2. 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>

                                            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:

                                            1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                            2. 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 ...rYT# Worksheet 'bsd' (2006-08-28 at 15:07) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) # Tim Dokchitser sage: plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2).show(dpi=150) rZT(# Worksheet 'bsd' (2006-08-28 at 15:07) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) # Tim Dokchitser sage: P = plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2) ... sage: P.show(dpi=200) r[T(# Worksheet 'bsd' (2006-08-28 at 15:07) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) # Tim Dokchitser sage: P = plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2) ... sage: P.show(dpi=200) r\T(# Worksheet 'bsd' (2006-08-28 at 15:07) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) # Tim Dokchitser sage: P = plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2) ... sage: P.show(dpi=150) r]T1# Worksheet 'bsd' (2006-08-28 at 15:09) sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) 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('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=200 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^U5# Worksheet 'blank' (2006-08-28 at 15:12) sage: 2+2 4r_U5# Worksheet 'blank' (2006-08-28 at 16:38) sage: 2^3 8r`U7# Worksheet 'blank' (2006-08-28 at 16:38) sage: a = 10 raU@# Worksheet 'blank' (2006-08-28 at 16:38) sage: a^3 + a - 1 1009rbUI# Worksheet 'blank' (2006-08-28 at 16:39) sage: K = NumberField(x^3 + 2) rcUd# Worksheet 'blank' (2006-08-28 at 16:39) sage: K Number Field in a with defining polynomial x^3 + 2rdUE# Worksheet 'blank' (2006-08-28 at 16:39) sage: show(plot(sin,-2,3)) reU[# Worksheet 'blank' (2006-08-28 at 16:40) sage: show(plot(sin,-2,3,thickness=5,alpha=0.2)) rfU# Worksheet 'blank' (2006-08-28 at 16:41) sage: show(plot(sin,-2,3,thickness=5,alpha=0.2)+\ ... plot(cos,-2,3, alpha=0.7, rgbcolor=(1,0,0))) rgUb# Worksheet 'blank' (2006-08-28 at 16:41) gp> e = ellinit([1,2,3,4,5]); gp> elltors(e) [1, [], []]rhUX# Worksheet 'blank' (2006-08-28 at 16:42) gp> ellglobalred(e) [10351, [1, -1, 0, -1], 1]riT# Worksheet 'blank' (2006-08-28 at 16:42) sage: gp(K) Traceback (most recent call last): ... NotImplementedError: coercion of Number Field in a with defining polynomial x^3 + 2 (of type ) to GP/PARI interpreter not implemented: 'NumberField_generic' object has no attribute '_interface_init_' 'NumberField_generic' object has no attribute '_interface_init_'rjUc# Worksheet 'blank' (2006-08-28 at 16:42) sage: pari(K) NumberFieldinawithdefiningpolynomialx^3 + 2rkT%# Worksheet 'blank' (2006-08-28 at 16:43) sage: gp('ellinit(%s)'%(K.defining_polynomial())) Traceback (most recent call last): ... TypeError: Error executing code in GP/PARI: CODE: sage[1]=ellinit(x^3 + 2); GP/PARI ERROR: *** ellinit: bad argument for an elliptic curve related functionrlU_# Worksheet 'blank' (2006-08-28 at 16:43) sage: k = gp('nfinit(%s)'%(K.defining_polynomial())) rmT# Worksheet 'blank' (2006-08-28 at 16:43) sage: k [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, ...rnTP# Worksheet 'blank' (2006-08-28 at 16:44) sage: k.nfroots() Traceback (most recent call last): ... TypeError: Error executing code in GP/PARI: CODE: sage[3]=nfroots(sage[2]); GP/PARI ERROR: *** expected character: ',' instead of: sage[3]=nfroots(sage[2]); ^--roT# Worksheet 'blank' (2006-08-28 at 16:44) sage: k.nfroots(x^2-3) Traceback (most recent call last): ... TypeError: Error executing code in GP/PARI: CODE: sage[5]=nfroots(sage[2],sage[4]); GP/PARI ERROR: *** nfroots: polynomial variable must have highest priority in nfroots.rpT# Worksheet 'blank' (2006-08-28 at 16:44) sage: k.nfroots('t^2-3') Traceback (most recent call last): ... TypeError: Error executing code in GP/PARI: CODE: sage[7]=nfroots(sage[2],sage[6]); GP/PARI ERROR: *** nfroots: polynomial variable must have highest priority in nfroots.rqUJ# Worksheet 'blank' (2006-08-28 at 16:45) sage: R. = PolynomialRing(K) rrU# Worksheet 'blank' (2006-08-28 at 16:45) sage: R Univariate Polynomial Ring in t over Number Field in a with defining polynomial x^3 + 2rsU\# Worksheet 'blank' (2006-08-28 at 16:45) sage: factor(t^3-2) (t + a) * (t^2 + (-a)*t + a^2)rtUd# Worksheet 'blank' (2006-08-28 at 16:45) sage: K Number Field in a with defining polynomial x^3 + 2ruU# Worksheet 'bsd' (2006-08-28 at 16:51) sage: E = EllipticCurve([0,0,1,-1,0]) sage: G = plot(E, rgbcolor=(1,0,1), thickness=3) sage: show(G,dpi=160) rvU# Worksheet 'bsd' (2006-08-28 at 16:51) sage: E = EllipticCurve([0,0,1,-1,0]) sage: G = plot(E, rgbcolor=(1,0,1), thickness=3) sage: show(G,dpi=160) rwU# Worksheet 'bsd' (2006-08-28 at 16:51) sage: E = EllipticCurve('37a') sage: G = plot(E, rgbcolor=(1,0,1), thickness=3) sage: show(G,dpi=160) rxT# Worksheet 'bsd' (2006-08-28 at 16:52) sage: E = EllipticCurve([0,0,1,-1,0]) sage: P = E([0,0]) sage: Q = P sage: for n in range(50): ... print '%-10s%-60s'%(n, Q) ... Q += P 0 (0 : 0 : 1) 1 (1 : 0 : 1) 2 (-1 : -1 : 1) 3 (2 : -3 : 1) 4 (1/4 : -5/8 : 1) 5 (6 : 14 : 1) 6 (-5/9 : 8/27 : 1) ...ryT# Worksheet 'bsd' (2006-08-28 at 16:52) sage: E = EllipticCurve([0,0,1,-1,0]) sage: P = E([0,0]) sage: Q = P sage: for n in range(70): ... print '%-10s%-60s'%(n, Q) ... Q += P 0 (0 : 0 : 1) 1 (1 : 0 : 1) 2 (-1 : -1 : 1) 3 (2 : -3 : 1) 4 (1/4 : -5/8 : 1) 5 (6 : 14 : 1) 6 (-5/9 : 8/27 : 1) ...rzTJ# Worksheet 'bsd' (2006-08-28 at 16:55) sage: E = EllipticCurve([0,0,1,-1,0]) sage: G = plot(E, thickness=.6, rgbcolor=(1,0,1)) sage: Q = P sage: n = 200 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 + i*100/n) ... sage: show(G,dpi=150) r{T# Worksheet 'bsd' (2006-08-28 at 16:56) sage: t = Tachyon(xres=1000, yres=800, camera_center=(2,7,4), look_at=(2,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: E = EllipticCurve('37a') sage: P = E([0,0]) sage: Q = P sage: n = 100 sage: for i in range(n): ... Q = Q + P ... c = i/n + .1 ... t.texture('r%s'%i,color=(float(i/n),0,0)) ... t.sphere((Q[0], -Q[1], .01), .04, 'r%s'%i) ... ... sage: t.save() r|T# Worksheet 'bsd' (2006-08-28 at 17:03) 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}TH # Worksheet 'bsd' (2006-08-28 at 17:05) hide> print """ hide> hide> ASIDE -- big recent theorem of Taylor, Michael 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, Michael Harris, Clozel, Shepherd-Barron
                                            THE SATO-TATE CONJECTURE is a theorem
                                            (in a wide range of cases).
                                            r~Ui# Worksheet 'bsd' (2006-08-28 at 17:13) sage: time n=factorial(10^6) CPU time: 3.20 s, Wall time: 3.62 srUX# Worksheet 'bsd' (2006-08-28 at 17:15) pyrex> def foo(int n, int m): ... return n+m rU@# Worksheet 'bsd' (2006-08-28 at 17:15) sage: foo(393,3902) 4295rUT# Worksheet 'bsd' (2006-08-28 at 17:17) pyrex> def foo(int n, m): ... return n+m rU\# Worksheet 'bsd' (2006-08-28 at 17:25) sage: polymake.cube(3) Cube of dimension 3 (scale 0)rUC# Worksheet 'bsd' (2006-08-28 at 17:25) sage: C = polymake.cube(3) rU# Worksheet 'bsd' (2006-08-28 at 17:25) sage: C.facets() [(0, 1, 0, 0), (1, -1, 0, 0), (0, 0, 1, 0), (1, 0, -1, 0), (0, 0, 0, 1), (1, 0, 0, -1)]rUJ# Worksheet 'bsd' (2006-08-28 at 17:25) sage: optional_packages() ([], [])rT# Worksheet 'bsd' (2006-08-31 at 17:02) sage: t = Tachyon(xres=1000, yres=800, camera_center=(2,7,4), look_at=(2,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: E = EllipticCurve('37a') sage: P = E([0,0]) sage: Q = P sage: n = 100 sage: for i in range(n): ... Q = Q + P ... c = i/n + .1 ... t.texture('r%s'%i,color=(float(i/n),0,0)) ... t.sphere((Q[0], -Q[1], .01), .04, 'r%s'%i) ... ... sage: t.save() rU# Worksheet 'bsd' (2006-10-03 at 00:33) sage: E = EllipticCurve('37a') sage: G = plot(E, rgbcolor=(1,0,1), thickness=3) sage: show(G,dpi=160) rT# Worksheet 'bsd' (2006-10-03 at 09:48) hide%html>

                                            The Birch and Swinnerton-Dyer Conjecture for 37A

                                            hide%html>

                                            hide%html> This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer hide%html> for the elliptic curve

                                            hide%html>
                                            y^2 + y = x^3 - x,
                                            hide%html>
                                            hide%html> affectionately referred to by mathematicians as 37a. hide%html>

                                            The Birch and Swinnerton-Dyer Conjecture for 37A

                                            This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer for the elliptic curve

                                            y^2 + y = x^3 - x,

                                            affectionately referred to by mathematicians as 37a.

                                            rT# Worksheet 'bsd' (2006-10-03 at 09:48) hide%html> hide%html> An elliptic curve hide%html> E hide%html> over hide%html> \mathbf{Q} hide%html> is a smooth projective curve determined 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 determined 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:

                                            The Birch and Swinnerton-Dyer Conjecture for 37A

                                            hide%html>

                                            hide%html> This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer hide%html> for the elliptic curve

                                            hide%html>
                                            y^2 + y = x^3 - x,
                                            hide%html>
                                            hide%html> affectionately referred to by mathematicians as 37a. hide%html>

                                            The Birch and Swinnerton-Dyer Conjecture for 37A

                                            This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer for the elliptic curve

                                            y^2 + y = x^3 - x,

                                            affectionately referred to by mathematicians as 37a.

                                            rT# Worksheet 'bsd' (2006-10-03 at 09:49) hide%html> hide%html> An elliptic curve hide%html> E hide%html> over hide%html> \mathbf{Q} hide%html> is a smooth projective curve determined 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 determined 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:

                                            hide%html>

                                            A Sharp Contrast:

                                            hide%html>
                                              hide%html>
                                            1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                              hide%html>
                                            2. 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>

                                            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:

                                            1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                            2. 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 ...rT# Worksheet 'bsd' (2006-10-03 at 09:49) hide%html> hide%html> The L-function hide%html> L(E,s) ... of an elliptic curve is a ... hide%html> function on the complex numbers hide%html> defined by counting points modulo primes so that formally hide%html>

                                            hide%html>
                                            hide%html> \displaystyle hide%html> L(E,1) ``=\,\,'' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html>
                                            hide%html>
                                            The L-function L(E,s) of an elliptic curve is a function on the complex numbers defined by counting points modulo primes so that formally

                                            \displaystyle L(E,1) ``=\,\,'' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
                                            rT}# Worksheet 'bsd' (2006-10-03 at 09: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) Traceback (most recent call last): ... TypeError: graphics_array() takes exactly 1 argument (3 given)rT# Worksheet 'bsd' (2006-10-03 at 09:49) 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 ...rTH # Worksheet 'bsd' (2006-10-03 at 09:49) hide> print """ hide> hide> ASIDE -- big recent theorem of Taylor, Michael 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, Michael Harris, Clozel, Shepherd-Barron
                                            THE SATO-TATE CONJECTURE is a theorem
                                            (in a wide range of cases).
                                            rT# Worksheet 'bsd' (2006-10-03 at 09:49) hide%html> hide%html> Recall that hide%html> 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>
                                            Recall that 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})
                                            rT(# Worksheet 'bsd' (2006-10-03 at 09:49) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) # Tim Dokchitser sage: P = plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2) ... sage: P.show(dpi=150) rT1# Worksheet 'bsd' (2006-10-03 at 09:49) sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) 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('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=200 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() rT# Worksheet 'bsd' (2006-10-03 at 09:56) hide%html> hide%html> An elliptic curve hide%html> E hide%html> over hide%html> \mathbf{Q} hide%html> is a smooth projective curve determined 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 determined 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:

                                            The Birch and Swinnerton-Dyer Conjecture for 37A

                                            hide%html>

                                            hide%html> This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer hide%html> for the elliptic curve

                                            hide%html>
                                            y^2 + y = x^3 - x,
                                            hide%html>
                                            hide%html> affectionately referred to by mathematicians as 37a. hide%html>

                                            The Birch and Swinnerton-Dyer Conjecture for 37A

                                            This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer for the elliptic curve

                                            y^2 + y = x^3 - x,

                                            affectionately referred to by mathematicians as 37a.

                                            rT# Worksheet 'bsd' (2006-10-03 at 09:56) sage: E = EllipticCurve([0,0,1,-1,0]) sage: P = E([0,0]) sage: Q = P sage: for n in range(70): ... #sleep(1) ... print '%-10s%-60s'%(n, Q) ... Q += P 0 (0 : 0 : 1) 1 (1 : 0 : 1) 2 (-1 : -1 : 1) 3 (2 : -3 : 1) 4 (1/4 : -5/8 : 1) 5 (6 : 14 : 1) 6 (-5/9 : 8/27 : 1) ...rU# Worksheet 'bsd' (2006-10-03 at 09:56) sage: E = EllipticCurve('37a') sage: G = plot(E, rgbcolor=(1,0,1), thickness=3) sage: show(G,dpi=160) rT# Worksheet 'bsd' (2006-10-03 at 09:57) sage: t = Tachyon(xres=1000, yres=800, camera_center=(2,7,4), look_at=(2,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: E = EllipticCurve('37a') sage: P = E([0,0]) sage: Q = P sage: n = 100 sage: for i in range(n): ... Q = Q + P ... c = i/n + .1 ... t.texture('r%s'%i,color=(float(i/n),0,0)) ... t.sphere((Q[0], -Q[1], .01), .04, 'r%s'%i) ... ... sage: t.save() rTJ# Worksheet 'bsd' (2006-10-03 at 09:57) sage: E = EllipticCurve([0,0,1,-1,0]) sage: G = plot(E, thickness=.6, rgbcolor=(1,0,1)) sage: Q = P sage: n = 200 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 + i*100/n) ... sage: show(G,dpi=150) rT# Worksheet 'bsd' (2006-10-03 at 09:57) hide%html> hide%html> The L-function hide%html> L(E,s) ... of an elliptic curve is a ... hide%html> function on the complex numbers hide%html> defined by counting points modulo primes so that formally hide%html>

                                            hide%html>
                                            hide%html> \displaystyle hide%html> L(E,1) ``=\,\,'' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}. hide%html>
                                            hide%html>
                                            The L-function L(E,s) of an elliptic curve is a function on the complex numbers defined by counting points modulo primes so that formally

                                            \displaystyle L(E,1) ``=\,\,'' \prod_{p} \frac{p}{\#E(\mathbf{F}_p)}.
                                            rT:# Worksheet 'bsd' (2006-10-03 at 09:57) hide%html> hide%html>

                                            A Sharp Contrast:

                                            hide%html>
                                              hide%html>
                                            1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                              hide%html>
                                            2. 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>

                                            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:

                                            1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                            2. 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 ...rT}# Worksheet 'bsd' (2006-10-03 at 09:57) 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) Traceback (most recent call last): ... TypeError: graphics_array() takes exactly 1 argument (3 given)rT# Worksheet 'bsd' (2006-10-03 at 09:57) 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 ...rT# Worksheet 'bsd' (2006-10-03 at 09:57) hide%html> hide%html> Recall that hide%html> 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>
                                            Recall that 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})
                                            rTH # Worksheet 'bsd' (2006-10-03 at 09:57) hide> print """ hide> hide> ASIDE -- big recent theorem of Taylor, Michael 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, Michael Harris, Clozel, Shepherd-Barron
                                            THE SATO-TATE CONJECTURE is a theorem
                                            (in a wide range of cases).
                                            rT# Worksheet 'bsd' (2006-10-03 at 09:57) hide> print """ hide> hide>

                                            Birch's Parallel Lines

                                            hide> hide> """ hide> E = [EllipticCurve('11a'), EllipticCurve('37a'), ... EllipticCurve('389a'), EllipticCurve('5077a')] ... hide> def f(E, B=1000, **args): ... v = []; pr = 1 ... for p in prime_range(2,B): ... pr *= float(p/E.Np(p)) ... if p >= 5: ... v.append((p, pr)) ... return line(v, **args) + point(v,**args) ... hide> G = sum([f(E[i],rgbcolor=(i/4.0,0,1-i/4.0)) for i in range(4)]) hide> show(G,ymin=0,ymax=.25,dpi=200)

                                            Birch's Parallel Lines

                                            rT(# Worksheet 'bsd' (2006-10-03 at 09:57) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) # Tim Dokchitser sage: P = plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2) ... sage: P.show(dpi=150) rU# Worksheet 'bsd' (2006-10-03 at 09:57) hide%html>

                                            hide%html> END hide%html>

                                            END

                                            rT# Worksheet 'bsd' (2006-10-03 at 09:57) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/16.py on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrTG# Worksheet 'bsd' (2006-10-03 at 09:57) pyrex> def foo(int n, m): ... return n+m /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/server/support.py:306: RuntimeWarning: Python C API version mismatch for module 18_0: This Python has API version 1013, module 18_0 has version 1012. return __builtin__.__import__(name)rUi# Worksheet 'bsd' (2006-10-03 at 09:57) sage: time n=factorial(10^6) CPU time: 2.99 s, Wall time: 3.26 srUC# Worksheet 'bsd' (2006-10-03 at 09:57) sage: C = polymake.cube(3) rU@# Worksheet 'bsd' (2006-10-03 at 09:57) sage: foo(393,3902) 4295rT# Worksheet 'bsd' (2006-10-03 at 09:57) sage: optional_packages() (['darcs_darwin', 'darcs_mactel', 'database_cremona_ellcurve-2005.11.03', 'database_gap-4.4.7_2', 'database_jones_numfield', 'database_kohel-20060803', 'database_odlyzko_zeta', 'database_sloane_oeis-2005-12', 'database_stein_watkins_mini', 'extra_docs-2006-04-12', 'gap_packages-4.4.7_4', 'kash3_osx-2006.01.31', 'lie-2.2', 'linbox-1.0.0-20060724', 'moin-1.5.4.p0', 'numarray-1.5.2', 'nzmath-0.5.1', 'trac-2006.09.08'], ['RealLib3-Linux-i686', 'darcs_cygwin', ...rU# Worksheet 'bsd' (2006-10-03 at 09:57) sage: C.facets() [(0, 1, 0, 0), (1, -1, 0, 0), (0, 0, 1, 0), (1, 0, -1, 0), (0, 0, 0, 1), (1, 0, 0, -1)]rU)# Worksheet 'bsd' (2006-10-03 at 09:57) rU)# Worksheet 'bsd' (2006-10-03 at 09:57) rU)# Worksheet 'bsd' (2006-10-03 at 09:57) rUi# Worksheet 'bsd' (2006-10-03 at 09:58) sage: time n=factorial(10^6) CPU time: 3.00 s, Wall time: 3.17 srTG# Worksheet 'bsd' (2006-10-03 at 09:58) pyrex> def foo(int n, m): ... return n+m /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/server/support.py:306: RuntimeWarning: Python C API version mismatch for module 29_0: This Python has API version 1013, module 29_0 has version 1012. return __builtin__.__import__(name)rUC# Worksheet 'bsd' (2006-10-03 at 09:58) sage: C = polymake.cube(3) rU# Worksheet 'bsd' (2006-10-03 at 09:58) sage: C.facets() [(0, 1, 0, 0), (1, -1, 0, 0), (0, 0, 1, 0), (1, 0, -1, 0), (0, 0, 0, 1), (1, 0, 0, -1)]rT# Worksheet 'bsd' (2006-10-03 at 09:58) sage: optional_packages() (['darcs_darwin', 'darcs_mactel', 'database_cremona_ellcurve-2005.11.03', 'database_gap-4.4.7_2', 'database_jones_numfield', 'database_kohel-20060803', 'database_odlyzko_zeta', 'database_sloane_oeis-2005-12', 'database_stein_watkins_mini', 'extra_docs-2006-04-12', 'gap_packages-4.4.7_4', 'kash3_osx-2006.01.31', 'lie-2.2', 'linbox-1.0.0-20060724', 'moin-1.5.4.p0', 'numarray-1.5.2', 'nzmath-0.5.1', 'trac-2006.09.08'], ['RealLib3-Linux-i686', 'darcs_cygwin', ...rT# Worksheet 'bsd' (2006-10-03 at 11:08) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/33.py on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT# Worksheet 'bsd' (2006-10-03 at 11:17) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/1.py on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT# Worksheet 'bsd' (2006-10-03 at 11:21) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/1.py on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT# Worksheet 'bsd' (2006-10-03 at 11:28) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/1.py on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT"# Worksheet 'bsd' (2006-10-03 at 11:28) hide%html> # -*- coding: ascii -*- hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/2.py on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT"# Worksheet 'bsd' (2006-10-03 at 11:28) hide%html> # -*- coding: ascii -*- hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/3.py on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT# Worksheet 'bsd' (2006-10-03 at 11:29) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/4.py on line 6, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT# Worksheet 'bsd' (2006-10-03 at 11:29) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> class='math'>\text{ord}_{s=1} L(E,s) = \text{rank } hide%html> E hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/5.py on line 6, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT# Worksheet 'bsd' (2006-10-03 at 11:29) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> \text{ord}_{s=1} L(E,s) = \text{rank }E hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/6.py on line 6, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT,# Worksheet 'bsd' (2006-10-03 at 11:30) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> hide%html> \text{ord}_{s=1} hide%html> L(E,s) hide%html> = hide%html> \text{rank } hide%html> E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/7.py on line 6, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT,# Worksheet 'bsd' (2006-10-03 at 11:30) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> hide%html> \text{ord}_{s=1} hide%html> L(E,s) hide%html> = hide%html> \text{rank } hide%html> E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Traceback (most recent call last): ... SyntaxError: Non-ASCII character '\xa0' in file /Volumes/HOME/talks/2006-10-03-sage-amath/sage_notebook/worksheets/bsd/code/8.py on line 6, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsrT# Worksheet 'bsd' (2006-10-03 at 11:30) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                            hide%html> hide%html> \text{ord}_{s=1} hide%html> L(E,s) hide%html> = hide%html> \text{rank } hide%html> E hide%html> hide%html>

                                            hide%html>
                                              hide%html>
                                            1. This is a theorem ... when the order of vanishing is 0 or 1.

                                              ... hide%html>
                                            2. It is a million dollar Clay Problem. hide%html>

                                              hide%html>
                                            3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                              hide%html>
                                            4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                            hide%html> (back to slides) Conjecture (Birch and Swinnerton-Dyer):
                                            \text{ord}_{s=1} L(E,s) = \text{rank } E

                                            1. This is a theorem when the order of vanishing is 0 or 1.

                                            2. It is a million dollar Clay Problem.

                                            3. It is an open problem to prove that t...rT# Worksheet 'bsd' (2006-10-03 at 11:31) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                              hide%html> hide%html> \text{ord}_{s=1} hide%html> L(E,s) hide%html> = hide%html> \text{rank } hide%html> E hide%html> hide%html>

                                              hide%html>
                                                hide%html>
                                              1. This is a theorem ... when the order of vanishing is 0 or 1.

                                                ... hide%html>
                                              2. It is a million dollar Clay Problem. hide%html>

                                                hide%html>
                                              3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                                hide%html>
                                              4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                              hide%html> (back to slides) Conjecture (Birch and Swinnerton-Dyer):
                                              \text{ord}_{s=1} L(E,s) = \text{rank } E

                                              1. This is a theorem when the order of vanishing is 0 or 1.

                                              2. It is a million dollar Clay Problem.

                                              3. It is an open problem to prove that t...rT# Worksheet 'bsd' (2006-10-03 at 11:31) hide%html> hide%html> Conjecture (Birch and Swinnerton-Dyer):
                                                hide%html> hide%html> \text{ord}_{s=1} hide%html> L(E,s)=\text{rank }E hide%html>

                                                hide%html>
                                                  hide%html>
                                                1. This is a theorem ... when the order of vanishing is 0 or 1.

                                                  ... hide%html>
                                                2. It is a million dollar Clay Problem. hide%html>

                                                  hide%html>
                                                3. hide%html> It is an open problem ... to prove that the order of vanishing ... hide%html> can ever be 4 or larger.

                                                  hide%html>
                                                4. hide%html> There is also a beautiful conjecture hide%html> (that is very useful computationally!) hide%html> about the first nonzero coefficient hide%html> of the Taylor expansion of L(E,s) hide%html> about s=1. hide%html>
                                                hide%html> (back to slides) Conjecture (Birch and Swinnerton-Dyer):
                                                \text{ord}_{s=1} L(E,s)=\text{rank }E

                                                1. This is a theorem when the order of vanishing is 0 or 1.

                                                2. It is a million dollar Clay Problem.

                                                3. It is an open problem to prove that the order...rTK# Worksheet 'bsd' (2006-10-03 at 11:32) pyrex> def foo(int n, int m): ... return n+m /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/server/support.py:306: RuntimeWarning: Python C API version mismatch for module 13_0: This Python has API version 1013, module 13_0 has version 1012. return __builtin__.__import__(name)rU@# Worksheet 'bsd' (2006-10-03 at 11:34) sage: foo(393,3902) 4295rTI# Worksheet 'bsd' (2006-10-03 at 11:43) pyrex> def foo(int n, int m): ... return n+m /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/server/support.py:306: RuntimeWarning: Python C API version mismatch for module 2_0: This Python has API version 1013, module 2_0 has version 1012. return __builtin__.__import__(name)rTI# Worksheet 'bsd' (2006-10-03 at 11:47) pyrex> def foo(int n, int m): ... return n+m /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/server/support.py:306: RuntimeWarning: Python C API version mismatch for module 2_0: This Python has API version 1013, module 2_0 has version 1012. return __builtin__.__import__(name)rTI# Worksheet 'bsd' (2006-10-03 at 11:49) pyrex> def foo(int n, int m): ... return n+m /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/server/support.py:306: RuntimeWarning: Python C API version mismatch for module 2_0: This Python has API version 1013, module 2_0 has version 1012. return __builtin__.__import__(name)rTI# Worksheet 'bsd' (2006-10-03 at 11:50) pyrex> def foo(int n, int m): ... return n+m /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/server/support.py:306: RuntimeWarning: Python C API version mismatch for module 4_0: This Python has API version 1013, module 4_0 has version 1012. return __builtin__.__import__(name)rTI# Worksheet 'bsd' (2006-10-03 at 11:51) pyrex> def foo(int n, int m): ... return n+m /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/server/support.py:306: RuntimeWarning: Python C API version mismatch for module 2_0: This Python has API version 1013, module 2_0 has version 1012. return __builtin__.__import__(name)rTQ# Worksheet 'bsd' (2006-10-03 at 11:52) pyrex> def foo(int n, int m): ... return n+m /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/server/support.py:306: RuntimeWarning: Python C API version mismatch for module sage2_0: This Python has API version 1013, module sage2_0 has version 1012. return __builtin__.__import__(name)rUX# Worksheet 'bsd' (2006-10-03 at 11:54) pyrex> def foo(int n, int m): ... return n+m rU@# Worksheet 'bsd' (2006-10-03 at 11:54) sage: foo(393,3902) 4295rUX# Worksheet 'bsd' (2006-10-03 at 11:55) pyrex> def foo(int n, int m): ... return n+m rU@# Worksheet 'bsd' (2006-10-03 at 11:55) sage: foo(393,3902) 4295rUX# Worksheet 'bsd' (2006-10-03 at 11:56) pyrex> def foo(int n, int m): ... return n+m rUX# Worksheet 'bsd' (2006-10-03 at 11:56) pyrex> def foo(int n, int m): ... return n+m rUX# Worksheet 'bsd' (2006-10-03 at 11:56) pyrex> def foo(int n, int m): ... return n+m rUX# Worksheet 'bsd' (2006-10-03 at 12:01) pyrex> def foo(int n, int m): ... return n+m rU@# Worksheet 'bsd' (2006-10-03 at 12:01) sage: foo(393,3902) 4295rU# Worksheet 'bsd' (2006-10-03 at 13:06) sage: E = EllipticCurve('37a') sage: G = plot(E, rgbcolor=(1,0,1), thickness=3) sage: show(G,dpi=160) rU# Worksheet 'bsd' (2006-10-03 at 13:07) sage: E = EllipticCurve('37a') sage: G = plot(E, rgbcolor=(1,0,1), thickness=3) sage: show(G,dpi=160) rU# Worksheet 'bsd' (2006-10-03 at 13:07) sage: E = EllipticCurve('37a') sage: G = plot(E, rgbcolor=(1,0,0), thickness=3) sage: show(G,dpi=160) rU# Worksheet 'bsd' (2006-10-03 at 13:08) sage: E = EllipticCurve('37a') sage: G = plot(E, rgbcolor=(1,0,0), thickness=3) sage: show(G,dpi=160) rU# Worksheet 'bsd' (2006-10-03 at 13:08) sage: E = EllipticCurve('37a') sage: G = plot(E, rgbcolor=(1,0,0), thickness=3) sage: show(G,dpi=160) rU# Worksheet 'bsd' (2006-10-03 at 13:08) sage: E = EllipticCurve('37a') sage: G = plot(E, rgbcolor=(1,0,0), thickness=3) sage: show(G,dpi=160) rT# Worksheet 'bsd' (2006-10-03 at 13:09) sage: E = EllipticCurve([0,0,1,-1,0]) sage: P = E([0,0]) sage: Q = P sage: for n in range(70): ... #sleep(1) ... print '%-10s%-60s'%(n, Q) ... Q += P 0 (0 : 0 : 1) 1 (1 : 0 : 1) 2 (-1 : -1 : 1) 3 (2 : -3 : 1) 4 (1/4 : -5/8 : 1) 5 (6 : 14 : 1) 6 (-5/9 : 8/27 : 1) ...rTJ# Worksheet 'bsd' (2006-10-03 at 13:09) sage: E = EllipticCurve([0,0,1,-1,0]) sage: G = plot(E, thickness=.6, rgbcolor=(1,0,1)) sage: Q = P sage: n = 200 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 + i*100/n) ... sage: show(G,dpi=150) rTJ# Worksheet 'bsd' (2006-10-03 at 13:10) sage: E = EllipticCurve([0,0,1,-1,0]) sage: G = plot(E, thickness=.6, rgbcolor=(1,0,1)) sage: Q = P sage: n = 200 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 + i*100/n) ... sage: show(G,dpi=150) rT# Worksheet 'bsd' (2006-10-03 at 13:10) sage: t = Tachyon(xres=1000, yres=800, camera_center=(2,7,4), look_at=(2,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: E = EllipticCurve('37a') sage: P = E([0,0]) sage: Q = P sage: n = 100 sage: for i in range(n): ... Q = Q + P ... c = i/n + .1 ... t.texture('r%s'%i,color=(float(i/n),0,0)) ... t.sphere((Q[0], -Q[1], .01), .04, 'r%s'%i) ... ... sage: t.save() rT:# Worksheet 'bsd' (2006-10-03 at 13:11) hide%html> hide%html>

                                                  A Sharp Contrast:

                                                  hide%html>
                                                    hide%html>
                                                  1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                                    hide%html>
                                                  2. 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>

                                                  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:

                                                  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                                  2. 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 ...rT:# Worksheet 'bsd' (2006-10-03 at 13:12) hide%html> hide%html>

                                                  A Sharp Contrast:

                                                  hide%html>
                                                    hide%html>
                                                  1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                                    hide%html>
                                                  2. 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>

                                                  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:

                                                  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                                  2. 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 ...rTH# Worksheet 'bsd' (2006-10-03 at 13:13) hide%html> hide%html>

                                                  Very Difficult Basic Questions:

                                                  hide%html>
                                                    hide%html>
                                                  1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                                    hide%html>
                                                  2. 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>

                                                  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>

                                                  Very Difficult Basic Questions:

                                                  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                                  2. 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 w...rTN# Worksheet 'bsd' (2006-10-03 at 13:13) hide%html> hide%html>

                                                  Very Difficult Fundamental Questions:

                                                  hide%html>
                                                    hide%html>
                                                  1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                                    hide%html>
                                                  2. 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>

                                                  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>

                                                  Very Difficult Fundamental Questions:

                                                  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                                  2. 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 ...rT8# Worksheet 'bsd' (2006-10-03 at 13:14) hide%html> hide%html>

                                                  Sharp Contrast:

                                                  hide%html>
                                                    hide%html>
                                                  1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                                    hide%html>
                                                  2. 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>

                                                  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>

                                                  Sharp Contrast:

                                                  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                                  2. 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 el...rT/# Worksheet 'bsd' (2006-10-03 at 13:15) hide%html> hide%html>

                                                  Sharp Contrast:

                                                  hide%html>
                                                    hide%html>
                                                  1. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x hide%html> hide%html> has infinitely many rational points.
                                                    hide%html>
                                                  2. hide%html> The elliptic curve hide%html> hide%html> y^2 + y = x^3 - x^2 hide%html> hide%html> has only FIVE rational points! 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>

                                                  Sharp Contrast:

                                                  1. The elliptic curve y^2 + y = x^3 - x has infinitely many rational points.
                                                  2. The elliptic curve y^2 + y = x^3 - x^2 has only FIVE rational points!

                                                  Question 1: Is there an a priori way to tell which type of elliptic cu...rT}# Worksheet 'bsd' (2006-10-03 at 13:16) 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) Traceback (most recent call last): ... TypeError: graphics_array() takes exactly 1 argument (3 given)rTz# Worksheet 'bsd' (2006-10-03 at 13:16) 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),fontsize=4) Traceback (most recent call last): ... TypeError: save() got an unexpected keyword argument 'fontsize'rT}# Worksheet 'bsd' (2006-10-03 at 13:16) 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) Traceback (most recent call last): ... TypeError: graphics_array() takes exactly 1 argument (3 given)rTz# Worksheet 'bsd' (2006-10-03 at 13:16) 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: graphics_array(G).show(fontsize=4) Traceback (most recent call last): ... TypeError: save() got an unexpected keyword argument 'fontsize'rT# Worksheet 'bsd' (2006-10-03 at 13:16) 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,fontsize=4)) Traceback (most recent call last): ... TypeError: graphics_array() got an unexpected keyword argument 'fontsize'rT# Worksheet 'bsd' (2006-10-03 at 13:17) sage: # Some Pictures of Counting Points sage: E = EllipticCurve([0,0,1,-1,0]) sage: G = [plot(E.change_ring(GF(p)), fontsize=4, ... pointsize=30, rgbcolor=(1,0,0))\ ... for p in primes(42) if p!=37] ... sage: show(graphics_array(G)) verbose 0 (803: plot.py, options) WARNING: Ignoring option 'fontsize'=4 verbose 0 (803: plot.py, options) The allowed options for Point set defined by 1 point(s) are: alpha How transparent the line is. faceted If True color the edge of the point. hue The color given as a hue. pointsize How big the point is. ...rT# Worksheet 'bsd' (2006-10-03 at 13:17) 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)) rTn# Worksheet 'bsd' (2006-10-03 at 13:22) 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)) Traceback (most recent call last): ... NameError: global name 'reshape' is not definedrTx# Worksheet 'bsd' (2006-10-03 at 13:23) 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)) Traceback (most recent call last): ... AttributeError: 'Graphics' object has no attribute 'axes'rT# Worksheet 'bsd' (2006-10-03 at 13:34) 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)) rT# Worksheet 'bsd' (2006-10-03 at 13:36) 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: A = graphics_array(G, 4,3) rT# Worksheet 'bsd' (2006-10-03 at 13:36) 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: A = graphics_array(G, 4,3) rT2# Worksheet 'bsd' (2006-10-03 at 13:37) 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: A = graphics_array(G, 4,3) sage: A.show(figsize=[5,1]) rT2# Worksheet 'bsd' (2006-10-03 at 13:37) 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: A = graphics_array(G, 4,3) sage: A.show(figsize=[2,2]) rTB# Worksheet 'bsd' (2006-10-03 at 13:37) 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: A = graphics_array(G, 4,3) sage: A.show(figsize=[2,2], xmin=-1,xmax=5) rT;# Worksheet 'bsd' (2006-10-03 at 13:37) 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: A = graphics_array(G, 4,3) sage: A.show(figsize=[2,2], xmin=-1) rT;# Worksheet 'bsd' (2006-10-03 at 13:37) 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: A = graphics_array(G, 4,3) sage: A.show(figsize=[4,4], xmin=-1) rT:# Worksheet 'bsd' (2006-10-03 at 13:37) 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: A = graphics_array(G, 4,3) sage: A.show(figsize=[4,4], xmin=0) rTB# Worksheet 'bsd' (2006-10-03 at 13:37) 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: A = graphics_array(G, 4,3) sage: A.show(figsize=[4,4], xmin=0, ymin=0) rTD# Worksheet 'bsd' (2006-10-03 at 13:38) 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=(.5,0,.5)) ... for p in primes(42) if p!=37] ... sage: A = graphics_array(G, 4,3) sage: A.show(figsize=[4,4], xmin=0, ymin=0) rT# Worksheet 'bsd' (2006-10-03 at 13:38) 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 ...rTE# Worksheet 'bsd' (2006-10-03 at 13:39) 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=(.5,0,.5)) ... for p in primes(42) if p!=37] ... sage: A = graphics_array(G, 3, 4) sage: A.show(figsize=[5,5], xmin=0, ymin=0) rTE# Worksheet 'bsd' (2006-10-03 at 13:39) 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=(.5,0,.5)) ... for p in primes(42) if p!=37] ... sage: A = graphics_array(G, 3, 4) sage: A.show(figsize=[5,3], xmin=0, ymin=0) rTH # Worksheet 'bsd' (2006-10-03 at 13:40) hide> print """ hide> hide> ASIDE -- big recent theorem of Taylor, Michael 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, Michael Harris, Clozel, Shepherd-Barron
                                                  THE SATO-TATE CONJECTURE is a theorem
                                                  (in a wide range of cases).
                                                  rT# Worksheet 'bsd' (2006-10-03 at 13:40) hide%html> hide%html> 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>
                                                  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})
                                                  rT(# Worksheet 'bsd' (2006-10-03 at 13:41) sage: # Compute the L-series of E sage: E = EllipticCurve([0,0,1,-1,0]) sage: L = E.Lseries_dokchitser(10) # Tim Dokchitser sage: P = plot(L, -2,3, rgbcolor=(0,0,1), plot_points=90, \ ... plot_division=0, thickness=2) ... sage: P.show(dpi=150) rUX# Worksheet 'bsd' (2006-10-03 at 13:43) pyrex> def foo(int n, int m): ... return n+m rU@# Worksheet 'bsd' (2006-10-03 at 13:43) sage: foo(393,3902) 4295rU@# Worksheet 'bsd' (2006-10-03 at 13:43) sage: foo(393,3902) 4295rT# Worksheet 'bsd' (2006-10-03 at 15:11) hide%html>

                                                  The Birch and Swinnerton-Dyer Conjecture for 37A

                                                  hide%html>

                                                  hide%html> This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer hide%html> for the elliptic curve

                                                  hide%html>
                                                  y^2 + y = x^3 - x,
                                                  hide%html>
                                                  hide%html> affectionately referred to by mathematicians as 37a. hide%html>

                                                  The Birch and Swinnerton-Dyer Conjecture for 37A

                                                  This worksheet illustrates the conjecture of Birch and Swinnerton-Dyer for the elliptic curve

                                                  y^2 + y = x^3 - x,

                                                  affectionately referred to by mathematicians as 37a.

                                                  rU# Worksheet 'bsd' (2006-10-03 at 15:18) sage: E = EllipticCurve('37a') sage: print E sage: G = plot(E, rgbcolor=(1,0,0), thickness=3) sage: show(G,dpi=160) Elliptic Curve defined by y^2 + y = x^3 - x over Rational FieldrT# Worksheet 'bsd' (2006-10-03 at 15:20) sage: E = EllipticCurve([0,0,1,-1,0]) sage: P = E([0,0]) sage: Q = P sage: for n in range(70): ... #sleep(1) ... print '%-10s%-60s'%(n, Q) ... Q += P 0 (0 : 0 : 1) 1 (1 : 0 : 1) 2 (-1 : -1 : 1) 3 (2 : -3 : 1) 4 (1/4 : -5/8 : 1) 5 (6 : 14 : 1) 6 (-5/9 : 8/27 : 1) ...rUN# Worksheet 'talk' (2006-10-19 at 09:25) sage: f = gp('ellinit([1,2,3,4,5])') rUk# Worksheet 'talk' (2006-10-19 at 09:25) sage: f = gp('ellinit([1,2,3,4,5])') sage: f.elltors() [1, [], []]r UF# Worksheet 'talk' (2006-10-19 at 09:25) sage: f = maxima('sin(x^2)') r UW# Worksheet 'talk' (2006-10-19 at 09:25) sage: f = maxima('1/(x^3-17)'); f 1/(x^3 - 17)r Un# Worksheet 'talk' (2006-10-19 at 09:26) sage: view(f) \frac{1}{x^3-17}r Ul# Worksheet 'talk' (2006-10-19 at 09:26) sage: show(f)
                                                  \frac{1}{x^3-17}
                                                  r Ue# Worksheet 'talk' (2006-10-19 at 09:26) sage: type(f) rU?# Worksheet 'talk' (2006-10-19 at 09:26) sage: parent(f) MaximarU# Worksheet 'talk' (2006-10-19 at 09:26) sage: f.integrate() -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))rU# Worksheet 'talk' (2006-10-19 at 09:26) sage: g = f.integrate(); g -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))rTg# Worksheet 'talk' (2006-10-19 at 09:26) sage: show(g)
                                                  -\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}}}
                                                  rU# Worksheet 'talk' (2006-10-19 at 09:26) sage: f.integrate('x') -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))rU# Worksheet 'talk' (2006-10-19 at 09:26) sage: g = f.integrate('x'); g -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))rTg# Worksheet 'talk' (2006-10-19 at 09:26) sage: show(g)
                                                  -\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}}}
                                                  rU# Worksheet 'talk' (2006-10-19 at 09:27) hide%html>

                                                  INTERFACES

                                                  INTERFACES

                                                  rUW# Worksheet 'talk' (2006-10-19 at 09:27) sage: f = maxima('1/(x^3-17)'); f 1/(x^3 - 17)rUl# Worksheet 'talk' (2006-10-19 at 09:27) sage: show(f)
                                                  \frac{1}{x^3-17}
                                                  rUe# Worksheet 'talk' (2006-10-19 at 09:27) sage: type(f) rU# Worksheet 'talk' (2006-10-19 at 09:27) sage: print type(f) sage: print parent(f) MaximarU# Worksheet 'talk' (2006-10-19 at 09:27) sage: f = maxima('1/(x^3-17)'); f sage: show(f)
                                                  \frac{1}{x^3-17}
                                                  rU# Worksheet 'talk' (2006-10-19 at 09:28) sage: f = maxima('1/(x^3-17)'); f sage: print type(f) sage: print parent(f) MaximarU# Worksheet 'talk' (2006-10-19 at 09:28) sage: f = maxima('1/(x^3-17)'); f sage: g = f.integrate('x'); g -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))rT# Worksheet 'talk' (2006-10-19 at 09:28) sage: f = maxima('1/(x^3-17)'); f sage: g = f.integrate('x') sage: show(g)
                                                  -\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}}}
                                                  rT/# Worksheet 'talk' (2006-10-19 at 09:29) sage: A = gp('[a,b,c;d,e,f;g,h,i]') sage: show(A^(-1))
                                                  \begin{verbatim}[(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 + ((-...rT)# Worksheet 'talk' (2006-10-19 at 09:29) sage: A = gp('[a,b,c;d,e,f;g,h,i]') sage: A^(-1) [(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 + ...r T/# Worksheet 'talk' (2006-10-19 at 09:29) sage: A = gp('[a,b,c;d,e,f;g,h,i]') sage: print A^(-1) [(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 + ...r!T)# Worksheet 'talk' (2006-10-19 at 09:29) sage: A = gp('[a,b,c;d,e,f;g,h,i]') sage: A^(-1) [(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 + ...r"TC# Worksheet 'talk' (2006-10-19 at 09:29) sage: A = gp('[a,b,c;d,e,f;g,h,i]') sage: print type(A) sage: print A^(-1) [(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 + ((-...r#TC# Worksheet 'talk' (2006-10-19 at 09:29) sage: A = gp('[a,b,c;d,e,f;g,h,i]') sage: print type(A) sage: print A^(-1) [(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 + ((-...r$TC# Worksheet 'talk' (2006-10-19 at 09:30) sage: A = gp('[a,b,c;d,e,f;g,h,i]') sage: print type(A) sage: print A^(-1) [(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 + ((-...r%T6# Worksheet 'talk' (2006-10-19 at 09:30) sage: A = octave('rand(10)') sage: print A sage: print A^(-1) 0.540233 0.10237 0.592851 0.992021 0.782905 0.338157 0.437531 0.615261 0.673336 0.944292 0.0924152 0.92745 0.65302 0.312289 0.896739 0.554782 0.118618 0.138711 0.711368 0.907808 0.535666 0.0226915 0.90442 0.564711 0.742318 0.0685051 0.574665 0.584545 0.255434 0.126589 0.828554 0.214527 0.199915 0.126256 0.157658 0.150556 0.0831022 0.272061 0.922095 0.652912 0.428929 0.152755 0.827748 0.00318346 0.114328 0.60413 0.474918 0.434969 0.242273 0.940505 ...r&TH# Worksheet 'talk' (2006-10-19 at 09:31) sage: A = octave('rand(5)') sage: print A sage: print "-"*80 sage: print A^(-1) 0.19472 0.16697 0.351548 0.539802 0.0199862 0.370441 0.489552 0.333891 0.906126 0.263829 0.568401 0.126384 0.211241 0.272055 0.491881 0.0528885 0.888624 0.308916 0.978998 0.484458 0.696893 0.946887 0.521887 0.0106831 0.541822 -------------------------------------------------------------------------------- -2.23708 3.78256 -0.380034 -2.16762 0.52382 -1.88204 1.89533 -1.64454 -0.269131 0.880127 5.45744 -4.8694 0.865455 1.25445 0.262422...r'TH# Worksheet 'talk' (2006-10-19 at 09:31) sage: A = octave('rand(5)') sage: print A sage: print "-"*50 sage: print A^(-1) 0.0796719 0.716029 0.872568 0.263685 0.919475 0.619603 0.238647 0.492255 0.688629 0.346014 0.135657 0.378575 0.393143 0.41954 0.473239 0.948066 0.528057 0.277537 0.974515 0.986643 0.495765 0.426688 0.406144 0.563455 0.0214091 -------------------------------------------------- 1.20432 0.501156 -4.67814 0.930619 0.697643 0.474458 -3.27058 -0.210869 0.748747 2.63714 0.869824 2.26366 -0.887977 -1.16787 -0.492561 -2.06032 0.3949 4.91579...r(TZ# Worksheet 'talk' (2006-10-19 at 09:31) sage: A = octave('rand(5)') sage: print " \n" sage: print A sage: print "-"*50 sage: print A^(-1) 0.118722 0.842594 0.145863 0.607679 0.912835 0.236973 0.589157 0.765505 0.575501 0.0698014 0.407043 0.404963 0.171966 0.511035 0.464194 0.995894 0.0954158 0.416089 0.446565 0.896287 0.757977 0.881614 0.64696 0.792284 0.44013 -------------------------------------------------- -0.682892 -1.52722 -0.813629 0.243568 2.02064 0.979078 -1.52509 -3.34585 -0.526184 2.81155 0.435208 1.71745 -2.42901 0.951533 -0.550902 -1.44204 1.61189 7.1326...r)T\# Worksheet 'talk' (2006-10-19 at 09:31) sage: A = octave('rand(5)') sage: print " \n" sage: print A sage: print "-"*50 sage: print A^(-1) 0.0282721 0.847053 0.300613 0.837298 0.72434 0.824851 0.00272041 0.890899 0.90351 0.666332 0.32582 0.343917 0.571915 0.978007 0.171115 0.489362 0.202045 0.903367 0.618894 0.951599 0.10589 0.918789 0.510243 0.805029 0.0278217 -------------------------------------------------- 0.552967 4.04076 -3.74872 -2.61886 1.45735 0.426157 1.15501 -2.40138 -0.752692 1.75648 -1.79609 -2.04694 1.31585 2.54603 0.609493 0.545576 -0.551607 2.41296 -0...r*U># Worksheet 'talk' (2006-10-19 at 09:31) sage: print " \n"*10 r+T\# Worksheet 'talk' (2006-10-19 at 09:33) sage: A = octave('rand(5)') sage: print " \n" sage: print A sage: print "-"*50 sage: print A^(-1) 0.937912 0.665025 0.136983 0.953297 0.527216 0.654419 0.820315 0.729918 0.755121 0.865976 0.790765 0.839184 0.233096 0.731287 0.200771 0.2203 0.766318 0.71481 0.698675 0.611166 0.782678 0.51313 0.277017 0.0997076 0.71859 -------------------------------------------------- -1.42461 5.141 1.42654 -4.90973 -1.37304 0.662028 -6.94 0.48906 5.66884 2.91968 -3.38487 8.53881 1.77814 -6.01666 -3.18634 1.25297 0.793806 -0.615919...r,TH# Worksheet 'talk' (2006-10-19 at 09:33) sage: A = octave('rand(5)') sage: print A sage: print "-"*50 sage: print A^(-1) 0.720485 0.0598334 0.620743 0.47312 0.853595 0.0262542 0.00559909 0.81949 0.339393 0.301413 0.468754 0.776553 0.599395 0.437218 0.639244 0.415678 0.404504 0.0878806 0.785583 0.905958 0.554646 0.0678352 0.774693 0.713332 0.826995 -------------------------------------------------- -1.73582 -4.15743 1.01781 -2.52641 5.2878 -0.666248 -0.237732 1.36998 -0.0101645 -0.273496 0.122426 0.929514 0.339397 -0.686693 0.0247735 -4.8337 -2...r-TC# Worksheet 'talk' (2006-10-19 at 09:33) sage: A = gp('[a,b,c;d,e,f;g,h,i]') sage: print type(A) sage: print A^(-1) [(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 + (...r.U# Worksheet 'talk' (2006-10-19 at 09:33) hide%html>

                                                  INTERFACES

                                                  INTERFACES

                                                  r/U^# Worksheet 'talk' (2006-10-19 at 09:33) sage: f = maxima('1/(x^3-17)'); f 1/(x^3 - 17) r0U# Worksheet 'talk' (2006-10-19 at 09:33) sage: f = maxima('1/(x^3-17)'); f sage: show(f)
                                                  \frac{1}{x^3-17}
                                                  r1U# Worksheet 'talk' (2006-10-19 at 09:33) sage: f = maxima('1/(x^3-17)'); f sage: print type(f) sage: print parent(f) Maxima r2U# Worksheet 'talk' (2006-10-19 at 09:33) sage: f = maxima('1/(x^3-17)'); f sage: g = f.integrate('x'); g -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)) r3T# Worksheet 'talk' (2006-10-19 at 09:33) sage: f = maxima('1/(x^3-17)'); f sage: g = f.integrate('x') sage: show(g)
                                                  -\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}}}
                                                  r4TC# Worksheet 'talk' (2006-10-19 at 09:33) sage: A = gp('[a,b,c;d,e,f;g,h,i]') sage: print type(A) sage: print A^(-1) [(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 + (...r5TH# Worksheet 'talk' (2006-10-19 at 09:33) sage: A = octave('rand(5)') sage: print A sage: print "-"*50 sage: print A^(-1) 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 ...r6U/# Worksheet 'talk' (2006-10-19 at 09:33) r7Ux# Worksheet 'talk' (2006-10-19 at 09:35) sage: v = octave('[1:1:10]') sage: print v 1 2 3 4 5 6 7 8 9 10 r8U# Worksheet 'talk' (2006-10-19 at 09:36) sage: v.fft() (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) r9U# Worksheet 'talk' (2006-10-19 at 09:36) hide%html>

                                                  NATIVE CODE

                                                  NATIVE CODE

                                                  r:T# Worksheet 'talk' (2006-10-19 at 09:37) sage: v = octave('[1:1:10]') sage: print v sage: print v.fft() 1 2 3 4 5 6 7 8 9 10 (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) r;T# Worksheet 'talk' (2006-10-19 at 09:37) sage: v = octave('[1:1:10]') sage: print v sage: print v.fft() sage: show(points(v)) 1 2 3 4 5 6 7 8 9 10 (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) Traceback (most recent call last): show(points(v)) File "/Volumes/HOME/s/local/lib/python2.5/", line 1, in NameError: name 'points' is not defined r<TL# Worksheet 'talk' (2006-10-19 at 09:37) sage: v = octave('[1:1:10]') sage: print v sage: print v.fft() sage: show(point(v)) 1 2 3 4 5 6 7 8 9 10 (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) Traceback (most recent call last): show(point(v)) File "/Volumes/HOME/s/local/lib/python2.5/", line 1, in File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/plot/plot.py", line 1232, in __call__ for z in points: File "/Volumes/HOME/s/local/lib/p...r=U;# Worksheet 'talk' (2006-10-19 at 09:37) sage: v[0] r>Ub# Worksheet 'talk' (2006-10-19 at 09:37) sage: v[1] sage4 parse error: syntax error r?U;# Worksheet 'talk' (2006-10-19 at 09:37) sage: v[1] r@U;# Worksheet 'talk' (2006-10-19 at 09:37) sage: v[1] rAT# Worksheet 'talk' (2006-10-19 at 09:37) sage: v(1) Traceback (most recent call last): v(1) File "/Volumes/HOME/s/local/lib/python2.5/", line 1, in File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/interfaces/expect.py", line 679, in __call__ return getattr(P, self.name())(*args) File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/interfaces/expect.py", line 604, in __call__ return self._parent.function_call(self._name, list(args)) File "/Volumes...rBU# Worksheet 'talk' (2006-10-19 at 09:37) sage: v = octave('[1:1:10]') sage: print v sage: print v.fft() (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) rCUD# Worksheet 'talk' (2006-10-19 at 09:38) sage: R. = ZZ['x'] rDUq# Worksheet 'talk' (2006-10-19 at 09:38) sage: time n=factorial(10^6) CPU time: 3.00 s, Wall time: 3.14 s rEUM# Worksheet 'talk' (2006-10-19 at 09:38) sage: f = ZZ['x'](range(10^4)) rFUj# Worksheet 'talk' (2006-10-19 at 09:38) sage: f = ZZ['x'](range(10^4)) sage: print f.degree() 9999 rGUj# Worksheet 'talk' (2006-10-19 at 09:38) sage: f = ZZ['x'](range(10^4)) sage: print f.degree() 9999 rHU# Worksheet 'talk' (2006-10-19 at 09:38) sage: f = ZZ['x'](range(10^4)) sage: print f.degree() sage: t = cputime() sage: g = f*f sage: print cputime(t) 9999 0.12 rIU# Worksheet 'talk' (2006-10-19 at 09:38) sage: f = ZZ['x'](range(10^4)) sage: print f.degree() sage: t = cputime() sage: g = f*f sage: print cputime(t) 9999 0.1 rJU# Worksheet 'talk' (2006-10-19 at 09:38) sage: f = ZZ['x'](range(10^4)) sage: print f.degree() sage: t = cputime() sage: g = f*f sage: print cputime(t) 9999 0.11 rKU# Worksheet 'talk' (2006-10-19 at 09:39) sage: f = ZZ['x'](range(10^4)) sage: print f.degree() sage: t = cputime() sage: g = f^3 sage: print cputime(t) 9999 0.76 rLUC# Worksheet 'talk' (2006-10-19 at 09:40) sage: h = gp(str(f)) rMUe# Worksheet 'talk' (2006-10-19 at 09:41) sage: time k=h*h CPU time: 0.00 s, Wall time: 1.31 s rNUe# Worksheet 'talk' (2006-10-19 at 09:41) sage: time k=h*h CPU time: 0.00 s, Wall time: 1.32 s rOUF# Worksheet 'talk' (2006-10-19 at 09:41) sage: h = maple(str(f)) rPUe# Worksheet 'talk' (2006-10-19 at 09:41) sage: time k=h*h CPU time: 0.39 s, Wall time: 0.64 s rQUe# Worksheet 'talk' (2006-10-19 at 09:41) sage: time k=h*h CPU time: 0.39 s, Wall time: 0.66 s rRUG# Worksheet 'talk' (2006-10-19 at 09:41) sage: h = maple('x^3+1') rSUC# Worksheet 'talk' (2006-10-19 at 09:41) sage: h*h (x^3+1)^2 rTUP# Worksheet 'talk' (2006-10-19 at 09:41) sage: (h*h).expand() x^6+2*x^3+1 rUUp# Worksheet 'talk' (2006-10-19 at 09:42) sage: time k=(h*h).expand() CPU time: 0.00 s, Wall time: 0.11 s rVUF# Worksheet 'talk' (2006-10-19 at 09:42) sage: h = maple(str(f)) rWUq# Worksheet 'talk' (2006-10-19 at 09:42) sage: time k=(h*h).expand() CPU time: 4.41 s, Wall time: 10.45 s rXT# Worksheet 'blank' (2006-10-19 at 09:43) sage: hg_sage 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 rYT # Worksheet 'blank' (2006-10-19 at 09:43) sage: hg_sage.ci() Traceback (most recent call last): hg_sage.ci() File "/Volumes/HOME/s/local/lib/python2.5/", line 1, in File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/misc/hg.py", line 620, in commit raise RuntimeError, "You're using the SAGE notebook, so you *must* explicitly specify the comment in the commit command." RuntimeError: You're using the SAGE notebook, so you *must* explicitly specify the comment in the commit com...rZT:# Worksheet 'blank' (2006-10-19 at 09:43) sage: hg_sage.ci('Get rid of stripping blanks in output cells.') Traceback (most recent call last): hg_sage.ci('Get rid of stripping blanks in output cells.') File "/Volumes/HOME/s/local/lib/python2.5/", line 1, in File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/misc/hg.py", line 620, in commit raise RuntimeError, "You're using the SAGE notebook, so you *must* explicitly specify the comment in the commit command." RuntimeError: You're using the SAGE notebook, so you *must* ex...r[U# Worksheet 'blank' (2006-10-19 at 09:43) sage: hg_sage.ci(comment='Get rid of stripping blanks in output cells.') cd "/Volumes/HOME/s/devel/sage" && hg commit -m "Get rid of stripping blanks in output cells." r\T # Worksheet 'talk' (2006-10-19 at 09:45) sage: h = magma(x) Traceback (most recent call last): h = magma(x) File "/Volumes/HOME/s/local/lib/python2.5/", line 1, in File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/interfaces/magma.py", line 289, in __call__ return Expect.__call__(self, x) File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/interfaces/expect.py", line 443, in __call__ return x.__getattribute__(s)(self) File "sage_object.pyx", line 367, in...r]T# Worksheet 'talk' (2006-10-19 at 09:46) sage: # f = ZZ['x'](range(10^4)) sage: h = maple(str(f)) sage: t = walltime() sage: z = (h*h).expand() sage: print "Maple time: ", walltime(t) sage: h = mathematica(str(f)) sage: t = walltime() sage: z = (h*h).expand() sage: print "Maple time: ", walltime(t) Traceback (most recent call last): h = maple(str(f)) NameError: name 'f' is not defined r^U# Worksheet 'talk' (2006-10-19 at 09:46) sage: f = ZZ['x'](range(10^4)) sage: print f.degree() sage: t = cputime() sage: g = f^3 sage: print cputime(t) 9999 0.75 r_Tf# Worksheet 'talk' (2006-10-19 at 09:47) sage: f = ZZ['x'](range(10^4)) sage: h = maple(str(f)) sage: t = walltime() sage: z = (h*h).expand() sage: print "Maple time: ", walltime(t) sage: h = mathematica(str(f)) sage: t = walltime() sage: z = (h*h).expand() sage: print "Maple time: ", walltime(t) Maple time: 11.2942738533 Maple time: 0.0186419487 r`T# Worksheet 'talk' (2006-10-19 at 09:47) sage: h = mathematica('x^3 + 1') sage: time (h*h).expand() Traceback (most recent call last): time (h*h).expand() File "/Volumes/HOME/s/local/lib/python2.5/", line 1, in NameError: name 'time' is not defined raUy# Worksheet 'talk' (2006-10-19 at 09:47) sage: h = mathematica('x^3 + 1') sage: (h*h).expand() expand[(1 + x^3)^2] rbUu# Worksheet 'talk' (2006-10-19 at 09:47) sage: h = mathematica('x^3 + 1') sage: (h*h).Expand() 1 + 2*x^3 + x^6 rcT# Worksheet 'talk' (2006-10-19 at 09:48) sage: h = mathematica('x^3 + 1') sage: (h*h).Expand() Traceback (most recent call last): h = mathematica('x^3 + 1') File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/interfaces/expect.py", line 463, in __call__ return cls(self, x) File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/interfaces/expect.py", line 653, in __init__ raise TypeError, x TypeError: Error executing code in Mathematica CODE: sage2=x^3 + 1; Mathematica ERROR: Out[15]= $Aborted rdT.# Worksheet 'talk' (2006-10-19 at 09:48) sage: h = mathematica('x^3 + 1') sage: (h*h).Expand() Traceback (most recent call last): (h*h).Expand() File "/Volumes/HOME/s/local/lib/python2.5/", line 1, in File "element.pyx", line 390, in element.RingElement.__mul__ File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/interfaces/expect.py", line 823, in _mul_ return P.new('%s * %s'%(self._name, right._name)) File "/Volumes/HOME/s/local/lib/python2.5/site-packages/sage/interfaces/expect.py", line 466, in new ...reU# Worksheet 'talk' (2006-10-19 at 09:50) hide%html>

                                                  PYREX

                                                  PYREX

                                                  rfU# Worksheet 'talk' (2006-10-19 at 09:51) pyrex> def is2pow(unsigned int n): ... while n != 0 and n%2 == 0: ... n = n >> 1 ... return n == 1 rgU# Worksheet 'talk' (2006-10-19 at 09:51) sage: def is2pow_1(n): ... while n != 0 and n%2 == 0: ... n = n >> 1 ... return n == 1 rhU# Worksheet 'talk' (2006-10-19 at 09:52) sage: time [n for n in range(10^5) if is2pow_1(n)] [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 riU# Worksheet 'talk' (2006-10-19 at 09:52) pyrex> def is2pow_2(unsigned int n): ... while n != 0 and n%2 == 0: ... n = n >> 1 ... return n == 1 rjU# Worksheet 'talk' (2006-10-19 at 09:52) sage: time [n for n in range(10^5) if is2pow_2(n)] [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 rkeU_Notebook__defaultsrl}rm(Ucell_output_colorrnU#0000EEroUmax_history_lengthrpMUcell_input_colorrqU#0000000rrUword_wrap_colsrsKduU_Notebook__worksheet_dirrtUsage_notebook/worksheetsruU_Notebook__filenamervUsage_notebook/nb.sobjrwU_Notebook__default_worksheetrx(hory}rz(U_Worksheet__filenamer{U _scratch_r|U_Worksheet__cellsr}]r~((hor}r(U _Cell__inrUlatex(EllipticCurve('11a3'))rU_Cell__introspect_htmlrU!
                                                  rU_Cell__worksheetrjyU_Cell__completionsrU_Cell__introspectrU_Cell__out_htmlrUU	_Cell__idrK-U_before_preparserUxos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/45")
                                                  latex(EllipticCurve('11a3'))rU
                                                  _Cell__dirrU+sage_notebook/worksheets/_scratch_/cells/45rU
                                                  _Cell__outrUy^2 + y = x^3 - x^2rUhas_new_outputrU_Cell__is_htmlrU_Cell__sagerh%U_Cell__typerUwraprU_Cell__timerU_Cell__interruptedrub(hor}r(jUrjjyjjjUjK(jUos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/40")
                                                  E = EllipticCurve([0,0,1,-1,0])
                                                  L = E.Lseries_dokchitser(10)rjU+sage_notebook/worksheets/_scratch_/cells/40rjUjjjh%jUwraprjjub(hor}r(jUz1 = L(1-0.1*I); z1rjU!
                                                  rjjyjjjUjK)jUoos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/41")
                                                  z1 = L(1-0.1*I); z1rjU+sage_notebook/worksheets/_scratch_/cells/41rjU-0.0018635 - 0.030731*Irjjjh%jjjjub(hor}r(jUz2 = L(1+0.1*I); z2rjU!
                                                  rjjyjjjUjK*jUoos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/42")
                                                  z2 = L(1+0.1*I); z2rjU+sage_notebook/worksheets/_scratch_/cells/42rjU-0.0018635 + 0.030731*Irjjjh%jjjjub(hor}r(jUabs(z1), arg(z1)rjU!
                                                  rjjyjjjUjK+jUlos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/43")
                                                  abs(z1), arg(z1)rjU+sage_notebook/worksheets/_scratch_/cells/43rjU(0.030792, -1.6309)rjjjh%jjjjub(hor}r(jUabs(z2), arg(z2)rjU!
                                                  rjjyjjjUjK,jUlos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/44")
                                                  abs(z2), arg(z2)rjU+sage_notebook/worksheets/_scratch_/cells/44rjU(0.030792, 1.6309)rjjjh%jjjjub(hor}r(U	_Cell__inrUarg(2-.001*I)    + pirU_Cell__introspect_htmlrU!
                                                  rU_Cell__worksheetrjyU_Cell__completionsrU_Cell__introspectrU_Cell__out_htmlrUU	_Cell__idrKU_before_preparserUpos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/0")
                                                  arg(2-.001*I)    + pirU
                                                  _Cell__dirrU*sage_notebook/worksheets/_scratch_/cells/0rU
                                                  _Cell__outrU3.1410926536314596rUhas_new_outputrU_Cell__is_htmlrU_Cell__sagerh%U_Cell__typerjU_Cell__timerU_Cell__interruptedrub(hor}r(jUarg(-(2-.001*I))rjU!
                                                  rjjyjjjUjK'jUlos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/39")
                                                  arg(-(2-.001*I))rjU+sage_notebook/worksheets/_scratch_/cells/39rjU3.1410926536314601rjjjh%jjjjub(hor}r(jU
                                                  I.argumentrjT
                                                  File: /Volumes/HOME/s/local/lib/python2.4/site-packages/sage/rings/complex_number.py
                                                  Source Code (starting at line 497):
                                                      def argument(self):
                                                          r"""
                                                          The argument (angle) of the complex number, normalized
                                                          so that $-\pi < \theta \leq \pi$.
                                                  
                                                          EXAMPLES:
                                                              sage: i = CC.0
                                                              sage: (i^2).argument()
                                                              3.1415926535897931
                                                              sage: (1+i).argument()
                                                              0.78539816339744828
                                                              sage: i.argument()
                                                              1.5707963267948966
                                                              sage: (-i).argument()
                                                              -1.5707963267948966
                                                              sage: (RR('-0.001') - i).argument()
                                                              -1.5717963264615635
                                                          """
                                                          return self.parent()(self._pari_().arg())
                                                  rjjyjj]r(U I.argument??rUejUjK&U_word_being_completedrUI.argumerjUhos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/38") I.argument??rjU+sage_notebook/worksheets/_scratch_/cells/38rjUjjjjjjub(hor}r(jU%slide An {\dred 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}$.rjU!
                                                  rjjyjjjUFrjK%jUhtml.evrjT.os.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/37")
                                                  %slide
                                                  
                                                  An {\dred 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}$.rjU+sage_notebook/worksheets/_scratch_/cells/37rjUjjjh%jjjjub(hor}r(U	_Cell__inrU%python
                                                  
                                                  print(2^3)
                                                  print(2/5)rU_Cell__introspect_htmlrU!
                                                  rU_Cell__worksheetrjyU_Cell__completionsrU_Cell__introspectrU_Cell__out_htmlrUU	_Cell__idrKU_before_preparserUzos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/21")
                                                  %python
                                                  
                                                  print(2^3)
                                                  print(2/5)rU
                                                  _Cell__dirrU+sage_notebook/worksheets/_scratch_/cells/21rU
                                                  _Cell__outrU1
                                                  0rUhas_new_outputrU_Cell__is_htmlrU_Cell__sagerh%U_Cell__typerUwraprU_Cell__timerU_Cell__interruptedrub(hor}r(jUfactor(2007)rjU!
                                                  rjjyjjjUjKjUgos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/1")
                                                  factor(2007)rjU*sage_notebook/worksheets/_scratch_/cells/1rjU	3^2 * 223rjjjh%jjjjub(hor	}r
                                                  (jU5factor(2^997-1)    # you can hit escape and it works!rjU!
                                                  rjjyjjjUjKjUos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/5")
                                                  factor(2^997-1)    # you can hit escape and it works!r
                                                  jU*sage_notebook/worksheets/_scratch_/cells/5rjUjjjNjUwraprjjub(hor}r(U	_Cell__inrU/M = MatrixSpace(QQ,20).random_element()
                                                  show(M)rU_Cell__introspect_htmlrU!
                                                  rU_Cell__worksheetrjyU_Cell__completionsrU_Cell__introspectrU_Cell__out_htmlrUU	_Cell__idrKU_before_preparserUos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/12")
                                                  M = MatrixSpace(QQ,20).random_element()
                                                  show(M)rU
                                                  _Cell__dirrU+sage_notebook/worksheets/_scratch_/cells/12rU
                                                  _Cell__outrT~
                                                  \left(\begin{array}{rrrrrrrrrrrrrrrrrrrr} -2&1&-1&1&1&2&1&1&1&1&-1&2&-1&-1&1&2&-1&-1&1&2\\ 1&-2&1&-1&-2&-2&-1&-2&-1&-2&-1&-2&1&-2&-1&-1&-2&-1&1&1\\ -1&2&-2&1&1&1&-2&2&2&-2&1&-1&1&2&1&1&1&2&1&-1\\ -1&-1&2&-2&-1&1&-2&-2&-1&-1&2&-1&1&-2&-1&1&2&2&2&2\\ 1&1&-1&2&-2&1&1&1&2&-1&-2&-1&1&1&-2&1&-1&-2&-2&-1\\ -1&-1&-2&-1&-2&-1&1&1&-1&2&1&1&-1&-2&2&1&-2&-2&-2&-2\\ 2&2&1&-2&-2&1&2&1&-1&2&2&1&-1&-1&2&1&2&-1&-1&2\\ 2&2&1&-1&2&1&-2&1&-2&-1&-1&-1&-1&-2&-1&1&2&-1&1&-2\\ -1&-2&-1&2&1&-2&2&-2&1&-2&1&1&-2&1&2&2&-2&1&1&-2\\ -2&2&-2&2&1&-1&1&2&1&-2&2&-2&1&-2&2&1&2&-1&2&-1\\ -2&2&2&-2&1&-2&1&1&-2&1&1&2&1&-1&-1&-2&-2&2&-2&-1\\ 2&1&-2&2&1&-1&-2&1&1&-1&1&2&1&-1&-2&2&-1&-2&-1&-1\\ -2&2&-2&1&2&2&-2&-2&1&1&-1&1&1&-2&1&-1&-2&1&-1&1\\ -1&1&2&-1&1&1&1&-2&-2&-1&-1&-1&-2&-2&-1&1&-1&1&-2&2\\ -2&-1&1&-2&1&-1&-2&-2&1&-2&2&2&-2&2&-1&1&2&-2&-1&2\\ 1&1&-2&2&2&-2&-2&-1&-2&1&2&-1&1&-1&1&2&-2&2&-2&-2\\ 1&2&-2&1&-2&2&-1&2&-2&2&-1&-2&-2&2&1&2&-1&-1&1&1\\ 1&2&2&2&-2&-2&1&-1&-1&-1&1&-1&-2&-1&2&-2&1&2&-2&2\\ 1&2&-2&-1&-1&-2&-2&2&2&2&-1&-2&1&2&1&1&-2&2&2&1\\ -2&2&-1&-2&-1&2&2&1&1&-1&-1&1&2&-1&2&1&-2&1&1&2 \end{array}\right)
                                                  r Uhas_new_outputr!U_Cell__is_htmlr"U _Cell__sager#h%U _Cell__typer$Uwrapr%U _Cell__timer&U_Cell__interruptedr'ub(hor(}r)(jU M.parent()r*jU!
                                                  r+jjyjjjUjKjUfos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/24")
                                                  M.parent()r,jU+sage_notebook/worksheets/_scratch_/cells/24r-jU=Full MatrixSpace of 3 by 3 dense matrices over Rational Fieldr.jjjh%jjjjub(hor/}r0(jUview(M)r1jU!
                                                  r2jjyjjjUjK
                                                  jUcos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/13")
                                                  view(M)r3jU+sage_notebook/worksheets/_scratch_/cells/13r4jU\left(\begin{array}{rrr}
                                                  1&2&3\\
                                                  \frac{1}{3}&17&-\frac{2}{3}\\
                                                  1&5&-5
                                                  \end{array}\right)r5j!j"j#h%j$jj&j'ub(hor6}r7(jUview(M.echelon_form())r8jU!
                                                  r9jjyjjjUjKU_word_being_completedr:UM.echr;jUros.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/20")
                                                  view(M.echelon_form())r<jU+sage_notebook/worksheets/_scratch_/cells/20r=jUl\left(\begin{array}{rrr}
                                                  1&0&0\\
                                                  0&1&0\\
                                                  0&0&1
                                                  \end{array}\right)r>jjjh%jjjjub(hor?}r@(jUG = AlternatingGroup(5)rAjU!
                                                  rBjjyjjjUjKU_word_being_completedrCUSymmetrirDjUpos.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/14")
                                                  G = AlternatingGroup(5)rEjU+sage_notebook/worksheets/_scratch_/cells/14rFjUj!j"j#h%j$UwraprGj&j'ub(horH}rI(jU%G.conjugacy_classes_representatives()rJjU!
                                                  rKjjyjjjUjKjCUG.conjugrLjU~os.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/15")
                                                  G.conjugacy_classes_representatives()rMjU+sage_notebook/worksheets/_scratch_/cells/15rNjU3[(), (1,2)(3,4), (1,2,3), (1,2,3,4,5), (1,2,3,5,4)]rOj!j"j#h%j$jGj&j'ub(horP}rQ(jUG%time 
                                                  f = x^389 + 17/3*x + 2
                                                  g = x^397 - 18*x + 15
                                                  h = f*g^10 + f^10*grRjU!
                                                  rSjjyjjjUjKjUos.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/16")
                                                  __SAGE_t__=cputime()
                                                  __SAGE_w__=walltime()
                                                  f = x^389 + 17/3*x + 2
                                                  g = x^397 - 18*x + 15
                                                  h = f*g^10 + f^10*grTjU+sage_notebook/worksheets/_scratch_/cells/16rUjU$CPU time: 0.02 s,  Wall time: 0.02 srVj!j"j#h%j$jGj&j'ub(horW}rX(U	_Cell__inrYUh[:50]rZU_Cell__introspect_htmlr[U!
                                                  r\U_Cell__worksheetr]jyU_Cell__completionsr^U_Cell__introspectr_U_Cell__out_htmlr`UU	_Cell__idraKU_before_preparserbU_os.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/28")
                                                  h[:50]rcU
                                                  _Cell__dirrdU+sage_notebook/worksheets/_scratch_/cells/28reU
                                                  _Cell__outrfTv[1153300796610, -10571923411357, 35521669089060, -82207173890380/3, -1578378351911680/9, 6297739398214880/9, -107392893078774688/81, 377409713492725760/243, -287199547816076060/243, 3757883697935134460/6561, -3178137624289098691/19683, 132742369030852798/6561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]rgUhas_new_outputrhU_Cell__is_htmlriU_Cell__sagerjh%U_Cell__typerkjGU_Cell__timerlU_Cell__interruptedrmub(horn}ro(jUview(f)rpjU!
                                                  rqjjyjjjUjKjU`os.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/17")
                                                  view(f)rrjU+sage_notebook/worksheets/_scratch_/cells/17rsjUBx^{389} + \frac{17}{3}x + 2rtj!j"j#h%j$jGj&j'ub(horu}rv(U	_Cell__inrwUg%hide%html
                                                  

                                                  You can embed HTML

                                                  It can even include math: \prod(1-q^n)rxU_Cell__introspect_htmlryU!
                                                  rzU_Cell__worksheetr{jyU_Cell__completionsr|U_Cell__introspectr}U_Cell__out_htmlr~UU	_Cell__idrK	U_before_preparserUos.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/9")
                                                  %hide%html
                                                  

                                                  You can embed HTML

                                                  It can even include math: \prod(1-q^n)rU _Cell__dirrU*sage_notebook/worksheets/_scratch_/cells/9rU _Cell__outrUj

                                                  You can embed HTML

                                                  It can even include math: \prod(1-q^n)rUhas_new_outputrU_Cell__is_htmlrU _Cell__sagerh%U _Cell__typerjGU _Cell__timerU_Cell__interruptedrub(hor}r(jwUu%latex Cells can be written in latex, which can refer to SAGE objects. For example, consider $E$ given by $\sage{E}$.rjyU!
                                                  rj{jyj|j}j~UErjKjUos.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/11")
                                                  %latex
                                                  Cells can be written in latex, which can refer to SAGE objects.
                                                  For example, consider $E$ given by $\sage{E}$.rjU+sage_notebook/worksheets/_scratch_/cells/11rjUjjjh%jjGjjub(hor}r(jUtime n=factorial(10^6)rjU!
                                                  rjjyjjjUjKjUos.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/3")
                                                  __SAGE_t__=cputime()
                                                  __SAGE_w__=walltime()
                                                  n=factorial(10^6)rjU*sage_notebook/worksheets/_scratch_/cells/3rjU$CPU time: 3.31 s,  Wall time: 3.34 srjjjh%jjGjjub(hor}r(jU0f = maxima('x*sin(x)*cos(x)^2')
                                                  print f, type(f)rjU!
                                                  rjjyjjjUjKjUos.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/4")
                                                  f = maxima('x*sin(x)*cos(x)^2')
                                                  print f, type(f)rjU*sage_notebook/worksheets/_scratch_/cells/4rjU@x*cos(x)^2*sin(x) rjjjh%jjGjjub(hor}r(jU
                                                  f.integrate()rjU!
                                                  rjjyjjjUjKj:Uf.rjUfos.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/22")
                                                  f.integrate()rjU+sage_notebook/worksheets/_scratch_/cells/22rjU4(sin(3*x) - 3*x*cos(3*x) + 9*sin(x) - 9*x*cos(x))/36rjjjh%jjGjjub(hor}r(jUf.name()rjU!
                                                  rjjyjjjUjKjUaos.chdir("/home/was/talks/2006-08-17-scipy/sage_notebook/worksheets/_scratch_/cells/23")
                                                  f.name()rjU+sage_notebook/worksheets/_scratch_/cells/23rjU'sage0'rjjjh%jUhiddenrjjub(hor}r(U	_Cell__inrU;E = EllipticCurve('37a')
                                                  show(plot(E, rgbcolor=(1,0,0)))
                                                  
                                                  ErU_Cell__introspect_htmlrU!
                                                  rU_Cell__worksheetrjyU_Cell__completionsrU_Cell__introspectrU_Cell__out_htmlrUDrU	_Cell__idrKU_before_preparserUos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/31")
                                                  E = EllipticCurve('37a')
                                                  show(plot(E, rgbcolor=(1,0,0)))
                                                  
                                                  ErU
                                                  _Cell__dirrU+sage_notebook/worksheets/_scratch_/cells/31rU
                                                  _Cell__outrU?Elliptic Curve defined by y^2 + y = x^3 - x over Rational FieldrUhas_new_outputrU_Cell__is_htmlrU_Cell__sagerh%U_Cell__typerjU_Cell__timerU_Cell__interruptedrub(hor}r(jTt = Tachyon(xres=1000, yres=800, camera_center=(0,5,7), look_at=(-.5,1,0), raydepth=4)
                                                  t.light((10,3,2), 0.2, (1,1,1))
                                                  t.texture('t0', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(1.0,0,0))
                                                  t.texture('t1', ambient=0.1, diffuse=0.9, specular=0.3, opacity=1.0, color=(0,1.0,0))
                                                  t.texture('t2', ambient=0.2, diffuse=0.7, specular=0.5, opacity=0.7, color=(0,0,1.0))
                                                  t.texture('white', color=(1,1,1))
                                                  t.texture('black', color=(1,1,1))
                                                  t.texture('grey', color=(.9,.9,.9))
                                                  #t.plane((0,-100000,0),(0,1,0),'white')
                                                  #t.plane((-100000,0,0),(1,0,0),'white')
                                                  t.plane((-100000,0,0),(0,0,1),'grey')
                                                  t.cylinder((0,0,0),(1,0,0),.1,'black')
                                                  t.cylinder((0,0,0),(0,1,0),.1,'black')
                                                  
                                                  E = EllipticCurve('37a')
                                                  show(plot(E))
                                                  P = E([0,0])
                                                  Q = P
                                                  n = 200
                                                  for i in range(n):  
                                                      Q = Q + P
                                                      c = i/(10*n) + .1
                                                      t.texture('t%s'%i, ambient=0.1,diffuse=0.9,specular=0.5,color=(1.0,c,c))
                                                      t.sphere((Q[1], -Q[0], 0), c, 't%s'%i)
                                                            
                                                  t.save() rjU!
                                                  rjjyjjjU
                                                  rjKU_word_being_completedrUt.cylrjTos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/6") t = Tachyon(xres=1000, yres=800, camera_center=(0,5,7), look_at=(-.5,1,0), raydepth=4) t.light((10,3,2), 0.2, (1,1,1)) t.texture('t0', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(1.0,0,0)) t.texture('t1', ambient=0.1, diffuse=0.9, specular=0.3, opacity=1.0, color=(0,1.0,0)) t.texture('t2', ambient=0.2, diffuse=0.7, specular=0.5, opacity=0.7, color=(0,0,1.0)) t.texture('white', color=(1,1,1)) t.texture('black', color=(1,1,1)) t.texture('grey', color=(.9,.9,.9)) #t.plane((0,-100000,0),(0,1,0),'white') #t.plane((-100000,0,0),(1,0,0),'white') t.plane((-100000,0,0),(0,0,1),'grey') t.cylinder((0,0,0),(1,0,0),.1,'black') t.cylinder((0,0,0),(0,1,0),.1,'black') E = EllipticCurve('37a') show(plot(E)) P = E([0,0]) Q = P n = 200 for i in range(n): Q = Q + P c = i/(10*n) + .1 t.texture('t%s'%i, ambient=0.1,diffuse=0.9,specular=0.5,color=(1.0,c,c)) t.sphere((Q[1], -Q[0], 0), c, 't%s'%i) t.save()rjU*sage_notebook/worksheets/_scratch_/cells/6rjUjjjh%jjjjub(hor}r(jTE = EllipticCurve('37a') L = E.Lseries_dokchitser(5) t = Tachyon(xres=800, yres=600, camera_center=(1.5,.4,.7), look_at=(1,0,0), raydepth=4) t.light((10,3,2), 1, (1,1,1)) t.light((10,-3,2), 1, (1,1,1)) t.texture('black', color=(0,0,0)) t.texture('red', color=(1,0,0)) t.texture('grey', color=(.9,.9,.9)) t.plane((0,0,0),(0,0,1),'grey') t.cylinder((0,0,0),(1,0,0),.01,'black') t.cylinder((0,0,0),(0,1,0),.01,'black') def f(x,y): return abs(L(x+I*y))rjU!
                                                  rjjyjjjUjKjT os.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/30")
                                                  E = EllipticCurve('37a')
                                                  L = E.Lseries_dokchitser(5)
                                                  t = Tachyon(xres=800, yres=600, camera_center=(1.5,.4,.7), look_at=(1,0,0), raydepth=4)
                                                  t.light((10,3,2), 1, (1,1,1))
                                                  t.light((10,-3,2), 1, (1,1,1))
                                                  t.texture('black', color=(0,0,0))
                                                  t.texture('red', color=(1,0,0))
                                                  t.texture('grey', color=(.9,.9,.9))
                                                  t.plane((0,0,0),(0,0,1),'grey')
                                                  t.cylinder((0,0,0),(1,0,0),.01,'black')
                                                  t.cylinder((0,0,0),(0,1,0),.01,'black')
                                                  def f(x,y):
                                                      return abs(L(x+I*y))rjU+sage_notebook/worksheets/_scratch_/cells/30rjUjjjh%jjjjub(hor}r(jUjjyjjUjK!jU+sage_notebook/worksheets/_scratch_/cells/33rjUjjjjub(hor}r(jUE = EllipticCurve('11a')rjU!
                                                  rjjyjjjUjK jUtos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/32")
                                                  E = EllipticCurve('11a')rjU+sage_notebook/worksheets/_scratch_/cells/32rjUjjjh%jjjjub(hor}r(jUtime v = E.Lseries_zeros(100)rjU!
                                                  rjjyjjjUjK"jUE.Lseries_zrjUos.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/34")
                                                  __SAGE_t__=cputime()
                                                  __SAGE_w__=walltime()
                                                  v = E.Lseries_zeros(100)rjU+sage_notebook/worksheets/_scratch_/cells/34rjU$CPU time: 0.01 s,  Wall time: 8.14 srjjjh%jjjjub(hor}r(jUvjU!
                                                  rjjyjjjUjK#jU]os.chdir("/Volumes/HOME/talks/2006-08-28-musa/sage_notebook/worksheets/_scratch_/cells/35")
                                                  vrjU+sage_notebook/worksheets/_scratch_/cells/35rjTx[6.3626138940, 8.6035396196, 10.035509098, 11.451258611, 13.568639059, 15.914072603, 17.033610322, 17.941433571, 19.185724974, 20.379260466, 22.172490291, 23.301415503, 25.209868424, 25.876403078, 27.067635231, 28.449649699, 28.683909886, 29.974859945, 31.663575567, 33.082842812, 34.112852469, 35.236487791, 35.722877815, 37.036405161, 37.761957169, 38.833486363, 40.146656170, 41.037794024, 42.511732787, 43.429098606, 44.746454522, 45.158714131, 45.910261959, 46.757598966, 47.972050622, 48.807518125, 50.243942186, 51.371365905, 52.256372154, 52.913351819, 54.007412255, 54.763025627, 55.571029574, 56.479776666, 57.331691325, 58.183661923, 59.560440168, 60.612493128, 61.613971397, 62.338740170, 63.026897565, 63.897679433, 64.640660584, 65.171858370, 66.398517817, 67.681926727, 68.283403933, 69.303957015, 70.384072810, 71.178262591, 71.996895909, 72.547055244, 73.572601587, 74.415609866, 74.609621376, 75.881301075, 77.126021892, 77.677088797, 79.276860297, 79.804298520, 80.362782776, 81.052198857, 81.952289850, 82.649395257, 83.562455326, 84.219228268, 85.170387894, 86.241674036, 86.983793080, 88.016290486, 88.824549288, 89.626825452, 90.451337993, 91.004403919, 91.797839612, 92.165623993, 93.192461342, 94.123787433, 95.081284195, 96.168552220, 96.971843839, 97.590110540, 98.382381290, 99.228058964, 100.00116637, 100.21146715, 101.49875748, 101.87562618, 103.10778916, 103.52390456]rjjjh%jjjjub(hor}r(jUjjyjjUjK$jU+sage_notebook/worksheets/_scratch_/cells/36rjUjjjjubeU_Worksheet__synchrorMKU_Worksheet__comp_is_runningrU_Worksheet__dirrU"sage_notebook/worksheets/_scratch_rU_Worksheet__attachedr}rU_Worksheet__queuer]rU_Worksheet__next_idrK0U_Worksheet__passcryptrU_Worksheet__namerU	_scratch_rU_Worksheet__saltrU1160663240.922952rU_Worksheet__notebookrhU_Worksheet__idrKU_Worksheet__next_block_idrKU_Worksheet__systemrNU_Worksheet__passcoderU
                                                  11G3BJNEUV/PkrubU_Notebook__next_worksheet_idrKU_default_filenamerUG/Volumes/HOME/talks/2006-10-18-sage-current_probs/sage_notebook/nb.sobjrU_Notebook__systemr	NU_Notebook__show_debugr
                                                  U_Notebook__dirrU
                                                  sage_notebookrU_Notebook__authr
                                                  U:U_Notebook__colorrNU_Notebook__object_dirrUsage_notebook/objectsrub.