Алгоритм трехдиагональной матрицы - Tridiagonal matrix algorithm

В числовая линейная алгебра, то алгоритм трехдиагональной матрицы, также известный как Алгоритм Томаса (названный в честь Ллевеллин Томас ), является упрощенной формой Гауссово исключение что можно использовать для решения трехдиагональные системы уравнений. Трехдиагональная система для п неизвестные могут быть записаны как

куда и .

Для таких систем решение можно получить в операции вместо требуется Гауссово исключение. Первый проход устраняет 's, а затем (сокращенная) обратная подстановка дает решение. Примеры таких матриц обычно возникают из дискретизации 1D Уравнение Пуассона и натуральный кубический сплайн-интерполяция.

Алгоритм Томаса не стабильный в общем, но это так в некоторых частных случаях, например, когда матрица диагонально доминирующий (по строкам или столбцам) или симметричный положительно определенный;[1][2] для более точной характеристики устойчивости алгоритма Томаса см. теорему Хигэма 9.12.[3] Если в общем случае требуется устойчивость, Гауссово исключение с частичный поворот Вместо этого рекомендуется (GEPP).[2]

Метод

Прямая развертка состоит из вычисления новых коэффициентов следующим образом, обозначающих новые коэффициенты с простыми числами:

и

Затем решение получается обратной подстановкой:

Вышеупомянутый метод не изменяет исходные векторы коэффициентов, но также должен отслеживать новые коэффициенты. Если векторы коэффициентов могут быть изменены, то алгоритм с меньшим объемом бухгалтерского учета:

За делать

с последующей обратной заменой

Реализация в подпрограмме VBA без сохранения векторов коэффициентов показана ниже.

Sub TriDiagonal_Matrix_Algorithm(N%, A #(), B #(), C #(), D #(), ИКС#())    Тусклый я%, W #    За я = 2 К N        W = А(я) / B(я - 1)        B(я) = B(я) - W * C(я - 1)        D(я) = D(я) - W * D(я - 1)    Следующий я    Икс(N) = D(N) / B(N)    За я = N - 1 К 1 Шаг -1        Икс(я) = (D(я) - C(я) * Икс(я + 1)) / B(я)    Следующий яКонец Sub

Вывод

Вывод трехдиагонального матричного алгоритма является частным случаем Гауссово исключение.

Предположим, что неизвестные , и что необходимо решить следующие уравнения:

Рассмотрите возможность изменения второго () уравнение с первым уравнением следующим образом:

что даст:

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

В это время был ликвидирован. Если эту процедуру повторять до ряд; (измененный) уравнение будет включать только одно неизвестное, . Это можно решить, а затем использовать для решения уравнение и так далее, пока не будут решены все неизвестные.

Ясно, что коэффициенты в модифицированных уравнениях становятся все более и более сложными, если они указаны явно. Изучив процедуру, можно вместо этого рекурсивно определить модифицированные коэффициенты (обозначенные тильдами):

Чтобы еще больше ускорить процесс решения, могут быть разделены (если нет деления на нулевой риск), новые модифицированные коэффициенты, каждый из которых обозначен штрихом, будут:

Это дает следующую систему с теми же неизвестными и коэффициентами, определенными в терминах исходных выше:

Последнее уравнение включает только одно неизвестное. Решение этого, в свою очередь, сводит следующее последнее уравнение к одному неизвестному, так что эту обратную подстановку можно использовать для поиска всех неизвестных:


Варианты

В некоторых ситуациях, особенно связанных с периодические граничные условия, возможно, потребуется решить слегка возмущенную форму трехдиагональной системы:

В этом случае мы можем использовать Формула Шермана-Моррисона чтобы избежать дополнительных операций исключения Гаусса и по-прежнему использовать алгоритм Томаса. Метод требует решения модифицированной нециклической версии системы как для входа, так и для разреженного корректирующего вектора, а затем комбинирования решений. Это можно сделать эффективно, если оба решения вычисляются одновременно, так как прямая часть алгоритма чистой трехдиагональной матрицы может использоваться совместно.

В других ситуациях система уравнений может быть блок трехдиагональный (видеть блочная матрица ), с меньшими подматрицами, расположенными как отдельные элементы в вышеупомянутой матричной системе (например, 2D Проблема Пуассона ). Для этих ситуаций были разработаны упрощенные формы исключения Гаусса.[4]

Учебник Вычислительная математика Авторы Quarteroni, Sacco и Saleri перечисляют модифицированную версию алгоритма, которая избегает некоторых делений (вместо этого используется умножение), что полезно для некоторых компьютерных архитектур.

Параллельные трехдиагональные решатели были опубликованы для многих векторных и параллельных архитектур, включая графические процессоры.[5][6]

Подробное описание параллельных трехдиагональных и блочно-трехдиагональных решателей см. [7]

Рекомендации

  1. ^ Прадип Нийоги (2006). Введение в вычислительную гидродинамику. Pearson Education India. п. 76. ISBN  978-81-7758-764-7.
  2. ^ а б Бисва Натх Датта (2010). Численная линейная алгебра и приложения, второе издание. СИАМ. п. 162. ISBN  978-0-89871-765-5.
  3. ^ Николас Дж. Хайэм (2002). Точность и стабильность численных алгоритмов: второе издание. СИАМ. п. 175. ISBN  978-0-89871-802-7.
  4. ^ Quarteroni, Alfio; Сакко, Риккардо; Салери, Фаусто (2007). «Раздел 3.8». Вычислительная математика. Спрингер, Нью-Йорк. ISBN  978-3-540-34658-6.
  5. ^ Chang, L.-W .; Hwu, W, -M. (2014). «Руководство по реализации трехдиагональных решателей на графических процессорах». В В. Кидратенко (ред.). Численные вычисления на GPU. Springer. ISBN  978-3-319-06548-9.
  6. ^ Venetis, I.E .; Курис, А .; Собчик, А .; Gallopoulos, E .; Самех, А. (2015). «Прямой трехдиагональный решатель, основанный на вращении Гивенса для архитектур GPU». Параллельные вычисления. 49: 101–116.
  7. ^ Gallopoulos, E .; Philippe, B .; Самех, А.Х. (2016). «Глава 5». Параллелизм в матричных вычислениях. Springer. ISBN  978-94-017-7188-7.
  • Нажмите, WH; Теукольский С.А.; Феттерлинг, штат Вашингтон; Фланнери, ВР (2007). «Раздел 2.4». Числовые рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк: Издательство Кембриджского университета. ISBN  978-0-521-88068-8.