Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы математического моделирования в микроэлектронике. Модели в форме СЛАУ. Учебное пособие
.pdf
при нахождении
x
мента
uu
kj kk
как максимального ведущего элемента минимизирует дробь
u
kk
и поэтому улучшает устойчивость алгоритма исключений по
,,,,
xx
12 1
nn
если числа
uu
kj kk
1
. Выбор эле-
Гауссу.
Упражнение 3.18. Найдите решение учебной СЛАУ мето-
дом Гаусса с выбором ведущего элемента
xxx
20,
123
xxx
223 3,
123
xx
32.
12
3.4.7. ОШИБКИ ОКРУГЛЕНИЯ
И ЧИСЛЕННАЯ НЕУСТОЙЧИВОСТЬ
В МЕТОДЕ ГАУССА
Рассмотрим теперь более подробно вопрос об ошибках округления
при проведении вычислений по методу Гаусса на компьютере. Так как
практические вычисления на ПК выполняются в машинной арифметике
с конечной точностью, то возникающие при этом ошибки округления
невозможно исключить полностью. Их можно только уменьшить либо
путем использования арифметики повышенной точности за счет уве
личения числа разрядов в мантиссе, либо путем изменения схемы выбора ведущего элемента. Последнее впервые, видимо, было подмечено
В. Жорданом. Сразу после появления компьютеров математиками-вычислителями во второй половине XX века были проведены многочисленные исследования влияния ошибок округления на точность решения в методе Гаусса, которые подтвердили, что для
повышения численной устойчивости метода необходимо изменить схему выбора ведущего элемента на максимальную [5, с. 45–47].
Исследуем, как влияют ошибки округления, обусловленные конечностью длины мантиссы компьютера, на точность решения СЛАУ
методом исключения по Гауссу с диагональным выбором ведущего
элемента и с выбором по столбцу. Для этого разберем численный
пример [6].
-
91

Пример. Влияние ошибок округления и выбора ведущего эле-
x
мента по столбцу на точность решения СЛАУ в методе Гаусса.
Пусть требуется решить
СЛАУ вида
0,0003 3 1,0002,
xx
xx
12
12
1.
Матрица A – невырожденная, так как ее детерминант не равен нулю
(det(A) = −2,9997). Ранг A равен 2. Поэтому решение существует, и оно
единственное.
Выбирая ненулевой элемент a
переменную x
из второго уравнения, получим
1
(1) (1)
Ab Uy
[|][|] .
ведущим и исключая с его помощью
11
0,0003 3
0 9999
1, 0002
1
1, 0002
0,0003
Тогда обратным ходом имеем точное решение СЛАУ в виде
x
2
x
1
1,0002 0,999
1
0,0003 0,0003
9999 9999 3
1, 0002 3
0,0003 0,0003 3
x
2
1
0,0002 2
,
.
Далее найдем решение СЛАУ на гипотетическом компьютере с десятичной арифметикой, у которого вещественные числа представлены
в нормализованном виде (
110M
) и длина дробной части мантиссы
изменяется от трех до восьми разрядов. Вычисления будем проводить
по следующим формулам:
x
2
x
1
1, 0002
1
0,0003
9999
1,0002 3
0,0003
92
,
2
.

