Метод простой итерации

Технология итерационного решения вида (25*) названа методом простой итерации.

Оценка абсолютной погрешности для метода простой итерации

Метод простой итерации - student2.ru ,

напомним, символ || ... || означает норму.

Пример 1. Методом простой итерации с точностью e=0,001 решить систему линейных уравнений

Метод простой итерации - student2.ru

Число шагов, дающих ответ с точностью до e = 0,001, можно определить из соотношения

Метод простой итерации - student2.ru £ 0,001.

Оценим сходимость по формуле (26). Здесь ||G|| = Метод простой итерации - student2.ru = max{0,56; 0,61; 0,35; 0,61} = 0,61 < 1; Метод простой итерации - student2.ru = 2,15. Значит, сходимость обеспечена.

В качестве начального приближения возьмем вектор свободных членов, т.е. Метод простой итерации - student2.ru = (2,15; –0,83; 1,16; 0,44)Т. Подставим значения вектора Метод простой итерации - student2.ru в формулы (25*):

Метод простой итерации - student2.ru

Продолжая вычисления, результаты занесем в таблицу:

k х1 х2 х3 х4
2,15 –0,83 1,16 0,44
2,9719 –1,0775 1,5093 –0,4326
3,3555 –1,0721 1,5075 –0,7317
3,5017 –1,0106 1,5015 –0,8111
3,5511 –0,9277 1,4944 –0,8321
3,5637 –0,9563 1,4834 –0,8298
3,5678 –0,9566 1,4890 –0,8332
3,5760 –0,9575 1,4889 –0,8356
3,5709 –0,9573 1,4890 –0,8362
3,5712 –0,9571 1,4889 –0,8364
3,5713 –0,9570 1,4890 –0,8364

Сходимость в тысячных долях имеет место уже на 10-м шаге.

Ответ: х1» 3,571; х2 » –0,957; х3 » 1,489; х4 » –0,836.

Это решение может быть получено и с помощью формул (27*).

Пример 2. Для иллюстрации алгоритма с помощью формул (27*), рассмотрим решение системы (только две итерации):

Метод простой итерации - student2.ru Метод простой итерации - student2.ru ; Метод простой итерации - student2.ru . (30)

Преобразуем систему к виду (25) согласно (27*):

Метод простой итерации - student2.ru Þ Метод простой итерации - student2.ru (31)

Возьмем начальное приближение Метод простой итерации - student2.ru = (0; 0; 0)Т. Тогда для k = 0 очевидно, что значение Метод простой итерации - student2.ru = (0,5; 0,8; 1,5)Т. Подставим эти значения в (31), т.е. при k=1, получим Метод простой итерации - student2.ru = (1,075; 1,3; 1,175)Т.

Ошибка e2 = Метод простой итерации - student2.ru = max(0,575; 0,5; 0,325) = 0,575.

Блок-схема алгоритма нахождения решения СЛАУ по методу простых итераций согласно рабочим формулам (27*) представлена на рис. 2.4.

Метод простой итерации - student2.ru

Рис. 2.4. Блок-схема метода простых итераций для решения СЛАУ

Особенностью блок-схемы являются блоки:

(13) – назначение его рассмотрим ниже;

(21) – вывод результатов на экран;

(22) – проверка (индикатор) сходимости.

Проведем анализ предложенной схемы на примере системы (30) (n = 3, w =1, e = 0,001):

Метод простой итерации - student2.ru Метод простой итерации - student2.ru = Метод простой итерации - student2.ru ; Метод простой итерации - student2.ru .

Блок 1. Вводим исходные данные A, Метод простой итерации - student2.ru , w, e, n: n = 3, w =1, e = 0,001.

Цикл I. Задаем начальные значения векторов x0i и хi (i = 1,2,3).

Блок 5. Обнуляем счетчик числа итераций.

Блок 6. Обнуляем счетчик текущей погрешности.

Цикл II – счетчик номеров матрицы А и вектора Метод простой итерации - student2.ru :

