Polynomials / многочлены вам знакомы ещё со школы (наверное). Например:
3x^2 - 5x + 7
или:
x^4 + 2x - 1
Обычно мы видим polynomials с integer, rational, real или complex coefficients:
Z[x]
Q[x]
R[x]
C[x]
Но теперь мы можем обобщить эту идею. Если R — commutative ring, то можно рассматривать polynomials, у которых coefficients берутся из R. Так появляется polynomial ring:
R[x]
Что означает R[x]
Пусть R — commutative ring. Тогда:
R[x]
означает ring of polynomials over R.
Его элементы имеют вид:
anx^n + a(n-1)x^(n-1) + ... + a1x + a0
где каждый coefficient лежит в R:
ai ∈ R
а n — nonnegative integer:
n = 0, 1, 2, ...
Например, если:
R = Z
то:
Z[x]
состоит из polynomials with integer coefficients:
3x^2 - 5x + 7
x^4 + 2
-8x
4
Если:
R = Z3
то:
Z3[x]
состоит из polynomials, coefficients которых считаются modulo 3.
Например:
2x^3 + x + 1
лежит в Z3[x].
Что такое coefficient
В polynomial:
3x^2 - 5x + 7
числа:
3
-5
7
являются coefficients / коэффициентами. Coefficient показывает, сколько копий соответствующей power of x стоит в polynomial.
В записи:
anx^n + a(n-1)x^(n-1) + ... + a1x + a0
coefficient при x^n — это:
an
coefficient при x — это:
a1
а constant term / свободный член — это:
a0
Polynomial как formal object
Важный момент: в abstract algebra polynomial — это не обязательно function. В записи:
3x^2 - 5x + 7
символ x можно воспринимать как formal variable / формальную переменную. То есть x здесь не обязан прямо сейчас быть конкретным числом или элементом ring R. Он работает как placeholder / метка, которая отделяет coefficients друг от друга.
Например, polynomial:
a2x^2 + a1x + a0
можно понимать как удобную запись sequence coefficients:
(a0, a1, a2)
То есть вместо бесконечной sequence:
a0, a1, a2, 0, 0, 0, ...
мы пишем привычно:
a2x^2 + a1x + a0
Это удобнее читать и умножать.
Polynomial и polynomial function — не одно и то же
В обычной школьной алгебре polynomial часто сразу воспринимается как function:
f(x) = x^2 + 1
и мы можем подставлять значения:
f(2) = 5
Но в ring theory важно различать:
polynomial
и:
polynomial function
- Polynomial — это formal expression.
- Polynomial function — это функция, которую он задаёт после подстановки значений.
Иногда разные polynomials могут задавать одну и ту же function.
Пример в Z3[x]
Рассмотрим два polynomials:
f(x) = x
и:
g(x) = x^3
Как polynomials в Z3[x], они разные:
x != x^3
У них разные powers of x. Но как functions from Z3 to Z3, они дают одинаковые значения.
В Z3 есть только три элемента:
0, 1, 2
Проверим:
0^3 = 0
1^3 = 1
2^3 = 8 ≡ 2 (mod 3)
То есть для каждого a ∈ Z3:
a^3 = a
Поэтому functions совпадают:
f(a) = g(a)
для всех a ∈ Z3.
Но polynomials всё равно разные:
x != x^3
в Z3[x].
Главная мысль:
polynomial equality сравнивает coefficients при одинаковых powers of
x, а не только значения функции на элементах ring.
Когда два polynomials равны
Два polynomials равны, если у них совпадают coefficients при всех powers of x. Например:
2x^2 + x + 1
и:
2x^2 + x + 1
равны.
А x и x^3 не равны как polynomials, потому что coefficient при x и coefficient при x^3 различаются. Если один polynomial короче другого, мы можем мысленно добавить missing terms with coefficient 0.
Например:
x + 1
можно записать как:
0x^3 + 0x^2 + x + 1
Тогда сравнение coefficients становится прямым.
В Z_n[x] уменьшаются coefficients, а не powers
Ещё одна частая ловушка.
В ring:
Z_n[x]
coefficients считаются modulo n. Но exponents / степени x не уменьшаются modulo n.
Например, в:
Z3[x]
имеем:
5x = 2x
потому что coefficient:
5 ≡ 2 (mod 3)
Но:
x^5 != x^2
as polynomials. Мы не уменьшаем exponent 5 modulo 3. То есть modulo применяется к coefficients:
5x -> 2x
но не к powers:
x^5 not -> x^2
Addition в R[x]
Polynomials складываются по одинаковым powers of x.
Пусть:
f(x) = 2x^3 + x^2 + 2x + 2
и:
g(x) = 2x^2 + 2x + 1
Рассмотрим их как elements of:
Z3[x]
То есть coefficients считаются modulo 3.
Складываем:
f(x) + g(x)
=
(2x^3 + x^2 + 2x + 2) + (2x^2 + 2x + 1)
Собираем одинаковые powers:
= 2x^3 + (1 + 2)x^2 + (2 + 2)x + (2 + 1)
Теперь считаем coefficients modulo 3:
1 + 2 = 3 ≡ 0
2 + 2 = 4 ≡ 1
2 + 1 = 3 ≡ 0
Получаем:
f(x) + g(x)
=
2x^3 + 0x^2 + x + 0
То есть:
f(x) + g(x) = 2x^3 + x
Multiplication в R[x]
Multiplication polynomials работает через distributive law. То есть каждый term первого polynomial умножается на каждый term второго.
Например:
(x + 1)(x + 2)
Раскрываем:
x · x + x · 2 + 1 · x + 1 · 2
Получаем:
x^2 + 2x + x + 2
Собираем terms:
x^2 + 3x + 2
Если мы работаем в Z3[x], то:
3x = 0x
поэтому:
(x + 1)(x + 2) = x^2 + 2
в Z3[x].
Большой пример multiplication в Z3[x]
Пусть:
f(x) = 2x^3 + x^2 + 2x + 2
и:
g(x) = 2x^2 + 2x + 1
в Z3[x].
Умножаем:
f(x)g(x)
=
(2x^3 + x^2 + 2x + 2)(2x^2 + 2x + 1)
Раскрываем по частям. Сначала 2x^3:
2x^3 · 2x^2 = 4x^5 ≡ x^5
2x^3 · 2x = 4x^4 ≡ x^4
2x^3 · 1 = 2x^3
Теперь x^2:
x^2 · 2x^2 = 2x^4
x^2 · 2x = 2x^3
x^2 · 1 = x^2
Теперь 2x:
2x · 2x^2 = 4x^3 ≡ x^3
2x · 2x = 4x^2 ≡ x^2
2x · 1 = 2x
Теперь 2:
2 · 2x^2 = 4x^2 ≡ x^2
2 · 2x = 4x ≡ x
2 · 1 = 2
Собираем всё:
x^5 + x^4 + 2x^3
+ 2x^4 + 2x^3 + x^2
+ x^3 + x^2 + 2x
+ x^2 + x + 2
Теперь группируем одинаковые powers:
x^5 + (1 + 2)x^4 + (2 + 2 + 1)x^3 + (1 + 1 + 1)x^2 + (2 + 1)x + 2
Считаем coefficients modulo 3:
1 + 2 = 3 ≡ 0
2 + 2 + 1 = 5 ≡ 2
1 + 1 + 1 = 3 ≡ 0
2 + 1 = 3 ≡ 0
Получаем:
f(x)g(x) = x^5 + 2x^3 + 2
Почему R[x] является ring
Мы определили на R[x] две operations:
polynomial addition
polynomial multiplication
Эти operations работают так, чтобы R[x] снова был ring.
- Если
R— commutative ring, тоR[x]тоже commutative ring. - Если
Rимеет unity1, тоR[x]тоже имеет unity.
Unity в R[x] — это constant polynomial 1. Потому что:
1 · f(x) = f(x)
для любого polynomial f(x).
Degree
Теперь введём terminology.
Пусть:
f(x) = anx^n + a(n-1)x^(n-1) + ... + a1x + a0
и:
an != 0
Тогда говорят, что polynomial f(x) имеет degree / степень n. Обозначение:
deg f(x) = n
Например:
f(x) = 5x^7 + 3x^2 - 1
имеет degree 7.
Polynomial:
g(x) = 4x^3 + x + 9
имеет degree 3.
Constant nonzero polynomial:
h(x) = 5
имеет degree 0.
Zero polynomial:
0
обычно не имеет degree.
Leading coefficient
Если:
f(x) = anx^n + a(n-1)x^(n-1) + ... + a1x + a0
и:
an != 0
то coefficient:
an
называется leading coefficient / старшим коэффициентом. Например, у polynomial:
7x^4 - 2x + 9
degree равна 4 а leading coefficient равен 7.
Monic polynomial
Polynomial называется monic / приведённым, если его leading coefficient равен multiplicative identity ring R. То есть если leading coefficient равен 1.
Например, в Z[x] polynomial:
x^3 - 5x + 2
monic, потому что leading coefficient равен 1.
А polynomial:
3x^3 - 5x + 2
не monic, потому что leading coefficient равен 3.
Constant polynomial
Polynomial вида:
f(x) = a0
называется constant polynomial / константным многочленом.
Например:
5
-2
0
являются constant polynomials.
Если a0 != 0, то degree constant polynomial равна:
0
Zero polynomial обычно рассматривают отдельно.
Когда D[x] тоже integral domain
Если D — integral domain, то polynomial ring:
D[x]
тоже является integral domain. То есть если в D нет zero divisors, то и в D[x] zero divisors не появятся.
Почему это правда
Пусть:
f(x), g(x) ∈ D[x]
и оба polynomials ненулевые. Допустим:
deg f = m
и:
deg g = n
Тогда leading terms имеют вид:
am x^m
и:
bn x^n
где:
am != 0
bn != 0
При multiplication самый старший term произведения будет:
am bn x^(m+n)
Так как D — integral domain, в нём нет zero divisors. Поэтому из:
am != 0
и:
bn != 0
следует:
am bn != 0
Значит произведение:
f(x)g(x)
не может быть zero polynomial. То есть два ненулевых polynomials не могут перемножиться в 0.
Следовательно:
D[x]
тоже integral domain.
Division algorithm for polynomials
Для integers у нас есть division algorithm.
Если:
a, b ∈ Z
и:
b != 0
то можно записать:
a = bq + r
где q — quotient / частное, а r — remainder / остаток.
Для polynomials есть похожая идея. Но важно: хорошо работает она над field.
Division algorithm в F[x]
Пусть F — field, и пусть:
f(x), g(x) ∈ F[x]
причём:
g(x) != 0
Тогда существуют unique polynomials:
q(x), r(x) ∈ F[x]
такие, что:
f(x) = g(x)q(x) + r(x)
и при этом:
r(x) = 0
или:
deg r < deg g
То есть любой polynomial f(x) можно разделить на ненулевой polynomial g(x) с остатком.
Почему нужно field
При polynomial division часто нужно делить на leading coefficient divisor polynomial. Например, если leading term divisor равен:
2x^2
а leading term dividend равен:
3x^4
то нужно поделить coefficient 3 на coefficient 2. Это возможно, если 2 имеет inverse. В field каждый nonzero element имеет inverse, поэтому division algorithm работает нормально.
Например, в:
Q[x]
R[x]
C[x]
Z_p[x]
division algorithm работает.
А в:
Z[x]
нужно быть осторожнее, потому что не каждый integer coefficient обратим. Например, 2 не имеет inverse внутри Z.
Пример: деление многочленов в Z5[x]
Рассмотрим многочлены:
f(x) = 3x^4 + x^3 + 2x^2 + 1
g(x) = x^2 + 4x + 2
Мы хотим разделить f(x) на g(x), то есть найти частное q(x) и остаток r(x):
f(x) = g(x)q(x) + r(x)
При этом степень остатка должна быть меньше степени делителя:
deg r < deg g = 2
Все вычисления выполняются modulo 5.
Шаг 1. Находим первый член частного
Смотрим на старшие члены двух многочленов:
3x^4 и x^2
Чтобы из x² получить 3x⁴, нужно умножить его на 3x²:
3x^4 / x^2 = 3x^2
Это первый член нашего частного:
q(x) = 3x^2 + ...
Теперь умножаем весь делитель на 3x²:
3x²(x² + 4x + 2)
= 3x⁴ + 12x³ + 6x²
Поскольку работаем в Z5, приводим коэффициенты modulo 5:
12 ≡ 2 (mod 5)
6 ≡ 1 (mod 5)
Получаем:
3x⁴ + 2x³ + x²
Вычитаем это из исходного многочлена:
3x⁴ + x³ + 2x² + 1
- 3x⁴ - 2x³ - x²
------------------------
-x³ + x² + 1
Но в Z5:
-1 ≡ 4 (mod 5)
Поэтому результат вычитания:
4x³ + x² + 1
Шаг 2. Находим следующий член частного
Теперь нужно разделить старший член полученного многочлена на старший член делителя:
4x³ / x² = 4x
Значит, второй член частного — 4x:
q(x) = 3x² + 4x
Снова умножаем весь делитель, теперь на 4x:
4x(x² + 4x + 2)
= 4x³ + 16x² + 8x
Приводим коэффициенты modulo 5:
16 ≡ 1 (mod 5)
8 ≡ 3 (mod 5)
Получаем:
4x³ + x² + 3x
Вычитаем:
4x³ + x² + 0x + 1
- 4x³ - x² - 3x
---------------------
-3x + 1
Поскольку:
-3 ≡ 2 (mod 5)
результат:
2x + 1
Шаг 3. Проверяем остаток
Теперь у нас остался многочлен:
r(x) = 2x + 1
Его степень равна 1, а степень делителя — 2.
deg r = 1 < 2 = deg g
Значит, деление закончено: дальше продолжать нельзя, поскольку степень остатка уже меньше степени делителя.
Получили:
q(x) = 3x² + 4x
r(x) = 2x + 1
И окончательное равенство:
3x⁴ + x³ + 2x² + 1
=
(x² + 4x + 2)(3x² + 4x) + 2x + 1
Таким образом, деление многочленов в Z5[x] выполняется по тем же правилам, что и обычное деление столбиком. Единственное отличие — после операций с коэффициентами мы приводим результаты modulo 5.
Divisibility polynomials
Пусть D — integral domain, и пусть:
f(x), g(x) ∈ D[x]
Говорят, что g(x) divides f(x), если существует polynomial:
h(x) ∈ D[x]
такой, что:
f(x) = g(x)h(x)
Обозначение:
g(x) | f(x)
В этом случае g(x) называют:
factor of f(x)
То есть factor polynomial — это polynomial, который делит другой polynomial без остатка.
Пример
В Z[x]:
x - 1
divides:
x^2 - 1
потому что:
x^2 - 1 = (x - 1)(x + 1)
Значит:
x - 1 | x^2 - 1
и:
x + 1 | x^2 - 1
Zeros / roots polynomial
Элемент a называется zero / root polynomial f(x), если:
f(a) = 0
То есть мы подставляем a вместо x, и результат равен zero element ring.
Например, для:
f(x) = x^2 - 4x + 3
имеем:
f(1) = 1 - 4 + 3 = 0
и:
f(3) = 9 - 12 + 3 = 0
Значит 1 и 3 являются roots polynomial f(x).
Multiplicity of a root
Мы уже знаем, что число a является корнем многочлена f(x), если:
f(a) = 0
По теореме о корнях это означает, что f(x) делится на:
x - a
без остатка.
Но иногда многочлен можно разделить на x - a не один раз, а несколько. Количество таких делений и называется кратностью корня (multiplicity).
Простой пример
Рассмотрим многочлен над R:
f(x) = (x - 2)(x - 2)
Или:
f(x) = (x - 2)^2
Число 2 — его корень, потому что:
f(2) = (2 - 2)^2 = 0
Но здесь есть дополнительное свойство: многочлен можно дважды разделить на x - 2 без остатка.
Первое деление:
(x - 2)^2 / (x - 2) = x - 2
Второе деление:
(x - 2) / (x - 2) = 1
Третье деление уже невозможно без остатка, поскольку 1 не делится на x - 2.
Поэтому говорят, что 2 — корень кратности 2, или двойной корень.
Пример с несколькими корнями
Теперь рассмотрим:
f(x) = (x - 2)^3(x + 1)
У этого многочлена два различных корня:
2 и -1
Почему? При x = 2 первый множитель становится нулём:
f(2) = (2 - 2)^3(2 + 1) = 0
При x = -1 нулём становится второй:
f(-1) = (-1 - 2)^3(-1 + 1) = 0
Но их кратности различаются.
Корень 2 имеет кратность 3.
Мы можем трижды разделить f(x) на x - 2 без остатка:
f(x) / (x - 2) = (x - 2)^2(x + 1)
Затем:
(x - 2)^2(x + 1) / (x - 2) = (x - 2)(x + 1)
И ещё раз:
(x - 2)(x + 1) / (x - 2) = x + 1
На этом останавливаемся: x + 1 уже не делится на x - 2 без остатка.
Корень -1 имеет кратность 1.
Ему соответствует множитель:
x - (-1) = x + 1
Делим исходный многочлен:
f(x) / (x + 1) = (x - 2)^3
Повторно разделить на x + 1 без остатка уже нельзя.
Общее определение
Пусть F — поле, f(x) ∈ F[x], а a ∈ F. Число a называется корнем кратности k, если:
(x - a)^k
делит f(x) без остатка, но:
(x - a)^(k+1)
уже не делит его без остатка.
То есть кратность показывает, сколько раз можно убрать множитель x - a из многочлена, прежде чем деление перестанет быть возможным без остатка. Если кратность равна 1, корень называется простым. Если больше 1 — кратным.
Remainder theorem (теорема об остатке)
Мы уже знаем, как делить многочлены с остатком. Но если делитель имеет вид:
x - a
существует гораздо более простой способ найти остаток.
Remainder theorem утверждает: остаток от деления f(x) на x - a равен f(a). То есть вместо деления достаточно подставить a в исходный многочлен.
Пример
Возьмём многочлен над Q:
f(x) = x² + 3x + 2
Допустим, мы хотим найти остаток от деления на:
x - 2
По Remainder theorem достаточно вычислить:
f(2) = 2² + 3·2 + 2
= 4 + 6 + 2
= 12
Значит, остаток равен 12.
Проверим обычным делением. Сначала делим старшие члены:
x² / x = x
Умножаем делитель на x и вычитаем:
(x² + 3x + 2) - (x² - 2x) = 5x + 2
Теперь делим:
5x / x = 5
Снова умножаем и вычитаем:
(5x + 2) - (5x - 10) = 12
Получили:
q(x) = x + 5
r = 12
То есть:
x² + 3x + 2 = (x - 2)(x + 5) + 12
Остаток действительно равен f(2) = 12.
Почему это работает
Пусть F — поле, f(x) ∈ F[x] и a ∈ F. По алгоритму деления мы можем записать:
f(x) = (x - a)q(x) + r(x)
Поскольку делитель x - a имеет степень 1, остаток должен иметь степень меньше 1. Значит, остаток — обычная константа r (в том числе возможно 0).
Теперь подставим x = a:
f(a) = (a - a)q(a) + r
Но:
a - a = 0
Поэтому:
f(a) = 0 + r = r
Вот и всё доказательство: при подстановке x = a вся часть с делителем исчезает, и остаётся только остаток.
Связь с корнями многочлена
Из Remainder theorem следует ещё одно полезное свойство. Если:
f(a) = 0
то остаток от деления на x - a равен 0. Значит, многочлен делится на x - a без остатка. Например, для нашего многочлена:
f(x) = x² + 3x + 2
проверим a = -1:
f(-1) = (-1)² + 3·(-1) + 2
= 1 - 3 + 2
= 0
Следовательно, f(x) делится на x + 1 без остатка.
И действительно:
x² + 3x + 2 = (x + 1)(x + 2)
Таким образом, Remainder theorem позволяет не только находить остатки без деления, но и проверять, является ли число корнем многочлена.
Factor theorem (теорема о множителе)
В предыдущем разделе мы выяснили, что остаток от деления многочлена f(x) на x - a равен f(a). Отсюда следует важный результат: если a — корень многочлена, то x - a является его множителем. И наоборот: если x - a — множитель многочлена, то a обязательно является его корнем.
Формально, для f(x) ∈ F[x] и a ∈ F:
f(a) = 0 ⇔ (x - a) | f(x)
Это и есть factor theorem.
Почему это работает
По Remainder theorem:
f(x) = (x - a)q(x) + f(a)
Если a — корень, то f(a) = 0. Следовательно:
f(x) = (x - a)q(x)
То есть многочлен делится на x - a без остатка.
Обратно, если x - a делит f(x) без остатка, то по Remainder theorem:
f(a) = 0
Значит, a — корень.
Пример: находим множители многочлена
Рассмотрим:
f(x) = x² - 4x + 3
Допустим, мы хотим разложить его на множители.
Начнём с проверки, является ли 1 корнем:
f(1) = 1² - 4·1 + 3 = 0
Получили 0. Значит, по Factor theorem многочлен обязательно делится на:
x - 1
Теперь разделим:
(x² - 4x + 3) / (x - 1) = x - 3
Таким образом:
f(x) = (x - 1)(x - 3)
Мы нашли разложение на множители!
Заодно видим, что второй корень — 3, поскольку:
f(3) = 3² - 4·3 + 3 = 0
Зачем нужна Factor theorem
Теорема связывает две задачи:
- Поиск корней: подставляем число
aи проверяем, равно лиf(a)нулю. - Разложение на множители: если нашли корень
a, можем выделить множительx - aи разделить на него многочлен.
Таким образом, знание одного корня позволяет уменьшить степень многочлена и упростить поиск остальных корней.
Polynomials over a field have at most n roots
Из Factor theorem следует важное свойство: ненулевой многочлен степени n над полем не может иметь больше n корней, даже если учитывать их кратности. Например, многочлен степени 2 не может иметь пять разных корней. Почему?
Почему количество корней ограничено
Вспомним Factor theorem: если a — корень многочлена f(x), то x - a является его множителем.
То есть:
f(x) = (x - a)q(x)
Допустим, мы нашли ещё один корень b, отличный от a.
Тогда:
f(b) = (b - a)q(b) = 0
Поскольку a и b различны:
b - a ≠ 0
А в поле нет делителей нуля. Поэтому, чтобы произведение равнялось 0, обязательно:
q(b) = 0
Значит, b — корень оставшегося многочлена q(x), и мы можем выделить ещё один множитель:
f(x) = (x - a)(x - b)h(x)
Каждый раз, когда мы выделяем такой множитель, степень оставшегося многочлена уменьшается на 1. Если исходная степень равна n, мы не можем проделать это больше n раз. Таким образом, у многочлена степени n не может быть больше n различных корней.
Если учитывать кратности, ограничение остаётся тем же. Например:
f(x) = (x - 2)^2(x + 1)
Этот многочлен имеет степень 3.
Примечание: степень многочлена определяется наибольшей степенью x после раскрытия скобок. При умножении ненулевых многочленов над полем их степени складываются.
Например:
f(x) = (x - 2)²(x + 1)
Первый множитель имеет степень 2, второй — 1. Поэтому степень всего многочлена равна 2 + 1 = 3.
Действительно:
f(x) = x³ - 3x² + 4
Наибольшая степень x здесь — 3.
У этого многочлена только два различных корня:
2— кратность2.-1— кратность1.
С учётом кратностей получаем 2 + 1 = 3, что соответствует степени многочлена.
При этом корней может быть и меньше n. Например, x² + 1 не имеет корней в R, хотя его степень равна 2.
Почему важно работать над полем
В кольцах с делителями нуля ситуация может быть другой. Рассмотрим многочлен над Z12:
f(x) = x² - 4x + 3
Его степень равна 2. Но проверим несколько значений:
f(1) = 1 - 4 + 3 = 0
f(3) = 9 - 12 + 3 = 0
f(7) = 49 - 28 + 3 = 24 ≡ 0 (mod 12)
f(9) = 81 - 36 + 3 = 48 ≡ 0 (mod 12)
Получается, что у многочлена степени 2 есть целых четыре различных корня в Z12:
1, 3, 7, 9
Как такое возможно?
Разложим многочлен:
f(x) = (x - 1)(x - 3)
В поле такое разложение означало бы, что произведение равно нулю только при x = 1 или x = 3.
Но в Z12 есть делители нуля.
Например, при x = 7:
f(7) = (7 - 1)(7 - 3)
= 6 · 4
= 24
≡ 0 (mod 12)
Хотя ни 6, ни 4 не равны нулю в Z12, их произведение равно нулю. Поэтому 7 тоже является корнем!
Таким образом, Factor theorem по-прежнему работает, но наличие делителей нуля позволяет многочлену иметь больше различных корней, чем его степень.
Example: complex roots of x^n - 1
Теперь применим нашу теорему к комплексным числам.
Рассмотрим многочлен:
f(x) = x^n - 1
Мы хотим найти все его комплексные корни:
x^n - 1 = 0
То есть все числа, для которых:
x^n = 1
Такие числа называются корнями n-й степени из единицы (nth roots of unity).
Один корень очевиден:
x = 1
поскольку 1^n = 1.
Но в комплексных числах существуют и другие решения.
Primitive nth root of unity
Рассмотрим комплексное число:
ω = cos(360°/n) + i·sin(360°/n)
Оно лежит на единичной окружности комплексной плоскости и соответствует углу 360°/n.
По формуле Муавра возведение такого числа в степень n умножает угол на n:
n · (360°/n) = 360°
Поэтому:
ω^n = cos(360°) + i·sin(360°) = 1
Значит, ω — корень многочлена x^n - 1.
Но мы можем взять и другие степени ω:
1, ω, ω², ..., ω^(n-1)
Все они тоже являются корнями, потому что:
(ω^k)^n = (ω^n)^k = 1
Причём эти n чисел различны: они соответствуют разным углам на единичной окружности.
Например, при n = 4:
ω = cos(90°) + i·sin(90°) = i
Его степени:
ω^0 = 1
ω^1 = i
ω^2 = -1
ω^3 = -i
Все четыре числа удовлетворяют уравнению:
x^4 = 1
Итак, мы нашли четыре различных корня многочлена степени 4. А поскольку многочлен степени 4 над полем не может иметь больше четырёх корней, других решений нет.
Аналогично для произвольного n мы получаем ровно n различных комплексных корней:
1, ω, ω², ..., ω^(n-1)
Число ω, степени которого дают все n различных корней, называется primitive nth root of unity (первообразным корнем n-й степени из единицы).
Итог
Ненулевой многочлен степени n над полем имеет не более n корней с учётом кратностей. Это свойство позволяет не только ограничивать количество возможных решений, но и доказывать, что мы уже нашли все корни многочлена.
Именно так мы установили, что список:
1, ω, ω², ..., ω^(n-1)
содержит все комплексные корни уравнения x^n = 1.
Principal Ideal Domain (PID)
Вспомним, что главный идеал (principal ideal) — это идеал, порождённый одним элементом. В коммутативном кольце R с единицей он имеет вид:
<a> = {ra | r ∈ R}
То есть мы берём элемент a, умножаем его на все элементы кольца и получаем идеал.
Например, в Z:
<6> = 6Z = {..., -12, -6, 0, 6, 12, ...}
Это идеал всех целых чисел, кратных 6. Но в произвольном кольце не каждый идеал обязательно можно получить из одного элемента.
Что такое PID
Principal Ideal Domain (PID) — это область целостности, в которой каждый идеал является главным. То есть должны выполняться два условия:
R— область целостности (integral domain).- Для любого идеала
Iсуществует элементa ∈ R, такой что:
I = <a>
Иными словами, для описания любого идеала достаточно одного порождающего элемента.
Пример: Z является PID
В кольце целых чисел все идеалы имеют вид:
nZ
где n — некоторое неотрицательное целое число.
Но каждый такой идеал порождён одним элементом:
nZ = <n>
Например:
12Z = <12>
Даже если мы попробуем породить идеал несколькими числами, всё равно окажется, что достаточно одного.
Например, рассмотрим идеал, порождённый 6 и 10:
<6, 10>
Он содержит всевозможные целочисленные комбинации этих чисел:
6a + 10b, где a, b ∈ Z
Но заметим:
10 - 6 = 4
6 - 4 = 2
Следовательно, 2 тоже принадлежит этому идеалу. При этом любая комбинация 6a + 10b чётная, то есть принадлежит 2Z. А поскольку идеал содержит 2, он содержит и все кратные 2. Поэтому:
<6, 10> = <2> = 2Z
Получается, что даже здесь двух порождающих элементов не требуется. В общем случае работает тот же принцип: идеал, порождённый целыми числами, можно породить их наибольшим общим делителем. Таким образом, каждый идеал в Z является главным, а значит:
Z is a PID
Почему F[x] тоже является PID
Теперь рассмотрим кольцо многочленов:
F[x]
где F — поле. Для него справедлива теорема:
Если
F— поле, тоF[x]является PID.
То есть любой идеал многочленов над полем можно породить одним многочленом. На первый взгляд это неочевидно: многочленов бесконечно много, а идеал может содержать самые разные выражения. Но здесь нам поможет алгоритм деления многочленов, который мы уже изучили.
Почему это работает
Пусть I — ненулевой идеал в F[x]. Выберем из него ненулевой многочлен с наименьшей степенью и назовём его:
g(x)
Почему выбираем именно минимальную степень? Потому что мы хотим доказать, что любой другой многочлен из I делится на g(x) без остатка. Если это так, то все элементы I являются кратными g(x), а значит, одного этого многочлена достаточно для порождения всего идеала:
I = <g(x)>
Проверим наше предположение. Возьмём произвольный многочлен:
f(x) ∈ I
Поскольку F — поле, в F[x] работает алгоритм деления. Поэтому:
f(x) = g(x)q(x) + r(x)
где остаток r(x) равен нулю или имеет степень меньше степени g(x):
deg r < deg g
Теперь выразим остаток:
r(x) = f(x) - g(x)q(x)
Обратим внимание:
f(x)принадлежит идеалуIпо условию.g(x)тоже принадлежитI, поэтомуg(x)q(x)принадлежитIпо свойству идеала.- Разность двух элементов идеала также принадлежит этому идеалу.
Следовательно:
r(x) ∈ I
И вот здесь возникает ключевой момент. Мы специально выбрали g(x) как ненулевой многочлен минимальной степени среди всех элементов I. Но если остаток r(x) ненулевой, то он тоже находится в I и имеет ещё меньшую степень:
deg r < deg g
Это противоречит нашему выбору g(x)!
Поэтому остаётся только один вариант:
r(x) = 0
Значит, деление прошло без остатка:
f(x) = g(x)q(x)
Иными словами, любой многочлен f(x) из идеала делится на g(x). Следовательно, все элементы I являются кратными g(x):
I ⊆ <g(x)>
С другой стороны, поскольку g(x) ∈ I, все его кратные тоже принадлежат I:
<g(x)> ⊆ I
Поэтому:
I = <g(x)>
Таким образом, любой ненулевой идеал в F[x] является главным. Нулевой идеал тоже главный:
{0} = <0>
А поскольку F[x] является областью целостности, получаем:
F[x] is a PID
Конкретный пример
Рассмотрим кольцо Q[x] — многочлены с рациональными коэффициентами. Пусть идеал I порождён двумя многочленами:
f(x) = x² - 1
g(x) = x² - x
То есть:
I = <x² - 1, x² - x>
Это означает, что I содержит все выражения вида:
a(x)(x² - 1) + b(x)(x² - x)
где a(x) и b(x) — любые многочлены из Q[x]. Но попробуем найти один многочлен, которого достаточно для порождения всего идеала. Вычтем второй порождающий многочлен из первого:
(x² - 1) - (x² - x) = x - 1
Поскольку идеал замкнут относительно вычитания, получаем:
x - 1 ∈ I
А значит, все кратные x - 1 тоже принадлежат I:
<x - 1> ⊆ I
Теперь заметим, что оба исходных многочлена делятся на x - 1:
x² - 1 = (x - 1)(x + 1)
x² - x = x(x - 1)
Следовательно, любая их комбинация:
a(x)(x² - 1) + b(x)(x² - x)
тоже делится на x - 1. Поэтому:
I ⊆ <x - 1>
Получаем:
I = <x - 1>
Мы начали с идеала, порождённого двумя многочленами, а выяснили, что достаточно одного. Именно такое свойство гарантирует теорема о PID для любого идеала в F[x].
Итог
В PID каждый идеал можно описать с помощью одного порождающего элемента. Для Z это связано с делимостью целых чисел и наибольшим общим делителем. Для F[x] — с делением многочленов с остатком: ненулевой многочлен минимальной степени в идеале обязательно делит все остальные элементы этого идеала.
Поэтому:
Z is a PID
F[x] is a PID, если F — поле
Но это не означает, что любое кольцо многочленов является PID. Например, Z[x] не является PID.
Как найти порождающий многочлен идеала
Мы доказали, что F[x] является PID, если F — поле. Значит, любой идеал в F[x] можно породить одним многочленом. Но как найти этот многочлен?
Для этого существует простой критерий:
Если
I— ненулевой идеал вF[x], то любой ненулевой многочлен минимальной степени вIпорождает весь идеал.
То есть если мы нашли такой g(x) ∈ I, что среди ненулевых элементов I нет многочленов меньшей степени, то:
I = <g(x)>
Почему? Мы уже показали, что любой многочлен из I должен делиться на g(x) без остатка. Иначе остаток тоже принадлежал бы I, но имел бы меньшую степень. Это противоречило бы выбору g(x).
Верно и обратное: если ненулевой g(x) порождает весь идеал, то он имеет минимальную степень среди ненулевых элементов I. Ведь все остальные элементы идеала — его кратные и не могут иметь меньшую степень.
Пример
Рассмотрим идеал в Q[x]:
I = <x² - 1, x² - x>
Вычтем один порождающий многочлен из другого:
(x² - 1) - (x² - x) = x - 1
Поскольку идеал замкнут относительно вычитания:
x - 1 ∈ I
Мы нашли многочлен степени 1. Может ли в I находиться ненулевой многочлен ещё меньшей степени, то есть константа? Нет. Оба исходных многочлена обращаются в ноль при x = 1. Следовательно, любая их комбинация тоже обращается в ноль при x = 1. Но ненулевая константа никогда не обращается в ноль.
Значит, x - 1 имеет минимальную степень среди всех ненулевых многочленов идеала.
По нашему критерию:
I = <x - 1>
Таким образом, чтобы найти один порождающий многочлен идеала в F[x], достаточно найти его ненулевой элемент минимальной степени.
Как получить комплексные числа из многочленов
Рассмотрим довольно неожиданное утверждение:
R[x] / <x² + 1> ≅ C
Оно означает, что фактор-кольцо многочленов с вещественными коэффициентами по идеалу <x² + 1> устроено точно так же, как поле комплексных чисел.
Но почему?
Что означает деление на идеал <x² + 1>
Начнём с кольца:
R[x]
Оно содержит все многочлены с вещественными коэффициентами. Например:
x² + 3x + 5
2x³ - x + 7
4x + 1
Теперь рассмотрим идеал:
I = <x² + 1>
Он состоит из всех многочленов, кратных x² + 1:
I = {(x² + 1)g(x) | g(x) ∈ R[x]}
Когда мы строим фактор-кольцо R[x]/I, мы считаем два многочлена эквивалентными, если их разность принадлежит I.
Например:
x² + 1
и:
0
принадлежат одному классу, поскольку их разность кратна x² + 1.
Значит, в фактор-кольце:
x² + 1 = 0
Здесь и далее под такими равенствами мы понимаем равенство классов в факто-ркольце, а не обычных многочленов в R[x].
Переносим единицу:
x² = -1
Вот главное изменение: в новом кольце квадрат x равен -1. В обычных вещественных числах такого элемента нет. Но в комплексных числах есть i, для которого:
i² = -1
Получается, что x в нашем факторкольце ведёт себя точно как мнимая единица i.
Что происходит с многочленами
Мы знаем, что в фактор-кольце:
x² = -1
Поэтому:
x³ = x·x² = -x
x⁴ = (x²)² = 1
И так далее.
Например, рассмотрим многочлен:
f(x) = x³ + 2x² + 3x + 4
Заменим степени x по нашим правилам:
f(x) = -x + 2·(-1) + 3x + 4
= 2 + 2x
То есть в фактор-кольце многочлены:
x³ + 2x² + 3x + 4
и:
2 + 2x
представляют один и тот же элемент.
Почему мы всегда можем так упрощать? Потому что любой многочлен можно разделить на x² + 1 с остатком:
f(x) = (x² + 1)q(x) + r(x)
Степень остатка должна быть меньше 2, поэтому:
r(x) = a + bx
где a, b ∈ R. А поскольку (x² + 1)q(x) принадлежит идеалу I, в фактор-кольце он равен нулю. Следовательно, каждый элемент фактор-кольца можно представить в виде:
a + bx
Но это практически запись комплексного числа! Ведь любое комплексное число имеет вид:
a + bi
Разница только в том, что вместо i мы используем x, для которого действует то же правило:
x² = -1
Проверим умножение
Чтобы убедиться, что сходство не ограничивается внешним видом, попробуем умножить два элемента фактор-кольца:
(1 + x)(2 + x)
Раскрываем скобки:
2 + 3x + x²
Но x² = -1, поэтому:
2 + 3x - 1 = 1 + 3x
А теперь выполним то же умножение с комплексными числами:
(1 + i)(2 + i)
= 2 + 3i + i²
= 1 + 3i
Результаты полностью соответствуют друг другу! Это подсказывает нам, что факторкольцо действительно изоморфно C. Осталось доказать это формально.
Строим гомоморфизм
Определим отображение:
φ: R[x] → C
по правилу:
φ(f(x)) = f(i)
То есть берём многочлен и подставляем вместо x число i.
Например:
φ(x² + 1) = i² + 1 = 0
А для нашего предыдущего многочлена:
φ(x³ + 2x² + 3x + 4)
= i³ + 2i² + 3i + 4
= -i - 2 + 3i + 4
= 2 + 2i
Это гомоморфизм колец, поскольку подстановка сохраняет сложение и умножение:
φ(f + g) = φ(f) + φ(g)
φ(fg) = φ(f)φ(g)
Теперь воспользуемся первой теоремой об изоморфизме. Для этого нужно найти ядро и образ нашего гомоморфизма.
Находим kernel
Вспомним: kernel — это все элементы, которые гомоморфизм отображает в ноль. В нашем случае:
Ker φ = {f(x) ∈ R[x] | f(i) = 0}
Мы уже знаем, что:
φ(x² + 1) = 0
Поэтому x² + 1 принадлежит ядру. Более того, все его кратные тоже принадлежат ядру. Но почему ядро состоит только из таких многочленов? Возьмём любой многочлен f(x) из ядра. Это означает:
f(i) = 0
Разделим его на x² + 1:
f(x) = (x² + 1)q(x) + ax + b
где a и b — вещественные числа.
Подставим x = i:
0 = (i² + 1)q(i) + ai + b
Поскольку i² + 1 = 0, получаем:
0 = ai + b
Но комплексное число b + ai равно нулю только тогда, когда обе его части равны нулю:
a = 0
b = 0
Следовательно, остаток от деления равен нулю. Значит, любой многочлен из ядра делится на x² + 1 без остатка. Поэтому:
Ker φ = <x² + 1>
Иными словами, ядро состоит ровно из многочленов, кратных x² + 1.
Находим image
Теперь выясним, какие комплексные числа можно получить с помощью φ. Любое комплексное число имеет вид:
a + bi
где a, b ∈ R. Но мы можем взять многочлен:
f(x) = a + bx
Тогда:
φ(f(x)) = a + bi
То есть любое комплексное число можно получить подстановкой x = i в некоторый вещественный многочлен. Следовательно, образ гомоморфизма — всё поле комплексных чисел:
Im φ = C
Применяем First Isomorphism Theorem
Теперь у нас есть всё необходимое. Первая теорема об изоморфизме колец утверждает:
R[x] / Ker φ ≅ Im φ
Мы установили, что:
Ker φ = <x² + 1>
и:
Im φ = C
Поэтому:
R[x] / <x² + 1> ≅ C
Что и требовалось доказать.
Почему это важно
Мы начали с обычного кольца вещественных многочленов R[x]. Затем построили факторкольцо по идеалу <x² + 1>. В этом новом кольце выполняется правило:
x² = -1
Оно позволило нам представить любой элемент в виде:
a + bx
где x ведёт себя как мнимая единица i. А с помощью гомоморфизма мы доказали, что полученная структура действительно изоморфна C.
Главная идея: фактор-кольцо позволяет построить новую алгебраическую структуру, в которой выполняется выбранное нами соотношение.
В дальнейшем мы будем использовать похожий подход для построения конечных полей:
F_p[x] / <f(x)>
где f(x) — неприводимый многочлен над F_p. Если его степень равна n, полученное поле содержит:
p^n
элементов.