Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы научных вычислений. Введение в численные методы для физиков и инженеров
.pdf
2.4. Источники ошибок 41
7. Матрицы с диагональным преобладанием. Матрица A на-
зывается матрицей со строгим диагональным преобладанием, если
N
|a
nn
| >
|anm| = sumn,n=1,...,N.
m=1
m=n
Матрица A называется матрицей со слабым диагональным преобладанием, если
|a
| sumn,n=1,...,N,
nn
и, по крайней мере, одно из неравенств выполняется как строгое неравенство.
2.4. Источники ошибок
Когда мы решаем задачу (2.1), используя какой-нибудь метод, мы
не получим точного ответа, так как в процессе решения возникают различные ошибки. Предположим, что задача (2.1) поставлена точно, то
есть мы пренебрегаем неизбежными ошибками, связанными с формулированием задачи как модели некоторого явления (ошибки измерений,
недостаточно точные основные предположения и т. д.).
Вектор f в (2.1) обычно не задаётся точно, а вычисляется через
параметры исходной проблемы. Эти вычисления выполняются с определённой ошибкой, и вместо вектора f мы получаем некоторый «возмущённый» вектор f +δf . Тогда вместо задачи (2.1) мы получим «возмущённую»
задачу
A(x + δx)=Ay = f + δf . (2.4)
Предположим, что эта система также может быть решена и y есть решение этой системы. Тогда
e
= y − x∗
p
называется ошибкой возмущения.
Теперь нам необходимо решить возмущенную систему (2.4). Пред-
положим, что мы имеем некоторый алгоритм, который дает после конечного числа операций или вектор y (если операции выполняются точно),
или некоторый вектор z такой, что ошибка
= z − y
e
a

42 Глава 2
может быть сделана произвольно малой. Величина eaназывается ошибкой алгоритма.
Любой алгоритм включает в себя операции с плавающей точкой,
которые выполняются неточно. Ошибки, возникающие при таких операциях, приводят к тому, что вместо вектора z мы получаем некоторый
другой вектор w,ивеличина
e
= w − z
r
называется ошибкой округления.
Окончательно, вместо точного решения x
∗
мы вычислим некоторый
вектор w, который является приближенным решением задачи (2.1), и
ошибка этого решения может быть оценена как
e = w − x
∗
ep+ ea+ er.
2.5. Число обусловленности
Как мы обсуждали раньше, мы имеем исходную задачу Ax = f и
возмущенную задачу A(x + δx)=f + δf ,гдеδf представляет теперь
суммарное возмущение вектора правой части и матрицы A. Наша задача состоит в том, чтобы выяснить, как возмущение δf передаётся в
возмущение решения δx, то есть оценить величину
δx/x
δf /f
. (2.5)
Перепишем это выражение в виде
δx/x
δf /f
Из выражений (2.1) и (2.4) следует, что f = Ax A·x
и δx = A
−1
f A−1·δf.Еслиподставитьэтиоценкивпреды-
δx/f
=
δf /x
.
дущее выражение, мы получим
δx/x
δf /f
A·
−1
A
или
δx
x
A·
A
−1
δf
f
.

