Научная статья на тему 'Факторизация полиномов многих переменных'

Факторизация полиномов многих переменных Текст научной статьи по специальности «Математика»

CC BY
900
82
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ФАКТОРИЗАЦИЯ ПОЛИНОМОВ / НОРМИРОВАНИЕ ПОЛИНОМОВ / ОСВОБОЖДЕНИЕ ОТ КВАДРАТОВ / КОМПЬЮТЕРНАЯ АЛГЕБРА / FACTORING POLYNOMIALS / POLYNOMIALS WITH MANY VARIABLES / COMPUTER ALGEBRA

Аннотация научной статьи по математике, автор научной работы — Ивашов Дмитрий Сергеевич

Приводятся и обсуждаются алгоритмы факторизации полиномов многих переменных.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FACTORING POLYNOMIALS WITH MANY VARIABLES

Polynomial factorization algorithms are discussed for the case of polynomials with many variables.

Текст научной работы на тему «Факторизация полиномов многих переменных»

УДК 519.688

ФАКТОРИЗАЦИЯ ПОЛИНОМОВ МНОГИХ ПЕРЕМЕННЫХ (с) Д. С. Ивашов

Ключевые слова: факторизация полиномов, полиномы многих переменных, компьютерная алгебра.

Ообсуждаются алгоритмы факторизации полиномов многих переменных.

1 Введение

Задача разложения полиномов на множители имеет долгую и выдающуюся историю. Одним из первых метод факторизации полиномов предложил Кронекер в 1882 г. С тех пор прошло более ста лет, и были получены современные, более быстрые алгоритмы разложения полиномов на множители. Д. Муссен, П. Ванг, JI. Ротшильд обобщили лемму Гензеля для получения алгоритма факторизации полиномов от нескольких переменных с целыми коэффициентами. Ван Хойя, основываясь на работах Калтофена и Шоупа предложил систему оценок, следуя которой выбирается определенная стратегия факторизации полиномов [1, 2]. В настоящее время появляются различные модификации известных алгоритмов, позволяющие ускорить процесс разложения на множители.

Настоящая работа продолжает исследования по факторизации полиномов многих переменных в среде РагСА. Здесь детализируется предварительный этап сведения задачи факторизации полиномов многих переменных к полиномам одной переменной [3]. Для факторизации полиномов одной переменной применяется алгоритм Берлекемпа в изложении Д. Кнута [4].

2 Выделение множителей, имеющих различные наборы переменных

Пусть F{x 1,...,жп) - полином от п переменных х\,...,хп- У такого полинома может быть не более 2П сомножителей, которые имеют различные наборы переменных. При этом сомножителей, имеющих р различных переменных из п, может быть не более binomial {п,р} . Процедура выделения этих сомножителей состоит в следующем.

Предварительно находится НОД всех числовых коэффициентов и каждый коэффициент делится на него. Затем отделяется сомножитель, не содержащий переменную х\. Для этого нужно записать полином F по степеням переменной х\ и найти у полиномиальных коэффициентов НОД. После деления исходного полинома на этот НОД получим два полиномиальных сомножителя исходного полинома, один из которых не содержит переменную

XI .

Будем продолжать ЭТОТ процесс ДЛЯ переменных X<i , Хз,...,Х3. Пусть уже выделены переменные, не содержащие все возможные наборы полиномов из а?2, ... , xs. В каждом из этих полиномов можно попробовать выделить сомножитель, не содержащий переменную £s+i. Для этого в каждом их этих полиномов найдем НОД полиномиальных коэффициентов при неизвестной ха+\ и разделим на него. Общее число полиномиальных сомножителей может при этом, в худшем случае, удвоится.

Таким образом, завершив этот процесс на последней переменной хп, получим, в худшем случае, 2П сомножителей.

Пример 1.

Разложим полином F(x, у, z) = xyz2 + 3yz2 + x2z2 + 3xz2 -I- 2xy2z + Qy2z + 3x2yz + +9xyz + x3z -f 3x2z + xy3 4- 3y3 + 2x2y2 + 6xy2 + x3y + 3x2y. Найдем НОД полиномиальных коэффициентов относительно переменной х. Он равен z + у. Поэтому F(x, г/, z) = (z +у) • (xyz + 2>yz + x2z + 3xz + xy2 4- 3y2 + 2x2y + 6xy + a;3 4- Зх2). Обозначим f\ = z + y, /2 = xyz + 3yz + x2z + 3xz + xy2 + 3y2 + 2x2y + 6xy + x3 + Зх2. Для каждого из полученных сомножителей ищем НОД полиномиальных коэффициентов относительно переменной у. Для /2 НОД будет равен х + 3, следовательно,

