Формула Бейли – Борвейна – Плуфа

редактировать
Формула для вычисления π

Формула Бейли – Борвейна – Плаффа (Формула BBP ) - это формула для π. Он был обнаружен в 1995 году Саймоном Плаффом и назван в честь авторов статьи, в которой он был опубликован: Дэвида Х. Бейли, Питера Борвейна и Plouffe. До этого ее публиковал Плафф на его собственном сайте. Формула:

π = ∑ k = 0 ∞ [1 16 k (4 8 k + 1 - 2 8 k + 4 - 1 8 k + 5 - 1 8 k + 6)]. {\ displaystyle \ pi = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {16 ^ {k}}} \ left ({\ frac {4} {8k + 1}) } - {\ frac {2} {8k + 4}} - {\ frac {1} {8k + 5}} - {\ frac {1} {8k + 6}} \ right) \ right].}{\ displaystyle \ pi = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {16 ^ {k}}} \ left ({\ frac {4} {8k + 1}} - {\ frac {2} {8k + 4}} - {\ frac {1} {8k + 5}} - {\ frac {1} {8k + 6 }} \ right) \ right].}

Формула BBP дает начало алгоритму втулки для вычисления n-й base-16 (шестнадцатеричной) цифры числа π (и, следовательно, также n-й двоичной цифры числа π) без вычисления предыдущих цифр.

Существование этой формулы стало неожиданностью. Было широко распространено мнение, что вычисление n-й цифры числа π так же сложно, как вычисление первых n цифр.

С момента своего открытия формулы общего вида

α = ∑ k = 0 ∞ [1 bkp (k) q (k)] {\ displaystyle \ alpha = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {b ^ {k}}} {\ frac {p (k)} {q (k)}} \ right]}{\ displaystyle \ alpha = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {b ^ {k}}} {\ frac {p (k)} {q (k)}} \ right]}

были обнаружены для многих других иррациональных чисел α {\ displaystyle \ alpha}\ alpha , где p (k) {\ displaystyle p (k)}p (k) и q (k) {\ displaystyle q (k)}{\ displaystyle q (k)} являются многочленами с целыми коэффициентами и b ≥ 2 {\ displaystyle b \ geq 2}{\ displaystyle б \ geq 2} - целое число с основанием. Формулы этой формы известны как формулы типа BBP . Для числа α {\ displaystyle \ alpha}\ alpha не существует известного систематического алгоритма для поиска подходящего p (k) {\ displaystyle p (k)}p (k) , q (k) {\ displaystyle q (k)}{\ displaystyle q (k)} и b {\ displaystyle b}b ; такие формулы обнаруживаются экспериментально.

Содержание

  • 1 Специализации
    • 1.1 Ранее известные формулы типа BBP
    • 1.2 Поиск новых равенств
    • 1.3 Формула BBP для π
      • 1.3. 1 Алгоритм выделения цифры BBP для π
  • 2 BBP по сравнению с другими методами вычисления π
  • 3 Обобщения
  • 4 См. Также
  • 5 Ссылки
  • 6 Дополнительная литература
  • 7 Внешние ссылки

Специализации

Специализация общей формулы, которая дала много результатов:

P (s, b, m, A) = ∑ k = 0 ∞ [1 bk ∑ j = 1 maj (mk + j) s], {\ displaystyle P (s, b, m, A) = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {b ^ {k}}} \ sum _ {j = 1} ^ {m} {\ frac {a_ {j}} {(mk + j) ^ {s}}} \ right],}{ \ Displaystyle P (s, b, m, A) = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {b ^ {k}}} \ sum _ {j = 1 } ^ {m} {\ frac {a_ {j}} {(mk + j) ^ {s}}} \ right],}

