§ 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) может быть неустойчивой. Этого нельзя утверждать в общем случае, ибо оказывается, что всегда можно подобрать функцию и начальную точку так, чтобы и приняли любые наперед заданные положительные значения, а последние можно подобрать и так, чтобы система оказалась устойчивой. Но во многих случаях она все-таки оказывается неустойчивой. Покажем это на примере, положив , при , для всех . Допустим, что при некотором происходит единичное возмущение величины , т. е. , причем при , при всех . Легко видеть, что решение выглядит следующим образом:
Аналитическое решение таково: т. е. величины и возрастают примерно как и имеет место лавинообразное накопление ошибки. Тем не менее, конечно, функция будет на каждом шаге убывать и процесс будет сходиться, но не за шагов. Такого рода явления можно устранить, если на каждом шаге проводить полную -ортогонализацию очередного вектора относительно всех предшествующих , а не только , но это требует большего числа действий на каждом шаге.
|