2.5. Число обусловленности 43
Величина
cond(A)=A·
−1
A
называется стандартным числом обусловленности. Это число оценивает
максимальный коэффициент усиления возмущения δf.Еслиcond(A) относительно мало, тогда система (2.1) хорошо обусловлена и возмущение
решения δx также относительно мало. Например, если δf /f ∼10
−14
и нас удовлетворяет δx/x∼10−6,тогдаcond(A) ∼ 108вполне приемлемо. Если cond(A) относительно большое, тогда мы сталкиваемся
с плохо обусловленной системой и требуются специальные методы, для
того чтобы получить приемлемый результат.
РИМЕР 2.1 (ПЛОХО ОБУСЛОВЛЕННАЯ СИСТЕМА). Рассмотрим следу-
П
ющую систему линейных уравнений:
⎞
⎞
⎟
⎟
⎟
, f =
⎟
⎟
⎠
A =
⎛
1 −1 ...−1
⎜
1 −1 ..−1
⎜
⎜
⎜
⎜
⎝
..
..
01−1
1
Точное решение этой системы x =(0,...,0, 1)
ко последняя компонента вектора f возмущена: δf =(0,...,0,δ)
⎛
−1
⎟
⎜
.
⎟
⎜
.
⎟
⎜
⎜
⎜
⎝
, det(A)=1. (2.6)
⎟
.
⎟
⎠
−1
1
T
. Предположим, что толь-
T
.Матрица A верхняя треугольная, поэтому система (2.4) может быть легко
решена относительно вектора δx. Учитывая, что Ax = f,система(2.4)
преобразуется в Aδx = δf .Распишемэтусистемуболееподробно(δx =
,...,pN)T):
=(p
1
− p2− ...− pN=0
p
1
p
− ...− pN=0
2
........................
− pN=0
p
N−1
= δ.
p
N
Данная система просто решается обратной подстановкой, которая
дает следующее решение:
= δ
p
N
= δ
p
N−1
p
=2δ
N−2
...............
N−2
=2
p
1
δ.

44 Глава 2
Теперь мы имеем все вектора, чтобы вычислить коэффициент уси-
ления, определенный в (2.5). Выберем векторную норму ·
||δx||
N−2
=2
∞
|δ|, ||x||∞=1, ||δf ||∞= |δ|, ||f||∞=1
∞
,тогда
и
Например, если N =10
cond(A) 2
2
и δ =10
N−2
.
−14
,тогдаcond(A) ∼ 10
30
и δx∞∼ 1016x∞. Система (2.6) является примером очень плохо
обусловленной системы.
Непосредственное вычисление числа обусловленности весьма затруднительно, так как требует вычисления обратной матрицы. Поэтому
обычно прибегают к оценке этого числа.
В некоторых случаях оценка для числа обусловленности может быть
получена довольно просто. Пусть матрица A может быть представлена
вследующемвиде:
A = I + H, (2.7)
где H
и
< 1.Тогда
∞
(I + H)
(I + H)
−1
−1
= I +
∞
∞
k=1
1 −H
(−H)
1
k
.
∞
Следовательно,
cond(A)
I + H
1 −H
∞
∞
1+H
1 −H
∞
.
∞
Матрицы со строгим диагональным преобладанием могут быть
представлены в виде (2.7).
2.6. Прямые методы
В этой части мы рассмотрим прямые методы. Отличительная особенность этих методов состоит в том, что, пренебрегая ошибками округлений, они дают точное решение после конечного числа операций. Далее
мы обсудим лишь основные принципы прямых методов.

2.6. Прямые методы 45
2.6.1. Основные принципы прямых методов
На первом этапе решения систем линейных уравнений матрица A
представляется в виде произведения двух треугольных матриц. Эта операция называется разложением матрицы, и форма разложения зависит
от свойств матрицы A. Для матриц общего вида используется LUразложение
A = LU,
где L — нижняя треугольная матрица с единицами на диагонали и U —
верхняя треугольная матрица. Для SPD-матриц используется разложение Холеского:
A = LL
T
,
где L — нижняя треугольная матрица. После разложения матрицы A
исходная система Ax = f может быть представлена в виде двух систем
уравнений:
Ly = f, Ux = y или Ly = f, L
T
x = y. (2.8)
Применяя прямую, а потом обратную подстановки, можно вычислить
решениеисходнойсистемы(смотри(2.2)и(2.3)).Притакомподходе, суммарная ошибка полученного решения состоит из ошибки возмущения в множителях L и U и ошибки округлений при решении систем (2.8). Вычислительные затраты для метода LU-разложения составляют N
∼ N3(для матриц общего вида), а для разложения Холеского
ops
требуется в два раза меньше вычислений и оперативной памяти, чем для
метода LU-разложения.
Существует ещё одно полезное разложение: найти ортогональную
матрицу Q иверхнюютреугольнуюматрицуR,такчтоQAx = Rx =
= Qf.Тогдарешениеx может быть получено обратной подстановкой
при векторе правой части, равном Qf .Ортогональноеразложениепривлекательно тем, что умножение A или f на Q не увеличивает ошибки
округления или возмущения, связанные с матрицей A или вектором f .
Длятогочтобыубедитьсявэтом,заметим,что
T
(Qx)=xTQTQx = xTx,
так как Q
(Qx, Qx)=(Qx)
T
Q = I. Преимущество такого подхода состоит в том, что
он дает вычислительно-устойчивый метод. Однако этот метод требует в
два раза больше вычислений по сравнению с методом LU-разложения.
Поэтому ортогональные разложения применяются для решения систем

46 Глава 2
линейных уравнений только в некоторых специальных случаях. Ортогональные разложения также находят применение для вычисления собственных значений.
Далее мы рассмотрим более подробно простой и эффективный метод
для решения систем линейных уравнений, называемый методом прогонки. Этот метод основан на специальном разложении, которое применимо
к системам уравнений с ленточной матрицей. Мы ограничимся случаем,
когда матрица системы (2.1) трехдиагональная. Общая структура метода
прогонки может быть представлена в следующем виде:
−→
⎛
∗∗ 0
∗∗∗
⎜
⎜
...
⎜
⎝
∗∗∗
0 ∗∗
⎛
1+ 0
..
⎜
⎜
⎜
⎝
..
. +
⎞
⎟
⎟
⎟
⎠
01
⎛
⎜
⎜
⎜
⎝
⎞
⎟
⎟
⎟
⎠
⎛
⎜
⎜
⎜
⎝
x
1
.
.
.
x
N
⎞
⎟
⎟
⎟
⎠
⎞
x
1
.
⎟
⎟
.
=
⎟
⎠
.
x
N
⎛
⎜
⎜
=
⎜
⎝
⎞
⎛
∗
.
⎟
⎜
⎟
⎜
.
прямой ход −→
⎟
⎜
⎠
⎝
.
∗
⎞
+
.
⎟
⎟
.
обратный ход −→
⎟
⎠
.
+
⎛
⎜
⎜
⎜
⎝
⎞
x
1
.
⎟
⎟
.
⎟
⎠
.
x
N
Для удобства запишем систему уравнений с трехдиагональной матрицей в виде:
.
b
+ c1x2= f1,
1x1
a
nxn−1
a
NxN−1
+ bnxn+ cnx
+ bNxN= fN.
= fn,n=2,...,N − 1,
n+1
(2.9)
Предположим, что мы можем записать следующее рекуррентное соотношение для компонент вектора решения:
x
n
= αnx
+ βn, (2.10)
n+1
по крайней мере, это возможно для первого уравнения. Пусть коэффициенты α
После исключения x
n−1
и β
известны, тогда мы можем записать
n−1
x
= α
n−1
a
= −
x
n
nxn−1
n−1
anα
n−1
+ bnxn+ cnx
из этих двух соотношений мы получим
c
n
n−1xn
+ b
n
x
+ β
n+1
n−1
+
n+1
f
anα
,
n
= fn.
− anβ
n−1
n−1
+ b
.
n

2.6. Прямые методы 47
Сравнивая это соотношение с (2.10), мы видим, что коэффициенты
и βnмогут быть вычислены по формулам:
α
n
c
α
= −
n
f
β
=
n
anα
α
= −
1
anα
− anβ
n
n−1
c
1
,β1=
b
1
n−1
n
,
+ b
n
n−1
,n=2,...,N,
+ b
n
f
1
.
b
1
После того как параметры α
и βnвычислены, решение системы
n
(2.9) может быть легко получено. Вначале запишем соотношение (2.10)
для n = N −1 и последнее уравнение (2.9):
x
N−1
a
NxN−1
Исключение x
N−1
дает
x
N
Остальные компоненты x
= α
N−1xN
+ bNxN= fN.
f
N
=
aNα
вычисляются с использованием форму-
n
− aNβ
N−1
+ β
N−1
+ b
N−1
N
,
.
лы (2.10) для n = N − 1,...,1. Метод прогонки в полной мере учитывает ленточную структуру матрицы, поэтому этот метод требует всего
лишь N
=8N −6. Следующая теорема описывает условия, при кото-
ops
рых метод прогонки устойчив.
Теорема 2.1. Предположим, что коэффициенты системы (2.9)
удовлетворяют условиям
=0,bN=0,
b
1
a
=0,cn=0 (n =2,...,N − 1),
n
| |an| + |cn|,n=2,...,N − 1,
|b
n
|b
| |c1|, |bN| |aN|,
1
(2.11)
где, по крайней мере, одно из неравенств из последней строки есть
строгое неравенство. Тогда выполняются следующие неравенства:
| 1(n =2,...,N)
|α
n

48 Глава 2
и
|a
+ bn| minn|cn|.
nαn−1
Таким образом, условия (2.11) достаточны для устойчивости метода
прогонки.
2.6.2. Оценка ошибки приближенного решения
Непосредственно вычислить вектор ошибки e = x − x
∗
мы не можем, так как точное решение нам не известно. Мы можем, по крайней
мере, с машиной точностью вычислить вектор невязки r = Ax −f, который обращается в нулевой вектор, когда e = o. Однако малая величина
вектора невязки не гарантирует, что вектор ошибки также мал. Проанализируем взаимосвязь между e и r более подробно. Вначале заметим,
что r = Ax − Ax
∗
= A(x − x∗)=Ae,тоестьe = A−1r.Тогдаотноше-
ние e|/f примет вид
e
=
f
Учиты ва я, ч то Ax
−1
r
=
A
Ax∗
e
Ax∗
∗
A·x∗, мы можем заменить знаменатель
A
−1
Ax∗
·r
.
в левой части неравенства и, умножая на A, получим оценку
e
x∗
A·
A
−1
r
f
= cond(A)
r
f
.
Это неравенство показывает, что относительная ошибка мала, когда
относительная величина вектора невязки мала и число обусловленности
не слишком велико.
2.6.3. Заключительные замечания
Начиная с середины 50-х годов был достигнут значительный прогресс в области вычислительной линейной алгебры. Это подтверждается
наличием эффективного и надёжного программного обеспечения, реализующего различные прямые методы для решения систем линейных уравнений. Это обеспечение доступно или в виде библиотеки подпрограмм
(IMSL
программирования (например, MATLAB
,NAG, LAPACK), или в виде встроенных функций системы
). Эти программы реализуют
различные формы разложения, которые мы обсуждали, для различных

2.7. Итерационные методы 49
типов матриц, таких как общие, ленточные, симметричные, разреженные и SPD-матрицы. На практике накопление ошибок округления может
приводить к значительному искажению вычисленного решения. Поэтому
все алгоритмы в пакетах программ включают в себя специальные меры
(такие как выбор ведущего элемента и балансировка матриц) для того,
чтобы уменьшить влияние этого эффекта. В стандартном программном
обеспечении также обеспечивается оценка числа обусловленности, что
даёт возможность оценить ошибку вычисленного решения. В дополнение, библиотеки подпрограмм включают в себя пакет BLAS (Basic Linear
Algebra Subprograms, основные подпрограммы линейной алгебры). Этот
пакет реализует различные операции над векторами и матрицами, и он
широко используется при создании прикладного программного обеспечения для научных и инженерных вычислений.
2.7. Итерационные методы
Итерационные методы для задачи Ax = f требуют бесконечного
числа операций для получения точного решения (если предположить,
что вычисления производятся точно). Конечно, на практике мы производим конечное число шагов и в результате получаем некоторое приближенное решение. Итерационные методы легко конструируются и могут
быть очень эффективны. Однако они требуют дополнительного анализа
свойств матрицы для того, чтобы выбрать подходящий метод.
2.7.1. Основные принципы итерационных методов
Итерационные методы обычно основываются на следующей эквивалентной форме системы (2.1):
x = Bx + g, (2.12)
где B называется итерационной матрицей. Эта форма системы линейных
уравнений образуется по аналогии с (1.1), мы просто применили тот же
подход к системе (2.1). Компоненты итерационной матрицы выражаются через компоненты матрицы A.Векторg выражается через вектор f
икомпонентыматрицыA.МатрицаB в явном виде обычно не вычисляется, но мы будем подразумевать, что, в принципе, это может быть
сделано. Итерационный процесс формулируется на основе эквивалентной формы (2.12) в следующем виде.
1) Зададим начальное приближение (вектор) x
(0)
.

