Многочлены, которые разложимы таким образом, называются составными многочленами ; те, которые не разложимы, называются неразложимыми многочленами или иногда простыми многочленами [1] (не путать с неприводимыми многочленами , которые не могут быть разложены на множители в произведениях многочленов ). Степень составного многочлена всегда является составным числом , произведением степеней составных многочленов.
В остальной части статьи обсуждаются только одномерные многочлены; существуют также алгоритмы для многомерных многочленов произвольной степени. [2]
Примеры
В простейшем случае один из многочленов является одночленом . Например,
Многочлен может иметь различные разложения на неразложимые многочлены, где где для некоторых . Ограничение в определении многочленами степени больше единицы исключает бесконечное множество разложений, возможных с линейными многочленами.
Джозеф Ритт доказал, что , и степени компонентов одинаковы с точностью до линейных преобразований, но, возможно, в разном порядке; это теорема Ритта о полиномиальном разложении . [1] [3] Например, .
Приложения
Полиномиальное разложение может обеспечить более эффективную оценку полинома. Например,
можно вычислить с помощью 3 умножений и 3 сложений, используя разложение, в то время как метод Горнера потребовал бы 7 умножений и 8 сложений.
корни этого неприводимого многочлена можно вычислить как [5]
Даже в случае полиномов четвертой степени , где есть явная формула для корней, решение с использованием разложения часто дает более простую форму. Например, разложение
дает корни [5]
Однако прямое применение формулы четвертой степени дает эквивалентные результаты, но в форме, которую трудно упростить и понять; один из четырех корней имеет вид:
Алгоритмы
Первый алгоритм полиномиального разложения был опубликован в 1985 году [6] , хотя он был открыт в 1976 году [7] и реализован в системе компьютерной алгебры Macsyma / Maxima . [8] Этот алгоритм занимает экспоненциальное время в худшем случае, но работает независимо от характеристик базового поля .
Алгоритм 1989 года работает за полиномиальное время, но с ограничениями на характеристику. [9]
Алгоритм 2014 года вычисляет разложение за полиномиальное время и без ограничений на характеристику. [10]
Примечания
^ ab JF Ritt , «Простые и составные многочлены», Труды Американского математического общества 23 :1:51–66 (январь, 1922) doi :10.2307/1988911 JSTOR 1988911
^ Жан-Шарль Фожер, Людовик Перре, «Эффективный алгоритм разложения многомерных полиномов и его применение в криптографии», Журнал символических вычислений , 44 :1676-1689 (2009), doi :10.1016/j.jsc.2008.02.005
^ Капи Корралес-Родриганьес, «Заметка о теореме Ритта о разложении многочленов», Журнал чистой и прикладной алгебры 68 :3:293–296 (6 декабря 1990 г.) doi :10.1016/0022-4049(90)90086-W
^ Приведенные ниже примеры были рассчитаны с использованием Maxima .
^ ab Где каждый ± берется независимо.
^ Дэвид Р. Бартон, Ричард Зиппель (1985). «Алгоритмы полиномиальной декомпозиции». Журнал символических вычислений . 1 (2): 159–168. doi :10.1016/S0747-7171(85)80012-2.
^ Ричард Зиппель, Функциональная декомпозиция, 1996.