Нескучные интегралы

    Некоторые из вас, вероятно, видали на просторах сети эту задачку: какое число продолжает следующий ряд?

    Предлагался такой очевидный правильный ответ:

    Для тех, кому неочевидно, как он получен, предлагалось объяснение. Пусть (ну и 1 при x = 0, хотя неважно). Тогда каждый член ряда — это значение следующего интеграла в цепочке:

    Пока всё идёт хорошо, но тут внезапно:

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

    Начинает сказка сказываться


    Для начала отдельно посмотрим на первый интеграл:

    Некоторое время назад я подумал: «Эй, я ещё не совсем забыл матан! Дайте-ка я возьму этот интеграл как неопределённый, а потом подставлю пределы. Наверняка пару раз по частям, и дело в шляпе. Вот сейчас на бумажке всё решу без посторонней помощи». Хочу предостеречь вас: не повторяйте моей ошибки. Вас ждёт бессонная ночь, а потом вы заглянете в справочник и узнаете, что неопределённый интеграл не берётся в элементарных функциях. Для него даже специальную функцию ввели.

    Однако с данными конкретными пределами взять интеграл можно разными способами. Мы пойдём путём, который требует минимум базовых знаний (самое суровое — то же интегрирование по частям). Для начала сделаем внезапную замену:

    Вы спросите: откуда вообще это взялось и зачем нам ещё один интеграл, мало что ли? Спокойно, так надо (знакомые со свойствами преобразования Лапласа весело ухмыляются). Подставим замену в исходную формулу и поменяем порядок интегрирования:

    Внутри получился почти классический интеграл по dx, которым всех пугали у нас в физматшколе. Его можно взять и как неопределённый, дважды использовав формулу интегрирования по частям. Тогда справа получится какая-то муть и ещё раз тот же самый интеграл, домноженный на что-то, и в результате можно будет решить уравнение относительно этого интеграла и получить ответ, а потом подставить пределы. Кому интересно, проделайте это сами, а я лениво запишу готовый результат:

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

    Скоро сказка сказывается, а не скоро дело делается


    Для следующего путешествия нам понадобятся четыре вещи: прямоугольная функция, косинусное преобразование Фурье, свёртка и теорема Парсеваля. Сперва скажу пару слов об этих замечательных штуках.

    Прямоугольная функция — это у нас будет такая ступенька вокруг нуля:

    Значение 1/2 в точках разрыва нужно в основном для соблюдения свойств преобразования Фурье, в целом для нашей задачи оно непринципиально.

    Косинусное преобразование Фурье. Для простоты мы немного отступим от математической точности и сформулируем грубовато. Для достаточно хорошей чётной функции f(x) выполняются такие соотношения:

    Функция и называется косинусным преобразованием Фурье (FCT) от f(x) (её ещё называют образом f). То есть, косинусное преобразование от косинусного преобразования даёт снова исходную функцию f(x)!

    Людям, знакомым с обработкой сигналов, хорошо известно, что FCT от прямоугольной функции — это . Это легко доказать, пользуясь вышеприведёнными формулами и школьными знаниями. Так как прямоугольная функция за пределами промежутка [-a, a] равна нулю, то можно просто интегрировать cos(xt) dt по этому промежутку, тут простая замена переменной и табличный интеграл. Приведённое выше свойство говорит, что FCT от — это прямоугольная функция.

    Свёртка — это ещё одна прекрасная штука, без которой не обходится обработка сигналов. Для двух функций f1(x) и f2(x) можно определить функцию-свёртку (обозначается звёздочкой) вот так:


    У свёртки есть прекрасное свойство, за которое её любят: преобразование Фурье превращает её в умножение, а умножение — в свёртку. Если точнее, косинусное преобразование произведения двух хороших чётных функций есть свёртка их образов, делённая на корень из двух пи: .

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

    Доселева Макар огороды копал, а нынече Макар в воеводы попал


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

    Первая прямоугольная функция под интегралом равна единице для аргументов меньше единицы и нулю для аргументов больше единицы. Поэтому ничто нам не мешает убрать её из интеграла, откорректировав пределы интегрирования:

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

    Чтобы дальше было проще, обозначим эту ступеньку под интегралом как F1(x) и нарисуем её график:



    Пойдём веселиться дальше и посмотрим на интеграл с тремя множителями. Чтобы применить теорему Парсеваля, мы теперь все множители со второго будем считать одним множителем: . С образом первого множителя всё уже понятно, а образ второго множителя, выражается через свёртку:

    На первый взгляд жутковато. Но можно кое-чего повыносить, кое-чего посокращать и подставить нашу F1(x). Тогда получим:

    Внутренний интеграл — это просто прямоугольный фильтр, эдакий «блюр» для функции F1(x): мы просто для каждой точки усредняем все значения в окрестности плюс-минус одна пятая. Можно опять же избавиться от прямоугольной функции, подшаманив пределы интегрирования. И со внешним интегралом сделаем такую же процедуру. Вот что получится в итоге:


    Слева график функции F2(x), которая на самом деле — сглаженная F1(x). Нетрудно доказать, что после сглаживания функции по нормированному ядру её интеграл не меняется. Ну, вообще-то речь об интеграле от -∞ до +∞, но для чётной функции это верно и для интеграла от нуля. В данном случае ядром была ступенька от -1/5 до +1/5, умноженная на 5/2. Площадь под ступенькой единица, значит, ядро нормировано. Тут тоже можно сравнить с блюром в фотошопе: после применения блюра картинка в целом не становится светлее или темнее. А раз так, то интеграл F2(x) в точности равен интегралу F1(x), то есть единице, поэтому и третий интеграл равен пи-пополам!

    Дальше процедура во многом похожая. Четвёртый интеграл сгруппируем так: . Сначала теорему Парсеваля, для скобок свёртку, причём мы уже умеем выразить образ внутренней скобки через F2(x). Дальше всё то же самое, что в прошлый раз, и в результате получим:



    Теперь мы уже имеем F3(x), которая на самом деле — сглаженная F2(x) с ядром шириной 2/7. Ядро нормировано, значит, интеграл F3(x) равен интегралу F2(x), то есть единице, и мы снова имеем пи-пополам!

    Отлично, мы теперь щёлкаем эти интегралы как орехи. Но по идее, если так и дальше пойдёт, они все до бесконечности будут равны пи-пополам? Давайте смотреть дальше. Пятый интеграл:


    Вроде всё то же самое. Ладно, шестой интеграл:


    И здесь никаких проблем. Хорошо, берём седьмой:


    Ничего нового! Ладно, а восьмой?


    Стоп-стоп-стоп! Здесь нам не обойтись без команды CSI!


    Функция протекла через единицу! Интеграл F7(x) всё ещё равен единице, но это если интегрировать от 0 до ∞. А мы-то интегрируем до единицы! До сих пор все функции были нулевыми при x больше единицы, но рано или поздно это должно было кончиться.

    А как понять, когда наступает конец? Это очень просто. F1(x) была ненулевой при x<1/3. F2(x) сглаживала её по ±1/5, значит, была ненулевой при x<1/3+1/5. Аналогичным образом можно найти границу ненулевых значений для всех этих функций, и для F7(x) эта граница впервые превышает единицу:


    Несложно даже посчитать, сколько конкретно утекло, и тем самым вычислить точное значение восьмого интеграла. Заметим, что слева от границы F1(x) — это константа 3. F2(x) — минус интеграл этой константы с коэффициентом 5/2, то есть прямая с коэффициентом 3×5/2. F3(x) в достаточной близости к границе 1/3+1/5+1/7 — это интеграл той прямой с коэффициентом 7/2, то есть что-то вроде . Продолжая аналогичные рассуждения, получим формулу для F7(x) в окрестности границы:

    Собственно, обычная парабола шестой степени, сдвинутая и домноженная. Если проинтегрировать её от единицы и до границы 1/3+1/5+1/7+1/9+1/11+1/13+1/15, то мы узнаем, сколько функции утекло за пределы единицы. Можно решить эту задачу целиком в обыкновенных дробях. Получится вот сколько:


    Если эту цифру вычесть из единицы и домножить на пи-пополам, мы получим окончательное значение восьмого интеграла:


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

    Заключение: троллинг восьмидесятого уровня


    Открыв эти интегралы, Джонатан Борвейн ввёл их в программный пакет Maple и, убедившись, что Maple корректно берёт все восемь интегралов, сообщил разработчикам о «баге»: мол, восьмой интеграл тоже должен быть пи-пополам, а у вас получается чёрт-те-что. Три дня и три ночи убил Жак Каретт, один из разработчиков Maple, в поисках ошибки, пока не понял, что над ним жестоко пошутили. А ещё говорят, что математики — скучные люди!
    Поделиться публикацией
    Комментарии 62
      +16
      Ну почему не в пятницу-то, а? Вечер на кафедре прошёл зря :)
        +10
        Увы, в пятницу мне надо работать, а в субботу можно и статью на Хабр пописать. Не публиковать её до следующей пятницы не хватило бы терпения :-)
        +1
        Насколько мне известно, в задорной форме задачки с «очевидным ответом» этот факт изложил и пустил гулять по интернетам vinograd19. Но такого ясного и подробного объяснения он не давал. Спасибо большое!
          +5
          Если вы об этой картинке — то да, это я её набрал в latex. Ума не приложу, как вы это выяснили.
            +3
            Забавно :-) Я перевода не видел, только оригинал.
              +6
              ВКонтактике давно видел. Сколько-то лет назад вы у моих однокурсников вели лабы на Физтехе.
                +1
                Последнее слово на картинке должно быть другим :)
              +1
              Спасибо! Было интересно повспоминать.
                +31
                И тут я понял как же давно был универ.
                  +1
                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      Эм? Wolfram Mathematica, во всяком случае, даёт правильный ответ.
                        0
                        Жадный, больше чем это бесплатно считать не желает.
                          0
                          Даже за «деньги» на… sinc(x/13) сдыхает и предлагает воспользоваться Wolfram Mathematica.
                          +8
                          +12
                          Хабр весьма к месту отображает в «похожих» статью математика может приносить физические страдания.

                          Как-то стыдно, что вроде считаю себя технарём, а выкладки с большим количеством интегралов и дробей до сих вызывают чувство тревоги (примерно такое же как если бы попросили длинные числа перемножить и не ошибиться нигде).
                            +2
                            Мне очень жаль, у меня глюкнула мышь и я поставил вместо плюса минус вам в коммент. Извините.
                            +3
                            Спасибо за статью, наталкивался на эту шутку ранее, но почему так получается стало ясно только теперь.
                            Отдельный плюс за стиль написания.
                              –2
                              Ой…
                                0
                                Это все, конечно, невероятно круто и интересно, но ведь для данной конкретной цепочки, если стоит цель придумать формулу, чтобы восьмой член отличался от всех семи предыдущих, можно просто взять банальную формулу:
                                a(n)=Pi/2+[n/8]*M, где [x] — целая часть числа x, а M — любое отличное от 0 число (например, 1).

                                То есть троллинг можно было бы устроить и более доступными средствами.
                                А так — да, решение для ценителей.
                                  +1
                                  Но тут фишка что по исходной формуле явно не видно отсечения целой части. Поэтому кажется что «найдена закономерность».
                                    +1
                                    Наверное (говорю так, потому что не проследил всю цепочку рассуждений).
                                    Кстати, если бы программа работала бы не с символьными вычислениями, а и приближенными численными расчетами, то разницу между первыми 7-ю интегралами и восьмым можно было бы вообще списать на ошибку округления. Она (разница) составляет менее 10^(-10) в относительном выражении.
                                  +9
                                  Есть ещё одна вещь, которая похожим образом противоречит интуиции.

                                  Первообразная от функции x^k равна как известно x^(k+1)/(k+1). Для любого k кроме -1. Даже для k=-1-eps или -1+eps.

                                  Для k=-1 же первообразная равна логарифму.

                                  Если посмотреть на функцию высшего порядка F(k) = \int ( x^k ), то сложно интуитивно представить, почему в точке 0 у неё такая особенность и она принимает совершенно непохожее на окрестность значение.
                                    +7
                                    Я единственный, кому захотелось узнать, чему будет равен девятый член последовательности?
                                      0
                                      Протечёт ещё сильнее и будет ещё больше отличаться от пи-пополам.
                                        +7
                                        Девятый посчитать несложно — в «хвостике» свёртки, выползшем за 1, только один полиномиальный сегмент, и интеграл равен
                                        17708695183056190642497315530628422295569865119/35417390788301195294898352987527510935040000000*pi
                                        (примерно 0.49999999403980919242*pi). Вот с десятым будет хуже — cумма 1/3+1/5+...+1/15+1/17-1/19 будет больше 1, и придётся разбираться ещё с одним сегментом, который просчитать гораздо сложнее.
                                        0
                                        Д.Т. Письменный. Конспект лекций по высшей математике.
                                        Там полно похожих красивых задачек, входящих в курс обучения, между прочим.
                                          0
                                          Хм… А у нас как раз на полке этот Письменный завалялся. Что-то я там не припомню красивых задачек, голимая теория. Может, конкретно скажете, в каком томе, в какой главе, на какой странице искать?
                                            0
                                            Есть книжка В.Босса «Интуиция и математика», (а также его же серия книг по разным разделам математики, изучаемой в универе, где он рассказывает об узких или плохопонимаемых местах).

                                            Кажется, автор немного сомнителен ( http://dxdy.ru/topic74332.html ), но пишет весьма интересно, а эта книжка и вообще полностью состоит из не очень интуитивных задачек, и очень крута.
                                          +3
                                          У нас все эти аналитические разделы умудрились впихнуть в курс обычной высшей математики и отдельно мат.анализа и функ. анализа не было. И весь курс высшей математики ужали в 3 семестра. Может поэтому я мало что помню, хотя за 1й курс была 5 по математике.
                                          Правда и прошло с тех пор уже 10 лет, а не понадобилось ни разу.
                                            –4
                                            Какой вопрос, такой ответ. Я считаю, что таких вопросов можно придумать кучу. Например, вот один.

                                            Какое число продолжает следующий ряд: 1, 2, 4, 8, 16, 32, 64, 128…

                                            P.S. Правильный ответ 29.
                                              +1
                                              ну и формулу прикладываем. можно было сразу — в collapse
                                                0
                                                Ну, например, такая формула (для x=1..9) подходит:

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

                                                    В моём случае, это следующий элемент поля, которое использовалось для построения подстановки шифра AES. lany привёл другой возможный вариант, хотя его формула будет генерировать другой ряд с 9-ю первыми одинаковыми значениями.
                                                    +1
                                                    Научите подгонять формулу по данным. Я ввел в ВольфрамАльфу нижеследующее и не получил формулы.
                                                    (1,1), (2, 2), (3, 4), (4, 8), (5, 16), (6, 32), (7, 64), (8, 128), (9, 29)
                                                      +1
                                                      Я просто решил систему линейных уравнений в Maple:
                                                      1^8*a+1^7*b+1^6*c+1^5*d+1^4*e+1^3*f+1^2*g+1*h+i=1
                                                      2^8*a+2^7*b+2^6*c+2^5*d+2^4*e+2^3*f+2^2*g+2*h+i=2
                                                      3^8*a+3^7*b+3^6*c+3^5*d+3^4*e+3^3*f+3^2*g+3*h+i=4
                                                      4^8*a+4^7*b+4^6*c+4^5*d+4^4*e+4^3*f+4^2*g+4*h+i=8
                                                      5^8*a+5^7*b+5^6*c+5^5*d+5^4*e+5^3*f+5^2*g+5*h+i=16
                                                      6^8*a+6^7*b+6^6*c+6^5*d+6^4*e+6^3*f+6^2*g+6*h+i=32
                                                      7^8*a+7^7*b+7^6*c+7^5*d+7^4*e+7^3*f+7^2*g+7*h+i=64
                                                      8^8*a+8^7*b+8^6*c+8^5*d+8^4*e+8^3*f+8^2*g+8*h+i=128
                                                      9^8*a+9^7*b+9^6*c+9^5*d+9^4*e+9^3*f+9^2*g+9*h+i=29
                                                      В Альфу, наверно, столько не введёшь, там поле ввода ограничено. Может, как-то по-другому можно, не знаю.
                                                        –1
                                                        вариант а-ля мапл выше работает и в вольфраме, только заранее записывать в редакторе и вставлять разом цопипастой
                                                            0
                                                            А интерполяционного интеграла нету случаем?
                                                              0
                                                              Боюсь, что не понял, о чём вы. Попробуйте поискать на mathworld.wolfram.com/, там у вещей, реализованных в Mathematica, указан их Mathematica-синтаксис, который понимает WolframAlpha.
                                                          +3
                                                          Проще 2^N mod 227. Магических констант меньше.
                                                      +5
                                                        –3
                                                        Ну почему, почему на хабре даже к красивой, изящной задаче с достаточно понятным объяснением, всегда найдется комментарий с быдловатым, совершенно заезженным юмором…
                                                        +1
                                                        Тем кто любит всякие мат.загадки рекомендую вот этот пост: hexlet.org/open_lectures/13zeros/
                                                          0
                                                          Формул не видно, но после того, как разрешили двойные факториалы, решение за 12 нулей находится легко: ((3^2)!!-1)*2+(3!-1)! Если факториалы только обычные — то лучше 14 нулей не видно: ((3!)+1)!/(2+1/2)-2^3.
                                                            0
                                                            Не очень понял, «формул не видно»?
                                                              0
                                                              Там вместо всех формул были красные буквы [Math processing error] или что-то в этом роде.
                                                              0
                                                              Формулы появились… 2^3*(6^2*(6+1)-1) — это не 14, а 15 нулей… А в последней формуле (48-6-1)*(48-1)-1 — опечатка, должно быть (48-6-1)*(48+1)-1 — но она действительно работает.
                                                                0
                                                                Спасибо, да, опечатки. Так как насчет решения на 11?
                                                                  0
                                                                  Пока никак. Про субфакториалы я услышал в первый раз, и с их повадками пока не знаком.
                                                                0
                                                                А касательно нулей, за 12 слишком легко, попробуйте за 11 :)
                                                                  0
                                                                  A, очевидно. Берём моё решение за 12: ((3^2)!!-1)*2+(3!-1)! и вместо 3^2 пишем !4.
                                                                    0
                                                                    Супер! Добавлю в пост?
                                                                      0
                                                                      ОК.
                                                                        0
                                                                        добавил (with attribution, of course)
                                                                    0
                                                                      0
                                                                      Формулы картинкой куда-то съехали, поэтому текстом:
                                                                      \left\lceil \frac{!(!4)\cdot2}{\lceil !(3!) / 2\rceil} \right\rceil
                                                                      (!(3!-1)+1)^2\oplus((3!)!!+1)
                                                                        0
                                                                        Оба ваших решения верны. Добавлю их в пост?
                                                                          0
                                                                          C целой частью, скорее всего, любое число можно получить из одной тройки, используя достаточное количество факториалов и квадратных корней… Но против XOR возразить нечего (кроме того, что двоичная система — уже дополнительная условность, которой в предыдущих операциях не было)… правда, тогда можно использовать и побитовые AND и OR, и открываются новые возможности.

                                                                          [sqrt((3!)!)] = 26
                                                                          [sqrt(26)]=5
                                                                          [sqrt(5!)]=10
                                                                          [sqrt(10!)]=1904 (это уже даёт решение за 10 нулей — 1904+26*4)
                                                                          [sqrt(1904)]=43 ((43-2)*(48+1)-1 — снова 10 нулей)
                                                                          [sqrt(sqrt(sqrt(26!)))]=2116
                                                                          sqrt(2116)=46
                                                                          [sqrt(sqrt(sqrt(sqrt(46!))))]=4062 ( (4062-46)/2 — уже 8 нулей!)
                                                                          Дальше из исходной тройки можно получить 1989, 44, 2520, 50, 7, 70, 8, 200, 14, 543, 23, 633, 25, 1408, 37… В конечном итоге, наверное, и до 2008 можно будет добраться.
                                                                            0
                                                                            Кстати, да:
                                                                            6 = 3!
                                                                            5 = [6!2-2]
                                                                            10 = [5!2-1]
                                                                            43 = [10!2-2]
                                                                            44 = [43!2-5]
                                                                            7 = [44!2-6]
                                                                            8 = [7!2-2]
                                                                            14 = [8!2-2]
                                                                            4 = [14!2-4]
                                                                            24 = 4!
                                                                            30 = [24!2-4]
                                                                            106 = [30!2-4]
                                                                            21 = [106!2-7]
                                                                            290 = [21!2-3]
                                                                            201 = [290!2-8]
                                                                            884 = [201!2-7]
                                                                            148 = [884!2-10]
                                                                            10904 = [148!2-6]
                                                                            250 = [10904!2-14]
                                                                            7042 = [250!2-7]
                                                                            860 = [7042!2-13]
                                                                            126 = [860!2-10]
                                                                            2007 = [126!2-6], 2008 = -[-126!2-6]
                                                                            Полагаю, что можно добраться и до 2008 = [x!2-y] без верхней целой части (замаскированной под целую часть от -x), только числа в цепочке будут больше.
                                                                            0
                                                                            Конечно.

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

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