Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Численные методы в информационных системах. Учебное пособие
.pdf
Тема 2. ЧИСЛЕННОЕ РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ
Необходимость решать системы линейных алгебраических урав-
нений (СЛАУ) возникает при реализации очень многих методов вычислительной математики. Для решения этой задачи разработано
очень много различных методов, которые можно разделить на прямые
и итерационные. Прямые методы позволяют теоретически получить
точное решение задачи (т.е. при отсутствии ошибок округления при
вычислениях) за конечное
зволяют вычислять некоторую последовательность векторов, сходящуюся к решению задачи.
Задача ставится следующим образом. Пусть требуется найти ре-
шение системы линейных алгебраических уравнений:
или в векторной форме
где A – матрица коэффициентов; X – вектор неизвестных; B – вектор
правых частей.
Будем считать, что Δ = det A ≠ 0, т.е. решение существует и един-
ственно.
Рассмотрим вначале прямые методы. В явном виде решение сис-
темы (1) записывается в виде формул Крамера
– определитель матрицы, которая получается из матрицы A пу-
где Δ
i
тем замены i-го столбца на столбец правых частей.
Этот метод очень неэкономичен, так как для его применения тре-
буется (n + 1)! операций, поэтому на практике используются различ-
ные варианты метода исключения переменных (Гаусса). Метод исключения переменных состоит из двух этапов: прямого хода
щегося в преобразовании исходной системы к системе с треугольной
матрицей коэффициентов, и обратного хода, т.е. решения системы с
треугольной матрицей.
Схема единственного деления. Пусть a
всегда можно переставить уравнения таким образом, чтобы это требование выполнилось. Умножим первое уравнение системы (1) на мно-
АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ
число операций. Итерационные методы по-
1. ПРЯМЫЕ МЕТОДЫ РЕШЕНИЯ СЛАУ
a
a
a
1, 1x1
2, 1x1
n, 1x1
+ a
+ a
+ a
1, 2x2
2, 2x2
n, 2x2
+ a
+ a
1, 3x3
2, 3x3
+... + a
+... + a
1, n xn
2, n xn
= b1;
= b2;
… (1)
+ a
n, 3x3
+... + a
n, n
xn = bn
AX = B,
x
= Δi/Δ,
i
≠ 0, если это не так, то
1, 1
, заключаю-
11

