Комплексные корни многочленов
В комплексных числах у каждого квадратного уравнения есть корни — даже при отрицательном дискриминанте.
У многочлена с вещественными коэффициентами комплексные корни всегда идут сопряжёнными парами.
Дискриминант снова работает
Квадратное уравнение $ax^2+bx+c=0$ решается знакомой формулой с дискриминантом $D=b^2-4ac$:
$$x=\frac{-b\pm\sqrt{D}}{2a}.$$
Если $D\lt0$, в школе говорили «корней нет». Но в комплексных числах $\sqrt{D}$ существует и равен мнимому числу. Решим $x^2+x+1=0$: дискриминант $D=1-4=-3\lt0$, значит $\sqrt{D}=i\sqrt3$.
import cmath
a, b, c = 1, 1, 1
D = b*b - 4*a*c
x1 = (-b + cmath.sqrt(D)) / (2*a)
x2 = (-b - cmath.sqrt(D)) / (2*a)
print("D =", D)
print("x1 =", complex(round(x1.real,4), round(x1.imag,4)))
print("x2 =", complex(round(x2.real,4), round(x2.imag,4)))Вывод:
D = -3 x1 = (-0.5+0.866j) x2 = (-0.5-0.866j)
Корни $-\tfrac12\pm\tfrac{\sqrt3}{2}i$ — сопряжённая пара. У них одинаковая вещественная часть и противоположные мнимые.
Сопряжённые пары и теорема Виета
Это не случайность. Если многочлен имеет вещественные коэффициенты и $z$ — его корень, то и $\bar{z}$ обязательно корень. Поэтому комплексные корни «ходят парами». Проверим через теорему Виета: сумма корней должна равняться $-b/a=-1$, а произведение $c/a=1$:
import cmath
a, b, c = 1, 1, 1
D = b*b - 4*a*c
x1 = (-b + cmath.sqrt(D)) / (2*a)
x2 = (-b - cmath.sqrt(D)) / (2*a)
print("Сумма корней:", complex(round((x1+x2).real,4), round((x1+x2).imag,4)))
print("Произведение:", complex(round((x1*x2).real,4), round((x1*x2).imag,4)))Вывод:
Сумма корней: (-1+0j) Произведение: (1+0j)
Сумма $-1$, произведение $1$ — мнимые части взаимно уничтожились, как и положено для сопряжённой пары.
Как работает под капотом
Почему корни сопряжены? Подставим $z$ в многочлен $P(z)=0$ и применим сопряжение ко всему равенству. Так как коэффициенты вещественны (они равны своим сопряжённым), а сопряжение «проходит» через сумму и произведение, получим $P(\bar{z})=\overline{P(z)}=\bar0=0$. Значит, $\bar{z}$ тоже корень. Если же коэффициенты комплексные, это свойство пропадает.
Частые ошибки
- Писать «корней нет» при $D\lt0$. В комплексных числах корни есть всегда.
- Забывать про знак: $\sqrt{-3}=i\sqrt3$, а не $\sqrt3$.
- Ожидать сопряжённость корней при комплексных коэффициентах — там пары не гарантированы.
Итог
- При $D\lt0$ квадратное уравнение имеет два комплексно-сопряжённых корня.
- У многочлена с вещественными коэффициентами комплексные корни идут парами $z,\bar{z}$.
- Теорема Виета остаётся в силе и для комплексных корней.