Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пособие_Бедарев_Федорова_Федорченко

.pdf
Скачиваний:
91
Добавлен:
09.04.2015
Размер:
1.64 Mб
Скачать

надо включить единичную матрицу. Преобразования в строках, приводящие исходную матрицу к диагональному виду, будут переводить единичную матрицу в обратную, а вектор правых частей – в решение СЛАУ.

Пример 1.8. Решить СЛАУ

x1+ x2 x3 = 2

 

 

− 2x1+ x2 + x3 = 3

 

x1+ x2 + x3 = 6

 

методом Гаусса – Жордано и найти обратную матрицу. Записываем расширенную матрицу и с помощью эквивалентных преобразований переводим матрицу системы в единичную:

 

A

 

 

I

 

f

1

1

– 1

1

0

0

2

– 2

1

1

0

1

0

3

1

1

1

0

0

1

6

Прибавляем ко второй строке первую, умноженную на 2, а из третьей вычитаем первую:

1

1

– 1

1

0

 

0

 

2

0

3

– 1

2

1

 

0

 

7

0

0

2

– 1

0

 

1

 

4

Делим вторую строку на 3 и вычитаем ее из первой:

 

1

0

1

1

1

 

0

 

1

3

3

3

 

 

3

0

1

1

2

1

 

0

 

7

3

3

3

 

 

3

0

0

2

– 1

0

 

1

 

4

Делим последнюю строку на 2 и прибавляем ее с коэффициентом 13 к первой строке и с коэффициентом − 13 – ко второй:

40

 

1

 

0

 

0

 

0

 

 

 

1

 

1

 

1

 

 

 

 

 

 

 

3

 

3

 

 

0

 

1

 

0

 

1

 

 

 

1

 

1

 

3

 

 

 

 

2

 

 

 

3

 

6

 

 

0

 

0

 

1

 

1

 

 

 

0

 

1

 

2

 

 

 

 

2

 

 

 

 

2

 

 

 

 

I

 

 

A

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

A × A−1 = I , Ax

 

 

 

 

 

Выполняя

проверку

= f

,

убеждаемся,

что

решение найдено правильно.

Часто возникает необходимость в решении СЛАУ, матрицы которых являются слабо заполненными, т.е. содержат много нулевых элементов. В то же время эти матрицы имеют определенную структуру. Среди таких систем выделим системы с матрицами ленточной структуры, в которых ненулевые элементы располагаются на главной диагонали и на нескольких побочных диагоналях. Для решения систем с ленточными матрицами коэффициентов вместо метода Гаусса можно использовать более эффективные методы, например, метод прогонки.

Рассмотрим наиболее простой случай: систему с трехдиагональной матрицей коэффициентов, к которой сводится решение ряда численных задач (сплайн-интерполяция таблично заданной функции, дискретизация краевых задач для дифференциальных уравнений методами конечных разностей и др.). В этом случае СЛАУ имеет вид:

c1x1 + b1x2

= f1

(1.6)

ai xi−1 ci xi + bi xi+1 = fi , i = 2, 3, …, m – 1

(1.7)

am xm−1 cm xm

= fm

(1.8)

Матрица системы (1.6) – (1.8) имеет трехдиагональную структуру, что хорошо видно из следующего эквивалентного векторноматричного представления:

41

- c1

b1

0 0 K 0

0

a2

- c2

b2

0 K 0

0

 

 

- c3

b3

 

 

 

0 a3

0

K 0

0 0 a4

- c4

b4

0 K K

K K K K K K K K

K K K K K K K K

0 0 0 0 K am−1

- cm−1

0

0

0

0

K

0

am

 

 

 

 

 

 

 

0

 

 

x1

 

 

 

f1

 

0

 

 

 

x2

 

 

 

f2

 

0

 

 

 

 

 

 

 

 

 

x3

 

 

 

f3

 

 

 

 

...

 

×

 

M

 

=

 

M

.

...

 

 

 

 

 

...

 

 

 

M

 

 

 

M

 

 

 

 

xm−1

 

 

fm−1

bm−1

 

xm

 

 

fm

 

 

 

 

 

 

 

 

 

 

 

- cm

 

 

 

 

Если при этом выполняется условие ci ³ bi + ai , то говорят, что

матрица данной системы имеет диагональное преобладание. Предположим, что существуют такие наборы чисел αi и βi,

i = 2, 3, …, m, при которых

xi = αi+1xi+1 + βi +1 .

(1.9)

Записав уравнение (1.6) в виде (1.9):

 

 

x =

b1

 

x

 

f1

,

 

 

 