где s, b и m - целые числа, и A = (a 1, a 2,…, am) {\ displaystyle A = (a_ {1}, a_ {2}, \ dots, a_ {m})}{\ displaystyle A = (a_ {1}, a_ {2}, \ dots, a_ {m})} - это последовательность целых чисел. Функция P приводит к компактным обозначениям для некоторых решений. Например, исходная формула BBP

π = ∑ k = 0 ∞ [1 16 k (4 8 k + 1-2 8 k + 4-1 8 k + 5-1 8 k + 6)] {\ displaystyle \ pi = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {16 ^ {k}}} \ left ({\ frac {4} {8k + 1}} - { \ frac {2} {8k + 4}} - {\ frac {1} {8k + 5}} - {\ frac {1} {8k + 6}} \ right) \ right]}{\ displaystyle \ pi = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {16 ^ {k}}} \ left ({\ frac {4} {8k + 1}} - {\ frac {2} {8k + 4}} - {\ frac {1} {8k + 5}} - {\ frac {1} {8k + 6}} \ right) \ right]}

можно записать как

π = P (1, 16, 8, (4, 0, 0, - 2, - 1, - 1, 0, 0)). {\ displaystyle \ pi = P {\ big (} 1,16,8, (4,0,0, -2, -1, -1,0,0) {\ big)}.}{\ displaystyle \ pi = P {\ big (} 1,16,8, (4,0,0, -2, -1, -1,0, 0) {\ big)}.}

Ранее известный Формулы типа BBP

Вот некоторые из простейших формул этого типа, которые были хорошо известны до BBP и для которых функция P приводит к компактной записи:

ln ⁡ 10 9 = 1 10 + 1 200 + 1 3 000 + 1 40 000 + 1 500 000 + ⋯ = ∑ k = 1 ∞ 1 10 k ⋅ k = 1 10 ∑ k = 0 ∞ [1 10 k (1 k + 1)] = 1 10 P ( 1, 10, 1, (1)), {\ displaystyle {\ begin {align} \ ln {\ frac {10} {9}} = {\ frac {1} {10}} + {\ frac {1 } {200}} + {\ frac {1} {3 \ 000}} + {\ frac {1} {40 \, 000}} + {\ frac {1} {500 \, 000}} + \ cdots \ \ = \ sum _ {k = 1} ^ {\ infty} {\ frac {1} {10 ^ {k} \ cdot k}} = {\ frac {1} {10}} \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {10 ^ {k}}} \ left ({\ frac {1} {k + 1}} \ right) \ right] \\ = { \ frac {1} {10}} P {\ big (} 1,10,1, (1) {\ big)}, \ end {align}}}{\ displaystyle {\ begin {align} \ ln {\ frac { 10} {9}} = {\ frac {1} {10}} + {\ frac {1} {200}} + {\ frac {1} {3 \ 000}} + {\ frac {1} { 40 \, 000}} + {\ frac {1} {500 \, 000}} + \ cdots \\ = \ sum _ {k = 1} ^ {\ infty} {\ frac {1} {10 ^ { k} \ cdot k}} = {\ frac {1} {10}} \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {10 ^ {k}}} \ left ({\ frac {1} {k + 1}} \ right) \ right] \\ = {\ frac {1} {10}} P {\ big (} 1,10,1, (1) {\ большой)}, \ конец {выровненный}}}
ln ⁡ 2 = 1 2 + 1 2 ⋅ 2 2 + 1 3 ⋅ 2 3 + 1 4 ⋅ 2 4 + 1 5 ⋅ 2 5 + ⋯ = ∑ k = 1 ∞ 1 2 k ⋅ k = 1 2 ∑ k = 0 ∞ [1 2 k (1 k + 1)] = 1 2 P (1, 2, 1, (1)). {\ displaystyle {\ begin {align} \ ln 2 = {\ frac {1} {2}} + {\ frac {1} {2 \ cdot 2 ^ {2}}} + {\ frac {1} {3 \ cdot 2 ^ {3}}} + {\ frac {1} {4 \ cdot 2 ^ {4}}} + {\ frac {1} {5 \ cdot 2 ^ {5}}} + \ cdots \\ = \ sum _ {k = 1} ^ {\ infty} {\ frac {1} {2 ^ {k} \ cdot k}} = {\ frac {1} {2}} \ sum _ {k = 0 } ^ {\ infty} \ left [{\ frac {1} {2 ^ {k}}} \ left ({\ frac {1} {k + 1}} \ right) \ right] \\ = {\ frac {1} {2}} P {\ big (} 1,2,1, (1) {\ big)}. \ end {align}}}{\ displaystyle {\ begin {align} \ ln 2 = {\ frac {1} {2}} + {\ frac {1} {2 \ cdot 2 ^ {2}}} + {\ frac {1} {3 \ cdot 2 ^ {3}}} + {\ frac {1} {4 \ cdot 2 ^ {4}}} + {\ frac { 1} {5 \ cdot 2 ^ {5}}} + \ cdots \\ = \ sum _ {k = 1} ^ {\ infty} {\ frac {1} {2 ^ {k} \ cdot k}} = {\ frac {1} {2}} \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {2 ^ {k}}} \ left ({\ frac {1} {k + 1}} \ right) \ right] \\ = {\ frac {1} {2}} P {\ big (} 1,2,1, (1) {\ big)}. \ end { выровнено}}}

