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.
Пример division в Z5[x]
Рассмотрим polynomials в:
Z5[x]
Пусть:
f(x) = 3x^4 + x^3 + 2x^2 + 1
и:
g(x) = x^2 + 4x + 2
Мы хотим найти quotient и remainder:
f(x) = g(x)q(x) + r(x)
где:
deg r < deg g
Так как:
deg g = 2
остаток должен иметь degree меньше 2, то есть быть linear polynomial или constant:
r(x) = ax + b
После polynomial long division над Z5 получаем:
q(x) = 3x^2 + 4x
и:
r(x) = 2x + 1
То есть:
3x^4 + x^3 + 2x^2 + 1
=
(x^2 + 4x + 2)(3x^2 + 4x) + 2x + 1
Важно: все coefficients считаются modulo 5.
Например:
6 ≡ 1 (mod 5)
-1 ≡ 4 (mod 5)
10 ≡ 0 (mod 5)
Поэтому polynomial division выглядит как обычное деление polynomials, но все coefficient operations делаются в Z5.
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 root
Пусть F — field, a ∈ F, и:
f(x) ∈ F[x]
Говорят, что a — zero of multiplicity k, если:
(x - a)^k
divides f(x), но:
(x - a)^(k+1)
уже не divides f(x).
То есть multiplicity показывает, сколько раз factor:
x - a
сидит внутри polynomial.
Пример
Рассмотрим:
f(x) = (x - 2)^3(x + 1)
Тогда 2 — root of multiplicity 3, потому что factor:
x - 2
встречается три раза.
А -1 — root of multiplicity 1, потому что factor:
x + 1
встречается один раз.
Remainder theorem
Пусть F — field, a ∈ F, и:
f(x) ∈ F[x]
Если разделить f(x) на:
x - a
то remainder будет равен:
f(a)
То есть:
f(x) = (x - a)q(x) + f(a)
Это называется Remainder Theorem.
Почему remainder именно f(a)
По division algorithm:
f(x) = (x - a)q(x) + r(x)
Так как divisor:
x - a
имеет degree 1, remainder должен иметь degree меньше 1. Значит remainder — это constant:
r
Теперь подставим:
x = a
Получаем:
f(a) = (a - a)q(a) + r
Но:
a - a = 0
поэтому:
f(a) = r
Значит remainder равен:
f(a)
Factor theorem
Пусть F — field, a ∈ F, и:
f(x) ∈ F[x]
Тогда a является zero polynomial f(x) тогда и только тогда, когда:
x - a
is a factor of f(x).
То есть:
f(a) = 0
if and only if:
x - a | f(x)
Почему это следует из remainder theorem
По remainder theorem, при делении f(x) на:
x - a
remainder равен:
f(a)
Если:
f(a) = 0
то remainder равен 0. Значит деление прошло без остатка, и:
x - a
divides f(x). Обратно, если:
x - a | f(x)
то remainder равен 0, а значит:
f(a) = 0
Пример factor theorem
Рассмотрим:
f(x) = x^2 - 4x + 3
Проверим:
f(1) = 1 - 4 + 3 = 0
Значит по factor theorem:
x - 1
is a factor of f(x).
Действительно:
x^2 - 4x + 3 = (x - 1)(x - 3)
Также:
f(3) = 9 - 12 + 3 = 0
поэтому:
x - 3
тоже factor.
Polynomials over a field have at most n roots
Ещё одно важное следствие factor theorem:
polynomial degree
nover a field has at mostnroots, counting multiplicity.
То есть если:
deg f(x) = n
то у f(x) не может быть больше n roots в field F.
Например, polynomial degree 2 не может иметь 5 разных roots over a field.
Почему это верно
Если a — root polynomial f(x), то по factor theorem:
x - a
is a factor of f(x).
То есть:
f(x) = (x - a)q(x)
Каждый root даёт хотя бы один linear factor. Если roots несколько, polynomial должен содержать несколько such factors:
(x - a1)(x - a2)...(x - ak)
Но degree произведения этих factors равна k. Поэтому если polynomial имеет degree n, в него нельзя вместить больше чем n linear factors. Значит roots может быть не больше n.
Почему важно “over a field”
Это утверждение работает over fields. В rings with zero divisors всё может ломаться. Например, over Z12 polynomial:
x^2 - 4x + 3
degree 2, но solutions могут быть:
1, 3, 7, 9
То есть roots больше, чем degree. Причина та же: в Z12 есть zero divisors, поэтому привычная логика factor theorem и counting roots работает хуже.
Example: complex zeros of x^n - 1
Рассмотрим polynomial:
x^n - 1
over complex numbers. Мы хотим найти все complex roots:
x^n - 1 = 0
То есть:
x^n = 1
Такие числа называются:
nth roots of unity
Одно из них очевидно:
1
потому что:
1^n = 1
Но over complex numbers есть ещё roots.
Primitive nth root of unity
Определим:
ω = cos(360° / n) + i sin(360° / n)
Это complex number на unit circle.
По De Moivre’s theorem:
ω^n = 1
Кроме того, powers:
1, ω, ω^2, ..., ω^(n-1)
дают n разных roots polynomial:
x^n - 1
Так как degree polynomial равна n, других roots быть не может. Поэтому все complex roots of:
x^n - 1
это:
1, ω, ω^2, ..., ω^(n-1)
Элемент ω называется:
primitive nth root of unity
Principal Ideal Domain
Теперь вернёмся к ideals. Principal ideal / главный идеал — это ideal, generated by one element:
<a> = {ra | r ∈ R}
То есть ideal состоит из всех multiples одного элемента a.
Например, в Z:
<6> = 6Z
Definition: PID
Principal Ideal Domain / PID — это integral domain, в котором every ideal is principal.
То есть R является PID, если:
R— integral domain;- каждый ideal
Iимеет вид:
I = <a>
для некоторого:
a ∈ R
Иными словами:
в PID любой ideal можно породить одним элементом.
Example: Z is a PID
Integers:
Z
являются PID. Почему? Все ideals в Z имеют вид:
nZ
А:
nZ = <n>
То есть каждый ideal generated by one integer. Например:
12Z = <12>
Поэтому:
Z is a PID
F[x] is a PID
Теперь важный theorem:
если
F— field, тоF[x]является PID.
То есть в polynomial ring over a field every ideal is generated by one polynomial.
F[x] is a PID
Почему это правда
Пусть I — nonzero ideal в:
F[x]
Выберем в I nonzero polynomial минимальной degree:
g(x)
Мы хотим показать:
I = <g(x)>
То есть каждый polynomial из I должен быть multiple of g(x).
Возьмём любой:
f(x) ∈ I
Так как F — field, в F[x] работает division algorithm.
Значит можно разделить f(x) на g(x):
f(x) = g(x)q(x) + r(x)
где:
r(x) = 0
или:
deg r < deg g
Теперь:
r(x) = f(x) - g(x)q(x)
Так как f(x) ∈ I, g(x) ∈ I, and I is an ideal, получаем:
r(x) ∈ I
Но g(x) был выбран как nonzero polynomial минимальной degree в I. Поэтому в I не может быть nonzero polynomial меньшей degree.
Значит:
r(x) = 0
Следовательно:
f(x) = g(x)q(x)
То есть:
f(x) ∈ <g(x)>
А значит:
I = <g(x)>
Поэтому:
F[x] is a PID
Criterion for I = <g(x)>
Пусть:
F
— field, I — nonzero ideal in:
F[x]
и:
g(x) ∈ I
Тогда:
I = <g(x)>
if and only if g(x) is a nonzero polynomial of minimum degree in I. То есть generator ideal можно найти так:
взять ненулевой polynomial минимальной degree внутри ideal.
Это работает именно because F[x] is a PID.
Application: R[x] / <x^2 + 1> and complex numbers
Теперь можно аккуратно объяснить старый пример:
R[x] / <x^2 + 1>
Этот quotient ring isomorphic to complex numbers:
R[x] / <x^2 + 1> ≅ C
Идея простая. В quotient ring мы считаем:
x^2 + 1 = 0
то есть:
x^2 = -1
А в complex numbers есть элемент:
i
для которого:
i^2 = -1
Значит x в quotient ring ведёт себя как i.
Homomorphism R[x] -> C
Определим evaluation map:
φ : R[x] -> C
по правилу:
φ(f(x)) = f(i)
То есть мы берём real polynomial и подставляем:
x = i
Например:
φ(x^2 + 1) = i^2 + 1 = -1 + 1 = 0
Значит:
x^2 + 1 ∈ Ker φ
Kernel
Kernel consists of all real polynomials that become 0 after substituting i. То есть:
Ker φ = {f(x) ∈ R[x] | f(i) = 0}
Polynomial:
x^2 + 1
лежит в kernel. Более того:
Ker φ = <x^2 + 1>
Интуитивно: over R, polynomial x^2 + 1 is exactly the minimal polynomial relation that forces x to behave like i.
Image
Image of φ is all of C. Почему? Любое complex number имеет вид:
a + bi
где:
a, b ∈ R
Но это значение polynomial:
a + bx
при:
x = i
Действительно:
φ(a + bx) = a + bi
Значит:
φ(R[x]) = C
Apply First Isomorphism Theorem
По First Isomorphism Theorem for rings:
R[x] / Ker φ ≅ φ(R[x])
Подставляем:
Ker φ = <x^2 + 1>
и:
φ(R[x]) = C
Получаем:
R[x] / <x^2 + 1> ≅ C
Почему это важно
Это один из главных паттернов всей темы:
field/polynomial ring
↓
quotient by ideal
↓
new ring or field with desired relation
В данном случае мы стартовали с real polynomials:
R[x]
и добавили relation:
x^2 = -1
В результате получили complex numbers. Позже похожая идея будет использоваться для finite fields:
F_p[x] / <irreducible polynomial>
Так строятся fields with:
p^n
elements.