Аппроксимация числа Пи с помощью множества Мандельброта

    Я всегда говорил своему другу, что математика со своими изящными абстракциями обладает той магической силой, потенциал которой до сих пор полностью не раскрыт. Сегодня я хочу поговорить о том, как можно приблизить число Пи с помощью множества Мандельброта.


    Пару слов о множестве


    На самом деле на Хабре куча статей, описывающие множество Мандельброта (далее, множество М), рассматривающие его свойства, историю и удивительную красоту, подкрепляя всё это красочными картинками. Мне бы не хотелось останавливаться на его определении и прочих деталях, а сразу перейти к делу. Однако в силу того, что оно является центральным субъектом данной статьи, я все же освежу вашу память.
    Множество М — это множество всех комплексных чисел с, для которых функция f_c(z) = z * z + c при ее итерации с z = 0 ограничена. Настолько просто.
    На практике мы применяем следующую теорему: если функция (вышеприведенная) в ходе итерации превосходит значение 2, то она 100% не ограничена. Поэтому, определить множество можно так:


    z_{n+1} = z_n * z_n + c
    c ∈ M <=> Lim(sup|z_{n+1}|) <= , n -> +inf

    Я не буду затрагивать тему визуализации, туда мы сегодня копать не будем.


    Число Пи?


    Действительно, каким-таким образом?


    Все то, что покрыто черным на картинке принадлежит множеству М.

    Возьмем "координату соприкосновения двух частей" множества c = -0.75 + ix (где x ∈ ℚ). Проверим её принадлежность ко множеству М: начнем итерировать функциюz_{n+1} = z_n * z_n + c n-раз от нуля и проверять, превосходит ли полученное значение 2. Если да, то функция разошлась, и значение с не принадлежит множеству при данном n. Иначе — принадлежит.


    x c n (кол-во итераций до расхода функции)
    0.1 -0.75 + 0.1i 33
    0.01 -0.75 + 0.01i 315
    0.001 -0.75 + 0.001i 3143
    0.0001 -0.75 + 0.0001i 31417
    0.00001 -0.75 + 0.00001i 314160

    Именно. Если поставить запятую на нужном месте, цифры напоминают число Пи.


    Наверное, совпадение


    Не будем заморачиваться с комплексной частью и возьмем число c = 0.25. Оно принадлежит множеству при бесконечно большом количестве итераций. Поэтому, будем "приближаться" к этой точке справа: возьмем c = 0.26, проверим его; c = 0.2501, проверим его, и т. д.


    c n (кол-во итераций до расхода функции)
    0.26 30
    0.2501 312
    0.25001 991
    0.250001 3140
    0.2500001 9933
    0.25000001 31414

    Последовательность колеблется между двумя значениями, однако эхо числа Пи (поставив запятую в нужное место) никуда не исчезло.


    Немного истории


    Само множество М, названное в честь математика Бенуа Мандельброта — совсем недавное открытие. Бенуа даже выступал на TEDx, говоря в том числе и о нем.
    В 1991 Дейв Болл изучал, действительно ли "соприкосновение двух частей множества" М около c = -0.75 "бесконечно тонко". В ходе своего исследования он и обнаружил то, о чем мы сейчас говорим.


    И все-таки, наверное, совпадение


    Попытаемся понять, что происходит: действительно ли мы получаем число Пи или это какое-то иное трансцендентное число.
    Все это будем делать вокруг точки c = 0.25 (просто в силу отсутствия у него комплексной части — так легче).


    Рассмотрим рекурсивную функцию y = y * y + 0.25. При ее итерации от нуля заметим, что она очень медленно стремится к значению 0.5.


    Наглядно

    Чтобы не дать ей "застрять" на этом значении, мы подвинем данную функцию на ε единиц вверх (ε бесконечно мало, не равно нулю). Тогда она примет вид y = y * y + 0.25 + e.
    Данная функция медленно стремится к значению 0.5, а после того, как проходит его, быстро убегает в бесконечность.


    Будем копать дальше.
    Пусть x = y + 0.5. Наша задача — найти ноль.
    Делая замену в исходной функции, получим: y = y * y + y + e
    Взяв в качестве ε любое малое значение, проитерируем функцию от нуля:


    y
    0.001 ( = ε)
    0.002001
    0.0030050040010000004
    0.004014034050046026
    0.005030146519400955
    0.006055448893407596
    0.007092117354708267
    0.00814241548328122
    0.009208714413183598
    0.010293514834327173

    Видим, что она достаточно плавно и медленно возрастает возле нуля. Исходя из этого, мы в праве предположить, что разность (n+1)-го и n-го значений функции близка к её производной: y_{n+1} - y_{n} = y'(n).
    Учитывая это, наша исходная функция примет вид: y'(n) = y * y + e, что является простейшим дифференциальным уравнением первого порядка. Решая его (например, методом разделения переменных), получим: y = sqrt(e) * tg(sqrt(e) * n + C), C = const
    Вспоминаем нашу цель — поиск нуля. Данное выражение равно нулю только в двух случаях: либо квадратный корень из ε равен нулю — невозможно по определению, либо тангенс равен нулю. Пренебрегая константой C: tg(sqrt(e)*n) = 0 <=> sqrt(e) * n = pi. Это подтверждает то, что мы сегодня увидели:


    ε n√ε
    0.01 3.0
    0.0001 3.12
    0.000001 3.140
    0.00000001 3.1414

    Видно, что множитель √ε ставит ту самую запятую в нужное место.


    Заключение


    Построение числа Пи данным методом является, наверное, самым неэффективным способом: нужно проделать 314160 итераций для того, чтобы получить 3,14160. Кроме того, метод не обладает высокой точностью в силу больших погрешностей вычислений.
    Однако нам удалось соединить две, казалось бы, несоединимые точки: фрактал и отношение длины окружности к длине её диаметра.

    • +41
    • 16,7k
    • 4
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 4

      +4
      > На практике договорились: если функция (вышеприведенная) в ходе итерации превосходит значение 2, то она 100% не ограничена.

      Это не «договорились», это теорема.
        –4
        От Мальдеброта тут осталось, видимо, только x²+y²=0.5².
          0
          Извините, но в верхние картинки в мобильной версии совсем не видно. Смартфон 5",
            0
            «Верхние» картинки были в формате .svg из Википедии. Перезалил в .png / .jpg на Habrastorage и добавил тэг alt ко всем изображениям. Спасибо.

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

          Самое читаемое