Математика / Начала анализа

Метод SOR: последовательная сверхрелаксация

Метод SOR добавляет к проходу Гаусса—Зейделя параметр релаксации ω. При 0<ω<2 он дозирует поправку; ω=1 возвращает обычный метод, а удачный выбор ω>1 способен ускорить сходимость.

Опубликовано: Обновлено:

Формула

$$x_i^{(k+1)}=(1-\omega)x_i^{(k)}+\frac{\omega}{a_{ii}}\left(b_i-\sum_{j<i}a_{ij}x_j^{(k+1)}-\sum_{j>i}a_{ij}x_j^{(k)}\right)$$
Схема SOR: поправка с множителем ω = 1,2
SOR: поправка с множителем ω = 1,2SOR: поправка с множителем ω = 1,2Старт: (0; 0)Предложение x = 2,25 → принимаем 2,7Предложение y = 1,433333 → принимаем 1,72Второй проход: (1,644; 1,7984)

Сравнивайте приближение с точным решением и проверяйте невязку исходной системы.

Обозначения

$ω$
параметр релаксации, безразмерный
$x_i^GS$
значение, предложенное проходом Гаусса—Зейделя, единица x_i
$x_i^(k)$
старое значение компоненты, единица x_i
$x_i^(k+1)$
релаксированное новое значение, единица x_i

Условия применения

Диагональные элементы должны быть ненулевыми; параметр обычно берут из интервала 0<ω<2. Для симметричной положительно определённой матрицы SOR сходится при таком ω, однако скорость зависит от матрицы и порядка. Перед запуском выбирают начальное приближение, норму невязки и предел проходов. При испытании нескольких ω сравнивают одинаковый критерий, а не визуально похожие компоненты.

Ограничения

Интервал 0<ω<2 не обещает ускорение для каждой матрицы и каждого порядка. Слишком большая сверхрелаксация может превратить быстрое исправление в колебания или заметно замедлить снижение невязки. Оптимальный ω обычно нельзя получить из одного локального коэффициента. Метод сохраняет последовательную зависимость Гаусса—Зейделя и не заменяет предобусловливание для трудных задач.

Подробное объяснение

Сверхрелаксация сначала вычисляет значение, которое дал бы Гаусс—Зейдель, а затем делает к нему только часть или больше одной части пути. Если x_i^GS — предложенная поправка, то новое значение равно x_i^(k)+ω(x_i^GS−x_i^(k)). При ω=1 это точный шаг Гаусса—Зейделя, при ω<1 получается недорелаксация, при ω>1 — сознательный «перешагивающий» ход.

В матричной форме для A=D+L+U используется (D+ωL)x^(k+1)=ωb−[ωU+(ω−1)D]x^(k). Формула подчёркивает, что это не умножение готового ответа на ω: релаксация встроена в последовательное решение строк. Как и для других стационарных схем, ошибка умножается на свою матрицу итерации; сходимость определяется её спектральным радиусом.

Ускорение возникает, когда обычная схема систематически недоисправляет медленно меняющийся компонент ошибки. Тогда ω>1 может сократить число проходов. Но тот же механизм способен усилить неудачный компонент, поэтому параметр проверяют по истории невязки, а не по первым двум красивым цифрам.

Практически полезно начать с ω=1 как контрольной линии, затем пробовать небольшой набор значений внутри допустимого интервала и хранить лучший вместе с матрицей или классом задач. Если структура или порядок неизвестных изменились, прежний выбор нельзя автоматически переносить.

Как пользоваться формулой

  1. Выпишите последовательный шаг Гаусса—Зейделя и задайте параметр ω; для первой проверки используйте ω=1 как контроль.
  2. Для каждой строки найдите значение, предлагаемое Гауссом—Зейделем, используя уже обновлённые нижние компоненты.
  3. Сдвиньте старое значение к предложенному на долю ω: при ω>1 поправка намеренно больше полной разности.
  4. Сравнивайте варианты ω по одинаковой норме невязки и прекращайте пробу, если невязка устойчиво растёт.

Историческая справка

