Nel documento "The Riemann" di J. Brian Conrey in figura 6 è un grafico della trasformata di Fourier del termine di errore nel teorema dei numeri primi. Vedere la trama verso sinistra nell'immagine qui sotto:Come traccia lo spettro zero di Riemann zeta con la trasformata di Fourier in Mathematica?
In un post sul blog chiamato Primes out of Thin Air scritto da Chris King c'è un programma Matlab che traccia lo spettro. Guarda la trama a destra all'inizio del post. Una traduzione in Mathematica è possibile:
Mathematica:
scale = 10^6;
start = 1;
fin = 50;
its = 490;
xres = 600;
y = N[Accumulate[Table[MangoldtLambda[i], {i, 1, scale}]], 10];
x = scale;
a = 1;
myspan = 800;
xres = 4000;
xx = N[Range[a, myspan, (myspan - a)/(xres - 1)]];
stpval = 10^4;
F = Range[1, xres]*0;
For[t = 1, t <= xres, t++,
For[yy=0, yy<=Log[x], yy+=1/stpval,
F[[t]] =
F[[t]] +
Sin[t*myspan/xres*yy]*(y[[Floor[Exp[yy]]]] - Exp[yy])/Exp[yy/2];
]
]
F = F/Log[x];
ListLinePlot[F]
Tuttavia, questo è quanto mi risulta la formulazione della matrice del seno trasformata di Fourier ed è quindi molto costoso da calcolare. NON consiglio di eseguirlo perché si è già bloccato il mio computer una volta.
C'è un modo in Mathematica che utilizza la trasformata di Fourier veloce, per tracciare lo spettro con picchi ai valori x uguale alla parte immaginaria di zeri zeri di Riemann?
Ho provato i comandi FourierDST
e Fourier
senza successo. Il problema sembra essere che la variabile yy
nel codice sia inclusa in entrambi Sin[t*myspan/xres*yy]
e (y[[Floor[Exp[yy]]]] - Exp[yy])/Exp[yy/2]
.
EDIT: 20.1.2012, ho cambiato la linea:
For[yy = 0, yy <= Log[x], 1/stpval++,
nelle seguenti:
For[yy = 0, yy/stpval <= Log[x], yy++,
EDIT: 2012/01/22, Da commento di Heike, modificata:
For[yy = 0, yy/stpval <= Log[x], yy++,
in:
For[yy=0, yy<=Log[x], yy+=1/stpval,
Si ottiene un ciclo infinito perché il vostro interiore 'ciclo For' è bloccato a' aa = 0'. Probabilmente è necessario incrementare 'yy' piuttosto che' stepval' nel terzo argomento del ciclo 'For'. – kglr
Grazie per la correzione! Il problema persiste comunque. Questa volta il programma funziona senza bloccare il mio computer desktop ma finisce con l'output: non c'è più memoria disponibile. Il kernel Mathematica è stato chiuso. Provare a uscire da altre applicazioni e riprovare. –
@Mats: solo per quello che sai, è [la cattiva forma] (http://meta.stackexchange.com/q/64068/156389) avere la [stessa domanda] (http://math.stackexchange.com/q/100597/954) pubblicato su due siti. Avresti dovuto segnalarlo per l'attenzione del moderatore e chiesto di essere migrato, o semplicemente eliminato la domanda tu stesso prima di ripubblicare qui. – Simon