Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы.doc
Скачиваний:
37
Добавлен:
14.08.2019
Размер:
4.24 Mб
Скачать

§ 2. Метод простой итерации и метод Зейделя

  1. Метод простой итерации. Этот метод при определённых условиях применим и к решению систем линейных уравнений, поскольку любую систему A·X = b можно рассматривать как уравнение вида F(X) = X, где F(X) = (InD·AX + D·b с любой невырожденной (nn)-матрицей D, в банаховом пространстве nR. Действительно,

F(X) = X (In – D·A)·X + D·b = X In·X – D·A·X + D·b = X

D·A·X = D·b A·X = b.

Последняя эквивалентность в этой цепочке обусловлена невырожденностью матрицы D.

Для применимости этого метода функция F(X) = (InD·AX + D·b должна быть сжимающим отображением, т.е. удовлетворять условию ||F(X) – F(Y)|| c·||XY|| при некотором 0 < c < 1 и любых X, Y nR. Ясно, что F(X) = B·X + e, где B = InD·A, e = D·b.

Теорема (достаточное условие сходимости метода простой итерации). Пусть для некоторой матричной нормы верно ||B|| < 1. Тогда отображение F(X) = B·X + e будет сжимающим, а значит, метод простой итерации Xn+1 = F(Xn) будет сходиться при любом начальном приближении X0 к единственному решению X уравнения F(X) = X. При этом

||XXn|| , ||Xn+1X|| ||B||·||XnX||.

Доказательство. Нужно обосновать только сжимаемость отображения F – все остальные утверждения следуют из теоремы о неподвижной точке сжимающего отображения в банаховом пространстве.

Имеем ||F(X) – F(Y)|| = ||B·(XY)|| ||B||·||XY||, т.е. в качестве коэффициента сжатия можно взять c = ||B|| < 1. Если положить X0 = e, то X1 = B·e + e , и из доказанная ранее оценка ||XXn|| приводит к нужному неравенству ||XXn|| .

Теорема доказана.

Пример. Решить систему с точностью до 0,001:

.

система в виде X = B·X + e, где , и

||B|| = max{0,4+0,2+0,3+0,05; 0,2+0,2+0,3+0,1;

0,05+0,3+0,5+0,1; 0,5+0,1+0,1+0,1} = 0,95 < 1.

Поэтому применим метод простой итерации:

В этой таблице n = ||XnXn–1|| , а вычисления ведутся пока n заданной точности вычислений.

Если оценивать количество итераций по формуле ||XXn|| , то получим , т.е. n+1 < . Таким образом, иногда метод сходится быстрее этой оценки.

Возникает вопрос: для любой ли матрицы A можно найти такую обратимую матрицу D, что ||B|| = ||In + D·A|| < 1 для некоторой матричной нормы ? Ответ, конечно, утвердителен: например, если взять D = –A–1, то ||B|| = ||0|| = 0 < 1. В некоторых случаях матрицу D найти легко:

Лемма (о матрицах с диагональным преобладанием).

(1) Если матрица А с диагональным преобладанием по строкам: (1 i n), то ||InD·A|| < 1 для диагональной матрицы D с элементами di = aii–1 по диагонали. В этом случае итерационный процесс Xk+1 = (InD·AXk + e сходится при любом начальном приближении X0 к единственному решению системы уравнений A·X = b = D–1·e .

(2) Если матрица А с диагональным преобладанием по столбцам: (1 j n), то ||InA·D||1 < 1 для диагональной матрицы D с элементами di = aii–1 по диагонали. В этом случае итерационный процесс Yk+1 = (InA·DYk + e сходится при любом начальном приближении Y0 к единственному решению системы линейных уравнений A·D·Y = e . Таким образом, вектор D·Y является решением системы A·X = b = e .

(3) Любая матрица элементарными преобразованиями строк (столбцов) приводится к виду с диагональным преобладанием по строкам (столбцам). Таким образом, любую систему линейных уравнений A·X = b можно преобразованиями строк привести к виду, пригодному для применения метода простой итерации.

Доказательство. (1) Если матрица А с диагональным преобладанием по строкам, то матрица C = D·A имеет элементы ci j = (1 n). Поэтому для матрицы B = InD·A при любом 1 i n справедливы равенства bii = 0, bij = и , так что ||B|| = < 1.

Все остальные утверждения следуют из общей теории сжимающих отображений.

(2) Все вычисления для обоснования неравенства ||InA·D||1 < 1 аналогичны предыдущим. Поэтому при любом начальном приближении Y0 сходится итерационный процесс Yk+1 = (InA·DYk + e . Переходя к пределу в итерационном соотношении, получим Y = (InA·DY + e A·D·Y = e. Все остальные утверждения следуют из общей теории сжимающих отображений.

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

Лемма доказана.

Пример. Решить систему с точностью до 0,001:

.

(переписали систему A·X = b в виде X = B·X + e). При этом нетрудно убедиться, что ||B||1 > 1, ||B|| > 1, ||B||2 > 1 (?!), так что метод простой итерации напрямую неприменим.

В то же время, исходная матрица A = системы удовлетворяет свойству диагонального преобладания по столбцам. Поэтому можно воспользоваться леммой о матрицах с диагональным преобладанием: D = . При этом

B = I4A·D , ||B||1 < 1.

Применяем метод простой итерации Yk+1 = (InA·DYk + b для решения системы A·D·Y = b и находим X = D·Y :

В последней строке этой таблицы приведены решение X исходной системы и норма невязки, соответствующей этому решению.

Замечание: При применении метода простой итерации могут возникнуть проблемы (см., например, [1, стр. 271]), которые состоят в том, что ранее сходимости может случиться переполнение (числа становятся слишком большие даже для ЭВМ). Эти нюансы подробно обсуждать не будем.

  1. Метод Зейделя. Покомпонентная запись метода простой итерации Xn+1 = B·Xn + e приведена в нижеследующих формулах слева. Здесь xj(i)j-я компонента вектора Xiприближения, вычисленного на i-й итерации. Метод Зейделя, покомпонентные формулы которого приведены справа допускает использование при вычислении компоненты xi(n+1) вектора Xn+1 уже вычисленных предыдущих его компонент x0(n+1), … , xi–1(n+1).

Для того чтобы записать эти формулы в матричном виде, введём две матрицы, связанные с матрицей B:

.

Тогда метод Зейделя можно записать в матричном виде следующим образом:

Xn+1 = C·Xn+1 + D·Xn + e (In – C)·Xn+1 = D·Xn + e

Xn+1 = (In – C)–1·D·Xn + e.

Здесь матрица InCверхнетреугольная с ненулевыми элементами по диагонали, а потому обратима.

Таким образом, формально говоря, метод Зейделя – это частный случай метода простой итерации с матрицей U = (InC)–1·D. Однако, сходится метод Зейделя, как правило, быстрее. Это утверждение далеко не очевидно, т.к. нельзя даже утверждать, что при выполнении условия ||B|| < 1 будет выполнено условие ||U|| <1.

Пример: Если B = , то С = , D = и I2C = , (I2C)–1 = , U = (I2C)–1·D = . Кроме того, ||B||1 = 0,9 < 1, но ||U||1 = 1,1 > 1.

Таким образом, непосредственно применить изложенную выше теорию не удаётся. Тем удивительнее следующая теорема, доказательство которой можно найти в [9, стр. 235].

Теорема (о методе Зейделя). Если ||B||1 < 1 или ||B|| < 1, то метод Зейделя сходится, причём, как правило, несколько быстрее метода последовательных приближений.

Пример. Решить систему с точностью до 0,001:

.

система в виде X = B·X + e, где , и

||B|| = max{0,4+0,2+0,3+0,05; 0,2+0,2+0,3+0,1;

0,05+0,3+0,5+0,1; 0,5+0,1+0,1+0,1} = 0,95 < 1.

Поэтому можно применить метод Зейделя:

Сравнение проведённых вычислений с расчётами по методу простой итерации в первом примере этого параграфа показывает, что в данном случае метод Зейделя сходится хуже. Таким образом, оговорка “как правило” в сформулированной выше теореме не случайна.