(На самом деле, это тождество верно для>1: пер ⁡ аа - 1 знак равно ∑ К знак равно 1 ∞ 1 ак ⋅ К {\ Displaystyle \ ln {\ frac {a} {a-1}} = \ sum _ {k = 1} ^ {\ infty } {\ frac {1} {a ^ {k} \ cdot k}}}{\ displaystyle \ ln {\ frac {a} {a-1}} = \ sum _ {k = 1} ^ {\ infty} {\ frac {1} {a ^ {k} \ cdot k}}} )

Плуф был также вдохновлен арктановым степенным рядом формы (обозначение P может быть также обобщено для случай, когда b не является целым числом):

arctan ⁡ 1 b = 1 b - 1 b 3 3 + 1 b 5 5 - 1 b 7 7 + 1 b 9 9 + ⋯ = ∑ k = 1 ∞ [1 bk sin ⁡ k π 2 k] = 1 b ∑ k = 0 ∞ [1 b 4 k (1 4 k + 1 + - b - 2 4 k + 3)] = 1 b P (1, b 4, 4, ( 1, 0, - b - 2, 0)). {\ Displaystyle {\ begin {align} \ arctan {\ frac {1} {b}} = {\ frac {1} {b}} - {\ frac {1} {b ^ {3} 3}} + {\ frac {1} {b ^ {5} 5}} - {\ frac {1} {b ^ {7} 7}} + {\ frac {1} {b ^ {9 } 9}} + \ cdots \\ = \ sum _ {k = 1} ^ {\ infty} \ left [{\ frac {1} {b ^ {k}}} {\ frac {\ sin {\ frac {k \ pi} {2}}} {k}} \ right] = {\ frac {1} {b}} \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {b ^ {4k}}} \ left ({\ frac {1} {4k + 1}} + {\ frac {-b ^ {- 2}} {4k + 3}} \ right) \ right] \\ = {\ frac {1} {b}} P {\ big (} 1, b ^ {4}, 4, (1,0, -b ^ {- 2}, 0) {\ big)}. \ end {align}}}{\ displaystyle {\ begin {align} \ arctan {\ frac {1} {b}} = {\ frac {1} {b}} - {\ frac {1} {b ^ {3} 3}} + {\ frac {1} {b ^ {5} 5} } - {\ frac {1} {b ^ {7} 7}} + {\ frac {1} {b ^ {9} 9}} + \ cdots \\ = \ sum _ {k = 1} ^ { \ infty} \ left [{\ frac {1} {b ^ {k}}} {\ frac {\ sin {\ frac {k \ pi} {2}}} {k}} \ right] = {\ frac {1} {b}} \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {b ^ {4k}}} \ left ({\ frac {1} {4k + 1 }} + {\ frac {-b ^ {- 2}} {4k + 3}} \ right) \ right] \\ = {\ frac {1} {b}} P {\ big (} 1, b ^ {4}, 4, (1,0, -b ^ {- 2}, 0) {\ big)}. \ End {align}}}

