Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЧМ_Лекции2009.pdf
Скачиваний:
15
Добавлен:
05.06.2015
Размер:
1.42 Mб
Скачать

Лекция 10.

Итерационные методы решения СЛАУ. Методы решения уравнения Пуассона. Метод простых итераций.

Рассмотрим итерационный метод (т.е. метод последовательных приближений) решения системы линейных уравнений:

Axr = f

(1)

Будем считать, что решение задачи (1) существует и единственно.

Различные варианты метода простых итераций связаны с переходом от системы (1) к эквивалентной системе

x = P x + g

(2)

Итерационный процесс строим следующим образом:

xr(k) = P xr(k1) + gr,

(3)

где xr(0) задано, k - номер приближения.

Условия сходимости метода последовательных приближений (3) форму-

лируются в следующих теоремах.

Теорема 1.

Для сходимости итераций (3) к решению системы (2) достаточно, чтобы в

какой - либо норме выполнялось условие

 

 

 

P

 

 

 

q <1 .

 

 

 

 

Тогда независимо от выбора xr(0)

 

 

 

 

 

 

 

xr(k ) xr*

 

 

 

qk

 

 

 

xr(0) xr*

 

 

 

,

(4)

 

 

 

 

 

 

 

где xr* - точное решение системы (2) .

 

 

 

 

 

 

Доказательство

При подстановке точного решения в (2) оно обращается в тождество:

xr* = P xr* + gr .

Вычитая его из уравнения (3) , (т.е. xr(k) = P xr(k1) + gr), получим:

xr(k ) xr* = P (xr(k1) xr* ) .

Здесь xr(k ) xr* - погрешность - го приближения.

88

Оценивая погрешность по какой k - либо норме (с которой согласована норма матрицы), получим:

xr(k ) xr*

 

 

 

 

P

 

 

 

 

 

 

 

xr(k 1) xr*

 

 

 

q

 

 

 

xr(k 1) xr*

 

 

 

... qk

 

 

 

xr(0) xr*

 

 

 

(4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ясно, что при q <1 lim xr(k ) = xr* .

k→∞

Теорема 2.(без доказательства)

Для сходимости итераций (3) (т.е. xr(k ) = P xr(k 1) + gr ) к решению системы

(2) (т.е. xr = P xr + g ) необходимо и достаточно, чтобы все собственные значе-

ния матрицы P по абсолютной величине были меньше единицы.

Опираясь на формулу (4) , т.е. xr(k ) xr* qk xr(0) xr* , можно получить ап-

риорную оценку числа приближений

xr(k ) xr* qk xr(0) xr* ε .

Разрешая последнее неравенство относительно k , получим:

 

 

ε

 

 

 

lg

 

 

 

 

 

 

 

r(0)

r*

 

 

x

x

 

 

 

k

 

 

 

 

 

.

 

 

 

lg q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Квадратные скобки означают ближайшее сверху целое число от того, которое заключено в скобки).

Этой оценкой можно воспользоваться, если мажорировать как-то

xr(0) xr* .

Упражнение:

Показать, что в условиях Теоремы 1 справедлива оценка:

xr(n) xr*

 

 

 

qn

 

 

 

 

xr(1) xr(0)

 

 

 

.

 

 

 

 

 

 

 

 

 

1q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

89

Вопрос становиться ясным, если оценить эффективность различных подходов с точки зрения вычислительных затрат.

Метод Гаусса (в простейшей интерпретации), при n >1 требует выполне-

ния приблизительно N

=

2

n3

арифметических операций.

 

 

1

3

 

 

 

 

 

 

Метод

итераций

 

xr(k) = P xr(k1) + gr реализуется приблизительно за

N2 = (2 n2 ) k

операций ( 2 n2 умножений и сложений связано с умножением

матрицы P

на вектор

xr(k 1) ,

k - число приближений). Если допустимая по-

грешность достигается при k < n3 , то метод итераций становиться предпочти-

тельней.

В задачах, с которыми практически приходится иметь дело, часто k < n . Кроме того, методы итераций могут оказаться предпочтительней с точки зрения устойчивости вычислений, т.е. в смысле влияния вычислительных по-

грешностей на результаты расчетов.

Примеры итерационных процессов.

1) Метод Якоби.