/2 = (х + 3) • (yz + xz + у2 + 2ху + х2). Обозначим /2) 1 = х + 3, /2,2 = yz + xz -I- у2 + 2xy + х2 . Для каждого из полученных сомножителей ищем НОД полиномиальных коэффициентов относительно переменной 2:. Для полинома /2,2 находим НОД коэффициентов х + у, следовательно, /2) 2 = (х + у) • (х + у + z). Обозначим /2)2, i = х + у, /2,2,2 = х + у + z. Следовательно, полином F(x, у, z) раскладывается на множители следующим образом: F(x, у, z) = /1 • /2,1 • /2,2,1 • /2,2,2 = {z + у) • (3 + х) • (ж + у) • (х + у + z).

3 Освобождение от квадратов

После отделения сомножителей с разными наборами коэффициентов можно в каждом из сомножителей освободиться от квадратов. То есть попытаться представить полином в виде произведения сомножителей, каждый из которых входит в произведение со степенью, которая отличается от степеней других сомножителей:

г

F(x 1, ..., Хп) — 11 /г(^1) •••) Xji) ,

г=1

где Si - различные натуральные числа, Si ф Sj, при г ф j . При этом если /* раскладывается дальше на сомножители, то каждый из них входит в /* в первой степени.

Выделение таких сомножителей можно производить последовательным дифференцированием и вычислением НОД полинома и его производной.

Пример 2. Разложим полином p(x,y,z) = (z3+5yz2+8у2z+4y3) на множители. Найдем p'z = 3z2 + 10yz + 8у2. Вычислим (p,p'z) = z + 2y. Следовательно, р = {z + 2у)2 ■ (z + у).

4 Проблема старшего коэффициента полинома многих переменных

Теперь наступает самая трудная часть процедуры факторизации. Если еще существует дальнейшее разложение на множители, то каждый из множителей будет иметь один и тот

же набор переменных и входить в произведение в первой степени. При этом если коэффициент при старшей переменной равен 1, то это облегчает дальнейшие поиски сомножителей. Перейти к такому случаю можно домножением полинома на степень старшего

коэффициента и заменой переменных.

к

Пусть F(x = Ylai’xh - полином п переменных хп, хп - старшая

г=0

переменная, а* = ai(xi, - коэффициенты при старшей переменной, которые пред-

ставляют собой полиномы от остальных переменных. Можно перейти к многочлену со старшим коэффициентом равным одному, если домножить полином на старший коэффициент а/с в степени к — 1. В результате замены переменной хп на у = хпак придем к полиному, у которого старшая переменная у имеет старший коэффициент равный 1.

Требует дополнительного исследования вопрос о том, в каких случаях такое действие является оправданным и "облегчает" задачу факторизации. Конкретные рекомендации по этому вопросу неизвестны.

5 Факторизация нормированного, свободного от квадратов полинома

Рассмотрим теперь полином от п переменных f{x 1,жп), у которого нет кратных сомножителей и который раскладывается на взаимно простые множители: f(xi,...,xn) = ПЛ(*ь- , хп). Сомножители /j(xi,хп) требуется найти. Будем полагать, что нам из-

з

вестен способ факторизации полиномов от одной переменной. Пусть У* (г = 1 ,...,п — 1) конечные подмножества Q, такие что | Y{ |= fc; + 1, где /с* = degXif(xi,...,xn). В каждом из этих множеств все элементы различные. Введем обозначение элементов У*: Yi = {*?,...,*{*} . Обозначим через <Ал,.(z„) = /(С>-iC-l1»®»») полином, который получается подстановкой вместо переменных Х{ чисел ^*(г = 1, 1; V{ £ [0,..., /с»]) - Раз-

ложим каждый из <Pvi,...,vn-i(xn) на множители: <Pvi,...,vn-i(xn) = n^>i,..,vn—i(^n) • Обозна-

з

n—1

ЧИМ Ptn^Vn-1 = П (* - с ). Отметим, ЧТО <Pj,vi,...,vn-i(Xn) ЯВЛЯеТСЯ образом fj(x\,...,Xn) г=1

при oтoбpaжeнииgiven and Q[x\,..., хп] —> Q[x\, ...,яп]/pvi,...,vn-iQ[xu -,^„1 • Перейдем к восстановлению искомых функции fj(x 1, ...,хп).

Первый шаг.

Отметим, что ^jiV1....Vn_i(C) = Vyi е [0,...,fci],...,vn € [0, Введем

обозначения ДЛЯ коэффициентов ПОЛИНОМОВ <Pj,vi,...,vn-2,g(Xn) • Пусть

кп

V?j,ui,-.Vn-2.s(a'n) = a3,vi,...,vn-2,g,gnXn > 9 ~ 0, ...,fcn_i.

дп=0

Восстановим полином степени A:n_i по его значениям: ^)Vll.„,wn_2lo,ffn’ •••> aj,vi,-..,vn-2je*-i4n в точках I ПО формуле Лагранжа:

0 (*„-! - CJ-O»-! - Cl)(*-1 - eD-^n-l - fc‘)

Jj,vi,...,v„-2,gn / ; aj,vi,...,vn-2,g,gn f,g ,q \ t.g ±д-\\(+д (t9 _

0 —0 (*n-l — Si-rn-lJlrn-l n —1/•"VCn —1 6n-l )

Сгруппируем коэффициенты при неизвестных:

кп — 1

fj,Vl,...,Vn-2,gn ~ "У ^ 0^j,Vl,...,Vn-2,gn,SXn-l' з=0

Составим полином от двух переменных:

— 1 кп

(Pj,Vl,...,Vn-2(Xn-l^Xn) — У ^ У ] а],у1......Уп-2,9П-1,ЯПХП-1 ХП >

9п — 1 —0 Эп= 0

который в точках равен значению полинома /Д^1, ,хп-1,хп):

^ь...,,п-2(с-11)с) = лда5.-.,с).

Шаг г.

Пусть уже получено (&1 -|- 1)...(А:Г_1 + 1) полиномов:

кг+1 кп

(Pj,Vl,...,Vr-l,g{xr+ll •••> хп) — У ^ ••• ^ ^ aj,Vl,...,vr-l,g,gr+l,.■■,gnXr+l хп

5г+1—0 дп=0

(д 0,/сг, VI £ [0,/ь^],иг—1 £ [0,—1 ])*

Будем восстанавливать полином степени кг по его значениям: , и <},м,...,о„ >

а?.п.~Г,'1 1,*г,9г+1,..,9„ вточках *?,•••>*£" ПО формуле Лагранжа:

= у- п_1_г (а?г - ^ )...(з:г - - ^+1)...(хг -

Ij,Vl,...,Vr-l,gr+l,^■■&n / „ ^>1)...,Уг-1,9,Зг+1,. .,5„ {^9 — 10) (^ — ^г_1)(^г — ^г+1) (^г — ^г)

Сгруппируем коэффициенты при неизвестных:

кг

*. — V п/п_г ГЕв

з=0

Составим полином от п — г + 1 переменной:

^г+1

(*^Г5 •••> ^п) = ^ ^ ; ••• ^ у а^,^1,.-м«г-1.Эг,9г+ь—^г+1 ■••ягп >

Зг=0<?г+1=0 3п=0

который в точках £”г,...,££* равен значению полинома ...,хп):

Шаг п - 1.

Пусть уже получено + 1 полиномов:

^,а(12, = 53-53 {я = о, ...а).

52=0 9п=0

Восстановим полином степени кг по его значениям: , •••, °^к^д2 дп вточках

2°, по формуле Лагранжа:

, =у'«п“2 (Д1 ~ ~ *1~1)(д:1 ~ *!+1)-(д1 - <?*)

*"* & *“*.............9п М - <?) -(*? - *Г‘)(«! - г?+1)-(<! - £) '

Сгруппируем коэффициенты при неизвестных:

1^1,92,—,9п ~ аМ2, -,9п,52'1*

5=0

Составим полином от п переменных:

51=0 52=0 5п=0

который в точках равен значению полинома :

Получим, что искомые множители /л-(ж1, ...,а;п) = ^ . Таким образом,

/(^1, •••> Я„) 11 Л(^1, •••> хп)’

ЛИТЕРАТУРА

1. Hoeij M.V. Factoring polynomials and the knapsack problem // Journal of Number Theory. 2002. Vol. 95. P. 167-189.

2. Shoup V. A new polynomial factorization algorithm and its implementation // Journal of Symbolic Computation. 1995. Vol. 20. P. 363-397.

3. Малаьионок Г.И., Ивашов Д. С. Об алгоритме факторизации полиномов многих переменных // Вестник Тамбовского университета. Сер. Естественные и технические науки. 2010. Том 15. Вып.1.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Кнут Д.Э. Искусство программирования. Том 2. М., 2004.

БЛАГОДАРНОСТИ: Работа выполнена при поддержке программы «Развитие потенциала высшей школы» (проект 2.1.1/10437).

Поступила в редакцию 12 ноября 2010 г.

UDK 519.688

FACTORING POLYNOMIALS WITH MANY VARIABLES © D. S. Ivashov

Key words: factoring polynomials, polynomials with many variables, computer algebra. Polynomial factorization algorithms are discussed for the case of polynomials with many variables.

i Надоели баннеры? Вы всегда можете отключить рекламу.