2

 

 

 

 

1

 

c1

 

 

 

c1

 

 

 

 

 

 

 

 

 

 

 

 

получим формулы для определения α2, β2:

 

α2

=

b1

, β2

= -

f1

.

 

(1.10)

c1

 

 

 

 

 

 

 

 

 

 

c1

 

 

Уменьшим в (1.9) индекс на единицу: xi −1 = αi xi

+ βi , и под-

ставим полученное выражение в (1.7):

aiαi xi + ai βi ci xi + bi xi +1 =

откуда

x =

bi

x

+

ai βi fi

 

 

i

ci - aiαi

i +1

 

ci - aiαi

 

 

 

fi ,

.

Данное

равенство

совпадает

с (1.9), если при

всех

i = 1, 2, …,

m – 1 выполняются рекуррентные соотношения

 

 

αi +1 =

bi

, βi+1

=

ai βi fi

.

(1.11)

 

ci - aiαi

 

 

 

 

 

ci - aiαi

 

Они позволяют получить все остальные коэффициенты αi, βi. При i = m – 1 из (1.9) получим xm−1 = αm xm + βm .

42

Подставляя это выражение в (1.8) и разрешая полученное выражение относительно xm, записываем:

xm =

am βm fm

,

(1.12)

 

 

cm - amαm

 

где αm и βm известны. Далее по формулам (1.9) последовательно

находятся xm–1 , xm–2 , …, x1.

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

Будем называть прогонку корректной, если знаменатели прогоночных коэффициентов в формуле (1.11) не обращаются в нуль, и устойчивой, если |αi| < 1 при i = 1, 2, 3, …, m.

Теорема. Пусть коэффициенты ai, bi уравнения (1.7) отличны от нуля и пусть ci ³ bi + ai при i = 1, 2, 3, …, m. Тогда

прогонка корректна и устойчива.

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

4.2. Итерационные методы решения СЛАУ

Рассмотрим систему линейных алгебраических уравнений (1.5). Итерационные методы, или методы последовательных приближений, дают возможность построить последовательность

векторов

R

R

R

R

 

пределом которой должно

x (0)

, x (1)

, x (2) ,K, x (k ) ,K ,

 

 

 

R

R

(k ) .

 

быть точное решение x

* = lim x

 

 

 

 

 

k →∞

 

 

На практике

построение последовательности обрывается,

как только достигается желаемая точность. Чаще всего для дос-

таточно

 

малого

 

значения ε > 0 контролируется выполнение

оценки

 

V

R

(k )

 

< ε .

 

 

 

x

* x

 

 

 

 

 

 

43

Метод последовательных приближений может быть построен по следующей схеме. Эквивалентными преобразованиями приведем систему (1.5) к виду

R

R

+ d ,

(1.13)

x

= C x

где x – тот же самый вектор, а C и d

некоторые новые мат-

рица и вектор соответственно.

При решении методом последовательных приближений необходимо выбрать начальное (нулевое) приближение. За нуле-

вое приближение можно принять столбцы правых частей f , d системы (1.13) или нулевой вектор. Следующее приближение

R(1)

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

x

 

 

 

R

R

 

 

R(2)

x

(1) = C x(0) + d .

Далее находим

:

 

x

 

 

 

 

R

R

 

 

 

x

(2) = C x(1) + d ,

и т.д. Для k-й итерации получаем

R

R

(k ) + d , k = 0, 1, 2, ... (1.14)

x

(k +1) = C x

Такой итерационный процесс будем называть одношаговым итерационным методом.

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

 

 

R

(k )} при k → ∞ имела пределом

