Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы математического моделирования в микроэлектронике. Модели в форме СЛАУ. Учебное пособие
.pdf
называются методами крыловского типа
A
x
x
(А. Н. Крылов – известный русский кораблестроитель, математик и механик, один
из основоположников вычислительной
математики). В данных методах вместо
задачи о нахождении решения СЛАУ решается эквивалентная ей оптимизационная задача на минимум квадратичной
функции (аналога функционала энергии)
1
() ( , ) (, ) min.
xAxxbx
2
Однако объем нашего пособия и вводный характер этого курса не позволяют
рассмотреть здесь такой класс методов,
состоящий из значительного числа подоб-
А. Н. Крылов
(1863–1945)
ных алгоритмов.
3.2. ВЫЧИСЛИТЕЛЬНАЯ НЕЭФФЕКТИВНОСТЬ
МЕТОДА КРАМЕРА
Метод Крамера позволяет найти решение СЛАУ
xb
с невырожденной матрицей системы (det A ≠ 0) через вспомогательные определители по следующему алгоритму. Каждая компонента вектора
( , ..., , ..., )
xx x
1
jn
где вспомогательные определители Δ
Ajn
det , 1, ..., .
jj
T
вычисляется по формулам
(3.3)
jj
aaba a
11 1, 1 1 1, 1 1
aaba a
21 2, 1 2 2, 1 2
Aj n
равны
j
jjn
jjn
det , 1, ..., ,
aaba a
1,1,1
nnjnnj nn
(3.4)
61

Матрица
j
A
N
в (3.4) получается на основе матрицы A путем замены
b
в ней j-го столбца на вектор правой части
.
Теоретически формулы Крамера (3.3)–(3.4) позволяют полностью
решать СЛАУ, однако их практическое применение, даже при небольших n, сталкивается с непреодолимыми вычислительными трудностями.
Установим, почему это так. Для работы методом Крамера необходимо вычислить (n + 1) определитель порядка n. Оценим количество
арифметических операций, которые надо выполнить, чтобы найти величину одного такого
ется как сумма по всем возможным перестановкам
определителя. Формально определитель вычисля-
( )
jj j
:
12
n
det ( 1) ... ,
Aaaa
jj j
( )
1 2
k
jj nj
1, 2 , ,
n
12
(3.5)
n
где k – четность перестановки. Таких слагаемых в (3.5) будет n! (факториал). Каждое слагаемое содержит в себе (n – 1) умножение. Тогда для
вычисления одного определителя надо выполнить (n − 1)n! умножений
и (n! – 1) сложений. Всего в сумме получается примерно
ПК
!
nn
арифметических операций. Компьютеру, производительность которого
равна m операций с плавающей точкой в секунду, для таких вычислений
потребуется время (в секундах)
(!1)
nn
t
ПК
m
.
(3.6)
Современные параллельные супервычислители имеют среднюю
производительность порядка терафлопа (сокращение от английской
фразы floating point operation) в секунду. Это гигантское число состоит
12
из 12 нулей: m =
10 .
Так, например, суперкомьютер «Сергей Году-
нов», запущенный в 2023 г. в Институте математики СО РАН, обладает
производительностью порядка 50 терафлопс. Рассчитаем в зависимости
от размерности определителя n требуемое количество операций и времени при расчетах на таком суперкомпьютере. Результаты вычислений
приведены в табл. 3.1.
62

Таблица 3.1
A
Результаты вычисления определителя на суперкомпьютере
«Сергей Годунов»
n 3 5 10 20 30 100
NПК 17 599 ~3,6 · 10
tПК
0,34 пико-
секунд
~12,0 пико-
секунд
~726 нано-
секунд
7
~4,9 · 1019 ~8,0 · 1033 ~9,3 · 10
~11,3 суток ~5,0·10
12
лет ~5,9·10
138
159
лет
Согласно преобладающей сейчас теоретической точке зрения Вселенная возникла в результате Большого взрыва около
назад, а возраст Земли оценивается в
4,5 10
9
лет. Поэтому результаты
13,8 10
9
лет
для n ≥ 30 явно неприемлемы.
Главный вывод из табл. 3.1 состоит в том, что размерность СЛАУ
при решении методом Крамера не может превышать 10 и поэтому такой
метод нельзя использовать при реальных компьютерных вычислениях,
т. е. правило Крамера не является практическим вычислительным средством и его следует рассматривать всего
лишь как инструмент теорети-
ческой математики.
Упражнение 3.4. Используя асимптотическую формулу
Стирлинга для n!, пересчитайте табл. 3.1 и найдите полное число
операций с учетом вычисления (n + 1) определителя в методе
Крамера и необходимое для их выполнения время.
Как будет показано ниже, наиболее эффективным методом вычисления определителей большого порядка является метод, основанный на
использовании исключений Гаусса.
3.3. ВЫЧИСЛИТЕЛЬНАЯ НЕЭФФЕКТИВНОСТЬ
МЕТОДА ОБРАТНОЙ МАТРИЦЫ
Идея метода обратной матрицы вполне очевидна. Если матрица A
СЛАУ
ратная матрица A
xb
квадратная и невырожденная, то для нее существует об-
−1
. Умножая СЛАУ слева на обратную матрицу, имеем,
63

