Наибольший общий делитель полинома - Polynomial greatest common divisor
Эта статья нужны дополнительные цитаты для проверка.Сентябрь 2012 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В алгебре наибольший общий делитель (часто сокращенно GCD) двух многочлены - многочлен максимально возможной степени, т. е. фактор обоих двух исходных многочленов. Эта концепция аналогична наибольший общий делитель двух целых чисел.
В важном случае одномерный многочлены над поле полиномиальный НОД может быть вычислен, как и для целого НОД, с помощью Евклидов алгоритм с помощью длинное деление. Полиномиальный НОД определяется только вплоть до умножение на обратимую константу.
Сходство между целочисленным НОД и полиномиальным НОД позволяет распространить на одномерные многочлены все свойства, которые могут быть выведены из алгоритма Евклида и Евклидово деление. Более того, многочлен НОД обладает определенными свойствами, которые делают его фундаментальным понятием в различных областях алгебры. Обычно корни НОД двух многочленов являются общими корнями двух многочленов, и это дает информацию о корнях без их вычисления. Например, множественные корни полинома являются корнями НОД многочлена и его производной, а дальнейшие вычисления НОД позволяют вычислить бесквадратная факторизация полинома, который дает многочлены, корни которых являются корнями данного множественность исходного многочлена.
Наибольший общий делитель может быть определен и существует, в более общем смысле, для многомерные полиномы над полем или кольцом целых чисел, а также над уникальная область факторизации. Существуют алгоритмы для их вычисления, как только в кольце коэффициентов имеется алгоритм НОД. Эти алгоритмы выполняются рекурсия от числа переменных, чтобы свести задачу к варианту алгоритма Евклида. Они являются основным инструментом в компьютерная алгебра, потому что системы компьютерной алгебры используйте их систематически, чтобы упростить дроби. И наоборот, большая часть современной теории полиномиального НОД была разработана для удовлетворения потребности в эффективности систем компьютерной алгебры.
Общее определение
Позволять п и q быть полиномами с коэффициенты в область целостности Fобычно поле или целые числа. А наибольший общий делитель из п и q это многочлен d что разделяет п и q, и такой, что каждый общий делитель п и q также разделяет d. Каждая пара многочленов (не оба нулевые) имеет НОД тогда и только тогда, когда F это уникальная область факторизации.
Если F это поле и п и q оба не равны нулю, многочлен d является наибольшим общим делителем тогда и только тогда, когда он делит оба п и q, и он имеет наибольшую степень среди многочленов, обладающих этим свойством. Если п = q = 0, НОД равен 0. Однако некоторые авторы считают, что в данном случае он не определяется.
Наибольший общий делитель п и q обычно обозначается "gcd (п, q)".
Наибольший общий делитель не единственен: если d является НОД п и q, то многочлен ж является другим НОД тогда и только тогда, когда существует обратимый элемент ты из F такой, что
и
- .
Другими словами, НОД уникален с точностью до умножения на обратимую константу.
В случае целых чисел эта неопределенность была решена путем выбора в качестве НОД единственного положительного значения (есть еще одно, противоположное ему). Согласно этому соглашению, НОД двух целых чисел также является наибольшим (при обычном порядке) общим делителем. Однако, поскольку нет естественного общий заказ для многочленов над областью целостности здесь нельзя поступать так же. За одномерный полиномов над полем, можно дополнительно потребовать, чтобы НОД моник (то есть иметь 1 как его коэффициент наивысшей степени), но в более общих случаях нет общего соглашения. Следовательно, равенства вида d = gcd (п, q) или же gcd (п, q) = gcd (р, s) распространены злоупотребления обозначениями, которые следует читать "d является НОД п и q" и "п и q имеют тот же набор НОД, что и р и s". Особенно, gcd (п, q) = 1 означает, что обратимые константы являются единственными общими делителями. В этом случае по аналогии с целочисленным случаем говорят, что п и q находятся взаимно простые многочлены.
Характеристики
- Как указано выше, НОД двух многочленов существует, если коэффициенты принадлежат либо полю, кольцу целых чисел, либо, в более общем смысле, некоторому уникальная область факторизации.
- Если c любой общий делитель п и q, тогда c делит их НОД.
- для любого полинома р. Это свойство лежит в основе доказательства алгоритма Евклида.
- Для любого обратимого элемента k кольца коэффициентов, .
- Следовательно для любых скаляров такой, что обратимо.
- Если , тогда .
- Если , тогда .
- Для двух одномерных многочленов п и q над полем существуют многочлены а и а, так что и делит каждую такую линейную комбинацию п и q (Личность Безу ).
- Наибольший общий делитель трех или более многочленов может быть определен так же, как и для двух многочленов. Его можно вычислить рекурсивно из НОД двух многочленов с помощью тождеств:
- и
НОД вручную
Есть несколько способов найти наибольший общий делитель двух многочленов. Два из них:
- Факторизация многочленов, в котором можно найти факторы каждого выражения, а затем выбрать набор общих факторов, принадлежащих всем, из каждого набора факторов. Этот метод может быть полезен только в простых случаях, поскольку факторизация обычно сложнее, чем вычисление наибольшего общего делителя.
- В Евклидов алгоритм, который можно использовать для нахождения НОД двух многочленов так же, как и для двух чисел.
Факторинг
Чтобы найти НОД двух многочленов с помощью факторизации, просто полностью разложите два многочлена на множители. Затем возьмите произведение всех общих факторов. На этом этапе у нас не обязательно есть монический многочлен, поэтому, наконец, умножьте его на константу, чтобы сделать его моническим многочленом. Это будет НОД двух многочленов, поскольку он включает в себя все общие делители и является моническим.
Пример 1: найти НОД Икс2 + 7Икс + 6 и Икс2 − 5Икс − 6.
- Икс2 + 7Икс + 6 = (Икс + 1)(Икс + 6)
- Икс2 − 5Икс − 6 = (Икс + 1)(Икс − 6)
Таким образом, их НОД Икс + 1.
Евклидов алгоритм
Факторинг многочленов может быть трудным, особенно если многочлены имеют большую степень. В Евклидов алгоритм - это метод, который работает с любой парой многочленов. Он многократно использует Евклидово деление. При использовании этого алгоритма для двух чисел размер чисел уменьшается на каждом этапе. С полиномами степень полиномов уменьшается на каждом этапе. Последний ненулевой остаток, сделанный моник при необходимости - НОД двух многочленов.
Более конкретно, для нахождения НОД двух многочленов а(Икс) и б(Икс), можно предположить б ≠ 0 (в противном случае НОД будет а(Икс)), и
Евклидово деление дает два полинома q(Икс), то частное и р(Икс), то остаток такой, что
Полином грамм(Икс) разделяет оба а(Икс) и б(Икс) тогда и только тогда, когда он делит оба б(Икс) и р0(Икс). Таким образом
Параметр
можно повторить евклидово деление, чтобы получить новые многочлены q1(Икс), р1(Икс), а2(Икс), б2(Икс) и так далее. На каждом этапе у нас есть
поэтому последовательность в конечном итоге достигнет точки, в которой
и у одного есть НОД:
Пример: нахождение НОД Икс2 + 7Икс + 6 и Икс2 − 5Икс − 6:
- Икс2 + 7Икс + 6 = 1 ⋅ (Икс2 − 5Икс − 6) + (12 Икс + 12)
- Икс2 − 5Икс − 6 = (12 Икс + 12) (1/12 Икс − 1/2) + 0
С 12 Икс + 12 - последний ненулевой остаток, это НОД исходных многочленов, а моник НОД Икс + 1.
В этом примере нетрудно избежать введения знаменателей, вычитая 12 перед вторым шагом. Это всегда можно сделать, используя псевдоостаточные последовательности, но без осторожности это может привести к очень большим целым числам во время вычислений. Поэтому для компьютерных вычислений используются другие алгоритмы, которые описаны ниже.
Этот метод работает только в том случае, если можно проверить равенство нулю коэффициентов, возникающих при вычислении. Итак, на практике коэффициенты должны быть целые числа, рациональное число, элементы конечное поле, или должен принадлежать некоторым конечно порожденное расширение поля одного из предыдущих полей. Если коэффициенты равны числа с плавающей запятой которые представляют действительные числа которые известны только приблизительно, то необходимо знать степень НОД, чтобы иметь четко определенный результат вычислений (то есть численно стабильный результат; в этом случае могут использоваться другие методы, обычно основанные на разложение по сингулярным числам.
Одномерные многочлены с коэффициентами в поле
Случай одномерных многочленов над полем особенно важен по нескольким причинам. Во-первых, это самый элементарный случай, поэтому он появляется на большинстве первых курсов алгебры. Во-вторых, он очень похож на случай с целыми числами, и эта аналогия является источником понятия Евклидова область. Третья причина заключается в том, что теория и алгоритмы многомерный случае и для коэффициентов в уникальная область факторизации сильно основаны на этом конкретном случае. И последнее, но не менее важное: полиномиальные алгоритмы НОД и производные алгоритмы позволяют получать полезную информацию о корнях полинома, не вычисляя их.
Евклидово деление
Евклидово деление многочленов, которое используется в Алгоритм Евклида для вычисления GCD очень похож на Евклидово деление целых чисел. Его существование основано на следующей теореме: для двух одномерных многочленов а и б ≠ 0, определенное над полем, существует два многочлена q (в частное) и р (в остаток) которые удовлетворяют
и
где "deg (...)" обозначает степень, а степень нулевого многочлена определяется как отрицательная. Более того, q и р однозначно определяются этими отношениями.
Отличие от евклидова деления целых чисел состоит в том, что для целых чисел степень заменяется абсолютным значением, а для того, чтобы иметь уникальность, нужно предположить, что р неотрицательно. Кольца, для которых существует такая теорема, называются Евклидовы области.
Как и для целых чисел, евклидово деление многочленов может быть вычислено с помощью длинное деление алгоритм. Этот алгоритм обычно представлен для вычислений на бумаге и карандаше, но он хорошо работает на компьютерах, когда формализуется следующим образом (обратите внимание, что имена переменных точно соответствуют областям листа бумаги при вычислении длинных отрезков бумаги карандашом и бумагой). разделение). В следующем вычислении "deg" обозначает степень его аргумента (по соглашению град (0) <0), а lc обозначает старший коэффициент, коэффициент наивысшей степени переменной.
Евклидово делениеВход: а и б ≠ 0 два многочлена от переменной Икс;Выход: q, частное и р, остаток;Начинать q := 0 р := а d : = град (б) c : = lc (б) пока град (р) ≥ d делать s := lc (р)/c Иксград (р)−d q := q + s р := р − сб конец делать возвращаться (q, р)конец
Доказательство правильности этого алгоритма основывается на том факте, что в течение всего цикла while мы имеем а = бк + р и град (р) - неотрицательное целое число, которое уменьшается на каждой итерации. Таким образом, доказательство справедливости этого алгоритма также доказывает справедливость евклидова деления.
Алгоритм Евклида
Что касается целых чисел, евклидово деление позволяет нам определить Алгоритм Евклида для расчета НОД.
Начиная с двух многочленов а и б, Алгоритм Евклида состоит в рекурсивной замене пары (а, б) к (б, rem (а, б)) (куда "rem (а, б)"обозначает остаток от евклидова деления, вычисленного по алгоритму предыдущего раздела), пока б = 0. НОД - это последний ненулевой остаток.
Алгоритм Евклида можно формализовать в стиле рекурсивного программирования как:
В императивном стиле программирования тот же алгоритм становится, давая имя каждому промежуточному остатку:
за (; ; ) делать конец делатьвозвращаться
Последовательность степеней ря строго убывает. Таким образом, самое большее после того, как град (б) шагов, получается нулевой остаток, скажем рk. В качестве (а, б) и (б, rem (а,б)) имеют одинаковые делители, набор общих делителей не изменяется алгоритмом Евклида и, следовательно, все пары (ря, ря+1) имеют одинаковый набор общих делителей. Общие делители а и б таким образом, являются общими делителями рk−1 и 0. Таким образом рk−1 является НОД а и бЭто не только доказывает, что алгоритм Евклида вычисляет НОД, но также доказывает, что НОД существуют.
Идентичность Безу и расширенный алгоритм НОД
Личность Безу является теоремой, связанной с НОД, первоначально доказанной для целых чисел, которая верна для любого главная идеальная область. В случае одномерных многочленов над полем это можно сформулировать следующим образом.
Если грамм является наибольшим общим делителем двух многочленов а и б (не оба равны нулю), то есть два многочлена ты и v такой, что
- (Личность Безу)
и либо ты = 1, v = 0, или же ты = 0, v = 1, или же
Интерес этого результата в случае многочленов заключается в том, что существует эффективный алгоритм для вычисления многочленов ты и v, Этот алгоритм отличается от алгоритма Евклида тем, что на каждой итерации цикла выполняется еще несколько вычислений. Поэтому он называется расширенный алгоритм GCD. Другое отличие алгоритма Евклида состоит в том, что он также использует частное, обозначаемое «кво», евклидова деления, а не только остаток. Этот алгоритм работает следующим образом.
Расширенный НОД алгоритмВход: а, б, одномерные многочленыВыход: грамм, НОД а и б ты, v, как в заявлении выше а1, б1, так что Начинать за (я = 1; ря ≠ 0; я = я+1) делать конец делать конец
Доказательство того, что алгоритм удовлетворяет своей выходной спецификации, основывается на том факте, что для каждого я у нас есть
последнее равенство, подразумевающее
Утверждение о степенях следует из того, что на каждой итерации степени sя и тя не больше, чем степень ря уменьшается.
Интересной особенностью этого алгоритма является то, что, когда необходимы коэффициенты тождества Безу, можно бесплатно получить частное входных многочленов по их НОД.
Арифметика алгебраических расширений
Важным применением расширенного алгоритма GCD является то, что он позволяет вычислять деление в расширения алгебраических полей.
Позволять L алгебраическое расширение поля K, порожденная элементом, минимальный многочлен которого ж имеет степень п. Элементы L обычно представлены одномерными многочленами над K степени меньше чем п.
Добавление в L это просто сложение многочленов:
Умножение в L - это умножение многочленов с последующим делением на ж:
Обратный ненулевой элемент а из L это коэффициент ты в личности Безу au + fv = 1, который может быть вычислен расширенным алгоритмом НОД. (НОД равен 1, поскольку минимальный многочлен ж неприводимо). Неравенство степеней в спецификации расширенного алгоритма НОД показывает, что дальнейшее деление на ж не требуется для получения deg (ты)
Субрезультанты
В случае одномерных многочленов существует сильная связь между наибольшими общими делителями и результирующие. Точнее, результат двух многочленов п, Q является полиномиальной функцией коэффициентов при п и Q который имеет нулевое значение тогда и только тогда, когда НОД п и Q не является постоянным.
Теория подрезультантов является обобщением этого свойства, которое позволяет в общем охарактеризовать НОД двух многочленов, и результирующий результат является 0-м подрезультатным многочленом.[1]
В я-го подрезультант полином Sя(п ,Q) двух многочленов п и Q является многочленом степени не выше я коэффициенты которого являются полиномиальными функциями от коэффициентов п и Q, а я-го главный промежуточный коэффициент sя(п ,Q) - коэффициент степени я из Sя(п, Q). Они обладают тем свойством, что НОД п и Q имеет степень d если и только если
- .
В этом случае, Sd(п ,Q) является НОД п и Q и
Каждый коэффициент подрезультатных многочленов определяется как определитель подматрицы матрицы Матрица Сильвестра из п и Q. Это означает, что субрезультаты хорошо «специализируются». Более точно, подрезультаты определены для многочленов над любым коммутативным кольцом р, и обладают следующим свойством.
Позволять φ - кольцевой гомоморфизм р в другое коммутативное кольцо S. Он продолжается до другого гомоморфизма, также обозначаемого φ между кольцами многочленов над р и S. Тогда, если п и Q - одномерные многочлены с коэффициентами в р такой, что
и
тогда подрезультатные полиномы и главные подрезультантные коэффициенты φ(п) и φ(Q) являются изображением φ из тех из п и Q.
Подрезультаты обладают двумя важными свойствами, которые делают их фундаментальными для вычисления на компьютерах НОД двух многочленов с целыми коэффициентами. Во-первых, их определение через определители позволяет ограничивать через Неравенство Адамара, размер коэффициентов НОД. Во-вторых, эта граница и свойство хорошей специализации позволяют вычислить НОД двух полиномов с целыми коэффициентами через модульное вычисление и Китайская теорема об остатках (видеть ниже ).
Техническое определение
Позволять
- два одномерных многочлена с коэффициентами в поле K. Обозначим через то K векторное пространство размерности я многочлены степени меньше, чем я. Для неотрицательного целого числа я такой, что я ≤ м и я ≤ п, позволять
- линейное отображение такое, что
В результирующий из п и Q является определителем Матрица Сильвестра, которая представляет собой (квадратную) матрицу на основании полномочий Икс. Точно так же я-подрезультатный полином определяется через определители подматриц матрицы
Опишем эти матрицы более точно;
Позволять пя = 0 для я <0 или я > м, и qя = 0 для я <0 или я > п. В Матрица Сильвестра это (м + п) × (м + п) -матрица такая, что коэффициент при я-й ряд и j-й столбец пм+j−я за j ≤ п и qj−я за j > п:[2]