Как построить дзета-нулевой спектр Римана с преобразованием Фурье в системе Mathematica?

В статье Дж. Брайана Конри «Гипотеза Римана» на рис. 6 приведен график преобразования Фурье члена ошибки в теореме о простых числах . См. График слева на изображении ниже:

Plots from Conrey's paper on the Riemann hypothesis

В сообщении блога под названием Primes out of Thin Air , написанном Крисом Кингом, есть программа Matlab, которая строит спектр. Смотрите сюжет справа в начале поста.Возможен перевод в систему Mathematica:

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]

Однако, как я понимаю, это матричная формулировка синусоидального преобразования Фурье, и поэтому ее вычисления очень дороги. Я НЕ рекомендую запускать его, потому что он уже однажды разбил мой компьютер.

Есть ли в системе Mathematica способ, использующий быстрое преобразование Фурье, для построения спектра с пиками при x-значениях, равных мнимой части дзета-нулей Римана?

Я пробовал команды FourierDST и Фурье безуспешно. Проблема, похоже, в том, что переменная yy в коде включена как в Sin [t * myspan / xres * yy] , так и в (y [[Floor [Exp [ гг]]]] - Срок [гг]) / Срок [гг / 2] .

РЕДАКТИРОВАТЬ: 20.1.2012, я изменил строку:

Для [yy = 0, yy

] на следующее:

Для [yy = 0 , yy / stpval

EDIT: 22.1.2012, из комментария Heike, изменено:

For [yy = 0, yy / stpval

в:

Для [yy = 0, yy

12
задан Mats Granvik 22 January 2012 в 11:24
поделиться