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

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

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

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

Так как г-ый коэффициент /г характеристического полинома есть сумма СП определителей ¿-го порядка, то |/г| < Сгп гг/2аг, где обозначено а = шаж(|а* |, г = 1,...,п, у = 1, ...,п}. Рассмотрим функцию Н(г) = (п—гг/2аг и найдем те наибольшее значение при г € [1, п].

Н'(г) = Н(г)р(г), где

оо 1

р(г) = 1/21п(ш2) + 1/2 + (п - 2г) ^ (. + )(----. + 1 + ).

“ (г + 1 + V)(п - г + 1 + V)

¿/=1 4 '4 '

Максимум функции Н(г^и г € [1, п] находится из равенствар(г) = 0. Численные эксперименты показывают, что в большинстве случаев наибольшее значение Н(г), г € [1,п], будет при г = п.

Например, это верно для п = 10 и а > 1, при п = 100 и а > 5 п = 500 и а > 9 п = 1000 и а > 16. В

этом случае / < п”/2а” для г € [1, п] или

||/1| < пк + ^„п/2 + 1. (7)

100

||/||, где к = |"^2 а] +1. Для оценки (6) будем создавать случайную матрицу различной плотности и вычислять оценку (6) с учетом всех элементов матрицы. В таблице указано количество бит, покрывающее соответствующую оценку.

О о т—н Д (5) (6) (7)

к, бит \ pi, % 100 50 5 2 1

4 43*28 24*28 22*28 15*28 11*28 7*28 27*28

8 57*28 38*28 36*28 30*28 22*28 15*28 42*28

16 86*28 67*28 65*28 58*28 47*28 33*28 70*28

32 143*28 124*28 122*28 115*28 95*28 67*28 127*28

64 257*28 238*28 236*28 230*28 197*28 146*28 242*28

Сравнение колонок (5) и (7) показывает, что новая оценка (5) не намного превышает оценку последнего коэффициента.

Литература

1. Малашонок ГЛ. A computation of the characteristic polynomial of an endomorphism of a free module // Записки научных семинаров ПОМП. 1999. Т. 258. С. 101-114.

2. Переславцева О.Н. Оценка числа бит-умножений в алгоритмах вычисления определителя, характеристического полинома и присоединённой матрицы //XI Державинские чтения. Тамбов, 2006. С. 79-83.

3 . Сейфуллин Т.Р. Вычисление определителя, присоединённой матрицы и характеристического полинома без деления // Кибернетика и системный анализ. 2002. N.5. С. 18-42.

Метод вычисления характеристического полинома матрицы

© О.Н.Переславцева

Пусть А - коммутативное кольцо, А = (а*-) - квадратна матрица порядка п с элементами а* Є А, і = 1,..., п, і = 1,..., п; Еп - единичная матрица порядка п. Тогда ^(ж) = ёе^А — жЕп) -

А

Будем использовать следующие обозначения. АР’|- подматрица матрицы А, стоящая на пересечении строк р,..., д и столбцов г,..., в, Ар,9-часть г-того столбца матрицы А, стоящая па пересечении г-того столбца матрицы А и строк р,...,д Аг = А^.

Данный алгоритм есть видоизменение алгоритма Малашонка [2]. В основе алгоритма лежит вычисление квазитреугольной матрицы.

Для каждого £ = 1,..., п — 2 рассмотрим матрицы

„ / Е 0 0 \ / Е 0 0 \

Ь = ( 0 1 0 I , Ь = ( 0 ае 0 I , (1)

\ 0 —Vе аеЕп—е—1 / \ 0 Vе /

Бе = Г Е е ^ ^ , где ае € А, ае = 0, Vе € Лп-4-1.

\ 0 а Еп —е /

Тогда матрица ЬеАЬеБ—1 подобна матрице А.

В алгоритме на каждом шаге £ (£ = 1,..., п — 2) выбираем ае и Vе так, что вычисляется матрица,

у которой элементы ¿-го столбца под "второй"диагональю равны нулю. При этом все вычисления

происходят в исходном кольце коэффициентов, и все деления являются точными.

Рассмотрим матрицу Аи = Ьп—2 ••• Ь^А^Б—1 ••• Ьп—2Б—12 = (Ьп—2 ••• Ь1АЬ1 •

Ьп—2)(Б—1 ... Б—!2) = ББ—1, где диагональная матрица

Р) т* /-| 1 1 2 12 п—2 1 2 п—2 \ /¿л\

Б = ош£(1,а , а а ,...,а а ••• а , а а ••• а ). (2)

Матрица Аи подобна мат рице А. Следовательно, характеристический полином матрицы А

Е(ж) = ( —1)п ёе^ББ—1 — жЕп) = ( —1)п ёе^Б — жБ)/det Б. (3)

