Число пи сокращенное. История числа пи. Необычные факты о числе π

Отношение длины окружности к ее диаметру одно и то же для всех окружностей. Это отношение принято обозначать греческой буквой (“пи” - начальная буква греческого слова , которое и означало “окружность”).

Архимед в сочинении “Измерение круга” вычислил отношение длины окружности к диаметру (число ) и нашел, что оно заключено между 3 10/71 и 3 1/7.

Долгое время в качестве приближенного значения использовали число 22/7, хотя уже в V веке в Китае было найдено приближение 355/113 = 3,1415929..., которое было открыто вновь в Европе лишь в XVI веке.

В Древней Индии считали равным = 3,1622….

Французский математик Ф. Виет вычислил в 1579 г. с 9 знаками.

Голландский математик Лудольф Ван Цейлен в 1596 г. публикует результат своего десятилетнего труда – число , вычисленное с 32 знаками.

Но все эти уточнения значения числа производились методами, указанными еще Архимедом: окружность заменялась многоугольником со все большим числом сторон. Периметр вписанного многоугольника при этом был меньше длины окружности, а периметр описанного многоугольника – больше. Но при этом оставалась неясным, является ли число рациональным, т. е. отношением двух целых чисел, или иррациональным.

Лишь в 1767 г. немецкий математик И.Г. Ламберт доказал, что число иррационально.

А еще через сто с лишним лет в 1882 г. другой немецкий математик – Ф. Линдеман доказал его трансцендентность, что означало и невозможность построения при помощи циркуля и линейки квадрата, равновеликого данному кругу.

Простейшее измерение

Начертим на плотном картоне окружность диаметра d (=15 см) , вырежем получившийся круг и обмотаем вокруг него тонкую нить. Измерив длину l (=46,5 см) одного полного оборота нити, разделим l на длину диаметра d окружности. Получившееся частное будет приближенным значением числа , т. е. = l / d = 46,5 см / 15 см = 3,1 . Данный довольно грубый способ дает в обычных условиях приближенное значение числа с точностью до 1.

Измерение с помощью взвешивания

На листе картона начертим квадрат. Впишем в него круг. Вырежем квадрат. Определим массу картонного квадрата с помощью школьных весов. Вырежем из квадрата круг. Взвесим и его. Зная массы квадрата m кв (=10 г) и вписанного в него круга m кр (=7,8 г) воспользуемся формулами

где p и h –соответственно плотность и толщина картона, S – площадь фигуры. Рассмотрим равенства:

Естественно, что в данном случае приближенное значение зависит от точности взвешивания. Если взвешиваемые картонные фигуры будут довольно большими, то возможно даже на обычных весах получить такие значения масс, которые обеспечат приближение числа с точностью до 0,1.

Суммирование площадей прямоугольников, вписанных в полукруг

Рисунок 1

Пусть А (a; 0), В (b; 0). Опишем на АВ полуокружность как на диаметре. Разделим отрезок АВ на n равных частей точками x 1 , x 2 , ..., x n-1 и восстановим из них перпендикуляры до пересечения с полуокружностью. Длина каждого такого перпендикуляра – это значение функции f(x)= . Из рисунка 1 ясно, что площадь S полукруга можно вычислить по формуле

