книги / Численные методы решения задач строительства. Ч. 1
.pdfдатируется по меньшей мере 250-м годом до н.э., хотя и носит имя Гаусса.
Суть метода заключается в манипуляциях с уравнениями, врезультате чего из уравнений последовательно исключаются неизвестные. Полученная эквивалентная система (т.е. система с тем же самым решением) является системой с треугольной матрицей А.
Процесс решения состоит из двух этапов: прямого и обратного хода.
В результате прямого хода система приводится к системе с треугольной матрицей, а при выполнении обратного хода вычисляются последовательно все неизвестные [8, 13].
Продемонстрируем метод Гаусса на примере системы из трех уравнений. Обозначим каждое уравнение буквами A(i), B(i), C(i) (здесь (i) соответствует номеру шага).
a11x1 a12 x2 |
a13 x3 |
b1 |
| A(0) , |
|
|||||
a21x1 a22 x2 a23 x3 |
b2 |
| B 0 , |
(3.3) |
||||||
a |
x a |
x |
a |
x |
b |
| C(0) . |
|
||
|
31 |
1 |
32 |
2 |
33 |
3 |
3 |
|
|
|
|
|
Прямой ход
Шаг 1. Допустим ведущий элемент а11 отличен от нуля. Разделим первое уравнение на а11. Полученное при этом уравнение домножим последовательно на коэффициенты (–а21) и (–а31) и сложим с соответствующими элементами 2-й и 3-й строки.
Выполняемые действия показаны справа от системы уравнений. В результате выполнения этого шага из всех уравнений, кроме 1-го, исключается неизвестное х1.
Ведущий (главный) элемент – элемент, стоящий на главной диагонали.
51
Действия:
x |
a(1) x |
a(1) x |
b(1) |
| A 1 A 0 / a , |
|
|
||||
|
1 |
12 |
2 |
13 |
3 |
1 |
|
11 |
B |
, (3.3а) |
|
|
a22(1) x2 |
a23(1) x3 |
b2(1) |
| B A a21 |
|||||
|
|
|
|
|
|
|
1 |
1 |
0 |
|
|
|
a32(1) x2 a33(1) x3 |
b3(1) |
| C 1 A 1 a31 C 0 . |
||||||
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
Шаг 2. Выполняя аналогичные действия со вторым и третьим уравнениями (1-е уравнение при этом остается неизменным), исключаем неизвестное х2:
Действия:
x |
a(1) x |
a(1) x |
b(1) |
| A 2 A 1 , |
|
|
||||
|
1 |
12 |
2 |
13 |
3 |
1 |
| B |
B |
/ a22 , |
(3.3б) |
|
|
|
x2 a23(2) x3 |
b2(2) |
||||||
|
|
|
|
|
|
|
2 |
1 |
1 |
|
|
|
|
|
a33(2) x3 b3(2) |
| C 2 B 2 |
a321 C 1 . |
|
|||
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
Выполнив два шага для системы 3-го порядка, получили систему, эквивалентную заданной и имеющую верхнюю треугольную матрицу коэффициентов, из которой легко вычисляются все неизвестные. (Для общности можно выполнить 3-й шаг, поделив последнее уравнение на главный коэффициент.)
Обратный ход. Из последней строки полученной системы (3.3б) находим значение неизвестного х3:
b(2) x3 a3(2) .
33
Подставляя его во 2-ю строку системы (3.3б), получим значение х2:
x2 b2(2) a23(2) x3.
Имея х2, х3, аналогичным образом найдем х1 из 1-го уравнения этой же системы:
52
x1 b1(1) a12(1) x2 a13(1) x3.
Рассмотрим простой численный пример.
Пример 3.1. Методом Гаусса решить систему уравнений
2x1 4x2 3x3 4, |
|||
|
3x1 |
x2 2x3 2, |
|
|
|||
4x |
11x |
7x 7. |
|
|
1 |
2 |
3 |
Составим матрицу коэффициентов, включая свободные члены (расширенную матрицу):
|
2 |
4 |
3 |
|
4 |
||
|
|
||||||
(0) |
|
3 |
1 |
2 |
|
|
|
A |
|
|
2 |
||||
|
|
4 |
11 |
7 |
|
7 |
|
|
|
|
|
||||
|
|
|
|
|
|
Прямой ход
1-й шаг. 1-ю строку матрицы делим на а11 = 2. Умножаем полученную строку сначала на (–3) и складываем со 2-й, а затем на (–4) и складываем с 3-й:
|
1 |
2 |
1,5 |
|
2 |
||
|
|
||||||
(1) |
|
|
5 |
6,5 |
|
8 |
|
A |
0 |
|
|
||||
|
|
0 |
3 |
1 |
|
1 |
|
|
|
|
|
||||
|
|
|
|
|
|
2-й шаг. 2-ю строку матрицы А(1) делим на а22 = –5. Умножаем полученную строку на (–3) и складываем с 3-й строкой этой же матрицы:
|
1 |
2 |
1,5 |
|
2 |
|
|
|
|
||||||
(2) |
|
0 |
1 |
1,3 |
|
1,6 |
|
A |
|
|
|
||||
|
|
|
0 |
2,9 |
|
5,8 |
|
|
0 |
|
|
||||
|
|
|
|
|
53
Обратный ход
Из последнего уравнения (3-я строка матрицы) получаем
x3 5,8 . 2,9
Из 2-го уравнения находим
x2 1,6 1,3x3 1,6 1,3 2 1.
Из 1-го уравнения получаем
x1 2 2x2 1,5x3 2 2 1 1,5 2 1.
Таким образом, полученное решение имеет вид
X 1, 1,2 .
Решение этого примера с использованием электронных таблиц Excel приведено в подразд. 3.6.1.
В процессе решения системы возможны три случая:
1.Решение системы существует и является единст-
венным, когда матрица коэффициентов невырожденная (при этом на последнем шаге решения получается одно уравнение с одним неизвестным).
2.Система уравнений вообще не имеет решений (та-
кой случай имеет место, когда на некотором шаге получается строка, в которой все коэффициенты при неизвестных равны нулю, а свободный член не равен нулю).
3.Система уравнений имеет бесконечное множество решений (это получается, когда на некотором шаге в системе получается строка, в которой все коэффициенты и свободный член равны нулю).
При практическом применении метода Гаусса сле-
дует обратить внимание на следующие моменты:
1.Если в ходе приведения матрицы А к треугольному виду на главной диагонали окажется элемент, равный ну-
54
лю, эта схема расчета формально непригодна, хотя система может иметь единственное решение.
2. В процессе вычислений встречаются ведущие элементы, которые малы по сравнению с другими элементами соответствующих строк. Это обстоятельство может привести к значительным ошибкам округления.
Чтобы избежать всего этого, каждый цикл (шаг) следует начинать с перестановки строк, в результате которой ненулевой элемент перемещается на главную диагональ. При этом среди элементов столбца находится главный элемент, т.е. максимальный по модулю в соответствующем столбце, который и выводится на главную диагональ. В таком варианте метода погрешности обычно невелики. Такую модифи-
кацию метода называют методом Гаусса с выбором главно-
го элемента.
3.2.2. Метод прогонки
Метод прогонки является модификацией метода Гаусса для частного случая систем уравнений с трехдиагональной матрицей вида
b1x1 c1x2 |
|
|
|
|
d1 |
(3.4) |
||||||
a x b x c x |
|
|
d |
2 |
|
|||||||
|
2 |
1 |
2 |
2 |
2 |
3 |
|
|
|
|
|
|
|
|
|
a3 x2 b3 x3 c3 x4 |
|
d3 |
|
|
|||||
|
|
|
|
|||||||||
|
|
|
||||||||||
|
|
|
|
|
|
an 1xn 2 |
bn 1xn 1 cn 1xn dn 1 |
|
||||
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
a x |
b x |
d |
n |
|
|
|
|
|
|
|
|
|
n n 1 |
n n |
|
|
||
|
|
|
Векторы: |
a |
b c d |
|
Метод прогонки состоит из двух этапов: прямой и об-
ратной прогонки. При прямой прогонке каждое неизвестное xi выражается через xi+1 с помощью прогоночных коэффици-
ентов Ui, Vi.
55
Из 1-го уравнения системы (3.4) выражаем x1:
|
|
|
|
|
|
x1 U1x2 V1, |
где U |
1 |
c1 |
, |
V d1 . |
(3.5) |
|
|
b1 |
|
1 |
b1 |
|
|
|
|
|
|
|
Из 2-го уравнения системы (3.4) выражаем x2:
x |
c2 |
x |
d2 a2V1 |
U x V . |
|||
|
|
||||||
2 |
a2U1 b2 |
3 |
a2U1 |
b2 |
2 |
3 |
2 |
|
|
|
|
|
Продолжая этот процесс при условии, что V0 = 0, получим рекуррентную формулу для xi:
xi Ui xi 1 |
Vi , |
|
i 1,2, , n 1, |
|||||||
где |
|
|
c |
|
|
d |
|
aV |
|
|
U |
|
|
V |
|
i |
|
||||
i |
|
i , |
|
i i 1 |
, |
|||||
|
|
|
|
|||||||
|
|
Li |
|
i |
|
|
|
Li |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
L aU |
i 1 |
b . |
|
||||
|
|
|
|
i |
i |
|
|
i |
|
После прямого хода система (3.4) примет вид
x1 U1x2 V1, x2 U2 x3 V2 ,
...........................
xn 1 Un 1xn Vn 1, an xn 1 bn xn dn .
(3.6)
U0 = 0,
(3.7)
(3.8)
(3.9)
Обратная прогонка состоит в последовательном вычислении неизвестных xi. Сначала вычисляется неизвестное xn из двух последних уравнений преобразованной сис-
темы (3.9):
x |
dn anVn 1 |
. |
(3.10) |
|
|||
n |
bn anUn 1 |
|
|
|
|
56
Затем, используя выражение (3.7), последовательно вычисляются все остальные неизвестные xn 1, xn 2 , , x2 , x1.
Алгоритм метода прогонки:
1. Вычисляются прогоночные коэффициенты Ui, Vi по формулам (3.8) для i = 1, 2, … n – 1 при условии, что
U0 = 0, V0 = 0.
2.Определяются xn из выражения (3.10).
3.По формуле (3.7) последовательно вычисляются все
остальные неизвестные xn 1, xn 2 , , x2 , x1.
3.3. Итерационные методы решения систем линейных алгебраических уравнений
В этой группе методов мы познакомимся с двумя старыми и простыми методами: методом Якоби и методом Га- усса–Зейделя [8, 14].
3.3.1. Метод Якоби (простых итераций)
Задана система линейных алгебраических уравнений
a11x1 a12 x2 a1n xn b1,a21x1 a22 x2 a2n xn b2 ,
..
an1x1 an2 x2 ann xn bn
или в матричной форме
A X B.
(3.11)
(3.11а)
Для сходимости итерационного процесса необходимо выполнение условия «преобладания диагональных элемен-
тов», т.е. диагональные элементы матрицы А должны удовлетворятьусловию
aii |
|
|
|
aij |
|
, |
i 1, 2, , n . |
(3.12) |
|
|
|
||||||
|
||||||||
|
|
i j |
|
|
|
|
|
|
57
Преобразуем систему (3.11) к эквивалентной, выражая неизвестное xi из каждого i-го уравнения:
|
|
x (b a x a |
x ) / a , |
|
|
|
||||||||||||||||||||||||||
|
|
|
1 |
|
1 |
|
|
|
12 2 |
|
|
|
|
|
1n |
|
n |
11 |
|
|
|
|
|
|||||||||
|
|
x2 (b2 a21x1 a2n xn ) / a22 |
, |
|
|
|
(3.13) |
|||||||||||||||||||||||||
|
|
|
.. |
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
x |
(b |
|
a |
|
|
x |
a x |
|
) / a . |
|
|
|
|||||||||||||||||
|
|
|
n |
|
|
n |
|
|
|
|
n1 1 |
|
|
nn 1 n 1 |
|
|
nn |
|
|
|
||||||||||||
|
Система (3.13) называется системой, приведенной к |
|||||||||||||||||||||||||||||||
нормальному виду. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
Вводя обозначения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
ij |
aij |
, |
i |
|
b |
|
, |
|
|
i 1,2, n, |
|
|
j |
1,2, , n, |
i j, |
||||||||||||||||
|
|
|
|
i |
|
|
|
|
||||||||||||||||||||||||
|
aii |
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
aii |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
систему (3.13) можно записать в матричной форме: |
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
(3.14) |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
X |
|
|
|
|
|
|
|
|
||||||||||
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
||||||||||||
|
|
|
|
|
12 |
|
|
|
|
|
|
1n |
|
|
|
|
|
1 |
|
|
|
|
1 |
|
|
|||||||
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|||||
где |
|
|
|
|
|
2n ; |
|
|
|
|
|
; |
|
X |
|
(3.15) |
||||||||||||||||
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
2 |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
n2 |
|
|
0 |
|
|
|
|
n |
|
|
|
|
|
|
|
||||||||||||
|
|
n1 |
|
|
|
|
|
|
|
|
|
xn |
|
|
Используя выражение (3.14), строим последовательность приближений (итераций), выбрав в качестве нулевого при-
ближения, например, нулевой вектор или столбец свободных членов:
|
|
(0) |
|
|
|
, |
|
|
|
|
|
|
||
X |
|
|
|
|
|
|||||||||
|
(1) |
|
|
|
|
|
|
|
|
(0) |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||||
X |
|
X |
|
|
, |
(3.16) |
||||||||
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(k ) |
|
|
|
|
|
|
|
|
|
(k 1) |
|
|
|
X |
|
. |
|||||||||||
X |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58
Таким образом, получили последовательность при-
ближений (итераций) |
|
|
X (0) , X (1) , , |
X (k ) , |
(3.17) |
Если эта последовательность имеет предел
X lim X (k ) ,
k
то он является точным решением системы (3.11).
На практике итерационный процесс продолжается до тех пор, пока два соседних приближения не станут достаточно близкими.
Критерий близости двух приближений X (k ) и X (k 1)
может быть определен следующим образом:
|
(k ) |
max |
|
x(k ) x(k 1) |
|
. |
(3.18) |
|
M |
|
|
||||||
|
|
i |
|
i |
i |
|
|
|
|
|
|
|
|
|
|
|
Если условие (3.18) выполнено, то итерационный процесс прекращается. За приближенное решение системы
(3.11) с заданной точностью принимается (k)-е приближение, т.е.
X X (k ) .
Если условие (3.18) не выполняется, то итерационный процесс (3.17) необходимо продолжить до тех пор, пока условие не выполнится.
Замечания
1. Начальный вектор X (0) может быть взят произволь-
ным, так как сходимость итерационного процесса зависит
только от свойств матрицы , и если процесс сходится при каком-нибудь начальном приближении, то он будет сходиться к тому же предельному вектору и при любом другом выборе этого начального приближения.
59
2. Сходящийся процесс итерации обладает важным свойством самоисправляемости, т.е. отдельная ошибка в вычислениях не отразится на окончательном результате, так что ошибочное приближение можно рассматривать как новый начальныйвектор.
Пример 3.2. Методом Якоби решить систему линейных алгебраических уравнений:
8x1 x2 4x3 6, |
|
||||
|
|
6 x2 x3 |
9, |
(3.19) |
|
2x1 |
|||||
x |
x |
4x |
5. |
|
|
|
1 |
2 |
3 |
|
|
Решение. Условие преобладания диагональных коэффициентов матрицы системы выполнено. Приведем эту систему к нормальному виду:
x1x2x3
0,75 0,125x2 |
0,5x3 , |
|
1,5 0,333x1 0,167x3 , |
(3.20) |
|
0,125 0, 25x1 |
0, 25x2 . |
|
В матричной форме систему (3.20) можно записать так:
x1 |
|
0,75 |
0 |
0,125 |
0,5 |
|
x1 |
|
|
|||||
x |
2 |
|
|
1,5 |
|
|
0,333 |
0 |
0,167 |
|
x |
|
(3.21) |
|
|
|
|
|
|
|
0,25 |
0,25 |
0 |
|
|
2 |
|
|
|
x |
|
1,25 |
|
|
|
x |
|
|
||||||
|
3 |
|
|
|
|
|
|
|
|
|
|
3 |
|
|
За начальное (нулевое) приближение решения системы примем нулевой вектор, т.е.
x(0) |
0, |
x(0) |
0, |
x(0) |
0. |
1 |
|
2 |
|
3 |
|
Подставляя эти значения в правые части уравнения (3.20), получим первое приближение решения системы (первую итерацию):
60