Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Edit 8.8.2013: See this question also.

The Fourier cosine transform of an exponential sawtooth wave times $e^{-x/2}$:

$$\operatorname{FourierCosineTransform}(\operatorname{SawtoothWave}(e^x)\cdot e^{-\frac{x}{2}})$$

can be plotted with the following Mathematica 8 program:

scale = 1000000;
xres = .00001;
x = Exp[Range[0, Log[scale], xres]];
a = FourierDCT[SawtoothWave[x]*x^(-1/2)];
c = 62.357
d = N[Im[ZetaZero[1]]]
datapointsdisplayed = 300;
ymin = -10;
ymax = 10;
p = 0.013;
g1 = ListLinePlot[a[[1 ;; datapointsdisplayed]], 
   PlotRange -> {ymin, ymax}, 
   DataRange -> {0, N[Im[ZetaZero[1]]]/c*datapointsdisplayed}];
g2 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[1]]], 0}]}];
g3 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[2]]], 0}]}];
g4 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[3]]], 0}]}];
g5 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[4]]], 0}]}];
g6 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[5]]], 0}]}];
g7 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[6]]], 0}]}];
g8 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[7]]], 0}]}];
g9 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[8]]], 0}]}];
g10 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[9]]], 0}]}];
Show[g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, ImageSize -> Large]
N[Im[ZetaZero[Range[15]]]]

which outputs:

enter image description here

Figure 1.

Where the black dots are equal to the imaginary parts of the Riemann zeta zeros.

Does the blue curve cross the x-axis at values equal to the imaginary parts of the Riemann zeta zeros?


Edit 21.2.2012: Taking the Fourier Sine Transform of the result in Figure 1:

(*Mathematica 8*)
Clear[x]
scale = 1000000;
xres = .00001;
x = Exp[Range[0, Log[scale], xres]];
a = FourierDST[FourierDCT[SawtoothWave[x]*x^(-1/2)]];
(*b=Length[a]*)
c = 1410000
datapointsdisplayed = scale;
ymin = -0.5;
ymax = 1.5;
p = 0.011;
g1 = ListLinePlot[a[[1 ;; datapointsdisplayed]], 
   PlotRange -> {ymin, ymax}, 
   DataRange -> {0, N[Im[ZetaZero[1]]]/c*datapointsdisplayed}];
g2 = Graphics[{PointSize[p], Point[{N[Log[2]], 0}]}];
g3 = Graphics[{PointSize[p], Point[{N[Log[3]], 0}]}];
g4 = Graphics[{PointSize[p], Point[{N[Log[4]], 0}]}];
g5 = Graphics[{PointSize[p], Point[{N[Log[5]], 0}]}];
g6 = Graphics[{PointSize[p], Point[{N[Log[6]], 0}]}];
g7 = Graphics[{PointSize[p], Point[{N[Log[7]], 0}]}];
g8 = Graphics[{PointSize[p], Point[{N[Log[8]], 0}]}];
g9 = Graphics[{PointSize[p], Point[{N[Log[9]], 0}]}];
g10 = Graphics[{PointSize[p], Point[{N[Log[10]], 0}]}];
g11 = Graphics[{PointSize[p], Point[{N[Log[11]], 0}]}];
Show[g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, ImageSize -> Large]
N[Log[Range[11]]]

we get as suggested by draks , a spectrum with logarithms as frequencies:

enter image description here

Figure 2.

where the black dots are at x-values of $\log(n)$ , $n=(1),2,3...$

Trying to mimic this picture with discrete deltas:

(*Mathematica 8*)
Clear[x, xx]
scale = 1000000;
xres = .00001;
x = Exp[Range[0, Log[scale], xres]];
xx = Flatten[{0, Differences[Floor[Exp[Range[0, Log[scale], xres]]]]}];
ListLinePlot[xx*x^(-1/2), PlotRange -> {-0.1, 0.8}, 
 ImageSize -> Large]

we have:

discrete-deltas-at-x-equal-to-logarithms

Figure 3.


Edit 22.2.2012: Adjusting the resolution and scale in the Inverse Fourier Sine Transform

(*Mathematica 8*)
Clear[x, xx]
scale = 1000;
xres = .000001;
x = Exp[Range[0, Log[scale], xres]];
xx = Flatten[{0, Differences[Floor[Exp[Range[0, Log[scale], xres]]]]}];
a = FourierDST[xx*x^(-1/2), 3];
(*b=Length[a]*)
c = 31.2
vdatapointsdisplayed = 150;
ymin = -1/400;
ymax = 1/400;
p = 0.013;
g1 = ListLinePlot[a[[1 ;; datapointsdisplayed]], 
   PlotRange -> {ymin, ymax}, 
   DataRange -> {0, N[Im[ZetaZero[1]]]/c*datapointsdisplayed}];
