Недавно я наткнулся на проблему Вольфрам говорит, что сумма расходится, но Mathematica дает числовое значение . Он говорит, что 1/(n * log(n) - n)
не суммируемо (или не сходится математически, чтобы быть правильным). Интересно то, что мы все еще можем попытаться подсчитать сумму численно, несмотря на то, что она «не суммируется». Mathematica дает числовой ответ ~ 6.1
.
OK. Я думаю, давайте попробуем воспроизвести это число (или что-то подобное) в PHP-сценарии суммирования этой серии. Мой код был:
$formula = function ($n) {return 1/($n * log($n) - $n);};
$n=2;
$sum=0;
while(true) {
$term_n = $formula($n);
$sum += $term_n;
if ($n++ % 100000 == 0) {
if ($sum > 5.8)
usleep(1000);
echo "n=".number_format($n-1)."; sum={$sum}; error={$term_n}\n";
}
}
Мой алгоритм вычислял ответ до 5.866
, и затем происходила одна из двух вещей:
- либо Ubuntu зависал / зависал
- Или Linux убил мой процесс сценария вычисления
Это произошло после примерно 34 миллионов итераций.
Позже я проверил, как изменяется нагрузка на процессор в связи с вычислением большего количества последовательных терминов.
Теперь интересная часть:
примерно на 22 миллионах итераций ядра испытывали трудности с переключением задач между собой:
Позже, примерно за 33 миллиона итераций, ядра достигли точки невозврата - они вообще отказались работать:
Вопрос в том - Что такого особенного в сумме 5.866
, что она дает сбой компьютеру? - учитывая тот факт, что ни число итераций N не очень велико (всего 34 миллиона), ни N- очень маленький термин (всего 1.7E-9) - поэтому нет причин для сингулярности.