Глава 6. Статические и динамические матрицы
Для этого необходимо из каждой строки (начиная с первой) вычесть нулевую,
умноженную на некоторое число M. В общем виде этот процесс можно записать
так:
1-я строка = 1-я строка – M× 0-я строка
2-я строка = 2-я строка – M× 0-я строка
. . .
i-я строка = i-я строка – M × 0-я строка
. . .
n − 1-я строка = n − 1-я строка – M× 0-я строка
Понятно, что преобразование элементов первой строки будет происходить по
формулам:
a
10
= a
10
− Ma
00
a
11
= a
11
− Ma
01
. . .
a
1i
= a
1i
− Ma
0i
. . .
a
1n−1
= a
1n−1
− Ma
0n−1
b
1
= b
1
− Mb
0
Так как целью данных преобразований является обнуление первого элемента
строки, то M выбираем из условия: a
10
= a
10
− Ma
00
= 0. Следовательно, M =
a
10
a
00
.
Элементы второй строки и коэффициент M можно рассчитать аналогично:
a
20
= a
20
− Ma
00
a
21
= a
21
− Ma
01
. . .
a
2i
= a
2i
− Ma
0i
. . .
a
2n−1
= a
2n−1
− Ma
0n−1
b
2
= b
2
− Mb
0
a
20
= a
20
− Ma
00
= 0 ⇒ M =
a
20
a
00
.
Таким образом, преобразование элементов i–й строки будет происходить сле-
дующим образом:
a
i0
= a
i0
− Ma
00
a
i1
= a
i1
− Ma
01
. . .
a
ii
= a
ii
− Ma
0i
. . .
a
in−1
= a
in−1
− Ma
0n−1
b
i
= b
i
− Mb
0
.
Коэффициент M для i–й строки выбирается из условия a
i0
= a
i0
− Ma
00
= 0
и равен M =
a
i0
a
00
.
После проведения подобных преобразований для всех строк матрица (6.2)
примет вид
Программирование на языке С++ в среде Qt Creator
6.4. Решение некоторых задач линейной алгебры
203
A
′
=
a
00
a
01
...
a
0n−1
b
0
0
a
11
...
a
1n−1
b
1
0
a
21
...
a
2n−1
b
2
...
...
...
...
...
0
a
n−11
...
a
n−1n−1
b
n−1
.
Блок-схема обнуления первого столбца матрицы приведена на рис. 6.10.
Очевидно, что если повторить описанный выше алгоритм для следующих
столбцов матрицы (6.2), то в результате будет получена матрица (6.3). Алгоритм
этого процесса изображён на рис. 6.11.
Рис. 6.10: Блок-схема обнуления
первого столбца матрицы
Рис. 6.11: Блок-схема алгоритма
преобразования расширенной мат-
рицы к треугольному виду
Заметим, что если в матрице (6.2) на главной диагонали встретится элемент
a
k,k
, равный нулю, то расчёт коэффициента M =
a
ik
a
kk
для k-й строки будет невоз-
можен. Избежать деления на ноль можно, избавившись от нулевых элементов на
главной диагонали. Для этого перед обнулением элементов в k–м столбце необхо-
димо найти в нём максимальный по модулю элемент (среди расположенных ниже
a
k,k
), запомнить номер строки, в которой он находится, и поменять её местами с
k-й. Алгоритм, отображающий эти преобразования, приведён на рис. 6.12.
В результате выполнения прямого хода метода Гаусса матрица (6.2) преобра-
зуется в матрицу (6.3), а система уравнений (6.1) будет иметь следующий вид:
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.
204
Do'stlaringiz bilan baham: |