S = (b – a) ((f(x 0) + f(x 1) + … + f(x n-1)) / n.

В нашем случае b=1, a=-1 . Тогда = 2 S .

Значения будут тем точнее, чем больше точек деления будет на отрезке АВ. Облегчить однообразную вычислительную работу поможет компьютер, для которого ниже приводится программа 1, составленная на Бейсике.

Программа 1

REM "Вычисление пи"
REM "Метод прямоугольников"
INPUT "Введите число прямоугольников", n
dx = 1 / n
FOR i = 0 TO n - 1
f = SQR(1 - x ^ 2)
x = x + dx
a = a + f
NEXT i
p = 4 * dx * a
PRINT "Значение пи равно ", p
END

Программа была набрана и запущена при различных значениях параметра n . Полученные значения числа записаны в таблице:

Метод Монте-Карло

Это фактически метод статистических испытаний. Свое экзотическое название он получил от города Монте-Карло в княжестве Монако, знаменитого своими игорными домами. Дело в том, что метод требует применения случайных чисел, а одним из простейших приборов, генерирующих случайные числа, может служить рулетка. Впрочем, можно получить случайные числа и при помощи …дождя.

Для опыта приготовим кусок картона, нарисуем на нем квадрат и впишем в квадрат четверть круга. Если такой чертеж некоторое время подержать под дождем, то на его поверхности останутся следы капель. Подсчитаем число следов внутри квадрата и внутри четверти круга. Очевидно, что их отношение будет приближенно равно отношению площадей этих фигур, так как попадание капель в различные места чертежа равновероятно. Пусть N кр – число капель в круге, N кв – число капель в квадрате, тогда

4 N кр / N кв.

Рисунок 2

Дождь можно заменить таблицей случайных чисел, которая составляется с помощью компьютера по специальной программе. Каждому следу капли поставим в соответствие два случайных числа, характеризующих его положение вдоль осей Ох и Оу . Случайные числа можно выбрать из таблицы в любом порядке, например, подряд. Пусть первое четырехзначное число в таблице 3265 . Из него можно приготовить пару чисел, каждое из которых больше нуля и меньше единицы: х=0,32, у=0,65 . Эти числа будем считать координатами капли, т. е. капля как будто попала в точку (0,32; 0,65). Аналогично поступаем и со всеми выбранными случайными числами. Если окажется, что для точки (х; у) выполняется неравенство, то, значит, она лежит вне круга. Если х + у = 1 , то точка лежит внутри круга.

Для подсчета значения снова воспользуемся формулой (1). Ошибка вычислений по этому методу, как правило, пропорциональна , где D – некоторая постоянная, а N –число испытаний. В нашем случае N = N кв. Из этой формулы видно: для того чтобы уменьшить ошибку в 10 раз (иначе говоря, чтобы получить в ответе еще один верный десятичный знак), нужно увеличить N, т. е. объем работы, в 100 раз. Ясно, что применение метода Монте-Карло стало возможным только благодаря компьютерам. Программа 2 реализует на компьютере описанный метод.

Программа 2

REM "Вычисление пи"
REM "Метод Монте-Карло "
INPUT "Введите число капель ", n
m = 0
FOR i = 1 TO n
t = INT(RND(1) * 10000)
x = INT(t \ 100)
y = t - x * 100
IF x ^ 2 + y ^ 2 < 10000 THEN m = m + 1
NEXT i
p = 4 * m / n

END

Программа была набрана и запущена при различных значениях параметра n. Полученные значения числа записаны в таблице:

n
n

Метод “падающей иголки”

Возьмем обыкновенную швейную иголку и лист бумаги. На листе проведем несколько параллельных прямых так, чтобы расстояния между ними были равны и превышали длину иголки. Чертеж должен быть достаточно большим, чтобы случайно брошенная игла не упала за его пределами. Введем обозначения: а - расстояние между прямыми, l – длина иглы.

Рисунок 3

Положение случайным образом брошенной на чертеж иглы (см. рис. 3) определяется расстоянием Х от ее середины до ближайшей прямой и углом j , которой игла образует с перпендикуляром, опущенным из середины иглы на ближайшую прямую (см. рис. 4). Ясно, что

Рисунок 4

На рис. 5 изобразим графически функцию y=0,5 cos . Всевозможные расположения иглы характеризуются точками с координатами (; у ) , расположенными на участке ABCD. Закрашенный участок AED – это точки, которые соответствуют случаю пересечения иглы с прямой. Вероятность события a – “игла пересекла прямую” – вычисляется по формуле:

Рисунок 5

Вероятность p(a) можно приблизительно определить многократным бросанием иглы. Пусть иглу бросали на чертеж c раз и p раз она упала, пересекая одну из прямых, тогда при достаточно большом c имеем p(a) = p / c . Отсюда = 2 l с / a k.

Замечание. Изложенный метод представляет собой вариацию метода статистических испытаний. Он интересен с дидактической точки зрения, так как помогает совместить простой опыт с составлением довольно сложной математической модели.

Вычисление с помощью ряда Тейлора

Обратимся к рассмотрению произвольной функции f(х). Предположим, что для нее в точке x 0 существуют производные всех порядков до n -го включительно. Тогда для функции f(х) можно записать ряд Тейлора:

Вычисления с помощью этого ряда будут тем точнее, чем больше членов ряда будет задействовано. Реализовать данный способ, конечно, лучше всего на компьютере, для чего можно воспользоваться программой 3.

Программа 3

REM "Вычисление пи"
REM "Разложение в ряд Тейлора "
INPUT n
a = 1
FOR i = 1 TO n
d = 1 / (i + 2)
f = (-1) ^ i * d
a = a + f
NEXT i
p = 4 * a
PRINT "значение пи равно"; p
END

Программа была набрана и запущена при различных значениях параметра n . Полученные значения числа записаны в таблице:

Есть очень простые мнемонические правила для запоминания значения числа :


Для вычисления сколько-нибудь большого количества знаков пи предыдущий способ уже не годится. Но существует большое количество последовательностей, сходящихся к Пи гораздо быстрее. Воспользуемся, например, формулой Гаусса:

p = 12arctan 1 + 8arctan 1 - 5arctan 1
4 18 57 239

Доказательство этой формулы несложное, поэтому мы его опустим.

Исходник программы, включающий в себя "длинную арифметику"

Программа вычисляет NbDigits первых цифр числа Пи. Функция вычисления arctan названа arccot, так как arctan(1/p) = arccot(p), но расчет происходит по формуле Тейлора именно для арктангенса, а именно arctan(x) = x - x 3 /3 + x 5 /5 - ... x=1/p, значит arccot(x) = 1/p - 1 / p 3 / 3 + ... Вычисления происходят рекурсивно: предыдущий элемент суммы делится и дает следующий.

/* ** Pascal Sebah: September 1999 ** ** Subject: ** ** A very easy program to compute Pi with many digits. ** No optimisations, no tricks, just a basic program to learn how ** to compute in multiprecision. ** ** Formulae: ** ** Pi/4 = arctan(1/2)+arctan(1/3) (Hutton 1) ** Pi/4 = 2*arctan(1/3)+arctan(1/7) (Hutton 2) ** Pi/4 = 4*arctan(1/5)-arctan(1/239) (Machin) ** Pi/4 = 12*arctan(1/18)+8*arctan(1/57)-5*arctan(1/239) (Gauss) ** ** with arctan(x) = x - x^3/3 + x^5/5 - ... ** ** The Lehmer"s measure is the sum of the inverse of the decimal ** logarithm of the pk in the arctan(1/pk). The more the measure ** is small, the more the formula is efficient. ** For example, with Machin"s formula: ** ** E = 1/log10(5)+1/log10(239) = 1.852 ** ** Data: ** ** A big real (or multiprecision real) is defined in base B as: ** X = x(0) + x(1)/B^1 + ... + x(n-1)/B^(n-1) ** where 0<=x(i) Work with double instead of long and the base B can ** be choosen as 10^8 ** => During the iterations the numbers you add are smaller ** and smaller, take this in account in the +, *, / ** => In the division of y=x/d, you may precompute 1/d and ** avoid multiplications in the loop (only with doubles) ** => MaxDiv may be increased to more than 3000 with doubles ** => ... */ #include #include #include #include long B=10000; /* Working base */ long LB=4; /* Log10(base) */ long MaxDiv=450; /* about sqrt(2^31/B) */ /* ** Set the big real x to the small integer Integer */ void SetToInteger (long n, long *x, long Integer) { long i; for (i=1; i/* ** Is the big real x equal to zero ? */ long IsZero (long n, long *x) { long i; for (i=0; i/* ** Addition of big reals: x += y ** Like school addition with carry management */ void Add (long n, long *x, long *y) { long carry=0, i; for (i=n-1; i>=0; i--) { x[i] += y[i]+carry; if (x[i]/* ** Substraction of big reals: x -= y ** Like school substraction with carry management ** x must be greater than y */ void Sub (long n, long *x, long *y) { long i; for (i=n-1; i>=0; i--) { x[i] -= y[i]; if (x[i]<0) { if (i) { x[i] += B; x--; } } } } /* ** Multiplication of the big real x by the integer q ** x = x*q. ** Like school multiplication with carry management */ void Mul (long n, long *x, long q) { long carry=0, xi, i; for (i=n-1; i>=0; i--) { xi = x[i]*q; xi += carry; if (xi>=B) { carry = xi/B; xi -= (carry*B); } else carry = 0; x[i] = xi; } } /* ** Division of the big real x by the integer d ** The result is y=x/d. ** Like school division with carry management ** d is limited to MaxDiv*MaxDiv. */ void Div (long n, long *x, long d, long *y) { long carry=0, xi, q, i; for (i=0; i/* ** Find the arc cotangent of the integer p (that is arctan (1/p)) ** Result in the big real x (size n) ** buf1 and buf2 are two buffers of size n */ void arccot (long p, long n, long *x, long *buf1, long *buf2) { long p2=p*p, k=3, sign=0; long *uk=buf1, *vk=buf2; SetToInteger (n, x, 0); SetToInteger (n, uk, 1); /* uk = 1/p */ Div (n, uk, p, uk); Add (n, x, uk); /* x = uk */ while (!IsZero(n, uk)) { if (p/* Two steps for large p (see division) */ Div (n, uk, p, uk); } /* uk = u(k-1)/(p^2) */ Div (n, uk, k, vk); /* vk = uk/k */ if (sign) Add (n, x, vk); /* x = x+vk */ else Sub (n, x, vk); /* x = x-vk */ k+=2; sign = 1-sign; } } /* ** Print the big real x */ void Print (long n, long *x) { long i; printf ("%d.", x); for (i=1; i/* ** Computation of the constant Pi with arctan relations */ void main () { clock_t endclock, startclock; long NbDigits=10000, NbArctan; long p, m; long size=1+NbDigits/LB, i; long *Pi = (long *)malloc(size*sizeof(long)); long *arctan = (long *)malloc(size*sizeof(long)); long *buffer1 = (long *)malloc(size*sizeof(long)); long *buffer2 = (long *)malloc(size*sizeof(long)); startclock = clock(); /* ** Formula used: ** ** Pi/4 = 12*arctan(1/18)+8*arctan(1/57)-5*arctan(1/239) (Gauss) */ NbArctan = 3; m = 12; m = 8; m = -5; p = 18; p = 57; p = 239; SetToInteger (size, Pi, 0); /* ** Computation of Pi/4 = Sum(i) *arctan(1/p[i])] */ for (i=0; i0) Add (size, Pi, arctan); else Sub (size, Pi, arctan); } Mul (size, Pi, 4); endclock = clock (); Print (size, Pi); /* Print out of Pi */ printf ("Computation time is: %9.2f seconds\n", (float)(endclock-startclock)/(float)CLOCKS_PER_SEC); free (Pi); free (arctan); free (buffer1); free (buffer2); }

Конечно, это не самые эффективные способы вычисления числа пи. Существует еще громадное количество формул. Например, формула Чудновского (Chudnovsky), разновидности которой используются в Maple. Однако в обычной практике программирования формулы Гаусса вполне хватает, поэтому эти методы не будут описываться в статье. Вряд ли кто-то хочет вычислять миллиарды знаков пи, для которых сложная формула дает большое увеличение скорости.

История числа Пи начинается еще с Древнего Египта и идет параллельно с развитием всей математики. Мы же впервые встречаемся с этой величиной в стенах школы.

Число Пи является, пожалуй, самым загадочным из бесконечного множества других. Ему посвящены стихи, его изображают художники, о нем даже снят фильм. В нашей статье мы рассмотрим историю развития и вычисления, а также области применения константы Пи в нашей жизни.

Число Пи – это математическая константа равная отношению длины окружности к длине ее диаметра. Первоначально оно называлось лудольфово числом, а обозначать его буквой Пи было предложено британским математиком Джонсом в 1706 году. После работ Леонарда Эйлера в 1737 году это обозначение стало общепринятым.

Число Пи является иррациональным, то есть его значение не может быть точно выражено в виде дроби m/n, где m и n - целые числа. Впервые это доказал Иоганн Ламберт в 1761 году.

История развития числа Пи насчитывает уже порядка 4000 лет. Еще древнеегипетским и вавилонским математикам было известно, что отношение длины окружности к диаметру одинаково для любой окружности и значение его равно чуть больше трех.

Архимед предложил математический способ вычисления Пи, в котором он вписывал в окружность и описывал около неё правильные многоугольники. По его расчетам Пи примерно равнялась 22/7 ≈ 3,142857142857143.

Во II веке Чжан Хэн предложил два значения числа Пи: ≈ 3,1724 и ≈ 3,1622.

Индийские математики Ариабхата и Бхаскара нашли приблизительное значение 3,1416.

Самым точным приближением числа Пи на протяжении 900 лет было вычисление китайского математика Цзу Чунчжи, проведенное в 480-х годах. Он вывел, что Пи ≈ 355 / 113 , и показал, что 3,1415926 < Пи < 3,1415927.

До II тысячелетия было вычислено не более 10 цифр числа Пи. Лишь с развитием математического анализа, а особенно с открытием рядов, были осуществлены последующие крупные продвижения в вычислении константы.

В 1400-х годах Мадхава смог вычислить Пи=3,14159265359. Его рекорд удалось побить персидскому математику Аль-Каши в 1424 году. Он в своём труде «Трактат об окружности» привёл 17 цифр числа Пи, 16 из которых оказались верными.

Голландский математик Людольф ван Цейлен дошел в своих вычислениях до 20-ти чисел, отдав на это 10 лет жизни. После его смерти в его записях были обнаружены еще 15 цифр числа Пи. Он завещал, чтобы эти цифры были высечены на его надгробии.

С появлением компьютеров число Пи на сегодняшний день насчитывает несколько триллионов знаков и это не предел. Но, как подмечено в книге «Fractals for the Classroom», при всей важности числа Пи «трудно найти сферы в научных расчетах, где потребовалось бы больше двадцати десятичных знаков».

В нашей жизни число Пи используется во многих научных областях. Физика, электроника, теория вероятностей, химия, строительство, навигация, фармакология - это лишь некоторые из них, которые просто невозможно представить себе без этого загадочного числа.

По материалам сайта Calculator888.ru - Число Пи - значение, история, кто придумал .

Введение

В статье присутствуют математические формулы, поэтому для чтения перейдите на сайт для их корректного отображения. Число \(\pi \) имеет богатую историю. Данная константа обозначает отношение длины окружности к ее диаметру.

В науке число \(\pi \) используют в любых расчетах, где есть окружности. Начиная от объема банки газировки, до орбит спутников. И не только окружности. Ведь в изучении кривых линий число \(\pi \) помогает понять периодические и колебательные системы. Например, электромагнитные волны и даже музыку.

В 1706 году в книге «Новое введение в математику» британского ученого Уильяма Джонса (1675-1749 гг.) для обозначения числа 3,141592… впервые была использована буква греческого алфавита \(\pi \). Это обозначение происходит от начальной буквы греческих слов περιϕερεια – окружность, периферия и περιµετρoς – периметр. Общепринятым обозначение стало после работ Леонарда Эйлера в 1737 году.

Геометрический период

Постоянство отношения длины любой окружности к её диаметру было замечено уже давно. Жители Междуречья применяли довольно грубое приближение числа \(\pi \). Как следует из древних задач, в своих расчетах они используют значение \(\pi ≈ 3 \).

Более точное значение для \(\pi \) использовали древние египтяне. В Лондоне и Нью-Йорке хранятся две части древнеегипетского папируса, который называют «папирус Ринда». Папирус был составлен писцом Армесом примерно между 2000-1700 гг. до н.э.. Армес в своем папирусе написал, что площадь круга с радиусом \(r\) равна площади квадрата со стороной, равной \(\frac{8}{9} \) от диаметра окружности \(\frac{8}{9} \cdot 2r \), то есть \(\frac{256}{81} \cdot r^2 = \pi r^2 \). Отсюда \(\pi = 3,16\).

Древнегреческий математик Архимед (287-212 гг. до н.э.) впервые поставил задачу измерения круга на научную почву. Он получил оценку \(3\frac{10}{71} < \pi < 3\frac{1}{7}\), рассмотрев отношение периметров вписанного и описанного 96-угольника к диаметру окружности. Архимед выразил приближение числа \(\pi \) в виде дроби \(\frac{22}{7}\), которое до сих называется архимедовым числом.

Метод достаточно простой, но при отсутствии готовых таблиц тригонометрических функций потребуется извлечение корней. Кроме этого, приближение сходится к \(\pi \) очень медленно: с каждой итерацией погрешность уменьшается лишь вчетверо.

Аналитический период

Несмотря на это, до середины 17 века все попытки европейских учёных вычислить число \(\pi \) сводились к увеличению сторон многоугольника. Так например, голландский математик Лудольф ван Цейлен (1540-1610 гг.) вычислил приближенное значение числа \(\pi \) с точностью до 20-ти десятичных цифр.

На вычисление ему понадобилось 10 лет. Удваивая по методу Архимеда число сторон вписанных и описанных многоугольников, он дошел до \(60 \cdot 2^{29} \) – угольника с целью вычисления \(\pi \) с 20 десятичными знаками.

После смерти в его рукописях были обнаружены ещё 15 точных цифр числа \(\pi \). Лудольф завещал, чтобы найденные им знаки были высечены на его надгробном камне. В честь него число \(\pi \) иногда называли «лудольфовым числом» или «константой Лудольфа».

Одним из первых, кто представил метод, отличный от метода Архимеда, был Франсуа Виет (1540-1603 гг.). Он пришел к результату , что круг, диаметр которого равен единице, имеет площадь:

\[\frac{1}{2 \sqrt{\frac{1}{2}} \cdot \sqrt{\frac{1}{2} + \frac{1}{2} \sqrt{\frac{1}{2}} } \cdot \sqrt{\frac{1}{2} + \frac{1}{2} \sqrt{\frac{1}{2} + \frac{1}{2} \sqrt{\frac{1}{2} \cdots }}}} \]

С другой стороны, площадь равна \(\frac{\pi}{4} \). Подставив и упростив выражение, можно получить следующую формулу бесконечного произведения для вычисления приближенного значения \(\frac{\pi}{2} \):

\[\frac{\pi}{2} = \frac{2}{\sqrt{2}} \cdot \frac{2}{\sqrt{2 + \sqrt{2}}} \cdot \frac{2}{\sqrt{2+ \sqrt{2 + \sqrt{2}}}} \cdots \]

Полученная формула представляет собой первое точное аналитическое выражение для числа \(\pi \). Кроме этой формулы, Виет, используя метод Архимеда, дал с помощью вписанных и описанных многоугольников, начиная с 6-угольника и заканчивая многоугольником с \(2^{16} \cdot 6 \) сторонами приближение числа \(\pi \) с 9 правильными знаками.

Английский математик Уильям Броункер (1620-1684 гг.), используя цепную дробь , получил следующие результаты вычисления \(\frac{\pi}{4}\):

\[\frac{4}{\pi} = 1 + \frac{1^2}{2 + \frac{3^2}{2 + \frac{5^2}{2 + \frac{7^2}{2 + \frac{9^2}{2 + \frac{11^2}{2 + \cdots }}}}}} \]

Данный метод вычисления приближения числа \(\frac{4}{\pi} \) требует довольно больших вычислений, чтобы получить хотя бы небольшое приближение.

Получаемые в результате подстановки значения то больше, то меньше числа \(\pi \), и каждый раз все ближе к истинному значению, но для получения значения 3,141592 потребуется совершить довольно большие вычисления.

Другой английский математик Джон Мэчин (1686-1751 гг.) в 1706 году для вычисления числа \(\pi \) со 100 десятичными знаками воспользовался формулой, выведенной Лейбницем в 1673 году, и применил её следующим образом:

\[\frac{\pi}{4} = 4 arctg\frac{1}{5} – arctg\frac{1}{239} \]

Ряд быстро сходится и с его помощью можно вычислить число \(\pi \) с большой точностью. Формулы подобного типа использовались для установки нескольких рекордов в эпоху компьютеров.

В XVII в. с началом периода математики переменной величины наступил новый этап в вычислении \(\pi \). Немецкий математик Готфрид Вильгельм Лейбниц (1646-1716 гг.) в 1673 году нашел разложение числа \(\pi \), в общем виде его можно записать следующим бесконечным рядом:

\[ \pi = 1 – 4(\frac{1}{3} + \frac{1}{5} – \frac{1}{7} + \frac{1}{9} – \frac{1}{11} + \cdots) \]

Ряд получается при подстановке x = 1 в \(arctg x = x – \frac{x^3}{3} + \frac{x^5}{5} – \frac{x^7}{7} + \frac{x^9}{9} – \cdots\)

Леонард Эйлер развивает идею Лейбница в своих работах, посвященных использованию рядов для arctg x при вычислении числа \(\pi \). В трактате «De variis modis circuli quadraturam numeris proxime exprimendi» (О различных методах выражения квадратуры круга приближенными числами), написанном в 1738 году, рассматриваются методы усовершенствования вычислений по формуле Лейбница.

Эйлер пишет о том, что ряд для арктангенса будет сходиться быстрее, если аргумент будет стремиться к нулю. Для \(x = 1\) сходимость ряда очень медленная: для вычисления с точностью до 100 цифр необходимо сложить \(10^{50}\) членов ряда. Ускорить вычисления можно, уменьшив значение аргумента. Если принять \(x = \frac{\sqrt{3}}{3}\), то получается ряд

\[ \frac{\pi}{6} = artctg\frac{\sqrt{3}}{3} = \frac{\sqrt{3}}{3}(1 – \frac{1}{3 \cdot 3} + \frac{1}{5 \cdot 3^2} – \frac{1}{7 \cdot 3^3} + \cdots) \]

По утверждению Эйлера, если мы возьмем 210 членов этого ряда, то получим 100 верных знаков числа. Полученный ряд неудобен, потому что необходимо знать достаточно точное значение иррационального числа \(\sqrt{3} \). Также Эйлер в своих вычислениях использовал разложения арктангенсов на сумму арктангенсов меньших аргументов :

\[где x = n + \frac{n^2-1}{m-n}, y = m + p, z = m + \frac{m^2+1}{p} \]

Далеко не все формулы для вычисления \(\pi \), которые использовал Эйлер в своих записных книжках, были опубликованы. В опубликованных работах и записных книжках он рассмотрел 3 различных ряда для вычисления арктангенса, а также привел множество утверждений, касающихся количества суммируемых членов, необходимых для получения приближенного значения \(\pi \) c заданной точностью.

В последующие годы уточнения значения числа \(\pi \) происходили все быстрее и быстрее. Так, например, в 1794 году Георг Вега (1754-1802 гг.) определил уже 140 знаков , из который только 136 оказались верными.

Период компьютерных вычислений

XX век ознаменован совершенно новым этапом в вычислении числа \(\pi \). Индийский математик Сриниваса Рамануджан (1887-1920 гг.) обнаружил множество новых формул для \(\pi \). В 1910 году он получил формулу для вычисления \(\pi \) через разложение арктангенса в ряд Тейлора:

\[\pi = \frac{9801}{2\sqrt{2} \sum\limits_{k=1}^{\infty} \frac{(1103+26390k) \cdot (4k)!}{(4\cdot99)^{4k} (k!)^2}} .\]

При k=100 достигается точность в 600 верных цифр числа \(\pi \).

Появление ЭВМ позволило существенно увеличить точность получаемых значений за более короткие сроки. В 1949 году всего за 70 часов с помощью ENIAC группа ученых под руководством Джона фон Неймана (1903-1957 гг.) получила 2037 знаков после запятой числа \(\pi \) . Давид и Грегорий Чудновские в 1987 году получили формулу, с помощью которой смогли установить несколько рекордов в вычислении \(\pi \):

\[\frac{1}{\pi} = \frac{1}{426880\sqrt{10005}} \sum\limits_{k=1}^{\infty} \frac{(6k)!(13591409+545140134k)}{(3k)!(k!)^3(-640320)^{3k}}.\]

Каждый член ряда дает по 14 цифр. В 1989 году было получено 1 011 196 691 цифр после запятой. Данная формула хорошо подходит для вычисления \(\pi \) на персональных компьютерах. На данный момент братья являются профессорами в политехническом институте Нью-Йоркского университета.

Важным событием недавнего времени стало открытие формулы в 1997 году Саймоном Плаффом . Она позволяет извлечь любую шестнадцатеричную цифру числа \(\pi \) без вычисления предыдущих. Формула носит название «Формула Бэйли – Боруэйна – Плаффа» в честь авторов статьи, где формула была впервые опубликована. Она имеет следующий вид:

\[\pi = \sum\limits_{k=1}^{\infty} \frac{1}{16^k} (\frac{4}{8k+1} – \frac{2}{8k+4} – \frac{1}{8k+5} – \frac{1}{8k+6}) .\]

В 2006 году Саймон, используя PSLQ, получил несколько красивых формул для вычисления \(\pi \). Например,

\[ \frac{\pi}{24} = \sum\limits_{n=1}^{\infty} \frac{1}{n} (\frac{3}{q^n – 1} – \frac{4}{q^{2n} -1} + \frac{1}{q^{4n} -1}), \]

\[ \frac{\pi^3}{180} = \sum\limits_{n=1}^{\infty} \frac{1}{n^3} (\frac{4}{q^{2n} – 1} – \frac{5}{q^{2n} -1} + \frac{1}{q^{4n} -1}), \]

где \(q = e^{\pi}\). В 2009 году японские ученые, используя суперкомпьютер T2K Tsukuba System, получили число \(\pi \) c 2 576 980 377 524 десятичными знаками после запятой. Вычисления заняли 73 часа 36 минут. Компьютер был оснащен 640-ка четырех ядерными процессорами AMD Opteron, что обеспечило производительность в 95 триллионов операций в секунду.

Следующее достижение в вычислении \(\pi \) принадлежит французскому программисту Фабрису Беллару , который в конце 2009 года на своем персональном компьютере под управлением Fedora 10 установил рекорд, вычислив 2 699 999 990 000 знаков после запятой числа \(\pi \). За последние 14 лет это первый мировой рекорд, который поставлен без использования суперкомпьютера. Для высокой производительности Фабрис использовал формулу братьев Чудновских. В общей сложности вычисление заняло 131 день (103 дня расчеты и 13 дней проверка результата). Достижение Беллара показало, что для таких вычислений не обязательно иметь суперкомпьютер.

Всего через полгода рекорд Франсуа был побит инженерами Александром Йи и Сингеру Кондо. Для установления рекорда в 5 триллионов знаков после запятой числа \(\pi \) был также использован персональный компьютер, но уже с более внушительными характеристиками: два процессора Intel Xeon X5680 по 3,33 ГГц, 96 ГБ оперативной памяти, 38 ТБ дисковой памяти и операционная система Windows Server 2008 R2 Enterprise x64. Для вычислений Александр и Сингеру использовали формулу братьев Чудновских. Процесс вычисления занял 90 дней и 22 ТБ дискового пространства. В 2011 году они установили еще один рекорд , вычислив 10 триллионов десятичных знаков числа \(\pi \). Вычисления происходили на том же компьютере, на котором был поставлен их предыдущий рекорд и занял в общей сложности 371 день. В конце 2013 года Александр и Сингеру улучшили рекорд до 12,1 триллиона цифр числа \(\pi \), вычисление которых заняло у них всего 94 дня. Такое улучшение в производительности достигнуто благодаря оптимизации производительности программного обеспечения, увеличения количества ядер процессора и значительного улучшения отказоустойчивости ПО.

Текущим рекордом является рекорд Александра Йи и Сингеру Кондо, который составляет 12,1 триллиона цифр после запятой числа \(\pi \).

Таким образом, мы рассмотрели методы вычисления числа \(\pi \), используемые в древние времена, аналитические методы, а также рассмотрели современные методы и рекорды по вычислению числа \(\pi \) на компьютерах.

Список источников

  1. Жуков А.В. Вездесущее число Пи – М.:Изд-во ЛКИ, 2007 – 216 с.
  2. Ф.Рудио. О квадратуре круга, с приложением истории вопроса, составленной Ф.Рудио. / Рудио Ф. – М.: ОНТИ НКТП СССР, 1936. – 235c.
  3. Arndt, J. Pi Unleashed / J. Arndt, C. Haenel. – Springer, 2001. – 270p.
  4. Шухман, Е.В. Приближенное вычисление числа Пи с помощью ряда для arctg x в опубликованных и неопубликованных работах Леонарда Эйлера / Е.В. Шухман. – История науки и техники, 2008 – №4. – С. 2-17.
  5. Euler, L. De variis modis circuli quadraturam numeris proxime exprimendi/ Commentarii academiae scientiarum Petropolitanae. 1744 – Vol.9 – 222-236p.
  6. Шумихин, С. Число Пи. История длиною в 4000 лет / С. Шумихин, А. Шумихина. – М.: Эксмо, 2011. – 192с.
  7. Борвейн, Дж.М. Рамануджан и число Пи. / Борвейн, Дж.М., Борвейн П.Б. В мире науки. 1988 – №4. – С. 58-66.
  8. Alex Yee. Number world. Access mode: numberworld.org

Понравилось?

Расскажи

С недавних пор существует элегантная формула для вычисления числа Пи, которую в 1995 году впервые опубликовали Дэвид Бэйли, Питер Борвайн и Саймон Плафф:

Казалось бы: что в ней особенного — формул для вычисления Пи великое множество: от школьного метода Монте-Карло до труднопостижимого интеграла Пуассона и формулы Франсуа Виета из позднего Средневековья. Но именно на эту формулу стоит обратить особое внимание — она позволяет вычислить n-й знак числа пи без нахождения предыдущих. За информацией о том, как это работает, а также за готовым кодом на языке C, вычисляющим 1 000 000-й знак, прошу под хабракат.

Как же работает алгоритм вычисления N-го знака Пи?
К примеру, если нам нужен 1000-й шестнадцатеричный знак числа Пи, мы домножаем всю формулу на 16^1000, тем самым обращая множитель, стоящий перед скобками, в 16^(1000-k). При возведении в степень мы используем двоичный алгоритм возведения в степень или, как будет показано в примере ниже, возведение в степень по модулю . После этого вычисляем сумму нескольких членов ряда. Причём необязательно вычислять много: по мере возрастания k 16^(N-k) быстро убывает, так что, последующие члены не будут оказывать влияния на значение искомых цифр). Вот и вся магия — гениальная и простая.