C , чтобы последовательность {x

R

* , т.е. была решением системы (1.13), эквивалентной исходной

x

 

R

R

 

системе (1.5): lim x

(k ) = x* .

 

 

k →∞

 

 

 

Достаточным условием сходимости итерационного мето-

да (1.13) к решению системы (1.5) при любом начальном векто-

ре

R

(0) является требование C

< 1, где C – норма матрицы С.

x

В общем виде одношаговый итерационный метод можно записать в так называемой канонической форме:

R(k +1)

R(k )

+ Ax(k ) =

R

B (k +1) x

x

f .

 

 

R

 

τ (k +1)

44

Здесь B(k +1) – матрица, задающая итерационный метод, τ k +1

итерационный параметр. Если B(k +1) = E (где E – единичная матрица), то метод называют явным, а в противном случае –

неявным. Если матрица B(k +1) и итерационный параметр τ (k +1) не зависят от номера итерации ( B(k +1) = B, τ (k +1) = τ ), то

метод называют стационарным, и нестационарным – в про-

тивном случае.

Использование неявных методов сопровождается обраще-

нием матрицы Bk +1 , поэтому для сохранения эффективности алгоритма эта матрица должна быть легко обратима (например,

Bk +1 – диагональная, треугольная, трехдиагональная или ортогональная).

Приведем некоторые примеры. Для этого представим мат-

рицу

A в виде A = A1 + D + A2 , где D – диагональная матрица,

A1

левая треугольная, A2 – правая треугольная. A1 и A2 име-

ют нулевую главную диагональ. Ненулевые элементы всех трех матриц совпадают с соответствующими элементами матрицы A .

Метод релаксации (простой итерации). Здесь

B(k +1) = E , а τ (k +1) = τ .

Итерационный метод Ричардсона. Здесь B(k +1) = E , а

τ(k +1) – переменный параметр.

Метод Якоби. B(k +1) = D , а τ (k +1) = 1 .

Метод верхней релаксации. B(k +1) = D + ωA , τ k +1

= ω ,

1

 

0 < ω < 2 , где ω – заданный числовой параметр.

Для

ω = 1 как частный случай получается метод Гаусса– Зейделя. Для симметричных положительно определенных матриц A условие 0 < ω < 2 является условием сходимости метода.

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

45

Предположим, что диагональные элементы матрицы A ис-

ходной системы (1.5) не равны 0 (aii ¹ 0, i = 1, 2, …, m). Разрешим первое уравнение системы (1.5) относительно x1, второе

относительно x2 и т.д. Получим следующую эквивалентную систему, записанную в скалярном виде:

x1 = C12 x2 + C13 x3 + ... + C1n xn + d1

 

x2

= C21x1 + C23 x3 + ... + C2n xn + d2

,

....................................................

 

xn

= Cn1x1 + Cn2 x2 + ... + Cn,n -1xn -1 + dn

 

что совпадает с формулой (1.13), в которой матрица C и вектор d определены по следующим формулам:

 

 

aij

 

 

 

 

 

 

 

-

 

, i ¹ j

 

 

fi

 

 

 

 

 

 

 

Cij =

 

a

 

,

di =

 

, i = 1, 2, ..., n.

(1.15)

 

 

 

 

 

ii

i = j

 

 

aii

 

 

0,

 

 

 

 

 

 

 

 

 

 

Метод, основанный на таком приведении системы (1.5) к виду (1.13), называют методом Якоби. Теперь, задав нулевое приближение, по рекуррентным соотношениям (1.14) можем выполнять итерационный процесс.

Условие сходимости C < 1 в методе Якоби равносильно условию диагонального преобладания для исходной матрицы A:

m

aii > aij , i = 1, 2, ..., m.

j=1 i¹ j

Действительно, пусть для матрицы А выполняется условие диагонального преобладания. Разделим обе части данного нера-

венства на aii , получим неравенство

1 >

 

aij

, i = 1, 2, ..., m.

m

 

 

 

 

 

 

 

j=1

 

aii

 

 

 

i¹ j

 

 

 

С учетом (1.15) можно перейти к следующему неравенству:

m

1 > Cij , i = 1, 2, ..., m.

j=1

46

То есть сумма элементов любой строки матрицы C меньше 1. Выполнение такого условия равносильно выполнению условия

m

сходимости метода C = max Cij < 1 .

1≤im j=1

Под методом Гаусса– Зейделя обычно понимается такое видоизменение одношагового итерационного метода (1.15) решения СЛАУ, в котором для подсчета i-й компоненты (k + 1)-го

приближения xi (k +1) к искомому вектору xR* используются уже вычисленные на этом, т.е. (k + 1)-м шаге, значения первых i – 1 компонент xi −1(k +1) . Это означает, что если система (1.5) тем или

иным способом сведена (например, с помощью метода Якоби) к системе (1.13) с матрицей коэффициентов С и вектором свобод-

ных членов d ,

то ее приближение к решению по методу Зейде-

ля определяется системой равенств

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

(k +1) = C x (k ) + C x

 

(k ) + C x

(k ) + ... + C

 

x

(k )

+ d

1

 

 

 

 

 

 

1

11 1

12

 

2

 

13

 

3

 

 

 

1m

 

 

m

 

 

 

 

 

 

 

 

 

x

(k +1) = C

 

x (k +1) + C

22

x

(k ) + C

23

x

(k )

+ ... + C

2m

x

m

(k ) + d

2

 

 

 

.

 

2

 

21 1

 

 

2

 

 

3

 

 

 

 

 

 

 

 

 

 

 

.............................................................................................

 

 

 

 

 

x

m

(k +1) = C

x

(k +1) + C

m2

x

(k +1) + ... + C

m,m−1

x

 

 

 

(k +1)

+ C

m,m

x

m

(k ) + d

3

 

 

 

m1 1

 

 

 

2

 

 

 

 

 

m−1

 

 

 

 

 

 

С точки зрения компьютерной реализации одношагового итерационного метода использование метода Гаусса– Зейделя означает, что элементы массива x будут постепенно замещаться новыми элементами. В связи с такой интерпретацией метод Гаусса– Зейделя иногда называют методом последовательных смещений.

Иногда исходную систему (1.5) не удается привести к виду (1.13), выполнив при этом условие сходимости метода. В этом случае можно воспользоваться методом релаксации. Этот метод основывается на соотношении

 

 

 

 

 

x (k +1) x (k )

R

R

 

 

 

 

 

R

R

 

(k ) + f ,

 

 

 

 

 

 

 

= − Ax

 

 

 

 

 

τ

 

откуда

R

R

R

(k ) f ),

