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

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

CC BY
190
42
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ФАКТОРИЗАЦИЯ ПОЛИНОМОВ / ПОЛИНОМЫ МНОГИХ ПЕРЕМЕННЫХ / КОМПЬЮТЕРНАЯ АЛГЕБРА / FACTORIZATION OF POLYNOMIALS / COMPUTER ALGEBRA

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

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

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

An algorithm of factorization of polynomials of several variables

The algorithm of polynom factorization of various disposal variables is discussed. The algorithm is based on the algorithm of polynom factorization of one variable and on methods of homophoral images in polynoms' rings.

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

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.

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

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).

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