Формула Бэйли-Борвайна-Плаффа была найдена Саймоном Плаффом при помощи алгоритма PSLQ , который был в 2000 году включён в список Top 10 Algorithms of the Century . Сам же алгоритм PSLQ был в свою очередь разработан Бэйли. Вот такой мексиканский сериал про математиков.
Кстати, время работы алгоритма — O(N), использование памяти — O(log N), где N — порядковый номер искомого знака.

Думаю, уместно будет привести код на языке Си, написанный непосредственно автором алгоритма, Дэвидом Бэйли:

/* This program implements the BBP algorithm to generate a few hexadecimal digits beginning immediately after a given position id, or in other words beginning at position id + 1. On most systems using IEEE 64-bit floating- point arithmetic, this code works correctly so long as d is less than approximately 1.18 x 10^7. If 80-bit arithmetic can be employed, this limit is significantly higher. Whatever arithmetic is used, results for a given position id can be checked by repeating with id-1 or id+1, and verifying that the hex digits perfectly overlap with an offset of one, except possibly for a few trailing digits. The resulting fractions are typically accurate to at least 11 decimal digits, and to at least 9 hex digits. */ /* David H. Bailey 2006-09-08 */ #include #include int main() { double pid, s1, s2, s3, s4; double series (int m, int n); void ihex (double x, int m, char c); int id = 1000000; #define NHX 16 char chx; /* id is the digit position. Digits generated follow immediately after id. */ s1 = series (1, id); s2 = series (4, id); s3 = series (5, id); s4 = series (6, id); pid = 4. * s1 - 2. * s2 - s3 - s4; pid = pid - (int) pid + 1.; ihex (pid, NHX, chx); printf (" position = %i\n fraction = %.15f \n hex digits = %10.10s\n", id, pid, chx); } void ihex (double x, int nhx, char chx) /* This returns, in chx, the first nhx hex digits of the fraction of x. */ { int i; double y; char hx = "0123456789ABCDEF"; y = fabs (x); for (i = 0; i < nhx; i++){ y = 16. * (y - floor (y)); chx[i] = hx[(int) y]; } } double series (int m, int id) /* This routine evaluates the series sum_k 16^(id-k)/(8*k+m) using the modular exponentiation technique. */ { int k; double ak, eps, p, s, t; double expm (double x, double y); #define eps 1e-17 s = 0.; /* Sum the series up to id. */ for (k = 0; k < id; k++){ ak = 8 * k + m; p = id - k; t = expm (p, ak); s = s + t / ak; s = s - (int) s; } /* Compute a few terms where k >= id. */ for (k = id; k <= id + 100; k++){ ak = 8 * k + m; t = pow (16., (double) (id - k)) / ak; if (t < eps) break; s = s + t; s = s - (int) s; } return s; } double expm (double p, double ak) /* expm = 16^p mod ak. This routine uses the left-to-right binary exponentiation scheme. */ { int i, j; double p1, pt, r; #define ntp 25 static double tp; static int tp1 = 0; /* If this is the first call to expm, fill the power of two table tp. */ if (tp1 == 0) { tp1 = 1; tp = 1.; for (i = 1; i < ntp; i++) tp[i] = 2. * tp; } if (ak == 1.) return 0.; /* Find the greatest power of two less than or equal to p. */ for (i = 0; i < ntp; i++) if (tp[i] > p) break; pt = tp; p1 = p; r = 1.; /* Perform binary exponentiation algorithm modulo ak. */ for (j = 1; j <= i; j++){ if (p1 >= pt){ r = 16. * r; r = r - (int) (r / ak) * ak; p1 = p1 - pt; } pt = 0.5 * pt; if (pt >= 1.){ r = r * r; r = r - (int) (r / ak) * ak; } } return r; }
Какие возможности это даёт? Например: мы можем создать систему распределённых вычислений, рассчитывающую число Пи и поставить всем Хабром новый рекорд по точности вычисления (который сейчас, к слову, составляет 10 триллионов знаков после запятой). Согласно эмпирическим данным, дробная часть числа Пи представляет собой нормальную числовую последовательность (хотя доказать это достоверно ещё не удалось), а значит, последовательности цифр из него можно использовать в генерации паролей и просто случайных чисел, или в криптографических алгоритмах (например, в хэшировании). Способов применения можно найти великое множество - надо только включить фантазию.

Больше информации по теме вы можете найти в статье самого Дэвида Бэйли, где он подробно рассказывает про алгоритм и его имплементацию (pdf);

И, похоже, вы только что прочитали первую русскоязычную статью об этом алгоритме в рунете - других я найти не смог.