Реализация алгоритма нахождения резольвенты матрицы с использованием присоединенной матрицы и характеристического многочлена

Автор: Десяев Е.В., Катин Д.А., Шаманаев П.А.

Журнал: Огарёв-online @ogarev-online

Статья в выпуске: 16 т.11, 2023 года.

Бесплатный доступ

В настоящей работе излагается реализация алгоритма вычисления резольвенты матрицы с использованием присоединенной матрицы и характеристического многочлена матрицы на языке Python. На графиках приведены зависимости скорости работы алгоритма при различных размерностях матрицы.

Наибольший общий делитель, присоединенная матрица, резольвента матрицы, характеристический многочлен

Короткий адрес: https://sciup.org/147250359

IDR: 147250359

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

Введение. При решении многих задач требуется вычислять резольвенту матрицы [1], не зная ее собственных значений. В частности, такая задача возникает при решении систем линейных алгебраических уравнений с малым параметром методом Ляпунова-Шмидта [2; 3].

В работе [1] приведен подход вычисления резольвенты матрицы с использованием присоединенной матрицы и характеристического многочлена матрицы. Для вычисления последних Д. К. Фаддеевым предложен метод одновременного вычисления коэффициентов характеристического многочлена и присоединенной матрицы [1].

Изложим алгоритм вычисления резольвенты матрицы на основе подхода, изложенного в [1] и метода Д. К. Фаддеева одновременного вычисления коэффициентов характеристического многочлена и присоединенной матрицы.

Алгоритм вычисления резольвенты матрицы. Для вычисления резольвенты постоянной х т) —матрицы А

R (Л) = [ЛЕ —А]-1

воспользуемся формулой [1, с. 112]

R W =

A min (/)

где С(Х) - приведенная присоединенная матрица для матрицы [ХЕ — А] (см. [1, с. 99]); Х т1п (А) - минимальный характеристический многочлен матрицы А.

Приведенную присоединенную матрицу С (X) и минимальный характеристический многочлен матрицы А будем вычислять по формулам [1, с. 99-100]

СО) = -^ baw

Х т1п(Х) =

Д(Х) d(X)

где ВА(Х) - присоединенная матрица для матрицы А [1, с. 92], d(X) - наибольший общий делитель всех элементов матрицы ВА(Х),

) = Х п - р !Х П-1 Р 2Х П-2  ----Р п-1Х — Р п >

- характеристический многочлен матрицы А.

Для нахождения присоединенной матрицы ВА(Х) воспользуемся формулой [1, с. 94]

Ва(Х) = В0Хп 1 + В1Хп 2 + В2Хп 3 + ••• + Вп-1, где В0 - единичная (т х т) —матрица, а (т х т) —матрицы Вк ,к = 1,...,п — 1, находятся методом Д. К. Фаддеева по формулам [1, с. 97]

Ак=АВк -1 ,

1 Р к = г Sp^, к

Вк = Ак— pkЕ, к = 1, ...,т.

Здесь Е0 - единичная (т х т) —матрица.

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

Фрагмент кода инициализации матрицы А с целыми случайными элементами а^ , i,j = = 1,^,m из отрезка [-10,10]:

max_aij = 10

Фрагмент кода реализации метода Д. К. Фаддеева одновременного вычисления характеристического многочлена А(Л) и присоединенной матрицы ВА(Л):

def fadeev_method(A):

m = len(A)

B = [0 for i in range(m +1)]

tmpA = [0 for i in range(m +1)]

p = [0 for i in range(m +1)]

for k in range(1, m +1):

tmpA[k] = A * B[k -1]

p[k] = 1 / k * matrix_trace(tmpA[k])

B[k] = tmpA[k] - p[k] * E deltaLambda = lyamda ** m for i in range(1, m +1):

deltaLambda -= p[i] * lyamda ** (m - i)

for k in range(m):

B_A += B[k] * lyamda ** (m - 1- k)

return B_A, deltaLambda

Фрагмент кода вычисления наибольшего общего делителя всех элементов присоединенной матрицы ВА (Л):

d = B_A[0,0]

for i in range(m):

for j in range(m):

Фрагмент кода вычисления приведенной присоединенной матрицы С (Л), минимального характеристического многочлена X min (Л) и резольвенты R (Л) матрицы А :

C = 1 / d * B_A x_min = deltaLambda.as_expr() / d

R = 1 / x_min * C

Вычислительный эксперимент. Вычисления проводились на ноутбуке с процессором 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz и операционной системой Windows 11 Pro.

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

a )

b )

c )                                                     d )

Рисунок. Графики зависимостей скорости работы алгоритма от размерности матрицы А при условиях: a ) \a ij \ < 10, b ) \a ij \ < 105, c ) \пц\ < 106, d) |%'| < 107, i,j = 1, ...,т

Из графиков видно, что при увеличении значений коэффициентов матрицы А по абсолютной величине скорость работы алгоритма увеличивается незначительно.

Для сравнительного анализа использовалась функция пакета Sympy нахождения обратной матрицы, зависящей от параметра. Вычисления показали, что при т = 30 и \^ ij \ < 10 эта функция уже затрачивает порядка 10 мин., что значительно превышает скорость работы разработанного алгоритма вычисления резольвенты матрицы с использованием приведенной присоединенной матрицы и минимального характеристического многочлена.

Список литературы Реализация алгоритма нахождения резольвенты матрицы с использованием присоединенной матрицы и характеристического многочлена

  • Гантмахер Ф. Р. Теория матриц. - М.: Наука, 1966. - 576 с. EDN: QJNRUJ
  • Вайнберг М. М., Треногин В. А. Теория ветвления решений нелинейных уравнений. - М.: Наука. 1964. - 524 с.
  • Шаманаев П. А., Прохоров С. А. Алгоритм решения систем линейных алгебраических уравнений с малым параметром методом Ляпунова-Шмидта в регулярном случае [Электронный ресурс] // Математическое моделирование, численные методы и комплексы программ имени Е. В. Воскресенского: IX Международная научная молодежная школа-семинар (Саранск, 8-11 октября 2020 г.). - С. 129-131. - Режим доступа: https://conf.svmo.ru/files/2020/papers/paper40.pdf (дата обращения: 23.11.2023).
Статья научная