-
Notifications
You must be signed in to change notification settings - Fork 10
/
chapter29.qq
executable file
·694 lines (592 loc) · 49.7 KB
/
chapter29.qq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
\chapter \label chap:29:complexnumbers
Комплексные числа
Мы начинали курс с обсуждения чисел, ими же и закончим. Всё началось с
натуральных чисел. Натуральные числа можно складывать, умножать и возводить в
степени, но не всегда можно вычитать. Попробуйте-ка вычесть пять из трёх — если
вам известны только натуральные числа, не получится. Приходится изобретать
отрицательные. С отрицательными числами вычитание работает без проблем, но с
делением есть трудности — четыре на два поделятся, а на три — нет. Рациональные
числа лишены этой проблемы: делить можно что угодно на что угодно, кроме нуля (с
нулём так всегда будет, тут уж ничего не поделать). Однако, корни извлекать не
всегда получается — например, корень из двух не является рациональным числом.
Чтобы эту проблему решить, придумали вещественные числа. Теперь корни
извлекаются — но только из неотрицательных чисел. А что делать, если очень
хочется извлечь корень из отрицательного числа? Как обычно — придумывать новые
числа!
\section Построение комплексных чисел
\subsection Мнимая единица
Когда мы не смогли поделить четыре на три, мы сказали — ну и ладно, давайте
просто объявим, что $4/3$ — это новое число — не натуральное и не целое, но
рациональное. Потом мы придумали две вещи: во-первых, как вложить множество
целых чисел в множество рациональных — мы знаем, что целое число $3$ — это то же
самое, что рациональное число $3/1$. Во-вторых, как рациональные числа
складывать и умножать.
С корнями из отрицательных чисел можно поступить аналогично. Допустим, очень
хочется вычислить квадратный корень из минус единицы. Давайте считать, что мы
его вычислили, и обозначим результат через $i$. Эта штука называется
\emph{мнимой единицей}. Мы бы хотели извлекать квадратный корень не
только из минус единицы, но и из других отрицательных чисел. Однако, как мы
скоро увидим, ничего специального для этого делать не придётся.
Конечно, $i$ не является вещественным числом, поскольку мы хорошо знаем, что
квадрат любого вещественного числа неотрицателен (ну вот просто так мы
определили операции — минус на минус даёт плюс, поэтому отрицательного ничего не
получится). Тем не менее, давайте считать, что это всё-таки число — какого-то
нового, невиданного доселе типа — и что его можно включать в арифметические
операции.
Самое главное (и, по большому счёту, единственное), что мы знаем про $i$ и
арифметические операции — что если его умножить на себя, то получится минус единица:
\eq
i^2 = -1.
Взаимодействие $i$ с вещественными числами определим самым простым образом:
никак. То есть выражение, например, $(2+3i)$ никак нельзя упростить — это просто
запись одного из наших новых чисел. Когда мы придумали рациональные числа, у
каждого такого числа оказалось две части — числитель и знаменатель, оба
относились к ранее определенным классам чисел — целым и натуральным. А у
комплексных чисел тоже две части, одна без $i$, а другая с $i$.
Итак, по определению, множество комплексных чисел — это множество
\eq
\mathbb C := \seq{x + iy \mid x \in \mathbb R, y \in \mathbb R}.
Пусть $z=x+iy$ — какое-то комплексное число. Тогда $x$ называется его
\emph{вещественной частью} (real), а $y$ — \emph{мнимой} (imaginary). Обозначаются:
\eq
x = \re x,\quad y = \im z.
Заметим, что $x$ и $y$ — вещественные числа. Всю комплексную магию добавляет
число $i$.
\subsection Арифметические операции с комплексными числами
В дальнейшем мы будем предполагать, что привычные для нас правила работы с
числами — например, «от перестановки слагаемых сумма не меняется» и т.д.
сохраняются и в случае комплексных чисел — по крайней мере, до тех пор, пока это
возможно.
\paragraph{Сложение} Пусть $z_1=x_1 + iy_1$ и $z_2=x_2 + iy_2$ — два комплексных
числа. Их сумма определяется так:
\align \nonumber
\item z_1 + z_2 \splonly{&}= x_1 + iy_1 + x_2 + iy_2 =
\splitem \splonly{&=} (x_1 + x_2) + i (y_1 + y_2).
Я воспользовался стандартными правилами — про перестановку слагаемых и про
вынесение за скобку. Таким образом, чтобы сложить два комплексных числа, нужно
сложить их вещественные и мнимые части по отдельности.
\paragraph{Умножение} Тут будет посложнее.
\align \nonumber
\item z_1 z_2 \splonly{&} = (x_1 + iy_1)(x_2 + iy_2)=
\splitem \splonly{&=}
x_1x_2 + iy_1 x_2 + x_1 i y_2 + iy_1 iy_2.
Коммутативность умножения, в которую мы по-прежнему верим, позволяет сказать,
что $x_1 i y_2 = ix_1 y_2$ и $iy_1 iy_2=i \cdot i y_1 y_2=i^2y_1y_2$. Но мы
знаем, что $i^2=-1$, и значит получается $-y_1y_2$. Итак:
\align
\item \label eq:29:product
z_1 z_2 \splonly{&} = x_1x_2 - y_1y_2 +
\splitem \splonly{ & {} + }
i(y_1 x_2 - x_1 y_2).
Формула не самая короткая, и сходу даже непонятно, какие свойства у этой
операции. Например, точно ли выполняется ассоциативность
($(z_1z_2)z_3=z_1(z_2z_3)$), как сложение взаимодействует с умножением и т.д.
— всё это надо проверять (спойлер: всё работает). Чуть попозже мы обсудим, как
умножение записывать короче и как правильно о нём думать.
\remark \label rem:29:linearity
С умножением на вещественные числа всё просто:
\equation \label eq:29:linearity
c(x+iy)=cx + icy,
то есть вещественная и комплексная части просто умножаются покомпонентно.
Аналогично можно комплексные числа делить на вещественные. Как делить
комплексные числа на комплексные мы обсудим позже.
\subsection Комплексная плоскость
Всякие комплексное число задаётся парой вещественных чисел — действительной и
мнимой частью. С другой стороны, мы знаем, что парами вещественных чисел
задаются точки на плоскости. Каждой точке можно также сопоставить
\emph{радиус-вектор} — стрелочку, которая начинается в нуле, а заканчивается в
этой точке. (Эту стрелочку также можно переносить по всей плоскости, сохраняя
направление и длину — иногда бывает полезно откладывать вектор не от нуля, а от
другой точки.) Мы будем думать про комплексные числа как про такие векторы.
Точка $(1, 0)$ и её радиус-вектор соответствуют вещественному числу $1$, а точка
$(0, 1)$ — числу $i$.
Вероятно, вы помните, что векторы на плоскости складываются по правилу
параллелограмма или правилу треугольника (что в сущности одно и то же). В
координатах, сложение векторов происходит покомпонентно — первая компонента
первого вектора складывается с первой компонентой второго, втарая — со второй.
Точно так же складываются комплексные числа. Поэтому сложение комплексных чисел
работает в точности так же, как сложение векторов.
С умножением интереснее. На плоскости не существует обычного векторного
умножения. (Вероятно, вы помните, что есть скалярное умножение, но оно на выходе
возвращает не вектор, а число — скаляр; бывает ещё векторное умножение, но оно
действует в трёхмерном пространстве, а не на плоскости.) А вот комплексные числа
умножать можно. Есть ли у умножения какой-то геометрический смысл? Есть! Но
сперва нужно поговорить про полярные координаты.
\subsection Тригонометрическая форма записи комплексных чисел
Задать точку на плоскости можно по-разному. Можно — её координатами в декартовой
системе, как мы это обычно делаем. А можно — в полярных координатах.
Возьмём некоторое направление — например, направление горизонтальной
координатной оси от начала координат в сторону плюс бесконечности. Рассмотрим
теперь какую-нибудь точку $P$. Она однозначно задаётся двумя числами:
расстоянием до начала координат $O$ и углом $\ph$, который составляет $OP$ с
нашим исходным направлением. Числа $r$ и $\ph$ называются полярными координатами
точки $P$.
Полярные координаты иногда бывают удобнее декартовых. Например, чтобы задать
единичную окружность, в декартовых координатах приходится вспоминать про теорему
Пифагора и записывать уравнение $x^2+y^2=1$, а в полярных соответствующее
уравнение выглядит гораздо проще: $r=1$.
Если заданы полярные координаты, восстановить декартовы легко. Если $r=1$, то
$x=\cos \ph$ и $y=\sin \ph$ — это определение синуса и косинуса. Если $r \ne 1$,
всю картинку нужно растянуть в $r$ раз, то есть умножить обе координаты на $r$.
Получается такая штука:
\eq
x = r\cos \ph,\quad y=r\sin \ph.
Вернёмся к комплексным числам. Их тоже можно задавать в полярных координатах:
\eq
z = r \cos \ph + i r \sin \ph = r(\cos \ph + i \sin \ph).
Число $r$ называется \emph{модулем} комплексного числа, оно равно расстоянию от
точки $(\re z, \im z)$ до начала координат, а число $\ph$ называется
\emph{аргументом}. Обозначения такие:
\eq
r = |z|, \quad \ph = \Arg z.
Таким образом, для любого $z$,
\equation \label eq:29:trigform-arg
z = |z| (\cos \Arg z + i \sin \Arg z)
\remark
Модуль комплексного числа задаётся однозначно — он находится по формуле
$\sqrt{x^2+y^2}$. А вот аргумент — нет; его можно менять на целое число
полных оборотов $2\pi$, и число не поменяется.
\paragraph{Умножение в тригонометрической форме}
Посмотрим, как работает формула умножения комплексных чисел \ref{eq:29:product},
если представлять их не в декартовых координатах, а в комплексных.
\align \nonumber
\item
z_1 z_2 & = r_1 (\cos \ph_1 + i \sin \ph_1) \times
\splitem \splonly{& {} \times} r_2 (\cos \ph_2 + i \sin \ph_2) =
\item
&= r_1 r_2 (\cos (\ph_1) \cos (\ph_2) -
\splitem \splonly{& {} -} \sin (\ph_1) \sin (\ph_2)) +
\splitem \splonly{ & {} +}
i(\cos (\ph_1) \sin (\ph_2) + \sin (\ph_1) \cos (\ph_2)).
Теперь нужно внимательно вглядеться и напрячь память… это же формулы для
косинуса и синуса суммы!
\eq
z_1 z_2 = r_1 r_2 (\cos (\ph_1 + \ph_2) + \sin(\ph_1 + \ph_2)).
Итак, при умножении комплексных чисел их модули умножаются, а аргументы
складываются. В отличие от формулы \ref{eq:29:product}, это правило реально
запомнить, и оно имеет интересный геометрический смысл: умножение на комплексное
число работает как поворот плоскости.
\question
Умножение на $i$ приводит к
\quiz
\choice \correct
повороту на угол $\pi/2$ против часовой стрелки;
\comment
Верно! Собственно, если взять число $1$, умножить его на $i$,
оно повернётся как раз на $\pi/2$ в положительном направлении
(против часовой стрелки).
\choice
повороту на угол $\pi/2$ по часове стрелке;
\comment
Попробуйте взять число $1$ и умножить его на $i$. Куда оно
повернётся?
\choice
повороту на 180 градусов;
\comment
Попробуйте взять число $1$ и умножить его на $i$. Куда оно
повернётся?
\choice
отражению относительно горизонтальной оси?
\comment
Попробуйте взять число $1$ и умножить его на $i$. Что с ним
произойдёт?
\subsection Комплексное сопряжение и деление
Обсудим ещё две важные операции. Во-первых, с комплексным числом можно
сделать такую штуку, которую нельзя сделать в вещественным числом: поменять
знак мнимой части. Вернее, сделать её с вещественным числом можно, но
вещественное число от этого не поменяется. Если же у комплексного числа есть
ненулевая мнимая часть, её знак заменится на противоположный и получится
другое комплексное число. Эта операция называется \emph{комплексным
сопряжением} и обозначается чертой:
\eq
\overline{z} = \overline{x + iy} := x - iy.
Геометрически комплексное сопряжение соответствует отражению плоскости
относительно вещественной оси. Если применить комплексное сопряжение дважды,
всё вернётся на место:
\eq
\overline{\overline z} = z.
\exercise
Докажите, что $\overline{z_1 z_2} = \overline{z_1} \cdot \overline{z_2}$
и $\overline{z_1+z_2}=\overline{z_1}+\overline{z_2}$.
Рассмотрим теперь любое число $z$. Что будет, если умножить его на
сопряженное?
\align \nonumber
\item
z\overline z \splonly{&} = (x + iy) (x-iy) =
\splitem \splonly{&=}
x^2 - i^2 y^2 = x^2 + y^2 = |z|^2.
Получается вещественное число — квадрат модуля $z$.
Научимся теперь делить комплексные числа. Для этого научимся для всякого
$z\ne 0$ находить такое число $w$, что $wz=1$. То есть $w$ — обратное к $z$.
Начнём с равенства, которое мы только что вывели:
\eq
z\overline z = |z|^2
и поделим его на $|z|^2$, при условии, что $z\ne 0$ и следовательно $|z|\ne 0$:
\eq
z\cdot \frac{\overline z}{|z|^2} = 1.
Итак, обратное к $z$ — это число
\eq
w = \frac{\overline z}{|z|^2}=\frac{\overline z}{z\overline z}.
Почему такая запись лучше, чем просто $w=1/z$? Потому что в формуле выше мы
делим на вещественное число $|z|^2$, а как умножать (и делить) на вещественные
числа мы знаем — это можно делать покомпонентно (см.
\ref[замечание][rem:29:linearity]). Можно записать операцию деления в обычных
координатах:
\eq
\frac{1}{x+iy}=\frac{x-iy}{x^2+y^2},
а можно и в полярных: взятие комплексного сопряжения меняет знак аргумента, а
чтобы поделить комплексное число на вещественное, достаточно поделить его
модуль:
\eq
\frac{1}{r(\cos \ph + i \sin \ph)} = \frac{1}{r} (\cos(-\ph) + i \sin (-\ph))
Ну а раз для всякого числа $z$ определено обратное к нему число $w$, то деление
устроено как обычно — как умножение на обратное:
\eq
\frac{z}{w}=z \frac{1}{w}=z w^{-1}.
\section Функции от комплексных чисел
\subsection Возведение в квадрат
Мы начали с того, что добавили к обычным вещественным числам одно-единственное
число $i$ — квадратный корень из минус единицы — и пообещали, что в получившейся
системе чисел можно будет найти квадратный корень из любого числа. Давайте
проверим, что это верно. Но сначала разберёмся, как действует возведение в
квадрат.
Пусть $f(z)=z^2$, $z \in \mathbb C$, то есть $f$ — это отобржаение из $\mathbb
C$ в $\mathbb C$ — как говорят, комплекснозначная функция комплексного
аргумента. К сожалению, представлять такие функции так, как мы привыкли, в виде
графиком, практически невозможно — поскольку комплексное число соответствует
двум вещественным, график такой функции пришлось бы рисовать в четыерёхмерном
пространстве, которое очень трудно представить. Попробуем по-другому.
Запишем $z$ в тригонометрической форме:
\eq
z = r(\cos \ph + i \sin \ph).
Тогда
\eq
z^2 = r^2 (\cos 2\ph + i \sin 2\ph),
при возведении в квадрат модуль возводится в квадрат, а аргумент умножается на
два.
Как действует это отображение? Для простоты рассмотрим случай, когда с радиусом
ничего не происходит — а именно, пусть $r=1$. В этом случае наше квадратичное
отображение просто удваивает аргумент, то есть отображает точку на единичной
окружности с угловой координатой $\ph$ в точку $2\ph$.
Пусть точка $z$ постепенно обходит окружность от точки $\ph=0$ в положительном
направлении (против часовой стрелки). Что происходит с $z^2$? Она также обходит
окружность, но вдвое быстрее, см. анимацию на \ref[рис.][fig:29:square1]. Когда
$z$ сделает четверть оборота и окажется в точке с $\ph=\pi/2$ (то есть в точке
$i$), её квадрат сделает полоборота и окажется в $(-1)$ — так и должно быть, мы
знаем, что $i^2=-1$. Дальше $z$ будет преодолевать расстояние от $\ph=\pi/2$ до
$\ph=\pi$, за это время $z^2$ преодолеет ещё полоборота и окажется в точке $1$.
Всё логично: $(-1)^2=1$. Потом $z$ будет проходить вторую половину окружности, а
$z^2$ — обходить всю окружность по второму разу. В частности, в тот момент,
когда $z$ попадёт в точку $-i$ (что соответствует $\ph=3\pi/2$), её квадрат
снова попадёт в $-1$. То есть не только $i^2=-1$, но и $(-i)^2=-1$ (что,
конечно, мгновенно следует из правила «минус на минус даёт плюс», которое никто
не отменял). Итак, полное прохождение окружности точкой $z$ соответствует
\emph{двукратному} прохождению окружности точкой $z^2$?
\figure \showcode \collapsed
\pythonvideo \jsanimate
from mpl_toolkits.mplot3d import Axes3D
from celluloid import Camera
from scipy.integrate import odeint, simps
def draw_z2(Rs, labels):
ph = np.linspace(0, 2 * np.pi, 301)
fig = plt.figure(figsize=(7, 7))
camera = Camera(fig)
ax = fig.add_subplot(111, projection="3d")
ax.set_axis_off()
def v(ph):
return np.sin(2 * ph) ** 2 + 0.1
t_max = simps(1 / v(ph), ph)
ph_steps = odeint(lambda ph, t: v(ph), 0, np.linspace(0, t_max, 101))
for t in ph_steps.ravel():
for plane in [1, -1]:
ax.text(-0.1, 0, plane, "$0$")
ax.text(0.8, 0.2, plane, "$1$")
ob.arrow3D(ax,
-1,
0,
plane,
2,
0,
0,
arrowstyle="-|>",
mutation_scale=20,
linestyle="dashed",
color="gray",
)
ax.text(0, 1.2, plane, "$i$")
ob.arrow3D(ax,
0,
-1,
plane,
0,
2,
0,
arrowstyle="-|>",
mutation_scale=20,
linestyle="dashed",
color="gray",
)
for R, label in zip(Rs, labels):
# circles
ax.plot(R * np.cos(ph), R * np.sin(ph), np.ones_like(ph), color="C0")
ax.plot(R ** 2 * np.cos(ph), R ** 2 * np.sin(ph), -np.ones_like(ph), color="C1")
# map
ax.plot(
[R * np.cos(t), R ** 2 * np.cos(2 * t)],
[R * np.sin(t), R ** 2 * np.sin(2 * t)],
[1, -1],
"o-",
color="C2",
)
rlabel = 1.1
ax.text(rlabel * R * np.cos(t), rlabel * R * np.sin(t), 1, f"$ {label} $")
ax.text(
rlabel * R ** 2 * np.cos(2 * t),
rlabel * R ** 2 * np.sin(2 * t),
-1,
f"$ {label}^2$",
)
camera.snap()
animation = camera.animate()
return animation
animation = draw_z2([1], ["z"])
\caption
Куда точки окружности на комплексной прямой переходят под действием
квадрата
\label fig:29:square1
Что изменится, если теперь взять окружность не единичного радиуса, а
какого-нибудь другого? Эта окружность всё равно перейдёт в окружность, но
радиус образа будет квадратом радиуса прообраза. Если он был меньше 1, он ещё
сильнее уменьшится. А если больше — увеличится. В остальном, никаких отличий
нет: угол будет по-прежнему удваиваться, см. анимацию на
\ref[рис.][fig:29:square_many].
\figure \showcode \collapsed
\pythonvideo \jsanimate
animation = draw_z2([0.8, 1, 1.3], ["z_1", "z_2", "z_3"])
\caption
Окружности различных радиусов и их образы под действием квадрата
\label fig:29:square_many
Если поднапрячь воображение, можно представить себе, что делает это отображение
с плоскостью целиком. Оно накладывает её саму на себя, накручивая два раза — так
что у каждой точки, кроме нуля, есть ровно два прообраза. Это будет важно для
дальнейшего.
\subsection Квадратный корень
Попробуем теперь понять, как найти квадратный корень из комплексного числа. Это
операция, обратная к возведению в квадрат. Чтобы возвести комплексное число в
квадрат нужно его модуль возвести в квадрат, а аргумент удвоить. Значит, чтобы
сделать обратную операцию, нужно извлечь корень из модуля (это всегда возможно,
модуль — неотрицательное вещественное число) и поделить аргумент на два.
Звучит просто? Но не совсем.
Мы говорили о том, что аргумент не является определенным однозначно. Например,
можно сказать, что аргумент числа $-1$ — это $\pi$, а можно сказать, что
$3\pi$, а можно — что $5\pi$. И всё это будет верно, потому что эти аргументы
отличаются ровно на $2\pi$ и задают одну и ту же точку.
Однако, когда мы их разделим пополам, вычисляя корень, мы можем получить разные
точки. Действительно, если аргумент равняется $\pi$, я его делю пополам, и
получаю аргумент $\pi/2$. Ему соответствует точка $i$. Если же я взял аргумент
$3\pi$, после деления пополам я получу аргумент $3\pi/2$, что соответствует
числу $(-i)$. То есть при делении аргумента пополам можно получить две разные
точки.
Это, конечно, не должно нас удивлять. Анализируя отображение возведения в
квадрат, мы выяснили, что оно не инъективно — а именно, у каждой точки, кроме
нуля, есть ровно два прообраза. Поэтому логично, что обратное отображение
не определено однозначно, и может принимать два разных значения.
Собственно, с такой же проблемой мы сталкивались, когда определяли обычный
квадратный корень из неотрицательного вещественного числа. Однако, там мы легко
вышли из этой ситуации, ограничив нашу функцию на неотрицательную полуось, или,
иными словами, потребовав, чтобы квадратный корень (строго говоря,
«арифметический квадратный корень») принимал только неотрицательные значения.
Таким образом, мы получили корректно определенную, однозначную функцию, а в
приложениях — например, в формуле корней квадратного уравнения — просто
приписывали перед этим нашим «арифметическим квадратным корнем» знак $\pm$,
который позволял не терять решений. Можем ли мы поступить так же с квадратным
корнем из комплексного числа? Например, определить функцию «комплексный
арифметический квадратный корень» таким образом, чтобы его значение всегда имело
неотрицательную вещественную часть, или ещё как-то выбрав один из возможных корней и
сняв таким образом неоднозначность? Давайте попробуем.
Возьмём снова точку $z$ на окружности, и пусть точка $w$ — это её квадратный
корень. Пусть сначала $z=1$, то есть аргумент числа $z$ равен нулю или $2\pi$.
Есть два возможных кандидата для значения корня — либо $w=1$, либо $w=-1$.
Конечно, мы хотим, чтобы корень из единицы равнялся единице. Итак, пусть $w=1$
при $z=1$. Теперь начнём постепенно двигать $z$ по окружности. Мы также
хотим, чтобы корень был непрерывной функцией, и когда мы немножко увеличим
аргумент числа $z$, аргумент числа $w$ не должен измениться сильно. Это означает, что не
может такого быть, чтобы мы только-только выехали из единицы, а $w$ вдруг стал
близок к $(-1)$. Значит, если, например, аргумент числа $z$ равен $\pi/10$, то
аргумент числа $w$ будет $\pi/20$, а не $\pi/20 + \pi$. Пусть мы так постепенно
сдвигая $z$, пройдём им полоборота по окружности, оказавшись в точке $1$. В это время
$w$ проедет четверть оборота и окажется в точке $i$. Что ж, пока всё отлично —
мы же знаем, что корень из минус единицы равен $i$, так и должно быть. Однако,
пусть теперь $z$ едет дальше, и проезжает вторую половину окружности. В это
время $w$ проедет вторую четвертинку и окажется в точке $-1$.
Стоп.
Но ведь точка $z$, проехав вторую половину окружности, сделал полный круг и
вернулась в $1$. И мы только что сказали, что точка $w$, которая равна корню из
$z$, при это оказалась равной $(-1)$. Хотя начинали мы с того, что принудительно
положили корень из единицы равным единице. Как же так? Откуда вдруг
противоречие?
Никакого содержательного противоречия тут на самом деле нет: $(-1)^2=1$ и в
принципе число $(-1)$ может с тем же правом претендовать на звание квадратного
корня из единицы, как и число $1$. Единственное, с чем возникло противоречие —
это с нашим предположением, что мы можем по своем усмотрению однозначно выбрать,
какому из двух возможных чисел этот корень равен. И вот это противоречие мы уже
не сможем преодолеть — по крайней мере, сохраняя непрерывность корня.
В комплексных числах невозможно определить функцию $w=\sqrt{z}$ таким образом,
чтобы она была непрерывной, но при этом однозначной — то есть так, как мы
привыкли определять функции. Фактически, для всякого значения $z$, у $\sqrt{z}$
принимает два разных значения (отличающихся знаком), и, более того, нельзя
сказать, какое из них «первое», а какое «второе» — в результате непрерывного
обхода точкой $z$ вокруг нуля, эти значения поменяются местами.
Вот таким необычным образом могут выглядеть функции на множестве комплексных
чисел.
\subsection Экспонента
Давайте поговорим ещё про одну важную функцию — экспоненту. Для вещественнного
числа $x$ мы определяли экспоненту как предел
\eq
e^x := \lim_{n \to \infty} \left(1 + \frac{x}{n}\right)^n
и доказывали, что это определение эквивалентно такому определению через ряд
(который впоследствии оказался рядом Тейлора):
\eq
e^x = \sum_{k=0}^\infty \frac{x^k}{k!}.
Ничто не мешает нам использовать одно из этих соотношений — например, второе
— для определения экспоненты комплексного числа: достаточно уметь складывать
числа, делить и возводить в степени. И мы всё это умеем!
\definition
Экспонентой комплексного числа $z$ называется
\equation \label eq:29:exp-series
e^z = \sum_{k=0}^\infty \frac{z^k}{k!}.
Конечно, неплохо было бы доказать, что этот ряд сходится, но мы этого делать не
будем. Вместо этого попробуем найти более явную формулу для экспоненты.
Для начала, рассмотрим случай \emph{чистого мнимого $z$}, то есть $z=iy$.
Посчитаем первые несколько степеней $z$, чтобы понять общий принцип:
\align \nonumber
\item z^0 &= 1
\item z^1 &= iy
\item z^2 &= -y^2
\item z^3 &= -iy^3
\item z^4 &= y^4
\item z^5 &= iy^5
Итак, коэффициенты перед $y^k$ меняются таким образом: $1$, $i$, $-1$, $-i$,
снова $1$ и дальше процесс повторяется циклически.
Запишем теперь первые члены ряда \ref{eq:29:exp-series} и выделим вещественную и
мнимую части:
\gather \nonumber
\item
e^{iy}=1 + iy - \frac{y^2}{2!} - i\frac{y^3}{3!}+
\splitem \splonly{ {} +} \frac{y^4}{4!}+i\frac{y^5}{5!}+\ldots=
\item
= \left(1 - \frac{y^2}{2!}+\frac{y^4}{4!}+\ldots\right) +
\splitem \splonly{ {} + }
\left(y-\frac{y^3}{3!}+\frac{y^5}{5!}-\ldots\right)i
Нет ли здесь чего-то вам знакомого? Ну конечно: ряд для вещественной части равен
ряду Тейлора для косинуса, а для мнимой — синусу. Поскольку косинус и синус
равны своим рядам Тейлора, мы получаем:
\eq
e^{iy} = \cos y + i \sin y,
иными словами — это число с единичным модулем и аргументом $y$. Таким образом,
тригонометрическую запись комплексного числа \ref{eq:29:trigform-arg} можно в
сокращенной форме записывать так:
\eq
z = |z| e^{i \Arg z}.
(Если вы видите это впервые, я думаю, ваше ощущение примерно такое — а-а-а,
откуда тут синусы, у нас же была экспонента?! А вот так. На самом деле,
экспоненты и синус — это родственные функции. Но на вещественной оси этого
совершенно не видно. Чтобы понять эту связь, нужны комплексные числа.)
\exercise
Докажите формулы о синусе и косинусе двойного аргумента пользуясь равенством
\eq
e^{2iy} = (e^{iy})^2.
Наконец, если у $z$ есть не только мнимая, но и действительная часть, экспонента
определяется следующим естественным образом:
\equation \label eq:29:exp-cos
e^{x+iy}=e^x e^{iy} = e^x (\cos y + i \sin y).
Если вы верите в то, что экспонента суммы равна произведению экспонент (а это
можно доказать, анализируя ряд \ref{eq:29:exp-series}), эта формула не должна
казаться вам необычной.
\subsection Логарифм
Итак, у нас есть экспонента. Как определить логарифм?
Посмотрим ещё раз на формулу \ref{eq:29:exp-cos}. Её можно записать в таком
виде. Пусть $e^{x+iy}=w$. Тогда
\eq
|w| = e^x,\quad \Arg w = y.
Теперь мы хотим наоборот, по $w$ найти $x+iy$. Это и будет наш логарифм.
Во-первых, легко найти $x$: раз $|w|=e^x$, числа $x$ и $|w|$ вещественны, и
можно посчитать обычный вещественный логарифм:
\eq
x = \ln |w|.
Кажется, что $y$ найти ещё проще — это просто $\Arg w$. Однако, тут кроется
подвох (он всегда кроется, когда мы рассматриваем аргумент): поскольку $\Arg w$
определен неоднозначно, $y$ тоже определен неоднозначно.
В комплексных числах экспонента не является инъективным отображением — что,
впрочем, неудивительно, учитывая появление в ней синусов и косинусов. Более
того, у каждой точки под действием экспоненты оказывается бесконечно много
прообразов (а не два, как было в случае с возведением в квадрат). Поэтому каждое
значение логарифма — это набор из бесконечного числа точек! И мы снова не можем
выделить из них одну правильную.
\eq
\Ln w = \ln |w| + i \Arg w,
где $\Arg w$ — это множество всевозможных значений аргумента $w$. Большие буквы
в имени функции используются, чтобы подчеркнуть, что перед нами не совсем
обычная функция — она принимает много разных значений.
\section Фрактал Мандельброта
Теперь я могу рассказать про штуку, которая — в какой-то мере — привела меня в
математику. Может быть, вам тоже понравится. Это фрактал Мандельброта.
Возьмём произвольное комлпексное число $c$ и рассмотрим такую последовательность
комплексных чиспел $\seq{z_n}$:
\gather
\item \label eq:29:quadr
z_1 = 0, \quad z_{n+1}=z_n^2 + c, \longonly{\quad }
\splitem n = 1, 2, \ldots
Например, $z_2=c$, $z_3 = c^2+c$, $z_4=(c^2+c)^2+c$ и т.д.
К чему стремится эта последовательность? Если $c=0$, вся последовательность
тождественно нулевая, и значит стремится к нулю. Если $c$ маленькое, наверное,
последовательность колеблется где-то вблизи нуля или какой-то другой точки с
небольшим модулем. Если $c$ большое, логично ожидать, что возведение в квадрат
сделает его ещё больше и довольно быстро последовательность будет стремиться к
бесконечности. Но как выглядит разделительная область между двумя режимами
— когда последовательность ограничена и когда неограничена?
Давайте возьмём все точки комплексной плоскости, и раскрасим их в разные цвета.
Если последовательность для выбранного значения $c$ не стремится к бесконечности
— закрасим в чёрный. Если стремится — закрасим в разные цвета, в зависимости от
того, как быстро она это делает (например, как быстро модуль становится больше
десяти или даже двух — можно доказать, что если это произошло, то
последовательность точно стремится к бесконечности). Что получится? Наверное,
что-то вроде окружности? Или эллипс? Или что-то более сложное?
Оказывается, получается что-то неимоверно сложное — а именно, вот такая
\ref[картинка\nonumber][fig:29:mandelbrot].
\figure \showcode
\pythonfigure \imgformat png
def mandelbrot(pmin, pmax, ppoints, qmin, qmax, qpoints,
max_iterations=200, infinity_border=10):
image = np.zeros((ppoints, qpoints))
p, q = np.mgrid[pmin:pmax:(ppoints*1j), qmin:qmax:(qpoints*1j)]
c = p + 1j*q
z = np.zeros_like(c)
for k in range(max_iterations):
z = z**2 + c
mask = (np.abs(z) > infinity_border) & (image == 0)
image[mask] = k
z[mask] = np.nan
return -image.T
plt.figure(figsize=(10, 10))
image = mandelbrot(-2.5, 1.5, 1000, -2, 2, 1000)
plt.xticks([])
plt.yticks([])
plt.imshow(image, cmap='flag', interpolation='none')
\caption Множество Мандельброта и код для его построения
\label fig:29:mandelbrot
Чтобы понять, насколько же она сложна, вы можете посмотреть, например,
\href[это видео][https://www.youtube.com/watch?v=VPHbgHVxLYY] (или любое другое
по запросу mandelbrot zoom) — там нет ничего, кроме масштабирования этой
картинки со всё большим увеличением — и там видно, что в ней бесконечно много
всё более и более мелких деталей. (Подробнее о построении можно прочитать,
например, \href[здесь][https://ischurov.github.io/mandelbrot.html].)
Множества с такими свойствами называются \emph{фракталами}. Про фракталы у нас
есть дополнительный листок с задачами — правда, множества Мандельброта там нет,
потому что мы не обсуждали методов, которые позволили бы вам его исследовать
— этим занимается отдельный раздел математики — так называемая голоморфная
динамика.
Ну а пока можно просто посмотреть на картинку. Что самое удивительно — всю эту
сложность породила одна очень простая формула: $f(z)=z^2+c$!
Пожалуй, трудно придумать лучшую иллюстрацию к величию и красоте математического
мира — первые шаги в котором мы сделали в этом курсе.