Алгоритм состоит из 2 этапов:

1. Вычисление квазитреугольной матрицы

- Инициализация: Б[1] = А.

- Для £ = 1, 2,..., п — 2 вычисляются последовательно матрицы

Б[е+1] = ЬеБ^Ь,

где ае = (Б[е] )е+1 для £ = 1,2 и ае = (В^)^1 /(В^)^ 2 для £ = 3, ...,п — 2; Vе = (Б[е] )е+2’п для £ =1, 2 и Vе = (БМ)е+2,п/(БИ)е—2 для £ = 3, ..., п — 2; матрицы и определены формулами (1).

Последней вычисляется квазитреугольная матрица Б = Б[п —1].

- Вычисляется диагональная матрица Б по формуле (2).

А

- Вычисляется детерминант Сп = ёе^жБ — Б) квазитреугольной матрицы по формуле Хессен-берга:

Сп = ЪппСп — 1 + ^П^!.1 Ъ*п (Пп=*+1(—Ьи—1 )) С*—1, где начальное значение С0 = 1, жБ — Б = (Ъу), г, у = 1,..., п. Форма получается простым разложением определителя по последнему столбцу. С обозначает определитель подматрицы порядка г, стоящей в левом верхнем углу.

А

Е (ж) = ( —1)п ёе^жБ — Б)/ det(Б).