i = 1: S = b1 = 2 (блок 8).

–––––––––––––––––––––––––––––––––––––––––––––––––––––––

Переходим во вложенный Цикл III, блок 9 – счетчик номеров столбцов матрицы А: j = 1.

Блок 10: j = i, следовательно, возвращаемся к блоку 9 и увеличиваем j на единицу: j = 2.

В блоке 10 j ¹ i (2 ¹ 1) – выполняем переход к блоку 11.

Блок 11: S = 2 – (–1) × х02 = 2 – (–1) × 0 = 2, и переходим к блоку 9, в котором j увеличиваем на единицу: j = 3.

В блоке 10 условие j ¹ i выполняется, поэтому переходим к блоку 11.

Блок 11: S = 2 – (–1) × х03 = 2 – (–1) × 0 = 2, после чего переходим к блоку 9, в котором j увеличиваем на единицу (j = 4). Значение j больше n (n = 3) – заканчиваем цикл и переходим к блоку 12.

Блок 12: S = S / a11 = 2 / 4 = 0,5.

Блок 13: w = 1; S = S + 0 = 0,5.

Блок 14: d = | xi – S | = | 1 – 0,5 | = 0,5.

Блок 15: xi = 0,5 (i = 1).

Блок 16: Проверяем условие d > de: 0,5 > 0, следовательно, переходим к блоку 17, в котором присваиваем de = 0,5 и выполняем возврат по ссылке «А» к следующему шагу цикла II – к блоку 7, в котором i увеличиваем на единицу:

i = 2: S = b2 = 4 (блок 8).

–––––––––––––––––––––––––––––––––––––––––––––––––––––––

Переходим во вложенный Цикл III, блок 9: j = 1.

Посредством блока 10 j ¹ i (1 ¹ 2) – выполняем переход к блоку 11.

Блок 11: S = 4 – 1 × 0 = 4, и переходим к блоку 9, в котором j увеличиваем на единицу: j = 2.

В блоке 10 условие не выполняется, поэтому переходим к блоку 9, в котором j увеличиваем на единицу: j = 3. По аналогии переходим к блоку 11.

Блок 11: S = 4 – (–2) × 0 = 4, после чего заканчиваем цикл III и переходим к блоку 12.

Блок 12: S = S / a22 = 4 / 5 = 0,8.

Блок 13: w = 1; S = S + 0 = 0,8.

Блок 14: d = | 1 – 0,8 | = 0,2.

Блок 15: xi = 0,8 (i = 2).

Блок 16: Проверяем условие d > de: 0,2 < 0,5; следовательно, переходим возврат по ссылке «А» к следующему шагу цикла II – к блоку 7:

i = 3: S = b3 = 6 (блок 8).

–––––––––––––––––––––––––––––––––––––––––––––––––––––––

Переходим во вложенный Цикл III, блок 9: j = 1.

Посредством блока 10 выполняем переход к блоку 11.

Блок 11: S = 6 – 1 × 0 = 6, и переходим к блоку 9: j = 2.

Посредством блока 10 выполняем переход к блоку 11.

Блок 11: S = 6 – 1 × 0 = 6. Заканчиваем цикл III и переходим к блоку 12.

Блок 12: S = S / a33 = 6 / 4 = 1,5.

Блок 13: S = 1,5.

Блок 14: d = | 1 – 1,5 | = 0,5.

Блок 15: xi = 1,5 (i = 3).

Согласно блоку 16 (с учетом ссылок «А» и «С») выходим из цикла II и переходим к блоку 18:

Блок 18. Увеличиваем число итераций it = it + 1 = 0 + 1 = 1.

В блоках 19 и 20 цикла IV заменяем начальные значения х0i полученными значениями хi (i = 1,2,3).

Блок 21. Выполняем печать промежуточных значений текущей итерации, в нашем случае: Метод простой итерации - student2.ru = (0,5; 0,8; 1,5)T, it = 1; de = 0,5.

