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

Численные методы в информационных системах. Учебное пособие

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