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

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

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