Поиск новых равенств

Используя упомянутую выше функцию P, простейшая известная формула для π - это s = 1, но m>1. Многие теперь открытые формулы известны для b как показателя степени 2 или 3 и m как показателя степени 2 или некоторого другого богатого факторами значения, но в которых несколько членов последовательности A равны нулю. Открытие этих формул предполагает компьютерный поиск таких линейных комбинаций после вычисления индивидуальных сумм. Процедура поиска состоит из выбора диапазона значений параметров для s, b и m, вычисления сумм до многих цифр, а затем использования алгоритма поиска целочисленных отношений (обычно Helaman Ferguson алгоритм PSLQ ), чтобы найти последовательность A, которая складывает эти промежуточные суммы с хорошо известной константой или, возможно, с нулем.

Формула BBP для π

Исходная формула суммирования π BBP была найдена в 1995 году Плаффом с использованием PSLQ. Его также можно представить с помощью функции P выше:

π = ∑ k = 0 ∞ [1 16 k (4 8 k + 1 - 2 8 k + 4 - 1 8 k + 5 - 1 8 k + 6)] Знак равно п (1, 16, 8, (4, 0, 0, - 2, - 1, - 1, 0, 0)), {\ displaystyle {\ begin {align} \ pi = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {16 ^ {k}}} \ left ({\ frac {4} {8k + 1}} - {\ frac {2} {8k + 4 }} - {\ frac {1} {8k + 5}} - {\ frac {1} {8k + 6}} \ right) \ right] \\ = P {\ big (} 1,16,8, (4,0,0, -2, -1, -1,0,0) {\ big)}, \ end {align}}}{\ displaystyle {\ begin {align} \ pi = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {16 ^ {k}}} \ left ({\ frac {4} {8k + 1}} - {\ frac {2} {8k + 4}} - {\ frac {1} {8k + 5}} - {\ frac {1} {8k + 6}} \ right) \ right] \\ = P { \ big (} 1,16,8, (4,0,0, -2, -1, -1,0,0) {\ big)}, \ end {align}}}

, что также сводится к этому эквивалентному соотношению двух полиномов:

π = ∑ k = 0 ∞ [1 16 k (120 k 2 + 151 k + 47 512 k 4 + 1024 k 3 + 712 k 2 + 194 k + 15)]. {\ displaystyle \ pi = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {16 ^ {k}}} \ left ({\ frac {120k ^ {2} + 151k +47} {512k ^ {4} + 1024k ^ {3} + 712k ^ {2} + 194k + 15}} \ right) \ right].}{\ displaystyle \ pi = \ sum _ {k = 0} ^ {\ infty} \ left [{\ frac {1} {16 ^ {k}}} \ left ({\ frac {120k ^ {2} + 151k + 47} {512k ^ {4} + 1024k ^ {3} + 712k ^ {2 } + 194k + 15}} \ right) \ right].}

Эта формула с помощью довольно простого доказательства показывает, что она равна π.

Алгоритм выделения цифр BBP для π

Мы хотели бы определить формулу, которая возвращает n-ю шестнадцатеричную цифру числа π. Чтобы реализовать алгоритм втулки, использующий эту формулу, требуется несколько манипуляций.

Сначала мы должны переписать формулу как

