Я люблю проводить численные эксперименты. Процессор должен думать, а не простаивать. Напомню, что нетривиальные нули Зета функции Римана, расположенные симметрично относительно оси X, имеют вещественную часть равную -1/2 (что не доказано, может быть, у вас получится?), а мнимая часть у первых нулей равна (знак +/-, так как они расположены симметрично): 14.13, 21.02, 25.01, 30.42, 32.93...
Чем дальше, тем меньше расстояние между корнями, доказано, что в пределе
где Zn - абсолютное значение мнимой части корня. То есть чем дальше, тем гуще расположены нули. Но давайте эти уменьшающиеся расстояния между корнями станут нашей путеводной звездой, они будут указывать нам, насколько сдвинуться вправо-вверх-влево-вниз. Заметьте, что такая последовательность направлений совпадает с направлением вращения фазы комплексного числа. То есть на первом шаге мы увеличиваем X на 14.13, потом Y на 21.03-14.13=6.9 и оказываемся в точке (14.13, 6.9). Дальше мы смещаемся влево на 25.01-21.02=3.99 и оказываемся в точке (10.14,6.9). Наконец, двигаемся вниз на 30.42-25.01=5.41 и попадаем в (10.14,1.49). Цикл из четырех движений закончен.
За несколько дней mpmath мне сгенерил 100 тысяч корней и я увидел интересную картину, после чего решил скачать готовые корни - тут: https://www.lmfdb.org/zeros/zeta/ можно скачать базу где есть около 10 миллардов корней, я же ограничился 100 миллионами.
Итак, после первого миллиона корней:
Каждое блуждание увеличивало значение пикселя на единицу. Так как многие пиксели оказывались на пути много раз, то в итоге я брал логарифм получившегося числа - так видно что наш процесс 'потоптался' дольше всего. Согласитесь, это несколько неожиданно. Ниже график зависимости X и Y от номера корня:
Видно как процесс долго топчется на месте, а потом резко рвет вверх, к другому 'облаку'. Для 10 миллионов:
Рост X, Y для 10 миллионов:
И, наконец, для 100 миллионов:
Рост X,Y для 100 миллионов:
На последнем графике хорошо заметно, как тормозится рост из-за уменьшения расстояния между корнями. Но совершенно удивительно то, что функция выросла там мало (на 5000) за 100 миллионов корней, то есть 25 миллионов 'оборотов' - то есть в среднем 1/5000 за оборот.
Интересно, что стоит немного поменять порядок обхода с нашего - X+Y+X-Y- на, например, такой: X+Y+Y-X-, результат сразу становится тривиальным
Ну почти тривиальным. Здесь интересно то, что сохраняется направление. То есть в любом случае есть интересная корреляция между расстояними между корнями, и я попытался ее поймать (расстояния нормировались к log(n)/2pi, центр поэтому лежит в точке 1,1). Сразу увидел, что есть антикорреляция между двумя соседними расстояниями:
если один шаг был длиннее обычного, следующий, скорее всего, будет короче. Ну и все - через один корень корреляции практически нет.
Собственно, это и неудивительно, потому что в момент 'рывка' между 'облаками' происходит следующее (zoom одного из 'рывков'):
Еще увеличивая, здесь уже только X:
Как видно, 'рывок' только кажется поступательным движением. На самом деле процесс колбасит взад и вперед, он часто отступает, линия движения имеет ширину в несколько пикселей и речь идет не о корреляции между соседними расстояниями между корнями, а о том, что влияет на расстояние между корнями на очень большом расстоянии между ними - сотен и тысяч значений.
Как это объяснить я это не знаю. Может быть знаете вы?
Комментарии (9)
sci_nov
05.05.2024 13:17Прикольно. Напомнило ветку миров: двигаешься от мира к миру, которые соединены переходами.
Format-X22
05.05.2024 13:17если один шаг был длиннее обычного, следующий, скорее всего, будет короче
Похоже на регрессию к среднему.
Format-X22
05.05.2024 13:17На последнем графике хорошо заметно, как тормозится рост из-за уменьшения расстояния между корнями.
Скорее всего секрет в отношении между величинами - они не абсолютны, а относительны - попробуйте логарифмический график, должно всё выровняться.
avasiukevich
05.05.2024 13:17+2По сути эти фракталы на графике говорят нам о необычности распределения разностей между нулями Зета функции
Можно почитать разные научные статьи, которые исследуют это, скорее всего где-то там найдётся ответ.
Например, работа 1987-го года "On the Distribution of Spacings Between Zeros of the Zeta Function" by A. M. Odlyzko [pdf] исследует это распределение (но несколько другими методами) и связывает аномалии с распределением простых чисел:
The peaks of $f(x)$ occur near $x = 2(\log N)^{-1} \log q$, where $q$ is a prime power, and the spikes in Figure 13 are due to 2, 3, 4, 5, 7, 8, 9, 11, 13, 16. 17, and 19, in that order, with proper prime powers having smaller peaks than primes. The explanation for this behavior of the spectrum of the $\delta_n$ lies in the formulas that connect zeros of the zeta function and prime numbers.
euop
05.05.2024 13:17Встречал похожие фракталы, когда пытался написать симуляцию системы космических тел на юнити. На начальных этапах (в силу того, что я не понимал, что делаю) у меня была система из двух точек, которые вырисовывали спирали Корню. Отправные точки были расположены симметрично относительно начала координат - (-1, 0) и (1,0), например. Точно не вспомню алгоритм движения этих тел, но их угловая скорость постоянно возрастала (равноускоренно). Суть в том, что в какой-то определенный момент переменные, отвечающие за угловые скорости, переполнялись (по крайней мере у меня такое понимание происходящего было), и получались занятные графики. Очень похожи на приведенные в посте. Зарегистрировался на хабре, только чтобы этим поделиться)
Скриншоты здесь:
https://ibb.co/rwTz9nC
https://ibb.co/j6Qf6nm
https://ibb.co/t2jR292
https://ibb.co/v1h0GDc
csl
Хорошо, что есть графики, напомнило https://en.m.wikipedia.org/wiki/Ulam_spiral