1.8 Метод Зейделя
Процесс простой итерации в развернутом виде
n
x(k1)
x(k) ,
i 1, 2, ..., n.
i ij j ij1
Метод Зейделя отличается тем, что на очередной итерации берут не оценки предыдущей итерации, а последние полученные:
x( k 1) 1 n ijj1 x(k) , j 1 1 j 2 n x ( k 1) 2 21x(k) 2 jj2x(k) , x(k1)
i1
n
x(k1)
x(k) .
i ij j
j1
ji
ij j i
Так для приведенной выше системы x1 = 2 − 0.06 x2 + 0.02 x3, x2 = 3 − 0.03 x1 + 0.05 x3, x3 = 5 − 0.01 x1 + 0.02 x2. при нулевом начальном приближении получаем 1 x(1) = 2, 2 x(1) = 3 − 0.03 ∙ 2 = 2.94, 3 x(1) = 5 − 0.01 ∙ 2 + 0.02 ∙ 2.94 = 5.0388, 1 x(2) = 2 − 0.06 ∙ 2.94 + 0.02 ∙ 5.0388 = 1.9244, … Как правило, метод Зейделя ускоряет сходимость прибли- жений к истинному решению. 1.9 Метод релаксации Среди итерационных методов достаточно популярен методрелаксации ( ослабления) [2], где на каждом шаге меняется значе- ние только одной из компонент вектора приближения. Здесь ис- ходную систему A X = B (например, делением на диагональные элементы) преобразуем к эквивалентному виду – x1 + c12 x2 +… + c1nxn+ d1 = 0, c21 x1 – x2 + … + c2nxn+ d2 = 0, . . . .. . .. . . .. . .. . . .. . .. . . .. . .. . .. . . ... . ..cn1 x1 + cn2 x2 + … – xn+ dn= 0 и подстановкой начального приближения X(0) в получаем так называемые «невязки»: R1(0) = d1 − x1(0) + c12 x2(0) + … + c1nxn(0), R2(0) = d2 – x2(0) + c 21 x1(0) + … + c2nxn(0), . . . .. . .. . . .. . .. . . .. . .. . . .. . .. . .. . . ... . ..Rn(0) = dn− xn(0) + cn1 x1(0) + … + cn n–1 xn–1(0) или в компактной форме i i i R(0) = d− x(0) + cijj ix(0) ,i 1, 2,…, n. jВыберем максимальную по модулю невязку Rs(0) и положим в очередном приближении xs(1) = xs(0) + Rs(0) (подавляя эту невязку). Корректируя остальные невязки, имеем Rs(1) = 0, Ri(1) = Ri(0) + cis Rs(0), i s. Среди найденных невязок вновь отыскиваем наибольшую по мо- дулю Rk(1) и, положив xk(2) = xk(1) + Rk(1), получаем очередные Rk(2) = 0, Ri(2) = Ri(1) + cis Rk(1), i k, и т. д. до получения максимума невязки в пределах заданной точности. Пример. Обратимся к рассмотренной выше системе: 4 x1 + 0.24 x2 − 0.08 x3 = 8, 0.09 x1 + 3 x2 − 0.15 x3 = 9, 0.04 x1 − 0.08 x2 + 4 x3 = 20. Разделив на элементы главной диагонали, имеем x1 + 0.06 x2 − 0.02 x3 = 2, 0.03 x1 + 3 x2 − 0.05 x3 = 3, 0.01 x1 − 0.02 x2 + x3 = 5. Преобразуем к виду, приемлемому для последующих итераций: R1 = 2 − x1 − 0.06 x2 + 0.02 x3, R2 = 3 − 0.03 x1 − x2 + 0.05 x3, R3 = 5 − 0.01 x1 + 0.02 x2 − x3. Задав x1(1) = 2, x2(1) = 3, x3 = 5, получаем R1(2) = −0.08, R2(2) = 0.19, R3(2) = 0.04. Выбираем наибольшую невязку R2(2) = 0.19 и, согласно (2.30), корректируем: x2(2) = 3 + 0.19 = 3.19.Очевидно R2(2)= 0, R1(2) =R1(1) – 0.06 R2(1) = −0.08 – 0.06 0.19 = −0.0912, R3(2) =R3(1) + 0.02 R2(1) = 0.04 + 0.02 0.19 = 0.0438. Наибольшая невязка R1(2) = −0.0912 и x1(3) = 2 − 0.0912 = 1.9088. Отсюда R1(3) = 0, R2(3) = R2(2) – 0.03 R1(2) = 0 – 0.03 (–0.0912) = 0.002736, R3(3) = R3(2) – 0.01 R1(2) = 0.0438 – 0.01 (–0.0912) = 0.044712. 3 3Наибольшая невязка R(3) = 0.044712, x(3) = 5 + 0.044712 = = 5.044712 и т. д. Нетрудно увидеть, что объем вычислительной работы не больше, чем при использовании других итерационных методов. Можно свести решение системы линейных уравнений n aijxj
j1
bi,
i 1, n
(2.32)
к задаче минимизации (до нуля) функции
n n
2
gi aijxj bi, gi (2.33) i1 j1 В самом деле, если решение (2.32) существует и оно един- ственно, то (2.33) обращается в нуль. В случае противоречивой системы достижение нуля нереально, и существенную роль игра- ет выбор весовых коэффициентов gi, выражающих степень зна- чимости соблюдения того или иного уравнения (2.32). Очевидно, что решение задачи оптимизации не проще использования других рассмотренных здесь методов, требует знакомства с соответ- ствующими методами оптимизации и, может быть, даже с мето- дами случайных испытаний (методами Монте-Карло). Мы не пытаемся рассмотреть все многообразие прямых и итерационных методов решения линейных алгебраических си- стем, большинство из которых потеряло свою практическую зна- чимость в век могущества вычислительной техники. Заметим только, что для систем высокого порядка, где матрица коэффици- ентов может быть разбита на блоки, среди которых есть нулевые, используют клеточные методы, сводящие исходную задачу к по- следовательному перебору клеток (блоков) матрицы и поиску со- ответствующих обратных матриц. Особого внимания заслуживают и « плохообусловленные» системы, для которых определитель матрицы близок к нулю. Здесь малейшее изменение исходных данных ведет к значитель- ному изменению решения (решение неустойчиво по исходным
2.1 Метод дихотомии Самым простейшим из методов уточнения корней является метод Больцано ** половинногоделенияили методдихотомии(бисекции). Пусть непрерывная функция f (x) на концах отрезка [a, b] имеет значения разных знаков, т. е. f (a) f (b) < 0. Другими слова- ми, на отрезке имеется хотя бы один корень. Возьмем середину отрезка x = (a + b) / 2. Если f (a) f (x) < 0, то корень явно принад- лежит интервалу от aдо (a + b) / 2 и в противном случае от (a + b) / 2 до b. Берем подходящий из этих интервалов, вычисляем значение функции в его середине и т. д., пока длина очередного интервала не окажется меньше заданной предельной абсолютной погрешности (или выполнятся другие вышеупомянутые крите- рии). Так как каждое очередное вычисление f (x) сужает интервал поиска вдвое, то при исходном отрезке [a, b] и предельной по- грешности количество вычислений nопределяется условием (b − a) / 2n< , или n log2((b − a) / ). Например, при исходном единичном интервале и точности порядка шести знаков после де- сятичной точки достаточно провести лишь 20 вычислений значе- ний функции.
Если при некотором x = Z значения полинома и его производных неотрицательны (n-я про- изводная положительна), то Z может быть принято за верхнюю границу положительных корней полинома. Возьмем полином P(−x) = −x5 − 4 x4 − 5 x3 + 6 x + 4. Для рас- сматриваемого полинома и его производных, например при x = 2.5 P(x) = x5 − 4 x4 + 5 x3 − 6 x + 4 = 8.53125, P(x) = 5 x4 − – 16 x3 + 15 x2 − 6 = 33.0625, P″(x) = 20 x3 – 48 x2 + 30 х = 87.5, P(3)(x) = 60 x2 – 96 х + 30 = 165, P(4)(x) = 120 x – 96 = 204, P(5)(x) = 120. Значения положительны и можно утверждать, что верхняя граница для положительных корней не превышает 2.5. Если обратиться к уравнению –P(−x) = − (x5 + 4 x4 + 5 x3 − – 6 x − 4) = 0 и получить для −P(–x) аналогичные оценки при х = 2.5, получаем право утверждать, что нижняя граница для от- рицательных корней не менее −2.5. Иногда оказываются полезными и следующие утверждения. 2.2 Метод хорд В отличие от метода дихотомии, обращающего внимание лишь на зна- ки значений функции, но не на сами значения, методхордиспользует пропорциональное деление интервала . Здесь вычисляются значе- ния функции на концах интервала, и строится «хорда», соединяющая точки (a, f(a)) и (b, f(b)). Точка пере-
Рис.3.4
сечения ее с осью абсцисс
z af(b)bf(a)
f(b) f(a)
принимается за очередное приближение к корню. Анализируя знак f (z) в сопоставлении со знаком f (x) на концах интервала, сужаем интервал до [a, z] или [z, b] и продолжаем процесс по- строения хорд до тех пор, пока разница между очередными при- ближениями не окажется достаточно малой (в пределах допусти- мой погрешности).
Доказано, что истинная погрешность найденного приближе-
ния
X* Zn
MmZn Zn1 ,
mгде X* − корень уравнения, Znи Zn–1 − очередные приближения; mи M − наименьшее и наибольшее значения |f ( x) | на отрезке [ a, b]. В случае так называемых быстро осциллирующих функций, где в небольшой окрестности корня значения функции меняются весьма значимо, условие завершения итераций можно взять в ви- де |f( x) | < ε.
2.3 Метод Ньютона – Рафсона (метод касательных) Другую обширную группу методов уточнения корня пред- ставляют итерационные методы, в отличие от методов дихотомии и хорд требующие задания не начального интервала местонахож- дения корня, а его начального приближения. Наиболее популярным из таких методов является метод Ньютона − Рафсона ( метод касательных). Пусть известно неко- торое приближенное значение Znкорня X*. Применяя формулу Тейлора f(Zn
h)
f(Zn
) hf'(Zn
) h2
2!
f''(Zn
) ... hn
n!
f(n) (Zn
) ...
и ограничиваясь в ней двумя членами, имеем
f(Zn+ h) f(Zn) + h f(Zn) = 0,
откуда h= −
f(Zn) , Z
f '(Zn)
n+1 = Zn−
f(Zn) .
f'(Zn)
Число положительных кор- ней полинома равно числу перемен знаков в системе его коэффи- циентов или меньше этого числа на четную величину.
Так для уравнения P(x) = x5 − 4 x4 + 5 x3 − 6 x + 4 = 0 (нуле- вые коэффициенты не учитываются) число положительных кор- ней равно 4 или 2. Если взять P(−x) = − (x5 + 4 x4 + 5 x3 − 6 x− 4) =
= 0, то число перемен знаков равно 1 и исходное уравнение имеет один отрицательный корень Если полином с вещественными коэффициентами имеет только действительные корни, то система его коэффициентов удовлетворяет условию
a2 a a ( k 1, 2,…, n1) .
k k1 k1
Обратите внимание, что обратное утверждение неверно. Например, полином P(x) = x2 − 4 x + 5 , где 42 > 1 ∙ 5, обладает двумя комплексными корнями.
Геометрически этот метод предлагает построить касатель-
ную к кривой y = f (x) в выбран- ной точке x = Zn, найти точку пе- ресечения ее с осью x и принять эту точку за очередное прибли- жение к корню
Очевидно, метод касатель- ных обеспечивает сходящийся процесс приближений лишь при
Рис.3.5
выполнении некоторых условий: в зависимости от выбора началь-
ного приближения и особенностей f(x) может возникнуть расхо-
дящийся процесс или уход к другому корню В случае функций, непрерывных на [a, b] вместе со своими производными, для выбора начального приближения полезна следующая теорема [1, 2, 4].
Теорема. Если f (a) f (b) < 0, f (a) и f (b) ≠ 0 и знакопостоян- ны на [a, b], то при соблюдении f (z0) f (z0) > 0, z0 [a, b] итера- ционный процесс сходится
Очевидно, что для функций, производная от которых в окрестности корня близка к нулю, использовать метод Ньютона едва ли разумно.
Вернемся к формуле Тейлора учитывая на единицу большее число слагаемых
f(Zn
h)
f(Zn
) hf'(Zn
) h2
2!
f''(Zn)
f(Zn
) h f'(Z
n
) h
2
f''(Zn
) 0 .
Положив внутри скобок h= −
f(Zn) , получаем
f '(Zn)
f(Zn h) f( Zn) h f' ( Z n |