(
)
(
)
)1(
житель
l
i
= –a
неизвестную x
чим систему:
, и складывая его с i-м уравнением, исключим
i, 1/a1, 1
из всех уравнений, кроме первого (i = 2, 3,..., n). Полу-
1
a
1, 1x1
0 +
а
+ a
)1(
2,2
x2
1, 2x2
+
+ a
а
)1(
3,2
1, 3x3
x3
+... + a
+ ... +
а
,2 n
1, n
)1(
xn
xn = b1;
=
b ;
2
)1(
… (2)
=
+
i
b ,
n
)1(
l b
i
)1(
.
1
)2(
l = –
i
)1(
а /a
2,i
2, 2
)1(
где
а = a
i, j
, ji
Предполагая, что a
исключим
x2 из всех уравнений, кроме первого и второго. Аналогично,
+
)1(
0 +
а
x2
2,n
)1(
l a
, i, j = 2, 3, 4, ..., n,
1, j
i
2, 2
)1(
+
а
x3
3,n
≠ 0, и используя множители
из оставшихся уравнений исключим
+... +
x
)1(
а
xn
, nn
)1(
b = b
i
, затем x4 и т.д. Выполнив n – 1
3
шагов, придем к системе с треугольной матрицей:
a
+ a
1, 1x1
0 +
а x
0 + 0 +
+ a
1, 2x2
)1(
+
а x
2
2,2
)2(
x
+ ... +
а
3
3,3
)1(
3,2
1, 3x3
3
+ ... + a
+ ... +
)2(
а
,3 n
а x
x
= b
n
1, n xn
)1(
,2 n
= b
n
;
3
= b
;
1
;
2
…
+ 0 + 0 + ... +
0
)1(,−n
а xn = b
nn
.
n
Решение полученной системы (2) выполняется снизу вверх. Из
последнего уравнения найдем
подставив его в предпоследнее уравнение, найдем x
x
=
n – 1
x
, x
затем найдем
xm =
m
n – 2
)1(
m
n – 3
,
, x
)1(
−−
Этот метод требует (n(n – 1)(4n – 7) + n
больших n примерно равно 2n
xn
n
=
x
n
n
n
−
−
n
и последним x
n – 4
)1(
−
m
nmnm
3
/3.
1,
−
nm
ab ,
)2(,1)1( −
n
−
n
nn
−
...
1
−
n
)1(,)1( −− n
nn
)2(
n
axab ,
1
−
nn
по формуле:
1
)1(
−
m
−−−−
1,
+
nm
2
)/6 операций, что при
n – 1
1,1
−−
)1(
−
m
axaxaxab.
,1
+
mmn
При выполнении прямого хода из-за малости диагональных эле-
ментов, т.е. при a
близких к нулю, могут возникать большие арифме-
i, i
тические погрешности. Для уменьшения таких погрешностей используют схемы Гаусса с выбором главных элементов.
Выбор главного элемента по столбцам. Перед исключением x
найдем номер максимального по модулю элемента первого столбца
,
1
12

i0 = arg {max|a
и поменяем местами первое и i
первый шаг исключения. Перед исключением x
|} 1 ≤ i ≤ n,
i, 1
уравнения, после чего осуществим
0
отыскиваем следую-
2
щий максимальный элемент во втором столбце:
i
= arg {max|
1
и осуществляем перестановку второго и i
)1(
а |} 2 ≤ i ≤ n,
2,i
-го уравнений. Продолжая
1
таким образом, приведем систему к треугольному виду. Обратный ход
выполняем так же как и в предыдущем случае.
Выбор главного элемента по строкам. Перед исключением x
найдем номер максимального по модулю элемента первой строки
j
= arg {max|a
0
и взаимно поменяем номера неизвестных x
ми столбцы 1 и j
), затем исключим переменную x1. На следующем
0
|} 1 ≤ j ≤ n,
1, j
1
и xj0 (т.е. поменяем места-
шаге найдем следующий главный элемент
)1(
а |} 2 ≤ j ≤ n,
,2 j
и поменяв столбцы j
= arg {max|
j
1
и 2, исключим переменную x2. Продолжая таким
1
образом, приведем систему к треугольному виду и затем выполним
обратный ход. Для восстановления исходной нумерации неизвестных,
выполним взаимные перестановки найденных значений в порядке,
обратном их выполнению при прямом ходе.
Выбор главного элемента по всей матрице. Определим макси-
мальный по модулю элемент матрицы max{|a
Пусть, например, это элемент с номером i
местами с уравнением i
исключим x
из всех уравнений, кроме первого. Далее найдем новый
1
, а переменную x1 поменяем с переменной x
0
|} (1 ≤ i ≤ n, 1 ≤ j ≤ n).
i, j
. Уравнение 1 поменяем
0 j0
j0
главный элемент, не рассматривая первую строку и первый столбец
max{|
)1(
а |} (2 ≤ i ≤ n, 2 ≤ j ≤ n), и выполним второй шаг исключения
, ji
неизвестных. После приведения системы к треугольному виду и выполнения обратного хода, переставим местами найденные значения
неизвестных в порядке, обратном их перестановкам при прямом ходе.
Варианты метода Гаусса с выбором главных элементов позволя-
ют существенно уменьшить неблагоприятное
влияние погрешностей
округления на результаты расчета. Однако для систем с так называемым диагональным преобладанием можно не заботиться о влиянии
погрешностей округления и применять схему единственного деления.
Условие диагонального преобладания записывается в виде
n
>
aa
|||| при i = 1, 2, 3, ..., n.
jiii
,,
∑
ji
==
1,1
1
и
13

При выполнении этого условия перед каждым шагом исключения
неизвестных, главный элемент всегда будет находиться в нужной позиции.
При реализации численных методов решения дифференциальных
уравнений часто возникают СЛАУ специального вида – трехдиагональные. У таких систем матрица коэффициентов имеет отличные от
нуля элементы только на главной диагонали и двух диагоналях, прилежащих
к главной. Запишем такую систему в следующем виде:
– b1x2 = f1;
a
1x1
– b1x2 + c2x3 = f2;
a
2x1
a
– b3x3 – c3x4 = f3;
3x2
… (3)
a
n – 1xn – 2
– d
n xn – 1
– b
n – 1xn – 1
+ 1xn = fn.
+ c
n – 1xn
= f
n – 1
;
Как правило, такие системы удовлетворяют условию диагонального преобладания, записанному в виде
| < 1, |dn| < 1, |bi| > |ai| + |ci| i = 2, 3, ..., n – 1.
|d
1
Для таких систем используется специальный вариант метода исключения, называемый метод прогонки. Выразим x
из первого урав-
1
нения системы (3)
= d1x2 + f1
x
1
и подставим его во второе, получим уравнение относительно x
a
+ f1) – b2x2 + c2x3 = f2. (4)
2(d1x2
и x3
2
Введем обозначения
d
= c2/ (b2 – a2d1), g1 = f
2
= (a2g1 – f2) / (b2 – a2d1), (5)
1, g2
и получим уравнение аналогичное (4)
= d2x3 + g2.
x
2
Подставив x
и x4. Поступая аналогично для k-го уравнения, получим соотно-
но x
3
в третье уравнение, получим уравнение относитель-
2
шения, аналогичные (4):
x
= ck / (bk – akd
d
k
= dkx
k
), gk = (akg
k – 1
k + 1
+ gk,
– fk) / (bk – akd
k – 1
). (6)
k – 1
Дойдя до последнего уравнения, найдем из него последнюю переменную
= (fn + dng
x
n
) / (1 – dnd
n – 1
), (7)
n – 1
а затем последовательно найдем все остальные переменные по уравнению (5).
14

Таким образом, метод прогонки состоит из прямой прогонки, т.е.
нахождения промежуточных коэффициентов d
, gk, k = 1, 2, ..., n – 1 по
k
формулам (6) и обратной прогонки, т.е. нахождения неизвестных по
формулам (7) и (5).
Метод прогонки относится к экономичным методам и требует порядка 8n операций, это достигается за счет того, что над нулевыми
элементами исходной матрицы никаких действий не выполняется.
Для оценки неустранимой погрешности при решении линейных
систем необходимы некоторые
Нормой вектора
X||, и удовлетворяющее условиям:
мое ||
1)
||X|| ≥ 0, ||X|| = 0 ⇔ X = 0;
2)
||α⋅X|| = |α|⋅||X||, α – скаляр;
3)
||X + Y|| ≤ ||X|| + ||Y|| (неравенство треугольника).
X называется положительное число, обозначае-
сведения о нормах векторов и матриц.
Способ введения нормы может быть различен, например:
||
X||
= ∑ |xi|,
1
||
X||
||X||
=
2
=
3
2
x (Евклидова норма),
i
∑
||max
(равномерная норма).
,1inix=
Пространство, с введенной в нем нормой, называется нормированным и метрическим, поскольку норма определяет метрику
ρ(X, Y) – расстояние между элементами
ρ(X, Y) = ||X – Y||.
Нормой квадратной матрицы А называется положительное число,
обозначаемое ||А||, и удовлетворяющее условиям:
||А|| ≥ 0, ||A|| = 0 ⇔ A = 0;
1)
||α⋅A|| = |α|⋅||A||, α – скаляр;
2)
||A + B|| ≤ ||A|| + ||B|| (неравенство треугольника);
3)
||A⋅B|| ≤ ||A||⋅||B||.
4)
Норма матрицы вводится с помощью нормы вектора. Норма матрицы ||A|| называется согласованной с нормой вектора ||
X||, если
||A⋅X|| ≤ ||A||⋅||X||.
Норма матрицы ||A|| называется подчиненной норме вектора ||
если норма матрицы ||A|| вводится с помощью нормы вектора ||
дующим образом:
||||
AX
sup||A||
==
||||
X
1||X||0X =≠
.
||AX||sup
X||,
X|| сле-
15