π = 4 ∑ k = 0 ∞ 1 (16 k) (8 k + 1) - 2 ∑ k = 0 ∞ 1 (16 k) (8 k + 4) - k = 0 ∞ 1 (16 k) (8 k + 5) - ∑ k = 0 ∞ 1 (16 k) (8 k + 6). {\ displaystyle \ pi = 4 \ sum _ {k = 0} ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 1)}} - 2 \ sum _ {k = 0 } ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 4)}} - \ sum _ {k = 0} ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 5)}} - \ sum _ {k = 0} ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 6)}}.}{\ displaystyle \ pi = 4 \ sum _ {k = 0} ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 1)}} - 2 \ sum _ {k = 0} ^ {\ infty} {\ frac {1} { (16 ^ {k}) (8k + 4)}} - \ sum _ {k = 0} ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 5)}} - \ sum _ {k = 0} ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 6)}}.}

Теперь, для конкретного значения n и взяв первую сумму, мы разделяем сумму на бесконечность по n-му члену:

∑ k = 0 ∞ 1 (16 k) (8 k + 1) = ∑ k = 0 n 1 (16 k) (8 k + 1) + ∑ k = n + 1 ∞ 1 (16 k) (8 k + 1). {\ displaystyle \ sum _ {k = 0} ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 1)}} = \ sum _ {k = 0} ^ {n} {\ frac {1} {(16 ^ {k}) (8k + 1)}} + \ sum _ {k = n + 1} ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 1)}}.}{\ displaystyle \ sum _ {k = 0} ^ {\ infty} {\ frac {1} {(16 ^ {k}) (8k + 1)}} = \ sum _ {k = 0} ^ { n} {\ frac {1} {(16 ^ {k}) (8k + 1)}} + \ sum _ {k = n + 1} ^ {\ infty} {\ frac {1} {(16 ^ { k}) (8k + 1)}}.}

Теперь умножим на 16, чтобы шестнадцатеричная точка (разделение дробной и целой частей числа) оказалась на n-м месте:

∑ k = 0 ∞ 16 N - К 8 К + 1 знак равно ∑ К знак равно 0 N 16 N - К 8 К + 1 + ∑ К знак равно N + 1 ∞ 16 N - К 8 К + 1. {\ displaystyle \ sum _ {k = 0} ^ {\ infty} {\ frac {16 ^ {nk}} {8k + 1}} = \ sum _ {k = 0} ^ {n} {\ frac {16 ^ {nk}} {8k + 1}} + \ sum _ {k = n + 1} ^ {\ infty} {\ frac {16 ^ {nk}} {8k + 1}}.}{\ displaystyle \ sum _ {k = 0} ^ {\ infty} {\ frac {16 ^ {nk}} {8k + 1}} = \ sum _ {k = 0} ^ {n} {\ frac {16 ^ {nk}} {8k + 1}} + \ sum _ {k = n + 1} ^ {\ infty} {\ frac {16 ^ {nk}} {8k + 1}}.}

Поскольку мы заботимся только о дробной части суммы, мы смотрим на наши два члена и понимаем, что только первая сумма способна дать целые числа; наоборот, вторая сумма не может давать целые числа, так как числитель никогда не может быть больше знаменателя при k>n. Следовательно, нам нужен трюк, чтобы убрать целые числа из первой суммы. Этот трюк - mod 8k + 1. Наша сумма для первой дробной части тогда становится

∑ k = 0 n 16 n - k mod (8 k + 1) 8 k + 1 + ∑ k = n + 1 ∞ 16 n. - к 8 к + 1. {\ displaystyle \ sum _ {k = 0} ^ {n} {\ frac {16 ^ {nk} {\ bmod {(}} 8k + 1)} {8k + 1}} + \ sum _ {k = n +1} ^ {\ infty} {\ frac {16 ^ {nk}} {8k + 1}}.}{\ displaystyle \ sum _ {k = 0} ^ {n} {\ frac {16 ^ {nk} {\ bmod {(} } 8k + 1)} {8k + 1}} + \ sum _ {k = n + 1} ^ {\ infty} {\ frac {16 ^ {nk}} {8k + 1}}.}