x
A
M
11 1
что
A AxA b ExA b
, где E – единичная матрица. Тогда
окончательно получаем решение СЛАУ через обратную матрицу
Ab
1
.
(3.7)
Таким образом, вопрос о нахождении решения СЛАУ сводится к задаче вычисления обратной матрицы. Из линейной алгебры известно, что
обратная матрица может быть найдена двумя прямыми способами: методом алгебраических дополнений и методом полного исключения
Гаусса–Жордана. Метод исключения будет рассмотрен в следующем
разделе. Сейчас разберем метод алгебраических дополнений.
Алгоритм
1. Для всех элементов
метода предполагает выполнение следующих шагов.
матрицы A вычисляются их алгебраиче-
a
ij
ские дополнения
ij
(1) ,
ij ij
M
(3.8)
где
– дополнительные миноры порядка (n – 1), получающиеся из
ij
исходной матрицы A путем вычеркивания i-й строки и j-го столбца.
2. Из алгебраических дополнений строится присоединенная матрица
C вида
AA A
11 21 1
AA A
12 22 2
C
AA A
12
nn nn
n
n
.
(3.9)
3. Делением всех элементов присоединенной матрицы C на det A по-
1
A
лучается обратная матрица
1
det .AC A
(3.10)
4. На заключительном шаге по формуле (3.7) находится решение
СЛАУ.
64

ab
N
Упражнение 3.5. Для матрицы второго порядка
покажите по описанному алгоритму, что если (ad − bc) ≠ 0, то
db
1
1
ad bc
ca
.
A
A
cd
Аналогично методу Крамера оценим количество арифметических
операций с плавающей запятой, которое требуется для нахождения обратной матрицы таким способом. Здесь приходится вычислять опреде-
2
литель матрицы A порядка n и
n
определителей порядка (n − 1).
Оценки по det A даны в табл. 3.1. Для его вычисления требуется
(–)!1nn
рядка (n − 1) потребуется
сумме составит примерно
операций. Для вычисления всех дополнительных миноров по-
2
ПК
!()11()nn n
операций. Тогда общее число в
2
!.
nn
Очевидно, что такое количе-
ство операций можно реализовать на современных суперкомпьютерах
только при небольших n порядка нескольких десятков.
Таким образом, метод обратной матрицы в варианте алгебраических
дополнений, как и метод Крамера, совершенно неэффективен при использовании в реальных задачах нахождения решений СЛАУ.
3.4. МЕТОД ИСКЛЮЧЕНИЙ ГАУССА
3.4.1. АЛГОРИТМ МЕТОДА ГАУССА
Метод исключений Гаусса для решения СЛАУ хорошо знаком студентам из курса «Линейная алгебра». Этот метод был известен, как свидетельствуют письменные источники, с древнейших времен примерно
за 150 лет до нашей эры. В новом времени он был впервые описан
К. Ф. Гауссом в 1849 г. при обработке результатов его геодезических измерений
[2, с. 438].
Основная идея метода состоит в том, чтобы путем последовательного исключения неизвестных из системы уравнений привести матрицу
65

системы к верхнему треугольному виду. Для этого вначале из первого
x
x
x
x
x
A
уравнения находится переменная
уравнения x
исключается из системы. Потом эта процедура циклически
1
повторяется для переменных
и затем подстановкой в остальные
1
,,,.
xx Этот цикл называется пря-
23
n
мым ходом метода Гаусса.
,
Затем, рассматривая последнее уравнение для
переменную. Найденную величину
подставляем в предпоследнее
n
уравнение и теперь находим переменную
Двигаясь по уравнениям
1.n
вычисляем эту
n
снизу вверх, тем самым вычисляем все остальные переменные вплоть
. Этот цикл получил название обратного хода метода Гаусса.
до x
1
В результате имеем, что решение СЛАУ найдено.
Графическая иллюстрация описанного алгоритма дана на рис. 3.1.
Рис. 3.1. Геометрическая схема прямого и обратного хода в методе Гаусса
Формализуем описанный выше этап прямого хода. Пусть исходная
СЛАУ
xb
в покомпонентном виде записана как
n
ax b i n
ij j i
j
1
, 1 .
(3.11)
Для элементов матрицы A и правой части
b
введем верхний индекс
k, описывающий номер переменной, которая исключается из системы.
Тогда (k − 1) – число переменных, уже исключенных из СЛАУ.
Система (3.11) для k = 0 (нет исключенных переменных) примет вид
n
(0) (0)
ax b in
ij j ij
j
1
, 1 .
66
(3.12)

