Рассказы о математике с примерами на языках 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 книг.
Классическая книга основателя теории фракталов, известного американского математика Б. Мандельброта, которая выдержала за рубежом несколько изданий и была переведена на многие языки. Перевод на русский язык выходит с большим опозданием (первое английское издание вышло в 1977 г.). За прошедший период книга совсем не устарела и остается лучшим и основным введением в теорию фракталов и фрактальную геометрию. Написанная в живой и яркой манере, она содержит множество иллюстраций (в том числе и цветных), а также примеров из различных областей науки. Для студентов и аспирантов, физиков и математиков, инженеров и специалистов.
Знание математики приобретает особое значение в нашу цифровую эпоху. Рассказывая о прошлом, настоящем и будущем математической мысли и о первооткрывателях важнейших математических законов, известный австрийский ученый и популяризатор науки Рудольф Ташнер посвящает нас не только в тайны цифр и чисел, но и шире — в тайны познания. «Из великого множества историй о якобы безмерной власти чисел я отдал предпочтение тем, в которых проводится идея о том, что числа не просто оказались у людей под рукой.
Если вы хотите поразить одноклассников молниеносным решением квадратных уравнений [КУ], давайте развлечемся.
Давид Гильберт намеревался привести математику из методологического хаоса, в который она погрузилась в конце XIX века, к порядку посредством аксиомы, обосновавшей ее непротиворечиво и полно. В итоге этот эпохальный проект провалился, но сама попытка навсегда изменила облик всей дисциплины. Чтобы избавить математику от противоречий, сделать ее «идеальной», Гильберт исследовал ее вдоль и поперек, даже углубился в физику, чтобы предоставить квантовой механике структуру, названную позже его именем, — гильбертово пространство.
Курт Гёдель изменил понимание математики. Две теоремы о неполноте, сформулированные им в 1931 году, с помощью формальной логики выявили хрупкость фундамента великого здания математики, которое усердно строили со времен Евклида. Научное сообщество было вынуждено признать, что справедливость той или иной гипотезы может лежать за гранью любой рациональной попытки доказать ее, и интуицию нельзя исключить из царства математики. Гёдель, получивший образование в благополучной Вене межвоенного периода, быстро заинтересовался эпистемологией и теорией доказательств.
Уже несколько десятилетий тема искусственного интеллекта занимает умы математиков и людей, далеких от науки. Ждать ли нам в ближайшем будущем появления говорящих машин и автономных разумных систем, или робот еще не скоро сравнится с человеком? Что такое искусственный интеллект и возможно ли в лабораторных условиях создать живой разумный организм? Ответы на эти и многие другие вопросы читатель узнает из данной книги. Добро пожаловать в удивительный мир искусственного интеллекта, где математика, вычисления и философия идут рука об руку.