ВЫЧИСЛИТЕЛЬНЫЕ ЭКСПЕРИМЕНТЫ С АЛГОРИТМАМИ ВЫЧИСЛЕНИЯ ХАРАКТЕРИСТИЧЕСКИХ ПОЛИНОМОВ МАТРИЦ © О.Н. Переелавцева
Percslavtseva O.N. Calculation experiments at calculation algorithms of characteristics of matrixes polynomials.
Работа посвяшена вычислению характеристического полинома для матриц с рациональными коэффициентами.
Выбор алгоритмов определялся следующим. Теоретический анализ и сравнение алгоритмов были сделаны ранее в работах [2] и [3]. Гам был рассмотрен алгоритм Т.Р.Ссйфуллина [4], алгоритм Фаддеева-Лсвсрьс |5| и алгоритм Чистова |6. 7].
В предположении, что матрицы имеют порядок п, а их элементы являются ¿-битными числами, были получены следующие верхние оценки числа бит-операций умножения. Для алгоритма Сейфуллина оценка составляет (А/10)(А + ф,,)/?' + 0{п4) бит-онераций, для алгоритма Фаддеева - {к'2){к н ф„)и5 + 0(п4), для метода Чистова -(¿■-■96)(19 к + 3(р„)и5 4 Й"4)- где ф„ = [" 1о§2 п\.
Сравнивал коэффициенты при кгп~, можно сделать предположение, что при вычислении характер исгиче-ского полинома алгоритм Сейфуллина быстрее алгоритма Чистова в 2 раза и быстрее алгоритма Фаддеева-Леверье в 5 раз. Следовательно, среди указанных прямых методов вычисления характеристического полинома для матриц с рациональными коэффициентами лучшим является алгоритм Сейфулина.
Алгоритм Т.Р. Сейфуллина требует выполнения п4/4 -- операций над элементами матрицы, однако
известен алгоритм, предложенный Г.И. Малашонком в работе [1). требующий выполнения О(п^) операций над элементами матрицы. В основе его лежит идея построения матрицы, эквивалентной данной, но имеющей квазитрсуго льную матрицу коэффициентов. Будем называть его КТ-алгоритм. Хорошо известно, что применение модулярных методов, основанных на китайской теореме об остатках (КТО), позволяет получить более эффективные алгоритмы, чем прямые.
Поэтому были разработаны программы, реализующие алгоритм Т.Р. Сейфуллина и КТ-алгоритм. которые вычисляют характеристический полином прямым методом и модулярным мегодом с применением китайской теоремы об остатках (КТО). И проведен ряд экспериментов с этими алгоритмами.
Кроме этого интерес представляет сравнение реализаций указанных алгоритмов с алгоритмами, которые применяются сегодня в системах Ма^етаиса и МАРЬЕ.
В данной статье сравниваются следующие методы вычисления характеристического полинома:
1) прямой алгоритм Сейфуллина.
2) алгоритм Сейфуллина с применением КТО.
3) прямой КТ-алгоритм.
4) КТ-алгоритм с применением КТО,
5) алгоритм вычисления характеристического полинома в Mathcmatica 5.1.
6) алгоритм вычисления характеристическою полинома в Maple 9.5.
Эксперименты проводились па процессоре AMD Athlon 64 х 3500+, оперативная память - 512 Mb. Программы написаны в среде Java (JDK 1.5). Для экспериментов брались матрицы над целыми числами, которые выбирались случайным образом из интервала }-99.99 j. Размеры матриц менялись в пределах от 10 до 200. Приведем результаты этих экспериментов.
На рис. 1 сравнивается трафик зависимост и времени вычисления характеристического полинома методом Сейфуллина с применением КТО от размеров матрицы и [ рафик функции t = 27-10“7 я5.
В статье [4] получена теоретическая оценка количества операций - 0(о4), где п - размерность матрицы. Тогда для этого алгоритма с применением КТО оценка количест ва операций -0{п'). Эксперименты, приведённые на рис. 1, хорошо укладываются в эту теоретическую схему. Кривая, полученная экспериментально, обозначена сплошной линией, а теоретическая кривая (пунктиром) соответствует графику функции / - 27-10 7/г (с).
В статье [2] получена теоретическая оценка количества бит-операций — О(уг), где п — размерность матрицы. Эксперименты, приведённые на рис. 2. хорошо укладываются в эту теоретическую схему.
Теоретическая оценка числа операций КТ-алгоритма. данная в работе р|, равна 0(nJ). Следовательно, оценка числа операций КТ-алгоритма с применением КТО - 0(пл). Па рис. 3 изображены трафики экспериментальной оценки КТ-алгоритма и функции t 31 ТО-5 п4 (с) (пунктиром).
Times (sec)
1200
1000 800 600 400 200
50 100 150 200П
Рис. I. График зависимости времени вычисления характеристического полинома методом Сейфуллина с применением КТО и график 27-10-7 п (пунктиром)
Times (see)
Рис. 2. График зависимости времени вычисления характери-стическот полинома прямым методом Сейфуллина и график 61 -10“7 п' (пунктиром)
Times (sec)
На рис. 4 показано время вычисления характеристического полинома с использованием КТ-алгоритма прямым методом (пунктиром) и с применением КТО. а на рис. 5 - время вычисления по алгоритму Сейфуллина прямым метолом и с применением КТО (пунктиром).
Как видно по рис. 4. КТ алгоритм с применением КТО сильно выигрывасг по сравнению с прямым К I -алгоритмом. Так. при п = II он выигрывает в 9 раз. а при п= 15 - в 32 раза.
Применение КТО для алгоритма Сейфуллина ускорения не дает, наоборот, лучшим является прямой метол Сейфуллина. например, при п - 40 он выигрывает в
1.7 раза, при п = 200 - в 2.3 раза.
Сравним КТ-алгоритм с применением КТО и прямой алгоритм Сейфуллина (рис. 6). Как видно по графику, алгоритм Сейфуллина выигрывает' у КТ-алго-ритма, когда размерность матрицы п < 200. Наибольший выигрыш наблюдается при п - 40: алгоритм Сейфуллина здесь быстрее в 2.8 раза. Когда размер матрицы п = 200, алгоритмы показывают одинаковое время вычисления.
Отдельный интерес представляет вопрос сравнения новых алгоритмов с теми, которые реализованы в системах Mathcmatica 5.1 и Маріє 9.5 (рис. 8 и 9). Так. например, для п = 200 Mathematica 5.1 проигрывает в 6 раз К [-алгоритму с применением КТО. а Маріє 9.5 - «
3.8 раза.
Рис. 3. Г рафик зависимости времени вычисления характеристического полинома методом КТ с применением КТО и график 3110_>/74 (пунктиром)
Times (sec)
400
300
200
100
Times (sec)
Рис. 4. Время вычисления характеристического полинома с использованием КТ-алгоритма прямым методом (пунктиром) и с применением КТО
Times (sec)
Рис. 5. Время вычисления характеристическою полинома с использованием алгоритма Сейфуллина прямым методом и с применением КТО (пунктиром)
Рис. 6. Время вычисления характеристического полинома с использованием КТ-алгоритма с применением КТО и прямого алгоритма Сейфуллина (пунктиром). 80 < п < 200
Times (sec)
Рис. 7. Время вычисления характеристического полинома с использованием КТ-алгоритма с применением КТО и прямого алгоритма Сейфуллина (пунктиром) при п < НО
Times (sec) 3000
2500
2000
1500
1000
500
50
100
150 200
Рис. 8. Вычислительные ’эксперименты с использованием КТ-алшритма с применением КТО и алгоритма вычисления характеристическою полинома в Mathematica 5.1 (пунктиром)
Times (see)
Рис. 9. Вычислительные жеперименты с использованием КТ-алгоритма с применением КТО и алгоритма вычисления характеристического полинома в Маріє 9.5 (пунктиром)
11 одведем итоги. Самым быстрым для малых порядков матриц теоретически и практически является прямой алгоритм Сейфулина. Для матриц, у которых порядки меньше 200. самым быстрым является прямой алгоритм Сейфуллина. а для матриц, порядок которых
более 200. самым быстрым является КТ-алгоритм с применением КТО. При этом КТ-алгоритм показывает хорошее согласие с (рафиком функции t = к}п4. а алгоритм Ссйфуллина- с графиком функции / = к2гг.
Сравнение с алгоритмами, реализованными в системах Mathematica и MAPLE, оказывается не в пользу этих систем. Так. для матриц 200 порядка, характеристический полином которых вычисляется с помощью КТ алгоритма с применением КТО и прямым алгоритмом Сейфуллина за одинаковое время, они выигрывают в 6 раз по сравнению с алгоритмом, реализованным в системе Mathematica, и 3.8 раза - по сравнению с алгоритмом, реализованным в системе MAPLE.
ЛИТЕРАТУРА
1. Машшоыак ГЛ. A computation of the characteristic polynomial of an endomorphism of a free module / Записки научных семинаров ПОМИ. 1999. T. 258. С. 101-114.
2. Переславцет О.Н. Оценка числа бит-умножений в алгоритмах вычисления определителя, характеристическою полинома и присоединённой матрицы // XI Державинские чтения. Тамбов, 2006. С. 79-83.
3. Пере (.та цена ОН. История и современное состояние теории алгоритмов вычисления характеристического полинома матрицы // Современное математическое образование и проблемы истории и методологии математики: междунар. науч. конф. Тамбов, 2006 С. 130-134.
4. ('««фу.-мн» Т.}‘. Вычисление определителя, присоединённой матрицы и характеристического полинома бел деления // Кибернетика и системный анализ. 2002. №5. С. 18-42.
5. Фа<к)ее« /{.!{., ФшМсеаа В Н Вычислительные методы линейной алгебры. М., Л.: Гос. изд-во физ.-мат. лит , 1963.
6. Jounaïdi Abdeijaoued THFSE «Algorithmes rapides pour le Calcul du Polynôme Caractéristique Grade de docteur de l'Université de ITanche-Comté, 22 mars 1997.
7. ChislovA !. Fast parallel calculation of the rank of matrices over a field of arbitran' characteristic Proc. FCT '85. Springer L ecture Notes in Computer Science 199. 1985. PP. 147-150.
БЛАГОДАРНОСТИ: Работа выполнена при частичной поддержке гранта РФФИ, проект 04-07-90268.
Поступила в редакцию 19 октября 2006 г.
О ВЫЧИСЛЕНИИ КОМПЛЕКСНЫХ КОРНЕЙ полиномов
© Г.И. Малашонок, A.A. Бетин
Malashonok (М.. Betin A.A. On calculation of complex radicals of polynomials.
Задача состоит в нахождении всех корней уравнения
/(-’) = 0 - (2)
с заданной точностью где Е - ото максимальная по модулю ошибка вычисления действительной и мнимой части каждого корня.
Выделим у коэффициентов и неизвестного 2 ^ X + iy действительную и мнимую части и представим функцию f(x) как сумму ее действительной и мнимой части. Тогда задача сводится к решению системы уравнений.
Приближенное вычисление корней полиномов является одной из важных задач вычислительной математики. Мы предлагаем алгоритм вычисления комплексных корней полиномов с любой требуемой точностью, при этом используются только рациональные вычисления и алгоритмы вычисления действительных корней полиномов с действительными коэффициентами с требуемой точностью.
Рассмотрим полином над полем комплексных чисел
+«!?” 1+а>” 2 + ... + а„2 + а„и (I)