В численных расчётах XX–XXI веков сверхрелаксация развилась из последовательных итераций для систем, где простой проход Гаусса—Зейделя оказывается слишком медленным. Netlib Templates включает SOR в основной набор стационарных методов вместе с Якоби и Гауссом—Зейделем и связывает ω=1 с базовым последовательным проходом. Так параметр релаксации получил точный алгебраический смысл, а не только эмпирическую настройку.

Теория релаксационных схем исследует спектральные свойства, порядок переменных и выбор ω для классов матриц. Большие сеточные расчёты сделали SOR практичным методом: один проход использует локальные связи между соседними неизвестными. В современных решателях его также используют как сравнительную базу или как компонент более сложной процедуры. Сохранившийся термин SOR обозначает семейство последовательных обновлений с параметром, тогда как конкретные правила выбора параметра зависят от структуры системы.

Историческая линия формулы

SOR расшифровывается как successive overrelaxation — последовательная сверхрелаксация. Название описывает увеличение поправки относительно прохода Гаусса—Зейделя. Параметр ω связывает эту конструкцию с недорелаксацией и обычным проходом, объединяя их в одно семейство стационарных схем.

Пример

Для 4x+y=9, x+3y=7 возьмём ω=1,2 и нулевой старт. Шаг Гаусса—Зейделя для x предложил бы 2,25, поэтому x^(1)=0+1,2·2,25=2,7. Для y предложение равно (7−2,7)/3=1,433333; релаксация даёт y^(1)=1,2·1,433333=1,72. Второй проход: предложение для x=(9−1,72)/4=1,82, значит x^(2)=2,7+1,2(1,82−2,7)=1,644; предложение для y=(7−1,644)/3=1,785333, значит y^(2)=1,7984. Точное решение примерно (1,818182;1,727273); приближение колеблется вокруг него. Невязка r=b−Ax после второго прохода: (9−4·1,644−1,7984;7−1,644−3·1,7984)=(0,6256;−0,0392), поэтому именно по ней, а не по одному x, судят о выбранном ω.

Частая ошибка

Нельзя считать ω=1,2 универсально лучшим: подходящий параметр зависит от матрицы и порядка. Ошибка — применять ω к правой части, но не к поправке компоненты; тогда получается другая схема. Не путайте SOR с одновременным Якоби: формула SOR использует свежие значения j<i. Недорелаксация ω<1 не является «неправильным SOR»; она иногда нужна для устойчивого хода, но её цену измеряют числом проходов.

Практика

Задачи с решением

Возврат к Зейделю

Условие. Какое правило SOR получится при ω=1?

Решение. Множитель старого значения 1−ω равен нулю, а предложенное значение умножается на 1.

Ответ. Обычный метод Гаусса—Зейделя.

Одна релаксированная поправка

Условие. Старое x=4, предложение Гаусса—Зейделя x_GS=3, ω=1,5. Найдите новое x.

Решение. x_new=4+1,5(3−4)=4−1,5=2,5.

Ответ. 2,5.

Дополнительные источники

  • https://www.netlib.org/templates/templates.html
  • https://fncbook.com/linear-systems/
  • https://fncbook.com/structure/

Связанные формулы

Математика

Прямой ход метода Гаусса

$R_i\leftarrow R_i-\frac{a_{ik}}{a_{kk}}R_k$

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

Математика

Обратная подстановка в методе Гаусса

$x_i=\frac{b'_i-\sum_{j=i+1}^{n}u_{ij}x_j}{u_{ii}}$

Обратная подстановка находит неизвестные после прямого хода метода Гаусса. Она идет снизу вверх по ступенчатой системе: сначала последняя ведущая переменная, затем предыдущие.

Математика

Метод Гаусса-Жордана

$\left[A\mid b\right]\sim\left[I\mid x\right]$

Метод Гаусса-Жордана продолжает метод Гаусса до приведенного ступенчатого вида. Если система имеет единственное решение, расширенная матрица превращается в [I|x], и ответ читается сразу.

Математика

Число обусловленности для задачи МНК

$\kappa_2(A^\top A)=\frac{\sigma_{\max}^2}{\sigma_{\min}^2}=\kappa_2(A)^2.$

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