Реализация алгоритма нахождения резольвенты матрицы с использованием присоединенной матрицы и характеристического многочлена
Автор: Десяев Е.В., Катин Д.А., Шаманаев П.А.
Журнал: Огарёв-online @ogarev-online
Статья в выпуске: 16 т.11, 2023 года.
Бесплатный доступ
В настоящей работе излагается реализация алгоритма вычисления резольвенты матрицы с использованием присоединенной матрицы и характеристического многочлена матрицы на языке Python. На графиках приведены зависимости скорости работы алгоритма при различных размерностях матрицы.
Наибольший общий делитель, присоединенная матрица, резольвента матрицы, характеристический многочлен
Короткий адрес: https://sciup.org/147250359
IDR: 147250359 | УДК: 512.643
Implementation of an algorithm for finding the resolvent of a matrix using the adject matrix and characteristic polynomial
The article describes the implementation of an algorithm for calculating the resolvent of a matrix using the adjoint matrix and the characteristic polynomial of the matrix in Python. The graphs show the speed of the algorithm for various matrix dimensions.
Текст научной статьи Реализация алгоритма нахождения резольвенты матрицы с использованием присоединенной матрицы и характеристического многочлена
Введение. При решении многих задач требуется вычислять резольвенту матрицы [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).