Числа, которых «не существует»

Почему математикам пришлось придумать число, квадрат которого равен $-1$, и зачем это инженерам.

Комплексное число — выражение вида $a+bi$, где $a$ и $b$ вещественные, а $i$ — мнимая единица с правилом $i^2=-1$.

С чего всё началось

Возьмём школьное уравнение $x^2+1=0$. На вещественной прямой решений нет: любой квадрат неотрицателен, поэтому $x^2$ не может равняться $-1$. Долгое время математики так и писали: «корней нет». Но в XVI веке при решении кубических уравнений возникла странная ситуация — промежуточные формулы содержали квадратные корни из отрицательных чисел, а окончательный ответ при этом получался обычным, вещественным. Чтобы дойти до правильного ответа, приходилось временно «поверить» в число, квадрат которого равен $-1$.

Это число назвали мнимой единицей и обозначили $i$. По определению:

$$i^2=-1.$$

Слово «мнимая» (imaginary) прижилось как исторический курьёз и многих сбивает с толку. На самом деле $i$ ничуть не «более выдумано», чем отрицательные числа или ноль — это просто новый объект с чётким правилом обращения.

Что такое комплексное число

Если разрешить умножать $i$ на вещественные числа и складывать результат с обычными числами, получаются комплексные числа:

$$z=a+bi,\qquad a,b\in\mathbb{R}.$$

Здесь $a$ называют вещественной частью и пишут $\operatorname{Re}(z)=a$, а $b$ — мнимой частью, $\operatorname{Im}(z)=b$. Обратите внимание: мнимая часть — это вещественное число $b$, а не $bi$.

В Python комплексные числа встроены в язык. Мнимую единицу обозначают буквой j (так принято в электротехнике, чтобы не путать с током $i$):

z = 2 + 3j
print("z =", z)
print("Re =", z.real)
print("Im =", z.imag)
print("i*i =", 1j * 1j)

Вывод:

z = (2+3j)
Re = 2.0
Im = 3.0
i*i = (-1+0j)

Последняя строка — самое важное: 1j * 1j действительно даёт $-1$. Правило $i^2=-1$ зашито в язык, а не в нашу веру.

Как работает под капотом

Можно строго определить комплексное число как пару вещественных чисел $(a,b)$ с особыми правилами сложения и умножения. Сложение покоординатное, а умножение задано так, чтобы пара $(0,1)$ при возведении в квадрат давала $(-1,0)$. Тогда никакой «мистики» нет: $i$ — это просто удобное имя для пары $(0,1)$, и $i^2=-1$ — следствие правил, а не магия. Компьютер хранит комплексное число ровно так: два числа с плавающей точкой, реальная и мнимая компоненты, рядом в памяти.

Частые ошибки

  • Считать, что $\sqrt{-1}$ «не определено». В комплексных числах оно определено и равно $i$ (точнее, у $-1$ два квадратных корня $\pm i$).
  • Путать мнимую часть $\operatorname{Im}(z)=b$ с самим слагаемым $bi$. Мнимая часть — вещественное число.
  • Думать, что мнимые числа «не нужны на практике». Весь расчёт цепей переменного тока, обработка сигналов и квантовая механика держатся на них.

Итог

  • Мнимая единица определена правилом $i^2=-1$ и закрывает «дыру» в решении уравнений.
  • Комплексное число $z=a+bi$ состоит из вещественной части $a$ и мнимой части $b$.
  • В Python мнимая единица — это 1j, а $i^2=-1$ выполняется буквально.
Проверьте себя
1. Чему равна мнимая часть $\operatorname{Im}(z)$ числа $z=2+3i$?
A2
B3
C3i
D5
2. Чему равно $i^2$?
A1
B$i$
C$-1$
D$-i$
3. Почему уравнение $x^2+1=0$ не имеет вещественных корней?
AКвадрат любого вещественного числа неотрицателен, а нужен $-1$
BУравнение записано с ошибкой
CЕдиницу нельзя переносить
DКорень есть, он равен 1