50 Глава 2
2) Для каждого значения k будем вычислять последующие приближе-
ния, такие как
или
x
(k+1)
(k+1)
x
= Bkx
(k)
(k)
= Bx
+ g (2.13)
+ gk,k=0, 1,... . (2.14)
3) Если
или
(k+1)
r
(k+1)
x
x
=
(k+1
x
(k+1)
− x
Ax
(k)
(k+1)
(k+1)
x
ε
− f
εp,
p
тогда итерационный процесс завершён и
x
(k+1)
x∗
− x
∗
ε
.
p
Итерационный процесс (2.13) называется стационарным, а про-
цесс (2.14), соответственно, нестационарным. Как последовательные
приближения x
того чтобы ответить на этот вопрос, проведем простой анализ. Каждое
приближение x
(k)
где e
—векторошибкиk-го приближения. Подставив (2.15) в (2.13)
(k)
соотносятся с точным решением задачи (2.1)? Для
(k)
может быть представлено в следующем виде:
x
(k)
x
(k+1)
= x∗+ e
= x∗+ e
(k)
,
(k+1)
,
(2.15)
и учитывая (2.12), мы получим
= Be
(k)
или e
(k)
= Bke
(0)
,k=0, 1,... . (2.16)
(k+1)
e
Если
lim
k→∞
(k)
e
тогда итерационный процесс сходится и
(k)
x
lim
k→∞
= x∗.
=0,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
