Научная статья на тему 'Вычислительные эксперименты с алгоритмами вычисления характеристических полиномов матриц'

Вычислительные эксперименты с алгоритмами вычисления характеристических полиномов матриц Текст научной статьи по специальности «Математика»

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

Аннотация научной статьи по математике, автор научной работы — Переславцева О. Н.

Работа выполнена при частичной поддержке гранта РФФИ, проект 04-07-90268.

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

Текст научной работы на тему «Вычислительные эксперименты с алгоритмами вычисления характеристических полиномов матриц»

ВЫЧИСЛИТЕЛЬНЫЕ ЭКСПЕРИМЕНТЫ С АЛГОРИТМАМИ ВЫЧИСЛЕНИЯ ХАРАКТЕРИСТИЧЕСКИХ ПОЛИНОМОВ МАТРИЦ © О.Н. Переелавцева

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)

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