[Edu-sig] Example of math-thru-programming homework
Kirby Urner
pdx4d@teleport.com
Wed, 17 May 2000 09:24:53 -0700
Read:
http://mathworld.wolfram.com/RiemannZetaFunction.html
Write:
a short program to approximate the Riemann Zeta
function, rzeta. Show rzeta(n) where n = 2,3,4,5,6
and compare with results given on the above web page.
Your function should match to at least 8 decimal
places.
Some teachers looking at the above would say "but
this is NOT high school level" (because we don't
study the Riemann Zeta function in hs).
But the point is to learn math notation, just to
know what the operators do. In this case, SIGMA is
enough. And if you've been studying Python, you
know that SIGMAs may be implemented as loops of
the form:
sum = 0
for i in range(1,n):
sum = sum + f(i)
return sum
where f is some rule, perhaps passed as a parameter
(see earlier postings re functions, relations etc.)
So exactly how the Riemann Zeta function relates to
the Gamma function and prime numbers is just "noise"
from the point of view of extracting the info needed
to write the program. We're teaching kids how to
"dismiss the irrelevant" (which is another definition
of thinking). They're learning to eyeball complicated
math pages, infested with Greek letters, and not be
intimidated.
One possible answer:
def rzeta(n):
# approximate Riemann zeta function
sum = 0.0
n = float(n)
for i in range(1,100000):
sum = sum + 1.0/i**n
return sum
Testing:
>>> primes.rzeta(2) # math.pi**2/6.0
1.6449240668
>>> primes.rzeta(3)
1.20205690311
>>> primes.rzeta(4) # math.pi**4/90.0
1.08232323371
>>> primes.rzeta(5)
1.03692775514
>>> primes.rzeta(6) # math.pi**6/945.0
1.01734306198