g2 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[1]]], 0}]}];
g3 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[2]]], 0}]}];
g4 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[3]]], 0}]}];
g5 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[4]]], 0}]}];
g6 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[5]]], 0}]}];
g7 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[6]]], 0}]}];
g8 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[7]]], 0}]}];
g9 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[8]]], 0}]}];
g10 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[9]]], 0}]}];
g11 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[10]]], 0}]}];
Show[g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, ImageSize -> Large]
N[Im[ZetaZero[Range[15]]]]

we get:

Inverse Sine Transform of Discrete Deltas

Figure 4.

where the black dots are at x-values equal to imaginary parts of the Riemann zeta zeros.

Trying to mimic this time the plot in Figure 4 we can try a logarithmic Fourier series with square roots as dividing multiples, based on the spectrum in Figure 2.

$$ \frac{\sin(\log(1) x)}{\sqrt 1} + \frac{\sin(\log(2) x)}{\sqrt 2} + \frac{\sin(\log(3) x)}{\sqrt 3} + ... + \frac{\sin(\log(n) x)}{\sqrt n}$$

Which as a Mathematica program is:

Clear[c, p, u]
c = 4.885;
p = 0.013;
u = N[22 Pi]
Monitor[g1 = 
   ListLinePlot[
    Table[Total[Table[Sin[Log[i]*x]/i^(1/2), {i, 1, 80}]], {x, 0, u, 
      0.01}], DataRange -> {0, N[Im[ZetaZero[1]]]*c}];, x]
g2 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[1]]], 0}]}];
g3 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[2]]], 0}]}];
g4 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[3]]], 0}]}];
g5 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[4]]], 0}]}];
g6 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[5]]], 0}]}];
g7 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[6]]], 0}]}];
g8 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[7]]], 0}]}];
g9 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[8]]], 0}]}];
g10 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[9]]], 0}]}];
g11 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[10]]], 0}]}];
g12 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[11]]], 0}]}];
g13 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[12]]], 0}]}];
g14 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[13]]], 0}]}];
g15 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[14]]], 0}]}];
g16 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[15]]], 0}]}];
g17 = Graphics[{PointSize[p], Point[{N[Im[ZetaZero[16]]], 0}]}];
Show[g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13, g14, \
g15, g16, g17, ImageSize -> Large]

This gives the plot:

Logarithmic Fourier series with square roots

Figure 5.

Where again the black dots are at x-values equal to imaginary parts of Riemann zeta zeros.


Edit 17 01 2013:

$$-\text{FourierDCT}\left[\log (x) \text{FourierDST}\left[\frac{1}{\sqrt{x}} (\text{SawtoothWave}[x]-1)\right]\right];$$

scale = 1000000;
xres = .00001;
x = Exp[Range[0, Log[scale], xres]];
a = -FourierDCT[Log[x]*FourierDST[(SawtoothWave[x] - 1)*(x)^(-1/2)]];
c = 62.357
d = N[Im[ZetaZero[1]]]
datapointsdisplayed = 500000;
ymin = -0.5;
ymax = 2;
p = 0.013;
g1 = ListLinePlot[a[[1 ;; datapointsdisplayed]], 
   PlotRange -> {ymin, ymax}, 
   DataRange -> {0, N[Im[ZetaZero[1]]]/c*datapointsdisplayed}];
Show[g1, ImageSize -> Large]

Fourier of log x times Fourier of exponential sawtooth

Edit 7.7.2014:

Riemann zeta function from Fast Fourier Transform of exponential sawtooth wawe in Mathematica 8.0:

scale = 1000000;
xres = .00001;
x = Exp[Range[0, Log[scale], xres]];
RealPart = -Log[x]*FourierDST[(SawtoothWave[x] - 1)*x^(-1/2)];
ImaginaryPart = -Log[x]*FourierDCT[(SawtoothWave[x] + 0)*x^(-1/2)];
datapointsdisplayed = 300;
ymin = -0.012;
ymax = 0.018;
g1 = ListLinePlot[{RealPart[[1 ;; datapointsdisplayed]], 
      ImaginaryPart[[1 ;; datapointsdisplayed]]}/xres/300, 
   DataRange -> {0, 68.00226987379779}, Filling -> Axis];
Show[Flatten[{g1, 
   Table[Graphics[{PointSize[0.013], 
      Point[{N[Im[ZetaZero[n]]], 0}]}], {n, 1, 16}]}], 
 ImageSize -> Large]

Fast Fourier Transform Riemann zeta function

share|improve this question
    
What do you get, if you use $Saw(e^x)e^{-x\cdot a}$. Is $a=1/2$ related to the real part of the root? –  draks ... Feb 9 '12 at 19:09
    
Yes $a=1/2$ should be related to the real part of the roots. It is basically Heike's algorithm stackoverflow.com/questions/8934125/… I have tried other values of "a" than 1/2 but it doesn't seem to give zeta zeros as roots then. –  Mats Granvik Feb 9 '12 at 19:40
    
Just a mere guess, but I think just "found" a kind of the Fourier Transform of the $\zeta$ function: If you would have used $\delta$ functions instead of Saws, I think it would perfectly match. What do you think? –  draks ... Feb 9 '12 at 19:57
    
I don't know. With delta you mean the DiracDelta? I tried a = FourierDCT[DiracDelta[x]*x^(-1/2)]; But this gives error messages only. Edit: I had copy paste errors, it gives a result. –  Mats Granvik Feb 9 '12 at 20:04
    
It gives a result but the plot is empty with no blue curve. –  Mats Granvik Feb 9 '12 at 20:10

1 Answer 1

up vote 25 down vote accepted

The answer is almost, but not quite. Why they are so close will be made clear momentarily.

We begin by partially evaluating (half) the usual Fourier transform up to $\log N$:

$$F_N(\omega)=\int_0^{\log N} \big(e^x-\lfloor e^x\rfloor\big) e^{-x/2} e^{ix \omega}dx \tag{A}$$

$$=\int_1^N\big(u-\lfloor u\rfloor\big)u^{-1/2}u^{i\omega}\frac{du}{u} \tag{B}$$

$$=\sum_{n=1}^{N-1}\int_0^1 t(n+t)^{s-2}dt \tag{X}$$

$$=\frac{1}{s-1}\sum_{n=1}^{N-1} \left(\frac{n^s-(n+1)^s}{s}+(n+1)^{s-1}\right)\tag{Y}$$

$$=\frac{1}{s-1}\left(\frac{1-N^s}{s}+H_{N,1-s}-1\right).\tag{Z}$$

Above we write $H_{n,r}$ for the generalized harmonic number and $s=\frac{1}{2}+i\omega$; note $1-s=\bar{s}$. The ever-useful Euler-Maclaurin formula provides the asymptotic form

$$H_{N,v}=\frac{N^{1-v}}{1-v}+\zeta(v)+\mathcal{O}\left(N^{-1/2}\right) \tag{C}$$

See Numerical Evaluation of the Riemann Zeta function (the very first equation). Also see the work given in answers to this Math.SE question.

Plugging $(6)$ into $(5)$ into $F_N(\omega)+F_N(-\omega)$, we obtain

$$\frac{1}{s-1}\left(\frac{1}{s}+\zeta(1-s)-1\right)+\frac{1}{-s}\left(\frac{1}{1-s}+\zeta(s)-1\right)+\mathcal{O}\left(N^{-1/2}\right). \tag{D}$$

Using the formulas $\overline{\alpha\beta}=\overline{\alpha}\overline{\beta\,}$, $1-s=\overline{s}$, $z+\overline{z}=2\mathrm{Re}(z)$, $w\overline{w}=|w|^2$, and the formula for the cosine transform as the limit of half-partial Fourier transforms, $\displaystyle C(\omega)=\lim_{N\to\infty}\frac{F_N(\omega)+F_N(-\omega)}{\sqrt{2\pi}}$, we get

$$C(\omega)=-\sqrt{\frac{2}{\pi}}\left[\frac{1}{|s|^2}+\operatorname{Re}\left(\frac{\zeta(s)-1}{s}\right)\right], \tag{L}$$

and a similar computation shows the Fourier sine transform is (as you note in the comments)

$$S(\omega)=\sqrt{\frac{2}{\pi}}\mathrm{Im}\left(\frac{\zeta(s)-1}{s}\right). \tag{R}$$

Clearly plugging in nontrivial roots $s$ of $\zeta(s)$ into $(L)$ and $(R)$ will yield fairly small values, just about inversely proportional to the modulus of $s$. This explains the numerical coincidence.

share|improve this answer
    
By looking at the graph of your answer, it appears to be correct. The Fourier Sine Transform of the exponential sawtooth appears to be: $S(\omega)=-\sqrt{\frac{2}{\pi}}\operatorname{Im}\left(\frac{1-\zeta(s)}{s}\righ‌​t)$, with a negative sign in front of $\zeta(s)$. –  Mats Granvik Feb 27 '12 at 14:39
    
@MatsGranvik Your FST is correct. However my FCT had a small error - the difference between the correct and previously incorrect versions was hard to discern with the naked eye. Hopefully all is well now. –  anon Jul 5 '12 at 0:05
    
anon: I did not know that your FCT had an error. But all the better with the correction. I will look into this more at the end of next week. –  Mats Granvik Jul 5 '12 at 11:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.