Рассказы о математике с примерами на языках Python и C - [4]

Шрифт
Интервал


>Шаг>Значение>Погрешность
>1>3.5>0.25
>2>3.464285714285714>0.00127
>3>3.464101620029455>3.3890E-8
>4>3.464101615137754>2.392873369E-17

Результат: √12 = 3,464101615137754


Как можно видеть, сделав всего 4 шага, можно получить √12 с достаточной точностью, задача вполне посильная даже для ручных расчетов 15 века.

Наконец, запрограммируем вторую часть алгоритма — собственно вычисление Пи.

>sum = Decimal(1)

>sign = -1

>for p in range(1,32):

>    sum += Decimal(sign) / Decimal((2 * p + 1)*(3**p))

>    sign = -sign

>    print(p, sqrt12 * sum)

>print("Result:", sqrt12 * sum)

Результаты работы программы:

>Шаг  Значение

>1    3.079201435678004077382126829

>2    3.156181471569954179316680000

>3    3.137852891595680345522738769

>4    3.142604745663084672802649458

>5    3.141308785462883492635401088

>6    3.141674312698837671656932680

>7    3.141568715941784242161823554

>8    3.141599773811505839072149767

>9    3.141590510938080099642754230

>10   3.141593304503081513121460820

>11   3.141592454287646300323593597

>12   3.141592715020379765581606212

>13   3.141592634547313881242713430

>14   3.141592659521713638451335328

>15   3.141592651733997585128216671

>16   3.141592654172575339199092210

>17   3.141592653406165187919674184

>18   3.141592653647826046431202391

>19   3.141592653571403381773710565

>20   3.141592653595634958372427485

>21   3.141592653587933449530974820

>22   3.141592653590386522717511595

>23   3.141592653589603627019680710

>24   3.141592653589853940610143646

Уже на 24-м шаге мы получаем искомые 11 знаков числа Пи. Задача явно требовала больше времени чем сейчас, но вполне могла быть решена в средние века.

Современные формулы не столь просты внешне, зато работают еще быстрее. Для примера можно привести формулу Чудновского:




Для сравнения, те же 24 итерации по этой формуле дают число Пи со следующей точностью:

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249.

Если сделать 100 итераций и вычислить 1000 знаков Пи, то можно увидеть так называемую «точку Фейнмана»:

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420207

Это последовательность «999999», находящаяся на 762-м знаке от начала. Желающие могут поэкспериментировать дальше самостоятельно с помощью программы на языке Python:

>from math import factorial

>from decimal import *


>def chudnovsky(n):

>    pi = Decimal(0)

>    k = 0

>    while k < n:

>        pi += (Decimal(-1)**k) * (Decimal(factorial(6 * k)) / ((factorial(k)**3) * (factorial(3*k))) * (13591409 + 545140134 * k) / (640320**(3 * k)))

>        k += 1

>        print("Шаг: {} из {}".format(k, n))

>    pi = pi * Decimal(10005).sqrt() / 4270934400

>    pi = pi**(-1)

>    return pi


># Требуемая точность (число знаков)

>N = 1000

>getcontext().prec = N


>val = chudnovsky(N / 14)

>print(val)

Эта программа не оптимизирована, и работает довольно-таки медленно, но для ознакомления с сутью алгоритма этого вполне достаточно. Кстати, с помощью формулы Чудновского два инженера Александр Йи и Сингеру Кондо в 2010 году объявили о новом мировом рекорде вычисления Пи на персональном компьютере: 5 трлн знаков после запятой. Компьютеру с 12 ядрами, 97 Гб памяти и 19 жесткими дисками потребовалось 60 дней для выполнения расчетов.

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

4. Вычисление радиуса Земли

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




Однако в историческом плане, увидеть планету свысока мы смогли совсем-совсем недавно. Как же мог греческий ученый Эратосфен измерить радиус Земли, в 240 году до нашей эры? Оказывается мог, используя 2 научных «инструмента» — транспортир и верблюда, ну и разумеется, математику.

Эратосфен жил в Александрии — крупнейшем городе того времени, центром науки и искусств древнего мира. В Александрии по преданию, находился маяк высотой 120 метров — даже сегодня такое сооружение не просто построить, а в то время маяк считался одним из 7 чудес света. Эратосфен же был не только ученым, но и хранителем Александрийской библиотеки, содержащей до 700000 книг.


Рекомендуем почитать
Урожаи и посевы

Первый перевод с французского книги «Recoltes et Semailles» выдающегося математика современности Александра Гротендика. Автор пытается проанализировать природу математического открытия, отношения учителя и учеников, роль математики в жизни и обществе. Текст книги является философски глубоким и нетривиальным и носит характер воспоминаний и размышлений. Книга будет интересна широкому кругу читателей — математикам, физикам, философам и всем интересующимся историческими, методическими и нравственными вопросами, связанными с процессом математического открытия и возникновения новых теорий.


Вначале была аксиома. Гильберт. Основания математики

Давид Гильберт намеревался привести математику из методологического хаоса, в который она погрузилась в конце XIX века, к порядку посредством аксиомы, обосновавшей ее непротиворечиво и полно. В итоге этот эпохальный проект провалился, но сама попытка навсегда изменила облик всей дисциплины. Чтобы избавить математику от противоречий, сделать ее «идеальной», Гильберт исследовал ее вдоль и поперек, даже углубился в физику, чтобы предоставить квантовой механике структуру, названную позже его именем, — гильбертово пространство.


Симпсоны и их математические секреты

Саймон Сингх рассказывает о самых интересных эпизодах мультсериала, в которых фигурируют важнейшие математические идеи – от числа π и бесконечности до происхождения чисел и самых сложных проблем, над которыми работают современные математики.Книга будет интересна поклонникам сериала «Симпсоны» и всем, кто увлекается математикой.На русском языке публикуется впервые.


Жар холодных числ и пафос бесстрастной логики

Цель книги доктора философских наук Б. В. Бирюкова и кандидата философских наук В. Н. Тростникова - создать общую картину подготовки и развития логико-математических аспектов кибернетики. Авторы рассказывают о длительном развитии науки логики, возникшей еще в Древней Греции, прослеживают непрерывающуюся нить преемственности, тянущуюся от Аристотеля к "чуду XX века" - быстродействующим кибернетическим устройствам.


Истина и красота: Всемирная история симметрии

На протяжении многих веков симметрия оставалась ключевым понятием для художников, архитекторов и музыкантов, однако в XX веке ее глубинный смысл оценили также физики и математики. Именно симметрия сегодня лежит в основе таких фундаментальных физических и космологических теорий, как теория относительности, квантовая механика и теория струн. Начиная с древнего Вавилона и заканчивая самыми передовыми рубежами современной науки Иэн Стюарт, британский математик с мировым именем, прослеживает пути изучения симметрии и открытия ее основополагающих законов.


Простая одержимость: Бернхард Риман и величайшая нерешенная проблема в математике

Сколько имеется простых чисел, не превышающих 20? Их восемь: 2, 3, 5, 7, 11, 13, 17 и 19. А сколько простых чисел, не превышающих миллиона? Миллиарда? Существует ли общая формула, которая могла бы избавить нас от прямого пересчета? Догадка, выдвинутая по этому поводу немецким математиком Бернхардом Риманом в 1859 году, для многих поколений ученых стала навязчивой идеей: изящная, интуитивно понятная и при этом совершенно недоказуемая, она остается одной из величайших нерешенных задач в современной математике.