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

Информатика 2 сессия / Численные методы решения задач строительства на ЭВМ

.pdf
Скачиваний:
333
Добавлен:
29.03.2015
Размер:
2.5 Mб
Скачать

Численные методы решения задач линейной алгебры

 

xi = Ui xi+1 + Vi , (i =1,2,3,...,n 1) ,

(2.13)

где

U

1

=

c1

,

V =

d1

 

(2.14)

 

 

 

 

 

b1

 

1

b1

 

 

 

 

 

 

 

 

Последующие прогоночные коэффициенты:

Ui =

ci

,

Vi =

di aiVi1

,

 

 

 

Li

 

Li

Li = aiUi1 + bi .

Формулы (2.15) включают и вычисление U1 и V1 при U 0 =

После прямого хода система (2.11) примет вид

x1 = U1x2 + V1, x2 = U2 x3 + V2 ,

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

xn1 = Un1xn + Vn1, an xn1 + bn xn = dn.

(2.15)

0,V0 = 0 .

(2.16)

Обратная прогонка состоит в последовательном вычислении неизвестных xi .Сначала вычисляется неизвестное

xn ,используя два последних уравнения преобразованной системы

(2.16):

xn = (dn anVn1) /(bn + anUn1) .

(2.17)

Затем, используя выражение (2.13), последовательно вычисляются все неизвестные xn1, xn2 ,L, x2 , x1 .

:Алгоритм метода прогонки

1)Вычисляются прогоночные коэффициенты Ui, Vi по формулам

(2.15) для i=1,2,…n-1;

2)Определяется xn из выражения (2.17);

3)По формуле (2.13) последовательно вычисляются все остальные неизвестные xn1, xn2 ,L, x2 , x1 .

53

Численные методы решения задач линейной алгебры

2.2.4. Метод (схема) Холецкого

Данный метод имеет несколько модификаций. Он основан на

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

Можно показать, что для симметричной положительно

определенной матрицы А всегда существует разложение

A = L × LT ,

(2.18)

где L нижняя треугольная матрица, а LТ транспонированная к ней верхняя треугольная матрица.

Матрицу L легко получить методом Гаусса, но на практике

предпочитают выполнять вычисления путем прямого сопоставления матриц А и L× LT. Элементы матрицы L можно определять по строкам или по столбцам, приравнивая соответствующие элементы матриц L и×LT к элементам матрицы А в выражении (2.18). Если матрицу вычисляют по строкам, то для элементов i-й строки справедливы следующие соотношения:

 

 

 

j1

 

 

l jj

= a jj - ål2jk

,

(2.19)

 

 

 

k =1

 

 

 

 

 

j1

 

 

 

 

aij - ålik l jk

 

 

lij

=

 

k =1

 

, j +1 i n

(2.20)

 

l jj

 

 

 

 

 

(j=1,2,...,n).

Решение системы уравнений A ´ X = B осуществляется в два этапа:

1)сначала определяется вектор Y из уравнения LY = B ,

2)затем вектор неизвестных X находится из уравнения LT X = Y :

54

Численные методы решения задач линейной алгебры

 

 

i1

 

 

 

 

bi - ålik × yk

 

 

 

yi =

 

k =1

,(i =1,K,n);

(2.21)

 

lii

 

 

 

 

 

 

 

n

 

 

 

 

 

yi - ålki × xk

 

 

xi =

 

k =i+1

 

,(i = n,K,1) .

(2.22)

 

lii

 

 

 

 

 

 

Метод Холецкого особенно эффективен для решения систем линейных алгебраических уравнений с ленточными симметричными матрицами. Такого вида матрицы обычно

получаются при решении задач механики деформируемого твердого тела при использовании различных численных методов, в

частности, метода конечных элементов (МКЭ). Ход решения при этом не изменяется, только следует учитывать ширину ленты m . Вне ширины этой ленты элементы матриц A и L равны нулю. Формулы (2.19) и (2.20) с учетом этого будут иметь вид

 

 

 

i1

 

 

 

l jj

=

 

aii - ål2jk ,

 

(2.23)

 

 

 

k =im

 

 

 

 

 

i1

 

 

 

 

aij - ålik l jk

 

 

lij

=

 

k =im

 

,

(2.24)

 

l jj

 

 

 

 

 

j= i-m ,..., i-1.