∑
(
δ
δ
Подчиненная форма является согласованной с соответствующей
метрикой векторного пространства. В частности, используя нормы
векторов ||
где )max()(
транспонированная матрица A);
T
A
A.
X||
, ||X||2, получим нормы матриц:
1
max
1
А
2
=
3
T
AA λ=ρ – спектральный радиус матрицы A
T
AA
λ
Для симметричной матрицы A
T
AA λ=ρ , ||A||
aА
,
i
n
∑
j
ji
−=1
)
AATρ=
,max
aА
ji
,
1
−
j
i
- собственные значения матрицы
T
AA
T
= A, имеем ATA = A2,
2
)max()(
T
AA
= max |λA|.
2
T
A (AT –
Оценим сначала влияние на точность получаемого решения ошибок, содержащихся в исходных данных, предполагая, что арифметические действия выполняются без округлений.
Пусть вместо системы A
(A +
Здесь
δA – матрица возмущений, задающая ошибки коэффициен-
тов матрицы А,
δB – возмущения правых частей системы, δX – вектор
ошибок, обусловленный влиянием возмущений
X = B имеем систему
δA)⋅(X + δX) = B + δB.
δA, δB.
Преобразуем систему к виду
A
δX + δAδX = δB – δAX,
и отбрасывая члены второго порядка малости
решения
δX = A
–1
(δB – δAX).
δA⋅δX, найдем ошибку
Используя рассмотренные нормы векторов и матриц, получим
оценку величины погрешности
||
δX|| = ||A
–1
(δB – δA⋅X)|| ≤ ||A–1|| (||B||
|| ||
B
|| ||
B
|| ||
A
|| ||
A
|| ||
A
|| ||
X+
).
Учитывая, что ||
B|| = ||AX|| ≤ ||A||⋅||X|| получим:
⎛
||δ||
−
1
XAAX
B
⎜
||||||||||||||δ||
⎜
⎝
+⋅⋅⋅≤
||||
B
⎞
||δ||
A
⎟
,
⎟
||||
A
⎠
откуда получим оценку относительной погрешности решения
16

⎞
δ
||||
ABX
⎟
.
⎟
||||
ABX
⎠
Здесь
⎛
δ
||||
||||
μ
= ||A–1||⋅||A|| – число обусловленности матрицы A, имен-
A
δ
||||
⎜
μ≤
A
⎜
⎝
+
||||
но эта величина определяет, насколько сильно погрешности исходных
данных влияют на решение системы. При умеренных значениях числа
μ
обусловленности (1 <
μ
ной. Если
велико (μA > 1000), то система считается плохо обуслов-
A
< 10) система считается хорошо обусловлен-
A
ленной, и ее решение сильно зависит от точности входных данных.
Оценку влияния на решение системы погрешностей округления
при выполнении арифметических операций произведем следующим
образом. Машинное решение X
которой возмущенной матрицей A +
*
= X + δX удовлетворяет системе с не-
δA
*
δA)X
(A +
= B.
Для нормы матрицы эквивалентных возмущений справедлива
оценка
||
δA|| ≈ ng(A)||A||p
–t
,
где n – порядок системы; p – основание машинной арифметики (обычно p = 2); t – число цифр мантиссы;
k
⎛
⎜
,
ji
=
)(
Ag
⎜
⎜
,
ji
⎝
⎞
||||max
a
,
ji
⎟
.
⎟
||||max
a
,
ji
⎟
⎠
Величина g(A) называется коэффициентом роста и показывает,
насколько могут возрасти пересчитываемые элементы матрицы A при
выполнении прямого хода. Используя эту оценку, получим
δ
||||XX
μ
ng(A)p–t.
≈
A
||||
Если, например, решается система из 1000 уравнений с хорошей
обусловленностью и диагональным преобладанием
μA ≈ 1, g(A) ≈ 1 на
32-разрядной машине ( p = 2, t = 26), то нельзя получить точность выше
δ
||||XX
≈
||||
1000⋅2
–26
≈10–4,
а если при этом система плохо обусловлена μ
изойти полная потеря точности.
2. ИТЕРАЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ СЛАУ
При итерационном решении линейная система
AX = B (8)
≈ 10 000, то может про-
A
17

преобразуется каким-либо образом к эквивалентной системе:
X = PX + G, (9)
а затем строится итерационный процесс:
(k)
X
= PX
(k – 1)
+ G. (10)
Сходимость итерационного процесса обеспечивается при выполнении условий следующей теоремы.
Теорема 1. Для сходимости итераций (10) к решению X
*
системы
(9) достаточно, чтобы в какой-либо норме выполнялось условие
||P|| ≤ q < 1,
(0)
при этом независимо от выбора X
||X
справедлива оценка точности
(k)
– X*|| ≤ qk ||X
(0)
– X*||. (5)
Приведенная в теореме оценка точности показывает, что итерационный процесс имеет линейную скорость сходимости и позволяет
оценить число итераций, гарантирующих, что вычисленное решение
ε
будет отличаться от точного не более, чем на малую величину
(k)
– X*|| ≤ qk ||X
||X
(0)
– X*|| ≤ ε,
:
откуда получаем оценку k
lg
≥
которой можно пользоваться, если мажорировать каким-то способом
начальную погрешность ||X
(0)
– X*||. Практически итерации прекраща-
ε
)0( ∗
−
XX
qklg
||||
,
ют, когда в какой-либо норме выполняется условие
(k)
– X
(k – 1)
|| ≤ ε.
||X
Проще всего использовать равномерную норму
||X|| =
||max
.
,1inix=
При приведении системы (8) к системе (9) используются разные
подходы. Рассмотрим некоторые из них.
Метод Якоби (простых итераций). Разрешим каждое из уравнений (1) относительно неизвестного в главной диагонали, т.е. из первого уравнения выразим x
=
m
– a
1
(bm – a
mma,
m, m + 1xm + 1
x
, из второго x2 и т.д.
1
– a
m, 1x1
– ... – a
m, 2x2
m, nxn
– ... – a
),
m, m – 1xm – 1
–
m = 1, 2, 3, ..., n.
Получим систему (9) с матрицей вида
18

L
L
a
,1
n
a
1,1
a
,2
n
. (11)
a
2,2
a
a
0
a
a
1,2
=P
a
0
2,2
3,1
2,1
a
1,1
1,1
a
3,2
a
2,2
LLLLL
a
1,
n
n
a
a
,
nn
3,
2,
n
a
,
,
nn
nn
L
0
a
a
Вычисление итераций в этом случае производится по формуле:
−
m
)(
x
m
⎜
⎜
a
mm
,
⎝
⎛
1
k
1
k
iimm
,
−
i
1
n
−
)1(
−−=
∑∑
+=
mi
1
⎞
−
k
)1(
⎟
.
xaxab
iim
,
⎟
⎠
Этот метод сходится при выполнении условий диагонального
преобладания (11), но при прочих равных условиях он имеет скорость
сходимости примерно в два раза выше, чем метод Якоби.
Метод релаксаций (однопараметрический метод итераций).
Умножим обе части уравнения (1) на некоторое число τ
τXA = τB (12)
и приведем полученное уравнение к виду
X = (E – τA
)⋅X + τB. (13)
Фактически мы получили уравнение (12), где P = (E – τA), G = τB.
Чтобы обеспечить сходимость итераций (13), параметр τ должен
быть таким, чтобы в одной из норм выполнялось условие
||P|| = ||E – τA||
≤
q < 1.
Для определения значения параметра τ будем использовать следующую теорему.
Теорема 2. Для сходимости итерационного процесса (3) к решению
системы (1) необходимо и достаточно, чтобы все собственные значения
ν
матрицы P по абсолютной величине были меньше единицы
i
|
ν
| < 1.
i
Если матрица исходной системы симметрична и положительна
T
= A, A > 0), то собственные значения λi матрицы A связаны с соб-
(A
ственными значениями матрицы P соотношением
ν
= 1 – τλi,
i
из чего можно получить условие:
2
.
≤τ
max
λ
i
i
19

X
~
X
~
X
X
X
X
~
X
X
X
X
~
Выполним оценку влияния округлений при вычислениях итерационными методами на точность получаемых результатов. Что касается влияния ошибок входных данных, то их влияние было рассмотрено
в предыдущей главе независимо от метода.
Будем использовать тот факт, что суммарный эффект ошибок
округлений при выполнении одного шага итерационного процесса (13)
можно трактовать как возмущение правой
части уравнения, т.е. векто-
ра G. Реальный процесс запишем в виде
~
(n)
= P⋅X
(n – 1)
+ G + δG.
Тогда для разности между реально вычисляемыми приближениями
(n)
и идеальными X
(n)
, которые получались бы, если бы вычисле-
ния производились без округлений, получим
(n)
– X
(n)
= P(
~
(n – 1)
– X
(n – 1)
) + δG,
сходимости ||P|| ≤ q <1, и оценивая разности векторов, получим
~
(n) – X(n)
||
+ q||δG
n – 1
+ q
(n – 1)
).
|| ≤ q||
|| + ||δG
~
(n – 1) – X(n – 1)
(n)
|| ≤ qn||
~
|| + ||δG
(0)
– X
(0)
(n)
|| + (
≤ q2||
max
k
(n – 2)
||δG
(n – 2)
– X
(k)
|| )⋅(1 + q + q2 + ...
|| +
Поскольку начальное приближение не вычисляется, а задается,
будем считать, что
Обозначая максимально возможную суммарную (в пределах одной итерации) неустранимую погрешность δ =
~
(0)
(0)
– X
||
|| = 0.
max
k
||δG
(k)
||, и заменяя
сумму геометрической прогрессии, получим окончательную оценку
погрешности
n
(n)
– X
(n)
|| ≤ δ,
||
q
− 11
δ
≤
. (14)
qq
−
Эта мера является мерой максимально возможной точности, поэтому бессмысленно задавать допустимый уровень погрешности
меньше, чем
Представление о порядке
δ/(1 – q).
δ можно получить, используя статисти-
ческие данные анализа погрешностей [19]. Выполнение N-однотипных
арифметических операций приводит к суммарной ошибке округления
порядка Δ
, где Δ0 – погрешность выполнения одной операции.
0 N
При использовании итерационных методов для вычисления одной
компоненты результата требуется порядка n умножений и делений, где
n – порядок системы. Следовательно,
δ ≈ Δ
0 n
.
ε
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
