Ме́тод Га́усса — Зе́йделя (метод Зейделя, процесс Либмана, метод последовательных замещений) — классический итерационный метод решения системы линейных уравнений.

Назван в честь Зейделя и Гаусса.

Постановка задачи Решение с использованием метода Гаусса-Зейделя Система:, где

Или

Метод Чтобы пояснить суть метода, понадобится переписать задачу в виде

Здесь в -м уравнении все члены, содержащие , для перенесены в правую часть. Эта запись может быть представлена как

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

Итерационный процесс в методе Гаусса — Зейделя строится по формуле

после выбора соответствующего начального приближения .

Метод Гаусса — Зейделя можно рассматривать как модификацию метода Якоби. Основная идея модификации состоит в том, что новые значения используются здесь сразу же по мере получения, в то время как в методе Якоби они не используются до следующей итерации:

где

Таким образом, i-я компонента -го приближения вычисляется по формуле

Например, при : , то есть , то есть , то есть

Условие сходимости Теорема , где – матрица, обратная к . Тогда при любом выборе начального приближения : метод Гаусса-Зейделя сходится; скорость сходимости метода равна скорости сходимости геометрической прогрессии со знаменателем ; верна оценка погрешности: .

Условие окончания Условие окончания итерационного процесса Зейделя при достижении точности в упрощённой форме имеет вид:

Более точное условие окончания итерационного процесса имеет вид

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

Пример реализации на Python import numpy as np

def seidel(A, b, eps): n = len(A) x = np.zeros(n) # zero vector

converge = False while not converge: x_new = np.copy(x) for i in range(n): s1 = sum(A[i][j] * x_new[j] for j in range(i)) s2 = sum(A[i][j] * x[j] for j in range(i + 1, n)) x_new[i] = (b[i] - s1 - s2) / A[i][i]

converge = np.linalg.norm(x_new - x) <= eps x = x_new

См. также Геометрическая прогрессия Метод простой итерации Метод Якоби Теорема Банаха Метод итерации

Ссылки David M. Strong. Iterative methods for solving Ax = b — Gauss-Seidel Method. MAA Publications. The Jacobi and Gauss-Seidel Iterative Methods The Gauss-Seidel method. Wolfram MathWorld.

Категория:Методы решения СЛАУ Категория:Объекты, названные в честь Карла Фридриха Гаусса