Результаты представим в табл. 3.6.
x
x
Эта таблица наглядно показывает, что для переменной x
при ма-
1
лой длине мантиссы получается большая относительная погрешность,
которая затем с ростом длины быстро уменьшается. По переменной
2
относительная погрешность менее чувствительна к длине мантиссы.
По этим результатам можно сделать эмпирический вывод о том, что
ошибки округления заметно влияют на точность решения СЛАУ в простом методе исключений по Гауссу.
Таблица 3.6
Решения СЛАУ на гипотетическом компьютере
простым методом Гаусса
Число
разрядов
мантиссы
Относительная
x
1
погрешность
для x
, %
1
x
2
Относительная
погрешность
для x
, %
2
3 3,330 399,500 0,333 0,100000
4 1,0000 50,000 0,3333 0,010000
5 0,70000 5,000 0,33333 0,001000
6 0,670000 0,500 0,333333 0,000100
7 0,6670000 0,050 0,3333333 0,000010
8 0,66670000 0,005 0,33333333 0,000001
Посмотрим, что произойдет, если СЛАУ решать методом Гаусса с
выбором ведущего элемента по столбцу. В первом столбце максимальный по модулю элемент находится во втором уравнении. Тогда переставим второе уравнение с первым и решим систему
xx
12
0,0003 3 1, 0002.
Теперь ведущий элемент
1,
xx
12
a = 1, и после исключения переменной
11
из второго уравнения получается СЛАУ
(1) (1)
[|][|] .
Ab Uy
11 1
0 2,9997 0,9999
1
93

Завершаем решение по формулам обратного хода:
x
x
0,9999
x
2
2,9997
1.
xx
12
,
Пусть снова вычисления по формулам будут проходить на том же
гипотетическом компьютере с конечной длиной мантиссы. Результаты
этих вычислений приведены в табл. 3.7.
Таблица 3.7
Решения СЛАУ на гипотетическом компьютере
методом Гаусса с выбором ведущего элемента по столбцу
Число
разрядов
мантиссы
x
1
Относительная
погрешность
для x
, %
1
Относительная
x
2
погрешность
для x
, %
2
3 0,667 0,0500 0,333 0,100
4 0,6667 0,0050 0,3333 0,010
5 0,666 67 0,0005 0,333 33 0,001
Из табл. 3.7 следует, что теперь относительная погрешность по переменным
и
находится на приемлемом уровне, причем хороший
1
2
результат по точности достигается даже при небольшом числе разрядов
мантиссы. Таким образом, получается, что метод Гаусса с выбором ведущего элемента менее чувствителен к ошибкам округления и более
устойчив, чем простой метод Гаусса.
Упражнение 3.19 [7, c. 95]. На гипотетическом компьютере
с двумя разрядами мантиссы для десятичной арифметики про-
стым методом Гаусса и методом Гаусса с выбором ведущего эле-
мента найдите решение СЛАУ:
3
Сравните и объясните результаты.
10 5,
xx
12
xx
12
6.
94

В общем случае важный теоретический вывод в исследовании влия-
x
A
A
M
M
M
ния ошибок округления в методах Гаусса был получен Дж. Уилкинсо-
ном [5, с. 118]. Он доказал, что приближенное численное решение
xb
для СЛАУ
на самом деле является точным решением другой за-
*
дачи с возмущенной матрицей системы:
*
(),
Ax b
(3.33)
где величина элементов возмущающей матрицы δA соответствует порядку ошибок округления, возникающих при записи матрицы A в память компьютера. Тем самым все ошибки округления, возникающие
при различных промежуточных вычислениях, можно интегрально объединить в задачу решения другой СЛАУ с измененными входными данными. Тогда оценка чувствительности (2.39) решения исходной СЛАУ
к малым вариациям в матрице A перейдет в оценку [8, с. 84]
*
xx
где
– это машинное эпсилон, а константа C, определяемая из равен-
x
CA
cond ( ) ,
(3.34)
ства
A
(3.35)
,
C
A
обычно ненамного больше единицы.
Таким образом, получается, что СЛАУ с плохо обусловленными
матрицами A будут иметь большие погрешности в решении независимо от метода решения, а СЛАУ с хорошо обусловленными матрицами будут иметь слабую чувствительность к машинным ошибкам
округления, т. е. теоретически анализ чувствительности к ошибкам
округления
эквивалентен анализу числа обусловленности для мат-
рицы системы.
95

