Формула Эйлера и приближенные методы
Илья Бирман в заметке о числах π и e написал об их связи со мнимой единицей:
Числа π и e входят в мою любимую формулу — формулу Эйлера, которая связывает 5 самых главных констант — ноль, единицу, мнимую единицу i и, собственно, числа π и е:
e iπ + 1 = 0
Почему число 2,7182818284590 в комплексной степени 3,1415926535i вдруг равно минус единице? Ответ на этот вопрос выходит за рамки заметки и мог бы составить содержание небольшой книги, которая потребует некоторого начального понимания тригонометрии, пределов и рядов.
Замечание о небольшой книге верно. Но я собираюсь в одной заметке рассказать, почему , без привлечения пределов и рядов. Сначала я остановлюсь на приближенном выражении для экспоненты, а также напомню, как обращаться с комплексными числами.
Экспоненциальная функция
$$\begin[scale=1.0544]\small \begin[axis line style=gray, samples=120, width=11.3cm,height=7.158cm, xmin=-2.1, xmax=2.1, ymin=0, ymax=1.8, restrict y to domain=-0.2:2, ytick=, xtick=, axis equal, axis x line=center, axis y line=center, xlabel=$x$,ylabel=$y$] \addplot[red,domain=-2:1,semithick]; \addplot[black]; \addplot[] coordinates node; \addplot[red] coordinates node; \path (axis cs:0,0) node [anchor=north west,yshift=-0.07cm] ; \end \end$$
Экспоненциальная функция среди степенных функций с другими основаниями примечательна тем, что касательная к ее графику в точке идет под углом в 45 градусов. Как видно из рисунка, вблизи точки касания кривую можно заменить самой касательной . Поэтому для очень малых значений x экспоненту легко вычислить по приближенной формуле
Что делать, если показатель экспоненты не является малым числом? Попробуем извлечь корень из e x и сразу же возвести в квадрат: . Показатель экспоненты уменьшился в два раза. Ясно, что если экспоненту разбить на большее количество множителей, показатель уменьшится еще сильнее: e x = (e x/n ) n . Выбираем n очень большим и используем приближение для e x/n :
Чем больше n, тем меньше аргумент экспоненты x/n и тем точнее работает эта формула.
Комплексные числа
Комплексное число — это сумма обычного действительного числа a и мнимого числа bi, где мнимая единица i есть решение уравнения . Правила действий над комплексными числами легко получить, если потребовать, чтобы основные формулы арифметики действительных чисел, такие как возведение в степень и раскрытие скобок, были верны и для комплексных чисел. То есть комплексные числа можно складывать и умножать как обычно, нужно только помнить, что . Например,
У комплексных чисел a + bi есть наглядное графическое представление. Будем считать, что это число задает точку с координатами . Или, что то же самое, вектор, проведенный из начала координат в эту точку. Проекции вектора на оси координат есть a и b. Ясно, что каждому вектору можно сопоставить свою пару чисел , то есть свое комплексное число .
$$\begin[semithick,scale=1.0545]\small \tikzset=stealth> \def\r \def\l \def\ll \def\h \def\a \def\b \def\t \def\p \draw[->,thin,gray](-\h,0)--(\l,0); \draw[->,thin,gray](0,-\h)--(0,\ll); \draw[red!50!black](0,0)--(\a,0) node[midway,below] ; \draw[black!50!green](\a,0)--(\a,\b) node[midway,right] ; \draw[->,black!40!blue](0,0)--(\a,\b) node[midway,above] node[p=1,above,black] ; \draw[thin](\p,0) arc (0:atan2(\b,\a):\p) node[midway,right,yshift=0.06cm] ; \path(0,0) node [anchor=north west,yshift=-0.07cm] ; \draw[line width=0.2mm,opacity=0] (-\h,-\h) rectangle (\l,\ll); \end$$
Представление в виде вектора удобно, когда речь идет о сумме комплексных чисел. Тогда вектор, соответствующий сумме комплексных чисел, равен сумме векторов, соответствующих каждому слагаемому. К сожалению, у произведения комплексных чисел нет такой наглядной картины. Тем не менее, чтобы сформулировать относительно простое правило для представления произведения в виде вектора, перейдем от декартовых координат к полярным координатам r и α. Первое число задает длину вектора и называется модулем комплексного числа, а второе есть угол между вектором и осью абсцисс и называется аргументом. Ясно, что каждая пара этих чисел, r и α, тоже однозначно задает свой вектор и свое комплексное число.
Теперь можно сформулировать правило умножения в терминах длины вектора и его направления (оно выведено в дополнении к заметке). Длина вектора произведения равна произведению длин векторов сомножителей, а аргумент (угол между вектором и осью абсцисс) равен сумме аргументов. Я изобразил это правило на рисунке. Здесь синий вектор равен произведению зеленого и красного.
$$\begin[scale=1.0545,semithick,st1/.style=>,st2/.style=>,st3/.style=>] \footnotesize \tikzset=stealth> \def\r \def\ra \def\aa \def\rb \def\ab \def\b \def\t \def\l \draw[gray,thin,->] (-0.5*\l,0)--(\l,0); \draw[gray,thin,->] (0,-0.6)--(0,\l); \draw[st1](0,0)--(\aa:\ra*\r) node[pos=0.7,left] ; \draw[st2](0,0)--(\ab:\rb*\r) node[pos=0.7,left] ; \draw[st3](0,0)--(\aa+\ab:\rb*\ra*\r) node[pos=0.6,left] ; \def\pa \draw[thin,st1] (\pa,0) arc (0:\aa:\pa) node[midway,right,yshift=0.06cm] ; \def\pb \draw[thin,st2] (\pb,0) arc (0:\ab:\pb) node[pos=0.74,above] ; \def\pb \draw[thin,st3] (\pb,0) arc (0:\aa+\ab:\pb) node[pos=0.81,above] ; \draw[very thin] (\r,\t)--(\r, -\t) node[below] (\t,\r)--(-\t, \r) node[left] (0,0) node [anchor=north west,yshift=-0.07cm] ; \draw [line width=0.2mm,opacity=0] (-0.5*\l,-0.6) rectangle (\l,\l); \end$$
Возведение в комплексную степень
В отличие от сложения и умножения, правило возведения в комплексную степень , или хотя бы во мнимую степень x bi , нельзя получить, обобщив обычное правило возведения в действительную степень. Например, 2 i — это результат умножения числа 2 самого на себя «i раз». Непонятно, правда?
Чтобы всё же определить возведение в комплексную степень, нужно привлечь дополнительные принципы или соображения по отношению к правилам арифметики. В качестве такого принципа я предлагаю считать разложение e x ≈ 1 + x около нуля справедливым не только для действительных x, но и для комплексных.
Если это разложение верно, то тогда приближенная формула e x ≈ (1 + x/n) n должна работать и для комплексных чисел. В ее показателе уже нет мнимой единицы, поэтому расчеты можно проводить с помощью выписанных выше правил. Это ровно то, что нам нужно для вычисления e iπ .
Возьмем для примера n = 10 и будем умножать число 1 + iπ/10 само на себя, чтобы получить . К счастью, компьютер большую часть работы делает за нас:
Вот эти числа на рисунке:
В соответствии с правилом умножения, аргумент растет как арифметическая прогрессия, а модуль — как геометрическая. К сожалению, из-за небольшого n наша формула слишком неточная, и мы пришли к числу вместо ожидаемого −1. Но зато мы понимаем процедуру, которая при неограниченном росте n даст нужное значение.
Действительно, чем меньше число iπ/n, тем с большей точностью отрезок касательной iπ/n приближает дугу окружности, тем ближе к π/n угол между соседними векторами и тем меньше отклонение длины векторов от 1. В пределе мы получим точки окружности единичного радиуса, а само число попадет в −1. Прямые вычисления это подтверждают:
Дополнение 1. Привлечение математической строгости
Я на простых примерах рассказал о том, как ведут себя числа и функции. Математики обычно не используют изложенный выше способ рассуждений, хотя его можно сделать вполне строгим с помощью понятий предела и «о малого».
Но даже если следовать абсолютно строгому математическому пути построения теории, нельзя просто так ввести правило возведения в комплексную степень, без дополнительных определений и аксиом. Разложение e x ≈ 1 + x представляет собой два первых слагаемых в ряде Тейлора (остальными слагаемыми мы пренебрегли, потому что они дадут поправку порядка x 2 , которая несущественна при малых x). В простейшем случае комплексная экспонента определяется как сумма всех слагаемых ряда Тейлора. С использованием такого определения вывод формулы , и ее частного случая, формулы Эйлера, является легким упражнением для изучающих математический анализ.
В более продвинутом курсе теории функций комплексной переменной вводится понятие аналитической функции. Это такая функция f, которая раскладывается в ряд Тейлора, который сходится к самой функции f. (Для того чтобы комплексная функция была аналитической в какой-то области, достаточно, чтобы она была дифференцируемой в этой области. Требование дифференцируемости в комплексном случае гораздо сильнее, чем в действительном. Комплексная дифференцируемая функция в области бесконечно дифференцируема и аналитична на ней.) Оказывается, что аналитическую функцию, определенную для действительных чисел, можно единственным образом продолжить в область комплексных чисел, чтобы функция осталась аналитической. В этом и состоит обоснование выбора определения комплексной экспоненты через ряды: мы специально выбираем экспоненту в виде ряда, чтобы получилась аналитическая функция.
Дополнение 2. Тригонометрическая форма и умножение комплексных чисел
$$\begin[semithick,scale=1.0545]\small \tikzset=stealth> \def\r \def\l \def\ll \def\h \def\a \def\b \def\t \def\p \draw[->,thin,gray](-\h,0)--(\l,0); \draw[->,thin,gray](0,-\h)--(0,\ll); \draw[red!50!black](0,0)--(\a,0) node[midway,below] ; \draw[black!50!green](\a,0)--(\a,\b) node[midway,right] ; \draw[->,black!40!blue](0,0)--(\a,\b) node[midway,above] node[p=1,above,black] ; \draw[thin](\p,0) arc (0:atan2(\b,\a):\p) node[midway,right,yshift=0.06cm] ; \path(0,0) node [anchor=north west,yshift=-0.07cm] ; \draw[line width=0.2mm,opacity=0] (-\h,-\h) rectangle (\l,\ll); \end$$
После перехода от декартовых координат к полярным через последние можно выразить действительную и мнимую часть комплексного числа , которые являются катетами в треугольнике с гипотенузой r и углом α:
Перемножим два комплексных числа в тригонометрической форме:
Вспоминая тригонометрические формулы, видим, что в круглых скобках получились выражения для косинуса и синуса суммы углов. Окончательный ответ имеет вид
Таким образом, модуль произведения комплексных чисел равен произведению модулей сомножителей, а аргумент произведения есть сумма произведений сомножителей.
Дополнение 3. О приближенных методах вычислений
В физике постоянно используются приближенные методы, особенно разложение в ряд Тейлора до первого (изредка до второго) слагаемого. Дело в том, что аналитическое решение в виде формулы можно получить разве что в простейших задачах. Численно, на компьютере, тоже не всякая задача решается. Поэтому часто в ходе преобразований приходится что-нибудь раскладывать и чем-нибудь пренебрегать.
Иногда приближенные методы удается использовать и в арифметических задачах. Прекрасный пример встречается в книге «Вы, конечно, шутите, мистер Фейнман»:
Тут в ресторан вошел японец. Я уже раньше видел его: он бродил по городу, пытаясь продать счеты. Он начал разговаривать с официантами и бросил им вызов, заявив, что может складывать числа быстрее, чем любой из них.
Официанты не хотели потерять лицо, поэтому сказали: «Да, да, конечно. А почему бы Вам не пойти к тому посетителю и не устроить соревнование с ним?»
Этот человек подошел ко мне. Я попытался сопротивляться: «Я плохо говорю на португальском!»
Официанты засмеялись. «С числами это не имеет значения», — сказали они.
Они принесли мне карандаш и бумагу.
Человек попросил официанта назвать несколько чисел, которые нужно сложить. Он разбил меня наголову, потому что пока я писал числа, он уже складывал их.
Тогда я предложил, чтобы официант написал два одинаковых списка чисел и отдал их нам одновременно. Разница оказалась небольшой. Он опять выиграл у меня приличное время.
Однако японец вошел в раж: он хотел показать, какой он умный. «Multiplicao!» — сказал он.
Кто-то написал задачу. Он снова выиграл у меня, хотя и не так много, потому что я довольно прилично умею умножать.
А потом этот человек сделал ошибку: он предложил деление. Он не понимал одного: чем сложнее задача, тем у меня больше шансов победить.
Нам дали длинную задачу на деление. Ничья.
Это весьма обеспокоило японца, потому что он явно прекрасно умел выполнять арифметические операции с помощью счет, а тут его почти победил какой-то посетитель ресторана.
«Raios cubicos!» — мстительно говорит он. Кубические корни! Он хочет брать кубические корни с помощью арифметики! Трудно найти более сложную фундаментальную задачу в арифметике. Должно быть, это был его конек в упражнениях со счетами.
Он пишет на бумаге число — любое большое число — я до сих пор его помню: 1729,03. Он начинает работать с этим числом и при этом что-то бормочет и ворчит: «Бу-бу-бу-хм-гм-бу-бу», — он трудится как демон! Он просто погружается в этот кубический корень!
Я же тем временем просто сижу на своем месте.
Один из официантов говорит: «Что Вы делаете?»
Я указываю на голову. «Думаю!» — говорю я. Затем пишу на бумаге 12. Еще через какое-то время — 12,002.
Человек со счетами вытирает со лба пот и говорит: «Двенадцать!»
«О, нет! — возражаю я. — Больше цифр! Больше цифр!» Я знаю, что, когда с помощью арифметики берешь кубический корень, то каждая последующая цифра требует большего труда, чем предыдущая. Это работа не из легких.
Он опять уходит в работу и при этом бормочет: «Уф-фыр-хм-уф-хм-гм. ». Я же добавляю еще две цифры. Наконец, он поднимает голову и говорит: «12,0!»
Официанты просто светятся от счастья. Они говорят японцу: «Смотрите! Он делает это в уме, а Вам нужны счеты! И цифр у него больше!»
Он был абсолютно измотан и ушел, побежденный и униженный. Официанты поздравили друг друга.
Каким же образом посетитель выиграл у счетов? Число было 1729,03. Я случайно знал, что в кубическом футе 1728 кубических дюймов, так что было ясно, что ответ немногим больше 12. Излишек же, равный 1,03, — это всего лишь одна часть из почти 2000, а во время курса исчисления я запомнил, что для маленьких дробей излишек кубического корня равен одной трети излишка числа. Так что мне пришлось лишь найти дробь 1/1728, затем умножить полученный результат на 4 (разделить на 3 и умножить на 12). Вот так мне удалось получить целую кучу цифр.
Несколько недель спустя этот человек вошел в бар того отеля, в котором я остановился. Он узнал меня и подошел. «Скажите мне, — спросил он, — как Вам удалось так быстро решить задачу с кубическим корнем?»
Я начал объяснять, что использовал приближенный метод, и мне достаточно было определить процент ошибки. «Допустим, Вы дали мне число 28. Кубический корень из 27 равен 3. »
Он берет счеты: жжжжжжжжжжжжжжжж — «Да», — соглашается он.
И тут до меня доходит: он не знает чисел. Когда у тебя есть счеты, не нужно запоминать множество арифметических комбинаций; нужно просто научится щелкать костяшками вверх-вниз. Нет необходимости запоминать, что 9 + 7 = 16; ты просто знаешь, что когда прибавляешь 9, то нужно передвинуть десятичную костяшку вверх, а единичную — вниз. Поэтому основные арифметические действия мы выполняем медленнее, зато мы знаем числа.
Более того, сама идея о приближенном методе вычисления была за пределами его понимания, несмотря на то, что зачастую невозможно найти метод точного вычисления кубического корня. Поэтому мне так и не удалось научить его брать кубический корень или объяснить, как мне повезло, что он выбрал число 1729,03.
Фейнман использовал ряд Тейлора для степенной функции, который для кубического корня выглядит как $$\sqrt[3]=1+x/3+\ldots$$ Вот вся последовательность вычислений:
В этом приближенном ответе благодаря малости числа 1,03/1728 по сравнению с единицей все цифры точные, расхождение с правильным ответом начинается в шестом знаке после запятой. Самая сложная операция в приведенной цепочке — вычисление дроби 1,03/432.