где τ

итерационный параметр.

x

(k +1) = x

(k ) − τ (Ax

Скалярные формулы метода релаксации имеют следующий вид:

47

x

(k +1) = x

(k ) −τ (a x (k ) + a x

2

(k ) + ... + a

 

x

n

(k ) f

1

)

)

 

1

1

11 1

12

 

 

1n

 

 

 

 

 

 

x

2

(k +1) = x

2

(k ) −τ (a

x

(k ) + a

22

x

2

(k ) + ... + a

2n

x

(k ) f

2

. (1.16)

 

 

 

21 1

 

 

 

 

 

 

 

n

 

 

 

..............................................................................

 

 

 

)

 

x

n

(k +1) = x

(k ) −τ (a

x (k ) + a

n2

x

(k ) + ... + a

nn

x

 

(k ) f

n

 

 

1

 

n1 1

 

 

 

2

 

 

n

 

 

 

Раскрыв скобки, можно привести (1.16) к виду (1.14), где коэф-

фициенты

матрицы C и

вектор

свободных членов d

будут

иметь вид:

Cij

1 -τ aij , i = j

di = τ fi , i = 1, 2, ..., n.

Подбо-

=

,

 

 

-τ aij ,

i ¹ j

 

 

ром параметра τ можно добиться сходимости метода релаксации. При использовании итерационных методов мы можем найти решение исходной СЛАУ (1.5) лишь приближенно с заданной

точностью. Поэтому важной проблемой является вопрос о способе остановки итерационного процесса при достижении точности. Наиболее простой способ – это сравнение между собой соответствующих неизвестных с двух соседних итераций: (k + 1) и (k). Если максимальная из всех разностей становится меньше заданной точности ε, то итерационный процесс останавливается:

max xik - xik +1 < ε .

1≤im

При использовании метода релаксации для остановки итерационного процесса можно применить способ, связанный с вычислением вектора невязки r :

m

ri = aij xk fi , j

j=1

R

показывающего, насколько полученное приближение x k отличается от точного решения. Затем вычисляется норма вектора невязки

 

 

 

 

R

 

= max | ri | .

 

 

 

 

r

 

 

R

 

 

 

 

1≤im

 

 

 

 

 

Если она мала, т.е.

 

< ε , то итерационный процесс останавли-

r

 

вается.

48

РАЗДЕЛ 2. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ

Тема 5. Численное интегрирование и дифференцирование

5.1. Постановка задачи численного интегрирования

b

Дано: определенный интеграл вида I = f (x) dx , где функ-

a

ция f (x) задана на отрезке [a, b]. Найти: значение определенного интеграла.

Для некоторых видов функции f (x) значение интеграла

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

Методы численного интегрирования основаны на замене

n

интеграла некоторой суммой In = ck f (xk ) . Такая замена

k =0

следует

из

 

определения интеграла

как

предела

суммы

 

n

(ξi

)(xi xi −1 ) , где xi [a,b]

и ξi

(xi−1 ,xi ).

 

I = lim

f

Поло-

n→∞

i =1

 

 

 

 

 

 

 

 

 

 

 

жив значение n равным некоторому конечному числу, мы перейдем от предела к вышеописанной формуле.

Приближенное равенство I = I n называется квадратурной формулой, xk узлами, а ck коэффициентами квадратур-

ной формулы. Разность между точным и приближенно вычис-

b

n

ленным значениями интеграла ψ n = f (x)dx

ck f (xk ) назы-

a

k =0

вается погрешностью квадратурной формулы.

 

49