Упражнение 3.20. Оцените число обусловленности матрицы
x
x
из приведенного выше примера:
0, 0003 3
A
11
Поясните, эта матрица хорошо обусловлена или нет.
.
Однако при компьютерных вычислениях решений СЛАУ простым
методом Гаусса существует дополнительное ограничение («подводный
камень»), заключающееся в численной неустойчивости этого метода.
Разберем эту численную неустойчивость на конкретном численном примере [1, с. 159; 9, с. 167].
Пример. Численная неустойчивость простого метода Гаусса при
решении СЛАУ с хорошо обусловленной матрицей системы.
Пусть нужно найти решение СЛАУ второго порядка
1
x
2
xx
12
01 1
11 2
2
x
1
x
2
.
Очевидно, что det(A) = −1, т. е. матрица A – невырожденная. Так как
A – симметричная матрица, то ее число обусловленности во второй
норме Гильберта равно отношению максимального и минимального по
модулю собственных чисел. Легко показать, что
и
152.
2
Тогда
cond ( ) 3 5 2 2,618A
2
, т. е. матрица A –
(1 5 ) 2
1
хорошо обусловлена и следует ожидать, что при вычислении решения
в обычной арифметике с бесконечным числом разрядов малые изменения в коэффициентах матрицы не приведут к большим изменениям в
решении. Элемент a
= 0, поэтому для нахождения решения переставим
11
второе и первое уравнения местами, откуда сразу получим точное решение
T
(1,1)x
, или в покомпонентном виде
= 1 и
1
= 1.
2
Затем введем возмущение в матрицу системы с помощью параметра
810
ε =
и будем решать такую систему
xx
12
xx
12
1
11 2
2
96
x
11
1
x
2
.

Малое число обусловленности дает теоретическую надежду, что
x
x
x
x
x
x
в этом случае решение несущественно будет отличаться от
и
= 1.
2
Выберем ведущим элементом
18
10
(очень большое число) и после исключения переменной
,a найдем множитель 21m
11
1
придем к системе с верхней треугольной матрицей U:
= 1
1
xx
12
(1 ) ( 2 )
1
x
2
11
0(1 ) (2 )
1111
x
1
x
2
.
Выпишем формулы для этого окончательного теоретического решения
11
x
2
xx
12
(2 ) (1 ) 1,
1
(1 ) 0.
Далее продолжим вычисления на компьютере с конечным числом
разрядов в мантиссе. Очевидно, что если ε – достаточно маленькая ве-
1
личина, то число минус
сложении двойки с минус
1
равен минус
будет равен минус
. Аналогично знаменатель в этих обстоятельствах также
1
будет большим по модулю. Поэтому при
1
эта двойка «пропадет» и результат будет
, поэтому
будет вычислен как единица, а
2
–
1
как нуль. Таким образом, вычисленное компьютерное решение является
точным для
и крайне неточным для x1.
2
Следовательно, несмотря на то что матрица системы хорошо обусловлена, простой метод Гаусса дает численно неустойчивое решение.
В чем причина появления такой большой погрешности, ведь никакого
накопления и распространения ошибок округления здесь нет? Малая величина ведущего элемента a
стала причиной того, что множитель
11
m
21
получился очень большим и потому большим является и произведение
,ma с помощью которого вычисляется элемент модифицированной
21 12
(1)
матрицы
aama
22
22 21 12
. При вычитании из
a большой величины
22
97

