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] и метода Д. К. Фаддеева одновременного вычисления коэффициентов характеристического многочлена и присоединенной матрицы.

Алгоритм вычисления резольвенты матрицы. Для вычисления резольвенты постоянной (m × m) −матрицы A

R(λ)=λEА1 воспользуемся формулой [1, с. 112]

R(λ)=1xmin(λ)С(λ)

где C(𝜆) – приведенная присоединенная матрица для матрицы [𝜆𝐸 − A] (см. [1, с. 99]);

𝜒min (𝜆) – минимальный характеристический многочлен матрицы A.

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

C(λ)=1d(λ)BA(λ)xmin(λ)=Δ(λ)d(λ)

где B𝐴(𝜆) – присоединенная матрица для матрицы A [1, с. 92], 𝑑(𝜆) – наибольший общий делитель всех элементов матрицы B𝐴(𝜆),

Δ(λ)=λnp1λn1p2λn2...pn1λpn – характеристический многочлен матрицы A.

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

BA(λ)=B0λn1+B1λn2+B2λn3+...+Bn1,

где B0– единичная (m× m) −матрица, а (m× m) −матрицы Bk, k= 1, … , n − 1, находятся методом Д. К. Фаддеева по формулам [1, с. 97]

Ak=A Bk1,pk=1kSp(Ak),Bk=AkpkE,k=1, ... , m.

Здесь 𝐸0 – единичная (m× m) −матрица.

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

Фрагмент кода инициализации матрицы A с целыми случайными элементами

𝑎ij, i, j = 1, … , m из отрезка [−10, 10]:

max_aij = 10

A = np.random.randint(-max_aij, max_aij + 1, (m, m))

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

def fadeev_method(A):

m = len(A)

E = sympy.eye(m)

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

B[0] = sympy.eye(m)

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)

                B_A = sympy.zeros(m)

for k in range(m):

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

return B_A, deltaLambda

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

d = B_A[0, 0]

for i in range(m):

for j in range(m):

d = sympy.gcd(d, B_A[i, j])

Фрагмент кода вычисления приведенной присоединенной матрицы C(𝜆), минимального характеристического многочлена 𝜒min(𝜆) и резольвенты R(𝜆) матрицы A:

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 с целыми случайными элементами при различных размерностях матрицы.

 

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

 

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

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

×

作者简介

P. Shamanaev

National Research Mordovia State University

Email: ogarevonline@yandex.ru
俄罗斯联邦

D. Katin

National Research Mordovia State University

Email: ogarevonline@yandex.ru
俄罗斯联邦

E. Desyaev

National Research Mordovia State University

编辑信件的主要联系方式.
Email: ogarevonline@yandex.ru
俄罗斯联邦

参考

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

补充文件

附件文件
动作
1. JATS XML
2. Figure. Graphs of the dependence of the speed of the algorithm on the dimension of the matrix A

下载 (481KB)

Мы используем файлы cookies, сервис веб-аналитики Яндекс.Метрика для улучшения работы сайта и удобства его использования. Продолжая пользоваться сайтом, вы подтверждаете, что были об этом проинформированы и согласны с нашими правилами обработки персональных данных.

Согласие на обработку персональных данных

 

Используя сайт https://journals.rcsi.science, я (далее – «Пользователь» или «Субъект персональных данных») даю согласие на обработку персональных данных на этом сайте (текст Согласия) и на обработку персональных данных с помощью сервиса «Яндекс.Метрика» (текст Согласия).