Аформулы (2.21) и (2.22) соответственно

 

 

 

i1

 

 

 

 

bi -

ålik × yk

 

 

yi =

 

k=im

,(i =1,K,n);

(2.25)

 

lii

 

 

 

 

 

 

 

 

i+m

 

 

 

 

yi - ålki × xk

 

 

xi =

 

 

k=i+1

 

,(i = n,K,1).

(2.26)

 

lii

 

 

 

 

 

55

Численные методы решения задач линейной алгебры

Метод обладает вычислительной устойчивостью.

Существует и другой вариант разложения исходной матрицы А на произведение [12]:

 

A = L × D ×LT ,

 

(2.27)

где

L нижняя треугольная матрица

с

единицами

на

 

диагонали;

 

 

 

 

D диагональная матрица;

 

 

 

 

LT верхняя треугольная матрица с единицами на

 

диагонали.

 

 

 

 

Это разложение дало название методу

метод LDLT

факторизации.

 

 

 

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

2.3. Итерационные методы решения систем линейных алгебраических уравнений

В этой группе методов мы познакомимся с двумя старыми и простыми методами: методом Якоби и методом Гаусса Зейделя

[8, 12].

2.3.1. Метод Якоби (простых итераций)

Задана система линейных алгебраических уравнений

a x + a

12

x

2

+ .........

+ a

 

x

n

= b , ü

 

11 1

 

 

 

1n

 

 

1

 

ï

 

a21 x1 + a22 x2

+ .........

+ a2n xn

= b2

,ï

(2.28)

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

 

 

 

 

 

 

ý

 

 

 

 

 

 

ï

 

a

x + a

n2

x

2

+ .........

+ a

nn

x

n

= b

n

ï

 

 

n1 1

 

 

 

 

 

 

 

 

þ

 

или в матричной форме

56

Численные методы решения задач линейной алгебры

_ _

(2.28 а)

A × X = B .

Предполагаем, что диагональные элементы матрицы А

удовлетворяют условию

 

aii

 

³ å

 

aij

 

, (i =1,2,...,n).

(2.29)

 

 

 

 

 

 

 

 

 

i¹ j

 

 

 

 

 

Преобразуем систему (2.28) к эквивалентной, неизвестное xi из i-го уравнения:

x1 = (b1 - a12 x2 - .........

- a1n xn ) / a11 ,

ü

x2 = (b2 - a21 x1 -

- a2n xn ) / a22 ,

ï

ï

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

ý

ï

xn = (bn - a11 x1 -

 

ï

- an,n-1 xn-1 ) / ann .þ

выражая

(2.30)

Система (2.30) называется системой, приведенной к нормальному виду. Вводя обозначения

 

αij = -aij / aii ,

 

βi = bi / aii ,

 

 

 

 

(2.31)

 

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

j =1,2,..n,

i ¹

j),

 

 

 

 

систему (2.30) можно записать в матричной форме

 

 

 

 

 

 

_

_

 

_

 

 

 

 

 

 

(2.32)

 

 

 

 

X = b+ α X ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

_

 

 

 

é x

 

 

 

é 0 a

 

L a

 

ù

 

éb

ù

 

 

ù

 

 

ê

 

12

 

 

1n ú

-

ê 2

ú

 

 

ê 1

ú

 

где

α = êa21

0

L a2n ú, b = êb2

ú,

 

X = êx2

ú

(2.33)

 

ê

.

.

.

ú

 

ê

ú

ê

ú

 

 

ê .

ú

 

êKú

 

 

êLú

 

 

ëan1

an2

L 0

û

 

ëbn û

 

 

ëxn û

 

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

57

Численные методы решения задач линейной алгебры

 

 

X

(0)

= β,

 

 

 

 

 

 

r

 

r

r

(0) ,

 

 

 

 

X

(1)

= β + αX

 

 

 

 

LLLLLL

 

(2.34)

 

 

r

 

r

r

(k1)

 

 

 

 

X

(k ) = β + αX

 

 

 

 

KKKKKKK

 

 

Таким образом, получили последовательность приближений:

 

r

r

 

 

r

 

 

 

(2.34)

X

(0) ,X

(1) ,K, X (k) ,K

 

 

 

 

 

 

 

 

_

_

(k )

Если эта последовательность имеет предел X = lim X

