Алгоритм Бартельса – Стюарта - Bartels–Stewart algorithm

В числовая линейная алгебра, то Алгоритм Бартелса – Стюарта используется для численного решения Матричное уравнение Сильвестра . Разработано R.H. Bartels и G.W. Стюарт в 1971 году,[1] это был первый численно стабильный метод, который можно систематически применять для решения таких уравнений. Алгоритм работает с использованием вещественные разложения Шура из и преобразовывать в треугольную систему, которую затем можно решить с помощью прямой или обратной замены. В 1979 г. Г. Голуб, К. Ван Лоан и С. Нэш представили улучшенную версию алгоритма,[2] известный как алгоритм Хессенберга – Шура. Остается стандартным подходом к решению Уравнения Сильвестра когда от малого до среднего размера.

Алгоритм

Позволять , и предположим, что собственные значения отличны от собственных значений . Тогда матричное уравнение имеет уникальное решение. Алгоритм Бартелса – Стюарта вычисляет выполнив следующие действия:[2]

1. вычислить вещественные разложения Шура

Матрицы и - блочно-верхние треугольные матрицы, с диагональными блоками размером или .

2. Установить

3. Решите упрощенную систему , где . Это можно сделать, используя прямую подстановку блоков. В частности, если , тогда

где это -й столбец . Когда , столбцы должны быть объединены и решены одновременно.

4. Установите

Вычислительная стоимость

С использованием QR-алгоритм, то вещественные разложения Шура на шаге 1 требуется примерно проваливается, так что общие вычислительные затраты составляют .[2]

Упрощения и особые случаи

В частном случае, когда и симметрично, решение также будет симметричным. Эту симметрию можно использовать так, чтобы находится более эффективно на шаге 3 алгоритма.[1]

Алгоритм Хессенберга – Шура

Алгоритм Хессенберга – Шура[2] заменяет разложение на шаге 1 с разложением , где является матрица верхнего Гессенберга. Это приводит к системе вида это можно решить с помощью прямой замены. Преимущество такого подхода в том, что можно найти с помощью Размышления домохозяина по цене провалы, по сравнению с флопов, необходимых для вычисления реального разложения Шура .

Программное обеспечение и реализация

Подпрограммы, необходимые для варианта Хессенберга-Шура алгоритма Бартельса-Стюарта, реализованы в библиотеке SLICOT. Они используются в наборе инструментов системы управления MATLAB.

Альтернативные подходы

Для больших систем Стоимость алгоритма Бартелса – Стюарта может быть непомерно высокой. Когда и являются разреженными или структурированными, поэтому линейные решения и матричные векторные умножения с их участием эффективны, итерационные алгоритмы потенциально могут работать лучше. К ним относятся методы на основе прогнозов, которые используют Крыловское подпространство итерации, методы на основе переменное направление неявное (ADI) итерации и гибридизации, включающие как проекцию, так и ADI.[3] Итерационные методы также могут использоваться для непосредственного построения приближения низкого ранга к при решении .

использованная литература

  1. ^ а б Bartels, R.H .; Стюарт, Г. У. (1972). «Решение матричного уравнения AX + XB = C [F4]». Коммуникации ACM. 15 (9): 820–826. Дои:10.1145/361573.361582. ISSN  0001-0782.
  2. ^ а б c d Голуб, Г .; Nash, S .; Ссуда, К. Ван (1979). «Метод Хессенберга – Шура для задачи AX + XB = C». IEEE Transactions по автоматическому контролю. 24 (6): 909–913. Дои:10.1109 / TAC.1979.1102170. HDL:1813/7472. ISSN  0018-9286.
  3. ^ Симончини, В. (2016). «Вычислительные методы для линейных матричных уравнений». SIAM Обзор. 58 (3): 377–441. Дои:10.1137/130912839. ISSN  0036-1445. S2CID  17271167.