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(xi,...,xn) требуется найти. Пусть Уг (г = 1, ...,п — 1)
з
конечные подмножества 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
чим = п (хг - t?) ■ Отметим, что (®п) является образом fj(x 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 по формуле Лагранжа:
(i„_: - Ц-Ь-1 - Ci)(^-i ~ - fc‘)
(Cl - - CiXCi - Ci)-(C. - &‘) '
Сгруппируем коэффициенты при неизвестных:
кп—1
fj,vi,...,v„-2,gn ^ ] aj,vi,...,vn-2,gn,sxn-l-
s=О
Составим полином от двух переменных:
кп—1 кп
(fj,Vl,...,Vn-2^Xn-ltXn) — aj,V 1 Уп-2,Яп-1,ЯпХП-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)(t9 — t9+l) (t9 — tkr)
Сгруппируем коэффициенты при неизвестных:
кг
\ 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(xr, ■■■,хп) — "У ' У ] aj,vi,...,vr-i,gr,gr+i,.:,gnXr Хг+1 •••жп )
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 (жі — — t9 )(жі — tf+ )-(ii — V)
Я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).