Об алгоритме факторизации полиномов многих переменных

Malaschonok G.I., Smirnov R.A. About composition of functions and a machine forms. The form of the function compositions for computer algebra system are discussed. The problem of calculation of limits and derivations of a composition of functions is considered.

Key words: canonical form, function compositions, machine forms of functions.

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

УДК 004.421

ОБ АЛГОРИТМЕ ФАКТОРИЗАЦИИ ПОЛИНОМОВ МНОГИХ

ПЕРЕМЕННЫХ1

© Г. И. Малашонок, Д. С. Ивашов

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

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

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

Для факторизации полиномов одной переменной известно много замечательных алгоритмов. С обзором работ по факторизации можно познакомиться по учебнику Е.В. Панкратьева [1]. Будем полагать, что имеется некоторый алгоритм разложения на множители полиномов одной переменной. Требуется построить алгоритм факторизации для полиномов многих переменных. Рассмотрим сначала случай двух переменных.

Пусть /'’(ж, у) раскладывается на взаимнопростые множители /г(ж, у) : Р(х, у) =

иМх,у)щ, по < п\ < ... < п8. Тогда это разложение можно получить вычисляя НОД

г=0

Р(х, у) и F/(ж, у) необходимое количество раз.

Пусть /(ж, у) — полином от двух переменных, у которого нет кратных сомножителей

и который раскладывается на взаимнопростые множители: /(ж, у) = П/?(ж>?/)- Сомно-

з

жители /Дж, у) требуется найти. Обозначим Бх = с1едх/(х,у). Возьмём множество разных точек У С <0>, такое что |У| = 5Х + 1 = к. Обозначим (рг(у) = /(ж», у) е У.

Работа выполнена при поддержке программы «Развитие потенциала высшей школы» (проект 2.1.1/1853).

Разложим <Pi(y) на множители: ср{(у) = П <pSi(y). Воспользуемся китайской теоремой

об остатках для полиномов. Тогда полином fj(x,y) можно восстановить по его к образам: <Pji(y), поднимая каждый коэффициент при степени у в полином степени

к — 1 от х по его к числовым значениям. Таким образом мы восстановим все множители fj{x,y) полинома f(x,y).

Рассмотрим f(pci,...,xn) — полином от п переменных, у которого нет кратных сомножителей и который раскладывается на взаимнопростые множители: f(xi,...,xn) =

Y[fj{xi,...,xn). Сомножители fj

з

конечные подмножества Q, такие что |У*| = к:г + 1, где кг = degxJ{xi,...,xn). В каждом из этих множеств все элементы различные. Введём обозначение элементов У: Yi = {t, Обозначим (pVl,...,vn-1{xn) = fif\, ,хп) полином, который получа-

ется подстановкой вместо переменных Xi чисел tf (г = 1,..., п — 1; G [0,..., к{]). Разложим каждый из <pVl,...,Vn_L(xn) на множители: 'рщ,...,и„^1(хп) = П^>1................vn-Axn)  Обозна-

з

71 — 1

чим = п

i=1

при отображении Q[xi,...,a:n] —> Q[i,..., a;n]/Pv1)...,w„_1Q[i, хп]  Перейдём к восстановлению искомых функции fj(x 1, ..., хп).

Шаг 1.

Отметим, что С) Vui е [0, к\],..., un G [0,..., кп]. Введём

обозначения для коэффициентов полиномов ^j.ui,...,vn-2,g(хп)  Пусть

кп

{Pj,v1,...,vn-2,g{xn) = ^2 °\?>i vn-2,g,gnxf,Г> S' = 0) кп-1-

9п —0

Восстановим полином степени A;n_i по его значениям: а? „ оП„ ,..., а!? „ о t

2jU,t/n ' 7 J,Vii...,Vn — 2,Kn — l>yn

в точках £^_1; ...,tnnSi по формуле Лагранжа:

(Cl - - CiXCi - Ci)-(C. - &‘) '

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

кп—1

fj,vi,...,v„-2,gn ^ ] aj,vi,...,vn-2,gn,sxn-l-

s=О

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

кп—1 кп

5n—1=0 pn=0

который в точках C-Y’C равен значению полинома •••, С-ji жп-1> ^п):

^......,,„-2(С-11,С) = Л(С5-,С)-

Шаг г.

/,

кп— 1

= Е“

9=0

l3,vi}...,vn-2,g,gn

Пусть уже получено (ki + l)...(fcr-i + 1) полиномов:

«г+1

(Pj,vi,-,vr-i,g(.xr+U—>xn) - " alvL-lvr-ug,gr+u-.-,gnXrr+l >

£r+i=0 5’n=0

3 = 0,..., £;r; Vi Є [0,..., hi],..., ur_! Є [0,Av-i]-Будем восстанаї

n-l-r

j>i>—>«r-i ikr,gr+i ,—,gn

Будем восстанавливать полином степени /сг по его значениям: а?,,1 г„ п„ „ ..............о„ в точках по формуле Лагранжа:

, „_і_г (ay - )...(зу - - ^+1)...(жг - gQ

Jj,vi,...,vr-i,gr+i,-~,gn / ; j,vi,...,vr-i,g,gr+i,—,gn ^д _ £0) ^9 _ t9 l)

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

кг

\ yi,—ф S

j,vi,...,vr-i,gr+1,...,g„ — 2^/aj<v l,—,vr-l,gr+l,—,gn,sXr-s=О

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

кг кг-f-1 кп

<Pj,vi,...,vr-i

pr=0 <?r-f 1=0 9п —0

который в точках tvrr, равен значению полинома fj(tt”rSi,xr,..., хп):

п,,„. О-

Шаг п — 1.

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

&2 кп

Vj,g{x2i ,хп) ~ ajISI92, -,9nX2 •”Жп‘> 3 = 0j •••> &1-

92=0 9п=0

Восстановим полином степени по его значениям: а?о?д2,...,дп . а]м,д2,...,дп вточках

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

