Алгоритм Бартельса – Стюарта - 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] Итерационные методы также могут использоваться для непосредственного построения приближения низкого ранга к при решении .
использованная литература
- ^ а б Bartels, R.H .; Стюарт, Г. У. (1972). «Решение матричного уравнения AX + XB = C [F4]». Коммуникации ACM. 15 (9): 820–826. Дои:10.1145/361573.361582. ISSN 0001-0782.
- ^ а б 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.
- ^ Симончини, В. (2016). «Вычислительные методы для линейных матричных уравнений». SIAM Обзор. 58 (3): 377–441. Дои:10.1137/130912839. ISSN 0036-1445. S2CID 17271167.