Запишем каждое уравнение системы Axr = f в виде, разрешенном относи-

тельно неизвестного с коэффициентом на главной диагонали матрицы A :

x

m

=

1

( f

m

a

x ... a

m,m1

x

m1

a

m,m+1

x

m+1

... a

m,n

x

n

)

 

 

 

amn

 

m1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m =1,2,..., n .

Таким образом, мы переписали (1) ( Axr = f ) в виде (2) ( x = P x + g ), с мат-

рицей

0

P = − a21

a22

Kan1

ann

 

 

 

 

 

 

 

 

a12

 

 

 

a1n

 

 

 

K

 

 

 

 

 

 

 

a

a

11

 

 

 

 

11

 

 

O

 

a2n

 

a

22

 

 

 

 

 

 

 

 

 

an2

 

 

 

K

 

 

 

K

0

 

 

 

 

 

 

ann

 

 

 

 

 

 

 

 

 

Если ввести в рассмотрение диагональную матрицу:

90

a

0

 

 

11

 

, то P = −D1(A D) , g = D1 f .

D =

O

 

 

0

 

 

 

amn

 

 

Действительно, A1

 

 

A

 

 

 

 

, где Aik

-

алгебраическое дополнение к эле-

 

=

 

 

 

ki

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

det(A)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

менту

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

aik ,

 

 

 

 

 

 

 

 

 

 

 

 

 

поэтому

 

 

 

 

 

ann

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

a22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

0

 

 

 

 

a

a

nn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

1

 

 

 

D1

=

 

 

 

 

 

 

a11 a33 ann

K

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

O

.

 

 

 

 

 

 

 

a11 ann

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

a

 

 

 

 

 

 

 

 

 

 

 

 

a22

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n1,n1

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nn

 

 

 

 

 

 

 

 

 

 

 

ann

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

0

 

 

 

0

 

 

a

 

 

 

K

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

a

1n

 

 

 

 

 

 

 

 

 

D1 (A

 

 

 

a11

 

 

 

 

 

 

 

 

 

a

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D)=

 

 

 

 

O

 

21

 

 

 

 

 

 

 

 

 

 

 

2n

 

= −P

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

1

 

 

 

 

M

 

 

 

 

 

 

O

 

M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ann

 

an1

 

 

 

 

 

 

L

 

 

 

 

 

 

 

 

 

 

C

 

= a b

 

;C

=

aij

;C

2 j

 

=

a2 j

 

;...;C

nj

=

anj

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ij

 

ik kj

 

ij

 

 

a11

 

 

 

 

a22

 

 

 

 

 

 

 

 

ann

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итерационный процесс, определенный такой матрицей P , называется методом Якоби.

Фактически вычисления проводятся по формулам

x

(k ) =

1

(f

m

a

x(k 1) −K− a

mm1

x(k 1) a

mm+1

x(k 1) −K−a

mn

x(k 1)).

 

 

m

amn

 

m1 1

m1

m+1

n

 

 

 

 

 

 

 

 

 

 

 

m =1,2,..., n .

Утверждение.

Для сходимости метода Якоби достаточно, чтобы для исходной матрицы A имело место диагональное преобладание, т.е. чтобы

aij > aij i .

ji

Всамом деле, тогда условие теоремы 1 выполнено для нормы Pc :

91

 

 

 

 

 

= max

 

 

 

 

aij

 

 

 

 

a ji

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

c

 

 

 

 

 

 

= max

j

i

 

 

 

 

<1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

aii

 

 

 

 

aii

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i ji

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пусть теперь дано двумерное уравнение Пуассона в прямоугольнике

U xx +U yy = − f , U Г =U0

Выбирая для простоты сетку, равномерную и одинаковую по x и y , полу-

чим пятиточечный шаблон Рис.10.1):

Рис. 10.1. Пятиточечный шаблон “Крест”

в узле (m, n) :

Um+1,n 2Um,n +Um1,n

+

Um,n+1 2Um,n +Um,n1

= − fmn

 

 

 

 

 

 

 

 

h2

 

 

 

h2

 

 

 

или, Um+1,n +Um1,n 4Um,n +Um,n+1 +Um,m1 = − fm,n h2

 

 

 

 

 

 