Пусть
j
(0)
11
по формулам
Вводя множители mi1 и модифицируя систему (3.12)
maa i n
aamai
bbmbi n
ii ii
(0) (0)
1
i
111
i
(1) ( 0) (0 )
ij ij i
(1) ( 0) ( 0)
переходим к СЛАУ, в которой переменная x
, 2, 3, ..., ,
, , 2, 3, ..., ,
1
1
j
, 2, 3, ..., ,
1
исключена из 2-го, 3-го, …,
1
(3.13)
n
n-го уравнений:
(0) (0) (0)
aa a
11 12 1
(1) (1)
Ax b
0
0
(1) (1)
aa
22 22
(1)
aa
2
n
nn
(1)
n
xb
1
x
2
x
n
(0)
1
(1)
b
2
.
(3.14)
(1)
b
n
Перед k-м шагом (1 ≤ k < n) после исключения первых (k − 1) пере-
менных из системы получим следующую запись СЛАУ:
(1) (1)
kk
Axb
(3.15)
,
которая в развернутой форме имеет вид
(0) (0) (0)
aa a
11 12 1
0
00
00
(1) (1)
aa
22 2
(1) (1)
kk
aa
,,
kk kn
(1)
k
aa
,
nk
(1)
nn
n
n
k
,
x
1
x
2
x
k
x
n
(0)
b
1
(1)
b
2
(1)
b
k
(1)
b
n
(3.16)
.
k
k
Очевидно, что все поддиагональные элементы модифицированной
матрицы
1()kA
для первых (k − 1) столбцов равны нулю (рис. 3.1) и для
67

выполнения следующего шага исключения достаточно рассматривать
x
A
только оставшиеся k, k + 1, k + 2, …, n уравнения, которые образуют
активную подматрицу.
Чтобы математически точно записать процесс исключения переменных из системы уравнений, введем понятие ведущего элемента
(pivot) матрицы
kA
.
Ведущим элементом матрицы
1()kA
в методе
()1
Гаусса называется элемент модифицированной матрицы системы
()1,kA
на который в прямом ходе выполняется деление при исключе-
нии поддиагональных элементов очередного k-го столбца.
Заметим, что в описываемом методе Гаусса все ведущие элементы
расположены на главной диагонали модифицированных матриц и все
они должны быть отличны от нуля.
(1)
Очевидно, что следующий ведущий элемент в (3.16) равен
а формулы пересчета для исключения переменной
(1) (1)
kk
ma a ik n
,
ik
() ( 1) ( 1)
kk k
aa ma ijk n
ij ij i k
() ( 1) ( 1)
kk k
bb mb ik n
ii ik
,,
ik kk
, 1, ..., ,
, , 1, ..., ,
,
,
,
kj
, 1, ..., .
k
будут
k
(3.17)
a
,kkk
Для практического применения формул (3.17) рекомендуется пользоваться понятием расчетного прямоугольника, показанного на рис. 3.2.
После выполнения k = n − 1 шага процедуры прямого хода получим
СЛАУ с верхней треугольной матрицей
,
(0)
a
11
0
0
(0) (0)
axb
11
ab
nn
(1) (1)
ab
nn n
n
(1) (1)
n
22
1
x
2
x
n
.
(3.18)
Итак, цикл прямого хода завершен. Рассмотрим обратный ход. Для
упрощения его записи проведем переобозначение матрицы и правой ча-
сти в (3.18) как
(1)n
(1)n
U
by
,
68
.

Рис. 3.2. Структура модифицированной матрицы СЛАУ A
(k−1)
после исключения первых (k − 1) переменных в методе Гаусса
и расчетный прямоугольник
Теперь формулы обратного хода
xyu
nnnnn
yux
xknn
k
,
n
kkjj
jk
1
u
kk
, 1, 2, ..., 1
(3.19)
дадут окончательное решение СЛАУ.
Пример. Решение СЛАУ размерности (3 × 3) методом Гаусса. Ре-
шим по описанному алгоритму систему уравнений
20,
xxx
123
2233,
xxx
123
32.
xx
12
69

A
x
x
x
x
Для упрощения записи перепишем СЛАУ
1210
[|] 2 2 3 3.
Ab
1302
xb
как
Сделаем первый шаг гауссова исключения для переменной
(0)
1a
Ведущий элемент
, а множители
11
= 2,
m
21
= −1. Модифици-
m
31
рованная СЛАУ примет вид
(1) (1)
[|]0 21 3.
Ab
1210
0112
.
1
Далее на втором шаге исключим переменную x
(1)
дущий элемент
2a
22
и множитель
m = 0,5. В итоге получаем
32
. Для этого берем ве-
2
СЛАУ с верхней треугольной матрицей U
(2) (2)
[|]021 3 |.
Ab Uy
Теперь обратным ходом находим, что
Упражнение 3.6. Проверьте все вычисления в примере руч-
ным способом.
12 1 0
000,50,5
= 1,
3
2
= −1,
= 1.
1
Определим условия, при которых метод Гаусса гарантирует получение решения. Как уже отмечалось выше, для этого надо, чтобы диаго-
нальные ведущие элементы в модифицированных матрицах
(),k
k = 0,
A
1, …, n − 1 не равнялись нулю. Без доказательства примем следующее
теоретическое утверждение.
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
