§ 4. Анализ погрешностей метода
В § 1 был рассмотрен процесс, в
котором строились последовательность вложенных гиперпространств
, возрастающей
размерности и последовательность точек
, доставляющих условный максимум функции
,
соответственно, на гиперпространствах
. При этом оказалось, что векторы
являются
-ортогональными.
Покажем сейчас, что справедливо в
некотором смысле и обратное утверждение.
Если:
1)
векторы
-ортогональны, т. е.
при
,
2)
точки
получены
из рекуррентного условия:
доставляет условный максимум функции
на прямой
при
произвольной фиксированной точке
,
то точка
доставляет условный максимум
на гиперпространстве
,
определяемом как совокупность векторов вида
. (16.27)
В самом деле, подставляя формулу
(16.26) в выражение для
, получим
.
Положим
и
.
Тогда,
учитывая
-ортогональность
и
при
, получим
. (16.28)
Чтобы
найти вектор
,
доставляющий максимум
на
, продифференцируем
по
и приравняем частные производные
к нулю. Тогда
(здесь
из-за
положительной определенности формы), откуда
. (16.29)
Сопоставляя
выражения (16.27) для
и
, имеем
,
.
Таким образом, точка
лежит на прямой вида
и,
очевидно, доставляет функции
условный максимум на этой прямой,
поскольку в этой точке достигается условный максимум на всем гиперпространстве
, включающем прямую.
Поэтому при точном счете
последовательности
и
совпадут.
Если же при вычислении допускаются ошибки, то ошибки на каждом шаге будут
просто складываться (векторно). В самом деле, пусть в результате первых
шагов процесс
приводит в некоторую точку
отличную от
. Положим
.
Будем
считать, что
.
Тогда коэффициенты
для
при
в представлении
(16.27) равны нулю. Поиск максимума на прямой
равносилен
поиску максимума выражения (16.28) по переменной
при фиксированных остальных переменных
. Осуществляя эту
операцию, убеждаемся, что
, как и раньше, равно
. Таким образом,
-й шаг возмущенного
процесса совпадает с соответствующим шагом невозмущенного, откуда следует, что
ошибки просто складываются. Если суммарная накопившаяся ошибка после
шагов заведомо мала
по сравнению с перемещением от начальной точки к точке оптимума (это условие
выполняется при работе на ЭВМ), то во всяком случае после двух-трех повторных
применений алгоритма максимум будет найден с очень высокой точностью.
Все эти рассуждения верны в
предположении, что система
-ортогональных векторов
получена заранее и с
достаточно высокой точностью. Но в действительности метод сопряженных
градиентов строит эти векторы, используя рекурсивную процедуру. Оказывается,
что при этом дело может обстоять значительно хуже, а именно: однажды возникшая
малая ошибка может привести к лавинообразному нарастанию ошибок в ходе
дальнейших вычислений.
В самом деле, рассмотрим метод
сопряженных градиентов в форме II:
– произвольно и при
1)
, (16.30')
2)
, (16.30'')
3)
, (16.30"')
где
,
. (16.31)
Выведем
рекуррентные соотношения для величин
и
. Из (16.30") имеем
.
Подставляя
это выражение в (16.30') и умножая скалярно обе части равенства на
, получим
(в
последнем члене использовано равенство
). Далее, чтобы получить рекуррентное
выражение для
,
заменим
по
формуле (16.30"); получим
. (16.32)
Теперь
воспользуемся снова соотношением, вытекающим из (16.30') и (16.30"),
и
подставив его в (16.32) получим
.
Наконец,
из формулы (16.30")
,
и
окончательно рекуррентное соотношение примет вид
.
Перепишем
рекуррентные соотношения в новых обозначениях, полагая
,
. При
получаем
(16.33)
.
При
получаем
.
Нетрудно убедиться, что
коэффициенты
и
подобраны
в алгоритме именно так, чтобы
и
обратились точно в нуль. Поэтому можно
рассматривать систему (16.33) при
с граничным условием
,
. Так как система (16.31)
является линейной и однородной, то при этих начальных условиях она имеет
единственное решение
,
при
.
Заметим,
что этот вывод является другим доказательством того, что метод сопряженных
градиентов на
-м
шаге достигает условного максимума в
, так как для этого достаточно, чтобы
при
.
Но система (16.31) может быть
неустойчивой. Этого нельзя утверждать в общем случае, ибо оказывается, что
всегда можно подобрать функцию
и начальную точку так, чтобы
и
приняли любые
наперед заданные положительные значения, а последние можно подобрать и так,
чтобы система оказалась устойчивой. Но во многих случаях она все-таки
оказывается неустойчивой. Покажем это на примере, положив
,
при
,
для
всех
.
Допустим, что при некотором
происходит единичное
возмущение величины
, т. е.
, причем
при
,
при всех
.
Легко видеть, что решение
выглядит следующим образом:
|
|
|
|
|
|
|
|
|
1
|
|
|
|
1
|
–3
|
|
|
1
|
–3
|
9
|
|
1
|
–3
|
9
|
–27
|
|
|
1
|
–3
|
9
|
|
|
|
1
|
–3
|
|
|
|
|
1
|
|
|
|
|
|
|
–1
|
4
|
|
–1
|
4
|
–12
|
|
4
|
12
|
36
|
|
–1
|
4
|
–12
|
|
|
–1
|
4
|
Аналитическое решение таково:
т.
е. величины
и
возрастают
примерно как
и
имеет место лавинообразное накопление ошибки. Тем не менее, конечно, функция
будет на каждом шаге
убывать и процесс будет сходиться, но не за
шагов.
Такого рода явления можно
устранить, если на каждом шаге проводить полную
-ортогонализацию очередного вектора
относительно всех
предшествующих
,
а не только
,
но это требует большего числа действий на каждом шаге.