ma
x
21 12
и последующим округлении число
полностью теряется из-
a
22
за конечности длины мантиссы компьютера.
Например, если вычисления ведутся на гипотетическом компьютере
8
с 7-значной мантиссой в десятичной арифметике для ε =
житель
0,1000000 10 ,m
21
9
а 2 =
0,2000000 10 .
порядков число два запишется как 2 =
ления в компьютере станет равным
0,0000000 10 ,
0,000000002 10
1
При выравнивании
9
9
тем самым двойка
и после округ-
10 ,
то мно-
получается утраченной и превращенной компьютером в нуль, а разность 2 −
ma = 2 −
21 12
1
=
0,1000000 10 .
91
Решим теперь возмущенную систему методом Гаусса с выбором ведущего элемента по столбцу. Максимальный по модулю элемент в первом столбце находится во втором уравнении. Тогда, переставляя первое
уравнение со вторым, получаем систему
2
1
11 2
x
1
x
11
2
.
из второго уравнения, приходим к следующим
Выбирая теперь
затем переменную
xx
12
xx
12
a = 1 в качестве ведущего элемента и исключая
11
1
выражениям:
xx x
12 2
(1 ) (1 2 ) , 2 1,
откуда получаем правильное решение
2, (1 2 ) (1 ) 1,
xxx
212
T
(1,1)x
.
Таким образом, метод Гаусса с выбором ведущего элемента по
столбцу дает устойчивое решение.
Из разобранного примера следует важное утверждение.
Простой метод Гаусса не может быть использован не только в случае, когда ведущий диагональный элемент равен нулю, но и в случае,
когда ведущий диагональный элемент очень мал, т. е. близок
98
к нулю.

3.5. МЕТОД ТРЕХДИАГОНАЛЬНОЙ ПРОГОНКИ
Метод трехдиагональной прогонки является частным случаем метода Гаусса, модифицированным для решения СЛАУ с сильно разряженными матрицами вида
bc x d
11 1 1
abc x d
222 2 2
00
00
00 0
00 0
ab c x d
33 3 3 3
abc x d
00
111 1 1
nnn n n
ab x d
nn n n
.
(3.36)
Матрица A – трехдиагональная. Она содержит ненулевые элементы
только на главной диагонали и на двух смежных с ней диагоналях.
Остальные элементы матрицы равны нулю (рис. 3.4). Количество уравнений в системе n (порядок матрицы) может быть очень большим
6
(более
10 ).
Упражнение 3.21. Проверьте, что для трехдиагональной
0
матрицы выполняется следующее условие:
a
если
ij
1ij
.
Рис. 3.4. Портрет трехдиагональной
матрицы A [2, с. 493]
99

Метод трехдиагональной прогонки был получен и теоретически
обоснован в 1952 г. советскими математиками И. М. Гельфандом
и О. В. Локуциевским [7, с. 93]. За рубежом аналогичный результат был
опубликован Томасом (англ. Thomas algorithm).
Такие матрицы возникают в различных линейных моделях. Например, при решении методом сеток двухточечных краевых задач (см. разд.
1.4), при использовании неявных
разностных схем для численного решения уравнения теплопроводности, при построении кубических интерполяционных сплайнов и т. д.
Упражнение 3.22 (*). Поясните, что такое неявная разност-
ная схема для уравнения теплопроводности и какие разностные
СЛАУ в этом случае возникают. Приведите численный пример.
Упражнение 3.23 (*). Поясните, что такое кубический интер-
поляционный сплайн и какие СЛАУ возникают при его построении. Приведите численный пример.
В покомпонентной форме трехдиагональная СЛАУ записывается
следующим образом:
ax bx cx d i n
ii ii ii i
bx cx d
11 1 2 1
11
ax bx d
nn nn n
1
,
, 2, 3, ..., 1.
,
(3.37)
Алгоритм исключения Гаусса можно легко адаптировать для решения таких систем (см. например, [1, с. 81]), но здесь поступим проще
и выведем формулы трехдиагональной прогонки непосредственно. Для
этого предположим, что решение СЛАУ может быть найдено в виде следующей рекуррентной формулы:
xAx Bin n
(3.38)
iii i
Неизвестные пока еще коэффициенты A
, 1, 2, ..., 2,1.
1
и Bi называются прогоноч-
i
ными коэффициентами.
Заметим, что эти формулы позволяют представить исходную систему в матричном виде как СЛАУ с двухдиагональной верхней треугольной матрицей
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