_ „_2

Я92,..,9п ~ 2^аі,д,д2,...,9n ^ ^ де _ ^-і)де _ ^+1)...(^ - **) '

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

fcl

/j>92,—>9n — ^ ^ai,Q2....gn.a3'!'

s=0

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

91=0 92 =0 9п=0

который в точках i"1,..., V£l равен значению полинома

w(*r,-,C) =

Получен искомый полином fj{xi,...,xn). Вычисляя последовательно все полиномы /j(xi,ж„), г = 0,1,s, получим искомое разложение: f{xь хп) = П fj(x 1,..., ж„).

j

ЛИТЕРАТУРА

1. Панкратьев Е.Г. Элементы компьютерной алгебры. Учебное пособие. М. Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007.

Malaschonok G.I., Ivashov D.S. An algorithm of factorization of polynomials of several variables. Key words: factorization of polynomials, computer algebra.

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

УДК 004.421

О ПАРАЛЛЕЛЬНОМ ВЫЧИСЛЕНИИ ДИСКРЕТНОГО ПРЕОБРАЗОВАНИЯ ФУРЬЕ И ПРОВЕДЁННЫХ ЭКСПЕРИМЕНТАХ1

© А. О. Лапаев

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

Предлагается алгоритм параллельного вычисления многомерного дискретного преобразования Фурье полинома нескольких переменных в простом поле. Приводятся результаты экспериментов на кластере МСЦ РАН.

1 Введение

Пусть / £ Ър[х 1,Х2,    ,ха\, р — простое число. Пусть наибольшая степень переменной хг в полиноме / равна щ — 1, щ = 2м*. Обозначим п = П\П2    щ. Тогда полином / можно записать в виде:

711 —1П2 —1 п<* — 1

/=££” Ё /М2...г„ж11£'22... а#. г1=0 гг—0 г^=0

1Работа выполнена при поддержке программы «Развитие потенциала высшей школы» (проект

2.1.1/1853).