Математика / Начала анализа
Метод SOR: последовательная сверхрелаксация
Метод SOR добавляет к проходу Гаусса—Зейделя параметр релаксации ω. При 0<ω<2 он дозирует поправку; ω=1 возвращает обычный метод, а удачный выбор ω>1 способен ускорить сходимость.
Формула
Сравнивайте приближение с точным решением и проверяйте невязку исходной системы.
Обозначения
- $ω$
- параметр релаксации, безразмерный
- $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 поправка намеренно больше полной разности.
- Сравнивайте варианты ω по одинаковой норме невязки и прекращайте пробу, если невязка устойчиво растёт.
Историческая справка
В численных расчётах 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/
Связанные формулы
Математика
Прямой ход метода Гаусса
Прямой ход метода Гаусса зануляет коэффициенты под ведущими элементами. В результате система приводится к ступенчатому виду, из которого решение находят обратной подстановкой.
Математика
Обратная подстановка в методе Гаусса
Обратная подстановка находит неизвестные после прямого хода метода Гаусса. Она идет снизу вверх по ступенчатой системе: сначала последняя ведущая переменная, затем предыдущие.
Математика
Метод Гаусса-Жордана
Метод Гаусса-Жордана продолжает метод Гаусса до приведенного ступенчатого вида. Если система имеет единственное решение, расширенная матрица превращается в [I|x], и ответ читается сразу.
Математика
Число обусловленности для задачи МНК
При переходе к нормальным уравнениям число обусловленности фактически возводится в квадрат, поэтому ошибки округления и шум в данных могут заметно усилиться.