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

Методы математического моделирования в микроэлектронике. Модели в форме СЛАУ. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
называются методами крыловского типа
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]