Если на некотором шаге £ а е = 0 и Vе = 0, то нужно положить Б[е+1] = Б[е]. Это означает, что £-тый шаг должен быть пропущен. Если же а е =0, Vе = 0 и (Б [£])* = 0 для пекоторого г > £ + 2, то положим ае = (Б[е])* (для £ < 2), а е = (БМ)*/(Б[ )£—2 (для £ > 2) и

Б[ е+1] = Ье Рм+1Б[ е+1^,

где обозначает матрицу перестановки, полученную из единичной матрицы Еп после перестановки строк с номерами г и у.

Найдем оценку сложности алгоритма. На ¿-м шаге алгоритма вычисляется матрица В [*+4 = при этом выполняется (п — 4 — 1)(п — 4) + п(п — 4) сложений и вычитаний, 2(п — 4 — 1)(п — 4) + п(п — 4) умножений и п — 4 делений. Поэтому асимптотические сложности операций при вычислении матрицы В[п -1] следующие: требуется выполнить 5/6п3 + 0(п2) операций сложения и вычитания, 7/6п3+0(п2) операций умножения и 1/2п2 операций деления. При нахождении матрицы Б необходимо выполнить п — 2 операции умножения. На этапе 2 требуется выполнить 1/6п3 + 0(п2) операций сложения и вычитания, 1/6п3 + 0(п2) операций умножения и п операций деления. Всего п3 + 0(п2) аддитивных операций и 4/3п3 + 0(п2) мультипликативных операций, т.е. 7/3п3 + 0(п2) кольцевых операций.

Оцепим битовую сложность операции умножения. При вычислении матриц В[*] количество бит в ее элементах на шаге 4 растет экспоненциально как 2*. Следовательно, число бит-умножений описывается не полиномом, а экспоненциальной функцией.

Пример.

A =

( 1 2 -3 -2 0 \

4 -2 0 1 3

2 2 -4 3 -2

-3 3 1 2 -1

\ 2 0 -1 -1 3 )

Инициализация: B[1] = A.

1 8 -3 -2 0 \

/ 2 \ 4 -5 0 1 3

t = 1 а = 4, v= ( -3 1 , B[2] = 0- 42 -16 10 -14

-2 / 0 9 4 11 5

0 38 -4 -6 6 /

t = 2 а = —■42, v = ( 9 V

38

1 8 108 2 0 \

4 -5 123 1 3

B[3] = 0 -42 230 10 - 14

0 0 -7152 - 552 - 84

0 0 -23104 - 128 280 /

t = 3 а = -7152, v = (- 23104),

1 8 108 3576 0 \

4 -5 123 19116 3

B[4] = 0 -42 230 62984 -14

0 0 -7152 1472160 -84

0 0 0 -20167391 - 985824 /

B = BM.

Диагональная матрица D = diag(1, 4, -168, 300384, 300384), det D = -65341885. det(xD - B) = -65341885x5 + 74140898x3 + 130683770x2 - 31447258x - 40819243.

A

F(x) = (-1)5 det(xD - B)/ det D = -x5 + 34x3 + 2x2 - 362x + 213.

Литература

1. Малашонок Г. 11. Матричные методы вычислений в коммутативных кольцах. Тамбов: Изд-во ТГУ, 2002.

2. Малашонок ГЛ. A computation of the characteristic polynomial of an endomorphism of a free module // Записки научных семинаров ПОМП. 1999. Т. 258. С. 101-114.

3. Персславцева О.Н. Вычислительные эксперименты с алгоритмами вычисления характеристических полиномов матриц // Вестник Тамбовского Университета. Серия: Естественные и технические науки. Тамбов. 2007. Т. 12. Вып.1. С.126-128.

Реализация алгоритма Карацубы и оценки сложности

© А.О.Лапаев

Проведем оценку сложности алгоритма Карацубы [1]. Пусть машинное слово содержит г бит, p = 2r, числа u = (ui,u2, ...,un) и v = (v\,v2,..., vn) состоят из n = 2k машинных слов, и производится их умножение по следующей схеме:

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

(a,pn + b)(cpn + d) =

= acpn + ((a + b)(c + d) — ac — bd)p n + bd, где a = (ui,...,un), b = (un+i,...,un), c = (vi,...,vn), d = (vn+i,...,Vn) .

Обозначим q(n) умножения машинных слов в такой схеме. Тогда q(n) = 3q( Ç )

и q(2) = 3 находим q(n) = nl°923.

Обозначим через s(n) чисто оиерадий сложения. Тогда s(n) = 3s(n) + 5n и s(2) = 10. Отсюда

s(n) = 10nl°923 — 10n.

Общее количество операций сложения и умножения в алгоритме Карацубы составляет 11nl°923 — 10n

В работе [1] приведена схема реализации алгоритма Карацубы. Программа была написана на языке Java. Проводилось сравнение двух методов умножения: стандартного умножения чисел типа Biglntogor и алгоритма Карацубы. Эксперимент ставился на ЭВМ Intel Xeon 3000, ОС RedHat Linux Enterprise 9.0. В таблице приведены результаты эксперимента.

Размер чисел Стандартное умножение, ms Алгоритм Карацубы, rus

64 0.074286 0.071259

128 0.293707 0.203316

256 1.168254 0.592347

512 4.665816 1.929762

100 200 300 400 500 п

Рис. 1. Зависимость времепи вычисления произведения от размеров входных чисел: 1 стандартное умножение. 2 алгоритм Карацубы. 3 алгоритм Карацубы (теоретическая кривая) t = (11 nl°923 — 10n) • с, где c = 4 • 10-6

Как видно из графика, теоретические и экспериментальные оценки алгоритма Карацубы в точках n = 2fc очень близки друг к другу. Реализация алгоритма Карацубы выигрывает при n > 64.

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