, то

k →∞

он является точным решением системы (2.28). На практике итерационный процесс продолжается до тех пор, пока два соседних приближения не станут достаточно близкими.

Критерий близости двух приближений может быть определен следующим образом:

M (k) =

max

x(k ) x(k 1)

≤ ε .

(2.35)

 

i

i

 

 

 

i

 

 

 

 

Eсли условие (2.35) выполнено, то итерационный процесс прекращается. За приближенное решение системы (2.28) с заданной точностью ε принимается (k)-е приближение, т.е.

_ _ (k)

X X .

G За м е ч а н и я:

1.Начальный вектор X (0) может быть взят произвольным, так как

сходимость процесса итерации зависит только от свойств матрицы

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

предельному вектору и при любом другом выборе этого начального приближения.

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

58

Численные методы решения задач линейной алгебры

n Пример 2.2. Методом Якоби решить систему линейных алгебраических уравнений:

8x1 + x2 - 4x3

= 6, ü

 

 

 

 

 

 

 

ï

(2.36)

2x1 - 6x2 + x3 = -9,ý

- x

+ x

2

+ 4x

3

= 5.

ï

 

1

 

 

 

þ

 

Решение: Приведем эту систему к нормальному виду

x

 

= 0,75 - 0,125x

2

+ 0,5x

3

, ü

 

1

 

 

 

ï

 

x2

= 1,5 + 0,333x1 + 0,167x3

,ý

(2.37)

x

3

= 1,25 + 0,25x

- 0,25x

2

.

ï

 

 

1

 

 

 

þ

 

В матричной форме систему (2.37) можно записать так:

é x

ù

é0,75ù

é

0

- 0,125

0,5

ù

éx

ù

 

ê 1

ú

ê

1,5

ú

ê

 

0

 

ú

ê

1

ú

(2.38)

êx2 ú

= ê

ú

+ ê0,333

0,167ú

× êx2 ú

êx

3

ú

ê1,25

ú

ê

0,25

- 0,25

0

ú

êx

ú

 

ë

û

ë

 

û

ë

 

 

 

û

ë

3

û

 

За нулевые приближения корней системы примем нулевой вектор

x(0)

= 0 ;

x(0)

= 0 ;

x(0)

= 0 .

1

 

2

 

3

 

Подставляя эти значения в правые части уравнения (2.37), получим первые приближения корней:

x1(1) = 0,75 - 0,125×0 + 0,5×0 = 0,75, x2(1) = 1,5 + 0,333×0 + 0,5×0 =1,5, x3(1) = 1,25+ 0,25×0 - 0,25×0 = 1,25.

Далее, подставляя эти найденные приближения в формулы (2.37), получим вторые приближения корней:

x1(2) = 0,75- 0,125×1,5 + 0,5×1,25 =1,188, x2(2) = 1,5 + 0,333×0,75+ 0,5×1,25 = 1,958, x3(2) = 1,25 + 0,25×0,75 - 0,25×1,5 = 1,063.

После новой подстановки будем иметь третьи приближения корней:

x(3)

= 1,036 ;

x(3)

= 2,073 ;

x(3)

= 1,057 .

1

 

2

 

3

 

59

Численные методы решения задач линейной алгебры

Четвертая итерация дает

 

 

 

 

x(4)

= 1,020 ;

x(4)

= 2,022 ;

x(4)

= 0,991 и т.д.

1

 

2

 

3

 

Потребуется 8 итераций, чтобы получить решение СЛАУ (2.36) с точностью ε = 0,001 . Точное решение х1=1; х2=3; х3=1.

Решение данного примера с использованием электронных таблиц Excel приведено в разделе 2.9.3.

2.3.2. Метод Гаусса – Зейделя.

Метод представляет собой модификацию метода Якоби. Основная идея метода заключается в том, что при вычислении

(k+1)-й итерации неизвестное xi(k +1) вычисляется с учетом уже

найденных: x1(k +1) , x2(k +1) ,Kxi(k1+1) .

Проиллюстрируем метод для n=3. Пусть система линейных алгебраических уравнений уже приведена к нормальному виду:

x1 x2 x3

=b1 + a12 x2

=b2 + a21 x1

=b3 + a31 x1

+ a13 x3 , ü

 

ï

(2.39)

+ a23 x3 ,ý

ï

 