Обратите внимание, что оператор по модулю всегда гарантирует, что будет сохранена только дробная сумма. Для быстрого и эффективного вычисления 16 mod (8k + 1) используется алгоритм модульного возведения в степень. Когда текущее произведение становится больше единицы, берется модуль, как и для промежуточной суммы в каждой сумме.

Теперь, чтобы завершить расчет, это необходимо применить по очереди к каждой из четырех сумм. Как только это будет сделано, четыре суммирования возвращаются в сумму π:

4 Σ 1 - 2 Σ 2 - Σ 3 - Σ 4. {\ displaystyle 4 \ Sigma _ {1} -2 \ Sigma _ {2} - \ Sigma _ {3} - \ Sigma _ {4}.}{\ displaystyle 4 \ Sigma _ {1} -2 \ Sigma _ {2} - \ Si gma _ {3} - \ Sigma _ {4}.}

Поскольку точна только дробная часть, для извлечения нужной цифры требуется что удаляется целая часть окончательной суммы и умножается на 16, чтобы «убрать» шестнадцатеричную цифру в этой позиции (теоретически следующие несколько цифр с точностью до используемых вычислений также будут точными).

Этот процесс аналогичен выполнению длинного умножения, но требуется только суммирование некоторых средних столбцов. Хотя есть некоторые переносчики, которые не учитываются, компьютеры обычно выполняют арифметические операции для многих битов (32 или 64) и округляют, и нас интересуют только наиболее значащие цифры. Существует вероятность того, что конкретное вычисление будет похоже на невозможность добавить небольшое число (например, 1) к числу 999999999999999, и что ошибка будет распространяться на самую значительную цифру.

BBP по сравнению с другими методами вычисления π

Этот алгоритм вычисляет π, не требуя специальных типов данных, содержащих тысячи или даже миллионы цифр. Метод вычисляет n-ю цифру без вычисления первых n - 1 цифр и может использовать небольшие эффективные типы данных.

Хотя формула BBP может напрямую вычислять значение любой заданной цифры числа π с меньшими вычислительными усилиями, чем формулы, которые должны вычислять все промежуточные цифры, BBP остается линеарифмической (O (n log ⁡ n) {\ displaystyle O (n \ log n)}O (n \ log n) ), в результате чего для вычисления последовательно возрастающих значений n требуется все больше времени; то есть, чем «дальше» находится цифра, тем больше времени требуется BBP для ее вычисления, как и стандартные алгоритмы π-вычислений.

Обобщения

D. Дж. Бродхерст дает обобщение алгоритма BBP, который может использоваться для вычисления ряда других констант почти за линейное время и в логарифмическом пространстве. Явные результаты приведены для константы Каталонии, π 3 {\ displaystyle \ pi ^ {3}}\ pi ^ {3} , π 4 {\ displaystyle \ pi ^ {4}}\ pi ^ {4} , константы Апери ζ (3) {\ displaystyle \ zeta (3)}\ zeta (3) , ζ (5) {\ displaystyle \ zeta (5)}\ zeta (5) , (где ζ (x) {\ Displaystyle \ zeta (x)}\ zeta (x) - дзета-функция Римана ), log 3 ⁡ 2 {\ displaystyle \ log ^ {3} 2}\ log ^ {3} 2 , log 4 ⁡ 2 {\ displaystyle \ log ^ {4} 2}\ log ^ {4} 2 , log 5 ⁡ 2 {\ displaystyle \ log ^ {5} 2}\ log ^ {5} 2 и различные произведения степеней π { \ displaystyle \ pi}\ pi и журнал ⁡ 2 {\ displaystyle \ log 2}\ log 2 . Эти результаты получены в основном за счет использования лестниц полилогарифма.

См. Также

Ссылки

Дополнительная литература

Внешние ссылки

Последняя правка сделана 2021-05-11 07:13:55
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте