Edición 8.8.2013: Ver esta pregunta también.
La transformada del coseno de Fourier de una onda exponencial en forma de diente de sierra por $e^{-x/2}$ :
$$\operatorname{FourierCosineTransform}(\operatorname{SawtoothWave}(e^x)\cdot e^{-\frac{x}{2}})$$
puede trazarse con el siguiente programa de Mathematica 8:
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]]]]
que da salida:
Figura 1.
Donde los puntos negros son iguales a las partes imaginarias de los ceros de la zeta de Riemann.
¿La curva azul cruza el eje x en valores iguales a las partes imaginarias de los ceros de la zeta de Riemann?
Edición 21.2.2012: Tomando la transformada del seno de Fourier del resultado de la figura 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]]]
obtenemos como sugiere draks un espectro con logaritmos como frecuencias:
Figura 2.
donde los puntos negros están en valores x de $\log(n)$ , $n=(1),2,3...$
Tratando de imitar esta imagen con deltas discretos:
(*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]
que tenemos:
Figura 3.
Edición 22.2.2012: Ajuste de la resolución y la escala en la transformada sinusoidal de Fourier inversa
(*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]]]]
nos encontramos con que:
Figura 4.
donde los puntos negros están en valores de x iguales a las partes imaginarias de los ceros de la zeta de Riemann.
Intentando imitar esta vez el gráfico de la Figura 4 podemos probar una serie de Fourier logarítmica con raíces cuadradas como múltiplos divisores, basándonos en el espectro de la Figura 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}$$
Que como programa de Mathematica es:
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]
Esto da la trama:
Figura 5.
Donde de nuevo los puntos negros están en valores x iguales a las partes imaginarias de los ceros de la zeta de Riemann.
Editar 19 03 2015: Ondas de sierra con sobres.
Edición 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]
Edición 7.7.2014:
Función zeta de Riemann a partir de la transformada rápida de Fourier de la onda exponencial de diente de sierra en 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]
0 votos
¿Qué se obtiene, si se utiliza $Saw(e^x)e^{-x\cdot a}$ . Es $a=1/2$ ¿relacionado con la parte real de la raíz?
0 votos
Sí $a=1/2$ debe estar relacionado con la parte real de las raíces. Es básicamente el algoritmo de Heike stackoverflow.com/questions/8934125/ He probado con otros valores de "a" distintos de 1/2 pero parece que entonces no da ceros zeta como raíces.
0 votos
Es sólo una mera suposición, pero creo que acaba de "encontrar" una especie de Transformada de Fourier del $\zeta$ función: Si hubiera utilizado $\delta$ funciones en lugar de las sierras, creo que encajaría perfectamente. ¿Qué te parece?
0 votos
No lo sé. ¿Con delta te refieres al DiracDelta? He probado
a = FourierDCT[DiracDelta[x]*x^(-1/2)];
Pero esto sólo da mensajes de error. Editar: He tenido errores de copiar y pegar, da un resultado.0 votos
Da un resultado, pero el gráfico está vacío, sin curva azul.
0 votos
Sí, pero como dije, sólo estaba adivinando, que cada addend $n^{-s}$ en $\zeta$ daría un $-s\log(n)$ en el espectro y que esto está relacionado de alguna manera con su problema.
0 votos
Tal vez pueda ayudarme con una de mis preguntas: math.stackexchange.com/q/97981/19341 . Estaría interesado en una validación numérica de lo que se escribe como respuestas allí y parece que tiene que herramientas para eso. ¿Qué opinas?
0 votos
Vale, le echaré un vistazo.
0 votos
Gracias de antemano. Si tienes preguntas, publícalas allí.
0 votos
Una cuestión de cálculo: ¿Tienes una construcción en $\zeta$ o cómo se calcula $\zeta(s)$ ?
0 votos
Hola, es una función incorporada de Mathematica Zeta[s]. Aquí en esta pregunta era la transformada de Fourier de una función diente de sierra. Pero de forma similar a lo que señalas, también puedes ir al revés, partiendo de la función zeta y luego con la transformada de Fourier obtener logaritmos como frecuencias "redondeadas": mobiusfunction.wordpress.com/2012/03/07/ Pero todavía estoy en el proceso de aprendizaje con la comprensión de la función Zeta. No sé cómo calcular la función Zeta desde cero.
0 votos
Quizás deberíamos abrir un chat sobre esto. Aquí hay una página de Robert Elder sobre el cálculo de la función zeta de Riemann: robertelder.ca/calculatevalue He intentado seguirlo pero no he conseguido programarlo todavía.
0 votos
Aquí vas...