порядка матрицы N = 1с^2и, по вертикальной оси -плотность.
Отметим, что алгоритм Винограда [3], в котором столько же умножений, но меньше сложений проигрывает алгоритму Штрассена для разреженных матриц. Каждая рекурсия в этом алгоритме требует суммирования четырех подматриц, а не двух, как в алгоритме Штрассена, поэтому плотность операндов растет быстрее.
ЛИТЕРАТУРА
1. Strassen V. Gaussian Elimination is not optimal // Numerische Mathematik. 1969. V. 13. P. 354-356.
2. Карацуба A. II ДАН СССР. 1962. Т. 145. С. 293-294.
3. Кнут Д.Э. Искусство программирования. Получисленные алгоритмы. М.: Издат. дом «Вильямс», 2001. Т. 2. С. 553.
БЛАГОДАРНОСТИ: Работа частично финансировалась грантами Министерства образования РФ Е02-2.0-98 и «Научный потенциал» 23-03-24.
ОБ ОЦЕНКЕ ДЕТЕРМИНАНТА ПОЛИНОМИАЛЬНОЙ МАТРИЦЫ © Г.И. Малашонок, П.А. Азарова
Полиномиальные матрицы часто встречаются в механике, электротехнике и других приложениях. Для вычисления функций полиномиальных матриц применяются быстрые алгоритмы умножения. Однако прямые методы вычисления функций полиномиальных матриц существенно проигрывают модулярным и р-адическим методам для реальных задач. Одной из важных задач, которая должна быть решена для применения модулярных методов - это оценка детерминанта полиномиальной матрицы. Эта величина указывает границу модулярного подъема.
Пусть А = (a,j) - матрица порядка п, с коэффициентами а,у е Z [х], max deg = к и модуль максимального коэффициента полиномов а,у не превосходит а (V0 < ij < п). Тогда det(,4) - это полином степени не выше пк с целыми коэффициентами. Задача стоит в получении верхней оценки для коэффициентов этого полинома.
Для оценки полинома det А воспользуемся неравенством Адамара:
(del А)2 <ПМ" Uo" а2. (1)
Вспомогательной задачей является задача оценки коэффициентов bj полинома
(£;=оР *У = 2/=oPS bj х‘.
Из равенства х' = (хР+х - 1)/(х - 1), возведением в степень s, получим
(W ь, х' )(£и0s cj (-1Г х‘) = 5W Cj (-1Г xi(p+l).
Приравняем коэффициенты при одинаковых степенях неизвестного и получим систему из s(p + 1) + 1 линейных уравнений с ps + 1 неизвестным bj (i = 0, ps)
bo=l
b0Cs\-\)1 + b{Cs\-l)° = 0
W(-1 rcrb^gij^s.
£,W(-1 rcrb^giJ>s.
bps=\
Здесь gi = С/(-1/ приу = £(р + 1), 0 < & < 5, и #, = 0 для всех остальных у. При этом полагаем, что С/ = 0 при V < 0. Поэтому в каждом уравнении не более чем 5 + 1 коэффициент отличен от нуля, и матрица коэффициентов имеет нижний треугольный вид с единичной главной диагональю. В силу симметрии Ьк = Ьрх_к Поэтому достаточно найти первые г = \psl2 + 1] неизвестных, то есть ограничиться системой из первых г уравнений.
Для решения такой системы требуется вычислять определители dk порядка к
dk = det (с//,), dij = 0 при у > г + 1, dj = 1 при у = г + 1,
Лу = (-1/-'+1 (У~‘+1$ при у < г. Например,
|с, 1 0 0|
^ = I с2 с, 1 0 |, где с, = (-1)' С,.
| С3 С2 С| 1 |
I С4СЗС2С1 I
Получим d„ = С1«з?„_1 - с2^„-2 +■• (-1)'сД_, + .. + + (-1 )"с„, разложением по первому столбцу.
Следовательно, d\ = сь ^ = С\ ~ с2, = с\ ~ 2с| с2 +
+ с3 и т. д.
Прямые вычисления дают:
dl=-s,d2 = (s2+s)/2\, dг = -(s3 + 3/+2!.?)/3!,
<£, = (/ + б/+ 11/ + 3!/)/4!,
di = —(55 + 10/ + 35/ + 50/ + 4!*)/5!,
d6 = (56 + 15/ + 85/ + 225/ + 274/ + 5!.г)/6!,
d^ = -(х7 + 21/ + 175/ + 735/ + 1624/ + 1764/ +
+ 6!$)/7!.
Так как диагональные элементы в матрице коэффициентов единичные, то решениями Ь, системы будут определители d’i, которые получаются дополнением определителя dl сверху единичной строкой (первый элемент - единица, остальные - нули) и справа -столбцом g’i, который образован первыми г элементами столбца g = (§,)■
Отсюда следует, что Ь0 = 1; 6, = (-1)' d, для 1 </</?,
Ъ, = (-1)'' dl + 1*=0'" (-1)'+^+,) С/ dl-k(p+l) для р < I < < |_у«/2_|, т = УИ(р + 1)].
Наибольшее абсолютное значение имеет средний коэффициент Ьг,
Г = I рви\, К = (-1)г сіг + 2*.от (-1 Г^+1) С/ ^+1)>
Ш = [рт/2(р + 1)].
Верхнюю оценку для Ьг дает выражение
Ьг<(р+\У. (2)
Действительно, при каждом умножении на многочлен £,=(/ х' суммируется не более, чем р + 1 моном, поэтому коэффициенты вырастают не более, чем в р + 1 раз.
Найденные выше выражения для сі, подсказывают, что более тонкая оценка для Ьг должна иметь вид ~ 8 ,
но чтобы ее получить, нужно иметь более точную оценку для определителей с/,- как функций 5.
Оценим сомножитель £, 0" а/ в выражении (1). Это полином степени не выше 2к, у которого коэффициенты не превосходят по модулю п(к + 1)а2.
Отсюда, учитывая (2), получаем оценку для максимального по модулю коэффициента определителя
(п(к+ \)(2к + 1)а2)я/2.
БЛАГОДАРНОСТИ: Работа частично финансировалась грантами Министерства образования РФ № Е02-2.0-98 и «Научный потенциал» 23-03-24.
СРАВНЕНИЕ БИНАРНОГО АЛГОРИТМА И АЛГОРИТМА ЕВКЛИДА ДЛЯ ПОЛИНОМОВ
© Э.Н. Деребизов
Вычисление наибольшего общего делителя чисел и многочленов - одна из очень распространенных вычислительных подзадач, входящая во многие вычислительные алгоритмы. Алгоритм Евклида наравне с бинарным алгоритмом Джозефа Стейна [1] применяются сегодня во многих вычислительных системах. Заметим, что описание бинарного алгоритма было известно еще в Древнем Китае в I веке н. э. (см. [2,
с. 384]). Подробное описание алгоритмов и их теоретических оценок сложности, занимающее почти пятьдесят страниц, можно найти у Д. Кнута [2]. Однако сегодняшнее состояние теории этого вопроса не позволяет однозначно выбирать алгоритм, наиболее эффективный для конкретной задачи. Поэтому применяются экспериментальные методы.
СО 1Л Ь- 05
Для экспериментального сравнения бинарного алгоритма и алгоритма Евклида для полиномов над различными областями были составлены две программы, которые при вычислении наибольших общих делителей подсчитывали и общее число мультипликативных операций. На этой основе была проведена серия экспериментов для многочленов 100-той степени с различной плотностью.
На приведенных графиках (рис. 1-4) показано число мультипликативных операций в зависимости от плотности полинома.
1200000
Рис. 1. Полиномы над кольцом целых чисел. ЄВ = 124 138, рис. 2. Полиномы над полем гЮ1. вВ = 8532756, ОЕ = СЕ = 77 679, К = 1,598 = 9145617, К = 0,933