m =1,2,K, M 1;n =1,2,K, N 1.

 

 

 

(k )

 

1

 

 

2

(k 1)

 

(k 1)

(k 1)

 

(k 1)

 

Um,n

=

 

( fmn h

 

+Um1,n

+Um+1,n

+Um,n1

+Um,n+1

)

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итерационный процесс Якоби здесь реализуется следующим образом:

1)Значения функции на границе заданы, известны.

2)Зададим некоторое начальное приближение функции во внутренних узлах (близость этого значения к решению часто бывает очень важна).

3)Вычисляем U22(1) по окружающим точкам нулевого приближения: U21 и

U12 на границе, а также U23(0) и U32(0) .

92

- затем U23(1) по U22

(0) , U24

(0) и U33(0) , и т.д. до UM 1,2 , затем по аналогии U3n

и т.д

 

 

После последовательного прохождения по всем линиям от U22 до UM 1,2 ;

 

 

U 23 до UM 1,3

 

 

KKK

 

 

U2,N 1 до UM 1,N 1

один цикл итераций выполнен.

Число арифметических операций на шаге равно 2n2 .

Ясно, что при вычислении U23(1) удобно воспользоваться уже известным значением U22(1) с первого шага итерации. В этом случае погрешность преды-

дущей итерации последовательно оттесняется слева направо и снизу вверх.

Такая модификация итерационного процесса называется методом Зейделя. Формулы метода Зейделя имеют вид:

x

(k) =

1

 

( f a x (k 1)

a

x

(k 1) ... a

 

 

x

(k 1) )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

a11

1

 

12

2

 

13 3

 

1n

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

(k) =

1

 

 

( f

2

a

 

x (k) a

23

x (k1) ... a

2n

x

 

(k1) )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

a22

 

 

 

 

 

21 1

 

3

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

KKK

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

(k ) =

1

 

 

( f

m

a

x (k ) a

m2

x

(k ) ... a

mm1

x

(k ) a

mm+1

x

(k ) ... a

mn

x

(k 1) )

 

 

 

 

 

 

 

m

 

 

amm

 

 

 

m1 1

 

 

 

2

 

 

m1

 

m+1

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если представить матрицу A в виде суммы A = A+ D + A+ ( A, D, A+ - ниж-

няя треугольная, верхняя треугольная и диагональная матрицы с элементами матрицы A ), то методу Зейделя соответствует матрица:

P = −(A A+ )1 A+ = −(A+ D)1 A+ (для метода Якоби P = −D1(A D) ). Можно доказать, что метод Зейделя гарантированно сходится, если

-выполнено условие диагонального преобладания матрицы A или

-матрица A является симметричной ( A = A* ) и положительно определен-

ной.

93

В одинаковых условиях (диагональное преобладание) метод Зейделя схо-

дится примерно в два раза быстрее метода Якоби ( k итераций и k2 итераций).

Для оценки сходимости итерационных методов часто используются модельные (тестовые) задачи. (Прямых доказательств нет, есть асимптотические оценки, но это целая своя теория).

При решении пятиточечного уравнения Пуассона (схема “Крест”), возможна реализация не точечного, а “блочного” метода Зейделя.

В этом случае уравнения записываются в виде :

(k )

 

 

(k )

(k )

 

 

 

(k 1)

+Um,3

(k 1)

= − fm2

h

2

( )

при n = 2 : Um1,2

+Um+1,2

4Um,2

+Um,1

 

 

m = 2,3,..., M 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При этом заданы U12 =U

 

Г

и UM 2 =U

 

Г

- граничные условия.

 

 

 

 

 

 

Система ( ) решается методом прогонки (что можно сделать для любых граничных условий, а не только первого рода), и системе сеточных функций присваивается новое значение “ k - той итерации”.

Затем решается система уравнений при n = 3 :

Um1,3(k ) +Um+1,3(k) 4Um,3(k) +Um,2(k* ) +Um,4(k 1) = − fm3 h2

m = 2,3,..., M 1

с граничными условиями справа и слева.

При этом Um,2(k* ) берется с уже посчитанного уравнения на линии n = 2 , а

Um,4(k 1) - с предыдущей итерации.

Таким образом, погрешность (невязка) “блочно”, линиями оттесняется “снизу вверх”.