Посредством блока 22 по ссылке «D» переходим к блоку 6 и de = 0.

Переходим к циклу II на блок 7 и выполняем рассмотренные вычисления с новыми начальными значениями х0i (i = 1,2,3).

После чего получим: х1 = 1,075; х2 = 1,3; х3 = 1,175.

Блок 18. Увеличиваем число итераций it = it + 1 = 1 + 1 = 2.

В блоках 19 и 20 цикла IV заменяем начальные значения х0i полученными хi (i = 1,2,3).

Блок 21. Выполняем печать значений второй итерации: Метод простой итерации - student2.ru = (1,075; 1,3; 1,175)T, it = 2; de = 0,575; и т.д.

Метод Зейделя

Данный метод является модификацией метода простой итерации и для системы (25) Метод простой итерации - student2.ru имеет следующую технологию

Метод простой итерации - student2.ru (32)

Суть его состоит в том, что при вычислении очередного приближения Метод простой итерации - student2.ru в системе (32) и в формуле (27*), если имеет место соотношение (27), вместо Метод простой итерации - student2.ru используются уже вычисленные ранее Метод простой итерации - student2.ru , т.е. (27*) преобразуется к виду

Метод простой итерации - student2.ru , i = 1, …, n. (33)

Это позволяет ускорить сходимость итераций почти в два раза. Оценка точности аналогична методу простой итерации. Схема алгоритма аналогична схеме метода простой итерации, если x0j заменить на xj и убрать строки x0i = 1, x0i = xi.

Пример. Методом Зейделя решить систему линейных уравнений с точностью e = 0,0001, приводя ее к виду, удобному для итераций.

Метод простой итерации - student2.ru Метод простой итерации - student2.ru (34)

Условия (27) для системы не удовлетворяются, поэтому приведем ее к виду соответствующему данному требованию.

Метод простой итерации - student2.ru Метод простой итерации - student2.ru Метод простой итерации - student2.ru (35)

Метод простой итерации - student2.ru

Метод простой итерации - student2.ru

Здесь Метод простой итерации - student2.ru , значит, процесс Зейделя сходится.

По технологии счета (32) Метод простой итерации - student2.ru

Метод простой итерации - student2.ru


k х1 х2 х3 k х1 х2 х3
0.19 0.97 –0.14 0.2467 1.1135 –0.2237
0.2207 1.0703 –0.1915 0.2472 1.1143 –0.2241
0.2354 1.0988 –0.2118 0.2474 1.1145 –0.2243
0.2424 1.1088 –0.2196 0.2475 1.1145 –0.2243
0.2454 1.1124 –0.2226        

Ответ: x1 = 0.248; x2 = 1.115; x3 = –0.224.

Замечание. Если для одной и той же системы методы простой итерации и Зейделя сходятся, то метод Зейделя предпочтительнее. Однако на практике имеет место ситуация, когда области сходимости этих методов могут быть различными, т.е. метод простой итерации сходится, а метод Зейделя расходится и наоборот. Для обоих методов, если Метод простой итерации - student2.ru близка к единице, скорость сходимости очень малая.

Для ускорения сходимости тогда используется искусственный прием – так называемый метод релаксации. Суть его заключается в том, что полученное по методу итерации очередное значение Метод простой итерации - student2.ru пересчитывается по формуле:

Метод простой итерации - student2.ru (36)

w – как правило, принято изменять в пределах 0 < w £ 2 с каким-то шагом (можно h = 0,1 или 0,2). Параметр w подбирают так, чтобы сходимость метода достигалась за минимальное число итераций.

Релаксация – (физ.тех.) постепенное ослабление какого-либо состояния тела после прекращения действия факторов вызвавших это состояние.

Пример. Рассмотрим результат пятой итерации с применением формулы релаксации. Возьмем w = 1,5.

Метод простой итерации - student2.ru

Как видно мы получили почти результат седьмой итерации.

Наши рекомендации