+ a32 x2 .þ

 

Выбираем

произвольное

 

начальное

приближение

_

 

 

x(0) } и подставляем в первое уравнение системы

X (0) {x(0)

x

(0)

1

 

2

3

 

 

 

 

 

 

 

 

 

 

 

 

(2.39)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(1) = b + a

12

x(0) + a x(0) .

 

 

 

 

 

1

1

 

 

 

2

 

13

3

 

 

Полученное

первое

приближение

x(1) подставляем во второе

уравнение системы (2.39)

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(1)

= b

2

+ a

21

x(1)

+ a

23

x(0) .

 

 

 

 

 

2

 

 

 

 

1

 

3

 

Используя x(1)

, x(1) , находим x(1)

из третьего уравнения

 

 

1

2

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

x(1)

= b

3

+ a

31

x(1)

+ a

32

x(1) .

 

 

 

 

 

3

 

 

 

 

1

 

2

 

60

Численные методы решения задач линейной алгебры

Этим заканчивается построение первой итерации

_

(1)

{x(1)

x(1)

x(1)

}.

X

 

 

 

1

2

3

 

_ (1)

Используя значения X , можно таким же способом построить следующие итерации. Итерацию с номером (k+1) можно представить следующим образом:

x(k +1)

= β

1

+ α

12

x(k )

+ α

13

x(k ) ,

 

1

 

 

 

 

2

 

 

3

 

x(k +1)

= β

2

+ α

21

x(k +1)

+ α

23

x(k ) ,

(2.40)

2

 

 

 

 

1

 

 

 

3

 

x(k +1)

= β

3

+ α

x(k+1)

+ α

32

x(k +1) .

 

3

 

 

 

31

 

 

1

 

 

 

2

 

Итерационный процесс продолжается до тех пор, пока два

соседних приближения

_ (k )

_

(k +1)

не станут

достаточно

X

 

 

 

 

, X

 

 

 

близкими. Критерий близости может быть задан следующим образом:

max

x(k )

x(k +1)

≤ ε .

 

(2.41)

i

i

i

 

 

 

За приближенное решение системы (2.28)

с точностью ε

принимается (k+1)-я итерация, т.е.

 

 

 

 

_

_ (k+1)

 

 

 

 

X X

.

 

nПример 2.3. Методом Гаусса Зейделя решить ту же самую систему (2.36), которую решали методом Якоби.

Система, приведенная к нормальному виду:

x1 = 0,75 - 0,125x2 + 0,5x3 , ü x2 = 1,5 + 0,333x1 + 0,167x3 ,ïý x3 = 1,25 + 0,25x1 - 0,25x2 . ïþ

В качестве нулевого приближения возьмем вектор свободных членов b :

x(0)

= 0,75 ;

x (0)

= 1,5 ;

x (0)

= 1,25 .

1

 

2

 

3

 

61

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

x

(1)

= 0,75 - 0,125×1,5 + 0,5×1,25 = 1,188;

ü

1

ï

x2(1)

= 1,5 + 0,333×1,188 + 0,167×1,25 = 2,104;

ï

ý

x

(1)

= 1,25+ 0,25×1,188 - 0,25×2,104 =1,021.ï

 

3

 

ï

 

 

 

þ

x(2)

= 0,75 - 0,125×2,104 + 0,5×1,021 = 0,997;

ü

 

1

 

ï

 

x2(2)

 

ï

и т.д.

= 1,5 + 0,333×0,997 + 0,167×1,021 = 2,003;ý

x3(2)

= 1,25 + 0,25×0,997 - 0,25×2,003 = 0,999

ï

 

ï

 

þ

Точное решение этой системы имеет вид: х1=1; х2=3; х3=1.

Решение данного примера с использованием электронных таблиц Excel приведено в разделе 2.9.4.

2.3.3. Условия сходимости итерационного процесса

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

Доказывается теорема [8], что, если хотя бы одна из норм матрицы нормальной системы (2.30) меньше единицы, то итерационный процесс сходится к единственному решению. Т.е.

изложенные выше итерационные методы можно использовать для систем, удовлетворяющих одному из следующих условий [12]:

n

α1 = maxi å αij <1, либо

j=1

n

α 2 = maxj å αij <1, либо (2.42)

i=1

2

α 3 = å αij <1.

i, j

62