После проведения первой итерации по строкам ( n = 2,K, N 1) эффективно выполнить первую итерацию с прогонками по столбцам ( m = 2,K, M 1 ).

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

В случае граничных условий 2 или 3 рода (Рис. 10.2) сходимость итерационного процесса резко замедляется по вполне понятным причинам.

94

Рис. 10.2. Граничные условия 2-го и 3-го рода

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

Для решения различных линейных схем множество итерационных схем можно записать в канонической форме:

B

xr(k +1) xr(k)

+ Axr(k) = f .

τk +1

k +1

 

Bk = E - в этом случае это явные итерационные процессы,

Bk E - неявные итерационные процессы,

Bk = B, τk = τ - стационарные итерационные процессы.

Мы рассмотрели:

1)Bk = D, τk =1 - метод Якоби.

2)Bk = D + A, τk =1 - метод Зейделя.

Чтобы ускорить итерационный процесс, видоизменяют метод Зейделя, вводя итерационный параметр ω так, чтобы

(A+ ω1 D) (xr(k +1) xr(k ) ) + A xr = f

Такой метод называется методом релаксации. Метод Зейделя соответствует значению ω=1.

Если ω >1, то итерационный процесс называется методом верхней релаксации.

Здесь Bk = B = A+ ω1 D, τk =1 (стационарный неявный итерационный про-

цесс).

95

0 < ω < 2

Условия сходимости: A = A* > 0 и (как в методе Зейделя). Скорость сходимости зависит от параметра ω . Существуют теоретические

оценки для ω и скорости сходимости, но их применение требует знания спек-

тра оператора D1( A+ A+ ) , который не всегда легко найти.

Поэтому на практике параметр ω подбирают так, чтобы минимизировать число итераций. Это особенно удобно, если решается класс однотипных задач.

Для примера рассмотрим применение метода верхней релаксации в одной сложной численной схеме (нелинейные уравнения Навье - Стокса), где на каждом шаге по времени необходимо решать эллиптическое уравнение Пуассона

U xx +U yy = − f , U Г =U 0

с граничными условиями условиями первого рода. Запишем разностную схему в виде:

U m1,n +U m+1,n 4U m,n +U m,n1 +U m,n+1 = − fmn h2 , U Г =U 0

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

Скорость сходимости процесса сильно зависит от нулевого начального приближения, за которое принято значение U на прошлом шаге по времени.

Сначала, как и в методе Зейделя, выполняются прогонки по строкам от

n = 2 до n = N 1 .

Вторая часть итерации состоит в выполнении прогонок по столбцам.

Выполняя прогонку при

 

m = 2

( n = 2,K, N 1), вычисляем новое значение

U2,n(k ) , но в ячейки заносим не это значение, а значение

 

~

(k )

 

 

(k )

 

 

 

(k 1)

;(n = 2,..., N 1)

U2,n

 

= ω U2,n

+ (1ω) U2,n

При ω =1 - это блочный метод Зейделя.

 

 

 

~

 

(k )

берется с некоторым “весом” предыдущей итерации.

При 0 < ω<1 U 2,n

 

(Например, при

 

 

~

(k )

 

(k )

(k 1)

- запаздывание).

 

ω = 0.5 : U

2,n

= 0.5U 2,n

+ 0.5U 2,n

96

~

 

(k )

 

берется с избыточным “весом” с новой n - той итера-

При 1 < ω < 2 U

2,n

 

ции.

 

 

 

 

 

 

 

 

 

(Например, при ω =

 

~

(k )

(k )

0.5U2,n

(k 1)

)

1.5 : U

2,n

=1.5U2,n

 

Предположим, необходима относительная точность вычислений:

max

 

U

 

= δ < ε =105

 

 

 

 

 

 

 

 

 

U (k )

 

 

 

2mM 1

 

 

 

 

 

 

2nN 1

 

 

 

 

 

 

 

 

U =U mn (k ) U mn (k 1) .

На первых шагах итераций берется ω = 0.5 ÷ 0.7,(ω <1) , затем, когда насту-

пает условие δ <1 , значение ω меняется на ω =1 , а когда δ < 0.1 или δ < 0.01 , то можно взять ω =1.5 ÷1.7 , и итерации быстро сходятся до δ < ε =105 .

97