Prentice-Hall Series in Computational Mathematics Numerical Methods for Unconstrained Optimization and Nonlinear Equations J. E. Dennis, Jr. Rice University R. B. Schnabel University of Colorado at Boulder Prentice-Hall, Inc., Englewood Cliffs, New Jersey 07632 Дж. Дэннис, мл., Р. Шнабель Численные методы безусловной оптимизации и решения нелинейных уравнений Перевод с английского О. П. Бурдакова под редакцией Ю. Г. Евтушенко Москва «Мир» 1988 ББК 22.193 Д 94 УД К 519.61 Дэннис Дж., мл., Шнабель Р. Д94 Численные методы безусловной оптимизации и решения нелинейных уравнений: Пер. с англ.—М.: Мир, 1988.— 440 с., ил. ISBN 5-03-001102-1 Монография известных американских специалистов, посвященная как теории численных методов оптимизации, так и вопросам реализации этих методов на ЭВМ. Особое внимание уделено наиболее эффективным методам ньютоновского типа. Приведены пакеты программ решения прикладных задач оптимизации. Для математиков-вычислителей, инженеров-исследователей, аспирантов и студентов вузов. Д 1702070000—187 041(01)—88 34—88, ч. 1 ББК 22.193 Редакция литературы по математическим наукам ISBN 5-03-001102-1 (русск.) ISBN 0-13-627216-9 (англ.) 1983 by Prentice-Hall, Inc. перевод на русский язык, с автор- скими исправлениями, «Мир», 1988 Оглавление Предисловие редактора перевода и переводчика .......... 5 Предисловие к русскому изданию ............... 7 Предисловие ....................... 9 Глава 1. Введение .................... 14 1.1. Постановки задач . ................ 14 1.2. Характерные особенности встречающихся на практике задач 18 1.3. Арифметика конечной точности и измерение ошибок .... 24 1.4. Упражнения . .................. 27 Глава 2. Нелинейные задачи с одной переменной . . .... ... 29 2.1. О том, чего не следует ожидать ........... 29 2.2. Метод Ньютона решения одного уравнения с одним неиз- вестным . .................... 31 2.3. Сходимость последовательностей действительных чисел . . 34 2.4. Сходимость метода Ньютона ............ 36 2.5. Глобально сходящиеся методы решения одного уравнения с одним неизвестным ................ 40 2.6. Методы для случая, когда производные не заданы .... 44 2.7. Минимизация функции одной переменной ........ 50 2.8. Упражнения . .................. 53 Глава 3. Основы вычислительной линейной алгебры ........ 58 3.1. Векторные и матричные нормы, ортогональность ..... 59 3.2. Решение систем линейных уравнений и разложения матриц 65 3.3. Погрешности при решении линейных систем ....... 71 3.4. Формулы пересчета матричных разложений ....... 76 3.5. Собственные значения и положительная определенность . . 79 3.6. Линейная задача о наименьших квадратах ....... 82 3.7. Упражнения . .................. 88 Глава 4. Основы анализа функций многих переменных ....... 91 4.1. Производные и многомерные модели ......... 91 4.2. Конечно-разностные производные в многомерном случае . . 100 Оглавление 439 4.3. Необходимые и достаточные условия в задачах безусловной минимизации . .................. 103 4.4. Упражнения . .................. 106 Глава 5. Метод Ньютона решения нелинейных уравнений и безусловной минимизации ............... . . • • 110 5.1. Метод Ньютона решения систем нелинейных уравнений . .110 5.2. Локальная сходимость метода Ньютона ....... 114 5.3. Теорема Канторовича и теорема о сжимающем отображении 116 5.4. Методы с конечно-разностными производными для решения систем нелинейных уравнений ............ 119 5.5. Метод Ньютона безусловной минимизации ....... 125 5.6. Методы с конечно-разностными производными для безуслов- ной минимизации . ................ 130 5.7. Упражнения . .................. 134 Глава 6. Глобально сходящиеся модификации метода Ньютона .... 138 6.1. Общая квазиньютоновская схема ......... 139 6.2. Направления спуска ................ 140 6.3. Линейный поиск .................. 144 6.3.1. Результаты исследования сходимости при надлежащем выборе шагов . ............... 149 6.3.2. Выбор «шага дроблением ........... 155 6.4. Подход: модель-доверительная область ........ 160 6.4.1. Локально ограниченный оптимальный («криволиней- ный») шаг .................. 165 6.4.2. Шаг с двойным изломом ............ 171 6.4.3. Пересчет доверительной области ......... 176 6.5. Глобальные методы решения систем нелинейных уравнений 180 6.6. Упражнения . .................. 187 Глава 7. Критерии останова, масштабирование и тестирование .... 190 7.1. Масштабирование . ................ 190 7.2. Критерии останова ................. 195 7.3. Тестирование . .................. 198 7.4. Упражнения . .................. 202 Глава 8. Методы секущих для решения систем нелинейных уравнений 204 8.1. Метод Бройдена . ................ 205 8.2. Анализ локальной сходимости метода Бройдена . . . . .211 8.3. Реализация квазиньютоновских алгоритмов, использующих формулу пересчета Бройдена ............. 223 8.4. Другие формулы секущих для нелинейных уравнений . . . 227 8.5. Упражнения . .................. 229 Глава 9. Методы секущих для безусловной минимизации ...... 232 9.1. Симметричная формула секущих Пауэлла ........ 233 9.2. Симметричные положительно определенные формулы секущих 237 9.3. Локальная сходимость положительно определенных методов секущих ..................... 243 9.4. Реализация квазиньютоновских алгоритмов, использующих положительно определенные формулы секущих ...... 248 440 Оглавление 9.5. Еще один результат, касающийся сходимости положительно определенных методов секущих ........... 252 9.6. Другие формулы секущих для безусловной минимизации- . . 252 9.7. Упражнения . .................. 254 Глава 10. Нелинейная задача о наименьших квадратах ....... 259 10.1. Постановка нелинейной задачи о наименьших квадратах . . 259 10.2. Методы типа Гаусса-Ньютона ........... 263 10.3. Методы полностью ньютоновского типа ......... 271 10.4. Некоторые другие соображения относительно решения нели- нейных задач о наименьших квадратах ......... 277 10.5. Упражнения . .................. 280 Глава 11. Методы решения задач со специальной структурой .... 284 11.1. Разреженный конечно-разностный метод Ньютона ..... 285 11.2. Разреженные методы секущих ............ 288 11.3. Вывод формул секущих с минимальными поправками . . . 293 11.4. Анализ методов секущих с минимальными поправками . . 299 11.5. Упражнения ................... 305 Приложение А. Модульная система алгоритмов безусловной минимизации и решения нелинейных уравнений (Р. Шнабель) . . . 308 Приложение В. Тестовые задачи (Р. Шнабель) .......... 422 Литература .. ..................... 425 Именной указатель ..................... 432 Предметный указатель . .................. 434 Предисловие редактора перевода и переводчика Вниманию читателя предлагается книга американских специа- листов в области численного анализа Джона Дэнниса, мл., и Роберта Шнабеля. Она посвящена двум важным и тесно меж- ду собой связанным разделам: безусловной минимизации и решению нелинейных уравнений. Наряду с серьезным теоре- тическим материалом, отражающим современное состояние исследований в рассматриваемой области, в книге большое внимание уделяется вопросам программной реализации чис- ленных методов и их преподавания в высшей школе. Авторы сознательно ограничились рассмотрением числен- ных методов ньютоновского (квазиньютоновского) типа. Класс этих методов отличает концептуальное единство и до- статочная широта охвата, причем на практике такие мето- ды—одни из наиболее эффективных. Общая идея методов такова: на каждой итерации сначала строится модельная ап- проксимация исходной задачи (линейная в случае нелинейных уравнений и квадратичная для безусловной минимизации), а затем на основе ее решения находится новое приближение. По такой же схеме проводится исследование сходимости. Впервые столь подробно в литературе на русском языке изла- гаются метод доверительной области, квазнньютоновские ме- тоды типа секущих и др. Методы, не вошедшие в указанный класс, в достаточной мере представлены ссылками на литера- туру. В связи с тем что в оригинале имеется только одна ссыл- ка на работу советских авторов, мы решили указать несколько отечественных монографий, содержащих обширные списки ли- тературы. Полагаем, что книга вполне пригодна для форми- рования у читателя целостного представления о современном состоянии численных методов минимизации и решения нели- нейных уравнений. Более четверти книги занимают два приложения, написан- ные Робертом Шнабелем. В отличие от несколько схематич- ного описания алгоритмов в основной части книги, вполне до- 6 Предисловие редактора перевода и переводчика статочного для их теоретического рассмотрения, здесь алго- ритмы представлены уже с той степенью детализации, кото- рая требуется для их непосредственной программной реализа- ции. Они составляют в приложении А целостную систему ал- горитмов безусловной минимизации и решения нелинейных уравнений. Эта система основана на модульном принципе, ориентирована на учет особенностей машинной реализации и хорошо документирована. При ее написании использован условный алгоритмический язык, который вполне естественно реализуется на Фортране, Алголе, Паскале, Си и других язы- ках программирования. Кстати, некоторые конструкции этого псевдоязыка, описанного в разд. 1.3 приложения А, иногда используются и в основной части книги. Приложение В со- ставляют тестовые задачи безусловной минимизации и реше- ния нелинейных уравнений. Как отмечали сами авторы, лю- бая большая система алгоритмов неизбежно содержит опе- чатки и некоторые неточности. В этом авторы оказались, к со- жалению, правы. Вероятно, и мы окажемся" правы, если по- вторим это утверждение. Несколько глав вводного характера делают книгу доступ- ной для тех, кто знаком лишь с основами математического анализа и линейной алгебры. Изложение методически проду- мано и сопровождается упражнениями. Имеются подробные рекомендации по использованию книги в качестве учебного пособия. При этом следует учитывать, что в США учебный семестр длится 12—15 недель, а в неделю проводится 3 лек- ции,- каждая около одного часа. Основная часть книги может быть использована для .чтения лекций студентам и аспиран- там, а упражнения—для проведения семинаров. Приложения могут. составить основу учебных проектов. Однако возможно- сти содержащейся в приложении А модульной системы алго- ритмов гораздо шире и позволяют создавать также пакеты прикладных программ для решения практических задач. . В. процессе работы над переводом возникали всевозмож- ные вопросы, породившие довольно интенсивную переписку с авторами. Все исправления в книге сделаны либо с ведома авторов, либо по их собственной инициативе. Мы выражаем Дж,- Дэннису и Р. Шнабелю глубокую признательность за вни- мание к нашему .труду. Русскому изданию авторы предпослали посвящение «Ти world peace», что можно перевести как «Делу мира во всем мире». Они предложили подписаться под ним и нам, также ра- ботавшим над книгой. Мы с радостью подписываем это посвя- щение, отражающее искреннее стремление наших народов к миру. Ю. Г. Евтушенко О. П. Бурдаков Делу мира во всем мире Дж. Дэннис, мл., Р. Шнабель, О. Бурдаков, Ю. Евтушенко Предисловие к русскому изданию С большим удовольствием мы приветствуем издание этой книги на русском языке. При ее написании мы стремились к тому, чтобы она была полезной для студентов, научных ра- ботников, а также для практиков, инженеров и всех тех, кто использует методы оптимизации. На наш взгляд английский вариант книги соответствует этим целям, и мы надеемся, что русское издание окажется столь же полезным. Хотя прошло уже четыре года со времени выхода в свет первого издания на английском языке, книга на наш взгляд практически не устарела. Основной материал книги по безус- ловной минимизации и решению нелинейных уравнений, как мы считали, стабилизировался в своем развитии в период ее написания, и время, по-видимому, доказало правильность этой оценки. Хотя исследования в этой области продолжались, мы считаем, что за прошедшее время не произошло каких-либо существенных изменений. Вероятно, наиболее важное продви- жение, о котором нам известно, заключалось в разработке усложненных вариантов алгоритмов и программного обеспече- ния для решения задачи «модель—доверительная область» в случае, когда матрица Гессе не является знакоопределенной (см., например, работы More, Sorensen [SIAM Journal on Scientific and Statistical Computing 4, 1983J, Gay [SIAM Journal on Scientific and Statistical Computing 2, 1981]), и кроме того в широком развитии теории исследования таких методов (см. также Shultz, Schnabel, Byrd [SIAM Journal on Numerical Analysis 22, 1985]). Это привело к появлению алго- ритмов, которые обладают более сильными свойствами гло- бальной сходимости по сравнению с приведенными в разд. 6.3.1, и в которых удается избежать априорного возмущения незна- коопределенных матриц Гессе в целях получения положитель- но определенных матриц, как это делается в разд. 5.6. Еще одним интересным достижением являются анализ и вычисли- тельный эксперимент, проведенные в недавних работах Powell 8 Предисловие к русскому изданию [Mathematical Programming 34, 1986] и Byrd, Noceclal, Yuan [SIAM Journal on Numerical Analysis, 1987], которые дают бо- лее удачное объяснение превосходству положительно опреде- ленной формулы секущих (BFGS) над обратной положительно определенной формулой секущих (DFP) при решении задач безусловной оптимизации. Были достигнуты успехи также и в некоторых непосредственно примыкающих областях, включая глобальную оптимизацию, методы решения задач большой размерности со специальной структурой и методы для решения задач безусловной оптимизации и систем нелинейных уравне- ний на параллельных ЭВМ. Приведенное в приложении программное обеспечение полу- чило широкое распространение и было включено в другие па- кеты программ, книги и библиотеки математического программ- ного обеспечения. Мы по-прежнему предоставляем это программ- ное обеспечение в распоряжение научных работников для использования в исследовательских целях. Нам хочется выразить особую благодарность О. Бурда кову за превосходно выполненную работу по переводу. Стремясь как можно точнее перевести книгу, он изучил ее столь тщательно, что выявил большое количество опечаток и неточностей. Мы признательны ему за этот вклад в укрепление международных научных связей. Док. Дэннис, мл. Р. Шнабель Май 1987 Предисловие Книга представляет собой подробное введение в численное ре- шение задач безусловной оптимизации и систем нелинейных уравнений, не требующее от читателя глубоких знаний мате- матических и вычислительных дисциплин. Работа над книгой была начата в 1977 г., поскольку мы считали, что к этому вре- мени алгоритмы и теория решения таких задач малой и сред- ней размерности достигли зрелого состояния и что был бы полезен подробный справочный материал. Книгу можно ис- пользовать при подготовке курса лекций для аспирантов или студентов-старшекурсников, а также ее можно рекомендовать для самостоятельного изучения научным работникам, инжене- рам и всем, кому рассматриваемые задачи интересны с прак- тической точки зрения. Минимальная подготовка, необходимая для чтения книги,— это знание основ математического анализа и линейной алгебры. Читатель, должно быть, в той или иной мере знаком с мате- матическим анализом многих переменных, тем не менее в гл. 4 приводится подробный обзор всей необходимой информации. Несомненную пользу мог бы принести курс вычислитель- ной линейной алгебры или элементов численных методов; часть этого материала кратко представлена в разд. 1.3 и гл. 3. Все рассматриваемые здесь алгоритмы основываются на идее метода Ньютона. Они часто называются методами ньюто- новского типа, однако мы предпочитаем термин квазиньюто- новские методы. К сожалению, этот термин используется спе- циалистами лишь для подкласса методов, представленного гл. 8 и 9. Поскольку этот подкласс состоит из естественных обобщений метода секущих на многомерный случай, мы пред- почитаем называть их методами секущих. Конкретные вари- анты методов секущих обычно носят имена своих создателей, поэтому в тексте неизбежно встречаются соответствующие не всегда понятные аббревиатуры. Вместе с тем мы пытались 40 Предисловие предложить для них содержательные названия, отвечающие их месту в общей схеме изложения. Ядро книги составляет материал по численным методам ре- шения многомерных задач безусловной оптимизации и нели- нейных уравнений. Он представлен гл. 5—9. Глава 1 — ввод- ная, она принесет больше пользы студентам, специализирую- щимся в чистой математике и информатике, чем читателям, имеющим некоторый опыт в научных приложениях. Глава 2, которая посвящена одномерному варианту рассматриваемых задач, является иллюстрацией нашего подхода и одновременно его обоснованием. Глава 3 может быть пропущена читателями, уже изучавшими вычислительную линейную алгебру, а гл. 4 — теми, кто обладает основательными познаниями в математиче- ском анализе многих переменных. Глава 10 дает довольно пол- ное изложение алгоритмов решения нелинейной задачи о наи- меньших квадратах, которая относится к важному-классу за- дач безусловной оптимизации и из-за ее специфики решается специальными методами. В ней существенно используется ма- териал предыдущих глав. В гл. 11 указываются некоторые перспективные направления исследований; здесь отдельные разделы сложнее, чем предыдущий материал. Мы использовали эту книгу в учебных курсах для старше- курсников и аспирантов. Для первых из них .гл. 1—9 образуют фундаментальный курс, а для последних может быть исполь- зована вся книга целиком. При этом если гл. 1, 3 и 4 оставить для самостоятельного чтения, то курс займет около половины семестра. Оставшуюся часть семестра легко заполнить указан- ными главами пли другим материалом, не вошедшим в книгу. Наибольшую важность среди опущенного нами материала представляют методы, не связанные с методом Ньютона для решения задач безусловной минимизации и нелинейных урав- нений. Большинство из них важны только в частных случаях. Симплексный алгоритм Нелдера—Мида') [см., например, Ав- риель (1976)], эффективный для задач с менее чем пятью пе- •ременными, может быть изложен за час. Методы сопряженных направлений [см., например, Гилл, Мюррей п Райт (1981)] относятся собственно к курсу вычислительной линейной алгеб- ры, но благодаря малому объему требуемой памяти ЭВМ они оказываются полезными и для задач оптимизации с очень .большим числом переменных. Их можно вкратце изложить за два часа, полное же изложение заняло бы две недели. Наиболее трудным для нас было решение опустить методы Брауна—Брента. Их идея изящна и они поразительно эффек- тивны при хороших начальных приближениях для решения си- '> Он также известен под-названием «алгоритм (демпфируемого) много. гранппка». — П рил. перев. Предисловие 11 етем уравнений, часть из которых линейны. Этим методам в наиболее распространенной форме нельзя отдать безусловное предпочтение в задачах общего вида. Они вряд ли где-либо освещались так же широко, как симплексный алгоритм и ал- горитм сопряженных градиентов. Отсутствие этих методов можно восполнить одной или двумя лекциями (опуская дока- зательства) (см., например, Дэннис (1977)]. Наконец, среди методов, имеющих важное значение, не нашли отражения ме- тоды типа продолжения или гомотопии, работы по которым возобновились с новой силой в 70-х гг. Эти изящные идеи мо- гут пригодиться как крайнее средство в исключительно труд- ных задачах, хотя в целом они все же не конкурентоспособны. На изложение превосходного обзора Алговера и Джорджа (1980) потребуется по крайней мере две недели. Книга снабжена большим количеством упражнений, многие из которых содержат дальнейшее развитие идей, лишь слегка затронутых в тексте. Большое приложение, написанное Р. Шна- белем, имеет целью обеспечить как основами для учебных проектов, так и важным справочным материалом для тех чи- тателей, кто хочет вникнуть в детали алгоритмов и, возможно, разработать свои собственные версии. Рекомендуем читателю на раннем этапе чтения ознакомиться с предисловием к при- ложению. Некоторые вопросы терминологии и обозначения вызвали особенные трудности. Ранее уже упоминалось о смешении по- нятий «квазиныотоновские методы» и «методы секущих». Кро- ме того, в заглавии книги мы использовали термин «безуслов- ная оптимизация», а в тексте—«безусловная минимизация», поскольку в действительности рассматривается только мини- мизация, а задача максимизации очевидным образом сводится к минимизации. Важный термин «глобальный» часто интер- претируется по-разному, поэтому в разд. 1.1 пояснено, как именно он понимается в книге. Наконец, основная проблема в обозначениях состояла в том, чтобы различать между собой г-ю компоненту /г-мерного вектора (скаляр, обычно обозначае- мый как Xi) и t-ю итерацию в последовательности таких век- торов х (вектор, также обычно обозначаемый как д-;). После нескольких неудачных попыток было решено допустить эту не- однозначность в обозначениях, поскольку подразумеваемый смысл всегда понятен из контекста. В действительности это обозначение редко используется в обоих смыслах в одном и том же разделе. Нам хотелось без ущерба для изложения сделать книгу на- столько краткой и недорогой, насколько это возможно. Исходя из этого, безжалостно редактировались некоторые доказатель- ства и целые темы. Мы старались использовать обозначения, отвечающие тонкому вкусу и одновременно лучшему понима- 12 Предисловие нию, и включать доказательства, способствующие хорошему усвоению предмета, опуская те, которые всего лишь устанав- ливают справедливость утверждений. Мы ожидаем больше критики в отношении того, что было опущено, нежели в отно- шении того, что включено. Однако, как известно каждому пре- подавателю, наиболее трудной и важной частью составления учебного курса является решение о том, что следует опустить. Мы искренне благодарим Идалию Келлар, Арлин Хантер и Долорес Пендел за перепечатку многочисленных вариантов рукописи, а также студентов за их поразительную способность отыскивать неясные места. Дэвид Гэй, Вирджиния Клема, Хо- мер Уолкер, Пит Стюарт и Лэйн Уотсон использовали черно- вой вариант книги в курсах лекций в Массачусетском техноло- гическом институте, Лоренцевской лаборатории Ливермора, Университете Хьюстона, Университете Нью-Мексико, Универси- тете Мериленд и Вирджинском политехническом институте и внесли полезные предложения. Тронд Стейхауг и Майк Тодд высказали ряд удачных замечаний по некоторым разделам. Дж. Дэннис, мл. Райсовский университет Р. Шнабель Университет Колорадо в Боулдере Прежде всего одно программное замечание В первых четырех главах книги содержатся вводные сведения и излагаются побудительные мотивы к исследованию многомерных нелинейных задач. В гл. 1 вводятся задачи, которые будут обсуждаться в дальнейшем. Затем в гл. 2 приводятся некоторые алгоритмы решения нелинейных задач только одной переменной. Излагая эти алгоритмы так, чтобы отразить основные идеи всех рассматриваемых далее в книге нелинейных алгоритмов, мы на- деемся тем самым обеспечить читателя доступным и прочным фундаментом для исследования многомерных нелинейных задач. В гл. 3 и 4 содержится материал по основам вычислительной линейной алгебры и многомерного ана- лиза, необходимый для перехода к задачам более чем одной переменной. Введение В книге приводятся и анализируются методы и алгоритмы чис- ленного решения трех важных нелинейных задач: решение си- стем нелинейных уравнений, безусловная минимизация нели- нейного функционала и задача оценки параметров по нелиней- ному принципу наименьших квадратов. В разд. 1.1 даются по- становки этих задач и предположения, в рамках которых они в дальнейшем будут рассматриваться. В разд. 1.2 приводятся примеры нелинейных задач и обсуждаются характерные осо- бенности задач, встречающихся на практике. Читатель, уже знакомый с кругом таких задач, может при желании пропус- тить этот раздел. В разд. 1.3 резюмируются особенности ма- шинной арифметики конечной точности, которые необходимо знать читателю для понимания машинно-зависимых элементов обсуждаемых в тексте алгоритмов. 1.1. ПОСТАНОВКИ ЗАДАЧ В настоящей книге рассматриваются три часто встречающиеся на практике нелинейные задачи с действительными перемен- ными. Хотя при довольно естественных предположениях они с математической точки зрения эквивалентны, мы не будем применять для всех них одни и те же алгоритмы. Вместо этого будет продемонстрирована способность наилучших среди имею- щихся в настоящее время алгоритмов учитывать специфику каждой задачи. Среди трех задач, с которыми мы будем иметь дело, реше- ние систем нелинейных уравнений, называемых далее «нели- нейными уравнениями», является самой основной. Вместе с тем она имеет меньше всего специфических особенностей, учи- тываемых в алгоритмах. Задача состоит в следующем: задано: F:R'1-^^", найти x.eR", для которого F (л-,) = 0 е= R", (1.1.1) 1.1. Постановки задач 15 где R" обозначает /i-мерное евклидово пространство. Представ- ление (1.1.1) есть один из стандартных способов задания си- стемы из п уравнений с п неизвестными, при котором правая часть каждого уравнения полагается равной нулю. Примером служит ^;+^+7' . У-\ + -^2 + 1 rw F(x^=0т^pиx^=(l,—2)т. Несомненно, что х^, являющееся решением (1.1.1), будет точкой минимума для Z {fi W, t=l где fi{x) обозначает i-ю компоненту функции F. Это частный случай задачи безусловной минимизации: задано: f:R"->-R, найти -y.eR'2, для которого f(x,}-^f(x} при всех х е= R". (1.1.2) Это вторая из рассматриваемых далее задач. Обычно (1.1.2) кратко записывается как minf:R"^R. (,1.1.3) .ceR'1 Примером служит min / Ос,, ^, Хз) == {x^ ~ З)2 + (хз + 5)4 + (л-з - 8)2, Х S 1\ где решение есть х*==(3, —5, 8)7'. В некоторых приложениях представляет интерес задача (1.1.3) с ограничениями min ^:R"->R, (1.1.4) -ceQ<=R" где й-замкнутая связная область. Если решение задачи (1.1.4) лежит внутри Q, то (1.1.4) еще можно считать зада- чеи безусловной минимизации. Но если л-»—граничная точка области О, то минимизация f на и становится задачей услов- ной минимизации. Эта задача рассматриваться не будет по- тому, что способы ее решения менее изучены, чем в задаче оезусловной минимизации, а, имея дело с последней, нам и без того есть чем заняться. К тому же техника решения задач без ограничений служит основой для алгоритмов решения за- дач с ограничениями. Многие подходы к решению задачи с ограничениями фактически сводятся либо к решению некото- 16 Гл.1.Введение рой родственной ей задачи безусловной минимизации, чье ре- шение х по крайней мере очень близко к решению л', задачи с ограничениями, либо к построению системы нелинейных урав- нений, решение которой совпадает с х„. Наконец, большой про- цент задач, которые встречались нам на практике, суть задачи или без ограничений или же с ограничениями, но очень про- стого вида (к примеру: каждая компонента х должна быть неотрицательной). Третья из рассматриваемых задач также является частным случаем безусловной минимизации, но из-за ее важности и специфичной структуры, она представляет самостоятельный интерес для исследования. Это нелинейная задача о наимень- ших квадратах: задано: R: R"->R"1, ffi>n, m найти л;, s R", для"которого ^ (/"; (х))2 минимально, (1.1.5) i=i где через ri(x} обозначена i-я компонента функции ^. Задача (1.1.5) наиболее часто встречается при проведении кривой по точкам. Она также может возникать всякий раз, когда в не- линейной системе количество нелинейных связей превосходит число степеней свободы. Мы будем иметь дело исключительно с тем весьма общим случаем, когда нелинейные функции F, f и ./? дифференцируе- мы соответственно один раз, дважды и дважды непрерывно. При этом нет необходимости предполагать, что имеются ана- литически заданные производные, а всего лишь, что функции достаточно гладки. Дальнейшие замечания относительно ха- рактерных размеров и других характеристик решаемых на се- годняшний день нелинейных задач можно найти в разд. 1.2. Весьма типичным при численном решении нелинейной за- дачи является такой сценарий. Пользователя просят задать процедуру для вычисления функции (функций), фигурирую- щей в постановке задачи, и начальную точку хц, т. е. грубое приближение к решению х^. Если это не вызывает особых трудностей, то пользователя просят задать первые и, возмож- но, вторые производные. В книге особый акцент делается на трудностях, наиболее часто встречающихся при решении за- дач. Они укладываются в рамки следующих вопросов: (1) что делать, если начальное приближение ху не близко к решению д;„ («глобальный метод»), и как это эффективно сочетать с ме- тодом, использующимся вблизи от решения («локальный ме- тод»); (2) что делать, если в нашем распоряжении нет ана- литически заданных производных; (3) разработка алгоритмов, эффективных в тех случаях, когда вычисление функции (функ- ций), определяющей задачу, стоит дорого (часто это именно 1.1, Постановки задач 17 так, причем стоимость порой становится критическим факто- ром). Будут рассмотрены основные методы и описаны детали алгоритмов, являющихся в настоящее время наилучшими для решения таких задач. Будет, также дан анализ того, что, по нашему убеждению, имеет непосредственное отношение к по- ниманию этих методов и к возможности их дальнейшего об- общения и улучшения. В частности, мы попытаемся выделить, специально заострив на них внимание, идеи и методы, кото- рые в результате их развития заняли центральное место в дан- ной области. На наш взгляд, эта область достигла состояния, когда упомянутые методы легко выделяемы, и хотя все же возможны некоторые усовершенствования, в будущем не сле- дует ожидать новых алгоритмов, которые привели бы к за- метному скачку вперед по сравнению с теми, что считаются на сегодня наилучшими. Методы решения нелинейных уравнений и задач безуслов- ной минимизации тесно связаны. Большая часть книги посвя- щена этим двум задачам. Нелинейная задача о наименьших квадратах есть всего лишь частный случай безусловной мини- мизации, однако можно так модифицировать методы безус- ловной минимизации, учитывая преимущества специфики нелинейной задачи о наименьших квадратах, что для нее в ре- зультате получатся более эффективные алгоритмы. Таким об- разом, гл. 10 в действительности является развернутым иллюстративным примером, демонстрирующим то, как приме- нять и обобщать предшествующий этому материал книги. Одна задача, к которой мы не обращаемся в книге, заклю- чается в нахождении «глобального минимума» нелинейной функции, иными словами, самого наименьшего значения f{x} в случае, когда имеется много изолированных локальных ми- нимумов, т. е. решений задачи (1.1.2) в открытых связных об- ластях пространства R". Это очень сложная задача, о которой нельзя сказать, что. она так же широко изучена и успешно ре- шается, как и рассматриваемые нами задачи. Данной теме посвящены два сборника статей под ред. Диксона и Сегё (1975, 1978). На протяжении всей книги используется термин «глобальный», например в сочетаниях «глобальный метод» или «глобально сходящийся алгоритм», для обозначений метода, в котором обеспечивается сходимость к локальному минимуму нелинейной функции или к некоторому решению системы не- линейных уравнений почти из любой начальной точки. Было бы видимо удачнее называть такие методы локальными или ло- кально сходящимися, однако, согласно традиции, эти термины уже зарезервированы для использования в другом смысле. Лю- бой метод, для которого гарантируется сходимость из любой начальной точки, вероятно, в общем случае весьма неэффек- тивен [см. работу Алговера и Джорджа (1980)]. 18 Гл.1.Введение 1.2. ХАРАКТЕРНЫЕ ОСОБЕННОСТИ ВСТРЕЧАЮЩИХСЯ НА ПРАКТИКЕ ЗАДАЧ В этом разделе мы попытаемся дать некоторое представление о нелинейных задачах, встречающихся на практике. Сначала будут приведены три реальных примера нелинейных задач и некоторые соображения относительно их постановки как вы- числительных задач. Затем будет сделано несколько замечаний по поводу размера, стоимости и других характеристик обычно встречающихся нелинейных задач. Обсуждение модельных задач затруднено тем, что проис- хождение и алгебраическое описание задач из этой области -редко оказываются простыми. Хотя все это довольно интересно, но не для вводной главы книги по численному анализу. По- этому наши примеры будут по мере возможности упрощены. Наиболее простыми среди нелинейных задач являются за- дачи с одной переменной. Например, исследователь хочет опре- делить молекулярную конфигурацию некоторого соединения. Он выводит выражение f{x), задающее потенциальную энер- гию возможной конфигурации как функцию переменной х, представляющей собой тангенс угла между ее двумя компонен- тами. Затем, поскольку природа заставит молекулу принять конфигурацию с минимальной потенциальной энергией, жела- тельно найти такое х, для которого f(x) минимально. Это за- дача минимизации с единственной переменной х. Из физиче- ского смысла функции / ясно, что она сильно нелинейна. Верно и то, что она является задачей безусловной минимизации, так как х может принимать любое действительное значение. По- скольку эта задача имеет только одну переменную, она долж- на бы легко решаться методами из гл. 2. Однако мы сталки- вались с аналогичными задачами, в которых f была функцией от 20 до 100 переменных, и хотя эти задачи не были трудными для решения, но каждое вычисление / стоило от 5 до 100 долл., так что они оказались дорогостоящими для решения. Другой широко известный класс нелинейных задач связан с выбором в некотором семействе кривых той, которая наилуч- шим образом приближает данные эксперимента или статисти- ческой выборки. На рис. 1.2.1 приведен иллюстративный при- мер встретившейся нам задачи такого типа. Имелось 20 спек- троскопических измерений солнца г/„ полученных со спутника для длин волн fi. По лежащей в основе этого теории любой набор из m таких измерений (ti,yi), ..., (tm,ym) может быть приближен колоколообразной кривой. Однако в полученных точках содержались экспериментальные ошибки, показанные на рисунке. Для того чтобы сделать необходимые выводы на основе данных, желательно найти колоколиобразпую кривую, 1.2. Характерные особенности задач 19 «наиболее близкую» к m точкам. Поскольку колоколообразная кривая в общем виде описывается формулой y(xi, Хг, Хз, Xi, t}=Xl-\-x.^e-^•t+x^lx^, это означает, что х\, Ху, д'з и л'4 выбираются так, чтобы мини- мизировать „некоторую совокупную меру расхождений (невя- зок) между точками данных и кривой. Невязки даются фор- мулой ri(x)A,y(Xi, х^ Хз, .<4, ti)-iJi. В качестве совокупной меры наиболее часто используется сум- ма квадратов величин /';, что приводит к определению колоко- лообразной кривой путем решения нелинейной задачи о наи- меньших квадратах: min f(x}A 5>.W= ? k+^-^^^-y,]2. (1.2.1) Xf=R' 1=1 (=1 Здесь уместны следующие замечания. Во-первых, причина, по которой задача (1.2.1) называется нелинейной задачей о наименьших квадратах, состоит в том, что невязки ri{x) яв- ляются нелинейными функциями некоторых из переменных х\, xi, Хз, Х4. Фактически r-i линейны по х\ и хч, и некоторые совре- менные методы используют такую специфику (см. гл. 10). Во- вторых, существуют функции, иные нежели сумма квадратов, которые можно выбирать для определения меры отклонения . данных точек от колоколообразной кривой. Два очевидных вы- бора суть fi(^)=Zlr;Mi ^(л:)== тах |г,(х)|. 1 ^ i s^m ^l ^2 tf t-щ Рис. 1.2.1. Точки данных, которые требуется наилучшим образом приблизить колоколообразной кривой. 20 Гл.1. Введение Соображения, по которым для минимизации обычно выбира- ется f(x), а не fi (x) или foc(x), иногда связаны со статистиче- ской интерпретацией, а иногда с тем, что получающаяся за- дача оптимизации гораздо лучше поддается математическому анализу, так как сумма квадратов в отличие от двух других функций непрерывно дифференцируема. На практике большин- ство задач о наилучшем приближении данных решается с ис- пользованием принципа наименьших квадратов. Часто f моди- фицируется введением «весов» при невязках, однако это не су- щественно для наших дальнейших рассуждении. В качестве последнего примера рассмотрим некоторый ва- риант задачи, встретившейся при изучении термоядерного ре- актора. Термоядерный реактор можно представить себе в виде тороидальной камеры с разогретой плазмой внутри (рис. 1.2.2). Реальная задача в упрощенном (ради наглядно- сти) виде заключается в нахождении такого' сочетания радиуса тора г, его ширины w и температуры плазмы /, которое приво- дило бы к наименьшей стоимости единицы вырабатываемой энергии. Специалисты установили, что стоимость единицы энергии моделируется выражением п^,^^.^.,^+^+^)+^^+-4)1+ L\ о о/ \ f — c^/.J +cз(i-+-^)(1030-l•46. (1.2.2) где С[, С2, Сз, С4—константы. Таким образом, задача состояла в минимизации f как функции от г, w и t. Однако имелись и другие важные аспекты задачи. Прежде всего г, w и t в отличие от переменных из предыдущих при- меров не могли принимать произвольные действительные зна- чения. Например, г и w не могли быть отрицательными. Сле- довательно, это задача условной минимизации. Всего было пять простых линейных ограничений на три переменные. ТемператураЙ) Рис. 1.2.2. Термоядерный реактор. 1.2. Характерные особенности задач 21 Важно подчеркнуть, что задача с ограничениями должна рассматриваться как задача условной оптимизации только то- гда, когда наличие ограничений может повлиять на получаю- щееся решение, т. е. когда ожидается, что решение задачи с ограничениями не совпадет с точкой минимума той же самой функции без ограничений. В задаче о термоядерном реакторе наличие ограничений обычно имело существенное значение, и поэтому задача решалась методами, учитывающими ограни- чения. Однако многие задачи с простыми ограничениями, та- кими, как ограничения снизу и сверху на переменные, можно решать алгоритмами безусловной минимизации, поскольку ограничения удовлетворяются в точке безусловного минимума. Отметим, что, как было написано, ограничения в задаче о термоядерном реакторе обычно влияли на решение. Это объ- ясняется тем, что требовалось решить 625 вариантов задачи, отвечающих различным значениям констант сь Cz, Сз и С4. Зна- чения этих констант зависят от таких факторов, как, например, стоимость электроэнергии, которая будет постоянной во время эксплуатации реактора, но которая заранее не известна. Было необходимо просчитать различные варианты задачи для того, чтобы увидеть, как изменение этих факторов влияет на опти- мальные характеристики реактора. Часто в практических при- ложениях желательно решить много связанных между собой вариантов задачи. Это повышает требования к эффективности алгоритма, а также вынуждает проводить предварительные эксперименты с различными алгоритмами для оценки их эф- фективности на данном классе задач. И наконец, соотношение (1.2.2) было всего лишь простой моделью термоядерного реактора. При более детальном изуче- нии выяснилось, что функция, определяющая стоимость еди- ницы электроэнергии, не задается аналитически как в (1.2.2), а скорее представляет собой выходной результат некоторой модели реактора, включающей уравнения в частных производ- ных. К тому же оказалось на пять параметров больше (рис. 1.2.3). Такого сорта функции встречаются часто в нели- нейной оптимизации, и это серьезно повлияло на развитие ал- горитмов. Прежде всего подобные функции, по-видимому, имеют лишь несколько верных десятичных знаков, поэтому не Определенные значения параметров X,.X2,....Xs Вычисление /'(числен- ное решение уравнении] в частных производных)! с использованием х как входных данных модели Рис. 1.2.3. Вычисление функции по уточненной модели термоядерного реактора. 22 Гл. 1. Введение имеет смысла требовать высокой точности в десятичных зна- ках решения. Затем хотя функция f может быть много раз: непрерывно дифференцируемой, ее производные обычно недо- ступны. Это одна из причин, по которой аппроксимация про- изводных становится столь актуальной. И наконец, вычисле- ние / может оказаться довольно дорогостоящим, что служит дополнительным стимулом к разработке эффективных алго- ритмов. Приведенные выше задачи дают некоторое представление о типичных характеристиках нелинейных задач. Первая—это ее размер. Хотя существуют, конечно, задачи, имеющие боль- ше переменных, чем в рассмотренных примерах, но большая часть имеет, на наш взгляд, относительно немного переменных, скажем от 2 до 30. Современное состояние дел здесь таково, что можно надеяться решить большинство малых задач, имею- щих, скажем, от 2 до 15 переменных, но при этом даже дву- мерные задачи могут оказаться трудными. К задачам среднего размера в рассматриваемой области относятся те, что имеют от 15 до 50 переменных. Современные алгоритмы решают мно- гие из них. Задачи с 50 и более переменными являются боль- шими. Если о такой задаче нельзя сказать, что она слабо не- линейна или имеется хорошее начальное приближение к реше- нию, то у нас мало шансов решить ее эффективно. Эти оценки размеров очень изменчивы и зависят от алгоритмов меньше, чем от наличия быстродействующей памяти и других возмож- ностей ЭВМ. Второй вопрос касается наличия производных. Часто встре- чаются задачи, в которых нелинейная функция сама опреде- лена как результат численного моделирования на ЭВМ или задается громоздкой формулой. Таким образом, ситуация ча- сто такова, что в нашем непосредственном распоряжении нет аналитически заданных производных, хотя сама функция много раз непрерывно дифференцируема. Поэтому важно иметь ал- горитмы, эффективно работающие в отсутствие аналитических производных. Действительно, если библиотека программ для ЭВМ предоставляет возможность аппроксимировать производ- ные, то пользователи редко задают их аналитически—кто упрекнет их в этом? В-третьих, как указывалось выше, решения многих нели- нейных задач довольно дорогостоящи либо из-за многократ- ного вычисления дорогостоящей нелинейной функции, либо из-за того, что сама задача заключается в решении большого числа взаимосвязанных подзадач. Мы слышали о 50-мерной задаче, связанной с нефтяной техникой, где на каждое вычисле- ние функции тратится 100 ч работы ЭВМ IBM-3033. Эффектив- ность, выражаемая в терминах времени счета алгоритма и ко- C?S 1.2. Характерные особенности задач 23 личества вычислений функции и производных, играет важную роль в развитии нелинейных алгоритмов. В-четвертых, во многих приложениях пользователь рассчи- тывает получить в ответе лишь несколько верных десятичных знаков. Это вызвано прежде всего тем, что приближенными по своей природе являются другие составляющие задачи, на- пример сама функция, параметры модели, данные. С другой стороны, пользователи часто требуют больше правильных де- сятичных знаков, чем им на самом деле нужно. Хотя желание иметь более высокую точность разумно, скажем, для того, что- бы удостовериться, что сходимость достигнута, но дело в том, что необходимая точность редко бывает близка к машинной точности. Пятый вопрос, кстати не проиллюстрированный выше, свя- зан с плохой масштабированностью многих реальных задач. Имеется в виду, что переменные значительно отличаются между собой по порядку величины. Например, одна перемен- ная может постоянно находиться в пределах от 106 до 107, а другая—в пределах от 1 до 10. В нашей практике такое встре- чалось удивительно часто. Однако большинство работ в дан- ной области обошло вниманием проблему масштабирования. В книге мы постараемся обратить внимание на случаи, когда игнорирование эффекта масштабирования может ухудшить ра- боту нелинейных алгоритмов, и попытаемся исправить эти не- достатки в рассматриваемых алгоритмах. И наконец, в этой книге рассматриваются только те нели- нейные задачи, где переменные могут принимать любые дей- ствительные значения, в противоположность задачам, где не- которые переменные принимают только целые значения. Ска- занное относится и ко всем нашим примерам, однако читатель может поинтересоваться: реалистично ли вообще это ограни- чение. Ответ таков, что существуют, конечно, нелинейные за- дачи, где некоторые переменные должны быть только целочис- ленными, поскольку они представляют собой такие величины, как, например, число людей, автомобилей и тому подобное. Однако поскольку утрачивается всякая непрерывность, то эти ограничения делают задачу настолько сложной для решения, что часто самым лучшим бывает решить ее, рассматривая дискретные переменные как непрерывные и затем округляя до целых числа, полученные в решении. Теоретически такой под- ход не гарантирует получение решения исходной целочислен- ной задачи, но на практике он часто дает вполне разумное решение. Исключение составляют задачи, в которых некоторые дискретные переменные могут принимать только несколько зна- чений, например 0, 1 или 2. В этом случае должны использо- ваться дискретные методы [см., например, Бил (1977), Гар- фпнкель и Немхаусер (1972)]. 24 Гл.1. Введение 1.3. АРИФМЕТИКА КОНЕЧНОЙ ТОЧНОСТИ И ИЗМЕРЕНИЕ ОШИБОК Некоторые элементы рассматриваемых вычислительных алго- ритмов, такие, как проверка на сходимость, зависят от того, насколько точно в ЭВМ представляются действительные числа. Уместно отметить, что понимание машинной арифметики влияет на написание вычислительных программ. Поэтому нам необ- ходимо дать краткое описание арифметики, конечной точности, являющейся машинной версией арифметики действительных чисел. Более подробно об этом написано в книге Уилкинсона (1963). В так называемой экспоненциальной форме записи ') число 51.75 представляется как 4-0.5175 X 10+2. В ЭВМ действитель- ные числа представляются аналогичным образом с использо- ванием знака (в нашем примере это «+»)> основания системы счисления (10), порядка (+2) и мантиссы (0.5175). Это пред- ставление становится единственным, если потребовать, чтобы 1/основание ^ мантисса •< 1, т. е. первый «десятичный» разряд справа от десятичной точки не должен быть нулевым. Длина мантиссы, называемая точ- ностью представления, особенно важна для численных расче- тов. Это представление действительных чисел в ЭВМ называ- ется представлением с плавающей точкой. Будем обозначать через fl(x) представление с плавающей точкой числа х. На ЭВМ CDC основание равно 2, а мантисса имеет 48 раз- рядов. Поскольку 248 ^ 10'4'4, это означает, что можно точно хранить до 14 значащих десятичных цифр числа. Порядок мо- жет меняться от —976 до +1070, тем самым наименьшее и наибольшее числа примерно равны 10~294 и 10322. На ЭВМ IBM основание равно 16, а мантисса состоит из 6 разрядов в слу- чае одинарной точности и из 14 в случае двойной точности, что отвечает приблизительно 7 и 16 десятичным разрядам соот- ветственно. Порядок может меняться от —64 до +63, так что наименьшее и наибольшее числа примерно равны 10~77 и 1076. Хранение действительных чисел только с конечной точно- стью имеет серьезные последствия, которые можно легко изло- жить в краткой форме. Во-первых, коль скоро не всякое дей- ствительное число может быть точно представлено в машине, то в лучшем случае можно ожидать, что решение будет вер- ным с машинной точностью. Во-вторых, в зависимости от ма- шины и компилятора результат каждой промежуточной ариф- метической операции либо округляется, либо усекается до ма- ') В оригинале—scientific notation.—Прим. персе. 1.3. Арифметика конечной точности и измерение ошибок 25 шинной точности. Таким образом, погрешность, связанная с конечной точностью, может накапливаться и еще более пони- зить точность результатов. Такие ошибки называются ошиб- ками округления. Несмотря на то что влияние округления мо- жет быть весьма незначительным, на самом деле существуют по крайней мере три основные ситуации, в которых оно может чрезмерно ухудшить вычислительную точность. Первая возни- кает при сложении последовательности чисел, в особенности если числа расположены в порядке убывания их абсолютных величин. В этом случае из-за конечноразрядного представле- ния промежуточных результатов происходит потеря крайних справа разрядов меньших слагаемых (как пример см. упр. 4). Вторая связана с вычислением разности двух почти совпадаю- щих чисел. При этом происходит значительная потеря точно- сти, так как наиболее важные крайние слева разряды разности имеют нулевые значения (в качестве примера см. упр. 5). Третья возникает при решении почти вырожденных систем ли- нейных уравнений. Эта ситуация рассматривается в гл. 3. Она фактически является следствием первых двух ситуаций, но вместе с тем она является настолько основополагающей и важ- ной, что мы предпочитаем рассматривать ее как третью основ- ную ситуацию. Если постоянно помнить об этих трех ситуациях при написании и использовании вычислительных программ, то можно понять и избежать многие проблемы, связанные с ис- пользованием арифметики конечной точности. Из-за использования арифметики конечной точности, и даже в большей степени из-за итеративной природы алгоритмов мы не получаем точного ответа в большинстве нелинейных задач. По этой причине часто необходимо оценивать близость одного числа х к другому числу у. Наиболее часто будет использо- ваться понятие относительной ошибки величины у при аппрок- симации ненулевой величины х: Она более предпочтительна при х=^0, нежели абсолютная ошибка: \х—у\, так как последняя мера близости зависит от масштабов л" и у, а первая—нет (см. упр. 6). При измерении ошибок и при обсуждении алгоритмов бу- дет полезно следующее общепринятое обозначение. Пусть за- даны две последовательности положительных действительных чисел ее; и (3,, t= 1,2,3, ...; тогда будем писать а; == 0(р;) (читается «к, есть О большое от Pi»), если существует неко- торая положительная константа с, такая, что cc,^c-pi для 26 Гл. 1. Введение всех t, за исключением, быть может, конечного подмножества. Это обозначение используется для указания того, что вели- чина каждого к, имеет тот же порядок, что и соответствую- щее рг, или, возможно, еще меньше. Дополнительные сведения можно найти в книге Ахо, Хопкрофта и Ульмана (1974). Другое последствие арифметики конечной точности состоит в том, что определенные элементы алгоритмов, такие, как кри- терий останова, будут зависеть от машинной точности. Поэто- му важно ввести характеристику машинной точности так, что- бы рассуждения и вычислительные программы могли быть довольно независимыми от любой конкретной машины. Обычно используется понятие машинный эпсилон (machine epsilon) или кратко macheps. Для конкретной вычислительной машины оно определяется как наименьшее положительное число т, та- кое, что \-{-х~>\ (см. упр. 7). Например, поскольку на ЭВМ CDC имеется 48 двоичных разрядов, то macheps == 2-47 для арифметики с усечением и 2-48 для арифметики с округлением. Величина macheps весьма полезна при рассмотрении машин- ных чисел. Например, можно легко сказать, что относительная ошибка машинного представления i\(x) любого действитель- ного ненулевого числа х меньше, чем macheps, и, наоборот, ма- шинное представление любого действительного числа х будет лежать в пределах (х(1—macheps), х (1 + macheps)). Анало- гично, два числа х и у совпадают в крайней слева половине их разрядов, когда i~ ^ Vmacheps . I" I Эта проверка довольно типична для наших алгоритмов. Другой взгляд на величину macheps служит ключом к труд- ному вопросу принятия решения о том, когда в определенном контексте машинное число могло бы также выступать только как нулевое. Нулем 0 традиционно считается единственное ре- шение уравнения х + 0 == х для любого действительного чис- ла А'. В случае представления чисел с конечной точностью роль нуля в этом тождестве играет интервал Од, который содер- жит 0 и приблизительно равняется (—macheps-л", -[-"lacheps-A'). Нередко в процессе вычислений возникают машинные числа х и у, имеющие настолько различные порядки величин, что П (х +</)= Я (х) • Это означает, что в данном контексте у не- отличимо от нуля, и иногда, как, например, в численных алго- ритмах линейной алгебры, полезно контролировать вычисления и, в самом деле, присваивать у нулевое значение. И наконец, любому пользователю ЭВМ следует знать о яв- лениях переполнения и антипереполнения'), встречающихся, *) Это явление называют также исчезновением порядка. — Прим. перев. 1.3. Арифметика конечной точности и измерение ошибок 27 когда в процессе вычислений возникает ненулевое число, поря- док которого больше или соответственно меньше крайних зна- чений диапазона, отведенного в ЭВМ под порядки. Например, антипереполнение возникает при обращении на ЭВМ CDC чис- ла 10322, а переполнение—при обращении на ЭВМ IBM числа Ю-77. В случае переполнения почти любая вычислительная ма- шина прекратит счет и выдаст сообщение об ошибке. Компи- лятор часто обеспечивает на случай антипереполнения воз- можностью выбора—или прекращать счет, или подставлять нуль вместо выражения, приведшего к этому. Последняя аль- тернатива является разумной, но не всегда (см. упр. 8). К счастью, если использовать хорошо написанные программы линейной алгебры, то алгоритмы, рассматриваемые в этой книге, обычно не приводят к переполнению или антиперепол- нению. Так, численная реализация вычисления евклидовой нормы вектора (см. разд. 3.1) М12==У^+У1+ ... +^, yeR", требует особой тщательности. 1.4. УПРАЖНЕНИЯ 1. Дайте стандартную формулировку задачи решения системы нелиней- ных уравнений: найти (-Ci, ХгУ, такое, что х\ = х\ + Эха + 2, . xf+2=4 2. В лабораторном эксперименте измеряются значения функции f в 20 различных моментах времени t в пределах от 0 до 50. Известно, что f(t) представляет собой синусоидальную волну, однако неизвестны ее амплитуда и частота, а также ее смещение в направлении осей f и t. Как бы вы поста- вили вычислительную задачу для нахождения этих характеристик из ваших экспериментальных данных? 3. У экономиста имеется сложная вычислительная модель экономики, которая оценивает темпы инфляции по заданным темпам безработицы, тем- пам роста валового национального продукта и по числу строившихся в про- шлом году жилых домов. Требуется определить такую комбинацию этих трех факторов, которая приведет к наименьшим темпам инфляции. Вам предстоит поставить и решить эту задачу численно. (a) К какому типу вычислительной задачи ее можно было бы свести? Как вы поступите с переменной «число строившихся жилых домов»? (b) В чем состоят те вопросы, которые вы хотели бы задать экономи- сту, стремясь сделать задачу наиболее удобной для численного решения (например, относительно непрерывности, производных, ограничений)? (c) Окажется ли решение этой задачи дорогостоящим? Почему? 4. Предположим, в вашем распоряжении имеется вычислительная маши- на, у которой основание системы счисления и точность представления чисел 28 Гл. 1. Введение соответственно равны 10 и 4. Пусть после каждой арифметической опера- ции производится усечение, так что, например, сумма 24.57+128.3= 152.87 становится равной 152.8. Каковы будут результаты, если сложить числа 128.3, 24.57, 3.163 и 0.4825 сначала в порядке их возрастания, а затем в порядке убывания? Как они согласуются с правильным «бесконечно точным» результатом? Что это вам говорит относительно сложения последовательно- сти чисел на ЭВМ? 5. Предположим у вас имеется та же вычислительная машина, что в упр. 4, и вы производите вычисление (-г— 0.3300 )/0.3300. Сколько верных цифр по сравнению с точным ответом вы получите? Что это вам говорит относительно вычитания на ЭВМ почти совпадающих чисел? 6. Каковы относительная и абсолютная ошибки ответа, полученного ЭВМ в упр. 5, по сравнению с правильным ответом? Что если заменить задачу на такую: ((——)—33 ]/33 ? Что это вам говорит о полезности относительной ошибки в сравнении с абсолютной? 7. Напишите программу вычисления машинного эпсилона имеющейся в нашем распоряжении ЭВМ или микрокалькулятора. Вы можете предполо- жить, что macheps будет равен 2 в некоторой степени, так что ваш алго- ритм мог бы выглядеть следующим образом: EPS:==1 * WHILE I + EPS > 1 DO EPS:=EPS/2. Введите счетчик, который позволит узнать в конце программы, какой сте- пенью двойки является macheps. Выведите на печать его значение, а также десятичную запись числа macheps. (Замечание. Значение macheps будет от- личаться на коэффициент 2 в зависимости от того, какая используется арифметика — с округлением или с усечением. Почему?) Дальнейшая информация о вычислении на ЭВМ характеристик машин- ного оборудования имеется в статье Форда (1978). 8. В каждом из следующих выражений произойдет аитипереполнение (на ЭВМ IBM). В каких случаях было бы целесообразно подставить нуль вместо величины, вызывающей антипереполнение? (a) я^У^+с2, где 6=1, с==10-50. (b) а :== V&2 + с2 , где Ъ = с = Ю"". (c) v :== (w * х)/(у * г), где w = Ю-30, х = Ю-60, у = Ю"40, г = Ю-50. Почему? 2 Нелинейные задачи с одной переменной Начнем изучение методов решения нелинейных задач с обсуж- дения задач, имеющих только одну переменную, таких, как нахождение решения одного нелинейного уравнения с одним неизвестным и нахождение минимума функции одной перемен- ной. Причина для отдельного изучения задач с одной пере- менной состоит в том, что они позволяют увидеть те принципы построения эффективных локальных и глобальных алгоритмов, а также алгоритмов с аппроксимацией производных, которые послужат базисом для наших алгоритмов решения задач с многими переменными. Для этих целей не требуются знания линейной алгебры и многомерного анализа. Алгоритмы реше- ния многомерных задач будут более сложными, чем рассмат- риваемые в данной главе, однако понимание изложенной здесь сути основного подхода окажет несомненную помощь в много- мерном случае. Вот некоторые ссылки на литературу, в которой подробно рассматриваются задачи этой главы: Авриель (1976), Брент (1973), Конт и де Бур (1980), Дальквист, Бьёрк и Андерсон (1974). 2.1. О ТОМ, ЧЕГО НЕ СЛЕДУЕТ ОЖИДАТЬ Рассмотрим задачу нахождения действительных корней каж- дого из следующих трех нелинейных уравнений с одним неиз- вестным: fi (х) =xt-l2xз+ 47 х2 — 60х, ^ (х) == л:4 - l2x3 + 47х2 — 60х + 24, fs (х) = х* - l2x3 + 47х2 - 60х + 24.1 (рис. 2.1.1). Было бы замечательно, если бы мы имели универ- сальную программу на ЭВМ, которая говорила нам: «Корнями 30 Гл. 2. Нелинейные задачи с одной переменной f\(x) являются х = 0, 3, 4 и 5; действительными корнями fz (х) являются х==1 и х s; 0.888; fs(x) действительных корней не имеет». Вряд ли когда-либо будет существовать такая программа. Вообще говоря, вопросы существования и единственности, ти- па—имеет ли данная задача решение, и единственно ли оно?— выходят за рамки возможностей, которые следует ожидать от алгоритмов решения нелинейных задач. В самом деле, мы должны с готовностью допускать, что для любого вычислитель- ного алгоритма найдутся нелинейные функции (если желаете, то даже бесконечно дифференцируемые), достаточно замысло- ватые, чтобы вывести из строя этот алгоритм. Поэтому все, что может гарантировать пользователю алгоритм, примененный к нелинейной задаче, заключается в ответах: «Приближенным решением задачи является __ » или «Приближенное реше- ние задачи не было найдено за отведенное время». Тем не менее во многих случаях постановщик нелинейной задачи знает из практических соображений, что она имеет решение, и либо решение единственно, либо требуемое решение лежит в опре- деленной области. Таким образом, невозможность установить существование или единственность решения обычно не является тем, что заботит практиков в первую очередь. Очевидно также, что для большинства нелинейных задач представляется возможным найти лишь приближенные реше- ния. Это следует не только из конечной точности наших вы- числительных машин, но также из классического результата Галуа о том, что для полиномов степени п ^ 5 невозможно найти решение в замкнутой форме, использующей только це- лые числа, операции +, —, X, —, возведение в степень и из- влечение корней целой степени от 2-й до п-и. По этой причине мы будем развивать методы, нацеленные на отыскание одного из приближенных решений нелинейной задачи. -24.06 Рис. 2.1.1. Уравнение Л (х) = х* — W + 47х2 — 60х 2.2. Метод Ньютона 31 2.2. МЕТОД НЬЮТОНА РЕШЕНИЯ ОДНОГО УРАВНЕНИЯ С ОДНИМ НЕИЗВЕСТНЫМ Наше рассмотрение задачи о нахождении корня одного урав- нения с одним неизвестным начинается с метода Ньютона, ко- торый служит прототипом выводимых далее нами алгоритмов. Предположим, требуется вычислить квадратный • корень из 3 с точностью до некоторого приемлемого числа разрядов. Это можно рассматривать как задачу о нахождении приближен- ного корня х^ функции f{x)==x2—3 (рис. 2.2.1). Если .v'c==21) есть начальное или текущее приближение к ответу, то можно получить более удачное приближение х+, проведя прямую, ка- сательную к графику f(x) в точке (2, f(2)) == (2, 1), и найдя точку х+, в которой эта прямая пересекает ось х. Поскольку Х^. == Хц — Л^С f(xc) то мы имеем или — —JL^sL ^+ — л'" Г (Хс) ' (2.2.1) Рис. 2.2.1. Итерация метода Ньютона для / (х) == х2 — 3 (в искаженных масштабах). ') Нижний индекс с происходит от слова current (текущий).—Прим. ncpeR. 32 Гл. 2. Нелинейные задачи с одной переменной что дает Логично следующим шагом применить тот же прием к но- ному текущему приближению л-с = 1.75. Использование (2.2.1) дает х^ = 1.75 - (0.0625/3.5) = 1.732 у, которое уже имеет четыре верных разряда числа ^/3. Еще одна итерация дает х+^ 1.7320508, которое имеет восемь вер- ных разрядов. Метод, который мы только что вывели, называется методом Ньютона—Рафсона, или методом Ньютона. Для лучшего по- нимания было бы важно взглянуть на то, что нами сделано, с более абстрактных позиций. На каждой итерации строилась локальная модель функции f{x) и решалась задача отыскания корня этой модели. В данном случае наша модель Mc{x)=f(x,}+f'(x,){x-x,) (2.2.2) представляет собой единственную линейную функцию со зна- чением f{xc) и наклоном f'{xc) в точке Хс (прописная буква М используется здесь в соответствии с обозначениями в много- мерном случае и во избежание путаницы с задачами миними- зации, где наша модель обозначается через пгс(х)). Нетрудно убедиться в том, что Мс(х) пересекает ось х в точке х+, опре- деленной в (2.2.1). Из педагогических соображений надо сказать, что мы по- лучили метод Ньютона, представляя f(x} в окрестности теку- щего приближения Хс в виде ее ряда Тейлора: f" (Хс) (X - Хс)2 2! + ... f'" (Хс} (X - X,)1 (2.2.3) и затем аппроксимируя f(x) аффинной') частью этого ряда, которая тоже, естественно, задается формулой (2.2.2). Корень опять же задается формулой (2.2.1). Имеется несколько при- чин, по которым мы предпочитаем другой подход. Малопри- ') Будем называть (2.2.2) аффинной моделью, несмотря на то что ее часто называют линейной моделью. Причина заключается в том, что аффин- ная модель соответствует афинному подпространству, проходящему через (х, f(x)), т.е. соответствует прямой, которая не обязательно проходит через начало координат, тогда как линейное подпространство обязательно прохо- дит через начало координат. 2.2. Метод Ньютона 33 влекательно, да и вовсе нет необходимости в том, чтобы стро- ить предположения относительно производных порядка более высокого, чем на самом деле используется на итерации. Кроме того, при рассмотрении многомерных задач производные более высокого порядка становятся настолько сложными, что их по- нимание требует больших усилий, чем любой из приводимых далее алгоритмов. Вместо этого метод Ньютона получается просто и есте- ственно из теоремы Ньютона ') Представляется разумным аппроксимировать этот интеграл по формуле \Г(г}аг^Г(х,)(х-х,) J и еще раз получить аффинную аппроксимацию f(x), заданную в (2.2.2). Такой способ вывода окажется для нас полезным в многомерных задачах, где различные способы вывода из гео- метрических соображений становятся менее успешными. Метод Ньютона типичен для методов решения нелинейных задач. Он является итерационным процессом, генерирующим последовательность точек, которые, как мы надеемся, стано- вятся все более близкими к решению. Возникает естественный вопрос: «Будет ли он работать?» Ответом является твердое «да». Отметим, что если бы f(x} была линейной, то метод Ньютона нашел бы ее корень за одну итерацию. Теперь по- смотрим, что он будет делать в общей задаче нахождения квадратного корня: задано а > 0, найти х, такое, что f(x}==x2—а=0, начиная с текущего приближения Хс Ф 0. Поскольку Чх ° ^ ^ | а 2 I 2л-с имеем ^-V^A+^_v^,i?^W или, используя относительную погрешность, получаем (2.2.4а) ,-У« Yc-^LY (^Л — —-- I I— f * ' ——— 1 • tt \ •л/d / \ 2хс / (2.2.4Ь) ') В отечественной литературе эта теорема известна как формула Нью- тона — Лгйбиниа. При переводе будем придержиппться терминологии ори- гинала. — Прим. перев. 2 Зак. рт 34 Гл. 2. Нелинейные задачи с одной переменной Таким образом, коль скоро начальная погрешность [ Хс—л/а | меньше, чем \2хс\, то новая погрешность [х^—У"! будет меньше старой погрешности \Хс—^/а\, и в конце концов каждая новая погрешность будет гораздо меньше предыдущей погрешности. Это согласуется с нашими наблюдениями при нахождении квадратного корня из 3 в примере, с которого на- чинался данный раздел. Характер уменьшения погрешности, заданной (2.2.4), ти- пичен для метода Ньютона. Погрешность на каждой итерации будет приблизительно равна квадрату предыдущей погрешно- сти, так что если начальное приближение было достаточно хо- рошим, то погрешность будет уменьшаться и в конце концов уменьшение станет быстрым. Такой характер сходимости из- вестен как локальная (/-квадратичная сходимость. Прежде чем получить общую теорему сходимости метода Ньютона, необхо- димо обсудить вопрос о скорости сходимости. 2.3. СХОДИМОСТЬ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ДЕЙСТВИТЕЛЬНЫХ ЧИСЕЛ Пусть задан итерационный метод, генерирующий последова- тельность точек х\,Х2, ... из начального приближения ху. Нам бы хотелось знать—сходятся ли итерации к решению х^., и если сходятся, то как быстро. Предположим, что нам известно то, что подразумевается под записью lim a,k == 0 ft-»00 для последовательности действительных чисел {а^}. Тогда сле- дующее определение дает необходимые нам в дальнейшем ха- рактеристики свойств сходимости. Определение 2.3.1. Пусть x»sR, A^^R, k = О, 1, 2, ... . Тогда говорят, что последовательность {Xk}==[xo, х\, х^, ...} сходится к л-„, если lim I Xk — д". |== 0. k-><x, Если, кроме того, существуют константа cs [О, 1) и целое k ^ О, такие, что для всех k ^ /г \Xk+l—X,\S^C\Xk—X,\, то говорят, что {Xk} является q-линейно сходящейся к х„. Если для некоторой последовательности {с*}, сходящейся к 0, имеет место I^+i-^.Kcfel^-Jc.l, (2.3.2) 2.3. Сходимость последовательностей действительных чисел 35 то говорят, что {Xk} сходится q-сверхлинейно к Ху Если {х»г} сходится к х^ и существуют постоянные р ~> 1, с ^ 0 и /г ^ О, такие, что для всех k ^ /г l^+i—^KclA-fe—^r', (2.3.3) то говорят, что {Xk} сходится к 4» с q-порядком, по меньшей мере равным р. Если р =2 или 3, то говорят, что скорость сходимости является q-квадратичной или q-кубической соот- ветственно. Если {х/г} сходится к х» и вместо (2.3.2) выполняется I Xk+j — Х,\ < Ck \ Xk ~ X, \ для некоторого фиксированного целого /, то говорят, что {х/,} является j-шагово q-сверхлинейно сходящейся к х». Если {xk} сходится к х/г и вместо (2.3.3) для k ^ !г выполняется I Xk+i — X, К С| Xk — Х,\1' при некотором фиксированном целом /, то говорят, что {х/г} имеет j-шаговую сходимость q-порядка, по меньшей мере рав- ного р. Примером (/-линейной сходимости служит последователь- ность Xy — 2, Xj: g , Д:2 — 4 > -^3 — g > • • . , ^t : 1+2-', .... 3 5 _ 9 Т' ^—-s-, Эта последовательность сходится к х^=1, имеяс=— На ЭВМ CDC потребуется 48 итераций для достижения fl (;<•<;)==!. Примером (/-квадратично сходящейся последовательности служит 5 _ 17 _:257 , k Т ' -^ — "ffi" • Хз — -9W • • •' xk — 1 ~Г ^ , • • •, 3 16 256' "2"' xi которая сходится к х^ = 1, имея с == 1. На ЭВМ CDC П(д-б) будет равно 1. На практике (/-линейная сходимость может быть довольно медленной, в то время как (/-квадратичная или (/-сверхлинейная сходимость станет в конце концов довольно быстрой. Однако реальное поведение также зависит от кон- стант с в (2.3.1—2.3.3), например (/-линейная сходимость с с ==0.001, вероятно, является вполне удовлетворительной, а с с = 0.9—нет. (Другие примеры имеются в упр. 2 и 3.) Стоит подчеркнуть, что эффективность (/-сверхлинейной сходимости непосредственно связана с тем, сколько итераций требуется для того, чтобы Ck стало малым. Когда речь идет о порядках сходимости, следует различать префикс «(/», происходящий от слова quotient (частное), и «г», происходящий от root (корень), г-порядок характеризует ско- рость сходимости более слабого типа. В этом случае все, что 2* 36 Гл. 2. Нелинейные задачи с одной переменной можно сказать про погрешности |л-<;—х^\ последовательности, имеющей /--порядок, равный р, заключается в том, что они ограничены сверху другой последовательностью с ^-порядком, равным р. Строгое определение имеется в книге Ортеги и Рейнболдта (1970). Итеративный метод, сходящийся с опреде- ленной скоростью к истинному решению при условии, что он стартует в достаточной близости от этого решения, называется локально сходящимся с упомянутой скоростью. В этой книге нас будут интересовать главным образом методы, которые схо- дятся локально ^-сверхлинейно или ^-квадратично и у которых такое поведение явно наблюдается на практике. 2.4. СХОДИМОСТЬ МЕТОДА НЬЮТОНА Здесь будет показано, что для большинства задач метод Нью- тона сходится (7-квадратично к корню одного нелинейного урав- нения с одним неизвестным при условии, что имеется доста- точно хорошее начальное приближение. Однако он может во- обще не сходиться из-за плохого начального приближения, и тогда необходимо привлекать глобальные методы из разд. 2.5. Доказательство локальной сходимости метода Ньютона опи- рается на оценку погрешностей в последовательности аффин- ных моделей Мс(х), рассматриваемых как аппроксимации для f{x). Поскольку эта аппроксимация была получена с исполь- д) зованием f'(xc} (х—Хс} в качестве аппроксимации для бь то нам необходимо сделать некоторые предположения относи- тельно гладкости f с тем, чтобы оценить погрешность аппрок- симации, равную х f(x}-M,{x)= \[r(z)-f'{x,)]d2. J xc Прежде всего дадим определение непрерывности по Липшицу. Определение 2.4.1. Функция g называется непрерывной по Липшицу с константой у на множестве Х (записывается как ^ <= Lip-y (X)), если 1 g (х) - g (у) К у 1 х - у | для любых х, у s X. Для установления сходимости метода Ньютона докажем сначала простую лемму, показывающую, что если f'(x) непре- 2.4. Сходимость метода Ньютона 37 рывна по Липшицу, то можно получить верхнюю границу бли- зости аппроксимации f (х) + f (х) (у — х) к f (у). Лемма 2.4.2. Пусть f: D->R и f'^Lip^(D} для открытого интервала D. Тогда для любых х, у е D (2.4.1) Доказательство. Как известно из основ анализа, f(y}—f{x)= у == f (z) dz, что эквивалентно х f(y}-f (х) - Г (х) (у - х) = \ [Г (г) - Г (х}} dz. (2.4.2) J Х После замены переменных г = х + / (у — х), dz = dt (у — х} (2.4.2) принимает вид f (У) - f (х)- f {х) (у - х) = \ [Г (х +1 (у - х)) - V (х)} (у - х) dt. J о И, таким образом, используя непрерывность по Липшицу f, получаем \f(y}-f(x)-r(x}(y-x)\^ 1 ^\У-x\\y\t{y-x)\dt=y\y-x\2/2. Q J о Отметим, что (2.4.1) очень напоминает оценку погрешности, определяемой остаточным членом в формуле Тейлора, при этом константа Липшица у играет роль ограничения сверху на If"^)], где ^еД. Основное преимущество использования не- прерывности по Липшицу заключается в том, что оно освобож- дает нас от необходимости рассматривать следующую по пэ- рядку производную. Это особенно удобно в многомерном случае. Теперь мы в состоянии сформулировать и доказать фунда- ментальную теорему вычислительной математики. Будет до- казана самая полезная форма этого результата, а более общие вынесены в упражнения (см. упр. 13—14). Теорема 2.4.3. Пусть /: D->R, где D—открытый интер- вал D, и пусть f'e Ы/?у(г)). Предположим, что для некоторого 38 Гл. 2. Нелинейные задачи с одной переменной р>0 |Г(^)|^р при всех .re О. Если f{x)=0 имеет решение x„e.D, то существует некоторое г\ > 0, такое, что если \хо— —А"*|<Т|, то последовательность {х/г}, задаваемая формулой k==0, 1, 2, ..., существует и сходится к х». Более того, для k=0, 1, У 2Р „ _^ _W_ Xk+l—— Xk ^^ , (2.4.3) Доказательство. Пусть те (0,1), и пусть т) есть радиус') "наибольшего открытого интервала с центром в х^,, содержаще- гося в D. Обозначим r\=.mm{i), т(2р/-у)}. Покажем по индук- ции, что для k == О, 1, 2, ... выполняется (2.4.3) и 1 Xk+ l — А-. К Т | Xk — Х,\ < Т). Доказательство по сути просто показывает, что на каждой итерации погрешность \Xk+\—х^\ ограничена константой, ум- ноженной на погрешность, допускаемую аффинной моделью при аппроксимации f в л:„ и оцениваемую по лемме 2.4.2 как 0(\х„-х^2). Для k=Q ••XQ—X l f (^о) П^о) f (Хо) = Хц - X. - f (^о) - f (^) Г (^о) [№ - f^o) - Г^о) (Л-. - ^о)]. Выражение в скобках есть f(x^)—Мо(х^), т. е. погрешность в х* локальной аффинной модели, построенной в Хс=Хо. Та- ким образом, из леммы 2.4.2 Xi - X, К . 1-1 -. 1 -^ 2 | Г (Хо) 1 и далее по предположениям относительно f'(x) х, — х. К 2Р Поскольку |л-о—л"*|^11^т-2р/7, мы имеем |л'1—А'»|^ ^т]д'о—х^\<.ц. Аналогично проводится доказательство ин- дуктивного предположения. D Требование теоремы 2.4.3 о том, чтобы f'(x} имело ненуле- вую нижнюю границу в D, просто означает, что f'(x'y.} должно ') Такого рода терминология, присущая скорее многомерному случаю, чем одномерному, не вызывает серьезных трудностей и используется для облегчения дальнейшего перехода к случаю пространства многих перемен- ных. — Прим. перев. 2.4. Сходимость метода Ньютона 39 быть ненулевым для квадратичной сходимости метода Нью- тона. Если на самом деле f'(x^}==0, то х, является кратным корнем, и метод Ньютона сходится всего лишь линейно (см. упр. 12). Для того чтобы ощутить разницу, мы приводим ниже пример итераций метода Ньютона, примененного к fi {х) = == х'2—1 и к fz(x)=x2—2л'+1, начиная в обоих случаях с Хо = 2. Обратите внимание, что метод Ньютона в случае ^(-"О сходится гораздо медленнее из-за ^(^.)==0. Пример 2.4.4. Метод Ньютона, примененный к двум квадра- тичным функциям (ЭВМ CDC, одинарная точность). , f,(x)=.x2-l f,(x)=x2-2x+\ 2.0 XQ 1.25 x^ 1.025 Ху_ 1.0003048780488 Хз 1.0000000464611 x^ 1.0 Хз 2.0 1.5 1.25 1.125 1.0625 1.03125 Поучительно также рассмотреть константу -у/(2р), входя- щую в соотношение для ^-квадратичной скорости сходимости (2.4.3). Числитель у, представляющий собой константу Лип- шица для // на D, можно рассматривать как меру нелинейно- сти f. Однако мера у зависит от масштаба: умножение / или изменение единиц измерения х на некоторую константу изме- нит масштаб /'/ на эту константу, не делая функцию ни более и ни менее нелинейной. Мерой нелинейности, не зависящей от масштаба'), служит относительная скорость изменения f'(x}, которая получается делением у на f'(x). Таким образом, по- скольку р есть нижняя граница для f'(x) при XG.D, то у/р является верхней границей относительной нелинейности f(x), и теорема 2.4.3 утверждает, что чем меньше эта мера относи- тельной нелинейности, тем быстрее будет сходиться метод Ньютона. Если же f линейна, то у == 0 и А'] = х\. Теорема 2.4.3 гарантирует сходимость метода Ньютона только из хорошей начальной точки хо, и, в самом деле, как легко убедиться, метод Ньютона может вообще не сходиться, если \Хо—х^\ велико. Рассмотрим, например, функцию f(x)= =arctgx (рис. 2.4.1). Для некоторого ^е[1,39, 1.40] спра- ведливо следующее. Если Хо == Хс, то метод Ньютона будет ге- нерировать циклически повторяющиеся значения л-i = —л'с, x2=Xc, Хз=—Хс, .... Если |д'о]'<А'с, то метод Ньютона бу- дет сходиться к л-» = 0, а если |А-о|>Хс, то метод Ньютона 1) Имеется п пиду лишь независимость от единиц измерения f, а не х. Прим. перев. 40 Гл. 2. Нелинейные задачи с одной переменной f(A') •= arctg A- Рис. 2.4.1. Метод Ньютона, примененный к ..f,,{x) == arctg x. будет расходиться, т. е. погрешность \хц—х^\ будет на каж- дой итерации увеличиваться. Таким образом, метод Ньютона полезен быстрой локальной сходимостью, однако нам необ- ходимо включить его в более надежный метод, который успеш- но работал бы и при более удаленных начальных точках. 2.5. ГЛОБАЛЬНО СХОДЯЩИЕСЯ МЕТОДЫ '» РЕШЕНИЯ ОДНОГО УРАВНЕНИЯ С ОДНИМ НЕИЗВЕСТНЫМ Воспользуемся следующим простым принципом включения ме- тода Ньютона в глобально сходящийся алгоритм: применять метод Ньютона всякий раз, когда кажется, что он работает нормально; в противном случае обращаться к более медлен- ному, но надежному глобальному методу. Такая стратегия по- рождает глобально сходящиеся алгоритмы с высокой локаль- ной скоростью сходимости метода Ньютона. В этом разделе мы рассмотрим два глобальных метода и затем покажем, как получить гибридный алгоритм, комбинируя глобальный метод с методом Ньютона. Будут также обсуждены критерии оста- нова и другие машинно-зависимые критерии, необходимые для успешной работы вычислительных алгоритмов. Простейший глобальный метод—метод деления пополам. В нем заложено вполне разумное предположение о том, что имеется начальный интервал (л:о, zo), содержащий корень. Он помещает точку х\ в центре интервала, выбирает в качестве Рис. 2.5.1. Метод деления пополам. ') Относительно того, какой смысл вкладывается в понятие «глобальный метод», см. последний абзац разд. 1.1. 2.5. Глобально сходящиеся методы 41 нового тот из интервалов [хо, х\\ и [х\, 2о], который содержит корень, и продолжает делить отрезок пополам до тех пор, пока не будет найден корень (рис. 2.5.1). Формально это выглядит так: заданы Хц, ZQ, такие, что f (хц) • f (гц} < 0; for k=0, 1, 2, ... do xk+гk xk+l —• Xk, если / (Xk) • f (Xk+i) < 0; Zk в противном случае. Метод деления пополам работает теоретически всегда, од- нако гарантированное уменьшение оценки погрешности состав- ляет только -п- на каждой итерации. Поэтому с практической точки зрения метод малопривлекателен. Программы, исполь- зующие деление пополам, выполняют обычно эту операцию до тех пор, пока не достигнут точки х^,, из которой будет сходиться некоторый вариант метода Ньютона. Метод деления пополам не имеет также естественного обобщения на многомерный случай. Более наглядное представление о том, как мы будем посту- пать в п-мерном пространстве, дает следующий метод. Пред- ставим себе, что метод Ньютона вырабатывает не только шаг хц == Хс—f(xc)/f'{xc), но также и направление, на которое этот шаг указывает (предполагается, что ^(д-^^О). Хотя нью- тоновский шаг может в действительности привести к увели- чению абсолютной величины функции, его направление таково, что вдоль него абсолютное значение функции первоначально уменьшается (рис. 2.5.2). Геометрически это должно быть оче- видным; простое доказательство дает упр. 16. Таким образом, Рис. 2.5.2. Дробление ньютоновского шага. 42 Гл. 2. Нелинейные задачи с одной переменной если ньютоновская точка Хц не приводит к уменьшению |f(x)|, то разумная стратегия заключается в дроблении шага') с движением в обратном направлении от х.ц к Хс, пока не встре- тится точка х+, для которой \f{x+) \ < \f{Xc} \. Возможная ите- рация здесь такова: х —х -l^L- х^.—х, ^(^)> while \f(x^)\^\f{x,)\ do (2.5.1) x++xc i,+ .- Отметим, что эта стратегия не требует начального интервала, содержащего корень. Итерация (2.5.1) служит примером гибридного алгоритма, в котором делается попытка совместить глобальную сходимость и быструю локальную сходимость, проверяя первым на каж- дой итерации ньютоновский шаг, но всегда добиваясь, чтобы в результате итерации уменьшалась некоторая мера близости к решению. Разработка таких гибридных алгоритмов позволяет успешно решать на практике многомерные нелинейные задачи. Ниже приведена общая формулировка для класса гибридных алгоритмов для отыскания корня одного нелинейного уравне- ния. Этим преследуется цель ввести в рассмотрение и выделить те основные приемы построения глобально и вместе с тем бы- стро локально сходящихся алгоритмов, которые послужат осно- вой для всех алгоритмов в этой книге. Алгоритм 2.5.1. Гибридный квазиньютоновский алгоритм общего вида решения одного нелинейного уравнения с одним неизвестным: заданы f: R -> R, Хц; for k==0, I, 2, ... do: 1. решить—необходим ли останов; если нет, то: 2. построить локальную модель, описывающую поведе- ние f вблизи от Xk, и найти точку Хц, которая является решением (или близка к тому, чтобы быть решением) модельной задачи; 3. (а) решить—взять ли Xk+\==xn', если нет, то: (Ь) выбрать Хц+\, используя глобальную стратегию (здесь как можно реже прибегайте к решению мо- дельной задачи). ') В орт пиале — backtrack, что означает движение в обратном направ- лении, возвращение. В отечественно]"! литературе принят термин «дробление шага», его мы и будем придерживаться при переводе. — Прим. персе. 2.5. Глобально сходящиеся методы 43 Шаг 1 обсуждается ниже. В нем мы впервые используем машинно-зависимые и проблемно-зависимые точности. Шаг 2 обычно включает в себя вычисление ньютоновского шага или некоторый вариант без вычисления производных (см. разд. 2.6). Итерация (2.5.1) служит примером шага 3(а—Ь). Мы увидим в гл. 6, что не нужно выбирать критерий в 3(а) слишком тща- тельно, достаточно, чтобы он обеспечивал в большинстве слу- чаев сходимость гибридного алгоритма к решению. Принимать решение о том, когда остановиться, приходится в некоторой степени неформально. Это решение далеко не все- гда безупречно и все же для него требуется четкий критерий. Поскольку может не существовать машинно-представимого Хц,, такого, что f(x^}=0, необходимо уметь различать, в каком случае мы «достаточно близки». Критерий принятия решения обычно представляется в таком виде: «Получено ли прибли- женное решение задачи?» или «Находятся ли результаты по- следних двух (или нескольких) итераций практически в одном и том же месте?» Первый вопрос представляется проверкой типа: «Имеет ли место \f{x+)\<.xi?», где точность TI выбира- ется так, чтобы отразить представления пользователя о доста- точной близости к нулю для данной задачи. Например, T[ мо- жет быть положено равным- (macheps)172. Эта проверка, ко- нечно, очень чувствительна к масштабу f(x), и поэтому важно, чтобы программа давала пользователю инструкции по вы- бору TI или масштаба /, таких, что х+, удовлетворяющее усло- вию |/'(х+) [ < п, было бы приемлемым решением задачи. Убе- речься от чрезмерной ограничительное™ этого условия помо- гает второй вопрос, который состоит в проверке соотношения вида: «Имеет ли место: {\х+—Хс\/\х+\) << Т2?» Разумной точ- ностью здесь служит та ==(macheps)l/2, которое соответствует останову всякий раз, когда совпадает левая половина разрядов у Хс и х+, хотя может быть выбрано любое Т2, большее, чем inacheps. Поскольку х+ может быть близким к нулю, то вторая проверка обычно видоизменяется, скажем, так: «Имеет ли место: (|х4-—л-с|/тах{|х+|, |л"с|})<Т2. Более удачная провер- ка использует в знаменателе вместо \Хс\ задаваемую пользо- вателем величину typx'), которая отражает характерные зна- чения переменной х (см. упр. 17). Таким образом, критерий останова на ЭВМ CDC мог бы выглядеть так: х, — х -7 < 10 если | f (.г+) 1^10 ' или max{typ^, \x^ |} то остановиться. На практике при решении любой задачи с быстрой локальной сходимостью значения f{x+) обычно становится малым раньше, ') Сокращение typ происходит от слова typical (типичный, характер- ный).—Прим. перев. 44 Гл. 2. Нелинейные задачи с одной переменной чем шаг по х, а для задач, на которых скорость лишь линейна, первым может стать малым шаг по х. Читатель мог уже убедить- ся, что выбор критериев останова очень сложен, в особенности для плохо масштабированных задач. В полном объеме этот во- прос будет рассмотрен в гл. 7. 2.6. МЕТОДЫ ДЛЯ СЛУЧАЯ, КОГДА ПРОИЗВОДНЫЕ НЕ ЗАДАНЫ Во многих практических приложениях функция f{x) не зада- ется формулой, а скорее представляет собой результат неко- торой вычислительной или экспериментальной процедуры. По- скольку обычно f'(x) недоступно, то методы, использующие значения f'(x) для решения f{x)=0, должны быть модифици- рованы так, чтобы обходиться только значением f(x). Мы использовали f'(x) при моделировании поведения / вблизи от текущего приближения к решению Хс прямой, каса- тельной к f в Хс. Если f'(x) недоступно, то заменим эту модель секущей, проходящей через значения f в Хс и некоторой близ- лежащей точке Хс + Ас (рис. 2.6.1). Нетрудно убедиться, что тангенс угла наклона этой прямой равен (2.6.1) и таким образом полученная модель представляет собой прямую ^с (X) = f (Хс} + 0.с (X — Хс). То, что нами проделано, эквивалентно, таким образом, замене производной f(xc) в исходной модели Мс(х) =f(Xc) + -X Рис. 2.6.1. Аппроксимация Цх) с помощью секущей. 2.6. Методы для случая, когда производные не заданы 45 4- f (xc) (х—-v,;) аппроксимацией а,. Тогда квазиныотоновский шаг в нуль модели Мс{х) принимает вид ^ _ „ / (^) •' • " О.С Тотчас же возникают два вопроса: «Будет ли этот метод работать?» и «Каким образом следует выбирать Ас?» Из мате- матического анализа известно, что а,с сходится к f (Хс) при hc—>-Q. Если число he выбирается малым, то Яс называется конечно-разностной аппроксимацией для f'(xc). Кажется ра- зумным, что конечно-разностный метод Ньютона, т. е. квази- ньютоновский метод, основанный на этой аппроксимации, бу- дет работать почти так же хорошо, как и метод Ньютона. Позже мы убедимся, что это именно так. Однако этот прием требует дополнительного вычисления f на каждой итерации, и если f(x) является дорогостоящей, то дополнительное вычисле- ние функции нежелательно. В этом случае he полагается рав- ным (х-—Хс), где х- есть результат предыдущей итерации, так что dc=={f(x-}—f(xc)}/(x-—Хс) и никакие дополнитель- ные вычисления функции не используются. Получающийся в результате квазиньютоновский алгоритм называется методом секущих. Этот метод может показаться излишне надуманным, тем не менее он работает хорошо. Сходимость метода секу- щих немного медленнее сходимости метода с надлежащим об- разом подобранной конечно-разностной аппроксимацией, од- нако он обычно более эффективен с точки зрения суммарного количества вычислений функции, необходимых для достижения заданной точности. Пример 2.6.1. Конечно-разностный метод Ньютона и метод секущих, примененные к f(x)==x2—1 (ЭВМ CDC, одинарная точность}. Конечно-разностный метод Ньютона (A,=10-7.^) Метод секущих (х\ выбирается по конечно- разностному методу Ньютона) 2.0 XQ 2.0 1.2500000266453 л-i .2500000266453 1.0250000179057 Х:ч .0769230844910 1.0003048001120 Хз .0082644643823 1.0000000464701 А"4 .0003048781354 1.0 ^ .0000012544523 Хс, .0000000001912 XJ .0 Пример 2.G.I содержит образцы сходимости метода секу щих и конечно-разностного метода Ньютона (А, == 10~7) на за- 46 Гл. 2. Нелинейные задачи с одной переменной даче f(x) == х2— 1, л-о = 2, которая решалась в примере 2.4.4 методом Ньютона. Обратите внимание, насколько похожи ре- зультаты метода Ньютона и конечно-разностного метода Нью- тона; при этом метод секущих сходится несколько медленнее. Значительное проникновение в суть вопроса дает анализ влияния величины шага аппроксимации he на скорость сходи- мости получающегося конечно-разностного метода Ньютона. Возьмем .. _ у —y—f(хс) Х^. — Х^ — Хс Тогда f(Xc) Х • х.=х„. == ас [f (х,) — f (^) - а, (х, - х,}} = =a,[f{x,)-M,(x^}== =^1 Ц{х^Ч{х,)-Г(х,)(х,-х,)+[Г(х,)-а,](х,-х,)}= у. ( х* л == ^ ' П [Г (z) - f' (х,}} dz + [Г (х,) - aJ (х, - х,} [. Если обозначить вс = \ Хц — xJ и е^. == | х 4. — х.\, то о <- In-1 I ( 1. д2 (2.6.2) при тех же предположениях относительно непрерывности по Липшицу f <= Lipv(D), что и в лемме 2.4.2. Читатель может заметить, что соотношение (2.6.2) анало- гично приведенному в разд. 2.4 выражению для границы по- грешности, за исключением того, что в правой части (2.6.2) вместо \f'(Xc)~1 стоит [йс"1!, и что имеется дополнительное слагаемое, содержащее разность между f'{xc) и ее аппроксима- цией. Отметим также, что проведенный выше анализ до сих пор не зависел от значения ас Ф 0. Теперь определим ас фор- мулой (2.6.1) и введем в рассмотрение предположение о непре- рывности по Липшицу f (см. разд. 2.4). Получим простое след- ствие, которое показывает, насколько близка в зависимости от he конечно-разностная аппроксимация (2.6.1) к f'(xc). Следствие 2.6.2. Пусть f: D-—R, где D— открытый интер- вал, и ^еЫру(Д). Пусть, далее л-с, л-,. + he s D, а а,, задано формулой (2.6.1). Тогда (2.6.3) 2.6. Методы для случая, когда производные не заданы 47 Доказательство. Из леммы 2.4.2 имеем v I h I2 I f (x, + Ac) - f (x,} - h,r (x,) | < ^-. Разделив обе части на \hc\, получим желаемый результат. D Подстановка (2.6.3) в (2.6.2) дает e+ ^ "^"Т (ec+\hc\) ее. •а I "с I Если воспользоваться теперь предположением теоремы 2.4.3 о том, что \f'(x) |^ р> 0 в окрестности точки х», то на основе (2.6.3) легко показать, что |а^1 |<2р-' для Хс е D и для до- статочно малых \hc\. Получаем (2.6.4) Теперь довольно легко завершить доказательство следую- щей теоремы. Теорема 2.6.3. Пусть f: D-^R, где D—открытый интервал, и fsLipy(D). Предположим, что \f'{x)\^sp для некоторого р>0 и для каждого X(=D. Если f{x)=0 имеет решение д:„ г D, то существуют положительные константы г) и т/, та- кие, что если {/г;;} является последовательностью действитель- ных чисел, лежащих в пределах 0 < |/ifc| S^T/, и \Хо — х^\ < т), то последовательность {х&}, заданная формулами f(^+hk)-f^k) ,_n , — ————,————, п'.— о, 1, ..., Xk+l == Xk • ^ "fe определена и сходится (7-линейно к х„. Если linife->ooA;fc=0, то сходимость (?-сверхлинейна. Если существует некоторая кон- станта с\, такая, что I hk К с, | Xk — х, |, или, что эквивалентно, константа Сг, такая, что \hk\<c,\f(Xk)\, (2.6.5) то сходимость ^-квадратична. Если существует некоторая кон- станта Сз, такая, что I^Kcal^-^-il, (2.6.6) то сходимость является по крайней мере двухшаговой у-квад- ратичной, при этом здесь как частный случай содержится ме- тод секущих, где /i* == xis-i — л"/г. 48 Гл. 2. Нелинейные задачи с одной переменной Мы начали это обсуждение с утверждения о том, что по- нимание сути вопроса заключено в самом существе анализа и его простоте. В частности, идея конечно-разностной аппрок- симации выглядела при первом знакомстве с ней как некото- рый специальный прием. Однако можно не только увидеть ее превосходное с вычислительной точки зрения поведение на практике, но и получить при помощи анализа, вряд ли более сложного, чем для метода Ньютона, точную зависимость схо- димости от длины шагов {h/:}. Это всего лишь один из многих примеров того, когда численный и теоретический анализы вы- ступают как союзники в деле развития алгоритмов. Если бы порядок сходимости конечно-разностного метода Ньютона определялся только выбором {h/г}, то мы попросту полагали he = Сч \ f(xc} \, где Сч—некоторая константа, и на этом заканчивался бы наш анализ, поскольку для Хс, доста- точно близких к х», нетрудно показать, что \f{Xc) \ ^ ё\Хс—xJ (см. упр. 18). Однако наличие арифметики конечной точности имеет самые серьезные последствия, на что мы и собираемся сейчас обратить внимание. На практике, очевидно, he не мо- жет быть слишком мало по сравнению с Хс. Например, если t\{xc)^0 и |/ic | < ]-Сс | -macheps то fl(Xc + ^с) = il(^c); таким образом, числитель в (2.6.1) окажется в результате вычисления равным нулю, поскольку программа, вычисляющая f, будет в обоих случаях вызвана с одним и тем же значением аргумента в представлении с плавающей точкой. Даже если \hc\ достаточно велико, так что fl (х-с + ^с) Ф =^ fl(xc), то при вычитании с плавающей точкой, необходимом для получения числителя в (2.6.1), теряется точность. В конце концов, если f вычисляется в двух соседних точках, в силу непрерывной дифференцируемости / получающиеся значения f(xc-{-hc) и f{xc) должны тоже быть почти равными. Может даже получиться, что i\(f(xc-\-hc))==^(f(xc)}. Если \hc\ мало, то естественно, следует ожидать, что совпадут крайние слева разряды мантиссы. Например, предположим, что на ЭВМ с 5-разрядной мантиссой в десятичной системе счисления имеются f(xc)== 1.0001 и f(xc + /ic)== 1.0010, вычисленные для he == Ю-4 некоторой гипотетической программой. В этом случае вычисленные значения f(xc-}-hc}—f(xc) и ас равнялись бы соответственно 9Х10~4 и 9. Таким образом, при получении разности значений функции было потеряно большинство зна- чащих цифр. На практике, более того, если последовательно просматри- вать разряды значения функции, то зачастую их достоверность уменьшается с приближением к правому краю мантиссы. Это объясняется не только конечной точностью, но также тем фак- том, что функция иногда сама является всего лишь прибли- женным результатом, поставляемым вычислительной програм- 2.6. Методы для случая, когда производные не заданы 49 мой. Так, в приведенном выше примере разность f(xc -I- he) — —f(xc)= 9X Ю-4 может отражать только случайные флуктуа- ции в крайних справа разрядах f и не иметь вообще никакого смысла. В итоге тангенс угла наклона модели функции f в Хс может даже не иметь того же знака, что и f'{xc). Очевидный способ более точного вычисления а.с состоит в том, чтобы выбирать \hc\ достаточно большим для того, чтобы в f(xc-{-fic) и f{xc) совпадали не все из наиболее досто- верных значащих цифр. Вместе с тем \hc\ не может быть слишком большим, так как конечной целью вычисления вели- чины йс является ее использование в качестве аппроксимации для ^{хс}, а, как показывает (2.6.3), эта аппроксимация ухуд- шается с ростом \hc\. Разумный компромисс заключается в том, чтобы попытаться сбалансировать ошибку нелинейности, вызываемую выбором слишком больших значений \hc\, с ошиб- ками арифметики конечной точности и вычисления функции, проистекающими из возможности выбрать \hc слишком ма- лым. Развитие этого вопроса предлагается в качестве упр. 19. Далее он будет обсуждаться в разд. 5.4. Предположим, что f вычисляется настолько точно, насколько это позволяет машинная точность. Тогда имеется простой прием, состоящий в том, чтобы внести возмущение примерно в половину разрядов мантиссы Хс: 1 h-с \ = Vmacheps • max {typ х, \ Хс \}, где typ х—характерные размеры переменкой х (см. разд. 2.5). Этот часто применяемый прием обычно оказывается удовлетво- рительным на практике. Если точность подпрограммы вычис- ления f вызывает сомнения, то \hc\ должно быть достаточно большим настолько, чтобы совпадала только половина досто- верных разрядов f(xc-{-hc) и f(xc). Если такое \hc\ столь ве- лико, что применимость (2.6.1) в качестве аппроксимации f (Хс) вызывает сомнения, то один из выходов состоит в исполь- зовании центральной разности: f (хс + he) - f (хс - he) 2h, (2.6.7) Эта формула дает более точную аппроксимацию производной при заданном lie (см. упр. 20), чем разностная аппроксимация вперед') (2.6.1), но вместе с тем она имеет недостаток, свя- занный с удвоением затрат на вычисления функции. *) В литературе вместо «разность вперед» используется также термин «правая разность», — Прим. перед. 50 Гл. 2. Нелинейные задачи с одной переменной 2.7. МИНИМИЗАЦИЯ ФУНКЦИИ ОДНОЙ ПЕРЕМЕННОЙ Завершим изучение одномерных задач обсуждением миними- зации функции одной переменной. Оказывается, эта задача на- столько тесно связана с решением одного нелинейного урав- нения с одним неизвестным, что в сущности уже известно, как вычислять решения. Прежде всего необходимо опять признать, что ответить на вопросы существования и единственности практически невоз- можно. Рассмотрим, например, полином четвертой степени, изображенный на рис. 2.1.1. Его глобальный минимум, где функция принимает свое абсолютно наименьшее значение, на- ходится в х ^0.943, но он также имеет локальный минимум в х ^ 4.60, т. е. точку с минимальным значением функции на некоторой открытой области. Если разделить функцию на х, то она станет кубической с локальным минимумом в х ^ 4.58, но без конечного глобального минимума, поскольку lim f(x)==—oo. Х->—оо В общем случае практически невозможно убедиться в том, действительно ли мы находимся в глобальном минимуме функ- ции. Таким образом, так же как наши алгоритмы решения не- линейных уравнений могут находить только один корень, наши алгоритмы оптимизации в лучшем случае могут опреде- лить местонахождение одного локального минимума, причем на практике этого обычно вполне достаточно. Как и ранее, воп- рос о решении в замкнутой форме не ставится, ибо если можно было бы находить минимум f(x) в замкнутой форме, то можно было бы таким же образом решать f(x)=0, полагая f(x)== = П-^- Высказанное выше утверждение о том, что читателю уже известно, как решать задачу минимизации, основано на том, что локальный минимум непрерывно дифференцируемой функ- ции должен приходиться на точку, где f'(x)==0. Графически это всего лишь означает, что функция не может начать умень- шаться из такой точки в любом направлении. Доказательство этого факта подсказывает нам и алгоритм, так что оно будет приведено ниже. Полезно ввести обозначения C'(Z3) и C2(D) для множеств соответственно единожды и дважды непрерывно дифференцируемых функций, действующих из D в R. Теорема 2.7.1. Пусть ^sC'(D), где D—открытый интервал, и zf=D. Если ^(г)^0, то для любого s, такого, что f (г) •s<0, существует константа t > 0, для которой f (г + ^s) < f (г) при всех ?.(=(0,0. 2.7. Минимизация функции одной переменной 51 Доказательство. Необходимо лишь, используя непрерыв- ность f, выбрать такое t, что f (г + ^s) s < 0 и z+^s^Dnpn всех Ke.(0,t). Остальное следует непосредственно из матема- тического анализа, так как для всех таких К имеет место со- отношение \ f(z+).s}-f(z}=\f'(z+as}sda<0. D J Теорема 2.7.1 предлагает находить точку минимума д-< функ- ции f, решая f'(x)=0. С другой стороны, применяя теорему к g(x)=—f(x), видим, что это условие выделяет также и воз- можные точки максимума. Иначе говоря, решение дает необ- ходимые условия для нахождения точки минимума функции f, но недостаточные. Теорема 2.7.2 показывает, что дополнитель- ным достаточным условием является f"{x^)>0. Теорема 2.7.2. Пусть f^C2(D) для открытого интервала!) и X*(=D есть точка, в которой f'(x^)=0 и f"{x^)>0. Тогда найдется некоторый открытый подынтервал D'aD, такой, что л'* s D' и f(x} > f(x^} для любых других х г D'. Доказательство. Пусть D' выбирается так, что x^e.D' и f" > 0 на D'. Использование разложения в ряд Тейлора с оста- точным членом не вызовет трудностей позже при изучении многомерного случая минимизационной задачи. Поэтому за- метим, что для любого х s D' существует х <= (х», х) с D', для которого f {х) - f (х.) == Г (х.) (х - х.) + ^ \" (х) {х - хУ. Таким образом, утверждение доказано, поскольку f(A-«)=0 и х г D' влечет за собой f{x)-f{x,}=-^{x-xfff'(x)>0. D Понимая теперь, что представляет собой решение, поду- маем, как его вычислять. Самый легкий путь, приводящий к ин- тересующему нас классу алгоритмов, состоит в решении f (х} == О с использованием стратегии гибридного метода Ньютона, ко- торая рассматривалась в разд. 2.5. Для обеспечения миними- зации, а не максимизации, дополним стратегию глобализации требованием, чтобы /'(л-i,) уменьшалось с ростом k. Итерация гибридного метода начинается из текущей точ- ки л-с с применения к f'(x)=0 метода Ньютона или его мо- 52 Гл. 2. Нелинейные задачи с одной переменной дификации, рассмотренной в разд. 2.6. Ньютоновский шаг имеет вид у ___ .. I \'"U I +~\C~T~^• у _ .. Г (Хс) ,п 7 П Х+—Лс—{// /у \ • (Z,./.l) Следует взглянуть на суть этого шага с точки зрения модель- ных задач. Поскольку (2.7.1) было получено в результате по- строения аффинной модели производной f (х) в окрестности Хс, это эквивалентно построению квадратичной модели те (х) == f (х,) + ]' (х,) (х - х,) +у f" (Хо) (х - х,)2 функции f{x) в окрестности Хс и выбору в качестве х+ стацио- нарной точки модели. Для задач максимизации и минимиза- ции квадратичная модель функции f(x) подходит больше, чем линейная, поскольку она имеет самое большее одну точку экс- тремума. Таким образом, в результате шага (2.7.1) будет най- дена за одну итерацию точка экстремума квадратичной функ- ции. Кроме того, точно так же как в теореме 2.4.3, можно до- казать, что она сходится локально и о-квадратично к точке экстремума х# функции f(x), если f"(x^)^0 и /// непрерывно по Липшицу в окрестности х*. Наша глобальная стратегия в минимизации будет отли- чаться от приведенной в разд. 2.5 тем, что, принимая решение о приемлемости ньютоновской точки Хц, вместо соотношения | // (хн) | < | // (Хс} , отражающего степень продвижения к нулю f'(x), будем пользоваться соотношением f (хн) <. f (Хс), указы- вающим на продвижение к минимуму. Если ^(хц)~^- f(Xc), a Г(хс)(х»—Хс) < 0, то по теореме 2.7.1 функция f(x) должна первоначально уменьшаться в направлении от Хс к Хц, поэтому следующую приемлемую точку х+ можно найти, дробя шаг в обратном направлении от Хц к Хс. Из (2.7.1) видно, что выра- жение f'(xc) (хц—Хс) отрицательно тогда и только тогда, ко- гда f"{Xc) (или ее аппроксимация) положительна. Это озна- чает, что если локальная модель, используемая для получения ньютоновского шага, имеет минимум, а не максимум, то гаран- тируется существование подходящего направления шага (рис. 2.7.1). С другой стороны, если f"(xc)-<0 и f'(Xc) (XN— —Хс)>0, то при переходе от Хс к хц функция f(x) первона- чально увеличивается, поэтому шаг нужно делать в противопо- ложном направлении. Одна из стратегий состоит в том, чтобы сначала проверить, подходит ли шаг длины \хц—Хс\, и затем, если необходимо, дробить его, пока не выполнится неравенство f(x+) < f(xc}. Более совершенные глобальные стратегии для ми- нимизации обсуждаются в гл. 6. Критерий останова для оптимизации несколько отличается от используемого при решении нелинейных уравнении. Здесь 2.8. Упражнения 53 II опять возникают вопросы: «Получено ли приближенное реше- ние задачи?» или «Находятся ли результаты последних итера- ций практически в одном и том же месте?» Второй вопрос про- веряется тем же самым условием, налагаемым на относитель- ную или абсолютную длину шага, что и в разд. 2.5: «Имеет ли место \х+—A:c|/max{typ х, |д:+|}<:Т1?» Первый вопрос можно просто представить как «Имеет ли место: \f'(x+) \ <: Т2?», од- нако здесь опять просматривается зависимость от масштабов f и добавляется зависимость от масштабов х. Все же в этом случае можно кое-что предпринять, а именно потребовать, чтобы относительная скорость изменения f, равная f'(x)/f(x), была по абсолютной величине меньше Т2, или относительное изменение f, деленное на относительное изменение х, т. е. f (х.) ,. f(^) ^' было по абсолютной величине меньше та. Последняя проверка представляется привлекательной из-за ее попытки учесть мас- штабы как /, так и х. Наконец, возникает вопрос о том, что делать, если произ- водные f'(x) недоступны. Ответ на него настолько похож на рассуждения в разд. 2.6, что мы откладываем рассмотрение этой проблемы до рассмотрения многомерного случая (см. также упр. 21). 2.8. УПРАЖНЕНИЯ 1. Выполните одну итерацию метода Ньютона из х = 2 для функции fi(x), заданной в разд. 2.1. К какому корню сходятся итерации? Что прои- зойдет, если начать из точки х == I? Наличие минимума у локальной квадратичной модели приводит сначала к уменьшениюf(xj при переходе от л^ к Хц Наличие максимума у локальной квадратичной модели приводит сначала к увеличению f(n} при переходе от^р к х^ Рис. 2.7.1. Соответствие локальной квадратичной модели наклону кривой в начале перехода от х к Х„. 54 Гл. 2. Нелинейные задачи с одной переменной 2. За сколько приблизительно итерации сойдется к 1 на ЭВМ CDC (7-лянейно сходящаяся последовательность -к» == 1 + (0.9)*, k =- О, 1, .,. ? (Для ответа используйте бумагу, а не ЭВМ.) Является ли в общем случае </-линейная сходимость с постоянной 0.9 удовлетворительной для вычисли- тельных алгоритмов? 3. Рассмотрим последовательность х/с = 1+ \lk\, k == 0, 1, .. . . Сходится ли эта последовательность ^-линейно к I? Сходится ли она <7-линейно с лю- бой постоянной с > I? Какого типа эта сходимость? Сходится ли {л-»} к 1 с у-порядком I при любом значении / > I? • 4. Докажите, что всегда (/-порядок последовательности не превосходит ее у-порядка. Приведите контрпример для обратного утверждения. 5. Докажите, что {х/г} имеет (/-порядок, по меньшей мере равный р, тогда и только тогда, когда для нее существует последовательность верхних оценок погрешности {б*}, где bk Ss Sk = \Xk—x^\, такая, что, {b/s} схо- дится к нулю с (/-порядком, по меньшей мере равным р, и _ ^ lim — < оо, k->co e|^ 6. (Более трудное упражнение.) Существует интересная связь между /-шаговым ^-порядком и «I-шаговым» г-порядком. Попробуйте найти эту связь и провести соответствующие доказательства. Данный результат вместе с его приложением можно найти в работе Гэя (1979). 7. На ЭВМ IBM серий 360—370 умножение с повышенной точностью реализовано аппаратно, а деление с повышенной точностью выполняется так: сначала производится деление с удвоенной точностью, затем используется итерация метода Ньютона, требующая только умножения и сложения. Для лучшего понимания этого: (а) выведите итерацию метода Ньютона для вы- числения л"» == 1/а, где а—заданное действительное число; (Ь) выполните три итерации для заданных а = 9 и л'о = 0.1. Какого типа сходимость на- блюдается? 8. Проанализируйте скорость сходимости метода деления пополам. 9. Напишите, отладьте и протестируйте программу для решения одного нелинейного уравнения с одним неизвестным. Следует придерживаться гиб- ридной стратегии, изложенной в разд. 2.5. В качестве локального шага ис- пользуйте метод Ньютона, конечно-разностный метод Ньютона или метод секущих, В качестве глобальной стратегии используйте деление пополам, дробление шага, Стратегию интерполирования на отрезке между Хц и Xk или какую-либо другую стратегию на ваше усмотрение. Выполните программу для: (a) / (х) == sin х — cos 2х, Ху == 1; (b) f(x)=xs-7x2+ 11л:-5, л-о=2, 7; (c) f (х) = sin х — cos x, Xa == 1; (d) /г(х) (задана в разд. 2.1), .to = 0, 2. (Если используется деление пополам, то выберите для каждой задачи подходящий интервал и поза- ботьтесь, чтобы ни одна из итерации не выходила за его пределы.) Какую скорость сходимости вы наблюдаете в каждом случае? Она не всегда долж- на быть квадратичной. Почему? 10. Воспользуйтесь программой из упр. 9 для нахождения точки с > О, на которой метод Ньютона будет зацикливаться при решении уравнения arctgx=0 (см. рис. 2.4.1). 2.8. Упражнения 55 11. Модифицируйте программу из упр. 9 на случай нахождения мини- мума функции одной переменной. (Суть модификаций объяснена в разд. 2.7.) 12. Какую скорость сходимости (к л'» = 0) имеет метод Ньютона при решении уравнения х2 = О? х3 = О? А при х + х3 == О? х + х4 = О? Если нарушаются предположения теоремы 2.4.3, то какие именно в каждом случае? 13. Докажите, что если f(xsf) = f (л-*) = 0, f" (х»} ?ь 0, то метод Нью- тона сходится (7-линейно к xse, причем lim^oo е^./е^ == 1/2. [При желании обобщите этот результат на случай f{x^) = f'(Xi,} ==...= f"{x#) = О, ^<"+i)(^) ^0.] 14. Докажите, что если /(х») = 0, f'(x„) ?= 0, /"(-<*) = 0, f"'(x^) =^ О, то метод Ньютона сходится (/-кубически к л'*. [При желании обобщите этот результат на случай Г (л"*) ^ 0, !(х^) = ^'(л:*) = ... = ^"'(л:*) == О, /<"+i)(x„) ^о.] 15. Постройте кубически сходящийся метод для решения f (х) == 0, мо- делируя / на каждом шаге квадратичной аппроксимацией, получаемой из ее разложения в ряд Тейлора. В чем основные трудности использования этого метода? Считаете ли вы, что для этой задачи подходит квадратичная мо- дель? (См. также метод Мюллера, приведенный в большинстве вводных курсов по численному анализу.) 16. Заданы feC'(D), Xc<=D и d=—f(xc}/f (Хс), причем f(x^)^0 и f (л'с) ^ 0. Покажите, что существует t > 0, такое, что \f(Xc-}-\d)\ < < |/(л"с)| для всех К е (0, t). [Указание: возьмите t такое, что /'(•*"'•+ + ^d) •f'(Xc) >0 для всех ^е (0, t), и затем воспользуйтесь техникой доказательства теоремы 2.7.1.] 17. Рассмотрите процесс решения х2 == 0 методом Ньютона, начинаю- щимся из Хо = 1. Будут ли любые две последовательные итерации удовле- творять неравенству \Xk+\. — х^|/тах{|^|, |n"t+il} < Ю-7? Что можно ска- зать о проверке, содержащей typ х, которая приведена в конце разд. 2.6? 18. Заданы feCl(D) и х» е D, причем /(л:«) ==0. Покажите, что су- ществуют постоянная к > 0 и интервал б с D, содержащий х#, такие, что /(-с)|^а|х—х»] для всех х е D. [Указание: выберите б таким, что f'{x} | г$ а, для всех х е D.] 19. Допустим, что /: 0-»-R для открытого интервала D, и предполо- жим, что f'eLipu(D). Допустим, что программа вычисления f(x) имеет суммарную погрешность, ограниченную величиной 1i|/(n:)], где ^—неотри- цательная постоянная. Найдите верхнюю границу суммарной погрешности [f(Xc + he)—f(Xc)]lhc при аппроксимации f'(xc) как функцию от he [а так- же от у, T|, f(Xc) и f(Xc-i-hc)]. Найдите значение he, минимизирующее эту верхнюю границу при фиксированных у, T) и f(Xc). [Предположите здесь, что }(Хс + Ac) Ss f(Xc).] Как вы думаете, полезны ли конечные разности с вычислительной точки зрения, когда f (х) чрезвычайно мало по сравнению с f(x)T 20. Предположим, что D является открытым интервалом, содержащим Хс — he, .tc +/ic e R, и пусть /": D -*- R удовлетворяет условию f" e eLipy(D). Докажите, что погрешность формулы центральных разностей (2.6.7) при аппроксимации f (Хс) ограничена величиной vl^'-'l2/^. [Указание: 56 Гл. 2. Нелинейные задачи с одной переменной Распространите технику доказательства леммы 2.4.2 на получение неравен- ^)-^W+fW(2-x)+-^w^^1<-d2^?l L 2 J'- б членоУ^ аналогичную оценку и3 ФOPMУЛЫ Тейлора с остаточным менн^Й "^Т^Т^'/ 7° вы решаете зaдaчУ минимизации с одной пере- ^я Л^Л ) f {х} заданы ^•"итачески, но дорогостоящи для вычис- ления. ( ) не задан0 аналитическ"- Предложите локальный м^тоТр1 Второе программное замечание Как явствует из гл. 2, мы предпочитаем получать итерационные алгоритмы решения нелинейных задач из рассмотрения решений надлежащим образом подобранных моделей задач. Используемая модель должна принадлежать классу, для которого существует эффективная вычислительная процедура решения. Кроме того, она должна выбираться так, чтобы адекватность мо- делирования нелинейной задачи обеспечивала сходимость итерационной по- следовательности к решению. В гл. 2 элементарный аппарат математического анализа обеспечил нас всей необходимой техникой для построения подходящих линейных и квадра- тичных моделей и всем необходимым для анализа их погрешностей аппро- ксимации на реальном классе нелинейных задач. Для решения модельной задачи потребовалось всего две арифметические операции. Такая простота и побудила нас к написанию гл. 2. По-видимому, нет необходимости в ка- ком-либо другом, более сжатом изложении скалярных итераций. Существую- щее изложение позволило без каких-либо затруднений, присущих анализу функций многих переменных и линейной алгебре, представить идеи, которые будут распространены далее на многомерный случай. Модели многомерного случая будут содержать производные функций многих переменных, а решение модельных задач потребует решения систем линейных уравнений. В гл. 3 представлен материал по вычислительной ли- нейной алгебре, касающийся решения модельных задач и извлечения полез- ной информации из самих моделей. Глава 4 представляет собой обзор неко- торых теорем анализа функций многих переменных, которые, как нам пред- ставляется, полезны для построения многомерных моделей и для анализа их аппрокспмационных свойств. Имеется тонкая и интересная связь между моделями, которые мы строим, и способами извлечения информации из них. Если модельная задача легко строится и решается, то нет надобности в том, чтобы она была столь же хорошей, как в случае, когда решение модельной задачи является трудоем- ким. Это подтверждает тот простой факт, что лучше выполнить больше итераций дешевого метода, чем дорогого. Мы заинтересованы также и в использовании структуры задачи или по крайней мере той ее части, которая без труда учитывается в модели. Это делается как в целях улучшения мо- дели, так и для облегчения получения из нее х+. Интересно также рассмо- треть вопрос о том, что именно из структуры задачи можно благополучно опустить в модели, облегчая этим ее решение и ожидая тем не менее зна- чительную сходимость итерации. В подходящий момент будут приведены примеры обоих подходов. 3 Основы вычислительной линейной алгебры В настоящей главе обсуждаются разделы вычислительной ли- нейной алгебры, необходимые для реализации и анализа алго- ритмов решения многомерных нелинейных задач. В разд. 3.1 вводятся нормы векторов и матриц, предназначенные для изме- рения в наших алгоритмах размеров этих объектов, и приво- дятся свойства норм, полезные для анализа рассматриваемых методов. Затем в разд. 3.2 описываются различные матричные разложения, используемые алгоритмами для решения систем из п линейных уравнений с п неизвестными. В разд. 3.3 кратко об- суждается проблема чувствительности к погрешностям, возни- кающим при решении таких систем. Наша точка зрения такова: несмотря на доступность алгоритмов имеющихся в библиоте- ках программ, серьезный пользователь нуждается в понимании принципов, лежащих в основе алгоритмов. При этом пользователь должен овладеть инструментом вы- числительной линейной алгебры, позволяющим ему выбирать соответствующие программы, учитывая затраты по их исполь- зованию и величину погрешности. В справочных целях в разд. 3.5 резюмируются свойства соб- ственных значений, которые используются в этой книге, осо- бенно их связь с положительной определенностью. В разд. 3.4 и 3.6 обсуждаются соответственно пересчет матричных разложе- ний и решение переопределенных систем линейных уравнений. Поскольку эти темы не понадобятся вплоть до гл. 8 и 11, озна- комление с ними можно отложить. Превосходным справочным пособием по этому материалу служат книги Уилкинсона (1965), Стюарта (1973), Стренга (1976), Голуба и Ван Лоана (1983). 3.1. Векторные и матричные нормы 59 3.1. ВЕКТОРНЫЕ И МАТРИЧНЫЕ НОРМЫ, ОРТОГОНАЛЬНОСТЬ В гл. 2 мы сочли полезным сделать определенные предположе- ния относительно f, такие, как ограниченность снизу абсолют- ной величины производной или выполнение условия Липшица (2.4.1), что обеспечивало ограниченность величины изменения производной, деленной на величину соответствующего изменения аргумента. Впоследствии нам понадобятся аналогичные усло- вия, но уже в той ситуации, когда абсолютная величина больше не может служить мерой величин, так как аргументы и произ- водные больше не являются скалярами. Аналогично, условия, подобные критерию останова ]f(.x».) | ^ т-i, должны быть заме- нены на критерий, подходящий для случая, когда F(xk} есть вектор. В гл. 4 мы увидим, что значения функций будут векторами или скалярами, а производные будут матрицами или векторами. В данной главе вводятся нормы векторов н матриц как соответ- ствующие обобщения абсолютной величины действительного числа. Существует много всевозможных норм, отвечающих различ- ным целям, но мы ограничимся лишь некоторыми из них. Наи- больший интерес представляет так называемая евклидова или /2-норма, которая совпадает с обычным понятием длины век- тора. В настоящем разделе обсуждаются также ортогональные матрицы. Эти матрицы особым образом связаны с евклидовой нормой, поэтому они играют важную роль в вычислительной линейной алгебре. Напомним, что R" обозначает векторное пространство дей- ствительных пХ 1-векторов. Малые греческие буквы будем, как правило, использовать для действительных чисел, т. е. элемен- тов множества R, а малые латинские буквы—для векторов. Матрицы будут обозначаться большими латинскими буквами, причем множество действительных п X т-матриц будет обозна- чаться через R^". Верхний индекс Т будет обозначать матрич- ное транспонирование. Один и тот же символ 0 будет использо- ваться как для векторов, так и для скаляров. Таким образом, взглянув на приведенное ниже соотношение (3.1.1 а), читатель легко поймет, что Ц0||==0. Определение 3.1.1. Нормой в R" является действительно- значная функция || • || на R", удовлетворяющая условиям: 1|u|l ;s> 0 для каждого UER", причем ||и|| ==0, только если o==OeR"; (3.1. la) || au Ц= [а | • ||u|| для каждого и е R" и a s R; (3.1.1b) 1|У+оу|К1М1+11оУ|1 Для каждого v, ayeR". (3.1.1с) 60 Гл. 3. Основы вычислительной линейной алгебры Три наиболее подходящие для наших целей векторные нормы для о ==(»!, Uz, •••> u^eR" имеют вид l|o|L= max | о, | (1^- или sup-норма')); 1 S$ f < П (3.1.2а) (/i-норма или норма наименьших абсолютных разностей); (3.1.2b) / ч \I/2 IMl2==( S ("г)2) (^2"> евклидова или наименьших t=1 - квадратов норма). (3.1.2с) Все они являются отдельными случаями общего класса вектор- ных /р-норм вида (tw')'", \I=1 / (3.1.3) где ls^p<oo. Читатель может доказать, что (3.1.2а) согла- суется с (3.1.3) в пределе при р, стремящемся к оо (упр. 1). При обсуждении сходимости мы будем говорить о векторной последовательности {xk}, сходящейся к вектору х„. Делая такое высказывание, будем подразумевать определенную норму и иметь в виду, что lim 11^-^.11=0. k->00 Будем также говорить о скорости сходимости {xk} к х'„ и под- разумевать скорость сходимости [\\Xk — х*||} к 0. Было бы жаль, если пришлось бы специально оговаривать вид нормы, как это следовало делать, окажись возможным сходимость в одной норме, а в другой — нет. Это означало бы, что вывод о том, сошелся или нет на практике конкретный алгоритм, может за- висеть от того, какая норма используется в его критерии оста- нова. К счастью, благодаря следующему результату, который не верен в бесконечномерном пространстве, в R" нет таких про- блем. Следует подчеркнуть, что ^-линейная сходимость является свойством, зависящим от нормы. Теорема 3.1.2. Пусть ||-|| и |[| • ||[ — любые две нормы в R". Тогда существуют положительные константы ст и р, такие, что "МК1МКР1М1 (3.1.4) для любого v f= R". Более того, если {и/г} есть произвольная последовательность в R", то для у*е R" lim ||o^-yJ|=0 k->oa Ее называют также нормой Чебышёва. —Прим. персе. 3.1. Векторные и матричные нормы 61 тогда и только тогда, когда для каждого ;', 1 г^ ; ^ п, последо- вательность (vk)i, состоящая из i'-x компонент векторов Vk, схо- дится к г-й компоненте (п*); вектора у». Доказательство оставим читателю в качестве упражнения, поскольку оно не является центральным в нашей теме. Более простым упражнением будет доказательство справедливости конкретных соотношений IMIi>IMl2>ML. II У Hi <V" II о 112, l|y|l2<V"'ML, (3.1.5) из которых может быть выведено (3.1.4) для /г, /а- и /оо-норм. Соотношение || и ||i ^ л •'п || и Цз можно легко доказать, используя неравенство Кошн—Шварца: п vтw==^viw^'^^v\\'^\\w\\2 для всех o,aysR'1. Важное следствие из соотношений (3.1.4) и (3.1.5) состоит в том, что характеристика работы алгоритма вряд ли серьезно зависит от выбора нормы, и потому такой выбор обычно осно- вывается на удобстве или на соответствии конкретной задаче. Ранее уже упоминалось, что нам необходимо уметь измерять матрицы так же, как и векторы. Это, конечно, можно сделать, представляя матрицу А==(ац) в виде соответствующего ей век- тора (ац, a:2i, ..., dni, 0:12, -.., аппУ и применяя любую век- торную норму к этому «длинному» вектору. Полезная во мно- гих отношениях фробениусовская норма есть в точности /а-нор- ма матрицы Л, записанной как длинный вектор: 1Л1 / п п \1/2 -(ZZl^l2 . \/=l.f=l (3.1.6) Принято называть их «матричными нормами», и они вполне уместны, когда матрица рассматривается как ящик письменного стола, набитый числовой информацией. Это будет отвечать их роли в локальных моделях, на которых основываются итерации наших нелинейных методов. Надо уметь также измерять матрицы в соответствии с их ролью операторов. Если и имеет определенную величину ||и||, то хотелось бы иметь возможность указывать границы для ||Ли||, величины образа о при отображении с помощью опера- тора А. Это окажется полезным при анализе сходимости. Чи- татель может вернуться назад, в разд. 2.4, и увидеть, что там как раз использовалось ограничение р на производную модели. Нормы операторов должны зависеть от тех конкретных вектор- ных норм, которые используются для измерения v и Av, 62 Гл. 3. Основы вычислительной линейной алгебры Естественным определением нормы А, индуцированной за- данной векторной нормой, является 1|Ло|1 II v ]| |Л||= тах (3.1.7) os R", о ^ О Это—максимальная величина, на которую Л может растянуть любой вектор в заданной норме ||-||. Вообще говоря, нет ника- кой необходимости в использовании одной и той же нормы для v и Ли, однако у нас нет и потребности в соответствующем обоб- щении. Норма (3.1.7) называется операторной нормой, индуцирован- ной векторной нормой ||-||, и для любой векторной /р-нормы она обозначается как |[Л||р. Как нетрудно показать, она удовлетво- ряет трем определяющим свойствам матричной нормы, в точ- ности совпадающим с (3.1.1), если там заменить v, w e R" на Л, Be. R^". Хотя кажется, что определение (3.1.7) может быть лишь в малой степени полезным с вычислительной точки зрения, поскольку оно подразумевает решение оптимизационной задачи, однако индуцированные матричные 1\-, 1ч- и /ос-нормы задаются следующими формулами: |Л||,== max {Ha/Hi}, 1 < / < " (3.1.8а) | Л Из == (максимальное собственное значение (3.1.8Ь) матрицы ATA')\^'', (3.1.8с) |A|L= тах {|| a,. Hi}, I < f < п доказательство которых оставляем в качестве упражнения. Здесь через а., обозначен J-й столбец матрицы Л, а через a,.— ее t-я строка. Таким образом, ||A[|i и |[Л||.оо нетрудно вычислить, что же касается ЦЛНг, то она оказывается полезной при ана- лизе. Иногда линейные преобразования задачи заставляют нас ис- пользовать взвешенную норму Фробениуса: ЦЦ^ЛЦ^И/-. 4^1 и ^2 — невырожденные п X га-матрицы (3.1.9) («невырожденные» означает «обратимые»). Несмотря на то что норма Фробениуса и индуцированная /р-норма удовлетворяют свойству мультипликативности ЦЛВ1К11ЛЦ- ||Д||, (3.1.10) взвешенная норма Фробениуса, за исключением специальных случаев, не удовлетворяет ему. Некоторые свойства матричных норм и произведений мат- рицы на вектор представляют особый интерес для анализа на- ших алгоритмов. Эти свойства перечислены ниже. Доказатель- 3.1. Векторные и матричные нормы 63 ства некоторых из них вынесены в упражнения, причем в необ- ходимых случаях с соответствующими указаниями. Единичная п-мерная матрица обозначается через /, причем, каково в каж- дом случае п, понятно из контекста. След матрицы М, М s R^", определяется как tr(M)==i:M,, Теорема 3.1.3. Пусть || • || и ||| • ||| суть произвольные нормы в Rnxtl. Существуют положительные константы а и Р, такие, "11Л||<|||л|||<р||лц (3.1.И) для каждого AeRtlxn. В частности, га-^ЦЛЦ^ЦЛИз^ЦЛ^, (3.1.12) а для р == 1 или р = оо "-1/2 II Л ||„ < || Л Цз < га'/21| Л ||,. (3.1.13) Норма Фробениуса матрицы Л удовлетворяет соотношению ЦЛИр^тг^Л)]^ (3.1.14) и для любых Ве= R"x" ||Л5|1^<тт{||Л|Ы|В|^, ЦЛЩйУ. (3.1.15) Кроме того, для любых и, w s R" имеем II Av Из < || А\\р-1| и \\„ (3.1.16) \\vwт\\p=\\vwт\\^\\v\\,•\\w\\,. (3.1.17) Если Л не вырождена, то операторная норма, индуцированная нормой 11-11, удовлетворяет соотношению и . -1 II 1 ||Ла| (3.1.18) mm о е R", о + О Следующая теорема утверждает, что операция обращения матриц непрерывна по норме. Кроме того, она дает соотноше- ние, связывающее нормы двух обратных к близким между собой матрицам, которое окажется полезным позже при анализе алго- ритмов. Теорема 3.1.4. Пусть || • ||—произвольная норма в R"^, та- кая, что имеет место (3.1.10) и ||/||== 1, пусть также Е е R"^". 64 Гл. 3. Основы вычислительной линейной алгебры Если ||?||-< 1, то существует (/—f)-' н 1/7 С-1-Ч1 <-___!___ \\1 ~L•! "^ \-\\Е\\ Если Л не вырождена и ДА"' (В — Л)[[ < 1, то В не вырождена н 11Л-1 Вй-1 <• 1-||Л-'(В-Л)| Доказательство. Изложим идею, не вдаваясь в детали. Не- равенство (3.1.20) следует из непосредственного использования (3.1.19) с однократным применением (3.1.10), так что мы остав- ляем его как упражнение. Доказательство (3.1.19) во многом похоже на доказательство равенства l-||?|| Его схема состоит в доказательстве того, что (/ + Е + Е2 + • • • ... JrE^!)==Sk образует последовательность Коши в R"x'1 и, следовательно, сходится. Далее нетрудно показать, что lim Sft==(/-?T1 &->°0 и что (3.1.19) следует из соотношения (3.1.19) кдена н (3.1.20) -ЕУ == lim || 5ft || < ZW. а k->°o 1=0 В заключение введем понятие ортогональных векторов и матриц. Некоторые простые свойства ортогональных матриц в /2-норме показывают, что они будут полезны с вычислитель- ной точки зрения. Скалярное произведение двух векторов и, w i=. R" обозначалось нами как vтw, но иногда будет удобно пользоваться некоторым специальным обозначением. В следую- щих двух определениях происходит наложение двух смысловых значений у„ и мы еще раз рекомендуем читателю интерпрети- ровать это по контексту '). Определение 3.1.5. Пусть у, w е R". Скалярное произведение и и w по определению равно п (о, ги>}==и^== Z ViWi== Hulla -II ay Ik -cos 9, (3.1.21) i-i ') См. посвященное этому вопросу замечание в предисловии. — Прим. перев. 3.2. Решение систем линейных уравнений 65 где 6 есть угол между v и w, если, конечно, v ^ 0 и w =f=- 0. Если <у, ау> == 0, то говорят, что v и w ортогональны или перпен- дикулярны. Определение 3.1.6. Говорят, что векторы v\, ..., u^sR" ортогональны или взаимно ортогональны, если <о;, у/> =0, i ^ j. Если, кроме того, <о„ и,) == 1, то говорят, что система векторов {ui, ..., Vk} ортонормальна, и если k = п, то она является орто- нормальным базисом в R". Пусть Q e R"^, тогда говорят, что Q является ортогональ- ной матрицей, если 0^=/ или Q(y^I. (3.1.22) По определению, эквивалентному (3.1.22), столбцы или стро- ки ортогональной матрицы образуют ортонормальную систему векторов. Следующая теорема содержит некоторые свойства ортогональных матриц, которые делают особенно важным их значение для практики. Доказательства оставлены в качестве упражнений. Теорема 3.1.7. Если матрицы Q, f^eR"^ ортогональны, то матрица QQ тоже ортогональна. Кроме того, для любых о е R" и Л s R^" имеют место равенства IIQyIk-Mb, ||QA||2=||AQ|b=||A||2, IIQIl2=l. (3.1.23) (3.1.24) (3.1.25) Равенство (3.1.23) показывает, что ортогональная матрица соответствует нашим геометрическим представлениям об опера- торе отражения и поворота, поскольку он может изменять только направление вектора о, но не его длину. Равенство (3.1.24) го- ворит о том, что ортогональная матрица не изменяет норму матрицы. Вот те две причины, по которым ортогональные мат- рицы с успехом используются в матричных разложениях. 3.2. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ И РАЗЛОЖЕНИЯ МАТРИЦ Многомерные нелинейные алгоритмы почти всегда требуют на каждой итерации решения по крайней мере одной системы из п линейных уравнений с п неизвестными Лх==6, Ae=R пХп b, x e R" (3.2.1) Зак. В60 66 Гл. 3. Основы вычислительной линейной алгебры Обычно это связано с нахождением ньютоновской точки путем решения модельной задачи или некоторой ее модификации. К счастью, для решения данной задачи доступны превосходные библиотеки подпрограмм: в Соединенных Штатах, прежде всего в библиотеках UNPACK и IM'SL, а в Великобритании в NAG и Харвелловской библиотеках. Эти библиотеки содержат алго- ритмы решения задачи (3.2.1) для матриц общего вида, а также специальные алгоритмы, которые более эффективны для слу- чаев, когда А имеет структуру особого вида, такую, как симмет- ричность и положительная определенность (обычные свойства систем, возникающих в прикладной минимизации). Из-за до- ступности этих программ, тщательности труда по их созданию и тестированию, наша точка зрения такова, что лицу, решаю- щему нелинейные задачи, нет необходимости, а возможно, оно и вовсе не должно писать свой собственный «решатель» линей- ных уравнений. Скорее, это лицо должно знать, какую из имею- щихся программ использовать для каждого из различных типов задач (3.2.1), с которыми он или она может столкнуться, а также знать о затратах и возможных проблемах, связанных с использованием программ. Важно к тому же иметь базовые знания по структуре этих программ, с тем чтобы без труда об- ращаться с ними и чтобы представлять себе, какие из техни- ческих приемов окажутся полезными в других частях нелиней- ных алгоритмов. В целях экономии места в математических формулах распро- странена практика записи А-^Ь, например Xk+\==Xk—A'k\F(Xk) в ньютоновских итерациях для F(x}=0. Беда в том, что чита- тель, не знакомый с численными расчетами, может подумать, что мы, в самом деле, вычисляем Л^' и берем ее произведение на вектор Ъ. Для большинства вычислительных машин всегда более эффективно вычисление А^Ь путем решения линейной си- стемы Ах=Ь с использованием методов разложения матриц, хотя это может оказаться неверным для некоторых «векторных ЭВМ». Способы представления матриц в виде произведения сомно- жителей основываются на разложении Л вида Л == Л[ • Ад • ... • Ад,, где каждое Л; имеет форму, удобную для решения (3.2.1). В на- шем случае т ^ 5, причем главным образом т == 2 или 3. Имея разложение Л или в процессе ее разложения, мы пытаемся вы- яснить вопрос о вырожденности или обратимости Л. Если Л почти вырождена, то задача (3.2.1) не будет хорошо поставлен- ной с вычислительной точки зрения, и здесь, видимо, более важно знать это, чем вычислять ненадежное решение. Подроб- нее об этом говорится в следующем разделе. 3.2. Решение систем линейных уравнений 67 Если мы хотим приняться за решение Ах = Ь, то нам надо, «отщепляя» один за другим множители разложения, решить уравнения в такой последовательности: A^i==b, Ayb^= bi, где х == Ь,п есть искомое решение. Чтобы убедиться в этом, отме- тим, что каждое bi равно A^'A^i ... ЛГ'6, так что х=А^А^ ... A^b^A-'b. Ниже перечислено шесть наиболее важных вариантов вы- бора Л; и кратко упомянуто о характерных особенностях реше- ния (3.2.1) для каждого из вариантов. 1. А[ представляет собой матрицу перестановок Р. Матрица перестановок имеет тот же набор строк (и столбцов), что и еди- ничная матрица, однако расположенных не в таком порядке, а переставленных. Для любой матрицы М матрица РМ поэтому является точно такой же перестановкой строк в М, а МР—та- кой же перестановкой столбцов в М. Далее, Р-1 = Р7' тоже есть матрица перестановок. Обычно Р хранится в виде вектора р = ==(рь •••> Рп)7, получающегося в результате перестановки в (1,2, ..., п)7, причем договоренность здесь такова, что t-я строка в Р совпадает с pi-й строкой в /. Нетрудно заметить, что Рх = Ъ имеет решение Хр^ = bi, I == 1, ..., п. 2. Л; является ортогональной матрицей, обозначаемой через Q или U. Поскольку Q-1 = Q7', то решение Qx == Ь сводится к формированию СУЬ, а так как Q часто имеет вид произведения элементарных ортогональных преобразований, то решение, как правило, можно выполнить эффективным образом, не прибегая к явному вычислению Q. 3. Ai есть невырожденная диагональная матрица D, da, == = di =7^ 0, t = 1, ..., n, da =0, i =7^ /. Решением Dx = Ь является Xi = bi/di, i'=l, ..., п. Матрица D хранится в виде вектора. 4. Ai—невырожденная блочно-диагональная матрица Da, у которой на главной диагонали находятся обратимые блоки размера 1 X 1 или 2Х2, а вне блоков стоят нули, например, Г л х 0 ^ V .V /)„=| X .V 3- 68 Гл. 3. Основы вычислительной линейной алгебры Решение ОвХ==Ь находится решением соответствующих линей- ных систем порядка 1Х1 и 2 X 2. 5. Ai есть невырожденная нижняя треугольная матрица L, /,^ ^ О, i == 1, ..., п, lij ==0, 1 ^ i < / ^ п. Схематично она вы- глядит так: L= ^ о XXX х х х х Если /1|; = 1, i == 1, ..., /г, то L называется нижней треугольной с единичными диагональными элементами. Система Lx = Ь ре- шается прямой подстановкой: используя первое уравнение, найти х\, потом, подставив его во второе уравнение, найти х^, затем, подставив их в третье уравнение, найти Хз и т. д. 6. Ai есть невырожденная верхняя треугольная матрица, обо- значаемая как U или 7?. Она является транспонированной к нижней треугольной матрице. Система Vx=b решается обрат- ной постановкой с использованием уравнения от п-го до 1-го для нахождения в том же порядке неизвестных от Хп до х\. Таблица 3.2.1. Арифметическая трудоемкость (главные члены) решения линейных систем Матрица Умножения и деления Сложения и вычитания Q я2 п2 D п. Ов < 5 я/2 <n L или U ^/2 ra'/a В табл. 3.2.1 приведена арифметическая трудоемкость') ре- шения линейных систем, задаваемых матрицами перечисленных выше типов. Во всех этих случаях она мала по сравнению с тру- доемкостью разложения матриц. Отметим, что решение Рх==Ь предполагает лишь п операций присваивания. Нас будет интересовать разложение матриц трех типов: об- щего вида, симметричных и симметричных положительно опре- деленных. Матрица А е R"x" симметрична, если Л==Л7'. Мат- рица Л положительно определена, если vтAv ~> 0 для всех не- нулевых v e R"; в случае симметричности это эквивалентно условию, что все ее собственные значения положительны. ') Под арифметической трудоемкостью понимается количество арифме- тических операций. — Прим. через. 3.2. Решение систем линейных уравнений 69 Важное значение имеют PLU- и Q^-разложения квадратных матриц общего вида. /^[/-разложение имеет вид A==P-L-U или PTA==LU, где Р—матрица перестановок, L—нижняя тре- угольная матрица с единичными диагональными элементами, U—верхняя треугольная матрица. Это разложение находится с помощью исключения Гаусса с частичным выбором ведущего элемента или преобразования Дулитла, где для преобразова- ния Л в U и одновременно для получения разложения исполь- зуются стандартные операции над строками (что эквивалентно умножению слева Л на L-'P-1). Далее, QR- или QRP-разложе- ние, где Л = QRP, Q — ортогональная, R — верхняя треугольная матрица, Р—матрица перестановок, получается в результате преобразования Л в R умножением слева на последовательность из п—1 ортогональных матриц Qi. Каждая матрица Q, обну- ляет элементы г-го столбца, матрицы Qi-r ... -QiA, лежащие ниже главной диагонали, и вместе с тем оставляет неизменными первые i— 1 столбцов. Матрица Q; называется преобразованием Хаусхолдера и имеет вид Q,=/-«,uT, где (и,,),==0, /==1, ..., i—1, а остальные элементы вектора щ выбираются так, чтобы Q; была ортогональной и приводила к появлению требуемых нулей в ;'-м столбце. Матрица перестано- вок, которая в действительности не всегда используется, форми- руется из перестановок столбцов, необходимых для перемеще- ния на г-й итерации столбца с наибольшим значением суммы квадратов его элементов, лежащих ниже (t—1)-й строки, на место f-го столбца. Преимущество Q^-разложения состоит в том, что, поскольку mb-IIQ^Ib-ll-W^IIAllz, при формировании R оно не приведет к существенному увели- чению в целом элементов преобразуемой матрицы Л. Это делает его численно очень устойчивым и служит одной из причин, по которой преобразование Хаусхолдера и другие ортогональные преобразования играют важную роль в вычислительной линей- ной алгебре» С другой стороны, PLU-разложение является, как правило, довольно точным, а его трудоемкость составляет поло- вину трудоемкости Q^-разложения, так что на практике исполь- зуются оба разложения. В алгоритмах секущих будет использо- вано Q^-разложение без перестановок столбцов, поскольку после внесенных в матрицу изменений малого ранга это разложение пересчитывается с меньшими затратами, чем Рг.(7-разложение. Исходя из соображений реализации, которые изложены в разд. 6.5, мы на самом деле рекомендуем использовать QR-алго- ритм во всех алгоритмах решения систем нелинейных уравне- 70 Гл. 3. Основы вычислительной линейной алгебры ний с плотно заполненными матрицами. Алгоритм Q^-разложе- ния представлен в приложении алгоритмом A3.2.1. Если матрица Л симметрична и положительно определена, то более эффективным алгоритмом оказывается разложение Хо- лесского, в котором A=LL7', L—нижняя треугольная матрица. Матрицу L легко найти, выписав (n2+n)/2 уравнений, выра- жающих значение каждого элемента нижнего треугольника мат- рицы Л через элементы матрицы L: u'U=(Al)2, ^21 ==Al • ^21. an\ = l\\lnb a22=(l2^+(l22)2, ^ = ^21^31 4- ^22^32> an2 == ts^nl Т" ^22^га2> йзз^з^+^+^з)2, Они решаются в той же последовательности относительно /ц, li\, ..., ln\, /22, ^32, ..., ln2, 1зз, ..., //is, •••, причем для нахож- дения /„• используется уравнение для ац. Этот алгоритм числен- но очень устойчив. В нем требуется п извлечений квадратного корня для получения диагональных элементов ///, / == 1, ..., п.; причем все подкоренные выражения положительны тогда и только тогда, когда А положительно определена. Иногда разло- жение представляется в виде Л = LDL7', где матрицы: L — ниж- няя треугольная с единичными диагональными элементами, D — диагональная с положительными диагональными элементами. Эта форма разложения не требует никакого извлечения квад- ратных корней. Алгоритм разложения Холесского является спе- циальным случаем алгоритма А5.5.2, приведенного в прило- жении. Если Л симметрична, но не является знакоопределенной, т.е. Л имеет положительные и отрицательные собственные значения, то Л можно эффективным образом разложить на множители PLDвLTPT, где Р—матрица перестановок, L—нижняя треуголь- ная матрица с единичными диагональными элементами, Ов — блочно-диагональная матрица с блоками размеров 1Х1 и 2Х 2. Дополнительные сведения по этому разложению имеются в ра- боте Банча и Парлетта (1971). Асен (1973) привел вариант, 3.3. Погрешности при решении линейных систем 71 в котором Ов заменено на трехдиагональную матрицу Т. Под- робности см. в книге Голуба и Ван Лоана (1983). Детальное обсуждение PLU-, QR- и /-гУ-разложений можно посмотреть в книгах Стюарта (1973) или Донгарры и др. (1979). Арифметическая трудоемкость всех разложений отличается от п3 небольшим множителем. Она приведена в табл. 3.2.2. Таблица 3.2.2. Арифметическая трудоемкость (главные члены) разложения матриц Разложение Умножения и деления Сложения и вычитания A=PLU A==QR A^LL^, LDL'1' Л = PLD^P^ Л = PLTW п-чг 27lз/3 гаэ/б п^б газ/б В гл. 11 кратко обсуждаются нелинейные задачи, которые приводят к разреженным линейным системам, где большинство матричных элементов нулевые. При их решении следует поль- зоваться специальными подпрограммами, предназначенными для решения разреженных матричных задач. Здесь уместно упомянуть широко доступные харвелловский и йельский пакеты программ. 3.3. ПОГРЕШНОСТИ ПРИ РЕШЕНИИ ЛИНЕЙНЫХ СИСТЕМ На итерации нелинейного алгоритма будет использовано реше- ние s линейной системы AcS=—F(xc) для определения шага или направления в точку следующего приближенного решения х+. Поэтому важно знать, насколько сильно вычисленный шаг может быть подвержен влиянию используемой арифметики ко- нечной точности. Кроме того, поскольку Ас и F{Xc) иногда сами по себе являются аппроксимациями величин, которые в дей- ствительности хотелось бы использовать, то интересно, какова чувствительность вычисленного шага к изменениям в данных, определяющих Ас и F(Xc). Эти вопросы обсуждаются в настоя- щем разделе. Рассмотрим две линейные системы: А^х = Ьц: 8 -5 4 ЮЛ. л:2 - 0.66 3.34 1.99 10.01 - 3 14 ш-п JLnJ LuJ' 1Г'1=[ '1 J L x,\ L 12 J • 72 Гл. 3. Основы вычислительной линейной алгебри Обе имеют решение (1, I)7'. Если заменить Ь\ на &i —(0.04, 0.06)", что соответствует 0.43-процентному относительному изменению Ъ\ в /2-норме, то новое решение первой системы станет равным (0.993, 0.9968)т, а относительное изменение х в /з-норме соста- вит 0.51 %. Однако если изменить Ьч на ту же самую величину (—0.04, —0.06)г, что отвечает 0,55-процентному относительному изменению, то новое решение второй системы будет равно (6, О)7. Относительное изменение х здесь огромной равно 324 %. Аналогично, замена первого столбца в Л а на (0.75, 2.00)7" также приводит к тому, что х становится равным (6,0)г. Очевидно, что вторая система очень чувствительна к изменениям в ее дан- ных. Естественно спросить, почему? Графическое представление двух ее уравнений показывает, что они представляют собой две почти параллельные прямые, так что малое смещение какой- либо одной из них существенно меняет точку их пересечения. С другой стороны, первая система соответствует прямым, пере- секающимся примерно под углом в 80°, так что смещение лю- бой прямой вызывает аналогичное смещение точки их пересе- чения (рис. 3.3.1). Линейные системы, чьи решения очень чувствительны к из- менениям данных в этих системах, называются плохо обуслов- ленными, и нам нужен способ распознавания таких систем. Лег- ко показать, что плохую обусловленность может выявить ана- лиз матрицы системы. Рассмотрим систему Ах = Ь с невырож- денной матрицей А и попробуем найти относительное изменение решения лс„ соответствующее заданному относительному изме- нению Ь или Л. Если изменить Ь на А6, то новое решение можно представить как х^ + Лл:, где Л (х, + Ал:) == Ь + Ай == Ах, + А&, так что , . Л • &х = А&. Таким образом, в любой векторной норме щей индуцированной матричной норме II Ал: || < || Л-' и соответствую- Уравнения А^--Ь, Уравнения A^-f3/'; Рис. 3.3.1. 3.3. Погрешности при решении линейных систем 73 Кроме того, из Ллс* = Ь имеем 1 II А II 11611 ' так что ЦЛ^Н ^ „ л „ 1| л-iцЦДй11 ^^||Л||.||Л || ^ . Аналогично, если изменить Л на АЛ, полагая (Л+ЛЛ).у==6 и х=х^+^х, то (Л+АЛ)(л:.+А-С)=6, что дает Л Ах = — АЛ • х, || Ах || < Ц Л-1 Ц -ЦДЛ II •II ^11, IIA-eil <||лц1|л -'Ц^ 11^11 Pit ^i^ll-"71 " или • В обоих случаях относительное изменение х ограничено от- носительным изменением данных, умноженным на ||Л||-ЦЛ-Ч!. Эта величина известна как число обусловленности матрицы Л. Оно обозначается в случае использования индуцированной мат- ричной /р-нормы через Хр(Л). В любой индуцированной матрич- ной норме число обусловленности представляет собой отноше- ние максимального и минимального растяжений, вызываемых матрицей Л (см. равенства (3.1.7) и (3.1.18)), и, таким обра- зом, оно больше или равно 1. В наших примерах к\(А\}== =(15) (0.14)== 2.1 и xi(A2)= (13.35) (300) ==4005, т. е. вторая система гораздо более чувствительна к изменениям в данных, чем первая. Так как минимальное растяжение, вызываемое вы- рожденной матрицей, равно нулю, то число обусловленности вырожденной матрицы можно считать бесконечным. Поэтому число обусловленности невырожденной матрицы служит сте- пенью близости матрицы к вырожденности. Оно обладает тем привлекательным свойством, что остается неизменным при мас- штабировании матрицы умножением на скаляр, поскольку и(ссЛ)==х(Л) для любого ненулевого cxs R и любой матричной нормы. Число обусловленности является также мерой чувствитель- ности решения системы Ах == Ь по отношению к арифметике конечной точности. Когда линейная система решается на вычис- лительной машине, полученное решение, как можно показать, есть точное решение некоторой возмущенной системы (Л + +ЛЛ)л:==6. Этот метод анализа часто называют обратным анализом ошибок по Уилкинсону, а источником служит книга Уилкинсона (1965). Можно показать, что для некоторых из рас- сматриваемых в разд. 3.2 методов величина ||ЛЛ||/||Л|| огранн- 74 Гл. 3. Основы вычислительной линейной алгебры чена сверху константой, умноженной на машинный эпсилон, при- чем на практике это почти всегда верно для всех из них. По- этому относительная ошибка решения, полученного с конечной точностью, ограничена сверху константой, умноженной на (и(Л) -macheps). Таким образом, число обусловленности матрицы Л оказы- вается полезной величиной при оценке сверху того, насколько чувствительным будет решение системы Ах = Ь как к неточно- стям данных, так и к влиянию арифметики конечной точности. Если в этом смысле Л почти вырождена, то можно ожидать труд- ностей при решении Ах = Ь. Поэтому в случае плохо обуслов- ленных линейных систем мы будем настороже при извлечении информации из наших моделей, поскольку, как бы ни были просты и точны модели, решение модельной задачи, чувстви- тельное к малым изменениям, имеет, разумеется, ограниченное применение в качестве приближения к решению нелинейной за- дачи. Если плохая обусловленность встречается вдали от реше- ния нелинейной задачи, т. е. там, где модель никак нельзя счи- тать очень точной, то обычно мы просто возмущаем линейную систему с целью улучшения ее обусловленности и продолжаем дальше. Если плохо обусловленные системы встречаются вблизи от решения, где модель, по-видимому, является хорошей'), то это означает, что решение нелинейной задачи само по себе очень чувствительно к малым изменениям в данных (рис. 3.3.2). Это может означать, что исходная задача плохо поставлена. Нужно, наконец, обсудить то, каким образом мы будем опре- делять на практике, достаточно ли линейная система (3.2.1) плохо обусловлена, чтобы следовало избегать ее решения. Со- Плохо обусловленная система двух нелинейных уравнении с двумя неизвестными Линейная модель этой системы в близкой к л» точке (плохо обусловленная система линейных уравнений) Рис. 3.3.2. Соответствие между плохой обусловленностью линейной и нелинейной систем уравнений. ') Под «хорошей» понимается модель, которая хорошо аппроксимирует поведение нелинейной задачи. — Прим. через. 3.3. Погрешности при решении линейных систем 75 гласно анализу, проведенному Уилкинсоном (1965), если х(Л)д^ ~^s (macheps)-i, то, вероятно, вычисленное для (3.2.1) решение будет совершенно ненадежным. На самом деле обычно считают, что если к(А) > (macheps)-172, то вычисленное для (3.2.1) реше- ние вряд ли заслуживает доверия. Наши алгоритмы будут про- верять такое условие, и затем возмущением плохо обусловлен- ных моделей получать модели с улучшенным1) поведением. Проблема состоит в том, что вычисление х(Л) включает в себя нахождение ||Л-Ч|, а это не только может быть ненадеж- ным, но и редко когда оправдывает затраты. Поэтому все, что здесь делается, сводится к оценке и (Л) вида condesf = i| M || • invest, где М есть либо Л, либо множитель разложения Л, имеющий вероятнее всего такую же, как у Л, обусловленность, a invest есть оценка для ЦЛ1-Ч1. Для наших приложений понадобится оценить число обусловленности матрицы Л, разложенной в про- изведение Q-R. Нетрудным упражнением будет показать, что в этом случае -^(ЛХх^х/^и). Поэтому мы оцениваем K\(R), так как /i-норма матрицы легко вычисляется. Используемый нами алгоритм является конкрет- ным примером из класса оценок числа обусловленности, пред- ложенных Клайном, Моулером, Стюартом и Уилкинсоном (1979). Он представлен в приложении А алгоритмом A3.3.1. Алгоритм сначала вычисляет \\R\\i. Используемый затем спо- соб оценки ЦТ?"'!]! основывается на неравенстве 'R- 1|2||| справедливом при любом ненулевом г. Алгоритм выбирает г в результате решения Rтzz=e, где е есть вектор, состоящий из единиц с разными знаками, подобранными так, чтобы последо- вательно максимизировались значения zi, ..., Zn. Затем в нем решается Ry == z и выдается значение condest = \\R\\i (llyl|i/||z||i). Хотя гарантируется, что отношение ||t/||i/||z||i будет оценкой снизу для Ц^"'!!!, на практике оно довольно близко к послед- нему. Одно из объяснений этому основано на том, что процесс получения у связан с обратным степенным методом, предназна- ченным для нахождения наибольшего собственного значения матрицы (RTR)~}. Другое объяснение таково, что алгоритм, как ') Улучшенной будет обусловленность модели, но при этом ее способ- ность аппроксимировать нелинейную задачу может ухудшиться (см. преды- дущее примечание). — Прим. перев. 76 Гл. 3. Основы вычислительной линейной алгебры оказывается, способен ловко выделять какой-либо из больших элементов матрицы R~1. Читателям, желающим упрочить свое интуитивное понимание этого вопроса, настоятельно советуем проработать пример, приведенный в упр. 19. 3.4. ФОРМУЛЫ ПЕРЕСЧЕТА МАТРИЧНЫХ РАЗЛОЖЕНИЙ Позже в книге будут рассмотрены многомерные обобщения ме- тода секущих, в которых последовательные производные соот- ветствующих моделей Ас, Л+ s R^" связаны между собой осо- бенно просто. В этом разделе мы увидим, как использовать два наиболее важных соотношения между Ас и Л+ для уменьшения затрат на получение разложений матриц А+ на основе разло- жения матрицы Ас. В частности, мы хотели бы вникнуть прежде всего в неко- торые детали задачи о нахождении разложения Q+R+ матрицы ^^^Ч-"^, (3.4.1) где и, u e R". Здесь Ас есть некоторая невырожденная матрица общего вида, для которой уже имеется разложение QcRc- Идея алгоритма несложна. Для w=QгcU запишем А+ == QcRc + ""г - Qc (Re + ^т), а затем построим Q^-разложение Rc+wv^QR. (3.4.2) Тогда R+ == Я и Q+ == QcQ. Выгода здесь состоит в том, что Q^-разложение матрицы Re + V!)vт стоит намного дешевле, чем те 5nз/3 операций, которые мы вынуждены были бы потратить на получение Q+R+, если бы не воспользовались предыдущим разложением. Средством, необходимым для получения разложения (3.4.2), является ортогональное преобразование, называемое вращением Якоби. Оно по сути представляет собой двумерное вращение, матрица которого содержится в матрице порядка п. Вращение Якоби используется для обнуления одного элемента матрицы, при этом изменяются только две строки матрицы. Матрица вра- щения в двумерном пространстве и матрица вращения Якоби порядка п определены ниже. Их свойства, имеющие важное значение, приведены в лемме 3.4.2. Определение 3.4.1. Матрицей вращения в двумерном про- странстве называется матрица /?((p)s R2^ вида [cos ф — sin (p 1 /?(<р)= . , (pe=R, — sincp cosqpJ • 3.4. Формулы пересчета матричных разложений 77 или в эквивалентной записи '«-• "--Йт^ ^ -•^ M+IIWO. Матрица вращения Якоби J{i, j, ос, р)е R"><" такова, что 1 <i<j<n, a, f3<=R, lal+IPl.^O. [J {i, J, <x, P)]« = U 0"> 1, "> P)]// == -T^F == "' -U(i, -i, ", W{i=V(i, 1, », М/^-Т^Г^' [/ (i, J, ", P)b == 1, 1 ^ k < n, k^i, k Ф j, а остальные элементы равны нулю. Она схематично выглядит так: /,-й столбец 1 J-Й столбец i « -р 1 О 1 -1-я строка -J-я строка Лемма 3.4.2. Пусть п>2, и обозначения /?(<р), R(a, Р), / (г, /", а, р) имеют прежний смысл. Тогда: (a) для всех ф s R и ненулевых v e R2 матрица R (qp) орто- гональна, а преобразование R (ф)•v поворачивает v на угол (р против часовой стрелки; кроме того, R (v^, v^ • v == (0, || о У2' и R ("I, - Уз) • " = (II ° llz. О)7'; (b) для всех целых i, /<=[1,/г], i <!, и а, Р е R, где lal+IPI^O, матрица J (i, j, а, ?) ортогональна. Если М+ = ==/(;, J, а, Р)-М, Мер""", то (Л1+)д.= (М)„. для 1<&</г, k ^ i и k ^= j; кроме того, каждая из строк матрицы М+ с номерами i и /' является линейной комбинацией г-й и /-и строк матрицы М; 78 Гл. 3. Основы вычислительной линейной алгебры (с) если Мц • Мц ^ 0, то [/ (i, j, Мц, Мц) • М]ц == 0 и [/(г, ],Мц,-Мц)-М}ц=0. При пересчете Q^-разложения матрицы Ас в (^-разложе- ние матрицы Л+ == QcRc + uv7' используются вращения Якоби т т т ''" "s-- для разложения Rc-\-QcUV =RcJг1S}u в произведение QR следующим образом. Сначала п—1 раз применяется враще- ние Якоби для последовательного обнуления строк матрицы wu7 с номерами п, п—1, ..., 2. Здесь для обнуления t-й стро- ки комбинируются строки с номерами i и i—1. В результате каждого вращения изменяются некоторые из имеющихся эле- ментов матрицы Re и вводится один новый элемент непосред- ственно под диагональю в позиции (t, i—1). Таким образом, п—1 вращении приводят Re + v^v1 к верхнему треугольному виду с дополнительной диагональю ниже главной. Это есть так называемая верхняя матрица Хессенберга. Далее опять приме- няется п—1 вращении Якоби, но уже для того, чтобы после- довательно обнулить (г, i—1)-е элементы, i = 2, 3, ..., п, комбинируя строки с номерами i— 1 и i. В результате появ- ляется верхняя треугольная матрица S, такая, что Re + wv7 = == QR, где (Q)7' есть произведение In—I вращении. Читатель может убедиться, что полный процесс пересчета Q^-разложения требует только О (га2) операций. Получение матрицы Q+=QcQ, которая хранится до следующего шага, яв- ляется наиболее трудоемкой частью разложения. Что касается другого важного специального соотношения между Ас и Л+, то, как сейчас будет видно, для него Q+ оказывается ненужным. При использовании локальных квадратичных моделей для решения задач безусловной минимизации мы предпочитаем, чтобы гессианы квадратичных моделей, т. е. матрицы их вто- рых производных из R^", были симметричными и положитель- но определенными. Мы найдем исключительно целесообразным выбирать гессиан модели Л+ так, чтобы он обладал указан- ными свойствами, если ими обладает гессиан Ас текущей мо- дели. Более того, получение Л+ из Ас наводит на серьезные раз- мышления. Дело в том, что если LcLc есть разложение Хо- лесского для Ас, то Л+==/+/^, где /^ = .4 + vu7'. Но это прямо говорит нам, как получать разложение Холес- ского A+=L+LT+. Для получения разложения Q+R+ матрицы J^^L^+uv7 из Q^-разложения QcRc=I•LT: матрицы /J просто применим 3.5. Собственные значения 79 описанный выше способ. Тогда непосредственно получим Л+ = J+f+ = RT+QT+Q+R+ = R^ •• Процесс пересчета также требует О (га2) операций. В этом кон- кретном случае нам не нужно затрачивать га2 операций на формирование ОУ = Qif», поскольку Qc = I, а также нет необхо- димости строить Q+, так как нам нужно всего лишь R+ == L+. Этот алгоритм полностью содержится в алгоритме A3.4.1 при- ложения. Альтернативой Q^-разложению и обсуждаемым в этом раз- деле формулам пересчета является подход, предложенный Гил- лом, Голубом, Мюрреем и Сондерсом (1974). Он заключается в использовании разложения A==LDV, где L есть нижняя треугольная матрица с единичными диагональными элемен- тами, D—диагональная матрица, а строки матрицы V обра- зуют ортогональный базис в R", но не обязательно ортонорми- рованный. В этом случае VV7 == D представляет собой диаго- нальную матрицу. Вычисление L+D+V+ == LcDcVc + uv'1', где y,u^R", обходится немного дешевле, чем описанный выше пересчет (ЗД-разложения. В случае симметричных положитель- но определенных матриц это соответствует выполнению г-1)1/-разложения последовательно для матриц {Л&}. Эти ал- горитмы собраны в работе Гольдфарба (1976). Последовательное разложение симметричных незнакоопре- деленных матриц широко исследовалось Соренсеном (1977), и его до некоторой степени сложный алгоритм представляется вполне удовлетворительным. Матрицы перестановок состав- ляют основной источник затруднений. В частности, по этой при- чине не известен алгоритм пересчета РИУ-разложения матри- цы Ас в разложение P+L+U+ матрицы Л+ == Л с + и-у7, который был бы удовлетворительным с рассматриваемой точки зрения. 3.5. СОБСТВЕННЫЕ ЗНАЧЕНИЯ И ПОЛОЖИТЕЛЬНАЯ ОПРЕДЕЛЕННОСТЬ В этом разделе формулируются свойства собственных значений и собственных векторов, которые использовались или будут да- лее использованы в тексте. Приводятся также определения по- ложительно определенных, отрицательно определенных, незна- коопределенных симметричных матриц и их отличительные признаки в терминах собственных значений. Эти признаки дают представление о пространственной форме многомерных квадра- тичных моделей, введенных в гл. 4 и используемых в даль- нейшем. 80 Гл. 3. Основы вычислительной линейной алгебры Большинство теорем приводится без доказательств. Дока- зательства можно найти в работах, ссылки на которые име- ются в начале этой главы. Определение 3.5.1. Пусть А е Rnxn. Собственными значе- ниями и собственными векторами матрицы Л называются со- ответственно действительные или комплексные скаляры К и я-мерные векторы у, такие, что Аи = Kv и о •=/= 0. Определение 3.5.2. Пусть А е R"^ симметрична. Будем го- ворить, что Л положительно определена, если uтAv > 0 для каждого ненулевого oeR". Будем говорить, что Л положи- тельно полуопределена, если vтAv ^ 0 для всех v <= R". Будем говорить, что Л отрицательно определена или отрицательно по- луопределена, если —Л положительно определена или поло- жительно полуопределена соответственно. Будем говорить, что Л незнакоопределена, если она не является ни положительно полуопределенной, ни отрицательно полуопределенной. Теорема 3.5.3. Пусть Л <=: R"^ симметрична. Тогда она имеет п действительных собственных значений А,ь ..., ^„ и та- кое множество соответствующих им собственных векторов У], ..., Vn, которое образует ортогональный базис в R". Теорема 3.5.4. Пусть Л е R"^ симметрична. Тогда матри- ца Л положительно определена в том и только том случае, ко- гда все ее собственные значения положительны. Доказательство. Пусть для Л собственными значениями яв- ляются ^\, ..., 'kn, а соответствующие им ортонормированные собственные векторы равны оь ..., Vn- Предположим, что К, ^ 0 для некоторого /'. Тогда v^Av, == ^(\У/) == '^.V'v. == К, ^ О, что указывает на отсутствие положительной определенности Л. Предположим теперь, что каждое Ki положительно. Поскольку {и,} образует базис в R", то любой ненулевой v e R" можно представить как п v=^o,iVi, С-1 где хотя бы одно ai ненулевое. Тогда vTAv = Z Z ^.".a/ofo/ == Z ^,"2 > О г-i /=i ' г ' ' I г=1 ' • благодаря ортонормированности векторов У,. Таким образом, Л положительно определена. D 3.5. Собственные значения 81 Теорема 3.5.5. Пусть Л е R"^" симметрична. Тогда Л поло- жительно полуопределена в том и только том случае, когда все ее собственные значения неотрицательны. Матрица Л отрица- тельно определена или отрицательно полуопределена тогда и только тогда, когда все ее собственные значения соответственно отрицательны или неположительны. Матрица Л является незна- коопределенной тогда и только тогда, когда у нее имеются как положительные, так и отрицательные собственные значения. Следующие определения и теоремы понадобятся в разд. 5.5. Теорема 3.5.6. Пусть Л s R^" симметрична и имеет соб- ственные значения ^,1, ..., Кп. Тогда |Л||2= max \Ki\. 1<f<ra Если Л не вырождена, то "•2 \^Ч — mmГ > I ' m "1</<nl "/ I Теорема 3.5.7. Пусть Л <=. R^" имеет собственное значе- ние X». Тогда ^г 4- се будет собственным значением для Л + ос/ при любом действительном а. Определение 3.5.8. Пусть Л е R^" симметрична. Будем го- БЫ ворить, что Л является матрицей со строго доминирующей диа- гональю, если п a-ii— Z |а</1>о /^=1 для всех f== 1, ..., п. Теорема 3.5.9 (Гершгорин). Пусть Л е R"^ симметрична и имеет собственные значения ^i, ..., \п- Тогда Г "Ч lin ^а„ - S |а</1^ <<п /-1 1 1 l^i ) ( "1 < Oftfe + Z Iaki I ^. <- /^fe -' min ^г ^ min ^ац — z.i |а</1 !«<" 1<<<п ( /-1 max Kk < niax ^ а^ + 2-, 1 ^/1 1 <ft<n 1<ft<n I /-1 '- !^k Следствие 3.5.10. Если Л является матрицей со строго до- минирующей диагональю, то Л положительно определена. 82 Гл. 3. Основы вычислительной линейной алгебры 3.6. ЛИНЕЙНАЯ ЗАДАЧА О НАИМЕНЬШИХ КВАДРАТАХ Заключительной из рассматриваемых тем по линейной алгебре будет линейная задача о наименьших квадратах: заданы Л е R'" х ", т > п, b e= R"1, min II Ax — b На, (3.6.1) JCSR" которая является частным случаем нелинейной задачи о наи- меньших квадратах: заданы /-, {х}: R"->R, г'=1, ..., т, т min Е ri (х)2 деР"1"! при ri(x)==(di.)x—bi, где i=\, ..., tn. Основанием для изу- чения задачи (3.6.1) служит то, что часто необходимо решать ее как подзадачу нелинейной задачи о наименьших квадратах и, кроме того, понимание этой линейной задачи способствует лучшему пониманию ее нелинейного аналога. В связи с изуче- нием линейной задачи о наименьших квадратах вводится по- нятие сингулярного разложения, представляющего собой мощ- ное средство вычислительной линейной алгебры, которое ока- зывается полезным во многих ситуациях. К линейным задачам о наименьших квадратах обычно при- водит желание наилучшим образом приблизить набор из т то- чек-данных (/;, г/;) с помощью функции f(x,t), которая явля- ется линейной относительно ее п свободных параметров Рис. 3.6.1. Пример линейной задачи о наименьших квадратах. 3.6. Линейная задача о наименьших квадратах 83 л'1, ..., Хп. Предположим, например, что желательно прибли- зить три пары (1,2), (2,3), (3,5) с помощью функции f(x,t)= == x\t + X2et (рис. 3.6.1). Для точного совпадения f{x,ti)==y„ ( == 1, 2, 3, потребовалось бы выполнение равенства Ax = Ь, где [1 е 2 е2 3 е3. [3 5J Г2"! ^i Л= (3.6.2) Так как система уравнений Ax =b является переопределенной, то, не предполагая решать ее в обычном смысле, мы вместо этого выбираем х, которое минимизирует некоторую меру ве- личины вектора невязок Ах—Ь. В (3.6.1) /з-норма выбрана потому, что получающаяся в результате этого задача обладает хорошими с математической точки зрения свойствами и, кроме того, имеет статистическое обоснование. Отметим, что нахождение решения рассматриваемого при- мера задачи (3.6.1) эквивалентно поиску ответа на вопрос: «Какая из линейных комбинаций векторов (1, 2, 3)1' и (е.е2^3)7 оказывается ближе всего в /2-норме к (2,3, б)7?». В общем случае можно переформулировать задачу (3.6.1) так: «Найти линейную комбинацию столбцов а.\, ..., а.п матрицы Л, ближайшую к 6 в /2-норме». Геометрически это означает на- хождение такой точки в п-мерном подпространстве С (Л), на- тянутом на столбцы матрицы Л, которая находится ближе всего к вектору b в евклидовой норме (рис. 3.6.2). Такая ин- терпретация приводит к простому решению линейной задачи о наименьших квадратах. Известно, что ближайшей к b в С (Л) будет точка Лл-„(= ^С(Л), такая, что Ах^—Ь ортогонален ко всему подпростран- ству С (Л). Таким образом, х„ должно удовлетворять ра- венствам [алУ{Ах^— Ь) =0, i = 1, ..., п, что эквивалентно AT(Ax^—й)==0. Ясно, что Ах^ единственно, и если столбцы матрицы Л линейно независимы, то значение х», которое дает точку Лх», также единственно и является решением невырож- Рис. 3.6.2. Решение линейной задачи о наименьших квадратах. 84 Гл. 3. Основы вычислительной линейной алгебры денной системы уравнений {ATA)x,==Aтb. (3.6.3) Эти сведения резюмируются в теореме 3.6.1, а ее формаль- ное доказательство оставлено в качестве простого упражнения. Теорема 3.6.1. Пусть m $г /г > 0, AsR»^", Ь <== R'". Тогда решение задачи min || Ax — Ь На ^eR" представляет собой множество точек {х»: AT(Ax^—Ь)==0}. Если столбцы матрицы Л линейно независимы, то х» един- ственно, ATA не вырождена и ;с„ == (Л^Л)-^^. Уравнения (3.6.3) известны как нормальные уравнения. Хотя они и однозначно определяют х^ в случае, когда Л пол- ного столбцового ранга, но не всегда указывают путь, по ко- торому следует идти при вычислении х». Это объясняется тем, что формирование матрицы ATA может привести к антипере- полнению и переполнению, а также к возведению в квадрат числа обусловленности задачи по сравнению с методами, ко- торые непосредственно используют Л. Если Л имеет полный столбцовый ранг, то можно воспользоваться Q^-разложением матрицы Л, п m "» п m А ——l г^—11 m Q m о\}^ _J | о R где ортогональная матрица Q^Rmxm и верхняя треугольная матрица RGRmxn получаются тем же способом, что при Q/р-разложении квадратной матрицы. Это разложение обеспе- чивает численно устойчивую ортогонализацию столбцов мат- рицы Л. Следующая теорема показывает, как применять (3.6.4) для решения (3.6.1). Теорема 3.6.2. Пусть т sSs п > 0, b^R'", и матрица Л-_ е R'"x" имеет полный столбцовый ранг. Тогда существует раз- ложение Л == QR вида (3.6.4), где тпХ /га-матрица Q ортого- нальна, R^Rmxrl есть верхняя треугольная матрица, и Ru, об- разованная первыми п строками матрицы R, представляет со- бой невырожденную верхнюю треугольную матрицу. Единствен- ным решением задачи (3.6.1) является ^.=/?«'(QH, (3.6.4) 3.6. Линейная задача о наименьших квадратах 85 где (Q^L^aQ^i, ..., (Q^nf. Минимум \\Ах-Ь^ равен т .I:,[(QW. Доказательство. Существование Q^-разложения матрицы Л вытекает из возможности его получения преобразованиями Ха- усхолдера, а невырожденность Ru следует из того, что Л имеет полный столбцовый ранг. Используя (3.1.23), получаем I! Ах - Ь Иг = || QRx - Ь 1Ь == || Rx - <УЬ Из, так что (3.6.1) может быть переписано в виде min \\Рх-<УЬ\\,. х^к" Тогда, если (Q^h -((Q^L+i, ..., {<УЬ}пУ, имеем || Rx - Q^ II;; = || R,x - (Q^ |g + В (Q% t. Ясно, что это выражение принимает наименьшее значение при x=Rul(Qтb^. О Если Л не имеет полного ранга, то существует целое мно- жество решений х задачи (3.6.1). Поэтому в задачу можно вне- сти дополнительное требование найти наименьшее в /г-норме из этих решений: заданы Л <= R"1 х ", 6 е R'", min {II х Ib: || Ax - b Hz < || Ax - Ь Ik ^fx e R"}. (3.6.5) xeR" Задача (3.6.5) представляет интерес независимо от того, боль- ше, равно или меньше т, чем п. Она может быть решена во всех перечисленных случаях с использованием сингулярного разложения (SVD1)) матрицы Л. Это более трудоемкое разло- жение матрицы на множители, нежели обсуждавшиеся до сих пор разложения, но как средство оно более мощное. Определе- ние SVD приводится ниже. Характерные свойства множителей этого разложения приведены в теореме 3.6.4. Теорема 3.6.5 по- казывает, как использовать SVD для решения задачи (3.6.5). Определение 3.6.3. Пусть Л <=. К'"х" и k •==тт{т,п}. Син- гулярным разложением матрицы Л называется разложение вида Л == UDV7', где U e R'7^"1 и V е R"^" есть ортогональные матрицы, a DsR"^" имеет вид da == CT( ^ 0, t=l, ..., k, di, = 0, i=j^j. Величины о\, ..., Gk называются сингулярными числами матрицы Л. ') SVD—аббревиатура singular value decomposition.—Прим. перед. 86 Гл. 3. Основы вычислительной линейной алгебры Заметим, что U используется для обозначения ортогональ- ной матрицы, несмотря на то что в разд. 3.3 та же буква ис- пользовалась для нижних треугольных матриц. Это прочно укоренившееся обозначение не должно запутать внимательного читателя. Кроме того, использование обозначений U и V тра- диционно для матриц, столбцы которых представляют собой собственные векторы, и следующая теорема демонстрирует это. Теорема 3.6.4. Пусть Л s R"^". Тогда для А существует SVD, в котором диагональные элементы Стг матрицы D есть не- отрицательные квадратные корни из собственных значений матрицы АА7, если т ^ п, или матрицы ArA, если т^-п, а столбцами матриц U и V являются собственные векторы мат- риц ЛЛ7' и ATA соответственно. Количество ненулевых сингу- лярных чисел равно рангу матрицы Л. Доказательство. Доказательство существования SVD можно найти в работах, цитированных в начале главы. Так как AAT=UDDTUT и ATA=--VDTDVT, имеем (ЛЛО • U == U • (DD7'), (ATA)V==V(DTD). Таким образом, если и,, и v.j есть соответ- ствующие /-е столбцы в U и V, то {АА7') и.г == К,и.,, j = 1, ..., m, (ATA)v.^=^^v.^, j=l, .... п, где К, представляют собой диагональные элементы матриц DD1' и DTD, причем X/== (ст/)2, /==1, .... min {/га, п}, и ^ == О, j == == min{/n, ra}+ 1, ..., max{m,n}. Поскольку умножение матри- цы на невырожденную матрицу не изменяет ее ранга, то rank (Л) == rank(Z)), и это равно количеству ненулевых ст/. D Теорема 3.6.5. Пусть Л е R"^" имеет SVD вида Л == UDV1', где U, D, V имеют тот же смысл, что в определении 3.6.3. Пусть матрица, псевдообратная к Л, определяется как 4-4 t at, = О, г + ^ f i/^> ^ > о, A^=VD+UT, D^==\ " I О, (T,==O, (3.6.6) I dtf =0, i Ф j, D+^R'^"1. Тогда единственным решением задачи (3.6.5) яв- ляется д'» == А+Ь. Доказательство. Из разложения Л=L'Z)l/r и равенства (3.1.23) следует, что (3.6.5) эквивалентно min {|| V^v Из: || DV^x - иЧ Из < f| DV4 - ^b ^ Vx e R"}, A:eR" 3.6. Линейная задача о наименьших квадратах 87 что для г = Vтx эквивалентно min {II z На: И Dz - U^-b ||, < || Dz - U^ \\, Vz e= R"}. (3.6.7) zeR" Пусть & равно количеству ненулевых а, в D. Тогда Ic m \\Dг-Uтb\\:!,=^(o^Zi-(Uтb)^)2+ Е ((^)<)2. «=1 »=й-Н Это выражение принимает минимальное значение при любом z, таком, что г; == (Uтb)^/G^, f==l, ..., k. Среди всех таких г норма Hzllz минимальна для того из них, у которого z; == О, t==/s+l, •••, m. Таким образом, решением задачи (3.6.7) яв- ляется z = О+ШЬ, откуда х^= VD+Uтb=A+b. D Сингулярное разложение находится с помощью итерацион- ного процесса, тесно связанного с алгоритмом отыскания соб- ственных значений и собственных векторов симметричной мат- рицы, поэтому его труднее получить, чем другие наши матрич- ные разложения. Этот метод рекомендуется, когда про мат- рицу Л не известно, имеет ли она полный строковый или столб- цовый ранг. Если m < п и Л имеет полный строковый ранг, то (3.6.5) решается более эффективно с помощью LQ-разложения (упр. 27). Способ SVD наиболее надежен при вычислении ранга матрицы, или, что эквивалентно, вычислении количества линей- но независимых векторов в множестве векторов. Можно также использовать SVD для определения чувствительности x=A~lb по отношению к изменениям в исходных данных А&, где Л есть квадратная матрица. Кроме того, если Л не вырождена, то к^(А)== Oi/Gn, и тогда SVD представляет собой самый надеж- ный способ вычисления ^(Л). Заключительное замечание относительно определения ранга матрицы на основе ее SVD состоит в том, что D в действитель- ности дает нам больше информации о линейной независимости столбцов в Л, чем мы могли бы «втиснуть» в единственное це- лое число, отведенное под ранг Л, Например, если п == 3 и (TI = 1, 02 == 0.1, (Тз = 0, то следует согласиться, что Л имеет ранг, равный 2. Если стз заменить на macheps, то, вероятно, и в этом случае следует все же считать, что вся информация пе- редана фразой «rank(A) = 2». Ну а как быть в случае, когда (TI==I, erg = macheps и Ста == (macheps)1/2 или 100-macheps и т. д.? С увеличением п растет число ситуаций, вызывающих тревогу из-за более сложного распределения в них сингулярных чисел. Никто на самом деле не знает, что в таком случае де- лать, однако весьма разумным здесь будет подыскать «раз- рывы» в расположении сингулярных чисел, и те из них, кото- рые имеют примерно один и тот же порядок величины, счи- 88 Гл. 3. Основы вычислительной линейной алгебры тать в зависимости от этого порядка все либо нулевыми, либо ненулевыми. Важно, чтобы пользователь программ, имеющихся у него в записи, понимал суть этих вопросов. Дело в том, что в паке- тах программ ROSEPACK и EISPACK при решении (3.6.1) с использованием SVD принимается в некоторый момент ре- шение, по которому Л модифицируется так, что ее «малые» сингулярные числа полагаются равными нулю, и затем реша- ется модифицированная задача. Несмотря на это, ничего не происходит в тайне от пользователя, и необходимо всего лишь прочитать программную документацию для понимания того, что же в действительности делается. Можно с уверенностью сказать, что любая подпрограмма, вычисляющая SVD, из со- ображений своей эффективности будет присваивать нулевые значения всем сингулярным числам, которые пренебрежимо малы с точки зрения проводимых вычислений. Донгарра и др. (1979) дали очень краткое объяснение типичной проверке на «пренебрежимую малость». 3.7. УПРАЖНЕНИЯ 1. Докажите, что для любого х<= R" lim \\x\\ =\\x\\ р->оо р Заметим, что здесь на самом деле подразумевается, что для каждой после- довательности действительных чисел {pi,}, стремящейся к оо, имеет место lim || л: || . k-> 00 ^k 2. (Трудное упражнение.) Докажите теорему 3.1.2. 3. Докажите соотношения (3.1.5). 4. Докажите, что для любых р ^ 1 индуцированная матричная /р-нор- ма (3.7.1) обладает тремя определяющими свойствами нормы [(3.1.1) при- менительно к матрицам] плюс свойство мультипликативности [(3.1.10)]. 5. Докажите, что (3.1.8а) правильно вычисляет индуцированную мат- ричную /i-норму. [Указание: покажите, что для всех у е R", "^< max ||а/|1, м' i</<"11 •/111> причем равенство имеет место по крайней мере для одного v.] Проделайте то же самое для индуцированной матричной /оо-нормы. 6. Докажите (3.1.8Ь). (Воспользуйтесь методикой доказательства тео- ремы 3.5.4.) 7. Покажите, что ^'г(ATB) представляет собой обычное скалярное про- изведение А на 5, рассматриваемых как «длинные векторы». Свяжите это с нормой Фробениуса, т.е. докажите (3.1.14). 3.7. Упражнения 89 8. Докажите, что || А \\ == II Aт \\ как для /а-нормы, так и для нормы Фробениуса. Обратите внимание, что (АВ)., == AB.i, и посмотрите, не дадут ли вам эти факты возможность доказать (3.1.15) и (3.1.16). 9. Докажите (3.1.17). 10. Завершите доказательство теоремы 3.1.4. 11. Докажите, что для любой А е R^" и любой ортонормированной последовательности векторов vi e R", i = 1, ..., п, имеет место 12. Докажите теорему 3.1.7. 13. Решите блочно-диагональную систему Ах == Ь, где ГЗ 1 О 1 2 О 002 000 Lo о о -i 0^ о о -1 4 6= 5l 5 6 3 L16 14. Получите преобразование Хаусхолдера: дано v е R", v ч4= 0, найти и е R", такое, что матрица (/ — ии7') ортогональна и (/ — ии1') v == («, 0, ... ..., ОУ, ос =?ь 0. [Указание: и должно иметь вид р(у, Oz, ..., VnV, где р, veR.] 15. Примените преобразование Хаусхолдера для разложения А на мно- жители QR, где Г1 -1-1 л» ! °. (1 2 \ 16. Является ли матрица - „ ) положительно определенной? Для выяснения этого воспользуйтесь разложением Холесского. 17. Найдите разложение Холесского для Г 4 6 -2-j 6 10 1 I L —2 1 22 J А если заменить 10 на 7? 18. Докажите, что если Л = Q-R, то •^•к.1 (Л)<»<1 (/?)</wi (А). Докажите также, что хг{А) = Я2(/?). 90 Гл. 3. Основы вычислительной линейной алгебры 19. Найдите число обусловленности в /i-норме для Г1 1 1 Lo ю-ч' -[о .- Оцените число обусловленности этой матрицы с помощью алгоритма A3.3.1. 20. Напишите программу для дальнейшего использования в виде отдель- ного модуля, которая бы давала оценку числа обусловленности верхней треугольной матрицы. 21. Та простая форма матрицы Й(а, р), в которой мы представили вращения Якоби, излишне подвержена воздействию погрешностей арифме- тики конечной точности, когда а или р малы или велики, либо различны порядки их величин. Напишите процедуру, которая бы вычисляла /?(к, Р) с высокой точностью. 22. Найдите матрицу вращения Якоби, которая бы давала нуль в пози- ции (3, 1) матрицы Г1 3 51 2 4 6 I 1.3 5 9J 23. Докажите теорему 3.6.1. При этом покажите, что если AT{Ax^^—Ь}==0, то \\Ах—Ь \\г > \\Ах# —Ь \\г для всех жеР", причем строгое неравенство имеет место, когда Л имеет полный столбцовый ранг и х. =/= х„. Покажите также, что если Л имеет полный столбцовый ранг, то ATA не вырождена. 24. Имеется Q^-разложение прямоугольной матрицы А полного столб- цового ранга, определенное в теореме 3.6.2. Покажите, что первые п столб- цов в Q образуют ортонормированный базис пространства, натянутого на столбцы матрицы Л. 25. Подберите прямую Xi + Xit, приближающую данные (t,, t/i) = = (—1.3), (0,2), (1,0), (2,4). Выполните поставленную задачу, исполь- зуя Q^-разлежение и нормальные уравнения. [Указание: вы делали vnp. 15?] 26. Имеются я > от > 0, 6 е= R'" и матрица Л е= R"^" полного строко- вого ранга. Покажите, как решить задачу min {||-elk: Ax= Ь}, JCSR" используя разложение вида Л = LQ, где матрица L е р'»Х"_ нижняя тре- угольная, а Q e ^пхп —ортогональная. [Указание: воспользуйтесь методи- кой, аналогичной той, что применялась в доказательствах теорем 3.6.2 и 3.6.5.] 27. Покажите, как выполнить LQ-разложение в предыдущем упражне- нии, используя преобразования Хаусхолдера. 28. Имеется сингулярное разложение Л = UDV1' невырожденной матри- цы Л (= R'-X". Докажите, что кг(А} = оч/о-л. Пусть и, и v , обозначают со- ответствующие столбцы матриц U и V. Покажите также, что изменение Дй = ecu., в правой части линейной системы Ах == /; приведет к изменению A.V = (<х/ст/)у./ в решении. 4 Основы анализа функций многих переменных В этой главе содержатся сведения из анализа функций многих переменных, необходимые в дальнейшем для изучения вопро- сов численного решения нелинейных задач. В разд. 4.1 обсуж- даются производные, определенные интегралы, ряды Тейлора и связанные с ними свойства, которые будут впоследствии ис- пользованы при построении и анализе предлагаемых методов. В разд. 4.2 вводятся формулы для построения конечно-разност- ных аппроксимаций производных от функции многих перемен- ных, а в разд. 4.3 приведены необходимые и достаточные усло- вия, характеризующие точку минимума при отсутствии ограни- чений. Книга Ортеги и Рейнболдта (1970) может служить под- робным справочным пособием как по данной теме, так и по теоретическому исследованию нелинейных алгебраических за- дач общего вида. 4.1. ПРОИЗВОДНЫЕ И МНОГОМЕРНЫЕ МОДЕЛИ При изучении минимизации функции одной переменной для по- строения локальной квадратичной модели минимизируемой функции использовались производные первого и второго поряд- ка. Поэтому мы стремились к тому, чтобы модельная задача соответствовала реальной задаче по значению, тангенсу угла наклона и кривизне в точке, которая на текущий момент явля- ется наилучшим приближением к точке минимума. Формула Тейлора с остаточным членом оказалась полезным аналитиче- ским аппаратом для оценки погрешности аппроксимации квад- ратичной моделью. Она в той же степени будет нам полезна и здесь. Мы начинаем этот раздел с описания, без излишних подроб- ностей, формулы Тейлора второго порядка для скалярной функ- ции, зависящей от векторной переменной. Затем, для того что- бы перейти к этапу рассмотрения систем нелинейных уравне- 92 Гл. 4. Основы анализа функций многих переменных ний, мы изучим задачу построения локальной аффинной мо- дели для функции F: R"—-0"1. В этом случае подход, исполь- зующий ряды Тейлора, является весьма неудовлетворительным, потому что здесь не выполняется теорема о среднем. Предвидя это, в гл. 2 мы использовали теорему Ньютона для построения аффинных моделей. Вторая часть этого раздела будет посвя- щена построению аппарата, позволяющего провести аналогич- ный анализ в многомерном случае. Рассмотрим сначала непрерывную функцию: f: R"-^-R, п~> 1. Если существуют первые частные производные от функ- ции п переменных f и они непрерывны, то вектор-столбец, со- ставленный из п частных производных, называется градиентом Vf(x} функции f в точке х, и он в данном случае представляет собой то же самое, что и первая производная от функций од- ной переменной. В частности, существует соответствующая тео- рема о среднем, которая утверждает, что разность между зна- чениями функции в двух точках равна скалярному произведе- нию разности между точками на градиент функции в некото- рой промежуточной точке прямой, соединяющей эти две точки. Аналогично, если п2 вторых частных производных от f также существуют и непрерывны, то матрица, составленная из них, называется гессианом1) У^(х) функции f в точке х, и он тоже удовлетворяет условиям теоремы о среднем, представленной в виде формулы Тейлора с остаточным членом. Точные опреде- ления и леммы приведены ниже. Причины, по которым важные результаты одномерного анализа остаются справедливыми для функций многих переменных, состоят в том, что они исполь- зуют значения действительной функции в двух точках х и х 4- р пространства R", а прямая, соединяющая эти две точки, может быть параметризована с помощью одной переменной. Таким образом, результаты следуют непосредственно из соот- ветствующих теорем одномерного анализа. Обозначим открытый и замкнутый линейный сегмент, соеди- няющий х, ^eR", через (х, х) и [х, х} соответственно, а также напомним читателю, что DczR" называют выпуклым множе- ством, если [х, х] с D для любых х, х е D. Определение 4.1.1. Будем говорить, что непрерывная функ- ция f: R"->-R непрерывно дифференцируема в .veR", если производные (дf/дx^) (х), i=l, ..., п, существуют и непре- рывны. Тогда градиент функции f в точке х определяется как УЖ^М,...,^)]' (4.1.1) ') Гессианом принято называть определитель матрицы Гессе V^f^x). Однако, учитывая замечание авторов после примера 4.1.8 относительно тер- минов «якобиан» и «матрица Якоби», мы все же решили придерживаться при переводе терминологии, принятой в данной книге. — Прим. перев. 4.1. Производные и многомерные модели 93 Будем говорить, что f непрерывно дифференцируема в открытой области DaR", и обозначать это как feC'(D), если она не- прерывно дифференцируема в любой точке из D. Лемма 4.1.2. Пусть f: R"—-R непрерывно дифференцируема на некоторой открытой выпуклой области DcR". Тогда для х (= D и произвольного ненулевого приращения р е R" произ- водная по направлению р от f в точке х, определяемая как -^)==Hm f^+^-f^ , д? ' ' е->0 е существует и равна Уf(x)т•p. Для любых x,x+pe.D, выпол- нено 1 х+р f(x+p)=f(x}+\Vf(x+tp)тpdt=f(x)+ \ Vf(z)dz, (4.1.2) J ^ О Х и существует г е (л:, х + р), такое, что f(x+p}=f(x}+vf{г}тp. (4.1.3) Доказательство. Проведем элементарным образом парамет- ризацию f как функции одной переменной вдоль прямой, со- единяющей х и (х+ р), g:R-^R, g(t)=f(x+tp) и обратимся к анализу функции одной переменной. Определим x(t)=x+ tp. Затем по цепному правилу дифференцирования сложной функции для 0 ^ « ^ 1 имеем de. dt f-1 дх (t), (x(a)) dx (t), dt (»)= 9f =^-J^(x(a))-pi==7f{x+apyp. (4.1.4) i=\ Подстановка ое==0 сводит (4.1.4) к виду ^=vfW.. Пользуясь фундаментальной теоремой анализа, теоремой Нью- тона, запишем 94 Гл. 4. Основы анализа функций многих переменных что по определению g и согласно (4.1.4) эквивалентно f(x+p)==f(x)+\Vf'(x+tp)тpdt•, *J О тем самым (4.1.2) доказано. Окончательно по теореме о сред- нем для функции одной переменной имеем ^(1)==^(0)+^(1), Se(0,l), что по определению g и согласно (4.1.4) эквивалентно f(x + р) = f(x) + Vf (x + Wp, g e (0, 1), и (4.1.3) доказано. D Пример 4.1.3. Пусть f: R2-^, / (л;) •= х\ - 2л;, + Зл;,х| + 4х^ x,=(\,\Y, р=(-2, 1У. Тогда Г 2х, - 2 + ЗхП ^-l. 6^ +12x| J' ^)=6, f(A;,+p)==23, уЦ^)=(3, 18f. В обозначениях леммы 4.1.2 g(t)=f(x,+tp)=f(l-2t, l+t)=6+l2f+7t2-2tз. Читатель может убедиться, что (4.1.3) справедливо для z== =x,+tp при t = (7 — V'19")/6 ^ 0.44. Определение 4.1.4. Будем говорить, что непрерывно диффе- ренцируемая функция /: R"—>-R дважды непрерывно диффе- ренцируема в л-s R", если производные (д^/дх{дх,) (x), 1 s$ /, / ^ /г, существуют и непрерывны. Тогда гессиан функции fax по определению есть матрица размера /гХ", и ее (<,/')-й эле- мент равен v2^ ^/= -И?-- 1 <i' f < "• (4-1 •5) Будем говорить, что функция f дважды непрерывно дифферен- цируема в открытой области D cr R", и обозначать это f^ ^C2{D), если она дважды непрерывно дифференцируема в каждой точке D. Лемма 4.1.5. Пусть /: R"-»-R дважды непрерывно диффе- ренцируема в открытой выпуклой области D c= R". Тогда для любого x ? D и для произвольного ненулевого приращения р е R" вторая производная по направлению р от f в точке А'. 4.1. Производные и многомерные модели 95 определяемая как (х+ (x) -^ др -^)=lim^ °Р е->о существует и равна pт'\?2f(x}p. Для любых x,A'+psD, суще- ствует г Е (x, x + р), такое, что / (x + р} = f (x) + Vf W р + ^ p^f (г) р. (4.1.6) Доказательство аналогично доказательству леммы 4.1.2. D Всякий раз, когда f дважды непрерывно дифференцируема, гессиан будет симметричен. Именно поэтому мы проявляли ин- терес к симметричным матрицам в главе по линейной алгебре. Пример 4.1.6. Пусть f, Хс и р заданы так, как в приме- ре 4.1.3. Тогда Г 2 6л:2 "1 Г 2 6 -| n2f (у)==\ 2 у2^ (X } ' ' .6 30 J' vlw [бх, 6xi+24x,]' "^ Читатель может убедиться, что (4.1.6) справедливо для г == =Хс+ tp, ^==-3". Лемма 4.1.5 наводит нас на мысль, что можно было бы опи- сывать поведение функции f в окрестности точки Хс квадратич- ной моделью . (Хс + Р) = f (Хс) + Vf (х,У р + у /W (Хс) Р, (4.1.7) m именно так мы впоследствии и поступим. Действительно, эта лемма показывает, что погрешность данной модели имеет вид f (x, + р) - m, {x, +p)=-^pт (^f (г) - ^f (x,)) р при некотором ге(хс, Хс+р). Другую оценку погрешности дает следствие 4.1.14. Перейдем теперь к менее простому случаю, в котором F: К"-»^"', где m = п соответствует задачам решения систем нелинейных уравнений, а m ~> п—нелинейным задачам о наи- меньших квадратах. Было бы удобно иметь специальное обо- значение е[ для t-й строки единичной матрицы. Это не должно вызвать путаницы с основанием натурального логарифма. Так как значение f-й компоненты функции F можно записать как f^ (x) = e\F (x), то по правилу дифференцирования произведения имеем ^{x)==e[F' (x), что представляет собой г-ю строку F'{x). 96 Гл. 4. Основы анализа функций многих переменных Таким образом, F'{x) должна быть матрицей размера теХ" и ее f-й строкой будет V^x)1'. Ниже дается формальное опре- деление. Определение 4.1.7. Непрерывная функция F: R"->-R'" явля- ется непрерывно дифференцируемой в х е R", если каждая ком- понента fi, f=l, ..., т, непрерывно дифференцируема в х. Производную от F в точке х иногда называют якобианом (мат- рицей Якоби) F в точке х, а транспонированную к ней матрицу иногда называют градиентом F в точке х. Общепринятые обо- значения таковы: Ff(x)sRmxn, ^(х)^=^-(х), F'(x)==/(x)==VF(xy. Будем говорить, что функция F непрерывно дифференцируема в открытой области DcR", и обозначать F^C^D), если F непрерывно дифференцируема в каждой точке из D. Пример 4.1.8. Пусть Тогда — у 2 _ 9 г — -с, ^.Ху У J(x)=\ ^ -^ \2xi —2}' В оставшейся части книги будем обозначать матрицу Якоби функции F в х через J(x). Кроме того, мы часто будем гово- рить о якобиане функции F, а не о матрице Якоби функции F в точке х. Единственно возможную двусмысленность может вы- звать то, что первый термин иногда используется для детерми- нанта матрицы /(л-). Однако здесь вряд ли возникнет какая- либо путаница, поскольку мы редко прибегаем к использова- нию детерминантов. Перейдем теперь к тому, что существенно отличает свойства скалярных функций от векторнозначных, а именно, для непре- рывно дифференцируемых вектор-функций не существует тео- ремы о среднем. Другими словами, может, вообще говоря, не существовать Z(=R", такого, что F{x-{- р)== F(x)+ J{z)p. Ин- туитивно понятно, что, несмотря на то что каждая функция fi удовлетворяет соотношению fi {х + р) = fi (х) + Vfi (г:) Tp, точ- ки г, все же могут быть различными. Для иллюстрации рас- смотрим функцию из примера 4.1.8. Не существует г<= R", для которого F(l, 1)== F(0,0)+ J(z) (1, I)7', поскольку это означало бы, что г^ L + е2' .2z, _ 1 - -2 ][ 1 и 2г\ == 1, а это, очевидно, невозможно. 4.1. Производные и многомерные модели Хотя обычная теорема о среднем не выполняется, имеется возможность заменить ее в нашем дальнейшем анализе теоре- мой Ньютона и неравенством треугольника для определенных интегралов. Эти результаты приведены ниже. Интеграл от век- тор-функции действительной переменной можно понимать как вектор, состоящий из интегралов Римана от каждой компонен- ты функции. Лемма 4.1.9. Пусть функция F: !R"->-R'" непрерывно диф- ференцируема в выпуклой открытой области D с: R". Тогда для любых х, х+ Рs D, 1 х+р F(x+p)-F{x)=\J{x+tp)pdt=\ Р'(г)йг. (4.1.8) J J Доказательство непосредственно следует из определения 4.1.7 и применения покомпонентно формулы Ньютона (4.1.2). D Отметим, что соотношение (4.1.8) напоминает теорему о среднем, если представить его как F{x+p)-F{x)=\[J(x^tp}dl\p, где подразумевается покомпонентное интегрирование матрично- значной функции. В некоторых случаях эта форма представ- ления окажется нам полезной. Для использования (4.1.8) в на- ших рассуждениях необходимо иметь возможность получать оценки интеграла в терминах подынтегрального выражения. Следующая лемма дает как раз то, что нам нужно. Лемма 4.1.10. Пусть G: D с R"-»-R"^", где D—открытое выпуклое множество, причем х, х + р е D. Если G интегрируе- ма на [х, х + р], то для любой нормы в R"1 II 1 II ' \\G(x+tp}pdt [^\\\G(x+ip)p\\dt. (4.1.9) ll - 1й Доказательство оставлено в качестве упражнения. Оно сле- дует из представления интеграла в виде векторных интеграль- ных сумм Римана и последующего применения неравенства тре- угольника (3.6.1с). Затем можно воспользоваться переходом к пределу. D За к. C6U 98 Гл. 4. Основы анализа функций многих переменных Лемма 4.1.9 наводит на мысль описывать поведение Р{хс+р) аффинной моделью (4.1.10) Именно так мы впоследствии и поступим. Для получения оцен- ки разности между F(xc-)-p) и Мс(Хс-\-р) необходимо пред- положить непрерывность J (х) подобно тому, как это делалось в разд. 2.4. Тогда мы получим оценку, аналогичную данной в лемме 2.4.2 для функций одной переменной. Определение 4.1.11. Пусть т, п > О, G: Р'1-^"^", xsR", и пусть ||-|| есть норма в R", а ||[ • ||| —норма в R'"x". Будем го- ворить, что функция G непрерывна по Липшицу в точке х, если существуют открытое множество DcR", x<=D и константа у, такие, что для всех и г D (4.1.11) Константа у называется константой Липшица для G в точке х. Для любой конкретной D, которая содержит х и для которой выполняется (4.1.11), говорят, что G непрерывна по Липшицу в окрестности D точки х. Если (4.1.11) верно для каждого x<=D, то Ge=Lip,y(D). Заметим, что величина у в (4.1.11) зависит от нормы, но от нормы не зависит само существование у. Лемма 4.1.12. Пусть F: Р"-^"1 непрерывно дифференци- руема в открытом выпуклом множестве D с= R", х s D. Пусть при заданной векторной норме, индуцированной матричной норме и константе у якобиан / непрерывен по Липшицу в окрестности D точки х. Тогда для любых х + р s D (4.1.12) Доказательство. По лемме 4.1.9 /(^=4 $/(л-+^)/^ Ln J i =\[J(x+tp)-J(x)]pdt. *J Используя (4.1.9), определение индуцированной матричной нормы и непрерывность по Липшицу / в окрестности D точ- 4.1. Производные и многомерные модели 99 ки л', окончательно получаем i \\F(x+p)-F(x)-f{x)p\\^[y(x+tp)-J(x)\\\\p\\dt^ о ! 1 <\\Уp\\\\P\\dt=y\\p\\2\fdt==^\\p\\2. О J J — О О Пример 4.1.13. Пусть F: R2 -» R2, ^ (х) == х\ - х\ - а, ^ (х) = ===2х^— р, а, peR. [Система уравнений F(x)==0 эквива- лентна уравнению x^ + 1х^ == -^а + ф .] Тогда Г 2^, —2л-2 1 ж== \2х 2х\- |_ ZA:2 •ь-Ч J Здесь читатель может легко убедиться, используя /i-норму, что J {х) удовлетворяет (4.1.11) для любых х, v e R2 при у = 2. Используя непрерывность по Липшицу, можно также полу- чить полезные оценки погрешности для квадратичной модели (4.1.7), аппроксимирующей f(Xc-{-p). Это сделано ниже. Дока- зательство аналогично доказательству леммы 4.1.12, и поэтому оно оставлено в качестве упражнения. Лемма 4.1.14. Пусть f: R"->-R дважды непрерывно диффе- ренцируема в открытом выпуклом множестве Dc:R" и гес- сиан V^(x) непрерывен по Липшицу с константой у в окрест- ности D точки х при заданных векторной и индуцированной матричной нормах. Тогда для любых х + Р s D f {х + р} - (f(x) + Vf (xY р + 4 /W W р) 1 < ^ || р ||3. (4.1.13) Мы завершаем этот раздел двумя неравенствами, связан- ными с (4.1.12), которые нам понадобятся для оценки \\F(v)— F(u) || в доказательствах сходимости. Доказательство леммы 4.1.15, обобщающей лемму 4.1.12, оставлено в качестве упражнения. Лемма 4.1.15. Пусть F и / удовлетворяют условиям лем- мы 4.1.12. Тогда для любых v, и s D \\F(v}-F(u)-!(x)(v-u}\\^y 11"-^11«-^11 ||1,-иЦ. (4.1.14) Лемма 4.1.16. Пусть F и / удовлетворяют условиям лем- мы 4.1.12. Предположим, что существует /(х)-'. Тогда суще- 4* 100 Гл. 4. Основы анализа функций многих переменных ствуют е >• 0, 0 •< а •< р, такие, что a||o-u|K||F(u)-F(y)|l<p||y (4.1.15) для любых у, ие.О, удовлетворяющих неравенству тах{||у— -х\\, 11м-^11}<е. Доказательство. Используя неравенство треугольника и (4.1.14), имеем \\F(v)-F(u)\\^U(x)(v-u)\\+\\F(v}-F(u)-J(x)(u-u)\\<^ <[ll^)ll+-I(l|t'-^ll+||U-X||)]||0-M|l< <[ll/MII+Ve]||o-y||, что доказывает вторую часть (4.1.15) при р =||/(л:) ||+V8. Ана- логично, , \\F(v}-F(u)\\^\\J(x)(v-u)\\-\]F(v)-F(u)-/(x)(u-u)\\^ >[(ll^(xl)-l|l)~i(ll"~лll+ll"~^ll)]llo~"ll> ^117(^-4"°-""• Таким образом, если е < 1/(||/(л:)-4|у), то первая часть (4.1.15) выполнена при 1 4.2. КОНЕЧНО-РАЗНОСТНЫЕ ПРОИЗВОДНЫЕ В МНОГОМЕРНОМ СЛУЧАЕ В предыдущем разделе мы убедились, что якобиан, градиент и гессиан будут полезными величинами при построении моде- лей нелинейных функций многих переменных. Однако в при- ложениях указанные производные зачастую не заданы анали- тически. В настоящем разделе вводятся формулы для аппрокси- мации производных конечными разностями и даются оценки погрешностей этих формул. В разд. 5.4 и 5.6 обсуждаются в'оп- росы выбора шага конечно-разностных аппроксимаций с уче- том машинной арифметики и вопросы использования конечно- разностных производных в предлагаемых алгоритмах. Напомним, что для функции одной переменной f конечно- разностная аппроксимация производной f'(x) задавалась по формуле f(x+h)-f(x) и —~., 4.2. Конечно-разностные производные 101 где h достаточно мало. Из оценки погрешности аффинной мо- дели функции f(x-lгh) мы имели |а—f {х) \ == 0(h) для до- статочно малых h. В случае когда F: R"->-R'", есть смысл использовать ту же самую идею для аппроксимации {i,j)-u компоненты /{х) с помощью аппроксимации по разности вперед f, (х + he,) - f, (х) ац — ————д—————, где е, обозначает /-и единичный вектор. Это эквивалентно аппроксимации j-то столбца J{х} по формуле Л F (х + he,) - F (х) (4.2.1) Здесь тоже следует ожидать, что ||Л./—(/(л:)).,||= 0(/i) для достаточно малых h. Этот факт обоснован в лемме 4.2.1. Лемма 4.2.1. Пусть F: R"-»-R"1 удовлетворяет условиям леммы 4.1.12 в векторной норме Ц-11, для которой ||е/||= 1, /= ==1, ..., п. Пусть, далее, А е. R'"x", где Л., определены по (4.2.1), /==1, ..., п. Тогда Если пользоваться /i-нормой, то (4.2.2) (4.2.3) Доказательство. Подстановка p=^he, в (4.1.12) дает \\F(x+he|)-F(x)-J{x)he|\\^^\\he^\\2==^\h\'^. Разделив обе части неравенства на h, приходим к (4.2.2). Так как /i-норма матрицы есть не что иное, как максимум /i-норм ее столбцов, отсюда непосредственна вытекает (4.2.3). D Следует упомянуть, что хотя, согласно (4.2.3), при построе- нии всей Л используется один и тот же шаг h, из-за арифме- тики конечной точности мы будем вынуждены применять шаги различных размеров для каждого столбца матрицы Л. Заме- тим также, что конечно-разностная аппроксимация якобиана требует п дополнительных вычислений функции F. Таким обра- зом, это может оказаться сравнительно трудоемким, если тру- доемко вычисление самой F или п довольно велико. Если нелинейная задача состоит в минимизации функции /: R"-»-R, то может возникнуть необходимость в аппроксима- ции градиента Vf(.v) и (или) гессиана У^(л'). Аппроксимация 102 Гл. 4. Основы анализа функций многих переменных градиента всего лишь частный случай рассмотренной выше ап- проксимации / (х) при т = 1. В некоторых случаях из-за ко- нечной точности вычислений приходится подбирать более точ- ную конечно-разностную аппроксимацию, с использованием центральных разностей, приведенных в лемме 4.2.2. Отметим, что такая аппроксимация требует вдвое больше вычислений / по сравнению с разностью вперед. 'Лемма 4.2.2. Пусть f: R"—-R удовлетворяет условиям лем- мы 4.1.14 в векторной норме с тем свойством, что ||е(|[== 1, i= ==1, ..., п. Предположим х + h-ei, х—hei e D, i==l, ..., п. Пусть а е R", где а, имеют вид 2h Тогда Если пользоваться /^-нормой, то (4.2.4) (4.2.5) (4.2.6) Доказательство. Определим действительные величины а и |3 следующим образом: а = / {х + he^) - f{x) - h^f (х), - W (л:)„, Р = f(x - hef) -f(x)+ h\?f (x), - h^f (х)ц. Применение (4.1.13) при p=±hei приводит к |а|< yh3 и по неравенству треугольника имеем |а-РК^. Таким образом, =2h(ai—^f{x)i) к (4.2.6). а (4.2.5) .следует из соотношения к—13 == Определение /ос-нормы и (4.2.5) приводит В некоторых случаях градиент Vf задан аналитически, а V2/'— нет. В этих ситуациях V2} можно аппроксимировать, применяя формулу (4.2.1) к функции F A,Vf, и затем, полагая Л== =у(Л-г-Л7'), так как аппроксимация гессиана V2/' должна быть симметричной. Из леммы 4.2.1 известно, что ||Л—V2/^)!! == 4.3. Необходимые и достаточные условия 103 == 0(/г) для достаточно малого h. Легко показать, что ||Л— —^2f(x)\\F<^\\A—V2f{x)\\F (см. упр. 12). Таким образом, ||Л — - УВД ||== О (/г). Если V/ не задан, имеется возможность аппроксимировать V2/, используя лишь значения f(x}, как это описано в лем- ме 4.2.3. Здесь погрешность также имеет порядок 0(/i) для до- статочно малых h. Заметим, однако, что такая аппроксимация требует дополнительно (n2-{-3n)/2 вычислений f. Лемма 4.2.3. Пусть f удовлетворяет условию леммы 4.2.2 Предположим, что х, х + й<?„ х -\- he;, х + hei + he, e D, 1 sS: /, / sS; п. Пусть Л s R^", где Ац имеет вид л - f (х + hei + he^ ~f ^ + Ае1) ~ ^х + he^ + f (x) а^7\ Лц————————————————————————————————————————————-д————————————————————————————————————————. ^.^./) h2 Тогда (4.2.8) Если пользоваться матричной /г, /оо-нормой или нормой Фро- бениуса, то \\A-^f{x}\\^ynh. (4.2.9) Доказательство очень похоже на доказательство леммы 4.2.2. Для доказательства (4.2.8) вначале подставим последователь- но р == he,•+ he,, p = hei и р = he, в (4.1.13). В результате получим три неравенства. Обозначим величины, стоящие в их левых частях под знаком модуля, через а, р и ц соответственно. Тогда к—р—т1==(Л,7—''\f2f{x}i^}h2. Используя |а—|3—T]]^ s?a |(х|+ |Р|+ |il| и разделив результат на h2, получим (4.2.8). Таким образом, (4.2.9) непосредственно следует из (3.1.8а), (3.1.8с) и определения нормы Фробениуса. D 4.3. НЕОБХОДИМЫЕ И ДОСТАТОЧНЫЕ УСЛОВИЯ В ЗАДАЧАХ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ В этом разделе приведем необходимые и достаточные условия первого и второго порядков того, что точка х» является ло- кальным минимумом непрерывно дифференцируемой функции f: R"-»-R, n"^. 1. Естественно, что эти условия будут ключевыми в наших алгоритмах решения задачи безусловной минимиза- ции. Они тесно связаны со следующими условиями, касающи- мися задачи с одной переменной, которые уже рассматривались в гл. 2. Итак, в одномерном случае, для того чтобы л"» была точкой локального минимума /, необходимо, чтобы ^(х»)=0; 104 Гл. 4. Основы анализа функций многих переменных достаточно дополнительно выполнения неравенства /'"(.\'»)>U и необходимо /'"(.v'«)^0. В многомерном случае, для того чтобы х» была точкой локального минимума требуется У/(л:»)==0; достаточное условие, кроме того, требует положительной опре- деленности V2^^»), а необходимое—по крайней мере положи- тельной полуопределенности ^2f{x„}. Доказательство и интерпретация этих условий но существу, такие же, как и в случае функций одной переменной. Равен- ство нулю градиента просто говорит о том, что не существует направления из х„, вдоль которого f{x} с необходимостью нач- нет увеличиваться или уменьшаться. Таким образом, точка, имеющая нулевой градиент, является точкой минимума или максимума f либо седловой точкой, которая представляет со- бой точку максимума в одном поперечном сечении простран- ства переменных и в то же время точку минимума в другом (по аналогии с центром седла в двумерном случае). Положи- тельная определенность ^2f(x^,) соответствует геометрическому представлению о строгой локальной выпуклости и как раз означает, что / изгибается вверх из точки х^ во всех направ- лениях. Лемма 4.3.1. Пусть f: R"-»-R непрерывно дифференцируема в открытом выпуклом множестве D с: R". Тогда х s D может быть точкой локального минимума f, только если Vf(x)==0. Доказательство. Как и в случае одной переменной, здесь доказательство от противного предпочтительней, чем прямое доказательство, потому что сама лемма и доказательство, вме- сте взятые, указывают, как распознать возможный минимум и как улучшить текущее приближение, если оно не является точкой минимума. Если Vf(x}=^0, то выберем произвольное р s R", для кото- рого pт\^?f(x)<^0. Такое р, несомненно, существует, поскольку достаточно взять p==—Vf(x). В целях сохранения простоты обозначений, умножим предварительно р на положительную константу, так чтобы ,\-+pi=D. Это можно сделать, поскольку множество D открыто и выпукло, и поэтому х + tp e D для любых 0 ss: / г$ 1. Тогда, в силу непрерывности Vf на D, существует некото- рое ?s[0, I], такое, что \^{х-\-tp)1'? <Q для любых t<=[Q,1}. Теперь применим теорему Ньютона (леммп 4.1.2), чтобы по- лучить / (х + тр) == f (х) + [ V/" (х + tpY p at, и таким образом f(x -^-tp)< f{x). D 4.3. Необходимые и достаточные условия 105 Для целого класса алгоритмов, называемых методами спу- ска, характерно то, что они основываются на приведенном выше доказательстве. Если Vf(Xc)^=0, то они выбирают на- правление спуска р, как указано выше, а затем точка х+ опре- деляется спуском в направлении р, так же как указано выше. Теорема 4.3.2. Пусть f: R"—«-R дважды непрерывно диффе- ренцируема в открытом выпуклом множестве D с R" и предпо- ложим, что существует xsZ), такое, что V/(x)=0. Если гес- сиан V2f{x) положительно определен, то х является точкой ло- кального минимума f. Если У^(л:) непрерывен по Липшицу в х, то х может быть точкой локального минимума f, только если V^(x) положительно полуопределен. Доказательство. Если V^A") положительно определен, то вследствие непрерывности V2^ существует открытое выпуклое подмножество D, содержащее х, такое, что У^(г) положитель- но определен для всех г из этого подмножества. Сохраняя про- стоту обозначений, переобозначим это множество через D. То- гда, если /?eR" таково, что x-}-pi=.D, то по лемме 4.1.5 для некоторого г-е [х, х + р] имеем f(x + Р) = f (х) + V/ W р + 4/W (г) р = ==f{x}+-^PT^f{г)p>f(x). Это доказывает, что х есть точка локального минимума f. Не- обходимость того, чтобы V^(x) был положительно полуопре- деленным, оставим для упражнения. D Доказательство данного ниже следствия также является лег- ким упражнением. Мы приводим его потому, что оно представ- ляет собой утверждение непосредственно той части теоре- мы 4.3.2, которая наиболее соответствует условиям, обеспечи- вающим нахождение точки локального минимума методом Ньютона путем отыскания нуля Vf. Следствие 4.3.3. Пусть /: R"-»-R дважды непрерывно диф- ференцируема в открытом выпуклом множестве DcR". Если x„e.D, Vf(x^)=0 и гессиан V2f непрерывен по Липшицу в х*, причем \!2f(x^ не вырожден, то JC, является точкой локального минимума f тогда и только тогда, когда &^2f(x^,) положительно определен. Необходимые и достаточные условия того, чтобы л"» была точкой локального максимума f, в точности такие же, как для 106 Гл. 4. Основы анализа функций многих переменных случая, когда л-» является точкой локального минимума для —f, а именно: Vf(x«)==0 есть необходимое условие и, вдобавок, необходимо, чтобы ^'2f{x^) был отрицательно полуопределен- ным; отрицательная определенность \v2f{x») является достаточ- ным условием. Если V2^») не является знакоопределенным, то х^ не может быть ни точкой локального минимума, ни точкой локального максимума. Достаточные условия минимума частично объясняют про- явленный нами интерес к симметричным и положительно опре- деленным матрицам в гл. 3. Они приобретают еще более важ- ное значение из-за того, что предлагаемые алгоритмы миними- зации обычно описывают поведение f при приращении р к точке Хс с помощью квадратичной функции те (х, + Р) = f (Хс} + V/ (х,У р + у Р^р. Незначительная модификация доказательства теоремы 4.3.2 показывает, что /Пс имеет единственный минимум тогда и толь- ко тогда, когда Н положительно определено. Таким образом, при построении моделей будут часто использоваться симмет- ричность и положительная определенность матриц Н. Важно представить себе вид графиков квадратичных функций многих переменных: они строго выпуклы или выпуклы соответственно чашеобразны или желобообразны в двумерном случае, когда Н положительно определена или положительно полуопределена; они строго вогнуты или вогнуты (в форме перевернутых чаши или желоба) в тех случаях, когда Н отрицательно определена или отрицательно полуопределена; они имеют вид. седла (в /г-мерном случае), если Н не является знакоопределенной. 4.4. УПРАЖНЕНИЯ 1. Вычислите якобиан следующей системы трех уравнений с тремя неиз- вестными: г х^+4-4 1 FW==\ x,x^ L 2л:1^2 — Зх-гХз + XiXa -I 2. Пусть f: R^R, ^(x)=xзx^+x^x^. Найдите 7/(х) и ^{х). 3. Докажите лемму 4.1.5. 4. Имеется иное 'определение, согласно которому якобианом функции F: R" —>- R" в х i= R" называется линейный оператор J(x) (если он суще- ствует), для которого lim t-ro 4.4. Упражнения 107 Докажите, что если каждая компонента F непрерывно дифференцируема в открытом множестве D, содержащем х, и / соответствует определению 4.1.5, то !(х) = J(x}. Замечание. Существование такого J(x) в (4.4.1) является определением дифференцируемое™ по Гато F в точке х. Более сильным условием на F является его дифференцируемость (в х) по Фреше, когда требуется, чтобы 7(х) е ^пхп удовлетворяло lim ^(х+р)-Р(х)-Т(х)р\\ _ Q р-»о llpll [Более подробную информацию см. в книге Ортеги и Рейнболдта (1970).] 5. Пусть ^^I^"^- x?s0' I 0, х=0. Докажите, что f(x) непрерывно по Липшицу, но не дифференцируемо в точ- ке л: = 0. 6. Докажите лемму 4.1.14. [Указание: вам понадобится обобщение тео- ремы Ньютона на случай двойных интегралов.] 7. Докажите лемму 4.1.15. (Техника доказательства очень похожа на ту, что использовалась при доказательстве леммы 4.1.12.) 8. Если в определении непрерывности по Липшицу равенство (4.1.11) заменить на ||G(a)-GWi|<vll"-^ll° для некоторого к е (О, I], то говорят, что функция G непрерывна по Гёль- деру в х. Покажите, что если предположение непрерывности по Липшицу в лемме 4.1.12 заменить на непрерывность по Гёльдеру, а (4.1.12) заменить на неравенство :1+а || F (х + р) - F (х) - I (х) р || < -j-^-1| р || то утверждение леммы останется в силе. 9. Задано F: R2-^ R2, ' 3xf — 2х3 • /Зх? F (х) = | 1 л-i вычислите !(х} в х=(1,1)1'. Затем примените формулу (4.2.1) для вычис- ления (вручную или на калькуляторе) конечно-разностной аппроксимации J(x} в х = (1, I)7' при А = 0.01. Прокомментируйте точность аппроксимации. 10. Обобщите формулу центральной разности по вычислению Vf(x) на вычисление аппроксимации V2f(x)i^ по центральным разностям, так чтобы использовать только значения самой функции и обеспечить при это'.; асимп- тотическую оценку точности О (А2). (Такая аппроксимация использует- ся при дискретизации некоторых дифференциальных уравнений в частных производных.) Можно сделать предположение, что третья производная от f(x) непрерывна по Липшицу. 108 Гл. 4. Основы анализа функций многих переменных 11. Обобщите методику из упр. 10 на случай нахождения аппроксима- ции V2/^)»;, i ^ J, так чтобы использовались лишь значения самой функции и асимптотическая точность была при этом 0(h2). Какова по сравнению с (4.2.7) трудоемкость этой аппроксимации в терминах количества вычислений функции? 12. Пусть Л, MeR"^, причем М симметрична, и пусть Л= (Л +-4'')/2. Докажите, что \\М — Л \\р s? \\M —А \\г. 13. Завершите доказательство теоремы 4,3.2. 14. Докажите следствие 4.3.3. 15. Пусть имеется квадратичная функция п переменных ]{х) = ==—xтAx+bтx+c, где Л е R"^ симметрична, и е R", с е R. Дока- 2s жите, что она имеет единственный минимум тогда и только тогда, когда Л положительно определена. Что здесь является точкой минимума? Как бы вы ее находили? Напомним, что V/ (х) = Ax + Ь, V2/ (х) = Л. 16. Пользуясь необходимыми и достаточными условиями для задачи безусловной минимизации, докажите, что любое решение А"» е R" линейной задачи о наименьших квадратах вида min }\Ах-Ь\\2, A<:=Rmxn, Ь 6= R"*, ^R" удовлетворяет соотношению (ATA)x^=ATЬ. [Указание: для случая, когда А не является матрицей полного ранга, обобщить упр. 15, рассмотрев по- ложительно полуопределенные матрицы.] Еще одно программное замечание Главы с 5 по 9 составляют сердцевину данной книги. В них рассматривают- ся вопросы разработки алгоритмов для решения многомерных нелинейных уравнений и задач безусловной минимизации. В гл. 5 приводится и обсу- ждается многомерный вариант метода Ньютона. Этот быстро сходящийся локальный метод послужит далее базовой моделью для наших алгоритмов. В гл. 6 представлены основные приемы, используемые в сочетании с методом Ньютона для обеспечения глобальной сходимости нелинейных алгоритмов. В гл. 7 обсуждаются практические соображения относительно критериев останова, масштабирования и тестирования, необходимые для разработки в законченном виде добротного программного обеспечения ЭВМ. В гл. 8 и 9 рассматриваются многомерные варианты метода секущих, которые исполь- зуются вместо метода Ньютона, когда производные недоступны, а вычисле- ние функции трудоемко. Структура гибридного алгоритма решения многомерных задач, как вы- яснится впоследствии, является по существу той же, что в гибридном алго- ритме для одномерных задач, приведенном в гл. 2. Эта аналогия прослежи- вается и на более детальном уровне в определении и анализе локального шага, за исключением того, что конечно-разностные производные становятся более дорогими, а аппроксимации по секущим — гораздо менее очевидными. Однако самое существенное отличие заключается в разнообразии и возрос- шей сложности глобальных стратегий в случае многомерных задач. 5 Метод Ньютона решения (J О нелинейных уравнении и безусловной минимизации В этой главе обсуждаются локальные алгоритмы, предназна- ченные для решения систем нелинейных уравнений и задач безусловной минимизации. Тем самым мы приступаем к рас- смотрению многомерных задач. Здесь сначала приводится метод Ньютона и обсуждаются вопросы его машинной реализации, а также его достоинства и недостатки. В разд. 5.2 и 5.3 используются два различных и имеющих важное значение подхода для доказательства того, что метод Ньютона локально (7-квадратично сходится для большинства задач, однако его сходимость не обязательно будет глобальной. В разд. 5.4 обсуждается конечно-разностный вариант метода Ньютона решения нелинейных уравнений, включая вопрос о практическом выборе длины шага в конечных разностях. Глава заканчивается обсуждением варианта метода Ньютона решения многомерных задач безусловной минимизации (разд. 5.5) и обсуждением вопроса об использовании для этих задач конечно-разностных аппроксимаций производных (разд. 5.6). 5.1. МЕТОД НЬЮТОНА РЕШЕНИЯ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИИ Базовой для изучаемых здесь задач является задача решения системы нелинейных уравнений: задано F: R"-^R", найти л", е R", такое, что F(x^}=0, . (5.1.1) где предполагается, что F непрерывно дифференцируемо. В этом разделе мы выводим формулу метода Ньютона для за- дачи (5.1.1) и обсуждаем налагаемые им условия, вопросы его реализации и особенности его локальной и глобальной сходи- 5.1. Метод Ньютона решения систем 111 мости. Указанные факторы обусловливают дальнейшую работу в книге, которая разворачивается вокруг метода Ньютона по •его модификации и построения алгоритмов, надежных глобаль- но и быстрых локально. Мы опять игнорируем вопросы суще- ствования и единственности решения задачи (5.1.1), полагая, что на практике с этим, как правило, не возникнет никаких проблем. Метод Ньютона для задачи (5.1.1) опять получается из на- хождения корня аффинной аппроксимации для F, соответствую- щей текущему приближению Хс. Эта аппроксимация строится с использованием тех же приемов, что и в случае задачи с од- ной переменной. Итак, F(x,+p)==F(x,}+ \ J(z)dz. J (5.1.2) Поскольку в целях получения аффинной аппроксимации для F относительно приращений р к Хс мы аппроксимируем интеграл в (5.1.2) линейным членом J(Xc) -p, то М, (х, + р) == F (х,} + J (х,} -р (5.1.3) (Me по-прежнему обозначает текущую модель). Затем s" на- ходится из условия Мс (Хс + s^) = 0, что дает нам итерацию метода Ньютона решения (5.1.1). Таким образом, решается си- стема J(x,}sN=-F{x^, ^+=^+5^. (5.1.4) Можно эквивалентным образом взглянуть на эту процедуру, а именно мы находим точку, которая одновременно обращает в нуль аффинные модели п функций, являющихся компонен- тами F. Эти модели имеют вид (МД. (х, + ^) == Д. (^) + Vfi {x,Y s», i = 1, .. ... п. Так как мы не ожидаем, что х+ окажется равным х», а на самом деле будет лишь приближением к л-», более удачным, чем Хс, то давайте построим на базе ньютоновского шага (5.1.4) алгоритм, применяя его итеративно из начального приближе- ния XQ. Алгоритм 5.1.1. Метод Ньютона для систем нелинейных уравнений. Заданы: непрерывно дифференцируемая функция F: R"-*-'?" и A:oS R"; на очередной, k-и итерации решить I(Xk)Sk==— F(Xk), xk^-\= xkJГ Sk. 112 Гл. 5. Метод Ньютона Например, пусть [' х, 4- х, — 3 "1 '•м- ,ri+,;_J Корнями здесь являются (3,0)г и (0,3)7'. Пусть д:о==(1,5)7", тогда первые две итерации метода Ньютона имеют вид Г 1 П V 3~\ J(xo)So=-F(xo): l^ loJ5^'!!?} л-1==л:о+5о==(-.625, 3.625)7', г 1 1 ^ г О /(^,)si=-F(^ Хг == л:1 + Si s (-.092, 3.092)7'. So= i3- 8 11 8 145 272 ^ w. s^= и5. ' ^1= -146 • 4 4 J L 32 J 272 Метод Ньютона в данном случае, по-видимому, работает хорошо, ведь Xi находится уже довольно близко к корню (0,3)^. Здесь проявляется основное преимущество метода Нью- тона: если хо находится достаточно близко к решению х* и якобиан /(х*) не вырожден, то, как показано в разд. 5.2, по- следовательность Xk, вырабатываемая алгоритмом 5.1.1, схо- дится к х» (7-квадратично. Метод Ньютона будет также успеш- но работать на почти линейных задачах, поскольку он находит нуль (невырожденной) аффинной функции за одну итерацию. Отметим также, что если какие-либо компоненты-функции в F аффинны, то каждая итерация, вырабатываемая методом Нью- тона, будет решением этих уравнений, так как используемые им аффинные модели будут для этих функций всегда точными. Например, fi в приведенном выше примере является аффинной, поэтому fi(^i)=fite)(==fi(^) ...)== о. С другой стороны, что касается сходимости из плохих на- чальных приближений, то, естественно, метод Ньютона будет вести себя не лучше, чем в случае задач с одной переменной. Например, если где д:,=(0, O^.fl д:о=(-10, -10)7', то л:, =(-11 +е'°, -11 -^"У^^Х 104, 2.2 X 104)7'. 5.1. Метод Ньютона решения систем 113 Про этот шаг не скажешь, что он очень уД-ачен! По-этому осо- бенности сходимости метода Ньютона указывают'на'то, как его использовать в многомерных алгоритмах. А именно, для нас всегда будет желательно применять его по крайней мере на заключительных итерациях любого нелинейного алгоритма, с тем чтобы использовать его быструю локальную сходимость, но, для того чтобы он сходился глобально, его нужно будет модифицировать. Имеются также две основные проблемы, касающиеся реали- зации итерации алгоритма 5.1.1. Во-первых, якобиан функ- ции F может не быть задан аналитически. Это обычно встре- чается в реальных приложениях, когда, например, F сама не задана аналитически. Таким образом, аппроксимация J(xis) конечными разностями или каким-либо другим, менее дорогим способом является важной задачей, и она служит предметом обсуждения в разд. 5.4 и гл. 8. Во-вторых, J{xk) может быть вырожденной или плохо обусловленной, и тогда не представ- ляется возможным получить достоверное решение S& линейной системы J(Xk)Sk=—F(xk}. Как мы видели в разд. 3.3, описан- ные нами способы разложения матриц могут успешно приме- няться для выявления плохой обусловленности. Таким образом, возможная модификация алгоритма 5.1.1 заключается в том, чтобы внести некоторое возмущение в J{xk}, достаточное, что- бы сделать ее хорошо обусловленной, и перейти к дальнейшим действиям на итерации. Однако такая модификация J(xk} не имеет убедительного обоснования в терминах исходной зада- чи (5.1.1), и поэтому мы ее не рекомендуем. Вместо этого при плохой обусловленности J(xk} мы предпочитаем переходить не- посредственно к такому глобальному методу решения нелиней- ных уравнений (см. разд. 6.5), который соответствует возму- щению линейной модели (5.1.3), вполне осмысленному с точки зрения исходной нелинейной задачи. Рассмотренные выше достоинства и недостатки метода Нью- тона служат ключом к развитию наших многомерных алгорит- мов, поскольку они указывают на свойства, которые желатель- но сохранить, и на области, где могут потребоваться улучшение и модификация. Они сведены в табл. 5.1.2. Таблица 5.1.2. Достоинства и недостатки метода Ньютона решения систем нелинейных уравнений Достоинства 1. л-квтратпчная сходимость из хорошего начального прибли- жения при условии, что 1(х„) не вырождена. 2. Точное решение за одну итерацию для аффинной F (точное на каждой итерации для всех аффинных компонент F). 114 Гл. 5. Метод Ньютона Недостатки 1. Отсутствие глобальной сходимости для многих задач. 2. Необходимость в J{Xk) на каждой итерации. 3. Необходимость в решении на каждой итерации системы ли- нейных уравнений, которая может быть вырожденной или плохо обусловленной. 5.2. ЛОКАЛЬНАЯ СХОДИМОСТЬ МЕТОДА НЬЮТОНА В этом разделе доказывается локальная ^-квадратичная схо- димость метода Ньютона для систем нелинейных уравнений и делаются соответствующие выводы. Техника доказательства аналогична той, что и в случае одной переменной. Она также служит прототипом большинства доказательств сходимости в этой книге. Для заданной векторной нормы Ц-|| через N(x,r) будем обозначать открытую окрестность радиуса г с центром в х, т. е. N(x, r)={jc6=R": \\x-x\\<r}. Теорема 5.2.1. Пусть функция F: R"-»-R" непрерывно диф- ференцируема в открытом выпуклом множестве DcR". Пред- положим, что существуют x^^R"- и г, (3 > 0, такие, что N(x^, г) с: D, F(x^)==0, существует /(д'„)-1, причем II / (х»)-111 :SS (3 и / <= Lipv(./V(x», /•)). Тогда существует s > 0, такое, что для всех XQ G N(Xf, e) последовательность х\,хч, ..., порождаемая соотношением Xkл-\=LXk—J(Xk}~\F{Xk), k=0,l,..., корректно определена, сходится к х» и удовлетворяет неравен- ству ll^+1-^IKPvll^-^.ll2, ^=0,1,.... (5.2.1) Доказательство. Выберем е так, чтобы якобиан J(x) был невырожденным для любых x<^N(x„,s), и затем покажем, что, поскольку локальная погрешность аффинной модели, исполь- зуемой для проведения всех итераций метода Ньютона, имеет порядок 0(11^:^—A'J]2), сходимость ^-квадратична. Пусть e=min{r, ^}. (5.2.2) Покажем индукцией по k, что на каждом шаге выполняется (5.2.1), а также, что II Xk+1 — X, |Г< -у- 1] Xk — X, II, 5.2. Локальная сходимость метода Ньютона 115 и тогда x„+ie=N{x„ в). (5.2.3) Сначала покажем, что якобиан J {хо) не вырожден. Из ||хо— —х || ^ е, непрерывности J по Липшицу в х^ и (5.2.2) следует, что 1 I to)"' [f to) - J to)] II < II / to)"' II II / to) - J to) 11 < <P-Yll^-^ll<P-Y-e<^. Таким образом, из соотношения (3.1.20) для возмущенных мат- риц вытекает невырожденность J(xo) и ^ll/tor'll^-li. (5.2.4) ||^-1||<_____W'll I] •' ^О/ II ^ ————————————————— i - II / tor'I/(^о) - / to)] Следовательно, х\ корректно определено и Xi — х, = XQ — x. — / tor' F(Xo)=Xo — x,—J tor' [F(Xo) — F(x,)}= = J tor' [F to) - F to) - / to) to - ^)]. Заметим, что выражение в квадратных скобках как раз пред- ставляет собой разность между F{x^) и значением аффинной модели Мс{х), вычисленным в х». Поэтому, используя лемму 4.1.12 и (5.2.4), имеем II х, - х, || < || / tor' || || F (х.) - F to) - / to) to - ^о) II < ^p.-J-il^-^II^PYll^-^ll2. Это доказывает (5.2.1). Поскольку \\Хо—х»||< 8 ^ 1/(2ру), имеем II V V II <"' II V V II II •*! —— л, II ^S "2" II -"•О —— •», III что указывает на справедливость (5.2.3) и тем самым завер- шает доказательство для случая k = 0. Идентично проводится доказательство индуктивного предположения. D Константы у и (3 можно объединить в одну константу VRei== == ур, которая по сути есть константа Липшица для измерения относительной нелинейности F в х*, так как й^,)~^)-Л^)]11<1Л^-1||/(х)-/(;с.)||< <PVll^-^.ll=YRel 11^-^.11 для x^N(x^,r}. Следовательно, теорему 5.2.1 можно также трактовать как утверждение о том, что радиус сходимости ме- тода Ньютона обратно пропорционален относительной нелиней- 116 Гл. 5. Метод Ньютона ности F в л'». Относительная нелинейность функции является основным фактором, определяющим поведение этой функции в наших алгоритмах, и все наши теоремы сходимости могли бы быть легко переформулированы и доказаны в терминах этого понятия. Мы остановились на абсолютной нелинейности только потому, что это общепринято и, вероятно, поэтому порождает меньше путаницы. Читатель мог бы поинтересоваться, достаточно ли близки на практике к реальной области сходимости метода Ньютона ее оценки, вытекающие из теоремы 5.2.1. Этот вопрос исследуется в упражнениях, где показано, что оценка е в теореме 5.2.1 рас- считана на худший случай. Она довольно хорошо отражает то, насколько далеко распространяется область квадратичной схо- димости в том направлении из л"*, в котором F более всего нелинейна. С другой стороны, в тех направлениях из х„., в кото- рых F менее нелинейна, область сходимости метода Ньютона может простираться намного дальше. Это один из тех случаев, когда мы должны платить за использование норм в нашем ана- лизе. Ортега и Рейнболдт (1970, с. 411) дали прекрасный истори- ческий обзор анализа сходимости метода Ньютона, включая и проведенный Канторовичем анализ, с которым можно познако- миться в следующем разделе. 5.3. ТЕОРЕМА КАНТОРОВИЧА И ТЕОРЕМА О СЖИМАЮЩЕМ ОТОБРАЖЕНИИ В настоящем разделе формулируется второй результат, ка- сающийся сходимости метода Ньютона. Он отличается от пер- вого. Этот сильный результат был получен Канторовичем (1948). Будет также показано, что относящиеся к нему предположения и методика его доказательства связаны с классическим резуль- татом, касающимся сходимости итерационных алгоритмов и из- вестным как теорема о сжимающем отображении. Несмотря на то что ни один из этих результатов не будет далее непосред- ственно использован в книге, они представляют собой две кра- сивые и сильные теоремы, и их должны знать все те, кто изу- чает нелинейные задачи. Теорема Канторовича отличается от теоремы 5.2.1 главным образом тем, что она не предполагает существование решения Р(х,)=0. Вместо этого она показывает, что, если якобиан J(xo) не вырожден, / непрерывен по Липшицу в некоторой области, содержащей Хо, и первый шаг метода Ньютона достаточно мал относительно нелинейности F, то в этой области должен су- ществовать корень и, более того, быть единственным. За эти более слабые предположения мы платим тем, что здесь доказы- 5.3. Теорема Канторовича 117 вается лишь /--квадратичная скорость сходимости. Продолжая знакомство с книгой, читатель увидит, что для большинства ме- тодов получение наилучших оценок скорости сходимости требует в каждом случае своего отдельного доказательства. Теорема 5.3.1 (Канторович). Пусть г > 0, Хо s R", F: R"-^ R", и предположим, что функция F непрерывно дифференцируема в N{xQ,r). Пусть для заданных векторной и индуцированной операторной норм / s Lipv(^V(xo, г)), причем J {хо) не вырожден, и существуют константы (3, T) ^ 0, такие, что i! {хо}~1 <P, I-W^M^A. Введем обозначения YRei=Pv> ct==YReii1. Если ci^— и г>:/-о= =s(l — Vl —2а)/(ру)> то последовательность {х/с}, задаваемая соотношением Xk+l=Xk—J(Xk)~t F(Xk), ^==0,1,..., корректно определена и сходится к Хц., который является един- ственным нулем F в замыкании множества N{xo,ro). Если же в этом случае а < -п-, то х^ будет единственным нулем F в N(xo, т-i), где ri=3min[r, (l + л/1 - 2а)/((3у)], и Й==0, 1, ... . (5.3.1) Теорема 5.3.1 имеет довольно длинное доказательство. Его схема дана в упр. 6—8. В ее основе лежит простая и весьма здравая идея. Итак, зафиксируем в п-мерном пространстве ите- рации XQ, х\, ... и протянем нить, соединяющую их в указанном порядке. Пометим на нити те места, где находятся х^, а затем вытянем ее в одну прямую, возможно, при этом немного растя- нув ее в длину. То, что в результате получится, представляет собой линейный сегмент, состоящий из последовательности верх- них оценок для расстояний \\Xk+\—Xk\\, k = О, 1, ... . Доказа- тельство теоремы Канторовича по существу показывает, что для любой последовательности {х/г}, построенной согласно предпо- ложениям теоремы 5.3.1, эти расстояния меньше или равны со- ответственно \tk+i—tk\- Последние получаются, если приме- нить метод Ньютона, начиная с to = 0, к функции f:R^R, f(/)==^^-^+f (видно, что она удовлетворяет условиям теоремы 5.3.1). По- скольку последовательность {tk} сходится монотонно к мень- 118 Гл. 5. Метод Ньютона шему корню /,==(l — V1 —2ct)/(Pv) функции f(t}, общая длина части х-нити, лежащей за Xk, не должна превосходить \tk—t^\. Таким образом, {хь} является последовательностью Коши и по- этому она сходится к некоторому х„, причем погрешности \\Xk—^«11 ограничены ^-квадратично сходящейся последователь- ностью \tk—t^\. Эта методика доказательства называется ма- жоризацией. Она нигде не использует конечность размерности пространства R". Говорят, что последовательность {tic} мажори- рует последовательность {х/г}- Дальнейшее развитие доказатель- ства можно найти в упражнениях или, например, в работе Дэн- ниса (1971). Благоприятным обстоятельством в теореме Канторовича яв- ляется то, что она не предполагает существования х# и невы- рожденности J(x^); в действительности существуют функции F и точки хо, которые удовлетворяют условиям теоремы 5.3.1, хотя /(х*) вырожден. Неудачным моментом здесь является то, что /"-порядок сходимости ничего не говорит о продвижениях на каждой итерации, а даваемые теоремой оценки погрешности на практике часто слишком неточны. Но это не так важно, так как Дэннисом (1971) показано, что -^•\\Xk+i—Xk\\<^\\Xk—xJ<^2\\Xk+i—Xk\\. Кроме того, проверку предположений теоремы 5.3.1 традиционно представляют себе как выяснение вопроса о том, будет ли ме- тод Ньютона сходиться из некоторого хо для конкретной функ- ции F. Однако на практике фактически всегда для тщательной оценки константы Липшица у требуется больше труда, чем для того, чтобы просто попробовать метод Ньютона и посмотреть, сходится он или нет. Так что, за исключением частных случаев, практическим приложением это не назовешь. Теорема Канторовича по своему виду очень сходна с теоре- мой о сжимающем отображении. Это — другая классическая теорема. Она рассматривает произвольный итерационный метод вида Xfc+i = G{xk) и устанавливает условия, касающиеся G, при которых последовательность {Xk} будет сходиться (7-линейно к точке л", из любой точки хо в области D. Более того, доказы- вается, что х* является единственной точкой в D, такой, что G(x*)=x„. Таким образом, теорема о сжимающем отображении представляет собой более общий, но вместе с тем и более сла- бый результат, чем теорема Канторовича. Теорема 5.3.2 (теорема о сжимающем отображении). Пусть G: D->-D, где D есть замкнутое подмножество R". Если для не- которой нормы 11-И существует ссе [О, 1), такое, что \\G{x)-G(y}\\<^a\\x-y}\, V;c, </eD, (5.3.2) 5.4. Методы с конечно-разностными производными 119 ТО: (a) существует единственное x,^.D, такое, что G (л:,) == х»; (b) для любых XQ е D последовательность {Xk}, удовлетво- ряющая соотношению Xk+i = G{xk), k == О, 1, ..., сходится ^-ли- нейно к х# с константой а; (c) для любого т] ^ ||G(xo)—^oll, т|а" 1 —a' k==0, 1, . Итерационная функция G, удовлетворяющая (5.3.2), назы- вается сжимающей в области D. Из этого свойства следует, что, начиная из любой начальной точки XQ е D, длина шага Цх^-ц — —Xk\\ уменьшается на каждой итерации по крайней мере на сомножитель к, так как II ^+i - Xk || = || G (Xk) - G {Xk-,} II < a I) Xk - Xk-i II. (5.3.3) На основе (5.3.3) легко показать, что {Xk} мажорируется ^-ли- нейно сходящейся последовательностью. Отсюда как следствие, доказательство которого оставляем в качестве упражнения, вы- текает теорема 5.3.2. Таким образом, доказательства теоремы Канторовича и теоремы о сжимающем отображении тесно свя- заны. Теорему о сжимающем отображении можно применить к за- даче (5.1.1), задав итерационную функцию G(x), так чтобы G{x)=x в том и только в том случае, когда F(x)=0. Приме- ром служит G (х) = х — AF (х), где Л е R^» не вырождена. (5.3.4) Тогда эту теорему можно использовать для выяснения суще- ствования какой-либо области D, такой, что точки, генерируемые итерационной функцией (5.3.4) из XQ е D, будут сходиться к корню функции F. Однако теорема о сжимающем отображении может быть использована для установления только линейной сходимости, поэтому она в целом непригодна для методов, рас- сматриваемых в данной книге. 5.4. МЕТОДЫ С КОНЕЧНО-РАЗНОСТНЫМИ ПРОИЗВОДНЫМИ ДЛЯ РЕШЕНИЯ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИИ В этой главе обсуждается влияние на метод Ньютона замены аналитически заданного якобиана У(л-) на конечно-разностную аппроксимацию, построенную в разд. 4.2. Легко показать, что, если длина конечно-разностного шага выбрана надлежащим 120 Гл. 5. Метод Ньютона образом, то сохраняется (/-квадратичная сходимость метода Ньютона. Обсуждаются также практические способы выбора длины шага с учетом влияния машинной арифметики. Для боль- шинства задач, и это продемонстрировано на одном примере, метод Ньютона с использованием аналитических производных и метод Ньютона с надлежащим выбором конечных разностей фактически неразличимы. Теорема 5.4.1. Пусть F и х^ удовлетворяют условиям теоремы 5.2.1, где 11-11 обозначает векторную А-норму и соответствую- щую индуцированную матричную норму. Тогда существуют е, h > 0, такие, что если {hk} есть последовательность действи- тельных чисел, причем 0<|/i<:|s$/i и ХоеМ(х^б), то последо- вательность х\, xs, ..., задаваемая формулами , j== 1,..., п, k=0,\, .... (5.4.1) Xk+\=Xk— Ak^ixk), корректно определена и сходится ^-линейно к х^. Если lim /4=0, k->0 то сходимость (/-сверхлинейна. Если существует некоторая кон- станта Ci, такая, что \hk\<Ci\\Xk-xJ, (5.4.2) или, что эквивалентно, константа с-г., такая, что l^|<C2l|F(^)||, (5.4.3) то сходимость (/-квадратична. доказательство. Доказательство аналогично тому, что было дано для теоремы 5.2.1 в комбинации с доказательством тео- ремы 2.6.3, где рассматривался конечно-разностный метод Ньютона в одномерном случае. Выберем в и А, так чтобы мат- рица А/г была невырожденной для любых Xk^N(x^.,e,} и \hk\ < h. Пусть в ^ г и е+А<^, (5.4.4) где г, р, у определены в теореме 5.2.1. Сначала покажем индук- цией по k, что на каждом шаге •:N(x,,r). (5.4.5) 5.4, Методы с конечно-разностными производными 121 Для k = 0 покажем прежде всего, что Лц не вырождена. Из неравенства треугольника, леммы 4.2.1, непрерывности / по Лип- шицу в л:., \\Хо—-fJl^e и (5.4.4) вытекает 1 [Л„ - / (хо)] + [/ (-4) - / (х.)] 1К <р(^+ув)<у. (5.4.6) Поступим теперь как при доказательстве теоремы 5.2.1. Из соот- ношения (3.1.20) для возмущенных матриц и неравенства (5.4.6) следует, что Ло не вырождена и ИЛо"1!^?. (5.4.7) Поэтому х\ корректно определено и х, - х, == Ло-1 ([F (^) - F (хо) - J (ху) (л:. - д:о)] + +[(/(хо)-Ло)(х.-^о)]). Заметим, что эта формула отличается от соответствующей ей в анализе метода Ньютона только тем, что /(л:о)~1 здесь заме- нено на Ло~1 и добавлено слагаемое (/(хо)—Ло) (д"»—Хо). Ис- пользуя теперь леммы 4.1.12 и 4.2.1, а также неравенства (5.4.7), \\хо—д'*11^ в и (5.4.4), мы убеждаемся, что || Xi - х. || < || Ло-' || [|| F (х,) - F (хо) - / (хо) (х. - Хо) || + х,\\. Это доказывает неравенство (5.4.5). Идентично проводится до- казательство индуктивного предположения. Для доказательства (/-сверхлинейной и ^-квадратичной схо- димости, которое мы оставляем в качестве упражнения, необ- ходимо получить улучшенную оценку величины ||Лд—J(xic)\\. Эквивалентность (5.4.2) и (5.4.3) можно просто показать, ис- пользуя лемму 4.1.16. D Как и в случае одной переменной, теорема 5.4.1 не указывает нам, как в точности следует выбирать длину конечно-разно- стного шага на практике. Это вызвано тем, что здесь опять имеются два взаимно противоречивых источника ошибок, воз- никающих при вычислении конечно-разностных производных. Рассмотрим конечно-разностное соотношение (5.4.1). При этом опустим ради удобства нижний индекс k, отвечающий номеру итерации. По лемме 4.2.1 ошибка аппроксимации (J{x)).j с по- 122 Гл. 5. Метод Ньютона мощью А., равна 0(fh) в точной арифметике, что наводит на мысль выбирать h настолько малым, насколько это возможно. Однако при малых значениях h существенно сказываются дру- гие ошибки в (5.4.1), связанные с вычислением в арифметике конечной точности числителя этой формулы. Поскольку там чис- литель делится на h, ошибка б в числителе приводит в (5.4.1) к ошибке 6//1. Относительно этой ошибки в числителе, которая проистекает из неточных значений функции и из потери точ- ности при их вычитании, можно с достаточным основанием ска- зать, что она составляет лишь малую часть от F(x). В действи- тельности если h слишком мало, то х + he/ может быть на- столько близким к х, что F(x-\-hej)^F(x), и поэтому Л., может вовсе не иметь достоверных разрядов, или если иметь, то очень мало. Таким образом, ft должно выбираться так, чтобы сбалан- сировать в (5.4.1) ошибки 0(yh) и 0(F(x)/h). Если F(x) имеет t достоверных разрядов, то целесообразно стремиться к тому, чтобы Р(х-\-Ье,') отличалось от F(x) правой половиной этих разрядов. Точнее говоря, если относительная ошибка при вычислении F(x) равна т) (т) представляет собой от- носительный уровень шума), то мы хотели бы иметь \F(x+he,)-F(x}\\ ^ - ——„^у|———<Ул, /-1, п. (5.4.8) При отсутствии какой-либо дополнительной информации разум- ный способ удовлетворить (5.4.8) заключается в использовании каждой компоненты х, своей собственной для возмущения длины шага h, = УЛ х,, (5.4.9а) которая отвечает относительному изменению -\/г\ на величину X,. Тогда А., вычисляется по формуле _ F (х + h,e,) - F (х} А-'-—————7Г,——————• (5.4.9Ь) Для удобства мы до сих пор предполагали, что используется одинаковая длина шага h для всей конечно-разностной аппрок- симации, однако нет оснований так поступать на практике. Бо- лее того, единая длина шага может привести к пагубным по- следствиям, если компоненты вектора х сильно различаются по величине (см. упр. 12). Теорему 5.4.1 легко переработать, оста- вив ее в силе и в случае, когда для каждой компоненты исполь- зуется своя длина шага п,. В случае когда F(x) задана простой формулой, разумно по- лагать f] si macheps, и тогда длина шага h, есть Vmacheps • Xj. 5.4. Методы с конечно-разностными производными 123 Пример 5.4.2. F (х) = | ). ^==(2,3), х,= Вычисления на ЭВМ с 48 двоичными тачных разрядов): Метод Ньютона, аналитические производные (l-lf- разрядами (s^l4.4 деся- Метод Ньютона конечные разности при hj= Ю-7)^/! [2, 3J /0.57465515807б08'\ V2.1168965612826 ) '/0.31178766389307 \ \ 1,5241979559460 ) /1.4841388323960\ \ 1.1464779176945 / /1.0592959013664\ V.03481946251837 /I.0008031050945\ \1.0014625483617/ /0.99999872187461\ \ 1.0000026672636 / /0.99999999999548\ ^1.0000000000089 / 4 б 2.7182818284590 27 (2, 3) /0.574б5515450268'\ \2.1168966735234 / /0,31178738552306^ \1.5241981016335 / /1,4841386151178'\ \ Г. 1464781318492У /1.0592958450507\ V.0348195092235V /1.000803105608Л VI.0014625533494; /0.99999872173640\ V.0000026674316 / /0.99999999999535\ \ 1.0000000000091 / 4.0000003309615 6.0000002122252 2.7182824169358 27.000002470838 В примере 5.4.2 сравниваются конечно-разностный метод Нью- тона, использующий (5.4.9) при T] =3== macheps, и метод Ньютона, использующий аналитические производные, причем начальная точка для них одна и та же. Читатель увидит, что результаты, 124 Гл. 5. Метод Ньютона включая значения производных, фактически неразличимы. Обычно это имеет место и на практике. По этой причине многие пакеты программ даже не допускают возможности использова- ния аналитических производных, вместо которых они применяют конечные разности. Хотя мы не сторонники таких крайних мер, все же следует подчеркнуть, что, видимо, основной причиной ошибок при использовании программного обеспечения по реше- нию каких-либо нелинейных задач является неверное програм- мирование производных. Таким образом, если предоставлены аналитические производные, мы настоятельно рекомендуем, что- бы они были проверены на соответствие с конечно-разностной аппроксимацией в начальной точке хо. Если F(x} вычисляется очень длинной программой или ите- рационной процедурой, то г\ может оказаться гораздо больше, чем macheps. Когда т] настолько велико, что можно ожидать неточность в конечно-разностных производных (5.4.9), тогда следует, вероятно, воспользоваться вместо этого аппроксима- цией J(x) по секущим (см. гл. 8). Это относится и к случаю, когда недопустимы издержки, связанные с п дополнительными вычислениями F(x) на каждой итерации для получения Л. Алгоритм для вычисления конечно-разностных якобианов представлен в приложении А алгоритмом А5.4.1. Так как фор- мула (5.4.9а) может дать неприемлемо малое значение h/, когда Xj подходит близко к нулю, в алгоритме она несколько видоизменена, так что hj == VT) max {[ х, |, typ л-/} sign (х/), (5.4.10) где typ x/ представляет собой характерный размер х/, задавае- мый пользователем (см. упр. 7.1). В заключение укажем кратко, как длина шага (5.4.10) мо- жет быть отчасти обоснована анализом. Естественно предполо- жить, что х, есть некоторое точное машинное число. Для упро- щения анализа предположим, что х, + h, также есть некоторое точное машинное число, причем х, + h, =^ х,. Это имеет место, когда hj вычисляется по какому-либо правилу выбора длины шага, которое гарантирует, что | h, \ > macheps |x/[, и тогда, прежде чем использовать hj в (5.4.9Ь), проводятся вычисления') temp == Xj + hj, hj == temp — Xj. Этот прием улучшает точность, поэтому мы используем его на практике. Теперь легко убедиться, что погрешность, возникаю- щая при вычислении А., по формуле (5.4.9Ь) из-за ошибок округ- ') Здесь temp есть сокращение от temporary (временный).—Прим. перев. 5.5. Метод Ньютона безусловной минимизации 125 ления и погрешностей вычисления функции, ограничена вели- чиной 2 (т] + macheps) F ic, л )\\ \hj\ ' (0.^4) где Р есть верхняя граница для ||.F(x)H при х <= [х, х + h,e,\. [Мы не включаем сюда пренебрежимо малые ошибки от деле- ния в (5.4.9Ь).] Кроме того, по лемме 4.2.1 разница в точной арифметике между А., и J(x)., ограничена величиной ^1, (5.4.12) где у, есть константа Липшица, такая, что ||[/(д;+^/)-/(л:)]./||<у/Ш для всех te.[Q,h,}. Значение ft„ "минимизирующее сумму вели- чин (5.4.11) и (5.4.12), равно ^^4(т,+ macheps) p^ ^.13) При достаточно разумных предположениях (см. упр. 14) о том, что .), F (max {| х, [, typ х,}} (5.4.13) сводится к (5.4.10) с точностью до некоторого постоян- ного множителя со знаком. Заметим в заключение, что прове- денный анализ можно модифицировать с учетом абсолютной погрешности в вычисленном значении F(x). 5.5. МЕТОД НЬЮТОНА БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ Рассмотрим теперь метод Ньютона для задачи min f: R"->R, x<=R" (5.5.1) где предполагается, что f дважды непрерывно дифференци- руема. Точно так же как в гл. 2, мы моделируем f в текущей точке Хс квадратичной функцией т, (х, + р) === f (х,) + Vf (xf р + ^ p^f (х,) р и находим точку х+ = Хс + s,v. Здесь У/Пс(^+)=0 является не- обходимым условием того, что х+ есть точка минимума для те- Это соответствует следующему алгоритму: 126 Гл. 5. Метод Ньютона Алгоритм 5.5.1 (метод Ньютона для безусловной минимиза- ции). Заданы: дважды непрерывно дифференцируемая функция f: R"-> R и л-о<= R"; на каждой итерации k решить У^(^)5^=—У/(^), "k+\ — у -L. oN ~~ •"'ft1 "fe- Алгоритм 5.5.1 просто является применением метода Нью- тона (алгоритм 5.1.1) к системе Vf(x)=0 из п нелинейных урав- нений с п неизвестными, так как в нем на каждой итерации делается шаг в нуль аффинной модели для Vf, определяемой как Mk (Xk + р) = V [mk (Xk + р)] = V/ (Xk) + V2/ (Xk) p. С этой точки зрения некоторые из достоинств и недостатков алгоритма для решения задачи минимизации (5.5.1), несом- ненно, совпадают с приведенными в табл. 5.1.2. Положительным здесь является то, что если XQ достаточно близко к точке ло- кального минимума х» функции f с невырожденной матрицей У^(х») (и поэтому положительно определенной согласно след- ствию 4.3.3), то последовательность {х^, генерируемая алго- ритмом 5.5.1, будет сходиться ^-квадратично к х„, что с очевид- ностью продемонстрировано примером 5.5.2. Кроме того, если f—строго выпуклая квадратичная функция, то Vf аффинно и поэтому х\ будет единственной точкой минимума f. Пример 5.5.2. Пусть функция ^„X,)==(;c,-2y+(^-2)2^+(^+l)2 имеет минимум в х*==(2,—I)7. Алгоритм 5.5.1, стартующий из xo=(l,\)т, вырабатывает следующую последовательность то- чек (с точностью до восьми цифр на ЭВМ CDC при одинарной точности)' ,/К) Хо = =(1.0 , 1.0 )7' 6.0 Xi = =(1.0 , -0.5 f 1.5 Хд = =(1.3913043 , - 0.69565217)7' 4.09 X 10-1 ^з = .(1.7459441 , -0.94879809)7 6.49 X 10-2 Х4- =(1.9862783 , -1.0482081)'' 2.53 X 10-' -^ '- = (1.9987342 , -1.0001700)'' 1.63 X Ю"6 xь= =(1.9999996 , - 1.0000016)''' 2.75 X 10-12 5.5. Метод Ньютона безусловной минимизации 127 Что касается отрицательных сторон алгоритма 5.5.1, то он разделяет с методом Ньютона для решения F(x)=0 его недо- статки и имеет к тому же дополнительный минус. Старые труд- ности заключаются в том, что метод не сходится глобально, требует решения систем линейных уравнений и аналитически заданных производных, причем в данном случае это V^ и V2/. Указанные вопросы обсуждаются в такой последовательности: конечно-разностная аппроксимация производных для задач ми- нимизации в разд. 5.6, глобальные методы в гл. 6, а аппрокси- мация гессиана по секущим ') в гл. 9. Мы должны также принять во внимание тот факт, что даже как локальный, метод Ньютона не приспособлен специальным образом для задачи минимизации, поскольку в нем нет ничего, что удерживало бы его от продвижения в сторону максимума или седловой точки функции f, где V/ тоже равен нулю. С точки зрения моделирования трудность в случае алгоритма 5.5.1 со- стоит в том, что каждый шаг направляется просто-напросто в сторону стационарной точки локальной квадратичной модели независимо от того, является ли стационарная точка миниму- мом, максимумом или седловой точкой модели. Этот шаг оправ- дан при попытке минимизировать f(x), только когда гессиан V^(^c) положительно определен, т. е. когда критическая точка есть точка минимума. Даже если метод Ньютона рассматривать прежде всего как локальный метод, который следует применять, когда Хс достаточно близко к точке минимума, где ^}(хс) по- ложительно определен, то мы все же хотели бы провести неко- торую полезную адаптацию в случае, когда ^f(Xc) не является положительно определенной. Имеются, по-видимому, две приемлемые модификации ме- тода Ньютона для случая, когда ^2}(xc) не является положи- тельно определенной. Первая заключается в попытке использо- вать внешний вид модели, в частности «направления отрица- тельной кривизны» р, для которых pтV2f(xc)p <0, с тем чтобы быстро уменьшить f(x). Было приложено немало усилий к раз- работке таких стратегий [см., например, Морэ и Соренеен (1979)], но они пока еще не оправдали себя. Мы рекомендуем вторую альтернативу, которая заключается в том, чтобы изме- нять модель, когда это необходимо, так чтобы она имела един- ственную точку минимума, и затем воспользоваться этой точ- кой минимума для определения ньютоновского шага. В частно- сти, мы увидим в гл. 6, что имеется несколько доводов в пользу выбора шагов вида —(V2f(Xc)-{-v,cI}~l\/f(Xc), где (Ac $s 0, а У^х^+Цс/ положительно определена Поэтому, когда 'V2f(Xc) не является положительно определенной, рекомендуется заме- 1) В оригинале secant approximations of the Hessian.—Прим. перев. 128 Гл. 5. Метод Ньютона нять гессиан модели на ^2f{xc)-!г^c^, где (Лс > 0 в идеале не- намного превышает то наименьшее (J,, которое делает V2^^)^- |^/ положительно определенной и достаточно хорошо обусловлен- ной. Наш алгоритм, выполняющий это, обсуждается в конце данного раздела. Он представляет собой некоторое видоизмене- ние модификации разложения Холесского, приведенной в книге Гилла, Мюррея и Райт (1981, с. 147). Результатом является следующий вариант метода Ньютона. Алгоритм 5.5.3. Модифицированный метод Ньютона безус- ловной минимизации Заданы: дважды непрерывно дифференцируемая функция /: R"->- R и XQ e R"; на каждой итерации k'. применить к 'V2f(xtг) алгоритм А5.5.1 для нахождения разло- жения Холесского матрицы Hk = V2/(.<&)+ V^kl, где ^ = О, если У2f(xk) надежно положительно определена'), и [\.k > 0 доста- точно велико, так что Hk надежно положительно определена, в противном случае: решить Н,^ = - Vf (^), fe+i Если у.о достаточно близко к точке минимума х* функции f и если V2/^*) положительно определена и достаточно хорошо обусловлена, то алгоритм 5.5.3 будет эквивалентен алгоритму 5.5.1 и, следовательно, будет (7-квадратично сходящимся. Пере- смотренный вариант доказательства леммы 4.3.1 покажет, что алгоритм 5.5.3 имеет дополнительное преимущество, состоя- щее в том, что модифицированное ньютоновское направление —H^\f(xc) является направлением, в котором любая дважды дифференцируемая функция f(x} начинает уменьшаться из лю- бой точки Хс. Алгоритм 5.5.3 также имеет две важные интерпретации в терминах квадратичных моделей функции f(x). Первая заклю- чается в том, что он полагает х+ равным точке минимума Хс + р для аппроксимации ГПс (X, + р) = f (X,) + W {xf Р + у Р^сР. ') То есть не только положительно определена, но также и достаточно хорошо обусловлена.—Прим. перев. S.5. Метод Ньютона безусловной минимизации 129 В разд. 6.4 мы убедимся, что х+ есть также точка минимума не- модифицированной модели пгс {Хс + Р) = / (х,) + Vf (xf р + -} /W (Хс} при наличии ограничения \\P\W(x+-x,}\\,, что, возможно, является более привлекательным объяснением. Обе интерпретации можно использовать для объяснения основ- ной проблемы, связанной с модифицированным ньютоновским алгоритмом: в некоторых ситуациях он может вырабатывать чрезмерно большие шаги s^. Эта проблема будет рассмотрена вполне удовлетворительным образом в гл. 6. Длину шага можно отрегулировать, если поработать с параметрами алгоритма А5.5.1. Однако любая такая регулировка слишком сильно зави- сит от характерных масштабов задачи, чтобы ее включать в алгоритм общего назначения. Мы завершаем этот раздел кратким описанием нашего алго- ритма (алгоритм А5.5.1 приложения), в котором определяется как цс ^ 0, такое, что Не = у^(Хс)-}- ^с/ положительно опреде- лена и хорошо обусловлена, так и разложение Не по Холес- скому. Хотя этот алгоритм является центральным в нашем про- граммном обеспечении по минимизации, все же он имеет не на- столько решающее значение, чтобы читатель изучал его в де- талях. Ясно, что наименьшее среди возможных ^с (в случае, когда \f2f(xc) не является положительно определенной) несколько больше, чем абсолютная величина крайнего слева отрицатель- ного собственного значения матрицы \?2f(xc). Несмотря на то что его можно вычислить без слишком больших хлопот, мы ре- шили предоставить гораздо более простой алгоритм, который может приводить к большим |д.с. Применим сначала алгоритм Гилла и Мюррея модифицированного разложения Холесского к \/2f(xc), что даст в результате V2f(A"c)+ D = LU, где D есть диагональная матрица с неотрицательными диагональными эле- ментами, которые равны нулю, если \f2f(Xc) надежно положи- тельно определена. Если D = 0, то ц.с = 0, и этим завершаем ра- боту алгоритма. Если D ^ 0, то вычисляем верхнюю границу Ь\ для цс, используя теорему о кругах Гершгорнна (теорема 3.5.9). Поскольку величина &2 == rnax {da} 1 < 1 < П также представляет собой верхнюю границу для ^г, то пола- гаем цс = mi.n{&i, b-г} и завершаем работу алгоритма вычисле- нием разложения Холесского для Не == V2f(xг}+ ^с1. 5 Зак. 660 130 Гл. 5. Метод Ньютона 5.6. МЕТОДЫ С КОНЕЧНО-РАЗНОСТНЫМИ ПРОИЗВОДНЫМИ ДЛЯ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ В этом разделе рассматривается влияние на метод Ньютона для безусловной минимизации, которое оказывает замена конечно- разностными аппроксимациями аналитических производных Vf(x) и \/2f(x), а также практический выбор длины шага при вычислении этих аппроксимаций. Мы увидим, что здесь имеется несколько существенных отличий в теории и в практике от ис- пользования конечно-разностных якобианов, рассмотренных в разд. 5.4. Обсудим сначала использование конечно-разностных аппрок- симаций гессианов. В разд. 4.2 мы видели два способа аппрок- симации ^2f(xc) конечными разностями: один, когда Vf(x) задан аналитически, а другой, когда не задан. Обе аппроксимации удовлетворяют оценке II A.-V2^) 11= О (/г,) (he—длина конечно-разностного шага) при стандартных пред- положениях, и поэтому, используя ту же технику, что в доказа- тельстве теоремы 5.4.1, легко показать, что если he = 0(1|ес||), где вс = Хс—л"*, то метод Ньютона, использующий конечно-раз- ностные гессианы, сходится по-прежнему (7-квадратично. Остает- ся вопрос о выборе длины конечно-разностного шага на прак- тике. Если V/(A") задан аналитически, то Ас вычисляется по фор- мулам Л. Vf(x,+h,e,}-Vf(x,) hi Л+Л7' / = 1, ..., п, (5.6.1а) (5.6.1Ь) Поскольку (5.6.1 а) представляет собой ту же самую формулу, как в случае конечно-разностных якобианов, то рекомендуется. та же самая длина шага h,- = л/Л max {| x, \. typ x,} sign (.r,), (5.6.2) где T] ^ macheps есть оценка для относительной погрешности вычисления V/(-v). Для этой аппроксимации используется алго- ритм А5.6.1. Напомним, что мы ожидаем получать правильной примерно первую половину разрядов ^2f(xc} при условии, если Vf(x) вычисляется точно (см. приведенный ниже пример 5.6.1). 5.6. Методы с конечно-разностными производными 131 Вспомним, что, когда Vf(x} не задан аналитически, Ас вы- числяется по формуле ,,, _ [f (x, + h,e, + h,e,) - f (x, + /^,)] - [f (x, + h,e,) - f (x,)} Wii— h{hj (5.6.3) 1<г</</г. Пример 5.6.1 показывает, что использование длины шага (5.6.2) в этой формуле может иметь катастрофические последствия. Пример 5.6.1. Пусть задана f(xi,Xs), как в примере 5.5.2, и пусть Хс = (1, 1)г. Тогда №[-': -:]• Если V^-fc) аппроксимируется по формуле (5.6.1) с использо- ванием hj == Ю-7^/ на ЭВМ CDC с 48 двоичными разрядами (^14.4 десятичных разрядов), то в результате имеем А. Г 13.999999737280 —4.00000018885291 c ~ L - 4.000001888529 4.0000003309615 J' Однако если V^^c) аппроксимируется по формуле (5.6.3) с ис- пользованием той же самой длины шага, то в результате имеем Г 19.895196601283 -5.68434188608081 /\ —— | | c L-5.6843418860808 0 J Если длину шага в (5.6.3) заменить на h,= Ю-4^', то в резуль- тате имеем __Г 13.997603787175 — 4.0000003309615 -j с — [ -4.0000003309611 3.9999974887906 J ' Неверные результаты во втором случае примера 5.6.1 легко объяснить. Если взять, как это было в примере, hi == л/macheps Xi и h, = -\/macheps л"/, то знаменатель в (5.6.3) окажется равным (macheps •Хг x/). Поскольку числитель в (5.6.3) будет, вероятно, вычисляться с ошибками конечной арифметики, по меньшей мере равными macheps- \f(Xc} |, то (Лс);у будет иметь ошибку в конечной арифметике, по меньшей мере равную \f(Xc)\/\Xi-Xi\, что не должно быть малым по сравнению с V^^c);/. Мы часто сталкивались с тем, что формула (5.6.3) давала полностью не- верные результаты при использовании длины шага (5.6.2), при- чем нуль является довольно обычным результатом в нашей практике. [ЕСЛИ в нашем примере взять h^==\0~sx^, то по- лучим') /85.2+ 0 \-I _______ '"Л О 85.2+^'J ') Запись «85.2+» означает «85.2 с избытком». —Прим. перев. 5* 132 Гл. 5. Метод Ньютона Такие же рассуждения и анализ, как и в разд. 5.4, показы- вают, что следует выбирать вместо рассмотренного способа длину конечно-разностного шага в формуле (5.6.3) так, чтобы этим вносить возмущение в правые две трети достоверных раз- рядов f(xc). Это можно обычно сделать, выбирая h, == т]'/3 max {| x, \, typ x/} sign {х,} (5.6.4) или выбирая во многих случаях просто h, =(macheps}\/зx^. Здесь У] ^ macheps есть по-прежнему относительная ошибка при вы- числении f(x). Эта длина шага довольно хорошо работает на практике, как продемонстрировано в последнем из рассмотрен- ных в примере 5.6.1 случаев, где использовалось /г/= 10-4;»:, и было получено по меньшей мере четыре верных разряда в каж- дой компоненте V'^f{Xc). Алгоритм А5.6.2 в приложении А—это наш алгоритм для вычисления конечно-разностных гессианов с использованием значений функции по формуле (5.6.3) с длиной шага (5.6.4). Заметим, что разумно ожидать получения верных значений первой трети разрядов \/2f{x), причем число верных разрядов будет даже меньше, если f{x} представляет собой функцию, вычисляемую с высоким уровнем помех. Резюмируя, отметим следующее. Когда гессиан непосред- ственно не задан аналитически, его аппроксимация либо по ко- нечно-разностному алгоритму А5.6.1, использующему аналити- чески заданные значения Vf(^), либо по алгоритму А5.6.2, ис- пользующему только значения функции, не изменит, как пра- вило, поведение метода Ньютона. Вместе с тем ясно, что алго- ритм А5.6.1 предпочтительнее, если ^f(x) задан аналитически. Если f(x} вычисляется с довольно высоким уровнем помех, то алгоритм А5.6.2 может оказаться неудовлетворительным, и тогда, вероятно, вместо него следует использовать аппроксима- цию V2f(x) по секущим (см. гл. 9). Аппроксимация гессиана по секущим должна, несомненно, использоваться, когда слишком велика стоимость конечно-разностной аппроксимации, опреде- ляемая п вычислениями ^f{x} пли (п2 + Зп)/2 вычислениями f(x) за итерацию. Перейдем теперь к конечно-разностной аппроксимации гра- диента в алгоритмах минимизации. Читатель может догадаться, что этот вопрос будет еще более трудным, чем аппроксимация якобиана и гессиана, так как градиент является величиной, ко- торую в алгоритмах минимизации мы стараемся сделать нуле- вой. Поэтому конечно-разностная аппроксимация градиента должна производиться с высокой степенью точности. Напомним, что у нас имелись две формулы для аппроксима- ции Vf(Xi) по конечным разностям: формула разностей вперед flx„+h,e,}—f(x„} (gc}t= V- / /==!,...,«, (5.6.5) 5.6. Методы с конечно-разностными производными 133 которая является как раз частным случаем аппроксимации яко- биана и имеет ошибку О (h,) в /-и компоненте, и формула цен- тральных разностей / (х, + h,ej} - f (x, - h,ej) 2h, /=!,...,/z, (5.6.6) которая имеет ошибку О (/г;2)- Вспомним также, что в случае конечно-разностных якобианов и гессианов мы видели, что если длина шага обладает свойством h, = 0(||ecll), где вс=Хс—-У», то при обычных предположениях сохраняется (7-квадратичная сходимость метода Ньютона. Однако это, вероятно, не имеет места для аппроксимации градиента по разностям вперед (5.6.5), так как по мере приближения Хс к точке минимума функции f(x} величина ||Vf(^c)|| ^0(||ee|l), и поэтому длина шага порядка 0(l|edl) в (5.6.5) привела бы к ошибке аппроксимации llgc— —^f{xc}\\ того же порядка, что и аппроксимируемое значение. Вместо этого можно легко обобщить проведенный в теореме 5.4.1 анализ и показать, что если подправить ньютоновскую итерацию для минимизации, так что Х+ = Хс — Лс~1 go' где gc и Ас аппроксимируют соответственно \7(хс) и \f2f(xc), то при аналогичных предположениях ^l^-^ll<ll^-l|][ll^-V/(^)||+|l^-V2f(^)|||j^||+^^] (5.6.7) (см. упр. 17). Следовательно, для ^-квадратичной сходимости требуется, чтобы \\gc—^f(Xc)\\== 0(||<?cll2), а это означает требо- вание h, = 0(l|edl2) при использовании разностей вперед или h, = 0(||<?c||) при использовании центральных разностей. Кроме того, здесь трудно оценить ||edl, так как ^f(xc) не задан анали- тически. На практике этот анализ в действительности не применяется, в том числе и нами, поскольку мы будем стремиться выбирать h/, минимизируя суммарное влияние ошибок, возникающих из-за нелинейности / и использования машинной арифметики. Для разностной формулы вперед (5.6.5) это как раз означает использование той же самой длины шага (5.6.2), как и для аппроксимации якобиана. Для формулы центральных разно- стей (5.6.6) тот же самый анализ, что в разд. 5.4, показывает, что h, = О^173) оптимально, и мы предлагаем использовать ту же длину шага (5.6.4), что и при аппроксимации гессиана с помощью значений функции. В нашей практике аппроксима- ция градиента разностями вперед оказывается обычно вполне достаточной, и поскольку центральные разности в два раза до- 134 Гл. 5. Метод Ньютона роже, то для аппроксимации градиента рекомендуется алго- ритм А5.6.3, который по сути есть алгоритм А5.4.1 для аппрок- симации якобиана при числе уравнений /п==1. Следует, од- нако, отдавать себе отчет в том, что точность, с которой полу- чается решение х», будет ограничена точностью аппроксимации градиента. По этой причине, а также для того чтобы охватить тот редкий случай, когда разности вперед слишком неточны, в приложении имеется алгоритм А5.6.4, представляющий собой процедуру аппроксимации градиента по центральным разно- стям. В некоторых коммерческих программах автоматически принимается решение о том, нужно ли переключаться в ап- проксимации градиента с разностей вперед на центральные разности и когда это делать [см., например, Стюарт (1967)]. В заключение отметим, что пользователю следует знать о возможных трудностях, возникающих при использовании в алгоритмах минимизации конечно-разностных градиентов. Боггс и Дэннис (1976) для получения приближенных значений точки минимума проанализировали погрешности, свойственные ис- пользованию таких алгоритмов. Несмотря на то что найденные ими границы оказываются на практике слишком пессимистич- ными, это все же сильно стимулировало пользователя задавать градиент аналитически всякий раз, когда это возможно. Поль- зователь, который получает плохие результаты с аппроксима- цией разностями вперед или которому требуется повышенная точность, мог бы попробовать взамен центральные разности. Мы увидим, что вследствие той точности, которая необходима при аппроксимации градиента, не существует пригодной в ал- горитмах минимизации аппроксимации градиента по секущим. 5.7. УПРАЖНЕНИЯ 1. Система уравнений 2 (л-,-{-^"Ч (л-.-.^)4-8= О, ?>х\ + (л:2 - З)2 - 9 = О имеет решение х» == (1, I)7'. Выполните одну итерацию метода Ньютона из точки х» = (2, 0)г. цх' "'^ ^ -iJ- 2. Выполните вторую итерацию метода Ньютона для системы \ы: -4=0, начнная из Хо == (—10, —Ю)7. (Первая итерация была сделана в разд. 5.1.) Что произойдет, если эта задача будет продолжать решаться методом Нью- тона с использованием машинной арифметики? Подразумевается, что упр. 3 и 4 дадут представление об области схо- димости, задаваемой теоремами сходимости для метода Ньютона. 5.7. Упражнения 135 3. Для каждой из функций f(x) == х, f{x) == х1 + х, f(x) == е" — 1 от- ветьте на следующие вопросы: (a) Чему равно f (х) в корне х* == О? (b) Чему равна константа Липшица для f'(x) на отрезке [—а, а]? Чему равна верхняя граница для | (f (х) —f'(0))/x\ на этом отрезке? (c) Какая область сходимости метода Ньютона для f(x) предсказы- вается теоремой 2.4.3? (d) На каком отрезке [&, с], Ь < 0 < с, метод Ньютона для f(x) в дей- ствительности сходится к х„ == О? 4. Используя свои ответы на вопросы из упр. 3, рассмотрите применение метода Ньютона к F(x)== Xi Х^ + Ху (a) Чему равно 1{х) в корне Хч, = (О, О, О)7? (b) Чему равна константа Липшица для J(х) в шаре радиуса а с цен- тром в .f»? (c) Какая область сходимости метода Ньютона для F(x) предсказы- вается теоремой 5.2.1? (d) Какой стала бы область сходимости, если (х»)з = О? Ну, а если (.У») 2= (Х„)з=0')? 5. Покажите, что, если предположение / <= Lip„ (N (х„ г)) в теореме 5.2.1 заменить предположением о непрерывности по Гёльдеру (см. упр. 4.8), то теорема 5.2.1 останется в силе с той лишь разницей, что вместо (5.2.1) будет II^+i-^IKPvll^fe-^ll'^ k=o, i,.... [Указание: замените (5.2.2) на 8== min {г, (а/((1 + ") PV))1^1}' чт0 означает Рув"<а/(1+а).] В упражнениях с 6 по 8 излагается доказательство теоремы Канто- ровича. 6. Докажите, что условия и заключения теоремы Канторовича справед- ливы для квадратичной функции f(t)=^t2--+- /„=0. z р р [Указание: докажите (5.3.1), показав, что выполняется более сильное нера- венство \t^-t^\<^2-k(l-^T^2a)l!tk^-, fe=0,l,.... Для его получения покажите по индукции, что ir(wi>^. ') Здесь в первом случае имеется в виду пересечение реальной области сходимости с координатной плоскостью 1-й и 2-й осей, а во втором—пересе- чение с 1-й координатной осью.—Прим. перев. 136 Гл. 5. Метод Ньютона ii, используя это, покажите, что /г-1 l^+.-M^-'pvl^ 7. Пусть F: Р"->-Р" и хо s R" удовлетворяют условиям теоремы Кан- торовича и f(t] и to определяются как в примере 6. Пусть {xic} и {tis} есть последовательности, полученные в результате применения метода Ньютона к F(x) и f(t) из Хц и /о соответственно. Докажите по индукции, что II /(^)-'|<1Г(^)-1 где /г = О, 1, ... . [Указание: рассматривая индуктивное предположение, используйте (3.1.20), что поможет доказать первое соотношение. Для дока- зательства второго сначала воспользуйтесь равенством F {Ч) == F {Ч) - F (^-1) - / (^-1) (^ - ^-l), с тем чтобы показать что Аналогично покажите, что l/^l-^^-^-i)2- Затем воспользуйтесь этими двумя соотношениями и первым неравенством, доказанным по индукции, чтобы доказать второе.] 8. Воспользуйтесь упр. 6 и 7 и докажите теорему Канторовича. 9. Прочтите работу Брайяна (1968), и вы получите удовольствие от красивого приложения теоремы Канторовича. 10. Докажите теорему о сжимающем отображении. Для этого, предпо- лагая выполненными условия теоремы 5.3.2, покажите: (а) используя соотношение (5.3.3), что для любых j ^ О Zi f=0 • х. И < • Xo| 1 —а (b) используя (а), что последовательность {х,} имеет предел х., так как {xi} представляет собой последовательность Коши, а также что G(x«) =х„; (c) используя (Ь) и соотношение (5.3.3), что х« есть единственная не- подвижная точка для О в D и что имеют место (/-линейная сходимость и оценки погрешностей, приведенные в теореме 5.3.2. Используя (а), докажите другой вариант теоремы о сжимающем отоб- ражении без предположения о том, что F(D} c= D. 11. Пусть f(x) = х2—1, а е R, а> 1. Докажите, что для некоторого 6 > 0 (6 зависит от а) последовательность точек {х:}, построенная, начи- ная с Хо е (1 — 6, 1 + 6), по формуле .,,,-,.-'?.1, сходится (/-линейно к х* = 1. Покажите, что при этом lim f->oo "•f-н >0, если только a -yb 2. 5.7. Упражнения 137 12. Завершите доказательство теоремы 5.4.1. 13. Пусть F: R2--?2 таково, что (^ F(x)=\ Допустим Xk = (107, Ю-7)7 и предположим, что используется ЭВМ с 14 де- сятичными разрядами. Что получится, если вычислять аппроксимацию для /(х*) по формуле (5.4.1) при /и = I? Ну а при /it = Ю-14? Существует ли в этом случае какой-либо выбор hi,, который годился бы для аппроксимации как /(Xt)ii, так и /(^4)22? 14. Пусть р е R, р Ф 0, р =/= 1, fi{x) = х", fz(x) == е"". Полагая р = f(x) и y=f"{x), определите по формуле (5.4.13) оптимальную длину шага для fi(x}, а затем для {г(х). Как это сопоставляется с длиной шага (5.4.10)? Какие особые проблемы возникают при конечно-разностной аппро- ксимации fy (х) в случае, когда х равен очень большому положительному числу? 15. Пусть / (х), Ху\ ==— (х\ — Ху\2 + — (l — х,')2. Что является точкой минимума для /(л:)? Выполните одну итерацию метода Ньютона для мини- мизации f(x) из начальной точки Хо = (2, 2}7. Хороший ли сделан шаг? Прежде чем ответить, вычислите f(x») и f(xi). 16. Рассмотрите вопрос применения метода Ньютона к отысканию точки минимума f(x) = sin х при Хо е [—я, л]. Искомым решением является Xsf = —л/2. Пусть е есть небольшое положительное число. Покажите, что если Хо = —е, то'метод Ньютона дает Xi ss:—1/е. Аналогично выясните, что произойдет, если взять А'о = +8, но при этом заменить f"(xa) малым поло- жительным числом? 17. Пусть f, (х) = — х\ — xj, /а (х) == -с? — ^ч- Покажите, что алгоритм 5.5.3 не будет сходиться к точке максимума х* = (О, О)7 функции fi(x), если Хо Ф Xit. Покажите также, что алгоритм 5.5.3 будет сходиться к седло- вой точке х* == (0, 0)'" функции fz (х), если только (ха)г ф 0. 18. На какой-либо ЭВМ по вашему выбору вычислите конечно-разност- ную аппроксимацию гессиана функции f(x), заданной в упр. 15, в точке Хц = (2, 2)7', используя формулу (5.6.3) при h, == (macheps)172^', а затем при h, = (macheps)1''3^. Сравните ваши результаты со значением УД-Уо), полученным аналитически. 19. Пусть /: R"->R удовлетворяет условию у2/(х) s Lip D для некото- рого D cr R". Предположим, что существует х* е D, для которого V/(x*)==0. Покажите, что если Хс <= D, g-csR", и матрица Ac e R"^ не вырождена, то х+, порождаемое формулой х,=х—A'^'^gy удовлетворяет (5.6.7). 20. Покажите, как построить эффективным образом единую комбиниро- ванную процедуру на базе алгоритма для вычисления V/(x) по центральным разностям (алгоритм А5.6.4) и алгоритма для вычисления V2/^) по разно- стям вперед (алгоритм А5.6.2). Как сопоставляется требуемое в этом случае количество вычислений функции: (а) с использованием каждой из процедур в отдельности, и (Ь) с использованием алгоритмов Ао.6.3 для аппроксима- ции градиента и А5.6.2 для аппроксимации гессиана по разностям вперед? Какие недостатки проявлялись бы при использовании вашей новой процеду- ры на практике? 6 Глобально сходящиеся 1) модификации метода Ньютона В предыдущей главе было показано, что метод Ньютона явля- ется локально ^-квадратично сходящимся. Это означает, что если имеется достаточно хорошее текущее приближенное ре- шение, то оно будет быстро и с относительной легкостью улуч- шено. К сожалению, нет ничего необычного в том, что прихо- дится затрачивать значительные вычислительные усилия на до- стижение достаточной близости 2) к решению. Кроме того, стра- тегии по достижению такой близости составляют большую часть вычислительной программы и усилий по программирова- нию. Эти стратегии могут быть чувствительны к небольшим отличиям в их реализации на ЭВМ. Эта глава посвящена двум основным идеям относительно того, как следует поступать в том случае, когда ньютоновский шаг является неудовлетворительным. В разд. 6.1 устанавлива- ется общая структура класса алгоритмов, которые мы хотим впоследствии рассмотреть. В разд. 6.2 вводится понятие «на- правление спуска», которое уже вскользь упоминалось в дока- зательстве леммы 4.3.1. В разд. 6.3 обсуждается первый из основных подходов по глобализации. Он, по сути, является современным вариантом известной идеи дробления шага вдоль ньютоновского направления в тех случаях, когда полный нью- тоновский шаг оказывается неудовлетворительным. В разд. 6.4 рассматривается второй основной подход, базирующийся на оценке области, в которой можно верить тому, что локальная модель, лежащая в основе метода Ньютона, адекватно пред- ставляет функцию. Он также опирается на выбор шага, кото- рый приближенно минимизирует модель в этой области. Оба 1) Относительно определения понятия «глобально сходящийся» см. по- следний абзац разд. 1.1. 2) Имеется п виду близость текущего приближения, достаточная для того, чтобы метод Ньютона смог реализовать свою высокую скорость схо- 1ПМОСТН. — Прим. персп. 6.1. Общая квазиньютоновская схема 139 подхода выводятся сначала для задач безусловной минимиза- ции. Их применение к решению систем нелинейных уравнений является темой разд. 6.5. 6.1. ОБЩАЯ КВАЗИНЬЮТОНОВСКАЯ СХЕМА Основная идея построения успешно работающих нелинейных алгоритмов заключается в таком комбинировании стратегии глобальной сходимости со стратегией высокой локальной схо- димости, при котором извлекается польза из них обеих. Общая схема, реализующая эту идею, представляет собой незначитель- ное обобщение гибридного алгоритма, рассмотренного в гл. 2 (см. алгоритм 2.5.1). Она описана ниже в алгоритме 6.1.1. Наиболее важный момент состоит в попытке на каждой итера- ции сначала попробовать метод Ньютона или некоторую его модификацию. Если кажется, что берется приемлемый шаг (например, если в случае минимизации f уменьшается), то нужно применить именно его. Если же—нет, то обратиться к шагу, который предписывается глобальным методом. Такая стратегия будет всегда заканчиваться использованием вблизи от решения метода Ньютона, и поэтому будет сохранять высо- кую скорость его локальной сходимости. Если глобальный ме- тод надлежащим образом выбирается и включается в общую схему, то алгоритм также будет глобально сходящимся. Алго- ритмы, использующие этот подход, будут называться квазинью- тоновскими. Алгоритм 6.1.1. Квазиньютоновский алгоритм для решения. нелинейных уравнений и безусловной оптимизации [в случае оптимизации заменить F(xk) на ^f(Xk) и Jk на Hk\ Заданы: непрерывно дифференцируемая F: R"-»- R" и Хо^ R". На k-vi итерации: 1. Вычислить F(xk), если этого не было сделано раньше, и решить—остановиться или продолжить дальше. 2. Вычислить матрицу Jk, равную J(xk) или ее аппрокси- мации. 3. Применить к Jk некоторый способ разложения на множи- тели и оценить ее число обусловленности. Если Jk плохо обус- ловлена, то внести в нее соответствующее возмущение. 4. Решить J^=—F[x^). 5. Принять решение—либо взять ньютоновский шаг д^,,= ==^+s^, либо выбрать А-А-Ц согласно глобальной стратегии. Этот шаг алгоритма часто дает F(xn) для 1-го шага. 140 Гл. 6. Глобально сходящиеся модификации К настоящему моменту нами уже были рассмотрены шаги 2, 3 и 4. Шаг 5 служит основной темой данной главы. К концу этой главы читатель мог бы построить квазиньютоновский ал- горитм в завершенном виде, за исключением критерия оста- нова, который рассматривается в гл. 7. Формулы пересчета по секущим из гл. 8 и 9 служат альтернативными вариантами шага 2. Напомним читателю, что в приложении А представлена мо- дульная система алгоритмов для решения нелинейных уравне- ний и безусловной минимизации. Она содержит целый ряд пол- ностью детализированных квазиньютоновских алгоритмов для решения этих двух задач. Алгоритм 6.1.1 лежит в основе драй- вера (управляющей программы) для этих алгоритмов, который в приложении представлен алгоритмом D6.1.1 для минимиза- ции и алгоритмом D6.1.3 для нелинейных уравнений. Основная разница между приведенным выше алгоритмом 6.1.1 и двумя драйверами из приложения заключается в том, что данные драйверы содержат самостоятельную инициализирующую часть, предшествующую итерационной части. Назначение, структура и вопросы использования модульной системы алгоритмов обсуждаются в начале приложения А. Мы рекомендуем прочитать это обсуждение сейчас, если вы не сде- лали этого раньше, и затем обращаться к приложению для вы- яснения деталей по мере появления алгоритмов в тексте. 6.2. НАПРАВЛЕНИЯ СПУСКА Начнем обсуждение глобальных методов с рассмотрения за- дачи безусловной минимизации min f: .-ceR" R" ^ D —>• К, (6.2.1) поскольку для задач минимизации существует естественная глобальная стратегия, которая состоит в обеспечении того, что- бы каждый шаг уменьшал значение f. Существуют соответ- ствующие стратегии и для систем нелинейных уравнений,обес- печивающие уменьшение каждым шагом значения некоторой нормы функции F: R"—>-R". Однако использование нормы в действительности сводит задачу решения системы нелинейных уравнений F(x)=0 к задаче минимизации функции вида ^Ду!!Л1: R" •R. (6.2.2) Поэтому на протяжении последующих двух разделов будут рассматриваться глобальные стратегии для безусловной мини- 6.5. Направления спуска 141 мизации. В разд. 6.5 мы применим эти стратегии к системам нелинейных уравнений, используя преобразование (6.2.2). Основная идея глобальных методов для безусловной мини- мизации геометрически очевидна: делать шаги, которые ведут «вниз по склону» для функции /. Точнее говоря, выбирается направление р из текущей точки Хс, вдоль которого f начинает уменьшаться, и новая точка х+ в этом направлении из точки Хс такова, что f(x+} < f{Xc). Такое направление называется на- правлением спуска. С математической точки зрения р является направлением спуска из Хс, если производная функции f по на- правлению р в точке Хс отрицательна, т. е. согласно разд. 4.1, если —.р/ \т vf(x,y р<о. Если выполнено (6.2.3), то гарантируется, что f(xc-\-6p) -<f(Xc) для достаточно малых положительных б. Направления спуска лежат в основе некоторых глобальных методов минимизации, но для всех этих методов они имеют важное значение, и по- этому они являются темой данного раздела. До сих пор единственным направлением, которое нами рас- сматривалось в задачах минимизации, было ньютоновское на- правление 5^== — Яс^У^Осс)' где Не есть либо гессиан У^(Хс), либо его аппроксимация. Поэтому естественно спросить—яв- ляется ли ньютоновское направление направлением спуска? Со- гласно (6.2.3), это имеет место тогда и только тогда, когда Vf {xcY s" = - Vf {xcY H^\f {xc) < 0. Данное неравенство справедливо, если матрица //<T1' или что эквивалентно, Не положительно определена. Это вторая при- чина, по которой мы в алгоритме 5.4.2 принудительно делали Не положительно определенной, если изначально она таковой не являлась. Это гарантирует не только то, что квадратичная мо- дель будет иметь единственную точку минимума, но также то, что получающееся в результате ньютоновское направление бу- дет направлением спуска для исходной задачи. Это в свою оче- редь служит гарантией того, что для достаточно малых шагов вдоль ньютоновского направления значение функции будет уменьшаться. Во всех наших методах безусловной минимиза- ции гессиан Не модели будет строиться положительно опреде- ленным или принудительно делаться таковым. Естественно возникает второй вопрос: коль скоро шаги де- лаются в направлении спуска, то что представляет собой на- правление р, вдоль которого, начиная из х, функция / умень- шается наиболее быстро? Прежде чем мы сможем ответить на этот вопрос, необходимо конкретизировать понятие «направле- ние», так как для заданного вектора вносимых возмущений р (6.2.3) 142 Гл. 6. Глобально сходящиеся модификации производная функции / по направлению р прямо пропорцио- нальна длине вектора р. Разумный способ действий здесь со- стоит в том, чтобы выбрать норму || • || и определить направле- ние произвольного вектора р как р/||р11. Когда мы будем гово- рить о направлении р, то будем предполагать, что такая нор- мировка уже выполнена. Теперь можно сформулировать наш вопрос о направлении наиболее быстрого спуска при заданной норме в виде задачи: найти min V/ (х) р „га р s R при условии ||рЦ==1, которая в l^-Hopwe имеет решение р==—Vf (x}/\\'Vf (х)\\у Таким образом, направление антиградиента1) представляет собой в /2-норме направление наискорейшего спуска из х вниз по склону и называется направлением наискорейшего спуска. Классический минимизационный алгоритм, предложенный Коши, основывается исключительно на направлении наискорей- шего спуска. Ниже дано его формальное описание. Алгоритм 6.2.1. Метод наискорейшего спуска Заданы: непрерывно дифференцируемая /: R"->-R и л-о^К". На k-v. итерации: найти для f в направлении —^f(Xk) из Xk точку, располо- женную ниже всего, т. е. найти \k, являющееся решением для min / (Xk — ^f (Xk}); ^>о Xk+i = Xk — A.&V/ (Xk). Это не является вычислительным методом, так как каждый шаг включает в себя задачу точной одномерной минимизации, но его можно реализовать на ЭВМ, выполняя минимизацию неточно. В обоих случаях при довольно слабых предположениях можно показать, что они сходятся к точке локального мини- мума или седловой точке функции f{x). [См., например, Голд- стейн (1967).] Однако сходимость здесь только линейная, а иногда очень медленная линейная. А именно, если алго- ритм 6.2.1 сходится к точке локального минимума х», в кото- рой гессиан V2f(x^) положительно определен, и если обозна- чить через evmax и evmin наибольшее и наименьшее собственные значения для У2f(x^^}, тогда можно показать, что последователь- ') То есть направление, противоположное градиенту.—Прим. перев. 6.2. Направления спуска 143 ность {Xk} удовлетворяет —— \\x•k+\ ~ х II im -"-————-<с, fc-^oo [1^-^11 ^ ' д ( бУтах - avrnin Л === \ ev -4- ev . / \ max ' min / (6.2.4) в некоторой специальной взвешенной /а-норме, и показать, что оценка с достижима для некоторых начальных хо. Если V2^^) прекрасно масштабирован, т. е. evmax ^ evmin, то с будет мало и сходимость будет быстрой. Однако если У^(л'») плохо мас- штабирован даже в незначительной степени, например evmax= = Wevmin, то с будет равно почти 1, а сходимость может ока- заться очень медленной (см. рис. 6.2.1). Случай, когда с == 0.8 и на каждой итерации ||x&+i — л-Л = c\\Xk—x^\\, приведен в при- мере 6.2.2. Для вас будет совсем легким упражнением обоб- щить это, сделав с сколь угодно близким к 1. Пример 6.2.2. Пусть f (х,, ^) ==-|г х]+ ^-^j. Это положи- тельно определенная квадратичная функция с точкой мини- мума в ^==(0, О)7' и я, , , Г i 0 1 V7 W == \ для всех х. Таким образом, с, определенное в (6.2.4), равно (9—1)/(9+ +1)=0.8. Читатель также может убедиться, что если f(x) есть положительно определенная квадратичная функция, то шаг наискорейшего спуска по алгоритму 6.2.1 имеет вид Xk+l = Xk (6.2.5) где g='vf(xk). Используя (6.2.5), можно легко убедиться, что при заданных f(x} и Хо={9, I)7 последовательность точек, вы- рабатываемых алгоритмом 6.2.1, есть ^-( _9 ,)(0.8)6, k^l, 2, .... (6.2.6) Рис. 6.2.1. Метод наискорейшего спуска в несколько неудачно масштабированной квадратичной задаче. 144 Гл. 6. Глобально сходящиеся модификации Поэтому \\Xk+i—x,\[/\\Xk—x,\\=\\Xk+i\\/\\Xk\i=^c в любой /р-нор- ме. Последовательность {х/г}, заданная в (6.2.6), представлена на рис. 6.2.1. Таким образом, в большинстве случаев методом наискорей- шего спуска как вычислительным алгоритмом пользоваться не следует, так как квазиньютоновский алгоритм будет гораздо более эффективным. Однако, когда наша глобальная стратегия должна делать шаги, существенно меньшие, чем ньютоновский шаг, она, как это будет видно в разд. 6.4, может делать шаги вдоль направления наискорейшего спуска или вдоль близкого к нему направления. В заключение заметим, что направление наискорейшего спуска очень чувствительно к изменениям масштаба перемен- ной х, в то время как ньютоновское направление не зависит от таких изменений. По этой причине, когда кажется, что в на- ших алгоритмах из разд. 6.4 используется направление наи- скорейшего спуска, в соответствующих им программных реали- зациях из приложения это направление будет на самом деле предварительно умножено на некоторую масштабирующую диагональную матрицу. Мы откладываем до разд. 7.1 обсужде- ние этой важной с практической точки зрения темы, так назы- ваемого масштабирования. 6.3. ЛИНЕЙНЫЙ ПОИСК Первой стратегией, которая предназначается для продвижения из приближенного решения, находящегося вне области сходи- мости метода Ньютона, является метод линейного поиска. Его идея выглядит, в самом деле, очень естественной после обсуж- дения в разд. 6.2 направлений спуска. Идея алгоритма с линейным поиском проста: дано направ- ление спуска pk, мы делаем такой шаг в этом направлении, который дает «приемлемое» Xk+\. Это означает, что на k-w. итерации: вычислить направление спуска pk, положить Xk+\ == Xk + ^kpk для некоторого Kk > 0, которое делает Xk+\ приемлемой следующей итера- цией. Графически это означает выбор Xk+i с учетом той половины одномерного поперечного сечения функции f{x), в котором f(x} первоначально уменьшается, начиная с Xk, как изображено на рис. 6.3.1. Однако, вместо того чтобы брать, как в алгорит- ме 6.2.1, в качестве pk направление наискорейшего спуска 6.3. Линейный поиск 145 —УДА'*), мы будем использовать рассмотренное в разд. 5.5 квазиньютоновское направление — H^^fixk), где матрица Hk === ==^2f(xk}Jt-v^kI положительно определена, причем |^/; == 0, если V^Xfe) надежно положительно определена. Это позволит нам сохранить высокую локальную сходимость. Термин «линейный поиск» относится к процедуре выбора К/г в (6.3.1). До середины 60-х годов господствовало убеждение, что Kk следует выбирать исходя из точного решения задачи одномерной минимизации. Более тщательное численное тести- рование привело к полному пересмотру взглядов'). В этом раз- деле будет описан не столь жесткий критерий приемлемости {Kk}, который приводит к методам, столь же хорошим теорети- чески и еще лучше проявляющим себя на практике. Общая процедура теперь такова: сначала попробовать сде- лать полный квазиньютоновский шаг, и если Kk == 1 не удовлет- воряет используемому критерию, то дробить методично длину шага вдоль квазиньютоновского направления. Вычислительный опыт показал важность выполнения полного квазиньютонов- ского шага всякий раз, когда это возможно. Нарушение этого правила приводит к потере того преимущества, которое имеет метод Ньютона вблизи от решения. Поэтому важно, чтобы в нашей процедуре выбора Х& был предусмотрен выбор \k = 1 вблизи от решения. В оставшейся части этого раздела мы обсудим теоретиче- ские и практические вопросы выбора ^/г. Поскольку не суще- ствует убедительных причин ограничиваться рассмотрением линейного поиска лишь вдоль квазиньютоновского направле- ния, рассматривается поиск х+ == Хс + Кср вдоль произвольного направления спуска р из текущего приближенного решения Хс. Правила приемлемости шага, оптимального во всех случаях, перев. ft^+A^) Тангенс угла наклона = =V(W/>A<O- \-0 Рис. 6.3.1. Поперечное сечение для / (х) : в направлении р<;. • R из х^ )) Следует заметить, что существуют методы, например метод сопря- женных градиентов и метод сопряженных направлений Пауэлла, в которих необходимо производить линейный поиск с высокои точностью. — Прим. псрев. 146 Гл. 6. Глобально сходящиеся модификации не существует, однако создается впечатление, что требование f (xw) < f (Xk) (6.3.2) отвечает здравому смыслу. Не будет большим сюрпризом узнать, что это простое условие не гарантирует сходимость {xk} к точке минимума функции f. Рассмотрим теперь два простых одномерных примера, в которых демонстрируются два случая, когда последовательность итераций может удовлетворять (6.3.2), но при этом может не сходиться к точке минимума. Эти примеры приведут нас к полезным критериям приемлемости шага. Первый пример. Пусть f (х) == х1, Хц = 2. Если взять {pk} == ={(-1)^'}, {^}={2+3(2-(^->)}, тогда {х,} = {2, -|-, ^, —о, • •.} =={(—1^(1 + 2~6)}, каждое р^ является' направле- нием спуска из Xk и f (х^ монотонно уменьшается, причем lim f (Xk) = 1 k->oa [см. рис. 6.3.2 (а)]. Это, конечно, никакой не минимум для f, и, более того, {xis} имеет предельные точки ±1, следовательно, она вообще не сходится. Теперь рассмотрим ту же самую функцию при том же началь- ном приближении и возьмем {pk} ={— 1}, {Kk} ={2-й+l}. Тогда [Xk}=\2,-J, ^-, -g-, ...J={1 + 2-^}, каждое pk есть опять направление спуска, f(xk) уменьшается монотонно, и limk-^xXk == 1, что опять не является точкой минимума для / [см. рис. 6.3.2 (Ь)]. В первом случае проблема состоит в том, что было достиг- нуто малое убывание значения f по сравнению с длиной шагов. f(X] f(A) Рис. 6.3.2. Монотонно убывающие последовательности итераций, которые н? сходятся к точке минимума. 6.3. Линейный поиск 147 Разрешить эту проблему можно, потребовав, чтобы средняя скорость убывания от f(xc) до f{x+) составляла заданную долю от первоначальной скорости убывания в этом направлении'), т. е. мы задаем as (0,1) и выбираем Кс среди тех К>0, кото- рые удовлетворяют неравенству (б.З.За) f (^ + ^):< П^) + ^f ^ ^ (см. рис. 6.3.3). Это равноценно выбору Кс из условия f (^+) < / (^) + "Vf (xf (x., - х,). (б.З.ЗЬ) Можно убедиться, что это предотвращает первый из неудач- ных выборов точек, но не второй. Во втором примере проблема состоит в том, что шаги слиш- ком малы по сравнению с первоначальной скоростью убывания функции f. Существуют разнообразные условия, гарантирую- щие достаточно большие шаги. Мы познакомимся с условием, которое будет также полезно нам в гл. 9. Потребуем, чтобы скорость уменьшения функции f вдоль направления р в х+ была больше, чем некоторая заданная доля скорости уменьшения вдоль направления р в Хс, т. е. Vf (x+f p^f (х, + ^pf р > (3V/ (xf p, (б.ЗЛа) или, что эквивалентно, V^ (л:-,)7' (х+ - х,} > pVf {xf (^ - х,) (б.ЗЛЬ) при некоторой заданной константе ре(«,1) (см. рис. 6.3.4). Условие р > ее гарантирует, что (6.3.3) и (6.3.4) могут быть '- }--f(^)+aXVf(Ar)7/) ЗначенияА, допускаемые условием(6.?3)(с1'0,1) Рис. 6.3.3. Значения \, допускаемые условием (6.3.3.) (ct=0.1). )) Здесь под средней скоростью убывания понимается величина (f(xc+Kp)—f(xc)}!^, а под первоначальной скоростью убывания—величи- на \^(Xc}rp^—Пp^tм. пррев. 148 Гл. 6. Глобально сходящиеся модификации удовлетворены одновременно. На практике выполнение (6.3.4) обычно не требуется, так как стратегия дробления шага позво- ляет избегать чрезвычайно малых шагов. Условие, альтерна- тивное к (6.3.4), приведено в упр. 7. В основе условий (6.3.3) и (6.3.4) лежат работы Армийо (1966) и Голдстейна (1967). В примере 6.3.1 демонстрируется применение этих условий к простой функции. В разд. 6.3.1 при- ведены сильные результаты по доказательству сходимости про- извольного алгоритма, удовлетворяющего этим условиям. В разд. 6.3.2 обсуждаются практические алгоритмы линейного поиска. Пример 6.3.1. Пусть f(x^, х^) ==xf+ х\А- 4 ^=(l,lf> ^==(_3,-1)7'. Пусть в (6.3.3) а==0.1, а в (6.3.4) Р==0.5. Поскольку W (xf Рс = (6, 2) (- 3, - 1)' = - 20, то рс является направлением спуска из Хс для f(x). Рассмотрим теперь х (К) == Хс + ^Рс. Если х+ == х (1) = (—2, 0)т, то Vf(x^fp,=(- 36, 0) (- 3, - lf= 108 > - 10= pvW^. следовательно, х+ удовлетворяет (6.3.4), но f (х^) = 20 > 1 == / (х,) + aV/ (xf p„ и, значит, х+ не удовлетворяет (6.3.3). Читатель может анало- гичным образом убедиться, что х+== x(OЛ)=(0.7,0.9)т удовлет- воряет (6.3.3), но не (6.3.4) и что х+ =х{0.5) = (—0.5, 0.5)г удовлетворяет как (6.3.3), так и (6.3.4). Эти три точки лежат на рис. 6.3.4 соответственно среди точек справа, точек слева и в самой «допустимой» области. Условие(63.4) (Р-0.5) f{>c + ^) Условие (Б.3.3) lct-0.1) Точки, допускаемые условиями ^6.3.3) и (6.3.4^1 Рис. 6.3.4. Два условия линейного поиска. 6.3. Линейный поиск 149 6.3.1. Результаты исследования сходимости при надлежащем выборе шагов Использование условий (6.3.3) и (6.3.4) позволяет получить следующие удивительно сильные результаты: для любого за- данного направления pk, такого, что 'Vf{Xk)тpk < 0, существует ^k > 0, удовлетворяющее (6.3.3) и (6.3.4); любой метод, кото- рый вырабатывает последовательность {х/г}, удовлетворяющую на каждой итерации неравенствам ^vf{xk)т{xk+l—Xk) < О, (6.3.3) и (6.3.4), является по существу глобально сходящимся; вблизи от точки минимума функции f, где гессиан V2/ положи- тельно определен, ньютоновские шаги удовлетворяют (6.3.3) и (6.3.4). Это означает, что мы можем легко создать алгорит- мы, которые сходятся глобально и благодаря тому, что мы в первую очередь пробуем сделать ньютоновский шаг, обладают также быстрой локальной сходимостью для большинства функций. Теорема 6.3.2, принадлежащая Вольфу (1969, 1971), пока- зывает, что для любого направления спуска р/г существуют точки Xk + ^kpk, удовлетворяющие (6.3.3) и (6.3.4). Теорема 6.3.2. Пусть функция f: R"->R непрерывно диф- ференцируема в R". Пусть Xk s R", pk s R" удовлетворяют условию Vf {Xkf pk < 0, и предположим, что {f {Xk + ^pk) I ^ > 0} ограничено снизу. Тогда если 0<а<р<1, то существуют А.» > Ki > 0, такие, что Xk+i= Xk-\- ^kpk удовлетворяет (6.3.3) и (6.3.4) при всех Kk <= (^,Я,у)". Доказательство. Поскольку а<1, имеем f (х^-\- ^pk) < < f {xk} ~}~ 0'^'Vf {х^ pk для всех достаточно малых К > о. Так как f(Xk+^pk) ограничено также снизу, то существует некото- рое наименьшее положительное К, такое, что f (х) = f {Xk + W == f {Xk) + a^f {x/ pk. (6.3.5) Таким образом, любое x^{xk,x) удовлетворяет (6.3.3). По теореме о среднем значении существует ?^е(0,Х), такое, что f (•<-) - f {Xk) == Vf {х„ + W {х - Xk) == V/ {Xk + W Kpk, (6.3.6) и поэтому из (6.3.5) и (6.3.6) имеем V/ (Xk + W pk == aV^ (Xfef pk > PV/ {Xkf pk, (6.3.7) Ч Числа ^ и К зависят от к^ и р^. — Прим. перед. 150 Гл. 6. Глобально сходящиеся модификаций так как сх < (3 и УП.^)7/^ < 0. Согласно непрерывности \'f, (6.3.7) выполняется еще и для К, составляющих некоторый ин- тервал (Ki,Ku), содержащий А. Следовательно, если (А,;, Кц} ограничить интервалом (ОД), то Xk+\ == Xk + ^kpk будет удов- летворять (6.3.3) и (6.3.4) при любых 'К/с s(^,7,„). a Теорема 6.3.3 также принадлежит Вольфу (1969, 1971). Она показывает, что если вырабатываемая последователь- ность {Xk} удовлетворяет неравенствам \'f(Xk)т(Xk+l —х/г) < О, (6.3.3) и (6.3.4) и если угол между V/(A'&) и (Xk+i—xis) не стремится к 90° при k—f-oo, то либо градиент стремится к О, либо f не ограничена снизу. Возможны, конечно, и оба случая одновременно. Ниже мы поясним, что случай, когда угол меж- ду Vf(Xk) и {xk+i—х^ стремится к 90°, может быть предотвра- щен самим алгоритмом. Теорема 6.3.3. Пусть f: R"->R непрерывно дифференцируе- ма в R", и предположим, что существует у ^ 0, такое, что (6.3.8) для любых х, zs R". Тогда при произвольно заданном хо '= R" либо f не ограничена снизу, либо существует последователь- ность {xk}, k=0,l, .... удовлетворяющая (6.3.3), (6.3.4), при- чем такая, что для каждого k ^ 0 либо \?f(Xkfsk<0, (6.3.9) либо V/(^)==0 и Sfe=0, где SkA^Xk+i — Xk. 1) Более того, для любой такой последовательности или (a) V/ (х^ = 0 для некоторого k ^ 0, или (b) lim f(Xk)=—°o, или k->°° (С)„„^Ц^=0. ft->00 "fel|2 Доказательство. Каково бы ни было k, если \'f(xk)=0, то имеет место (а), и в дальнейшем последовательность не ме- няется. Если V/ {Xk) ^= 0, то существует pk, например pk == == — V/' (х^, такое, что V/' (х^) pk < 0. По теореме 6.3.2 либо / 1) Это утверждение не исключает существование такой последователь- ности и в случае неограниченной снизу f. — Прим. перев. 6.3. Линейный поиск 151 не ограничена снизу, либо существует Kk > 0, такое, что Xk+\= == Xk + ^-kpk удовлетворяет (6.3.3) и (6.3.4). Без ограничения общности предположим в целях упрощения обозначений, что \\pk\\^=\, тогда ^k==\\Sk\\r Мы пока видим, что либо / не ограничена снизу, либо суще- ствует {Xk}, и при этом либо {xk} удовлетворяет (а), либо в противном случае Sk Ф 0 для каждого k. Теперь нам необхо- димо показать, что если ни один из элементов в {s^} не равен нулю, то должно выполняться (Ь) или (с). Было бы полезно иметь обозначение Согласно неравенствам (6.3.3) и ^бд < 0, справедливым для каждого k, имеем /-1 /-1 f {X,) - f (Xu) = Z f (-^+l) - / (Xk) < ? "Vf (Xkf Sk == k=0 . h=Q /-1 -aE^A<0. ft=o для любого / > 0. Следовательно, либо оо, либо — Z-f '^h^k < 00' k=0 т. е. ряд сходится. В первом случае справедливо (Ь), что и требовалось дока- зать, поэтому рассмотрим второй случай. Мы, в частности, по- лучаем limft-»oo^&6fe == 0. Теперь нам хотелось бы сделать вывод, что Или-».,» б&= 0, и поэтому необходимо воспользоваться усло- вием (6.3.4), поскольку оно было принято для предотвращения чрезмерной малости шагов. Для каждого k имеем VfiXk+^Sk^^^Xkfsk, и поэтому, учитывая (6.3.9) и р < 1, [V^ (^ft+i) - V/ {х^ Sk >(P - 1) V/ (Xkf Sk > 0. Применение к левой части последнего соотношения неравенств Коши-Шварца и (6.3.8), а также использование определения для бй дают 0<(P--1Ц,Д<Y|Ы|2=YЧ. поэтому ^-^-'-б^О 152 Гл. 6. Глобально сходящиеся модификации Таким образом, 0= lim ^fift^—l- lim 6^<0. k-Xx, V &->oo Это показывает, что lim 6<;=0 fe-»00 [т. е. справедливо (с)], и тем самым завершает доказатель- ство. D Отметим, что в то время как теорема 6.3.3 без труда при- меняется к любому алгоритму с линейным поиском, она абсо- лютно не зависит от метода выбора направлений спуска и дли- ны шагов. Следовательно, эта теорема дает достаточные усло- вия глобальной сходимости (в слабом смысле) любого алго- ритма оптимизации, включая алгоритмы типа «модель—дове- рительная область» из разд. 6.4. Кроме того, в то время как условие Липшица (6.3.8) предполагается выполненным во всем R", оно используется только в окрестности решения х^. На- конец, хотя в теореме 6.3.3 {(7<.}—-0 и не означает, что обяза- тельно {Vf(x/;)}-^-0, последнее имеет место всякий раз, когда угол между \!f{Xk} и Sk отграничен от 90°. Можно легко до- биться выполнения этого условия на практике. Например, в квазиньютоновском алгоритме с линейным поиском, где р^== ==— Hk\f(xk) и tik положительно определено, требуется лишь, чтобы число обусловленности матриц {И/с} было равномерно ограничено сверху. Таким образом, теорему 6.3.3 можно рас- сматривать как утверждение, означающее сходимость к f == —оо или к Vf == 0, однако ее условия слишком слабы, чтобы обеспе- чивать сходимость {х/:}- Теорема 6.3.4, принадлежащая Деннису и Морэ (1974), по- казывает, что наша глобальная стратегия позволит делать вблизи от точки минимума функции f полные квазиньютонов- ские шаги Xk+\==Xk—Hk^f^Xk), если, конечно, при этом — Hk'VfiXk} достаточно близко к ньютоновскому шагу. Теорема 6.3.4. Пусть f: R"-^R дважды непрерывно диффе- ренцируема в открытом выпуклом множестве D, и предполо- жим, что V^sLip^D). Рассмотрим последовательность {xk} вида л-t-j-i == Xk + ^kpk, где Vf(xk)тp^! •< 0 для всех k и ?.<• выби- рается так, что оно удовлетворяет (6.3.3) при а < -у- и (6.3.4). 153 6.3. Линейный поиск Если {xk} сходится к точке л'« Е D, в которой гессиан \~2f{x^) положительно определен, и если lim k->00 ^f{xk}+J^k)_^ IPfell, (6.3.10) то существует индекс ko ^ 0, такой, что Kk == 1 является при- емлемым для всех k ^ ko. Более того, V^(x») == 0, и если Kk = 1 для всех k"^ ko, то {xk} сходится ^-сверхлинейно к х». Доказательство. Доказательство является на самом деле всего лишь обобщением простого упражнения, в котором тре- буется показать, что если f{x) есть положительно определен- ная квадратичная функция и pk ==—'\г2f{xk)~l^f(Xk), то Vf(xk)тpk < 0 и Xk+i = Xk + Pk удовлетворяет (6.3.3) при лю- бых asSS— и (6.3.4) при любых (3 s5: 0. Некоторые читатели могут при желании лишь бегло посмотреть его или вовсе про- пустить, так как его детали проясняют не слишком многое. Положим р&=- (6.3.11) а. Покажем ||У^)+У^)РЛ IP&II означает Здесь и далее в доказательстве || • || сначала, что lim ||^1|=0. ft-» оо Если х достаточно близко к х^, то по уже известным рассуж- дениям V2^ (x)~1 существует и положительно определено, и если ц-^йу^.ГТто y^-i^llvW1!]^^-1. Отсюда, поско- льку yf (x,Y р, ^ р1 ^ (х,) р\ (Vf (х,) + ^f (^) p.f p, IIPJI HPfell IIPJI и pyf(x^p,,>-^ti\\p^f, то (6.3.11) и (6.3.10) показывают, что для достаточно больших k имеет место -^>f^-P^II>T Поскольку из теоремы 6.3.3 мы имеем ,.„, ^)7^ lim ft->00 Ipfel 154 Гл. 6. Глобально сходящиеся модификации то (6.3.12) означает, что lim \\pk\\=0. • k->00 Покажем теперь, что \ц == 1 удовлетворяет (6.3.3) при всех k, больших или равных некоторому ko. По теореме о среднем значении для некоторого f^e [xk, х/г + Pk\ получаем ИЛИ f {Ч + Pk) - f (^) = V/ W Pk + 4- PW (^) Pk • / (Xk + Pk) - f W - 4 v/ W Pk = т ^ ^ + ^f ^ P^ Pk == = у (v^ (^) + ^ (^) ^r ^ + ^Pl т (^) - v2/ Ы] ^ < ^-^P^^11)"^"2- (6-3-13) что имеет место благодаря (6.3.11) и непрерывности V2/ по Липшицу. Теперь выберем ko таким, чтобы при k ^э ko выпол- нялось (6.3.12) и pk+V\\Pk\\<^-mm^,l-2a). (6.3.14) Если k ^s ko, то А,<; == 1 удовлетворяет (6.3.3), так как, согласно (6.3.13), (6.3.12) и (6.3.14), f(Xk+Pk)-f(XkX^f(Xk)тp„+^•(l-2a)\\p,f^ < i-(l - (1 -2а))^(х/р„=а.^(х/р1,. Для того чтобы показать, что (6.3.4) выполняется для ^k == 1 при k sS? ko, воспользуемся еще раз теоремой о среднем в целях получения для некоторого Zk^(Xk, Xk-\-pk) соотно- шения V/ (Xk + Pkf Pk = (V/ (Xk) + V2/ (z„) Pkf Pk = = (V/ (^) + V2/ (^) P,Y p, + p\ (y2! (^) - V2/ (x,)) p,. Следовательно, I Vf (x, + pf Pk\<Pk II Pk II2 + Yll Pk II3 < J? II Pk II2 < - PV^ (Xkf pk в силу (6.3.11), непрерывности V2^ по Липшицу, (6.3.14) и (6.3.12). Это дает V^ + PkVpk ^ PV/(.V*)^ для ft ^ А-о. Итак, в конечном счете длина шага Хй == 1 удовлетворяет (6.3.3) и (6.3.4), и с этой точки зрения она приемлема. Простым след- ствием из (6.3.10) и \imk-^oopk == 0 является равенство Vf(x^)= 0. Тем самым остается только доказательство (/-сверхлинейной схо- димости в случае, когда ^ == 1 для всех, за исключением конеч- 6.3. Линейный поиск 155 ного числа, членов рассматриваемой последовательности. Мы откладываем это доказательство до гл. 8, где оно будет следо- вать из гораздо более общего результата. D Выводы из теорем 6.3.3 и 6.3.4, взятые вместе, весьма при- мечательны. Они говорят о том, что если f ограничена снизу и если какой-либо алгоритм делает шаги спуска, у которых угол, составляемый с градиентом, отграничен от 90° и которые подчиняются (6.3.3) и (6.3.4), то вырабатываемая им последо- вательность {xk} удовлетворяет равенству lim vf(^)=0. Й-»оо Более того, если любой такой алгоритм пробует на каждой ите- рации делать прежде всего ньютоновский или квазиньютонов- ский шаг, то {Xk} будет к тому же сходиться (/-квадратично или (/-сверхлинейно к точке локального минимума х* в случае, если какое-либо х/г окажется достаточно близким к х^ и если выпол- няются предположения, гарантирующие такую локальную схо- димость ньютоновского или квазиньютоновского метода. Все эти результаты понадобятся нам для обоснования глобальной сходимости алгоритмов, рассматриваемых в оставшейся части книги. (См. также упр. 25.) 6.3.2 Выбор шага дроблением Поговорим конкретнее о том, как в наших алгоритмах выби- 33 рать Kk. Как мы уже говорили, современная стратегия состоит в том, чтобы начинать с Kk == 1 и затем, если Xk + Pk неприем- лемо, «дробить» (уменьшать) Kk, пока не встретится приемле- мое Xk + ^kpk. Общая схема такого алгоритма приведена ниже. Напомним, что условие (6.3.4) здесь не используется, поскольку сама стратегия дробления позволяет избегать чрезмерно ма- лых шагов. (См. также упр. 25.) Алгоритм 6.3.5. Общая схема линейного поиска с дробле- нием шага Заданы ae(l), у), 0</<ц< 1. 4-1; while f (x„ + Kkpk) > f (Xk) + a^f (Xkf pk do Kk == p^k Д-451 некоторого р е [I, и}; (*р выбирается в линейном поиске каждый раз заново *) Xk+l == Xk + ^kpk', 156 Гл. 6. Глобально сходящиеся модификации На практике <х берется довольно малым, едва ли большим, чем требуемое уменьшение значения функции. В нашем алго- ритме используется (х==10-4. Теперь остается обсудить стра- тегию уменьшения Kk, т. е. выбора р. Определим fWAf(Xk+^ — одномерное сужение функции f относительно прямой, прохо- дящей через Xk в направлении pk. Если понадобится дробить шаг, то мы будем моделировать f, используя самую последнюю информацию о ней, и затем брать в алгоритме 6.3.5 в каче- стве Kk то значение К, которое минимизирует эту модель. Первоначально у нас имеются две порции информации об f(^), а именно: f(0)=f{Xk) и f'(0)=Vf(xfpk. (6.3.15) После вычисления f (х^ + рд) нам известно, что f(D=n^+^), (6.3.16) поэтому если f(Xk-}-pk) не удовлетворяет (6.3.3) [т. е. f(l)> > f(0) + "Г(0)], то мы моделируем f(^) одномерной квадратич- ной функцией т, W = [ f(l) - f (0) - f' (0)] ^ + Г (0) ^ + f (0), удовлетворяющей (6.3.15) и (6.3.16), и вычисляем точку ^=———-ff(^ ——, (6.3.17) 2[f(l)-/(0)-f'(0)] для которой m'q (^) = 0. Здесь m",W==2[f(l}-f(0}-f'(0}]>0, так как f (1) > f (0) + «Г (0)>^(0)+^ (0). Таким образом, К мини^ мизирует т у (К'). К тому же^> О, поскольку f(0) < 0. Поэтому Л Рис. 6.3.5. Дробление шага на первой итерации, используется квадратичная модель, 6.3. Линейный поиск 157 берется в качестве нового значения Kk в алгоритме 6.3.5 (рис. 6.3.5). Заметим, что в силу неравенства f (1) > f (0) + af (0), имеем " l ^< 2(1-а) • Действительно, если f(l)^f(0), то ^ ^—. Таким образом, (6.3.17) задает неявно вполне приемлемую верхнюю границу и ?» у для первого значения р в алгоритме 6.3.5. С другой сто- роны, если f(l) гораздо больше, чем f(0), то 7, может ока- заться очень малым. Мы, вероятно, не нуждаемся в слишком сильном уменьшении Kk на основе данной информации, так как это, по-видимому, свидетельствовало бы о том, что f{K) плохо моделируется в данной области квадратичной функцией, по- этому в алгоритме 6.3.5 устанавливается нижняя граница Это означает, что если на какой-либо итерации при ю ' 0.1, то следующее пробное первом дроблении шага было К ^ значение К^ ==Тп- Пример 6.3.6. Пусть f: R"—>-R, Хс и р заданы, как в при- мере 6.3.1. Поскольку f(xc)=3 и f(Xc + р) = 20, то Хс + Р не является приемлемым, и требуется дробление шага. Тогда т, (°)= f (^с) = 3' т/, (0) == Vf (V Р = - 20, т, (1) = f(x, + р)= ==20 и, согласно {.(6.3.17), X ==-^-^ 0.270. Точка х,+Кр^ ss (0.189, О^ЗО)7^ теперь уже удовлетворяет условию (6.3.3) при а = 10~4, так как f (х, + 1р) ^ 0.570 < 2.99946 == f (x,) + + a^f(Xcfp. Поэтому х+==Хс+^р. В данном случае мини- мум f (Хс + ^р) находится в 7,, ^ 0.40. Предположим теперь, что f(^k} == f(Xk + ^kpk) не удовлетво- ряет (6.3.3). В этом случае опять необходимо дробить шаг. Хотя можно было бы воспользоваться квадратичной моделью, Рис. 6.3.6. Дробление шага на основе кубической модели, две возможности. 158 Гл. 6. Глобально сходящиеся модификации как это делалось при первом дроблении, но теперь имеются четыре порции информации об f(^). Поэтому на протяжении всей текущей итерации мы в этом и во всех последующих дроб- лениях используем кубическую модель функции f, подбираем nicuW по f(0), f (0) и по последним двум значениям f{K} и, устанавливая верхний и нижний пределы того же типа, что и раньше, полагаем ^ равным значению К, в котором /Пси(^-) имеет локальный минимум (рис. 6.3.6). Причина использования кубической модели состоит в том, что она может более точно моделировать ситуации, в которых f имеет отрицательную кри- визну, что весьма возможно, когда (6.3.3) не выполнялось для двух положительных значений К. Кроме того, такая кубическая функция имеет единственный локальный минимум, что нагляд- но демонстрируется рис. 6.3.6. Вычисление К происходит следующим образом. Пусть ^prev и ^,2prev1)—последние два из предыдущих значений К/с- Тогда кубическая функция, в точности соответствующая значе- ниям f(0), f'(0), f (A, prev) и f(A,2prev), имеет вид mcu W = а73 + ЬК2 + f (0) ^ + f (0), где Га т- Х - А,2 prev Ь J ^ prev - —1 L ^ prev2 Л2 prev' Точкой его локального минимума К является — b + V&2 — 3af' (0) „ Г К prev2 K2 prev2 1 Г f (^ prev) - f (0) - f' (0) X prev " L^prev^A&J^^^-^^-^0^2^- За (6.3.18) Можно показать, что если f (7. prev) ^ f (0), то Х < -„- К prev. о Такое уменьшение2) может реально встретиться, но оно счи- тается незначительным (см. пример 6.5.1). Поэтому устанавли- вается верхняя граница и ==0.5, т. е. если Л, > —К prev, то мы полагаем новое Д^ == п-^, prev. Кроме того, поскольку К может составлять произвольно малую долю от К prev, то опять ис- 1) Здесь prev есть сокращение от previous (предыдущий).—Прим. псрев. ^ 9 2) Имеется в виду Л а; -„- К prev. — Прим. перев. о 6.3. Линейный поиск 15^ I 1 ( • ^ \ 1 пользуется нижняя Граница I -- -тт, 1 т. е. если л <-„т-Л prev, то полагаем новое л;; == "т л pi^v) • Можно показать, что (6.3.18) никогда не будет иметь комплексных значений, если а в алго- ритме 6.3.5 меньше—-. Существует один важный случай, в котором дробление шага на основе кубической интерполяции можно использовать на каждом шаге алгоритма 6.3.5. Иногда имеется возможность получать Vf(xk + Aft/?/;) за очень малую дополнительную цену при вычислении f(Xk+^kpis)- В этом случае при каждом дроб- лении шага можно строить тси(д) на основе f(0), f' (0), f(^prev) и ^'(К prev). Ценное упражнение для студентов состоит в том, чтобы разработать в деталях получающийся в резуль- тате этого алгоритм. Алгоритм А6.3.1 из приложения содержит нашу процедуру линейного поиска с дроблением шага. Он имеет две дополни- тельные особенности. Так, введена минимальная длина шага, названная minstep. Эта величина используется для проверки сходимости в алгоритме А7.2.1, вызывающем рассматриваемый алгоритм. Если условие (6.3.3) не выполняется, а ЦХй/^Цг ока- зывается меньше, чем minstep, то линейный поиск прекраща- ется, так как сходимость к Xk будет, так или иначе, выявлена в конце текущей итерации. Этот критерий предотвращает за- цикливание линейного поиска, если pk не является направле- нием спуска. (Такое иногда встречается на заключительной итерации алгоритмов минимизации из-за ошибок конечной арифметики, особенно когда градиент вычисляется по конеч- ным разностям.) Поскольку это обстоятельство может также указывать на сходимость к ложному решению, должно печа- таться предостерегающее сообщение. Максимально допустимая длина шага также устанавливается пользователем, так как на практике могут встретиться чрезмерно большие шаги, когда Pk=sk=—^k ^f (^fe) и '"з'1'?11".3 ^k почти вырождена. Мак- симальная длина шага устанавливается специально для того, чтобы предотвратить выполнение таких шагов, которые могли бы вывести алгоритм из интересующей нас области, а также, вероятно, вызвать переполнение при вычислении f(l). Когда будет использоваться линейный поиск совместно с ал- горитмами секущих из гл. 9, мы увидим, что нам та-кже необ- ходимо предположить, что на каждой итерации выполняется условие (6.3.4). Алгоритм А6.3.1 mod представляет собой мо- дификацию алгоритма А6.3.1, которая реализует это условие в явном виде. Обычно она даст те же самые шаги, что и алго- ритм Л6.3.1. 160 Гл. 6. Глобально сходящиеся модификации • 6.4. ПОДХОД: МОДЕЛЬ—ДОВЕРИТЕЛЬНАЯ ОБЛАСТЬ В последнем разделе рассматривались исключительно пробле- мы отыскания приемлемой длины шага в заданном направле- нии поиска. Основные предположения заключались в том, чтобы направлением было квазиньютоновское направление и полный квазиньютоновский шаг был всегда первым пробным шагом. Получающийся в результате алгоритм с дроблением шага объединил в себе эти предположения, с тем чтобы попы- таться достичь глобальной сходимости, не жертвуя при этом свойствами локальной сходимости квазиныотоновских методов. Такие цели, очевидно, стоят перед любой глобальной страте- гией. В этом разделе мы преследуем ту же цель, но мы отхо- дим от предположения, что укороченные шаги должны обяза- тельно лежать на квазиньютоновском направлении. Допустим, что квазиньютоновский шаг оказался неудовлет- ворительным. Это указывает на то, что наша квадратичная модель неадекватно моделирует f в области, содержащей пол- ный квазиньютоновский шаг. В алгоритмах с линейным поис- ком сохраняется одно и то же направление шага и выбирается более короткая длина шага. Эта новая длина определяется с помощью построения новой одномерной квадратичной или ку- бической модели на основе информации, полученной только при вычислении значений функции и градиента вдоль квази- ньютоновского направления. Хотя эта стратегия имеет успех, у нее есть и недостаток, состоящий в том, что она никак боль- ше не использует /г-мерную квадратичную модель, включая гессиан модели. В этом разделе, когда возникнет необходимость делать более короткие шаги, мы сначала выберем более корот- кую длину шага, а уж затем воспользуемся полной п-мерной квадратичной моделью для выбора направления шага. Прежде чем приступать к рассмотрению способов выбора таких направлений, полезно сделать несколько предваритель- ных замечаний относительно того, как заранее задавать длину шага. По-видимому, целесообразно после первой итерации на- чать придерживаться некоторых соображений относительно длины шага, который, как мы могли бы с достаточным осно- ванием надеяться, будет сделан. Например, можно было бы на основе длины шага, сделанного на k-fi итерации, получить верхнюю границу длины шага, который, вероятно, будет успеш- ным на итерации ^+1. Действительно, в разд. 6.4.3 мы уви- дим, как использовать информацию об f, полученную в ходе итерации, для того чтобы получше оценить длину шага, кото- рый, вероятно, окажется успешным. Имея эту оценку, было бы желательно начать следующую итерацию с шага приблизи- тельно такой длины и не тратить вычислений функции, быть 6.4. Подход; модель — доверительная область 161 может очень дорогостоящих, на более длинные шаги, которые вряд ли окажутся успешными. Это, конечно, означает, что, ис- ходя из экономии количества вычислений функции, мы могли бы отказаться от попытки сделать полный квазиныотоновский шаг на такой итерации, когда он мог оказаться удовлетвори- тельным. В разд. 6.4.3 будут приведены некоторые эвристиче- ские соображения относительно минимизации вероятности этого события. Теперь допустим, что имеются Хс и некоторая оценка сверху бс длины успешного шага, который нам, вероятно, удастся вы- полнить из точки Хс. Здесь возникает вопрос: как наилучшим образом выбирать шаг из Хс максимальной длины бс? Суще- ствует естественный ответ, если вернуться к идее использова- ния квадратичной модели. С самого начала мы придерживались той точки зрения, что квазиньютоновский шаг s^ является приемлемым, так как он представляет собой шаг из л-с в точку глобального минимума локальной квадратичной модели те (если гессиан Яс модели положительно определен). Если до- бавить идею об ограничении максимальной длины шага вели- чиной бе > 0, то соответствующий ответ на наш вопрос состоит в том, чтобы попробовать сделать шаг Sc, который является ре- шением задачи min т^ (Хс + s) = f (Хс) + W (Хс)7' s + ^ s^s ПрИ УСЛОВИИ ||s||2^6c. ^с + S) = f (X,) + W (Х,}Т S + 4- S^S Задача (6.4.1) служит основой для подхода «модель—дове- рительная область» к решению задач минимизации. Ее решение приводится ниже в лемме 6.4.1. Это название происходит из взгляда на 6с, как на величину, порождающую область, в кото- рой можно доверять Отс в том, что она адекватно моделирует f. В следующей главе мы увидим преимущество использова- ния масштабированного варианта /а-нормы при ограничении длины шага, но, поступая так именно сейчас, можно только запутать дело. Лемма 6.4.1. Пусть f: IR"->-R дважды непрерывно диффе- ренцируема, Не е R^" симметрична и положительно опреде- лена, а также пусть || • || обозначает /а-норму. Тогда решением задачи (6.4.1) является s W А - (Н, + ц/)-' Vf (x,} (6.4.2) для единственного ^ ^ 0, такого, что ||s(u)|| == бс, если только не имеет место неравенство |s(0)l|^6c, в случае выполнения которого решением задачи является s(0)==s^. Для любого ^^0 вектор s(^i) задает направление спуска для f из л"с. 6 Зак, 6fi0 162 Гл. 6. Глобально сходящиеся модификации Доказательство. Формула (6.4.2) вытекает непосредственно из необходимых и достаточных условий для задач условной оп- тимизации, однако нигде в книге нам не требуется привлечения результатов такой общности. При желании, читая доказатель- ство, можно обращаться к рис. 6.4.1. На нем изображены Хс, положительно определенная квадратичная модель nic с мини- мумом в точке х^, окруженной линиями уровня для некоторых возрастающих шага 6с. Обозначим значений те, а также изображена граница решение задачи (6.4.1) через s„ и пусть х^ = х^ 4- s„. Поскольку ньютоновская точка л:д + s^ служит точкой глобального минимума для /Пд, то ясно, что если H^YI^^c' т0 s^==s.• Рассмотрим теперь случай, когда д:д + s^ выходит за границу шага, как изображено на рис. 6.4.1. Пусть х—произвольная точка, находящаяся строго внутри допусти- мой области, заданной ограничением, т. е. \\х—Хс|1-<6с. Тогда Vm.c{x)=/=0, поэтому имеется возможность уменьшить те из х, оставаясь внутри допустимой области и рассматривая точки вида х—^Vmc(Jc). Отсюда следует, что s не может быть реше- нием задачи (6.4.1), поэтому s^ должно удовлетворять равенству llsJ=6c, если только не имеет место неравенство ||s(0) || < 6с. Кроме того, поскольку допустимая область задачи (6.4.1) за- мкнута и ограничена, то должно существовать решение s, та- кое, что ||s||==6c. Рассмотрим теперь s, такое, что ||s||=6c. Для того чтобы s было решением задачи (6.4.1), необходимо, чтобы при движе- нии на сколь угодно малое расстояние из Хс + s вдоль любого Рис. 6.4.1. Решение задачи (6.4.1). 6.4. Подход: модель—доверительная область 163 )4 направления, являющегося направлением спуска для /Пс, уве- личивалось расстояние от Хс. Направлением спуска для те из Хс + s служит любой вектор р, для которого О > р^тс (х, + s) == pт [H,s + V/ (х,)}. (6.4.3) Аналогично, направление р из Хс + s увеличивает расстояние от Хс тогда и только тогда, когда ^s > 0. (6.4.4) Сказанное сводится к следующему: чтобы s было решением для (6.4.1), любое р, удовлетворяющее (6.4.3), должно также удовлетворять (6.4.4). Поскольку известно, что Vmc(xc + s)^0, это может иметь место, только если Vmc(Xc+s) и —s имеют одно и то же направление, или, другими словами, если для не- которого [\ ~> О (IS = — V/Пс (Хс + S) = — (H^S + V/ (Хс}), что в точности есть уравнение (//c+H^)s==—Vf(Xc). Таким образом, s,=s(^i) для некоторого ^>0 при ||s^j>6^. По- скольку |л^0 и матрица Не симметрична и положительно определена, (Не + ^1} является симметричной и положительно определенной, поэтому s([i) есть направление спуска для f из Хс. Для завершения доказательства необходимо показать единственность s,, которая вытекает из более сильного резуль- тата, состоящего в том, что если |^i>U2^0> т0 1|s(ui)||< < |[ s (^2) II. Это показывает, что |[ s (ц) || = 6д имеет единственное решение, которое должно быть решением и для (6.4.1). Дока- зательство является простым, поскольку если ц ^ 0 и П W А 1] s W Из = || (Не + ц/)"1 Vf (х,} ||, -^(x^J^i+ffcr3^^) _ -sWT(H^+v.I)~lsW 11s(ц) II II 5(^)11 и поэтому т]/((^)<;0 всякий раз, когда V^(xc)=/=0. Таким обра- зом, г| есть монотонно убывающая функция от ^. D Трудность использования леммы 6.4.1 в качестве основы для вычисления шага в алгоритме минимизации состоит в том, что не существует конечного метода определения ^с > 0, та- кого, ЧТО || S (|Лс) Ib = 6с При бс < lU^^f (Хс}\\2- ПОЭТОМУ В СЛС- дующих двух подразделах описываются два вычислительных метода для приближенного решения задачи (6.4.1). Первый— метод с локально ограниченным оптимальным (или «криволи- нейным») шагом, в котором находится [ic, такое, что |[s(}Xc)ll2^ ^ бс, и берется х+ = Хс + s(^c). Второй — метод с шагом в виде ломаной линии, в котором производится кусочно-линейная ап- проксимация кривой s((i) ив качестве х+ берется точка на б* 164 Гл. 6. Глобально сходящиеся модификации этой аппроксимации, удовлетворяющая равенству ЦА-+— —Хс\\= 6с. Нет никакой гарантии, что х+, являющееся приближенным решением (6.4.1), будет приемлемой следующей точкой, од- нако мы надеемся, что она будет таковой, если бс служит хо- рошим ограничением шага. Поэтому алгоритм доверительной области в своем завершенном виде будет выглядеть так: Алгоритм 6.4.2. Шаг глобальной стратегии на основе под- хода «модель — доверительная область» Заданы: f: R"-^R, бс > 0, ^csR", симметричная положи- тельно определенная матрица //деР"^. repeat (1) Sc= приближенное решение для (6.4.1), Х+ == ^с Т" Sc, (2) решить — приемлемо ли х+, и вычислить новое значе- ние бд, until x+ — приемлемая следующая точка; б+ = бд. Описание алгоритма «модель—доверительная область» за- вершается в разд. 6.4.3 рассмотрением приведенного выше шага 2. В заключение уместно сделать некоторые замечания. Во- первых, как показал Гэй (1981), даже если Не имеет отрица- Рис. 6.4.2. Кривая s (ц) 6.4. Подход: модель—доверительная область 165 тельные собственные значения, решением (6.4.1) является s», удовлетворяющее равенству (Яс+Р-О5* ==—^f(xc) для неко- торого ц > 0, такого, что матрица Не + (V по крайней мере положительно полуопределена. Это приводит к еще одному обоснованию описанной в разд. 5.5 стратегии внесения возмуще- ний в гессиан модели, когда \v2f{Xc) не является положительно определенным, таких, что Яс == V2^:(xc)+ (А/ положительно опре- делена. Получающийся в результате этого квазиньютоновский шаг —Hc^^f {xc} представляет собой шаг в точку минимума исходной (неположительно определенной) квадратичной мо- дели в некоторой сферической области с центром в Xc. В остав- шейся части разд. 6.4 предполагается, что Не положительно определена. Во-вторых, важно отметить, что s(^) непрерывно изменяется от квазиньютоновского шага — Hc^^f (Xc), соответствующего р, == 0, до 5(ц)^—(l/}i)Vf(xc), когда [А, становится большим. Таким образом, когда бс очень мало, решение задачи (6.4.1) представляет собой шаг длиной бс примерно в направлении наискорейшего спуска. На рис. 6.4.2 изображена кривая S(|J), О ^ [^ <: оо, для той же самой модели, что и на рис. 6.4.1. За- метим, что при п ~> 2 эта кривая, вообще говоря, не лежит в подпространстве, натянутом на Vf(xc) и Яс^У/ (xc} (см. упр. 10). Флетчер (1980) называет эти алгоритмы методами с огра- ниченным шагом. Этот термин отвечает больше всего рассмот- ренной в разд. 6.4.3 процедуре пересчета бс, которая может быть использована также и в алгоритмах с линейным поиском. Важной основой для алгоритмов из этого раздела служат ра- боты, выполненные Левенбергом (1944), Марквартом (1963), Голдфельдом, Куандом и Троттером (1966). На последующих страницах приводятся ссылки на более свежие работы. 6.4.1. Локально ограниченный оптимальный («криволинейный») шаг Первый из наших подходов к вычислению шага в алгорит- ме 6.4.2 «модель—доверительная область» при lls(0)||2>Sc состоит в нахождении s(^i)^—(Не + |^/)~1 V/ {Xc), такого, что lls(p) Цг^ бс, и далее в выполнении пробного шага в точку х+= =JCc+s([.i). В этом разделе рассматривается алгоритм для нахождения приближенного решения Цс скалярного уравнения (6.4.5) Фактически мы вовсе не будем требовать очень точного реше- ния, но обсуждение этого вопроса откладываем до конца дан- ного подраздела. 166 Гл. 6. Глобально сходящиеся модификации Применение идей гл. 2 заставило бы нас использовать ме- тод Ньютона для решения (6.4.5). Хотя это и оправдало бы себя, тем не менее можно показать, что Ф'(ц)<0 и Ф"(^)>0 для всех [А дЭ: 0, поэтому метод Ньютона всегда давал бы оцен- ку снизу для точного решения ^i. (см. рис. 6.4.3). Поэтому бу- дет построен другой метод, специально предназначенный для (6.4.5). Воспользуемся идеей из гл. 2, заключающейся в использо- вании аппарата локальных моделей решаемых задач. В дан- ном случае одномерный вариант Ф(ц)=l-(ц+^)-lgJ подсказывает нам общий вид локальной модели тс ^ = 6 -^-и ~~ 6С с двумя свободными параметрами а и р. Прежде чем обсудить а и |3, заметим, что мы незаметно пришли к новым обозначе- ниям, необходимым нам, когда дело касается итерации по [i, которая порождается приведенной выше моделью, имеет ме- сто внутри основной итерации по х и предназначается для оты- скания [ic, удовлетворяющего равенству (6.4.5). Жирный шрифт будет использоваться для текущих значений величин «д, Р^ и ц^, которые изменяются на внутренней итерации по j-i, а светлый—для текущих значений величин бс, Хс, Vf{Xc) и Не, которые порождаются на внешней итерации и не меняются на протяжении решения (6.4.5). Таким образом, ^с получается в результате внутренней итерации как последнее приближение Цс к ц,, т. е. к точному решению уравнения (6.4.5). Далее Хс и [АС используются для определения х+ = Хс + s (цс). Рис. 6.4.3. Метод Ньютона для решения Ф (ц) = О' 6.4. Подход: модель—доверительная область 167 Модель m^(,u) имеет два свободных параметра а^ и Рд, по- этому, как и при выводе метода Ньютона, целесообразно вы- брать их такими, чтобы они удовлетворяли двум условиям: tttc К) = —————— - бс == Ф Ы = II S (Цс) Ik - 6. Рд "1 t"c ^--^^^'^ Это дает (tc= Ф' (^) ' д (Ф(^)+^) „ ''с— ф'^) 'V (Ф (^) + б,)2 (6.4.6) (6.4.7) Заметим, что для вычисления s (fie) требуется разложение матрицы Не + V^d и, следовательно, на это необходимо затра- тить О (га3) арифметических операций. Раз уж мы имеем это разложение, то вычисление {Нс-{-^cl)~1 s{uc) обходится только в О (га2) операций, поэтому вычисление Ф^Цс) сравнительно дешево. Теперь, когда имеется модель те (ц), естественно выби- рать ц^ так, чтобы Стд(^)==0, т. е. СЕ, ^-^-Р.- Читатель может убедиться, что подстановка (6.4.6), (6.4.7) и (6.4.5) в приведенную выше формулу дает „ „ гФ^+^г^) 1 „ ll ^n Г °(^)1 (вля) ^=и.-[—^—\[-Ф^\=^-—67~[~<^\' (6•4•8) что выступает в качестве итерации для решения Ф(|л)==0. Вид формулы (6.4.8) показывает, что при Цс < М. делается шаг, больший, чем мог бы сделать метод Ньютона, но при Цс > ц, шаг оказывается меньшим, чем ньютоновский. По мере стрем- ления Цс к ц. (6.4.8) все более и более напоминает метод Ньютона и, действительно, локально ^-квадратично сходится к ц.. Остаются невыясненными несколько вопросов, связанных с превращением (6.4.8) в вычислительный алгоритм. Дальней- шие рассуждения и наш алгоритм основываются на работах Хебдена (1973) и Морэ (1977). Можно порекомендовать также работу Гандера (1978). Читатели, не интересующиеся деталями численной реализации, могут при желании пропустить следую- щие три абзаца. 168 Гл. 6, Глобально сходящиеся модификации Первое соображение касается начального значения для ц при решении (6.4.5). Райнш (1971) показал, что если процесс (6.4.8) начинается с ^о = 0, то итерации по уь сходятся моно- тонно снизу к ц», но нам хотелось бы начинать еще ближе, так как каждая итерация в (6.4.8) требует решения линейной си- стемы. В численной реализации, предложенной Морэ, исполь- зуется приближенное решение (А_ последнего варианта уравне- ния (6.4.5) для получения начального приближения в текущем варианте этого уравнения. Способ, применяемый Морэ, прост: если текущее значение верхней границы шага бс равно послед- нему значению верхней границы шага б-, умноженной на р, то для начала в (6.4.8) используется ^^,o:=^^._/^?. Мы предпочи- таем стратегию, отличающуюся от описанной. Напомним, в ка- кой ситуации мы находимся на итерации: только что был сде- лан шаг по х, равный s(^x-), из х- в Хс, и хотелось бы полу- чить х+, причем 6с уже получено из б— Перед тем как получить Не, мы все же имеем (Я-+^_/) в факторизованном виде, и поэтому вычисление ФА||5((-1_)||-6„ ^ л s (ц-)7' (Я- + ц_/)"1 s(y„) '= |Щц-)|| обходится только в О (/г2) операций. По аналогии с (6.4.8) ис- пользуется ,,=,_-1^)1° (6.4.9) 6с Ф' ' \".^/ т. е. значение ц, полученное на основе ^-, предыдущей модели и нового радиуса бс доверительной области. Если 6с === б_, то Но представляет собой в точности то же значение, что мы по- лучили бы, сделав на основе предыдущей модели еще одну итерацию по |J. С другой стороны, если на предыдущей итера- ции') был сделан ньютоновский шаг, то будем выбирать цо по другому правилу, речь о котором пойдет ниже. Другая вычислительная деталь, имеющая важное значение для работы алгоритма по решению (6.4.5), состоит в выработке и пересчете нижней и верхней границ у+ и /+ для ц+. Эти гра- ницы используются наряду с (6.4.8) таким же образом, как границы, которые использовались, чтобы обезопасить процесс дробления шага в алгоритме 6.3.5, т. е. значение ^ ограни- чивается так, чтобы оно принадлежало [l„ U.J. Поскольку ре- зультат ньютоновской итерации, примененной к (6.4.5), всегда не дотягивает до значения^,, то мы берем 1у==—Ф(0)/Ф'(0). Затем наряду с каждым вычислением (6.4.8) вычисляется ____ и-Т = ^ - Ф (Цс)/Ф' (^с) *) Имеется в виду итерация по х. — Прим. перев. 6.4. Подход: модель—доверительная область 169 и пересчитывается нижняя граница 1^ = max \l^, ц^}, где 1^— текущее значение нижней границы. Кроме того, поскольку б.Ч(Яe+•^J)-lVWff2<IZ^, что следует из положительной определенности Не и из того, что ц. > 0, то || V/' (Хс) llz/Sc берется в качестве начального зна- чения нижней границы «д для ц,. Затем на каждой итерации при Ф (,"<•)< О пересчитывается верхняя граница по формуле ы^==тш^,цЛ, где йд— текущее значение верхней границы. Если на какой-либо итерации оказывается, что ц, не при- надлежит \1^, и ], то мы следуем Морэ в выборе |и, по фор- муле ^ = max {(^ . u^yi2. 10-3 M.J, (6.4.10) где второй член предохраняет от близких к нулю значений /+. На практике к этим границам наиболее часто обращаются при вычислении "о. В частности, (6.4.10) используется для задания [ID всякий раз, когда (6.4.9) не может быть использована, по- тому что на предыдущей итерации применялся ньютоновский шаг. И наконец, мы не решаем (6.4.5) со сколь-нибудь высокой точностью, довольствуясь вместо этого значениями I sells' Збс L 4 Збс 1 2 j' Причина состоит в том, что доверительная область, как это будет видно в разд. 6.4.3, никогда не увеличивается и не умень- шается менее чем в 2 раза. Так что если радиус текущей довери- тельной области равняется бс, то предыдущий был либо больше или равен 2бс, либо меньше или равен бс/2. Таким образом, мы считаем, что фактическое значение бс является довольно произ- вольным в пределах отрезка [Збс/4, Збс/2], который занимает среднее положение в обоих направлениях, и представляется разумным допускать любые значения ||s(|i,)||2 из этого отрезка. В некоторых других численных реализациях [см., например, Морэ (1977)] требуется, чтобы ||s(^) \\z е [0.96с, 1.16с], и не ясно, какой из этих отрезков лучше. Опыт показывает, что лю- бое из условий удовлетворяется за число вычислений значения ц, лежащее в среднем на итерацию по х между 1 и 2. На этом завершается наше обсуждение алгоритма прибли- женного решения уравнения (6.4.5). Ниже приведен простой пример. 170 Гл. 6. Глобально сходящиеся модификации Пример 6.4.3. Пусть f (х^, х^) = х\ + х2 + х^, х^=(1, I)7', Я,=V2Ц^), бс==у. Ц-==0. Тогда V^)=(6,2)7-, /Ч'; ^. ^=-^-'Vf(^)(-|-, -l)7', []<||,-1.088. з Поскольку fls^j > -п-бс,то ньютоновский шаг оказывается слиш- ком большим по длине, и мы стараемся найти некоторое |А > О, такое, что | (Я, + ^)-1 V/ (^) L s [-^ , ^] == [0.375, 0.75] ?5; 1.25, ; 12.6, (рис. 6.4.4). Поскольку ^-=0, то вычисления дают Ф (0) 0.588 Ф' (0) — 0.472 IIW(^)ll2 ^ 6.325 ^ 6,. — 0.5 - Цо^о-йо^З^. Затем вычисляется s (цо)=- (^с+Цо/)"1 Vf (х,)^(-0.334, -0.335)7'. Поскольку || s(fio)ll2^ 0.473s [0.375, 0.75], то берем t-i(;=h) и x+=л:с+s(}ic) ^ (0.666, 0.665)7' в качестве нашего приближенного решения задачи (6.4.1). Заметим, что Рис. 6.4.4. «Криволинейный» шаг из примера 6.4.3. 6.4. Подход: модель—доверительная область 171 в данном случае итерация (6.4.8) не использовалась. Для наг- лядности читатель может убедиться, что однократное примене- ние (6.4.8) дало бы ®(^o) II ^^}\\2 ф/ (^о) = 3.97 —0.0271 +0.473 +0.528 ' +0.5 -3.49 и что s(ui)=(—0.343, —0.365)г, |[s()ii)||2= 0.5006. В данном случае точное решение уравнения (6.4.5) имеет вид ц, ^ 3.496. Наш алгоритм для вычисления локально ограниченного оптимального («криволинейного») шага, использующий описан- ные в этом разделе приемы, представлен в приложении алго- ритмом А6.4.2. В работе ему предшествует драйверный алгоритм А6.4.1, осуществляющий полный глобальный шаг с использова- нием принципов выбора локально ограниченного оптимального шага. Полный шаг включает в себя выбор новой точки х+ алго- ритмом А6.4.2, проверку приемлемости х+ и пересчет радиуса доверительной области (алгоритм А6.4.5), а также при необхо- димости повторение этого процесса. Все эти алгоритмы исполь- зуют диагональную матрицу масштабирования в пространстве переменных, которое будет рассмотрено в разд. 7.1. Некоторые недавние исследования [Гэй (1981), Соренсен (1982)] были сконцентрированы на приближенном решении ло- кально ограниченной модельной задачи (6.4.1) с использованием описанных в этом разделе приемов, распространенных на тот случай, когда Не не является положительно определенной. Эти приемы могут стать важным дополнением к алгоритмам из дан- ного раздела. 6.4.2. Шаг с двойным изломом Другой реализацией рассматриваемого подхода «модель—до- верительная область» служит модификация алгоритма довери- тельной области, предложенная Пауэллом (1970а). В этой моди- фикации тоже ищется приближенное решение задачи (6.4.1). Однако вместо того чтобы находить точку х+==^с+5(цс) на кривой s(}x), такую, что ||л-+—A-clk^Sc, в ней аппроксимируется эта кривая кусочно-линейной функцией, соединяющей «точку Коши» С. Р.'), т. е. точку минимума квадратичной модели те на направлении наискорейшего спуска, с ньютоновским для т.с направлением, как это указано на рис. 6.4.5. Затем в качестве х+ выбирается точка на этой ломаной линии, такая, что \\х+—Хс\\2=^>с, если только не имеет место неравенство ll^c'Vf (^c)fl2< f>c, причем в последнем случае х+—ньютонов- ская точка. Такую стратегию можно еще рассматривать и как 1) с. Р.—сокращение от «Cauchy point» (точка Кошп).—Прим. перев. 172 Гл. 6. Глобально сходящиеся модификации ., -Vf(A-c) Рис. 6.4.5. Кривая с двойным изломом Хд —>• С.Р. -> N -> х с • простую стратегию поиска в направлении наискорейшего спуска, если бс мало, а по мере роста 6с—в направлении, все более и более приближающемся к квазиньютоновскому. Специальный способ выбора кривой с двойным изломом обеспечивает наличие у нее двух важных свойств. Первое: по мере продвижения вдоль кусочно-линейной кривой от Хс к С. Р., затем к Я и далее к х^ расстояние от Хс монотонно увеличи- вается. Следовательно, для'любого б^НЯс'1^^))! существует единственная точка на кривой, такая, что \\х+—Хс\\ч=^- Имен- но это делает процесс корректно определенным. Второе свой- ство состоит в том, что значение квадратичной модели mc(xc+s) монотонно уменьшается по мере продвижения s вдоль кривой от Хс к С.Р., затем к N и далее к х^. Это делает процесс вполне обоснованным. Точка С. Р. на рис. 6.4.5 находится путем решения задачи min т.с (Хс ».sR Wf (х,)) = f (х,) -W {х,} ||j + 4 ^ (XcY H^f (х,), которая имеет единственное решение Следовательно, и если '• 7f (x^ ff^f (xc) ' C.P.=x,-^f(x,), 6с < ^.11 Vf (Хс} ^ = 11 Vf (X,) l^/Vf (Л-с)7' /W (Хс), 6.4. Подход: модель—доверительная область 173 то алгоритмом делается шаг длиной бс в направлении наискорей- шего спуска: х+ = хс ~ l|V/(^)ll2 v/ (хс}- Для того чтобы кривая с двойным изломом обладала первым из с4)ормулированных выше свойств, необходимо показать, что точка Коши С. Р. находится не дальше от Хс, чем ньютоновская точка х" Пусть С.Р. тогда I 0е-Р' II • \S Hz • V/ W H^f (Xe) (Vf (xf fl^f (x,)) (V/ (х,/ H^Vf (x,)) ^IkATll^lL. (6.4.11) В качестве упражнения можно показать, что -у s?a 1 для любой положительно определенной матрицы Не, причем у = 1 тогда и только тогда, когда s^1'- =sl\l. Мы исключаем из рассмотрения этот случай до конца данного раздела. Итак, ils^-lb^Vll^lla^ll^lk. Точка N на кривой с двойным изломом выбирается так, чтобы она имела вид N=x,-^\f(xc) для некоторого T}, такого, что V<TI<I, и чтобы она обладала свойством nic(x} уменьшается монотонно вдоль прямой от С. Р. к Л?. (6.4.12) Поскольку известно, что т.с(х} уменьшается монотонно от Хс до С.Р. и от N до х1^, то (6.4.12) будет гарантировать монотонное уменьшение т.с(х) вдоль всей кривой с двойным изломом. Для того чтобы имело место (6.4.12), г\ должно выбираться так, чтобы производная по направлению вдоль прямой, соеди- няющей С. Р. и N, была отрицательной в каждой точке этого линейного сегмента. Параметризуем этот линейный сегмент сле- дующим образом: ^+W==^+sc•p•+Mтls'v-sc•p•), 0<^<1. 1 74 Гл. 6. Глобально сходящиеся модификации Производная по направлению для те вдоль этой прямой в х+{К) равна ^mAx+WYW-s^^}^ =: W (Хс) + Не (5е- р- + ^ (^ - 5е- p•))]г (^ - 5е- р-) = = (Vf (^) + /^с- Ру (т^ - 5е-I'-) + ^ (т^~ 5е- P-)7' //, (i^-s0- P-). (6.4.13) Поскольку Яс положительно определена, то правая часть в (6.4.13) представляет собой монотонно возрастающую функ- цию от К. Следовательно, необходимо потребовать только, что- бы (6.4.13) было отрицательным для ^==1, что обеспечит ее отрицательность для 0^^^ 1. Элементарные преобразования показывают, что данное условие эквивалентно неравенству 0>^-^^f(x^^sN-sc•p•})= = (1 - Л) (V - r\) (V^ (x/ H^Vf Ы), которое должно выполняться для всех T) е(у, 1). Таким образом, в качестве N можно выбирать любую точку на ньютоновском направлении Хс + т^, для которой T] лежит между 1 и величиной у, определенной в (6.4.11). Первоначаль- ным выбором Пауэлла было T|=I, чему соответствует кривая с одним изломом. Численное тестирование, однако, показало, что более ранний переход на ньютоновское направление, по-ви- димому, улучшает работоспособность алгоритма. Поэтому Ден- нис и Мей (1979) предложили выбор T] = 0.8у + 0.2, который приводит к кривой с двойным изломом, наподобие той, что изо- бражена на рис. 6.4.5. Выбор точек С. Р. и Л^ полностью определяет кривую с двой- ным изломом. Нахождение на кривой точки х+, такой, что ||х+—Хс^ч^бс, представляет собой простую и нетрудоемкую алгебраическую задачу, что и будет продемонстрировано в при- веденном ниже примере 6.4.4. Отметим, что полные затраты алгоритма составляют после вычисления s^f только О (/г2) ариф- метических операций. Пример 6.4.4. Пусть f(x}, Хс и Не заданы, как в примере 6.4.3, и пусть бс == 0.75. Напомним, что V^)=(6,2)., Я,=[^ ^], ^(--l-,-!)7 Поскольку ||s^|L= 1.088 > 6д, то алгоритм, использующий кри- вую с двойным изломом, сначала вычисляет шаг в точку Коши. Читатель может убедиться, что она имеет вид 6.4. Подход: модель—доверительная область 175 Так как Hs^-lb ^ 0.494 < 6с, то далее алгоритм вычисляет шаг в точку N. Читатель может убедиться, что У=—%Т- °-684. (512) (^) т] = 0.8у + 0.2 ^ 0.747, SN A, TIS^ ^ ^( -0-320 Л -Л-0.747^ -0.320' -0.747. Поскольку II s^ На ^ 0.813 > 6с, то шаг с двойным изломом дол- жен проходить через прямую, соединяющую С. Р. и N, т. е. s, = «с. Р. + ^ (дЯ _ дс. Р.) для 7,^(0, 1), такого, что ]|sJ2==6c. Величина К получается в результате нахождения положитель- ного корня квадратного уравнения []sC.P.+^_sC.P.)||^6;i. Этим корнем является К s= 0.867. Таким образом, сС. Р.\ ^ /-0.340 \ V -0.669 )' -0.340 • -0.669. X^. == Хц -\- Sc ( 0.660 \ V 0.331 )• 0.660 \ 0.331;' Полностью эти вычисления отражены на рис. 6.4.6. Наш алгоритм выбора точки в соответствии со стратегией шага вдоль кривой с двойным изломом представлен в приложе- нии алгоритмом А6.4.4. Вычислительный опыт показывает, что выбранные, согласно этой стратегии, точки в худшем случае лишь слегка уступают тем, что выбираются в соответствии с локально ограниченным оптимальным шагом алгоритма А6.4.2. Рис. 6.4.6. Шаг с двойным изломом из примера 6.4.4. 176 Гл. 6. Глобально сходящиеся модификации Однако здесь есть, что сравнивать, а именно сложность и время счета алгоритма А6.4.4 значительно меньше, чем у алгоритма А6.4.2. Это делает привлекательной стратегию поиска вдоль ломаной, особенно в случае задач, в которых невысока трудо- емкость вычисления функции и производной. Алгоритм А6.4.3 содержит драйвер для полного глобального шага, использующего алгоритм поиска вдоль кривой с двойным изломом с целью нахождения претендента для точки х+. Оба алгоритма включают в себя диагональное масштабирование пространства переменных, описанное в разд. 7.1. 6.4.3. Пересчет доверительной области Для того чтобы глобальный шаг, описанный в алгоритме 6.4.2, принял завершенный вид, необходимо решить, является ли точка х+, найденная с использованием техники из разд. 6.4.1 или 6.4.2, удовлетворительным следующим приближением. Если х+ оказывается неприемлемой, то размеры доверительной обла- сти уменьшаются и производится минимизация той же самой квадратичной модели на уменьшенной области. Если х+ явля- ется удовлетворительной, то нужно решить, увеличивать, умень- шать, или оставлять неизменной доверительную область на сле- дующем шаге алгоритма 6.1.1. Основой для такого решения слу- жат приведенные ниже рассуждения. Условием приемлемости х+ служит то, что было изложено в разд. 6.3, а именно: f(^)<^)+<(^-^), (6.4.14) где gc равно Vf(Xc) или его аппроксимации, а а—константа из интервала [0, —). В нашем алгоритме мы опять полагаем а==10-4, так что условие (6.4.14) вряд ли более строгое, чем f{x+)<. f(xc). Если х+ не удовлетворяет (6.4.14), то размеры доверительной области уменьшаются умножением на коэффи- циент, лежащий в пределах от -,„- до -п, и мы снова возвра- щаемся к приближенному решению локально ограниченной за- дачи минимизации, используя идею локально ограниченного оптимального шага или шага вдоль кривой с двойным изломом. Коэффициент уменьшения определяется с помощью той же са- мой стратегии дробления шага на базе квадратичной аппрокси- мации, которая использовалась в алгоритме А6.3.1 для уменьше- ния параметра линейного поиска. Функция /(^с-т-М-Ч-—Хс)) моделируется квадратичной m.q(K'}, совпадающей с f{xc) и f(x+), а также с производной по направлению g^ (х,—хЛ функции f и Хс вдоль направления л'+—Хс. Затем мы предполагаем, что 6.4. Подход: модель—доверительная область 177 радиус доверительной области 6+ совпадает с точкой минимума этой модели, которая находится в 2[f(x^-f(x,)-gт,(x^-x,)} (см. рис. 6.4.7). Таким образом, 6+=^,||л-+—Хс\\ч. Если ^||^-^||^[-^6„ ^6,], то вместо этого значения, исходя из тех же соображений, что и в алгоритме линейного поиска, в качестве б+ выбирается бли- жайший из концов указанного отрезка. Заметим, что если х+ выбирается в соответствии с описанной в разд. 6.4.2 стратегией ПОИСКа ВДОЛЬ КрИВОЙ С ДВОЙНЫМ ИЗЛОМОМ, ТО \\Х+—Хс\\2=6с, НО если х+ выбирается в соответствии с описанной в разд. 6.4.2 стратегией локально ограниченного оптимального шага, то нам [3 3 ^ известно лишь, что \\х+—xdIgS -. бд, у 6с . Теперь предположим, что уже найдено х+, удовлетворяющее (6.4.14). Если JC+ представляет собой полный ньютоновский шаг из Хс, то этот шаг выполняется, пересчитывается б, строится новая модель и происходит переход к следующей итерации. Од- нако если х+—Хс не является ньютоновским шагом, то сначала рассматривается вопрос о том, следует ли пытаться сделать шаг побольше, используя текущую модель. Довод в пользу того, что это может быть оправданным, состоит в том, что таким образом можно избежать необходимости вычислений в х+ градиента (гес- сиана), стоимость которых в трудоемких задачах часто является Рис. 6.4.7. Уменьшение доверительной области в случае, когда х+ неприем- лемо. 178 Гл. 6. Глобально сходящиеся модификации доминирующей. Причина, по которой возможен более длинный шаг, заключается в том, что в ходе предыдущей работы алго- ритма доверительная область может стать малой, а в данный момент может возникнуть необходимость в ее увеличении. Это имеет место, когда мы выходим из области, где граница длины шага должна быть малой из-за того, что в ней функция не очень удачно описывалась квадратичной, и попадаем в область с бо- лее хорошим поведением функции. Для того чтобы решить—пытаться ли сделать более длин- ный шаг из Хс, мы сравниваем реальное уменьшение функции ^f^f{x+)—f (х^ предсказанным уменьшением Af ^д^т (л:,)— —1(хЛ. Берем х+ в качестве следующего приближения, если либо соответствие между ними настолько хорошее, т.е. A^pred — —Af|s^0.1|Af[, что величина бс, как мы подозреваем, недооце- нивает радиуса области, в которой те адекватно представляет f, либо реальное уменьшение f настолько велико, что оно гово- рит о наличии отрицательной кривизны, т. е. f (х+) -?s f (Хс) + + \if(xc}т(x+—Хс), и, таким образом, это обещает продолже- ние быстрого изменения f(x}. В обоих этих случаях запомина- ются значения х+ и f{x+), однако, вместо того чтобы переходить непосредственно к х+, сначала удваивается бс, а затем с исполь- зованием нашей текущей модели вычисляется новое х+. Если для нового х+ не выполняется (6.4.14), то мы возвращаемся к последнему хорошему шагу, который уже вычислен, но если это соотношение выполняется, то производится очередное удвое- ние. На практике таким образом можно сэкономить значитель- ное число вычислений градиента. Интересная ситуация, в которой граница длины шага долж- на сжиматься, а затем увеличиваться, встречается, когда алго- ритм проходит вблизи точки, напоминающей точку минимума. Ньютоновские шаги становятся все короче, и тогда алгоритм, выполняя эти ньютоновские шаги, ведет себя так, как если бы он сходился. Затем алгоритм обнаруживает выход из сложив- шегося положения, ньютоновские шаги увеличиваются, и алго- ритм уходит прочь от этого места. Такое поведение является желательным, так как возмущенная задача могла в самом деле иметь точку минимума в том месте, на которое было отвлечено внимание. Для нас желательно, чтобы в этом случае мы могли быстро увеличивать бс. В одном примере нам встретилось шесть таких удваиваний границы шага на внутренней итерации после прохождения точки, привлекшей к себе внимание. Предположим теперь, что мы уже остановили наш выбор на х+, как на точке следующей итерации, и поэтому необходимо произвести пересчет бс в б+. Для получения б+ допускаются три варианта: удвоить границу шага, уменьшить ее вдвое или оста- вить неизменной. Реальные обстоятельства довольно разнооб- 6.4. Подход: модель—доверительная область 179 разны, однако важно то, что если текущая квадратичная модель хорошо предсказывает поведение функции, то доверительную область увеличиваем, но если она предсказывает плохо, то мы уменьшаем доверительную область. Если квадратичная модель довольно хорошо предсказала реальное уменьшение функции, т. е. если Л/ < 0.75Д/ргеч, то берется 6+ = 2бс. Если модель слиш- ком переоценила уменьшение в f{x), т. е. если Л^ ~> O.lAfpred, то берем б+=бс/2. В противном случае б+== бс. Пример 6.4.5. Пусть f(x), Хс, Не и 6с задаются, как в при- мере 6.4.3. Предположим, что шаг, описанный в этом примере, уже сделан, т. е. __ _(\ ^ У 0.334 \ / 0.666 \ -A-c+Sc—^J ^0.335; 10.665 / /1\ / 0.334 \ ^0.666 х, Напомним, что ^^-)==(Q,2Y, H,=^f{x,}=[^ ^]- Мы хотим выяснить, является ли точка х+ удовлетворительной, и хотим произвести пересчет доверительной области. Сначала вычислим f{x^}= 1.083, f {х,} + a^f (x,Y (x+ - xc) = 3 - Ю-4 (2.673) = 2.9997. Следовательно, х+ приемлемо. Затем мы решаем, нужно ли по- пробовать на текущей итерации сделать более длинный шаг. Для этого вычислим Л^=Цх+)-^)=-1.917 ^ = ^ (^) - f (^ = v^ W ^ + у ^А. - = -2.673 + 0.892 = -1.781. Поскольку |Л^-Л^ J/1 АД =0.07 К 0.1, то мы увеличиваем доверительную область вдвое и возвращаемся к локально огра- ниченному оптимальному шагу (см. алгоритм А6.4.1). Читатель может убедиться, что при новом радиусе доверительной области бс= 1 алгоритмом А6.4.1 будет сделан ньютоновский шаг. Оста^- вим в качестве упражнения завершить пересчет доверительной области на этой глобальной итерации. Алгоритм пересчета доверительной области представлен в приложении алгоритмом А6.4.5. Он имеет несколько дополни- тельных особенностей. 1 Он использует минимальную и максимальную длину шага, оассмотренную в разд. 7.2. Радиусу доверительной области не разрешается выходить за эти пределы. Максимальная длина 180 Гл. 6. Глобально сходящиеся модификации шага задается пользователем. Минимальная длина шага слу- жит величиной, используемой для проверки на сходимость в ал- горитме 7.2.1. Если х+ неприемлемо, но размеры текущей до- верительной области оказываются меньшими, чем minstep, то происходит остановка глобального шага, так как в конце теку- щей глобальной итерации была бы обязательно выявлена схо- димость. Эта ситуация может указывать на сходимость к точке, не являющейся решением, поэтому должно выдаваться предосте- регающее сообщение. 2. Если полученным с помощью алгоритма А6.4.2 или А6.4.4 приближенным решением модельной задачи с ограничением является ньютоновский шаг, т. е. шаг более короткий, чем те- кущий радиус доверительной области, то эти алгоритмы сразу уменьшают размеры доверительной области до размеров ньюто- новского шага. Затем он все же уточняется алгоритмом Аб.4.5. Это представляет собой дополнительный механизм регулировки размеров доверительной области. 3. Алгоритм реализован с использованием рассматривае- мого в разд. 7.1 диагонального масштабирования имеющегося пространства. В заключение обсудим вопрос о том, как получается началь- ная оценка радиуса доверительной области, или, другими сло- вами, оценка границы шага. Иногда пользователь может сам задать разумную оценку на основе его знания задачи. Если же нет, то для этого случая Пауэлл (1970а) предлагает использо- вать шаг по методу Коши (см. разд. 6.4.2) в качестве началь- ного радиуса доверительной области. Возможны и другие стра- тегии. Стратегия пересчета в алгоритме Аб.4.5 действительно позволяет алгоритму доверительной области избавиться на прак- тике от плохого начального значения для б, но обычно за это надо платить дополнительными итерациями. Поэтому начальная доверительная область имеет довольно важное значение. 6.5. ГЛОБАЛЬНЫЕ МЕТОДЫ РЕШЕНИЯ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ Вернемся теперь к задаче решения системы нелинейных урав- нений: задано: t". К' ->к , найти х. е R", такое, что F(x^)==0. F: R"-^R", (6.5.1) В этом разделе будет показано, каким образом можно объеди- нить метод Ньютона для (6.5.1) с глобальными методами без- условной минимизации в целях создания глобального метода для (6.5.1). 6.5. Глобальные методы решения систем 181 Ньютоновский шаг для (6.5.1) имеет вид x+==Xc—J(Xc)~[F(Xc}, (6.5.2) где !(хс) есть матрица Якоби функции F в Хс. Из разд. 5.2 из- вестно, что (6.5.2) локально ^-квадратично сходится к х^, но не обязательно глобально сходится. Теперь предположим, что Хс не находится вблизи от какого-либо решения л:» задачи (6.5.1). Как тогда решать вопрос о том, принять или нет х+ в качестве сле- дующего приближения? Разумный ответ состоит в том, что в некоторой норме || • || величина ||F(^+)|| должна быть меньше, чем II/7 (^с) II, причем подходящим вариантом здесь служит /г- норма: i\F(x}\\^==F(x}TF(x). Требование, чтобы наш шаг приводил к уменьшению ||F(^)||2, отвечает тому, что требуется при поиске минимума функции !l^(^")ll2. Таким образом, мы в действительности переключили внимание на соответствующую задачу минимизации: (6.5.3) xeR" где «1/2» добавлено, исходя из удобства дальнейших выкладок. Заметим, что любое решение (6.5.1) является решением и (6.5.3), однако (6.5.3) может иметь много локальных миниму- мов, которые не являются решениями для (6.5.1) (рис. 6.5.1). Поэтому хотя можно было бы пытаться решать (6.5.1), просто применяя процедуру минимизации к (6.5.3), все же лучше ис- пользовать специфику исходной задачи всякий раз, когда это возможно, в частности, вычисляя ньютоновский шаг (6.5.2). Тем не менее наша глобальная стратегия для (6.5.1) будет ба- зироваться на глобальной стратегии решения связанной с ней задачи минимизации (6.5.3). Зададим важный вопрос: «Что является направлением убы- вания для задачи (6.5.3)?» Им служит произвольное направле- Рис. 6.5.1. Нелинейные уравнения и соответствующая задача минимизации, одномерный случай. 182 Гл. 6. Глобально сходящиеся модификации ние р, для которого \^f{Xc)тp <. О, где п п ^^^-^^(ii^cW^^h^-i^^JWF^. Следовательно, направление наискорейшего спуска для (6.5,3) направлено вдоль —J(xc)TF(xc). Кроме того, ньютоновское на- правление вдоль s^ ==—J(xc}~\F(xc) представляет собой на- правление спуска, так как V/ (xf s" == - F {xf J (x,) J (x,)-' F (x,) = - F (xf'F {x,} < 0 всякий раз, когда F(xc)=гl=0. Этот факт может показаться уди- вительным, но геометрически он вполне очевиден. Поскольку ньютоновский шаг дает корень для M,(x,+s)=F(x,)+!(x,}s, он также приводит в точку минимума квадратичной функции rhc (,Хс + s) А у Мс (л-с + •s)7' Me {.Хс + s) == = ^ F (х/ F (х,} + (J (x,Y F {x,W s + { sт (/ (^г / (х,)) s, (6.5.4) так как rhc{xc + s)^ 0 для всех s и rhc {Хс + s^} = 0. Это озна- чает, что 8м представляет собой направление спуска для rhc, и поскольку градиенты функций rhc и f совпадают в точке Хс, то оно также является направлением спуска для f. Полученный выше вывод обосновывает наши дальнейшие действия по созданию глобальных методов для (6.5.1). Эти методы будут основаны на применении алгоритмов из разд. 6.3 и 6.4 к квадратичной модели rhc(x), заданной в (6.5.4). По- скольку \f2ttl(xc)= J{xc}TJ{Xc), то рассматриваемая модель по- ложительно определена всякий раз, когда J (хс) не вырождено. Это в данном случае соответствует тому факту, что Хс + s^ есть единственный корень для Мс(х), и, следовательно, это есть един- ственная точка минимума для rhc(x). Таким образом, модель rhc{x) имеет привлекательные свойства, состоящие в том, что ее направления спуска являются направлениями спуска для f(x), поскольку УШс(Хс)= Vf(xc). Поэтому методы, основываю- щиеся на этой модели, которые используют направление «вниз по склону» и минимизацию rhc(x), будут объединять в себе ме- тод Ньютона для решения нелинейных уравнений с глобаль- ными методами для решения связанной с ними задачи миними- зации. Заметим, что rhc(x) не тождественно в окрестности точки Хс квадратичной модели т, {х, + s) = f (х,) + Vf (х^ s + 4 W (Хс} s 6.5. Глобальные методы решения систем 183 функции f(x)==-^-F (xf F (х}, потому что V2^ (х^) ?= J {XcY J (Хд) (см. упр. 18 из гл. 5). Применение глобальных методов из разд. 6.3 и 6.4 к задаче решения нелинейных уравнений становится теперь вполне оче- видным. Когда матрица /(д'с) достаточно хорошо обусловлена, тогда J{xc}rJ(xc) надежно положительно определена, и алго- ритмы применяются без каких-либо изменений, если определить целевую функцию как у II/7 (х)\\1, ньютоновское направление как —J(x}~\F(x} и положительно определенную квадратичную мо- дель согласно (6.5.4). Это означает, что в алгоритмах с линей- ным поиском этот поиск производится вдоль ньютоновского на- правления в целях существенного уменьшения ]|.Р(х) На. В алго- ритмах доверительной области приближенно минимизируется mc(Xc+s) при условии ЦхЦг ^ бс. Если бс Ss \\J (Xc)-lF(Xc)\\•„ то пробным является ньютоновский шаг, в противном случае пробным служит локально ограниченный оптимальный шаг s=-(f (х^ J (х,) + МГ' / (x^F (х,), (6.5.5) где ц,: таково, что Hsllz^Sc. Используя ту пли иную глобальную стратегию, мы ожидаем, что в конце концов начнут выполняться ньютоновские шаги для F(x)=0. В примере 6.5.1 показано, как глобальная стратегия, использующая линейный поиск, работала бы на примере из разд. 5.4, начиная из другой точки. В этой точке ньютоновский шаг является неприемлемым. Пример 6.5.1. Пусть F: R2-^ R2 г у2 _L у2 _ 9 -i Р(х)=Г ' 2 1 \ / |^.-1+^-2_|- Имеется корень х+==(1, \)T. Положим Хц=(2, 0.5)7'. Определим f{x}=-^F(x}TF(x}. Тогда ,, , [41 -| -/ , Г 2.25 -| ^-Ь 0.75 J' F ^l 0.843 J • ^=-/(^)-^(хо)-[^]. Алгоритм А6.3.1 с линейным поиском вычислит х =х^-\-К^, начиная с Ко==\ и, если необходимо, уменьшая 7,о' пока не выполнится неравенство f(x^.)<f(Xo)-{-lO~i^o'Vf(xo}тs^!. Для ^0=1 . к Г -1.001 р, ^=Хо+5о еч у ^^ j, F{x, \ ^l 1.1071 j _J84 Гл. 6. Глобально сходящиеся модификации поэтому очевидно, что ньютоновский шаг неудовлетворителен. Следовательно, Хо уменьшается дроблением шага на основе ква- дратичной аппроксимации по формуле , - -^о)^ /. , „ "-З^)-^)-^)^]- (6•5•6) В этом случае f(x^se 5.79 X 105, / (Ху) ss 2.89, ^f (хо)1' s-^ == •=—F(Xo)TF{Xo)^—'677 и тогда (6.5.6) дает ^ ^ 4.99 X ЮГ6 Поскольку Л,[<0.1, то алгоритм А6.3.1 полагает л; =0.1, Г 1.701 _. , Г 3.061 4l.47.|- ^Нз.21.1- 1.701 ^^Р-Об 1.47 Г '(- +^-L3.21 Этот результат все еще не является удовлетворительным, и по- этому алгоритмом А6.3.2 производится дробление шага на осно- ве кубической аппроксимации. Читатель может убедиться, что дробление шага дает 7^0.0659. Поскольку ^ > -9" ^i, то алго- ритм полагает ^ == х^+0.05<-[^ 0.987 F(x Эта точка все еще не является удовлетворительной, так как f(x+}s^3.7\ >f{xo), поэтому алгоритмом производится следую- щее дробление шага с кубической аппроксимацией. Это дает ^з^О.ОИб, которое и используется, так как его величина при- надлежит интервалу [7,2/10, W2] = [0.005, 0.025]. Теперь х ^х Ч-ООНб^-Г1-96^ F(. ^f2-23^ + ""'"•^'"^-[.О.бПГ ' (x+)=[ 0.856 j- Эта точка удовлетворительна, так как f(x^) ^ 2.87 < 2.89 -fG^+lO-^O.Ol 16) Vf^ofso", поэтому мы полагаем л"1 == л'+ и переходим к следующей ите- рации. Интересно проследить дальнейший ход решения задачи. На следующей итерации ^-^,г.^[-^], ."-.^-[^°]. ^Ч,^]. что опять является неудовлетворительным. Однако первое же дробление шага оказывается успешным. Действительно, алго- 6.5. Глобальные методы решения систем 185 ритм А6.3.1 вычисляет ^i ==0.0156, и поскольку это меньше 0.1, то он полагает ^1 = O.I, , -^+01^-Г1-84 1 F(x ^Г2-07 1 x+-^+u•lsl - L 0.820 J' г^ +-'-1 0.876 J- Этот шаг будет приемлемым, так как f (х+) ^ 2.53 < 2.87 ^ f{Xi)-^-lO~\0.\)Vf(x,) s,. На следующей итерации ^_ f^.гlF(r}^[~o•0756~\ s.,--/(x,) F{x,)=Y o.0437 J' „ , л, Г 1.088 "I _, .,, Г 0.762 "1 ^==^+S^L 1.257 J- F (^)^l 1.077 J- таким образом, ньютоновский шаг очень хорош. Начиная с этого момента метод Ньютона сходится ^-квадратично к л;«=(1, 1)". Единственное осложнение в этой глобальной стратегии воз- никает, когда матрица / почти вырождена в текущей точке Хс. В таком случае мы не можем аккуратно вычислить ньютонов- ское направление 5^==—J(xc)~lF(Xc), и гессиан модели J{xc)TJ{xc) является почти вырожденным. Для выявления этой ситуации выполняется Q^-разложение матрицы /(хс), и если матрица R не вырождена, то оценивается ее число обусловлен- ности по алгоритму АЗ.3.1. Если R вырождена или оценка ее числа обусловленности больше, чем macheps-1/2, то произво- дится возмущение квадратичной модели, так что где ifi, (х, + s) == ^- F (ХсУ F (х,) + (/ (XcY F (х,)У s + } s^s, Нс==1 (xf J {Xc) + (га • macheps)"2 fl / (х^ J (x,) ||i • /. (Число обусловленности матрицы Не есть величина порядка macheps-172. Более точное обоснование имеется в упр. 23.) Как известно из разд. 6.4, ньютоновский шаг в точку минимума этой модели s^ = — Hc\J{.XcfF(xc} представляет собой решение за- дачи min me (х, + s) = || / (х,) s+F (х,) ^ seR" ПРИ УСЛОВИИ II 5 И 2 ^ б при некотором б > 0. Он также является направлением спуска для / (х) == -„ || F (х) \\2,. Поэтому мы предпочитаем вместо этого модифицированного ньютоновского шага использовать некото- 186 Гл. 6. Глобально сходящиеся модификации рое s =—J(хс)^?'(Хс), которое бы получалось на основе воз- мущенного значения J {Хс) Q^-разложения матрицы /{Хс}. Даль- нейшее обсуждение этого шага можно найти в упр. 24. В драйвере D6.1.3 можно увидеть наши принципы использо- вания глобальных алгоритмов безусловной минимизации для ре- шения систем нелинейных уравнений. В начале каждой итерации алгоритмом А6.5.1 вычисляется Qc^c-разложение для /(Хс) и оценивается число обусловленности матрицы Re. Если оценка числа обусловленности меньше, чем macheps-1/2, то в нем вы- числяется ньютоновский шаг —J {Xc)~lF{Xc), в противном случае вычисляется описанный выше возмущенный ньютоновский шаг. Затем по выбору пользователя драйвером вызывается алгоритм линейного поиска, поиска вдоль кривой с двойным изломом или локально ограниченного оптимального шага. Для всех глобаль- ных алгоритмов требуется значение Vf(xc)=J(xc}TF(xc), кото- рое также вычисляется алгоритмом D6.3.1. Кроме того, в алго- ритмах доверительной области требуется разложение Холес- ского LcZJ для Не = J(Xc)TJ(Xc) (за исключением случая, когда в Не внесено описанное выше возмущение). Поскольку J(Xc)= = QcRc, отсюда сразу же получаем La==Rl. И наконец, все наши алгоритмы решения систем нелинейных уравнений реали- зованы с использованием диагональной матрицы Dp для мас- штабирования F (х), рассмотренного в разд. 7.2. Это приводит к тому, что f(x)=-^\\DpF(x}^, ^f(x}=J(x}TD],F(x), Н == J (xf DpJ (х). Имеется один важный случай, в котором эти глобальные алгоритмы решения систем нелинейных уравнений могут потер- петь неудачу. Это происходит, когда точка локального мини- мума f (х) =-п-\\ F (х) \\~^ не является корнем F(x) (см. рис. 6.5.1). Процедура глобальной минимизации, стартующая вблизи от та- кой точки, может сойтись к ней'). Не много можно сделать в такой ситуации сверх того, чтобы сообщить пользователю о слу- чившемся и предложить ему попытаться начать счет заново вблизи корня F(x}, если, конечно, это возможно. Процедура останова для нелинейных уравнений (алгоритм А7.2.3) выяв- ляет эту ситуацию и вырабатывает такое сообщение. В настоя- щее время проводятся исследования по созданию методов, ко- торые могли бы сами продолжить счет из таких точек локаль- ного минимума [см. Алговер и Джордж (1980) и Зирилли (1982)]. ') Одним из признаков этого является вырожденность матрицы J(Xc) (см. упр. 17). — Прим. пе рев. 6.6. Упражнения 187 6.6. УПРАЖНЕНИЯ 1. Пусть f (х) =3л^+ 2-с^з + -"I. Хц=(1, I)7'. Что является направле- нием наискорейшего спуска для / в Хо? Будет ли (1, —I)7' направлением спуска? 2. Покажите, что для положительно определенной квадратичной функции f(xit-[-s) = g^s +—s^^x^s шаг наискорейшего спуска из Xi, задается ра- Zi венством (6.2.5). 3. Задано с е (О, 1). Обобщите пример 6.2.2. на случай, когда последо- вательность точек, вырабатываемая алгоритмом наискорейшего спуска из определенной точки Хо, удовлетворяет соотношению II Xk+i — л"» II == ==с\\х„—х^\\, fe=0, I, .... 4. Пусть f(x} = х2. Покажите, что бесконечная последовательность точек xi = (—1)'(1-)-2-'), f == О, 1, ..., изображенная на рис. 6.3.2, не удовлетво- ряет условию (6.3.3), каково бы ни было к > 0. 5. Пусть f(x) = х2. Покажите, что бесконечная последовательность точек Xi == 1 + 2~1, ('==0, 1, .... допускается условием (6.3.3) при любом а ^—, ^ но запрещается условием (6.3.4), каково бы ни было (3 > 0. 6. Покажите, что если f(x) является положительно определенной квадра- тичной функцией, то ньютоновский шаг из произвольного Xk e R" удовлетво- ряет условию (6.3.3) при а^--- и (6.3.4) при любом |3 > 0. 7. Докажите, что если (6.3.4) заменить на ^fe+l)>^)+ l^(V(^+l -^)- P s ("• 1). то теоремы 6.3.2 и 6.3.3 останутся в силе, и докажите, что если, кроме того, Р > -„-, то также остается справедливой и теорема 6.3.4. Это представляет собой условие Гольдстейна в его первоначальном виде. 8. Пусть f {х} = х^-\- -с|, х^= (1, I)7' и направление поиска рс задается ньютоновским шагом. Что будет представлять собой х+, если использовать: (a) ньютоновский шаг; (b) алгоритм линейного поиска А6.3.1; (c) алгоритм «идеального линейного поиска», полагающий х+ равным точке минимума f(x) в направлении рс из XcJ [Ответьте на (с) приближенно.] 9. Пусть f(x) =—л:^+xj, JCg == (1, l)7. Каково точное решение (6.4.1) л. при 6=2? А при 6==—? [Указание: во второй части вопроса попробуйте взять ц = 1.] 10. Докажите, что локально ограниченная оптимальная кривая s(p,), изо- браженная на рис. 6.4.2, не обязательно является плоской кривой. Для этого постройте простой трехмерный пример, в котором Хс и какие-либо три точки кривой не лежат в одной плоскости. [Достаточно рассмотреть /(-»")= х^ + +2л:|+з4] 11. Пусть матрица Н е ^пхп симметрична и положительно определена и Vi, ..., Vn есть ортонормированный базис собственных векторов для Н, 188 Гл. 6. Глобально сходящиеся модификации которым соответствуют собственные значения Ki, .. ц S& О и Кп. Покажите, что для имеет место соотношение п (^+,/)-g=^(-^)^. Как это связано с моделью mc(}i) для II (Я + Ц/)"'^ Ч алгоритме локально ограниченного оптимального шага? - б, используемой в 12. Пусть Н v. g заданы, как в упр. 11. Для у, ^ 0 определим s((i) = (Н-{-[11)~^ и ^(Ю = lls(H)ll2. Используя методику упр. 11 покажите, что Т) ((!)=- sd^ff+l^r1^) 11 s (ц) Ц, [Используя эту методику, вы можете также показать, что (d'/dii2)^^^) > О для всех (А > 0, однако доказательство является громоздким.] 13. Пусть Ж =у^'+4 л:о=(1,1)7', g=7f(^), Я=72^). Вы- числите точку Коши функции f из точки х» (см. разд. 6.4.2), а также точку А? = Хо —(0.8у + 0.2) Я-*^, которая используется в алгоритме поиска вдоль кривой с двойным изломом. Затем начертите кривую с двойным изломом и укажите на ней значения Xi, соответствующие б = 1 и б =-,-. 14. Пусть матрица Н е R "х" симметрична и положительно определена, geR". Докажите, что (gтg)'l ^ (gтHg) (gтH-^g). [Указание: положите и == Hi/2g, v == Я-172^ и примените неравенство Коши—Шварца.] 15. Завершите выкладки в примере 6.4.5. 16. Пусть F(x) == (xi, 2хгУ, Ха == (1, I)7. Используя технику разд. 6.5, ответьте, что представляет собой шаг «наискорейшего спуска» из Ху для си- стемы F = О? Если бы все ваши шаги производились вдоль направлений на- искорейшего спуска, то какую скорость сходимости к корню F вы бы ожи- дали? 17. Пусть функция F: R"->R" непрерывно дифференцируема и х е R". Предположим, что х является точкой локального минимума f (х) ^ ^-J-F (х)7 F (х), но F(x) -^ 0. Вырождена ли матрица f[x)? Если 1(х) ?i вырождена, то должно ли х быть точкой локального минимума f(x}? 18. Квадратичной моделью для F == 0, альтернативной к той, что исполь- зовалась в глобальных алгоритмах разд. 6.5, служат первые три члена раз- ложения в ряд Тейлора функции -n-\\.F (Хс + s) ||2. Покажите, что эта модель имеет вид те (Хс + s) = ' F (Хс)7' F (Хс) + [f (Xcf F (л-с)]7' s + [ 1 +-sT I (Хс)7 I (Хс) + У ft (Хс) V'fi (Хс) s. ^ L—1 \ 1-1 6.6. Упражнения 189 Как ее сравнить с моделью, используемой в разд. 6.5? Совпадает ли ньюто- новский шаг для минимизации Шс(х) с ньютоновским шагом для F(x) = О? Каково ваше мнение относительно достоинств этой модели по сравнению с той, что использовалась в разд. 6.5? (Аналогичная ситуация, но с другими выводами встречается при решении нелинейной задачи о наименьших квадра- тах (см. гл. 10).) 19. Почему ньютоновский шаг из х» в примере 6.5.1 является плохим? [Указание: что произошло бы, если х» было заменено на (2, е/6)1'^ ^ (2, 0.45)г?] 20. Какой шаг был бы сделан из Хц в примере 6.5.1 с использованием стратегии поиска вдоль кривой с двойным изломом (алгоритм А6.4.4) при во=4? 21. Выясните, что представляет собой алгоритм сопряженных градиентов для минимизации выпуклых квадратичных функций, и покажите, что лома- ная с N = х, есть результат применения метода сопряженных градиентов к тс(х) в подпространстве, натянутом на направление наискорейшего спуска и ньютоновское направление. 22. Один из часто упоминаемых недостатков алгоритма поиска вдоль ломаной заключается в ограниченности его шагов тем, что они на каждой итерации должны лежать в двумерном подпространстве, натянутом на на- правление наискорейшего спуска и ньютоновское направление. Предложите на базе упр. 21 способы смягчения остроты этих критических замечаний [см. также Штайхауг (1981)]. 23. Пусть / е [эгехп вырождена. Покажите, что -——щ < ха (/г/ + (п • macheps)"2 || /г/ Ц,/) - 1 < п (macheps) (macheps)'/2 [Указание: воспользуйтесь (3.1.13) и теоремой 3.5.7.] Обобщите это неравен- ство на случай, когда Kt(J) Ss= macheps""172. 24. Пусть вектор F е R" является ненулевым и матрица / е R"^ вы- рождена. Другим шагом, предложенным для решения нелинейных уравнений, является решение s задачи minHsfl,: s есть решение^для min [| F + Is U. (6.6.1) 5 S К Как было показано в разд. 3.6, решением (6.6.1) является s = —I'^F, где /+ есть матрица, псевдообратная к /. Покажите, что при малых к > 0 этот шаг аналогичен § = —(/г/ + а/)"1/7/7, доказав для этого, что: (a) lim (^r^+a/)-l/г=^+; а->+0 (b) для любых а > 0 и v е R" как (/г/+ а/)"1/7'», так и У4'!) перпен- дикулярны ко всем векторам w из аннулирующего подпространства мат- рицы /. 25. Глобальная сходимость алгоритмов доверительной области с линей- ным поиском, описанных в разд. 6.3.2, 6.4.1 и 6.4.2, не вытекает непосред- ственно из теории, имеющейся в разд. 6.3.1, так как ни один из этих алго- ритмов не обеспечивает выполнение условия (6.3.4). Тем не менее теорети- чески такой же эффект дают имеющиеся в алгоритмах границы каждой регулировки параметра линейного поиска К или радиуса доверительной об- ласти бс. Доказательство того, что все рассмотренные нами алгоритмы имеют глобальную сходимость, см. в работе Шульца, Шнабеля и Бирда (1982). Критерии останова, масштабирование и тестирование В этой главе рассматриваются три вопроса, которые лежат в стороне от основных математических рассуждении относитель- но решения нелинейных уравнений и задач минимизации, од- нако эти вопросы существенны для решения на ЭВМ реальных задач. Первый состоит в том, как приспособиться к решению задач, плохо обусловленных в том смысле, что зависимые или независимые переменные сильно различаются по величине. Вто- рой—как определять, когда останавливать итерационный ал- горитм, работающий в условиях машинной арифметики. Тре- тий—как отлаживать, тестировать и сравнивать нелинейные алгоритмы. 7.1. МАСШТАБИРОВАНИЕ Существенным моментом при решении многих реальных задач является то, что некоторые зависимые или независимые пере- менные могут сильно различаться по величине. Например, нам могла бы встретиться задача минимизации, в которой первая независимая переменная х\ лежит в области [102, 103] метров, а вторая переменная ху, лежит в области [10-7, 10-6] секунд. Эти области называются масштабами соответствующих пере- менных. В настоящем разделе рассматривается влияние на наши алгоритмы, оказываемое таким большим разбросом в масштабах. Одним из мест, где масштабирование будет влиять на работу наших алгоритмов, является вычисление величин, та- ких, как ||д:+—Хс||2, которая использовалась в алгоритмах гл. 6. В приведенном выше примере любое такое вычисление факти- чески не будет учитывать значение второй переменной (время). Однако существует очевидное средство: перемасштабировать независимые переменные, т. е. изменить единицы их измерения. Например, если изменить единицы измерения х\ на километры и х,ч на микросекунды, то обе переменные будут иметь областью 7.1. Масштабирование 191 изменения [10-1, 1] и будет устранена проблема масштабов при вычислении \\х+—Хс\\2- Заметим, что это соответствует за- мене независимых переменных на х = DxX, где Dx есть диаго- нальная матрица масштабирования вида Dx= \ 10 О -з О 106 (7.1.1) Здесь возникает важный вопрос. Мы, скажем, преобразовали переменные нашей задачи так, что х = DxX, или, в более общей постановке, преобразовали пространство переменных так, что х == Тх, где матрица ГеК"^ не вырождена, затем вычислили глобальный шаг в пространстве новых переменных, а потом произвели обратные преобразования. Будет ли результат этого шага таким же, как и в случае, когда мы вычисляли его в про- странстве старых переменных, используя ту же самую страте- гию глобализации? Ответ довольно неожиданный: в отличие от ньютоновского шага, который не подвержен влиянию этого преобразования, направление наискорейшего спуска меняется, так что на шаг линейного поиска вдоль ньютоновского направ- ления не влияет изменение единиц измерения, тогда как шаг алгоритма доверительной области может измениться. Чтобы убедиться в этом, рассмотрим задачу минимизации и обозначим х = Тх, f{x)=f(T~lx). Тогда, как нетрудно по- казать, Vf (х) = T-\f (х) '), : V'f (х) = Г-V/ Ос):Г-', так что ньютоновский шаг и направление наискорейшего спуска в пространстве новых переменных имеют вид2) ^ = - (Г-V/ (х) Г-')"' {T-^f (х)) = - T^f (х)-1 Vf (x}, ^SD__^-T^^ или в пространстве старых переменных имеем s^T-'s^-V'Wv^), s50 = Ty's50 = —T-'T-^f (х} = - (Г^)-' V/ (х). Эти выводы действительно находятся в рамках здравого смыс- ла. Ньютоновский шаг приводит в точку с наименьшим значе- нием квадратичной модели, которая не меняется с изменением единиц измерения х. (Аналогично, в случае решения систем ') Условная запись Г-7' используется для обозначения (T~l)r.—Прим. перев. 2) Здесь индексы N и SD есть сокращения от Newton и steepest-des- cent. — Прим. перев. /92 Гл. 7. Критерии останова нелинейных уравнений ньютоновское направление остается не- изменным при преобразовании независимых переменных.) Од- нако определение того, какое из направлений считать направ- лением «наискорейшего спуска», зависит от того, что понимать под единичным шагом в каждом направлении. Говорить о на- правлении наискорейшего спуска имеет смысл тогда, когда еди- ничный шаг в направлении переменной xi имеет примерно та- кую же относительную длину, что и единичный шаг в направ- лении любой другой переменной х/. По этим причинам наиболее предпочтительным решением при масштабировании задач, как мы полагаем, будет выбор пользователем таких единиц измерения в пространстве пере- менных, чтобы каждая компонента вектора х имела приблизи- тельно одну и ту же величину. Однако если это затруднительно, то равносильный результат можно получить, преобразуя в ал- горитме пространство переменных с помощью соответствующей диагональной матрицы масштабирования Dx. Это есть та са- мая стратегия масштабирования в пространстве независимых переменных, которая реализована в наших алгоритмах. Все, что должен сделать пользователь, это установить матрицу Dx такой, чтобы она соответствовала желаемым изменениям еди- ниц измерения, и тогда алгоритмы будут действовать так, как если бы они работали в преобразованном пространстве пере- менных. Алгоритмы все же записываются в исходном простран- стве переменных, так что выражение типа \\х+—Хс\\ч принимает вид \\Dx(x+ — Хс)\\а, а шаги наискорейшего спуска и криволи- нейный принимают соответственно вид x+=Xc—^Dx2Vf(,Xc)' s{vt)=-{Hc+liD^~\f{x,-) (см. упр. 3). Однако ньютоновское направление, как мы уже видели, остается неизменным. Положительная диагональная матрица масштабирования Dx задается пользователем как входная информация простым за- данием п значений typxi, /==1, ..., п, отражающих «харак- терные» значения каждого х:. Затем алгоритмом устанавлива- ется (Dx)a =(typ Xi)~1, при этом значения каждой из преобра- зованных переменных Xi=(Dx)a Xi становятся порядка 1. Если в нашем примере пользователь задал, скажем typA"i==103 и typ.<2= 10-6, то Dx будет иметь вид (7.1.1). Если считается, что нет необходимости в масштабировании л-„ то typ Xi должно быть взято равным 1. Дальнейшие инструкции по выбору typ Xi приведены в руководстве 2 приложения. Естественно, что наши алгоритмы хранят в памяти не диагональную матрицу Dx, а вектор Sx (5 означает масштаб), где (Sx)i =={Dx)u = =(typx,)-1. 7.1. Масштабирование 193 Приведенной выше стратегии не всегда оказывается доста- точно. Например, имеются исключительные случаи, в которых необходимо динамическое масштабирование, так как некото- рые Xi в них меняются на много порядков величины. Это соот-* ветствует точно такому же использованию матрицы Dx, как и во всех наших алгоритмах, но она периодически перевычис- ляется. Поскольку опыт, накопленный в этой области, мал, мы не включили динамическое масштабирование в наши алго- ритмы, несмотря на то что достаточно было бы добавить мо- дуль, производящий периодическое перевычисление Dx с учетом -. результатов итерации алгоритма D6.1.1 или D6.1.3. Пример, иллюстрирующий важность учета масштабов неза- висимых переменных, приведен ниже. Пример 7.1.1. Распространенной тестовой задачей для алго- ритмов минимизации является функция Розенброка с линиями уровня в форме банана (7.1.2) которая имеет минимум в х»=(1,1)7". Двумя типичными на- чальными точками являются хо== (—1.2, I)7'nxo=(6.S9,—0.221)7'. Эта задача хорошо масштабирована, но при к =т^ 1 масштабы переменных могут быть ухудшены подстановкой в (7.1.2) v.x\ вместо х\ и ^2/<х вместо хч, что в результате даст f (х) = f (а^„ ^) == 100 ((axf - ^-)2 - (1 - ax,)2, ^(W- Это соответствует преобразованию - [± 01 х== а \х. L 0 cJ Если приведенные в приложении алгоритмы минимизации при- менить к f(x), начиная из хо=(—1.2/(х,, а)7 и хо = (6.39/к, а(—0.221))'', воспользоваться при этом аналитическими произ- водными, «криволинейным» шагом глобализации и параметра- ми'), значения которых заданы по умолчанию, а также прене- бречь масштабами переменных, положив typxi == typ х^= 1,то требуемое для сходимости число итераций при различных зна- ') В оригинале—tolerance, что означает допуск, допустимое отклонение от чего-либо. Под этим термином подразумеваются задаваемые пользовате- лем параметры алгоритмов, не всегда имеющие смысл допуска. Сокращение tol присутствует в именах многих параметров. — Прим. перев. Зак. 660 194 Гл. 7. Критерии останова чениях ос, имеет следующий вид (звездочка указывает на отсут- ствие сходимости после 150 итераций): Итерации из Итерации из ,vo -- (- 1.2/«, й)7' Хо = (6.39/а, а( - 0.22I))7' 0.01 150 + * 1504- ' 0.1 94 47 1 24 29 10 52 48 100 150 + * ! 50 + * = 1/К и typxa^ct, то во всех точности такая же, что и для что значения х преобразуются Однако если положить typ-ti случаях выдача программы в я==1, за исключением того, с помощью •° L о raj [" L о Необходимо также рассмотреть масштабы зависимых пере- менных. В задачах минимизации масштаб целевой функции f имеет значение только в критериях останова, рассматриваемых в разд. 7.2. Во всех других вычислениях, таких, как проверка f(x+)<f(x)+ 10-4Vf(x)7'(JC+—x), изменение единиц измере- ния f не имеет никаких последствий. С другой стороны, при решении систем нелинейных уравне- ний разброс в величинах компонент функции /, может вызвать такого же типа проблемы, как и разброс в величинах незави- симых переменных. Ньютоновский шаг не зависит от масшта- бирования (см. упр. 4). Однако стратегия глобализации для нелинейных уравнений требует уменьшения \\F\\2, и ясно, что если единицы измерения двух компонент функции F(x) суще- ственно различны, то меньшая компонента функции будет в действительности игнорироваться. По этой причине наши алгоритмы используют положитель- ную диагональную матрицу масштабирования Dp зависимой переменной F(x), действие которой такое же, как действие Dx на х. Диагональная матрица Dp выбирается так, чтобы все компоненты в DpF(x) имели приблизительно одинаковые харак- терные величины в точках, не слишком близких к корню. За- тем Dp используется для масштабирования F во всех модулях, связанных с решением нелинейных уравнений. Аффинная мо- дель принимает вид DpMc., а квадратичная модель функции в шаге глобализации становится равной Шс == -п-1| DpMc ||^ • В та- ком духе реализован весь наш интерфейс и алгоритмы. В са- 7.2. Критерии останова 195 мом начале от пользователя требуется, чтобы он задал Dp. Это осуществляется вводом значений typf», i= I, ..., п, задающих характерные величины каждого f, в точках, не слишком близ- ких к корню. Затем алгоритм полагает {Ор)ц ==typ fT1- [В дей- ствительности хранится 5^sR", где [Sp)i ==(Dp)n.] Дальней- шие указания по выбору typ fi приведены в руководстве 5 при- ложения. 7.2. КРИТЕРИИ ОСТАНОВА В этом разделе обсуждается, каким образом завершать работу алгоритмов. Критерии останова представляют собой те же са- мые условия, которые рассматривались в разд. 2.5 для одномер- ных задач и которые вытекают из здравого смысла, а именно: «Решена ли задача?», «Имеется ли основание для остановки?» или «Не иссякли ли наши деньги, время и терпение?». Заслу- живают внимания следующие вопросы: как реализовать эти проверки в конечной арифметике и как уделить надлежащее внимание масштабам зависимых и независимых переменных? Обсудим сначала критерии останова для безусловной мини- мизации. Наиболее важной является проверка «Решена ли за- дача?». В случае неограниченной точности необходимым усло- вием достижения в х точного минимума f является ^f(x)=0, но в итеративных алгоритмах, использующих машинную ариф- метику, нужно заменить это условие на Vf(x)^0. ХотяУ^(х)==0 может встретиться в максимуме или седловой точке, стратегия глобализации и стратегия внесения возмущений в гессиан мо- дели делают фактически невозможной сходимость к точкам максимума или к седловым точкам. Поэтому в нашем случае равенство 'Vf(x) = 0 рассматривается как необходимое и доста- точное условие достижения в х локального минимума функ- ции f. Для проверки, выполняется ли приближенное равенство V/ ^ 0, соотношение lIVH-^IKe (7.2.1) непригодно, потому что оно в большой мере зависит от мас- штабов как f, так и х. Например, если е == Ю-3 и f всегда за- ключено в пределах [Ю-7, Ю-5], то вероятно, любое значе- ние х будет удовлетворять (7.2.1); если же fe[l0°>, W], то условие (7.2.1) может оказаться слишком строгим. Кроме того, если х неудачно масштабировано, например Xie[106, 107] и Хч<= [10-', I], то (7.2.1), видимо, будет учитывать переменные неодинаковым образом. Обычно используют неравенство Iv^^V^^r'Vf^l^e, (7.2.2) 7» 196 Гл. 7. Критерии останова инвариантное относительно любого линейного преобразования независимых переменных и поэтому не зависящее от масшта- бирования х. Однако оно все же зависит от масштабирования f. Более непосредственная модификация (7.2.1) состоит в опреде- лении относительного градиента функции f в х по формуле relgrad (x)^ •• Относительная скорость изменения f Относительная скорость f(x+ изменения бе;) - / (х) xl ^f(x),Xi fW 6->Q 6 ~^i fW (7.2.3) и в проверке неравенства || relgrad (^)IL<gradtol. (7.2.4) Проверка (7.2.4) не зависит от какого-либо изменения единиц измерения f и х. Она имеет тот недостаток, что идея относи- тельного изменения xi или f рушится, когда х; или f(x) оказы- ваются близкими к нулю. Эта проблема легко решается за- меной xi и / в (7.2.3) соответственно на тах{[л:(|, typx;} и тах{Щл:)|, typf}, где typf является оценкой пользователя характерного значения f. Получающаяся в результате проверка неравенства ""'•""{'^'•'•'""^p.dtol (7.2.6) max I < »<га именно та, что используется в наших алгоритмах. Следует отметить, что проблема определения относительного изменения в случае, 'когда г близко к нулю, обычно сводится к подстановке (|г|+1) или тах{|г|, 1} вместо'г. Из приве- денных выше рассуждении очевидно, что в обеих этих-подста- новках неявно предполагается, что порядок единиц измерения^ близок к 1. Такие подстановки могут также работать удовлет- ворительно, когда ]z| гораздо больше единицы, но они дадут неудовлетворительные результаты, если |г] всегда значитель- но меньше единицы. Поэтому если имеется значение typ г, то предпочтение следует отдать подстановке max{|z), typz}. Другой критерий останова в задачах минимизации прост для объяснения. Проверка достаточности оснований для оста- новки алгоритма из-за того, что он либо застопорился, либо сошелся, имеет вид || относительное изменение последовательных значений ^Ноо^ < steptol. (7.2.6) 7.2. Критерии останова 197 Следуя приведенным выше рассуждениям, измеряем относи- тельное изменение xi по формуле rel Xi = (7.2.7) max {| {x+)i [ *УР ^-} Выбор steptol обсуждается в руководстве 2. В общем случае, если р есть желаемое число значащих цифр в х^, то steptol следует положить равным Ю-г. Как принято в большинстве итерационных процедур, мы указываем количество имеющихся в нашем распоряжении вре- мени, денег и терпения, задавая соответствующие ограничения на число итераций. В реальных приложениях эти ограничения часто определяются стоимостью каждой итерации, которая мо- жет быть высокой, если вычисление функции является дорого- стоящим. В процессе отладки имеет смысл использовать низ- кое значение ограничения, с тем чтобы программа, имеющая ошибку, не работала слишком долго. В алгоритме минимиза- ции следует также производить проверку на расходимость ите- раций Xk, которая может иметь место, когда f не ограничена снизу или асимптотически приближается сверху к своей точной нижней грани. Для проверки на расходимость пользователю следует задать максимальную длину шага, и если пять после- довательно сделанных шагов оказываются столь велики, то ал- горитм останавливается. (См. руководство 2.) Критерии останова для систем нелинейных уравнений ана- логичны. Сначала проверяем, является ли х+ приближенным решением задачи, т. е. имеет ли место F(x+}^0. Проверка ||F(x+)||^e также не подходит из-за проблем масштабиро- вания, но поскольку (Dp) ц == 1/typ fi выбиралось так, чтобы (Dp)nFi имело величину порядка 1 в точках, не лежащих вбли- зи корня, то проверка [|D^|L<intol должна быть подходящей. Рекомендации относительно выбора fritol приведены в руководстве 5, причем значения порядка Ю-5 типичны. Затем проверяем, используя (7.2.6) и (7.2.7), сошелся ли алгоритм или застопорился в х+. Проверка ограничения на число итераций и проверка на расходимость такие же, как для минимизации, хотя расходимость алгоритма решения F(x)==0 менее вероятна. Наконец, для нашего алгоритма решения нелинейных урав- нений возможно прилипание к найденной точке локального ми- нимума функции f ==-|,- II DpF\fy, в которой F=^0 (см. рис. 6.5.1). Хотя алгоритм и будет в этой ситуации остановлен проверкой 198 Гл. 7. Критерии останова на сходимость (7.2.6), (7.2.7), мы предпочитаем проводить про- верку явно, выясняя, близок ли к нулю градиент функции f в х+, и используя с этой целью относительную меру градиента, аналогичную (7.2.5). Если алгоритм достиг локального мини- мума функции \\DpF\^, где F^Q, то все, что здесь можно сде- лать, это заново запустить алгоритм в другом месте. Алгоритмы А7.2.1 и А7.2.3 приложения содержат критерии останова соответственно для безусловной минимизации и для решения нелинейных уравнений. Алгоритмы А7.2.2 и А7.2.4 ис- пользуются перед начальной итерацией для проверки, явля- ется ли начальная точка XQ точкой минимума или корнем. Ру- ководства 2 и 5 содержат рекомендации по выбору всех зада- ваемых пользователем параметров. В нашем программном обес- печении, реализующем эти алгоритмы [Шнабель, Вайс и Кунц (1982)], имеются значения по умолчанию для всех параметров, участвующих в останове и масштабировании. 7.3. ТЕСТИРОВАНИЕ Если написана вычислительная программа для нелинейных уравнений или минимизации, то, по-видимому, далее она будет тестироваться с целью выяснения, правильно ли она работает и какова она по сравнению с другим программным обеспече- нием, решающим эту же задачу. Важно обсудить два аспекта такого процесса тестирования: (1) каким образом следует тес- тировать программное обеспечение и (2) какими критериями следует пользоваться при оценке его работоспособности? Может показаться неожиданным, что отсутствует единство мнений по любому из этих важных вопросов. В данном разделе кратко излагаются некоторые из основных соображений. Первым делом при тестировании убеждаются, что програм- ма работает правильно. Под словом «правильно» здесь пони- мается главным образом, что программа работает так, как ей следует это делать, в противоположность гораздо более стро- гому определению понятия «правильность», используемому в программировании. Это, конечно, непростая задача для любой программы таких же размеров, что и программы в этой книге. Мы настоятельно рекомендуем помодульную процедуру тести- рования, т. е. тестирование каждого модуля в том виде, как он написан, затем фрагментов, составленных из модулей, и в кон- це—всей программы целиком. Тестирование всей программы сразу может чрезвычайно затруднить обнаружение ошибок. При помодульном тестировании не всегда очевиден подбор входных данных для тестирования некоторых модулей, таких, как модуль пересчета доверительной области. Советуем начи- нать с данных, получаемых из простейших задач, скажем, раз- 7.3. Тестирование 199 мерностей один или два с единичными или диагональными яко- бианами или гессианами, так как в этом случае возможна про- верка вычислений вручную. Затем рекомендуется проверять модули на более сложных задачах. Преимущество такого по- модульного тестирования заключается в том, что оно обычно обогащает наше понимание алгоритмов. Если все компоненты работают правильно, то следует про- тестировать программу на целом ряде нелинейных задач. Это служит двум целям: убедиться, что вся программа целиком работает правильно, и затем проследить за ее работоспособ- ностью на некоторых стандартных задачах. Первые задачи, ко- торые следует попробовать решить, должны быть самыми про- стыми: линейные системы размерностей два или три для про- грамм по решению систем нелинейных уравнений и положи- тельно определенные квадратичные функции двух или трех переменных для программ минимизации. Далее можно было бы попробовать полиномы или системы уравнений несколько более высокой степени и малой размерности (от двух да пяти). Если программа работает на них правильно, то пора прогнать ее на некоторых стандартных задачах, принятых в данной области в качестве хороших тестов программного обеспечения нелиней- ных уравнений или минимизации. Многие из них довольно сложны. Часто оказывается полезным запускать эти тестовые задачи не только из хо, но также из точек, отстоящих от нее в 10—100 раз далее и находящихся на луче, выходящем из ре- шения х^ по направлению к стандартной начальной точке хо. Морэ, Гарбов и Хиллстром (1981) сообщают, что это часто выявляет в программах важные различия, которые не обнару- живаются при использовании стандартных начальных точек. Хотя литература по тестовым задачам пока находится в про- цессе развития, приложение В снабжено некоторыми задачами, общепринятыми на данный момент. Мы даем ядро стандарт- ных задач для нелинейных уравнений и минимизации, доста- точных для курсовых проектов и для учебно-исследовательской работы, а также обеспечиваем дополнительно ссылками на задачи, которые могли бы использоваться в серьезной исследо- вательской работе. Следует заметить, что большинство этих задач хорошо масштабированы. Это свидетельствует о недо- статке внимания, уделявшегося проблеме масштабирования. Размерности тестовых задач в- приложении В соответствуют размерностям решаемых в настоящее время задач. Набор за- дач средней размерности (от 10 до 100) представляется все же недостаточным, а стоимость их тестирования—весьма суще- ственная помеха. Трудный вопрос о том, как оценивать и сравнивать про- граммное обеспечение по минимизации и нелинейным уравне- ниям, является в этой книге побочным. Он осложняется тем, 200 Гл. 7. Критерии останова что в одних случаях интересуются прежде всего измерением эффективности и надежности программы при решении задач, тогда как в других—ее общим качеством как части програм- много обеспечения. В последнем случае интересуются также взаимодействием между программным обеспечением и его поль- зователями (документация, простота использования, реакция на ошибки при вводе, надежность, качество выводимой инфор- мации), а также между программным обеспечением и окру- жающей его вычислительной средой (переносимость с одной ЭВМ на другую). Мы прокомментируем только первую группу вопросов; что касается всех этих вопросов в совокупности, см. Фосдик (1979). Под надежностью понимается способность программы успешно решать задачи, на которые она рассчитана. Это опре- деляется прежде всего результатами, полученными на тесто- вых задачах, и в конечном счете тем, решает ли она задачи пользователей. Для пользователя эффективность имеет непо- средственное отношение к вычислительным затратам, вызван- ным запуском программы на его задачах. В задачах миними- зации и решения нелинейных уравнений она иногда измеряется временем счета программы на тестовых задачах. В вычисли- тельных системах коллективного пользования трудно получить точные временные данные, однако более очевидное возражение вызывает довольно распространенное мнение, что тестовые за- дачи похожи на задачи пользователя. Другой популярной ме- рой эффективности является количество вычислений функции и производной, необходимых программе для решения тестовых задач. Оправданием использования этой меры служит то, что она выявляет стоимость на тех задачах, которые по существу дорогостоящи, а именно на тех, для которых дорогостоящим оказывается вычисление функции и производной. Эта мера осо- бенно подходит для оценки методов секущих (см. гл. 8 и 9), так как они часто используются для таких задач. Количество вычислений функции и градиента, используемое при тестиро- вании и минимизации, иногда объединяется в одну характе- ристику (Эквивалентное количество вычислений функции) = = (Количество вычислений f)+ га (Количество вычислений V/). Эта характеристика указывает количество вычислений функции, которые потребовались бы, если бы градиенты вычислялись с помощью конечных разностей. Поскольку это не всегда имеет место, предпочтительнее приводить итоги для функции и для градиента отдельно. Некоторыми другими возможными характеристиками эф- фективности выступают количество требуемых итераций, вы- 7.3. Тестирование 201 числительная трудоемкость одной итерации и требуемая ма- шинная память. Необходимое число итераций представляет со- бой простую характеристику, однако она полезна, если имеется корреляция со временем решения задачи или с необходимым для этого количеством вычислений функции и производной. Вычислительная трудоемкость итерации, если не учитывать вычисления функции и производной, неизменно определяется линейной алгеброй, и для методов секущих обычно пропорцио- нальна п3 или п2. После умножения на требуемое число итера- ций она дает представление о времени счета для задач, в кото- рой вычисление функции и производной очень недороги. Объем машинной памяти обычно не столь принципиален для задач, размеры которых такие же, как в задачах этой книги, однако память и вычислительная трудоемкость итерации становятся решающим по своей важности фактором для больших задач. Используя указанные выше характеристики, можно сравни- вать две совершенно различные программы по решению задач минимизации или нелинейных уравнений, но часто интересно сравнение двух или более версий лишь отдельного сегмента алгоритма, например линейного поиска. Возможно, в этом слу- чае стоит протестировать альтернативные сегменты, подставляя их в программу модульного типа, каковыми являются наши программы, так чтобы остальная часть программы оставалась неизменной в течение тестовых проверок. Так организованная проверка уменьшает доверие к результатам, относящимся к программам других видов, а сравнение может оказаться не- объективным, если остальная часть программы благоприят- ствует одной из альтернатив. И наконец, читатель должен понимать, что в этом разделе обсуждались вопросы оценки машинных программ, а не алго- ритмов. Отличие состоит в том, что машинная программа мо- жет содержать много деталей, которые имеют решающее зна- чение для ее работоспособности, но не являются частью «базо- вого алгоритма». Примерами служат критерии останова, под- программы линейной алгебры, а также параметры в алгорит- мах линейного поиска или доверительной области. Базовый ал- горитм можно оценить, используя уже обсуждавшиеся харак- теристики, такие, как локальная скорость сходимости, свойства глобальной сходимости, работоспособность на специальных классах функций. Однако если кто-либо тестирует машинную программу, как это обсуждалось выше, то он должен сознавать, что тестируется конкретная программная реализация базового алгоритма, и что две реализации одного и того же базового алгоритма могут работать совершенно по-разному. 202 Гл. 7. Критерии останова 7.4. УПРАЖНЕНИЯ 1. Рассмотрим задачу: найти min (л-, - 10s)4 + (л-i - 106)2 + (х-г, - Ю-6)4 + (х, - Ю-6)2- x<=R2 С какими проблемами вы могли бы столкнуться, применяя оптимизационный алгоритм без масштабирования этой задачи? (Рассмотрите направления наи- скорейшего спуска, доверительные области, критерии останова.) Какие зна- чения вы бы дали typ Xi и typ Хг в ваших алгоритмах, чтобы смягчить остро- ту этой проблемы? Какое преобразование могло бы оказаться даже более полезным? 2. Пусть /: R"-»-R, и матрица Гер"х" не вырождена. Для любого х е R" определим х = Тх, f(x) = /(Г-1^) = f(x). Воспользовавшись цепным правилом дифференцирования из анализа многих переменных, покажите, что 7f (^) = т-7 Vf {х), V2^ (х) = Г-7' 72/ (х) Т~1. 3. Пусть feR,gsR", Яе R"^, где матрица Н симметрична и по- ложительно определена. Пусть DeR"X" есть положительно определенная диагональная матрица. Используя лемму 6.4.1, покажите, что решение задачи: найти min / + gтs + -д- sтHs s<=R" 2 при условии |]Ds][2^6 дается формулой для некоторого у, ^0. [Указание: сделайте преобразование s = Ds, восполь- зуйтесь леммой 6.4.1 и выполните обратное преобразование.] 4. Пусть F: R"-»-R" и, матрицы 7',, Т г е R" х " не вырождены. Для любого х е= R" определим х == T^x, F (х) -= T^F (Т^х) = T^F (х). Покажите, что матрица Якоби для F относительно х имеет вид 7(х}=Т^(х)Т^. Что представляет собой ньютоновский шаг в пространстве переменных х? Если перевести этот шаг обратным преобразованием в исходное простран- ство переменных, то как сравнить его с обычным ньютоновским шагом в ис- ходном пространстве переменных? 5. Что представляют собой некоторые из ситуаций, в которых стратегия масштабирования, описанная в разд. 7.1, не давала бы удовлетворительных результатов? Предложите стратегию динамического масштабирования, которая была бы в этих ситуациях успешной. Теперь опишите ситуацию, в которой ваша динамическая стратегия не приводила бы к успеху. 6. Предположим, ваша проверка на необходимость останова для задач минимизации обнаружила, что V^(^) w 0. Как можно было бы проверить, является ли Xk седловой точкой (или точкой максимума)? Если х/г оказалась седловой точкой, то как, на ваш взгляд, можно было бы продолжить работу минимнзационного алгоритма? 7. Напишите программу для безусловной минимизации или для решения систем нелинейных уравнений, используя алгоритмы из приложения А (и ис- пользуя точные производные). Выберите для вашей программной реализации одну из описанных в разд. 6.3 и 6.4 стратегий глобализации. Отладьте и про- тестируйте вашу программу в соответствии с рекомендациями разд. 7.3. ... Я еще одно программное замечание В предыдущих главах были разработаны все компоненты системы полных квазиньютоновских алгоритмов для решения систем нелинейных уравнений и задач безусловной минимизации. Однако следует обратить внимание на один тонкий момент: предполагалось, что мы вычисляли требуемую матрицу про- изводных, т. е. якобиан для нелинейных уравнений или гессиан для безуслов- ной минимизации, либо аппроксимировали ее с высокой точностью, используя конечные разности. Это предположение обременительно по той причине, что для многих задач аналитические производные недоступны, а вычисление функ- ции обходится довольно дорого. Так, стоимость конечно-разностных аппрокси- маций производных, составляющая п. дополнительных вычислений F{x} на каждой итерации для якобиана и (п^+Зп)^ дополнительных вычислений f(x) для гессиана, высока. Поэтому в следующих двух главах рассматрива- ется класс квазиньютоновских методов, которые используют более дешевые способы аппроксимации якобиана или гессиана. Мы называем их аппроксима- циями по секущим1}, так как в случае одной переменной они сводятся к аппроксимации f (х} по секущей, а использующие их квазиньютоновские ме- тоды мы называем методами секущих. Отметим, что новым будет только ме- тодика аппроксимации производной, остальная же часть квазиньютоновского алгоритма останется фактически неизменной. Разработка методов секущих стала областью активных исследований с середины 60-х годов. В результате появился класс методов, успешно рабо- тающих на практике и чрезвычайно интересных с теоретической точки зрения. Мы постараемся осветить оба этих аспекта. Как это часто бывает со мно- гими новыми областями, развитие шло хаотично и было порой весьма пу- таным. Поэтому наше изложение будет существенно отличаться от того пути, на котором были первоначально получены рассматриваемые методы. Кроме того, будут представлены некоторые новые имена. Мы стремились по возможности избежать путаницы, с которой новичок традиционно сталки- вается, пытаясь понять методы и взаимосвязь между ними. Сошлемся на две работы Дэнниса и Морэ (1977) и Дэнниса (1978), в которых содержится исчерпывающая информация на эту тему. Другую точку зрения можно найти в книге Флетчера (1980). В основе наших соглашений относительно даваемых методам названий лежат предложения Дэнниса и Тапиа (1976), ') В оригинале—secant approximation.—Прим. перев. 8 Методы секущих для решения систем нелинейных уравнений . Обсуждение методов секущих начнем с нелинейных уравнений, поскольку аппроксимации по секущим для якобиана проще, чем аппроксимации по секущим для гессиана, речь о которых пойдет в гл. 9. Вспомним, что в гл. 2 мы уже видели, как можно было бы аппроксимировать f'(x+) по формуле а+ = = (f(x+}—f(xc))/(x+ — Хс) без дополнительных затрат на вы- числения функции, и что плата за это сводится к уменьшению скорости локальной (7-сходимости с 2 до (1 + ^/5)/2. В много- мерном случае идея аналогична: аппроксимируется /(х+) с ис- пользованием только значений функции, которые уже вычис- лены. Известны многомерные обобщения метода секущих, ко- торые, по сути, хотя и требуют дополнительной (по сравнению с методом Ньютона) памяти под производную, но имеют /--по- рядок сходимости, равный наибольшему корню') уравнения /•"+' — г" — 1 = 0. Однако ни одно из этих обобщений, по-види- мому, не является в общем случае достаточно работоспособным. Вместо них в данной главе будет описана "основная идея класса таких аппроксимаций, которые не требуют дополнительных вы- числений функции или памяти и которые очень успешны на практике. Наиболее подробно будет рассмотрена одна из ап- проксимаций. Она имеет <7-сверхлинейную скорость локальной сходимости с /--порядком, равным 2172". В разд. 8.1 мы знакомим читателя с наиболее часто упо- требляемой аппроксимацией по секущим, предложенной С. Бройденом. Методом Бройдена называется алгоритм, ана- логичный методу Ньютона, но использующий эту аппроксима- цию вместо аналитически заданного якобиана. В разд. 8.2 про- водится анализ локальной сходимости метода Бройдена, а в разд. 8.3 обсуждаются вопросы реализации квазиньютонов- ского метода в его завершенном виде, использующего упомя- ') Принадлежит интервалу (1, 2).—Прим. перев. 8.1. Метод Бройдена 205 нутую аппроксимацию якобиана. Глава заканчивается кратким обсуждением в разд. 8.4 других аппроксимаций якобиана по секущим. 8.1. МЕТОД БРОЙДЕНА В этом разделе приводится наиболее удачное обобщение ме- тода секущих на случай решения систем нелинейных уравне- ний. Напомним, что в одномерном случае рассматривалась модель М+ (х) = / QC+) + а+ (х — х^), которая удовлетворяет равенству М+ (д'+) = f (л"+) для любых а+s R и приводит к методу Ньютона при а+= f (х+). Если f (х+) было недоступно, то вместо этого требовалось, чтобы модель удовлетворяла равенству М+{Хс)== ^(Хс), т. е. f (хс) = f (х+) + а+ (хс — х+), что давало аппроксимацию по секущей f(^}-f(xc} Следующей итерацией метода секущих было х++, для которого M+(^++)=0, т. е. х+^.=х+ —/(х+)/й!+. В многомерном случае аналогичной аффинной моделью служит M^(x)=F(x^)+A^(x-x+). (8.1.1) Она удовлетворяет равенству М+{х+)= F(x+) для любых Л+<= е R"^. В методе Ньютона A+==J(x+). Если J(x+) недоступно, то требованием, которое в одномерном случае приводило бы к методу секущих, является М+(л-с)=== F(xc), т. е. или F (х,} = F (д:+) + Л+ (Хс - х+) A^(x^-x,)==F(x^}-F{x,}. ;(8.1.2) Мы будем называть (8.1.2) соотношением секущих. Кроме того, будем пользоваться обозначением Sc = х+—Хс для теку- щего шага и ус==Р(х+)—F{xc) для результата текущего шага. Таким образом, соотношение секущих можно записать как A+Sc=yc. (8.1.3) Основная трудность при обобщении метода секущих на /г-мерный случай связана с тем, что (8.1.3) не полностью опре- деляет Л+ при /г>1. Действительно, если Sc Ф 0, то суще- ствует п(п— 1)-мерное аффинное подпространство матриц, 206 Гл. 8. Методы секущих для решения систем удовлетворяющих (8.1.3). Построение удачной аппроксимации по секущим состоит в нахождении подходящего способа выбора среди этих возможностей. Было бы логично, чтобы этот выбор расширял набор свойств аппроксимации якобиана Л+ или об- легчал бы его использование в квазиньютоновском алгоритме. Видимо, наиболее очевидная стратегия состоит в требова- нии, чтобы модель (8.1.1) интерполировала F(x) также в не- которых других предыдущих точках, т. е. F{x-i)=F(x+)+A+(x-i-x+). Это приводит к равенствам A+s-i=y-i, i=\,...,m, (8.1.4) где s-iAx-i-x+, y-iAF(.x-i)-F{x+). Если т == п ~ 1 и Sc, s-i, ..., s-(n-i) линейно независимы, то п уравнений') (8.1.3) и (8.1.4) однозначно определяют Л+. К сожалению, это—та самая стратегия, о которой упомина- лось в предисловии к данной главе и которая имеет /"-порядок, равный наибольшему корню уравнения /-"+1—г"—1=0, но на практике она не приводит к успеху. Одна из трудностей со- стоит в том, что направления Sc,s-i, ..., s-(yi-i) стремятся к ли- нейно зависимым или близки к этому. Это делает вычисле- ние Л+ плохо обусловленной вычислительной задачей. Более того, такая стратегия требует дополнительно га2 ячеек памяти. Подход, приводящий к удачной аппроксимации, состоит совсем в другом. Мы видим, что кроме соотношения секущих у нас нет никакой новой информации ни о матрице Якоби, ни о модели, так что желательно сохранить как можно больше из того, что уже имеется. Поэтому будем выбирать Л+, стремясь минимизировать изменение в аффинной модели при условии выполнения равенства Л+5с==г/с. Разность между новой и ста- рой аффинными моделями для любого xeR" равна М^ (х) - М, (х} == F (л:+) + Л+ (х - х+) - F (л,) - А,(х - х,) = == F (х+) - F (х,) - Л+ (л:+ - х,} + (Л., - Л,) (х - х,} == =г= (Л+ — Лс) {х — Хс), где в последнем равенстве использовано соотношение секущих (8.1.2). Теперь для любого х<= R" представим х — Хс == asc + /, где f's == 0. Тогда выражение, которое необходимо минимизи- ровать, примет вид М+ (х) - М, (х) = а (Л+ - Л,) s, + (Л+ - Л,) /. ') Эти п уравнений образуют я2 скалярных уравнений относительно л2 скалярных неизвестных, элементов матрицы Л+.—Прим. перев. 8.1. Метод Бройдена 207 У нас нет никакой возможности влиять на величину первого члена в правой части, так как из соотношения секущих следует (Л+—Ac)sc=yc—AcSc. Однако можно обратить в нуль вто- рой член для всех х е R", выбрав Л+ так, чтобы (Л+—Лс)г=0 для всех /, ортогональных к Sc. Это требует, чтобы Л+—Ас было матрицей ранга один вида us^, и е R". Теперь, для того чтобы удовлетворить соотношению секущих, которое эквива- лентно {A+—Ac)Sc==yc—AcSc, и должно равняться^— — A^s^/s^s^. Это дает формулу (.Ус Acsc) '• (8.1.5) которая отвечает минимальной поправке в аффинной модели и удовлетворяет равенству A+Sc == г/с. Формула (8.1.5) была предложена в 1965 г. С. Бройденом, и мы будем называть ее формулой пересчета Бройдена, или, проще, формулой секущих. Слово пересчет указывает на то, что мы не аппроксимируем полностью /(х+), а скорее пересчи- тываем аппроксимацию Ас матрицы f(xc) в аппроксимацию Л+ матрицы J(x+). Это свойство пересчета присуще всем удачным способам аппроксимации по секущим. Приведенный вывод формулы соответствует тому способу, с помощью которого ее вывел Бройден, но его можно сделать гораздо более строгим. В лемме 8.1.1 будет показано, что фор- мула пересчета Бройдена отвечает минимальной поправке мат- рицы Ас, удовлетворяющей равенству Л+Sc == г/с, где эта по- правка Л+—Ас измеряется в норме Фробениуса. После дока- зательства мы прокомментируем выбор нормы. Далее будет полезно еще одно обозначение: Q(y,s)={B.eR"x": Bs==y}. Оно означает, что Q(y,s) есть множество матриц, которые дей- ствуют как частное от деления у на s. Лемма 8.1.1. Пусть Л е R^", s.t/sR", s ф 0. Пусть мат- ричные нормы 11-11 и HI • II) таковы, что ||В.С|К||В||. 1ЦСЦ1 для любых В, С е R" х ", и II .,.,т III -,-i (8.1.6) (8.1.7) 208 Гл. 8. Методы секущих для решения систем для любого ненулевого oeR". Тогда, каковы бы ни были эти нормы, решением задачи является min |[ В— А || В е Q [у. s) „ „ | (у — As) s7' /4—-Л+——-J-——. (8.1.8) (8.1.9) В частности, (8.1.9) будет решением задачи (8.1.8), когда ]] • || есть матричная /а-норма, причем (8.1.9)—единственное реше- ние задачи (8.1.8), если || • || есть норма Фробениуса. Доказательство. Пусть В s Q(y,s}, тогда \А, А\\=\ (y-As)sт (В — A) ss7' <\\В •А\ Если в качестве || • || и 11 • ||| взять /з-норму матриц, то (8.1.6) и (8.1.7) .следуют соответственно из (3.1.10) и (3.1.17). Если 11-11 и HI • ||j обозначает соответственно норму Фробениуса и /2-норму матриц, то (8.1.6) и (8.1.7) вытекает из (3.1.15) и (3.1.17). Для того чтобы читатель убедился в единственности решения (8.1.9) задачи (8.1.8) в норме Фробениуса, напомним, что эта норма строго выпукла, так как она является векторной /2-нормой матрицы, представленной в виде ^-мерного вектора. Поскольку множество Q(y,s), как аффинное подмножество множества ^^•"•{или R"'), является выпуклым, то решение за- дачи (8.1.8) единственно в любой строго выпуклой норме. D Использование нормы Фробениуса в лемме 8.1.1 разумно, потому что она способна отражать изменение в любой компо- ненте аппроксимации якобиана. Такая операторная норма, как /2-норма, меньше подходит для этих целей. В самом деле, ин- тересное упражнение—показать, что (8.1.8) может иметь в операторной /а-норме целое множество решений, причем неко- торые из них явно менее желательны, нежели пересчет по Брой- дену (см. упр. 2). Это к тому же указывает на непригодность использования операторной нормы в (8.1.8). Теперь, когда мы дополнили нашу аффинную модель (8.1.1) выбором А+, очевидный способ использования этого состоит в выборе корня такой модели в качестве следующей итерации. Это просто иной способ сказать, что в методе Ньютона f(x+) заменяется на А+. Получающийся в результате алгоритм имеет вид 8.1. Метод Бройдена 209 Алгоритм 8.1.2. Метод Бройдена. Заданы: F: R»->R", ^sR", AosR"^. ioTk==0, 1, ... do: Решить Л^ == — F (Xk) относительно Sfc', Xk+\ = Xk + Sk', yk=F(xk+\)—F(xk}; л _. i (^-л^)5! (8.1.10) Будем называть данный метод методом секущих. В этом месте у читателя могут зародиться серьезные сомнения—а ра- ботает ли он? На самом деле локально он работает довольно хорошо, что будет продемонстрировано ниже при рассмотрении его поведения на той же задаче, что решалась методом Нью- тона в разд. 5.1. Конечно, для сходимости из некоторых началь- ных точек он, как и метод Ньютона, может нуждаться в ис- пользовании способов, описанных в гл. 6. В алгоритме 8.1.1 имеется одна неопределенность: как вы- бирать начальную аппроксимацию Ло матрицы /(^о)? На прак- тике для обеспечения хорошего начала итерационного процесса здесь единственный раз используются конечные разности. Это также делает более привлекательным свойство минимально- сти поправки, характерное для формулы пересчета Бройдена. В примере 8.1.3 для простоты предполагается, что Ао=1(хц). Пример 8.1.3. Пусть F(x)=\ л:, + х-г — 3 IL ^ + ^ - 9 Эта функция имеет корни (О, З)7 и (3, О)7'. Возьмем Xo=(l, 5)7 и воспользуемся алгоритмом 8.1.2 с Тогда A,=J{^=.[\ ^]. W=[,73} ^=-Ao-F(.o)=[:;^], _ i Г-0.6251 Г 0 -1 xi-^o+so-|_ gg^J, f №'-[453125 J- 1-Г \ \ 1 JL 0.375 8.625 J' -0.625 3.625 Следовательно, (8.1.10) дает О О .625 -1.375 210 Гл. 8. Методы секущих для решения систем Читатель может убедиться, что AiSo=yo, Отметим, что ^^^[-i.25 7.25]' Таким образом, матрица Ai не очень близка к J(x\}. На сле- дующей итерации --^Ч-0:5499} ————+-[-S]. ^Но^бб]- ^[-о^ 8.т] Матрица Лз опять не очень близка к /(^)==[' Г 0.549-1 . Г -0.076 4-0.549} ^=^+^-[ з.076 1 1 1 -0.152 6.152J' - О 1 \ 1 11 . 0.466 J' "2^[ -0,799 8.20 iJ" Полностью последовательности итераций, вырабатываемых ме- тодом Бройдена и, для сравнения методом Ньютона, приведены ниже. Для обоих методов (Xk)i +(xft)2 ==3 при k^sl, поэтому ниже приводятся только значения (xk}i. Метод Бройдена Метод Ньютона (1, 5f •^0 (1,5)7' 3.625 •^1 3.625 3.0757575757575 ^2 3.0919117647059 3.0127942681679 Хз 3.0026533419372 3.0003138243387 Х4 3.0000023425973 3.0000013325618 •V5 3.0000000000018 3.0000000001394 Хб 3.0 3.0 XJ Пример 8.1.3 является типичным для поведения метода Брой- дена в локальной окрестности корня. Если какие-либо из ком- понент функции F(x) линейны, как, скажем, fi(x) в нашем при- мере, то соответствующие строки аппроксимации якобиана бу- дут иметь точное значение при k ~^ 0, а отвечающие им компоненты функции F{xk) будут равны нулю при k~^ 1 (см. упр. 4). Строки в А/г, соответствующие нелинейным компонен- там функции F(Xk), могут оказаться не очень близкими к стро- кам якобиана, однако соотношение секущих все же содержит достаточно хорошую информацию, обеспечивающую быструю сходимость к корню. В разд. 8.2 мы покажем, что скорость сходимости алгоритма <7-сверхлинейна, но не ^-квадратична. 8.2. Анализ локальной сходимости метода Бройдена 211 8.2. АНАЛИЗ ЛОКАЛЬНОЙ СХОДИМОСТИ МЕТОДА БРОЙДЕНА В этом разделе исследуются свойства локальной сходимости метода Бройдена. Будет показано, что если хо достаточно близко к корню JC», где матрица J(x,) не вырождена, и если Ло доста- точно близка к J(xo}, то последовательность итераций {х/г} сходится ^-сверхлинейно к х^. Доказательство представляет со- бой частный случай более общего способа доказательства, ко- торый применяется также и к методам секущих для задач ми- нимизации. Здесь излагается лишь частный случай, так как он проще и легче для понимания, чем общий способ, и, кроме того, он дает представление о том, как работают многомерные ме- тоды секущих. В гл. 9 результаты, касающиеся сходимости, бу- дут сформулированы без доказательства. Читателю, заинтере- сованному в более глубокой проработке материала, рекомен- дуется обратиться к работе Бройдена, Дэнниса и Морэ (1973) или Дэнниса и Уолкера (1981). Мы разъясняем наш подход, используя фактически тот же простой анализ, который использовался при исследовании ме- тода секущих в разд. 2.6 и метода Ньютона в разд. 5.2. Если F(^)==0, то в результате итерации имеем или Xk+i==Xk— Ak'F^Xk) Xk+i — х, = Xk — x, — Ль' {F {xk) — F (л;.)) Ak (Xk+i — x.) = Ak {Xk —x^—F (Xk) + F {x,). Определение е^^х^—x^, а также прибавление и вычитание J{x^)ek к правой части приведенного выше равенства, дает AkCk+i = [- F (Xk) + F (л:.) + / (A;.) ek\ + {Ak - J М е„. (8.2.1) При наших традиционных предположениях || - F {х^ + F (х.) + / (х.) е„ II = О (|| е, ||2), поэтому ключом к анализу локальной сходимости метода Брой- дена будет анализ второго слагаемого [A/s—J(Xf)}ek- Сначала мы докажем локальную (/-линейную сходимость {е&} к нулю, показав, что последовательность {||Л<;—J(x^) ||} остается огра- ниченной сверху некоторой подходящей постоянной. Соотно- шение lim ||Afe-/(x.)||=0 ft-» 00 212 Гл. 8. Методы секущих для решения систем может и не выполняться, тем не менее мы докажем локальную у-сверхлинейную сходимость, показав, что lim k->00 =0. Отсюда следует, что шаг метода секущих — Ak \? (xis) стремится к ньютоновскому шагу —J{xk)~lF{xk) по величине и по направ- лению. Это есть именно то, что требуется от аппроксимации якобиана. Начнем с вопроса о том, насколько хорошей ожидается за- даваемая формулой пересчета Бройдена аппроксимация Л+ ма- трицы 7(х»). Если F(x} есть аффинная функция с якобианом /, то / будет всегда удовлетворять соотношению секущих, т. е. /sQ(t/c, Sc) (см. упр. 5). Поскольку Л+ является ближайшим элементом в Q(yc,Sc) к Ас в норме Фробениуса, то по теореме Пифагора имеем •nfp, т. е. ||Л+—/ll/'^IIAc—J\\p (рис. 8.2.1). Следовательно, в аф- финном случае формула пересчета Бройдена не может ухудшить норму Фробениуса погрешности аппроксимации якобиана. К со- жалению, это необязательно имеет место для нелинейных функ- ций. Например, могло бы случиться, что Лс==^(д"*), но AcSc =7^ =т^ Ус, и тогда [|Л+—/(х*),|| > ||Лс—/(л'*)||. В свете такого при- мера трудно себе представить, какой полезный результат здесь можно получить относительно того, насколько хорошо Лд ап- проксимирует /(х,). Все, что можно здесь сделать, это показать в лемме 8.2.1, что если аппроксимация становится хуже, то она ухудшается довольно медленно, в той достаточной для нас сте- пени, чтобы доказать сходимость {xk} к А'«. Лемма 8.2.1. Пусть D s R" есть открытое выпуклое мно- жество, содержащее л:с и х^, причем Хс =т^ х^. Пусть F: R"->R", f (х) е Lipy (D), Ар s R"x ", и Л+ определено согласно (8.1.5). ,/ ^ Рис. 8.2.1. Метод Бройдена в аффинном случае. 8.2. Анализ локальной сходимости метода Бройдена 213 Тогда как в норме Фробениуса, так и в 1унорме матриц, имеет место II Л+ - / (х+) || < || Л, - / (^) || + ^ II Лч- - х, \\,. (8.2.2) Кроме того, если x,^D и J{x) удовлетворяет ослабленному условию Липшица: II/ (х) - J (х.) || < у II х - х, || для всех х е D, то II Л+ - J (х.) || < || Л, - / (х,) || + ^ (1| х+ - х, \\, + || х, - х. ||,). (8.2.3) Доказательство. Докажем неравенство (8.2.3), которым в дальнейшем мы и воспользуемся. Аналогично доказывается (8.2.2). Пусть f,A,J{x^. Вычитая /, из обеих частей (8.1.5), имеем =л„ , , (^Л - АЛ) ^ {Ус - •^с) ^ ^s ^"с S S7' "с^с '•'.I Г. I"" Г/ s^ 1 i (^--^л) s^ "c"c г ^c ' — ~f— т ———г—— L s's„ J s,s, = (Ас -/.)/- (8.2.4) Теперь для нормы Фробениуса и /2-нормы матриц на основании (3.1.15), (3.1.10) и (3.1.17) получаем 1|Л,-/.||<||Л.-^.||||/-^||+"УC-/•SC«2 Использование равенства s^ "с "с [так как / — (^с5?/5^) представляет собой матрицу проектиро- вания в евклидовой норме] и неравенства II Ус - ^ \\, <^ (II ^ - х, \\, +1| х, - х, ||з) || s, IL, вытекающего из леммы 4.1.15, завершает доказательство. D Неравенства (8.2.2) и (8.2.3) служат примером свойства, названного ограниченным ухудшением. Это означает, что если аппроксимация якобиана ухудшается, то весьма умеренно. Брой- ден, Дэннис и Морэ (1973) показали, что любой квазиньюто- новский алгоритм, в котором способ аппроксимации якобиана 214 Гл. 8. Методы секущих для решения систем удовлетворяет этому свойству, локально q-линейно сходится к корню х», где J(x#) не вырождено. В теореме 8.2.2 приводится частный случай их доказательства, соответствующий методу Бройдена. Получив затем более тонкую оценку нормы выра- жения (Л,-/.))/-^-] - •- •>с с -J в (8.2.4), покажем, что метод Бройдена является локально (/-сверхлинейно сходящимся. В оставшейся части раздела предполагается, что x/s+i^Xk, k = О, 1, ... . Поскольку, как показано ниже, наши предполо- жения гарантируют невырожденность А/г, k == О, 1, .... и по- скольку x/t+i — Xk= — Ak^Fixic), то предположение о том, что x'k+i?=Xk, эквивалентно предположению о том, что F(Xk)?^0, k=0, I, ... . Следовательно, из рассмотрения исключается про- стой случай, когда алгоритм находит корень точно, т. е. за ко- нечное число шагов. Теорема 8.2.2. Пусть выполнены все предположения теоремы 5.2.1. Существуют положительные постоянные е и б, такие, что если ||хо—.xJla s^ е и ||Ло—/(х*) Ik ^ б, то последовательность {xk}, генерируемая алгоритмом 8.1.2, корректно определена и сходится <7-сверхлинейно к х#. Если предположить лишь, что {Ak} удовлетворяет (8.2.3), то {х/г} сходится к х» по меньшей мере <7-линейно. Доказательство. Пусть || • || обозначает векторную и матрич- ную 1ч-нормы, ^Ад^—д"., /.А/(л",), |3 ^/(л:,)"' ||. Выберем е и 6 так, чтобы 6р6<1, (8.2.5) Зуе<26. (8.2.6) Доказательство локальной ^/-линейной сходимости будет со- стоять в доказательстве по индукции неравенств \Ak-JJ'^(2-2-k)6, 11^+1 II <11^1 (8.2.7) (8.2.8) для k = О, 1, ... . Если говорить вкратце, то первое неравенство доказывается для каждого номера итерации с использованием свойства ограниченного ухудшения (8.2.3), которое дает 11 Ak -JJ< II Л,-, - /. II + ^ (II ен II +11 е.-i ||). (8.2.9) 8.2. Анализ локальной сходимости метода Бройдена 215 Читатель может убедиться, что если Zlle/11 1=0 равномерно ограничено сверху для любого k, то последователь- ность {||Лй—/»||} будет ограничена сверху. Используя два пред- положения индукции и (8.2.6), получаем (8.2.7). Затем нетрудно доказать (8.2.8), используя (8.2.1), (8.2.7) и (8.2.5). Для k = 0 неравенство (8.2.7) тривиально выполнено. До- казательство (8.2.8) идентично доказательству шага индукции, поэтому мы его здесь опускаем. Теперь предположим, что (8.2.7) и (8.2.8) справедливы для всех k=0, ..., f—1. Для k=i, согласно (8.2.9) и двум пред- положениям индукции, имеем (8.2.10) Зу |Л.-^JI<(2-2-(l-l))6+^||e,•-l||.. Из (8.2.8) и неравенства |[ео||^8 получаем Це,-,!!^-"-0!!^!!^-"-1^ Подстановка этого соотношения в (8.2.10) и использование (8.2.6) дает ||Л,-^J<(2-2-((-l))6+^в.2-(t-l>< < (2 - 2-(t-l) + 2-') 6 = (2 - 2-') б, что подтверждает справедливость (8.2.7). Для проверки (8.2.8) мы должны сначала показать, что Л, обратимо, так что итерация корректно определена. Из нера- венств ||/(х,)-Ч1 s?P, (8.2.7) и (8.2.5) следует, что П^-Чл.-/.)»^ Отсюда по теореме 3.1.4 Ai не вырождено и |Л,-/. ^^^-Об^рб^. А71 <- \}~ ^. - -зр- 2 (8.2.11) Таким образом, xi+i корректно определено, и, согласно (8.2.1), \\ew\\<\\AT\\[\\-F(x,)-{-F{x,)+J,e.\\+\\A,-J^\e^\\}. (8.2.12) По лемме 4.1.12 имеем || - F (Xt) + F (^) + /.е< II < ^ilL . Подстановка этого неравенства, (8.2.7) и (8.2.11) в (8.2.12) дает 11^,11<И^-К11+(2-2-')б]||^||. (8.2.13) 216 Гл. 8. Методы секущих для решения систем Из неравенств (8.2.8), ||eol|^e и (8.2.6) имеем -(W) 2-'б что после подстановки в (8.2.13) дает 11^+1||<^р[4-2-'+2-2-']б||^||<Зрб||^||<1М, где последнее неравенство вытекает из (8.2.5). Это доказывает (8.2.8) и завершает доказательство (/-линейной сходимости. Мы откладываем на время доказательство (7-сверхлинейной сходи- мости и вернемся к нему позже в этом разделе. D Мы доказали (/-линейную сходимость метода Бройдена, по- казав, что свойство ограниченного ухудшения (8.2.3) обеспечи- вает то, что величина ЦЛд—J(x^)\\ остается достаточно малой. Заметим, что если все известное нам о последовательности аппроксимаций {Лд.} якобиана сводилось к (8.2.3), то мы не могли рассчитывать на большее, чем доказательство (7-линейной сходимости, поскольку, например, аппроксимации Ak=Ay-^ ^=I(x„), k==0, 1, ..., очевидно удовлетворяют (8.2.3), но, со- гласно упр. 11 из гл. 5, получающийся в результате метод схо- дится не быстрее, чем ^-линейно. Таким образом, та часть дока- зательства теоремы 8.2.2, которая относится к у-линейной схо- димости, представляет теоретический интерес отчасти потому, что она показывает нам, насколько плохо мы можем аппрокси- мировать якобиан и насколько в этом можно преуспеть. Тем не менее ее реальная польза состоит в том, что она гарантирует сходимость {xk} к х^, такую, что 00 Z 11^ II < 00. fe=0 Это неравенство будет использовано при доказательстве ^-сверх- линейной сходимости. Как указывалось в начале этого раздела, достаточным для (/-сверхлинейной сходимости метода секущих является условие lim I'^-^l' ^o. (8.2.14) fe->oo 11^11 На самом деле мы будем пользоваться им в несколько изме- ненной форме. В лемме 8.2.3 показано, что если {xk} сходится (7-сверхлинейно к х», то lim -—„-=== 1, ^"oll^ll где Sk=Xk+\—Xk и ek=Xk—x». Это наводит на мысль о том, что можно заменить в (8.2.14) е/, на Sii и в результате по-преж- 8.2. Анализ локальной сходимости метода Бройдена 217 нему иметь достаточное условие <7-сверхлинейной сходимости метода секущих. Это доказано в теореме 8.2.4. С помощью дан- ного условия мы доказываем (/-сверхлинейную сходимость ме- тода Бройдена. Лемма 8.2.3. Пусть Xk' дится (/-сверхлинейно к х« lim fe->00 ; R", k = О, 1, ... . Если {Xk} cxo- : R", то в любой норме ||-|1 Доказательство. Обозначим Sk==Xk+i—Xk, ek=Xk—х^. До- казательство наглядно представляется следующим рисунком: Ясно, что если lim 1——1=0, то 1,т«^„ fe-»°o \\ek\\ fe-»°° 11е* II 1. lim fe->00 11^1 I eft I Формальные выкладки дают 1Ы1-Ы1 <11 ^+^11 \\е =lim1„ &+i ek\ == limй->°° 11^11< limfe->°0 11^11 &->°° 11 =0. Здесь последнее равенство есть определение <?-сверхлинейной сходимости для случая, когда е<; •=/=• 0 при всех k. D Заметим, что лемма 8.2.3 представляет также интерес и для критерия останова в наших алгоритмах. Она показывает, что как только алгоритм достигает по меньшей мере ^-сверхлиней- ной сходимости, то любой критерий останова, использующий Sk, по сути, эквивалентен тому же самому критерию, но использую- щему ek, т. е. ту величину, которая представляет для нас реаль- ный интерес. Теорема 8.2.4 показывает, что соотношение (8.2.14) с заме- ной Qk на s/г является необходимым и достаточным условием <7-сверхлинейной сходимости квазиньютоновского метода. Теорема 8.2.4 (Дэннис—Морэ, 1974). Пусть D ?= R" есть вы- пуклое открытое множество, F: R"-*-R", /(л-)е Lipy(D), x«eD, и матрица /(л:,) не вырождена. Пусть {Лд} есть последователь- 218 Гл. 8. Методы секущих для решения систем ность невырожденных матриц в Rnx'г, и предположим для неко- торого Хо s D, что последовательность точек, генерируемая фор- мулой (8.2.15) остается в D и имеет место х/с ^?= х^ для любого k, а также, что Um^-xx, xk = Xf- Пусть || • || есть какая-либо норма. Тогда {х/:} сходится (/-сверхлинейно к х„ н Р(х#)==0 в том и только в том случае, когда || (А,, — 1 (х,)) s. || lim-11—6——,, ' k" ==0, (8.2.16) k^ \\h\\ ' где SkA^Xk+i—Xk. Доказательство. Обозначим /*=/(.»:»), ek=Xk—л"*. Снача- ла мы предположим, что имеет место (8.2.16), и покажем, что F(x^}==0 и {Xk} сходится (/-сверхлинейно к хц.. Из (8.2.15) имеем О == A„Sk + F {х^ == (Ak - /.) Sk+F (х„) + /.Sft, поэтому - F (Xk+i) = (Ak - /.) Sk + [- F (Xk+,) + F (Xk) + J.Sft], (8.2.17) ll^ft+Qll^ll^ft-^ftll , \\-F{xk+l)+F{Ч')+^^\\ ^ ||sJ| 5^ ||s, II "1 lie 11 ^ ^- II (Ak /') sk II l V /II - || I ,1 -, 1|\ /on 1 0\ ^ —«т"»— ' т\11 k \\ 1 \\ k+1"'' (0 • ) п k (1 где последнее неравенство вытекает из леммы 4.1.15. Исполь- зование в (8.2.18) соотношений liiTi,,_^„J|e<;||= 0 и (8.2.16) дает 1,т1ф-1Д=0. (8.2.19) &-»°° 11^11 Поскольку lim^^ II 5^(1== 0, то это означает, что F(x,)=UmF(Xk)=0. k-> 00 Согласно лемме 4.1.16, существуют а > 0 и ko'^0, такие, что 11 F (^й+i) || = || F (Xk+i) - F (x,) || > a 1| eft+, || (8.2.20) для всех k'^ko. Комбинируя (8.2.19) и (8.2.20), получаем О^Пт^^Ъпта",^^ ft-» 00 ft-» 00 fc-»», llsJI — ^ . ll < ii " "ii^+ill .. ^ь lim ~ . ft-^.со 1+^ > lim ""•-^'l ft-»- ll^ll+lf^ft+ill 8.2. Анализ локальной сходимости метода Бройдена 219 где rfe^Jleft+i |1/|| ей ||. Отсюда следует, что lim г&==0. fe->°0 Это завершает доказательство ^-сверхлинейной сходимости. Настоящее доказательство того, что из ^-сверхлинейной схо- димости и равенства Р(х^)=0 следует (8.2.16), почти полностью повторяет в обратном порядке приведенные выше рассуждения. Согласно лемме 4.1.16, существуют |3 > 0 и ka ^ 0, такие, что ll^+OIKPII^+ill для всех k ^ ko. Таким образом, (/-сверхлинейная сходимость приводит к соотношениям 0= lim- k->0° ,. llf(^+l)ll ,.„ 1 : lim —o-„—„—== lim д- Pll^ll ft-»°° P ft-» 00 I F (^+1)11 11^11 /о поп —П—п—— • иТ-ТГ^0-2-2^ Поскольку lim^_^^]|Sfel|/||efe||= 1, то из леммы 8.2.3 и соотноше- ний (8.2.21) вытекает справедливость (8.2.19). Из (8.2.17) и леммы 4.1.15 окончательно получаем •+ II ^fe-^)^ 11^ II77 (^+1)11 II "ft II l^ft+l) что совместно с (8.2.19) и соотношением lim^^||efe[|=0 дока- зывает (8.2.16). a Поскольку 1{х) непрерывно по Липшицу, нетрудно показать, что лемма 8.2.4 остается в силе, если (8.2.16) заменить на \(Ak-J_(xk)}^\_ (8.2.22) =0. lim Us и ft->oo ||°й11 Это условие имеет интересную интерпретацию. Поскольку Sft== — A^F^Xk}, то (8.2.22) эквивалентно тому, что lim ft-» 00 где s^ =—J(x.)~\ F(x^ есть ньютоновский шаг из хц. Таким образом, необходимым и достаточным условием (/-сверхлинейной сходимости метода секущих является то, что шаги метода секу- щих стремятся по величине и по направлению к ньютоновским шагам из тех же самых точек, о г> о с Теперь мы завершим доказательство теоремы 8.2.2. Ьму пред- шествует лемма, которая имеет методическое значение и исполь- зуется в этом доказательстве. 220 Гл. 8. Методы секущих для решения систем Лемма 8.2.5. Пусть имеются ненулевое s e R" и fsR"^, а также пусть || • || обозначает векторную /а-норму. Тогда I/ SST\\\ У 9 /lI.E'll^V/2 Ч7-^)!^^"^-^)) < (8•2•23a) ^'^-iraC-YI1)2 (8•2•28b) Доказательство. Как отмечалось ранее, /—{ssт/sтs} есть матрица проектирования в евклидовой норме. Таковой является и матрица ssr/sтs. Поэтому по теореме Пифагора imiHI^r+bf7- II s- s II/? . . II V, Так как <^г ^Л|р \Е SS- ~Г~1 '• s s \\р \\Es\\ 1И1 то это доказывает справедливость (8.2.23а). Поскольку (а2 — (З2) '/г ^ а — р2/2й для любых ст ^ | р | > 0, то из (8.2.23а) следует (8.2.23b). D Завершение доказательства теоремы 8.2.2 {q-сверхлинейная сходимость). Обозначим Ek=Ak—/*, и пусть |[-|| обозначает векторную /2-норму. Согласно теореме 8.2.4, достаточным усло- вием того, чтобы {xk} сходилось <7-сверхлинейно к д:„, служит IIm "i^-». ft->°° 1Ы1 (8.2.24) Из (8.2.4) имеем 11^+il|^< ?,f/-^)|+ II \ 4^)1 SkS (8.2.25) В доказательстве леммы 8.2.1 было установлено, что || ^-/^Ч<^ (и. .ц+11 ^.ii). II Vk \\F 2 Использование в (8.2.25) этого неравенства наряду с неравен- ством || ek+i II s^ll 6^11/2, (8.2.8) и леммой 8.2.5 дает II С' II /^" II 27 II li A fe ii l ' [1 /-, II II ^+1 11^ < II ^ 11^ - , + ^- II ^ 11> - II '-kW II "ft N 8.2. Анализ локальной сходимости метода Бройдена 221 ИЛИ |?,s,||° Г Зу "i ^- < 2 || ^ 1|^ |i Ek \\p - 11 ?ft+i 11^ + — II е„ II . (8.2.26) ^11 1- 4 J Из доказательства теоремы 8.2.2 имеем [l?&||^sS:26 для всех - /г>0 и 00 Xll^ll<2e. 7г=0 Поэтому из (8.2.26) следует || E.s, ||9 Г Зу 1 ^-^ ^ 46 Ц ^ \\, -1| fife+i [|^ + — II е„ II . (8.2.27) ll^ll 1- 4 -• Суммируя левые и правые части (8.2.27) по k==0, 1, ..., г, получаем ^ 4 II ^& fe=0 "fell 1- ft=0 -' <4б[||?oll^+lIe-]<46[б+^]• (8.2.28) Поскольку (8.2.28) справедливо для любого i ^ 0, то сумма \E.s Е- 7=0 11°&1 конечна. Отсюда вытекает (8.2.24), что завершает доказатель- ство. D Приведем еще один пример, который иллюстрирует сходи- мость метода Бройдена на полностью нелинейной задаче. Этот пример используется нами как отправная точка, чтобы выяс- нить, насколько близким оказывается в решении предельное значение аппроксимации якобиана Л^ к самому якобиану У(х«). Пример 8.2.6. Пусть / х\ + х2 - 2 Т~1 / \ s - ~ w==\ex^-[+x^-2 имеет корень х»==(1, 1)7". Ниже приведены последовательности точек, генерируемых методом Бройдена и методом Ньютона из -со =(1.5, 2У при AQ==J(xo) для метода Бройдена. 222 Гл. 8. Методы секущих для решения систем Метод Бройдена Метод Ньютона 1.5 2.0 Л',| 1.5 2.0 0.8060692 1.457948 •<i 0.8060692 .45794Х 0.7410741 1.277067 •'•'2 ft КОШ 1 (ПV.O-ЛИ 1 •7J .145571 0.8022786 1.159900 xl Л QQ1^ЙО1U.77 1 J07 1 .021054 0.9294701 1.070406 Xf 0.9997085 .000535 1.004003 1.009609 Х-, 0.999999828 .000000357 1.003084 0.9992213 Xh 0.99999999999992 .0000000000002 1.000543 0.9996855 Х-, 1.0 0 0.99999818 1.00000000389 Л» 0.9999999885 0.999999999544 .V„ 0.99999999999474 0.99999999999998 1.0 1.0 V|1 Последней из аппроксимаций якобиана, порожденных методом Бройдена, является Г 1.999137 2.0218291 10 ^L 0.9995643 3.011004 J ' тогда как •^[\ I]- В приведенном выше примере максимальная относительная погрешность для Лщ при аппроксимации f(x^) составляет 1.1 %. Это типично для последней из порождаемых методом Бройдена аппроксимаций якобиана. С другой стороны, нетрудно показать, что в примере 8.1.3 последовательность {Лд} не сходится к J(x^: Лемма 8.2.7. В примере 8.1.3 lim Ak == \ , е - - j fe-»oo L 1.5 7.5 J тогда как '^[l в]. Доказательство. В примере 8.1.3 показано, что (Л;г)ц= == (Ak) i2 == 1 для всех k "^ 0: Л-Г1 1 1 1 L 0.375 8.625 J' ^i(^)=(^)i+(^)2-3=0 (8.2.29) для всех k ^ 1. Согласно (8.2.29), имеет место (1, l)TS|г=0 для всех k~^ 1. С учетом формулы (8.1.10) для метода Бройдена 8.3. Реализация квазиньютоновских алгоритмов 223 это означает, что (Ak+i—Лй)(1, 1)7'==0 для всех k~$t 1. Тогда (Л„)21 + (Л^з == (Л,)21 + Ui)22 = 9 (8.2.30) для всех k ^ 1. Кроме того, в этом случае легко показать, что соотношение секущих дает lim [(Ak)n - (^22] = - 6. (8.2.31) fe->00 Из '(8.2.30) и (8.2.31) получаем lim (A^i = 1.5 и lim (A^22==7.5. a fe->00 k->°° Выводы леммы 8.2.7 в точности воспроизводятся на ЭВМ; так, в примере 8.1.1 получено / 1 1 ^ л-в 1.5- Ю"0 7.5 + 10' Легко обобщить доказательство леммы 8.2.7 и показать, что lim Ak^J (л:.) й->°° почти для любой частично линейной системы уравнений, кото- рая решается с помощью метода Бройдена. Упражнение 11 слу- жит примером полностью нелинейной системы уравнений, для которой {xk} сходится к корню Хц, однако предельное значение Ak существенно отличается от J(x^). Резюмируя, заметим, что, когда метод Бройдена сходится ^-сверхлинейно к корню х», нельзя предполагать, что последняя из аппроксимаций якобиана Лд будет приблизительно равняться /(^*), хотя часто это именно так. Если мы могли бы сказать, насколько быстро {||?&Sft||/||sft||} приближается к 0, то могли бы сказать больше о порядке схо- димости метода Бройдена. Наиболее близким к такому резуль- тату является доказательство, данное Гэем (1979). Он доказал, что для любой аффинной F метод Бройдена дает х^п+\ = х^, что эквивалентно ||?'2rtS2nll/l|s2nll ==0. Это позволило ему в предполо- жениях теоремы 8.2.2 доказать 2п-шаговую (/-квадратичную сходимость метода Бройдена для общего случая нелинейных функций. Как следствие из упр. 2.6 это означает, что г-порядок равен 21/2". 8.3. РЕАЛИЗАЦИЯ КВАЗИНЬЮТОНОВСКИХ АЛГОРИТМОВ, ИСПОЛЬЗУЮЩИХ ФОРМУЛУ ПЕРЕСЧЕТА БРОЙДЕНА В этом разделе обсуждаются два вопроса, касающиеся исполь- зования в одном из наших квазиньютоновских алгоритмов ре- шения систем нелинейных уравнений вместо якобиана, задан- 224 Гл. 8. Методы секущих для решения систем ного аналитически или конечно-разностно, его аппроксимации по секущим. Имеется в виду следующее: (1) детали, относя- щиеся к численной аппроксимации, и (2) те изменения, если они вообще требуются, которые нужно внести в остальную часть алгоритма. Первая из проблем использования формул пересчета по се- кущим для аппроксимации якобиана заключается в том, как получать начальную аппроксимацию Ац. Мы уже говорили о том, что нами используется конечно-разностная аппроксимация якобиана J(xy}, которая вычисляется с помощью алгоритма А5.4.1. Разработанная Морэ численная реализация HYBRD в пакете программ MINPACK [Морэ, Гарбов и Хиллстром (1980)] использует модификацию этого алгоритма, которая более эф- фективна, когда J (х) имеет много ненулевых элементов. Его обсуждение откладывается до гл. 11. Если формулу пересчета Бройдена реализовывать непосред- ственно так, как она записывается, то в данном случае мало что можно сказать о ее реализации; это просто-напросто f=y—As, о - --sтs, /=1, ..., п. Однако, напомним, что первое действие, которое выполнит наш алгоритм с матрицей Л+, это определение ее Q^-разложения, необходимого для вычисления шага — A~^F (х+). Следовательно, как читатель уже мог догадаться, поскольку формула пересчета Бройдена идеально соответствует алгебраической структуре ра- венства (3.4.1), то более эффективная стратегия пересчета со- стоит в применении алгоритма АЗ.4.1 для пересчета разложения QcRc матрицы Ас в разложение Q+R+ матрицы Л+ за 0{п.ч) опе- раций. На всех, последующих за первой итерациях это дает экономию порядка 0(п3) на стоимости Q^-разложения Л/г. Чи- татель может подтвердить, что целиком вся итерация квази- ньютоновского алгоритма, использующего формулу пересчета Бройдена в форме Q^-разложения и линейный поиск или стра- тегию глобализации с поиском вдоль кривой, стоит только 0(п2) арифметических операций. Эти две возможные реализации формулы пересчета Бройдена будут называться формулами пересчета соответственно в не- факторизованной и факторизованной формах. Приложение А содержит обе формы, представленные соответственно алгорит- мами А8.3.1 и А8.3.2. Факторизованная форма делает алгоритм более эффективным, и ее следует использовать в любой серьез- ной программной реализации. Нефакторизованную форму проще 8.3. Реализация квазиньютоновских алгоритмов 225 программировать, и ей можно отдать предпочтение при предва- рительной программной реализации. Обе формы пересчета, представленные в приложении, имеют еще две особенности. Во-первых, читатель может убедиться (см. упр. 12), что диагональное масштабирование независимых пере- менных, рассмотренное в разд. 7.1, приводит формулу пересчета Бройдена к виду Л^Л.+fc^^. (8.3.1) SCL'XSC Это та формула пересчета, которая фактически реализована. Читатель может также убедиться, что формула пересчета не за- висит от диагонального масштабирования зависимых пере- менных. Во-вторых, при некоторых обстоятельствах мы принимаем решение не менять строку матрицы Ас. Заметим, что если (г/с—Лс5с)(==0, то (8.3.1) вызывает автоматически совпадение t'-x строк в Ас и Л+. Наши действия оправданы, так как формула пересчета Бройдена вносит минимальные') изменения в г-ю строку Ас, приводящие к равенству (A+)(.SC =={yc)i, и если (г/с—AcSc)i==0, то необходимость в каких-либо изменениях от- падает. Наш алгоритм оставляет также i-ю строку в Лд неиз- менной, если | (г/с—AcSc)i| оказывается меньше вычислительной погрешности в (г/с)», измеряемой с помощью r\ (\ fi (хс) \ + +|^(х+) |), где т] есть уровень относительной величины шума в значениях функции (об этом шла речь в разд. 5.4). Это условие предназначается для того, чтобы в формуле пересчета препят- ствовать попаданию в Л+ случайного шума вместо полезной информации о производной. Существует еще одна реализация метода Бройдена, которая тоже требует на итерации О (/г2) арифметических операций. Она использует приведенную ниже формулу Шермана—Моррисо- на — Вудбери. Лемма 8.3.1 (Шерман—Моррисон—Вудбери). Пусть и, v s s R" и предположим, что матрица Л е R^" не вырождена. В этом случае Л + uv7' не вырождена тогда и только тогда, когда l-}-vтA~\u^a^O. Кроме того, -'-A-'u^A-1. ст (Л+УУТ^Л-1 *) Это связано с тем, что в норме Фробениуса задача (8.1.8) распадает- ся на п независимых задач, соответствующих строкам матрицы А. — Прим. перев. 226 Гл. 8. Методы секущих для решения систем Доказательство. Упр. 13. D Непосредственное применение леммы 8.3.1 показывает, что если известно Ac'\, то этим можно воспользоваться, представив формулу пересчета Бройдена как -1„ \ „Гл-1 (8.3.2) s^Ac 'Ус что требует 0(п2) операций. Тогда направление метода секу- щих —A'+lF(x+) может быть вычислено умножением матрицы на вектор, что требует дополнительно 0(п2) операций. Поэто- му, до того как Гиллом и Мюрреем (1972) было введено поня- тие последовательности Q^-разложений, в алгоритмах, исполь- зующих формулу пересчета Бройдена, сначала вычислялось зна- чение Ло'1, а затем применялась формула (8.3.2). Такая реали- зация обычно прекрасно работает на практике, но у нее есть тот недостаток, что при ней с трудом выявляется плохая обус- ловленность Л+. Поскольку факторизованная формула пересчета из Ас в Л+ свободна от этого недостатка и требует по существу такого же количества арифметических операций, что и (8.3.2), в готовой программной продукции отдается предпочтение ей, а не (8.3.2). В данном разделе дается ответ и на другой вопрос: «Какие изменения в случае использования формул пересчета по секу- щим необходимо произвести в остальной части квазиньютонов- ского алгоритма решения нелинейных уравнений?». Исходя из способа представления общей квазиньютоновской схемы, нам хотелось бы ответить «никаких», но имеются два исключения. Первое изменение тривиально: если формула пересчета исполь- зуется в факторизованной форме, то на каждой итерации не производится Q^-разложение якобиана модели, и на это на- строены отдельные детали реализации в том виде, как это об- суждается в приложении А. Второе изменение более существенно: теперь уже не гаран- тируется, что квазиньютоновское направление Sc = — Ac F {хс} будет направлением убывания для f {х) = у || F (x) ||j. Вспомним из разд. 6.5, что Vf(xc)== J(xc)TF(xc), поэтому s^f (хс} •• Если Ас=/(хс), то эта величина неположительна, что необяза- тельно имеет место в противном случае. Кроме того, не суще- ствует способа, по которому можно проверить, является ли Sc в алгоритме секущих направлением убывания для f(x), так как отсутствует возможность вычислить ^?f[Xc), не используя J(xc). Это означает, что Sc может быть направлением вверх для гра- 8.4. Другие формулы секущих 227 фика f(x), и наш шаг глобализации может потерпеть неудачу в попытке найти какую-либо подходящую точку. К счастью, на практике это случается не часто, так как Ас представляет собой аппроксимацию J(xc). Если же это происходит, то имеется про- стой выход: мы восстанавливаем Ас, используя конечно-разност- ную аппроксимацию для J(xc), и продолжаем счет алгоритмом. Такая мера предосторожности предусмотрена в драйвере для нашего алгоритма решения нелинейных уравнений. Это по су- ществу—то же, что делается в программе Морэ пакета MINPACK. 8.4. ДРУГИЕ ФОРМУЛЫ СЕКУЩИХ ДЛЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ До сих пор в этой главе для аппроксимации якобиана рассма- тривалась одна формула пересчета по секущим, а именно, фор- мула Бройдена. Мы видели, что среди всех элементов множе- ства Q(t/c, Sc), которое представляет собой аффинное подпро- странство матриц, удовлетворяющих соотношению секущих (8.4.1) формула пересчета Бройдена дает ближайший к Ас в норме Фробениуса. В этом разделе упоминаются некоторые другие из предложенных аппроксимаций, принадлежащих QQ/c, Sc). Альтернатива, может быть, наиболее известная, была пред- ложена Бройденом в статье, где он предлагал формулу пере- счета Бройдена. Изложенная в предыдущем разделе идея по- строения последовательности Л^"' вместо Л& привела Бройдена к выбору {s^-A^y^yl (8.4.2) УсУс Прямое применение леммы 8.1.1 показывает, что (8.4.2) является решением задачи: (8.4.3) в mm B<=Q(</^), В не вырождена По лемме 8.3.1 равенство (8.4.2) эквивалентно , _, | (Ус-^у^А, Л+ — Л с -Г —————•J—————— , Ус^с (8.4.4) что представляет собой формулу пересчета, очевидно отличную от формулы Бройдена. 228 Гл. 8. Методы секущих для решения систем Формула пересчета (8.4.2) имеет то привлекательное свой- ство, что она непосредственно генерирует значения Л+' без каких-либо проблем нулевого знаменателя. Кроме того, она разделяет с формулой пересчета Бройдена все ее положитель- ные теоретические свойства. То есть можно модифицировать доказательство леммы 8.2.1 и показать, что этот метод аппрок- симации J (х)~1 обладает с точки зрения аппроксимации J {х^}~1 свойством ограниченного ухудшения. Отсюда можно показать, что имеет место теорема 8.2.2 с использованием (8.4.2) вместо формулы пересчета Бройдена. Однако на практике методы, ис- пользующие (8.4.2), оказались значительно менее успешными, чем те же методы, использующие формулу пересчета Бройдена. Поэтому (8.4.2) фактически стала известна как «плохая фор- мула пересчета Бройдена». Хотя мы не претендуем на полное понимание отсутствия вычислительного успеха плохой формулы пересчета Бройдена, интересно то, что хорошая формула пересчета Бройдена происте- кает из минимизации изменения в аффинной модели при условии выполнения соотношения секущих, тогда как плохая формула пересчета Бройдена связана с минимизацией изменения в реше- нии модельной задачи. Возможно, тот факт, что при формиро- вании модели типа секущих используется информация о функ- ции, а не о ее решении, служит причиной, по которой первый из подходов является более желательным. Во всяком случае, мы встретимся в разд. 9.2 с аналогичной ситуацией, когда формула пересчета для безусловной минимизации, выведенная из хоро- шей формулы Бройдена, превосходит аналогичный метод, выве- денный из плохой формулы Бройдена, хотя оба имеют анало- гичные теоретические свойства. Существует для нелинейных уравнений множество других возможных формул пересчета; некоторые из них могут ока- заться в будущем перспективными. Например, формула пере- счета (Vk - ^k) vk (8.4.5) корректно определена и удовлетворяет (8.4.1) при любых Uk <= R", для которых v\s^ ^ 0. Хорошая и плохая формулы пересчета Бройдена отвечают выбору u^=s^ и u^=A'^y^ соот- ветственно. Барнес (1965), Гэй и Шнабель (1978) предложили формулу пересчета вида (8.4.5), где Vk является проекцией Sk в евклидовой норме на ортогональное дополнение к Sk-i, .. • ..., Sk-m, 0 ^ т < п. Это делает возможным для Л+ удовлет- ворить т+1 соотношениям секущих A^+iSi == yi, l==k— — т, ..., k, означающим, что аффинная модель интерполирует наряду с F(xk) и F(xk+i} еще и F(xi), i=k—m, ..., k—\. 8.5. Упражнения 229 В программных реализациях, где т < п выбирается так, чтобы Sk-m, ..., Sk были сильно линейно независимы'), эта формула пересчета несколько превосходит в работе формулу Бройдена, однако опыт здесь все еще ограничен. Поэтому мы все же ре- комендуем формулу пересчета Бройдена. в качестве аппрокси- мации по секущим для решения систем нелинейных уравнений. 8.5. УПРАЖНЕНИЯ 1. Пусть s,, у, е R", 1= 1, ..., п, и предположим, что векторы si, ... ..., Sn линейно независимы. Как бы вы вычислили матрицу А е R^", та- кую, что As, = yi, i = 1, ...., я? Почему это является плохим способом по- строения модели (8.1.1) в'том случае, когда направления Si, ..., Sn близки к тому, чтобы быть линейно зависимыми? 2. Покажите, что если '[J i]. ^[i]- у-[Л}' то решением задачи min ЦМ—ЛПг Л1 <= Q (у, s) является Л+=Л+[ ° при любом а е [—1, I]. Что представляет собой решение в норме Фробениуса? Если F(x) линейно по x-t, то какому из решений следует отдать предпочтение? _ pi + ^ - 3-j -|^+^_9_|' 3. (а) Выполните две итерации метода Бройдеиа для •Xt + л;а - 3-1 F{x) начиная из Хц == (2, 7) и Ло == / (хо). (О) Продолжите выполнение п. (а) (на ЭВМ) до тех пор, пока не станет ll-^+l — ^fell^ (niacheps)1/2. Чему равно последнее значение Л^? Сравните его с / (х,). 4. Предположим, что метод Бройдена применяется к функции F: R"->R", у которой fi, ..., fm линейны, т < п. Покажите, что если Ло вычисляется аналитически или с помощью конечных разностей, то ('4ь). =^(xk}^ ' i == 1, ..., т, для всех k~^Q, а при & ^ 1 f, {хЛ =0, i = 1, ..., т. 5. Предположим, что / е R" х ", & s R'1, F (х) == Ix + Ь. Покажите, что если Кс и х+ есть две произвольные несовпадающие точки в R", такие, что Sc = х+ — Хс и ус = F {х+) — F (Хс), то / es Q (ус, Sc). 6. Докажите (8.2.2), используя для этого технику доказательства лем- мы 8.2.1. ') В результате т зависит от k.—Прим. перед. 230 Гл. 8. Методы секущих для решения систем 7. Предположим, что s i Покажите, что : R", s т^= 0, и / есть единичная п X га-матрица. „Г (I /— SS 77 8. Докажите теорему 8.2.4 с (8.2.22) вместо (8.2.16). 9. Примените при счете на ЭВМ метод Бройдена с целью выяснения его сходимости на функции из примера 8.2.6, используя начальную точку хо = == (2, З)7' (которая использовалась для этой же функции в примере 5.4.2). Почему мы не воспользовались Хо == (2, З)7 в примере 8.2.6? 10. Обобщите лемму 8.2.7 следующим образом: ^_г^+м "'•L F,(x) ]' пусть 1 ^ т < п, где /I s ^тхп, bi е R'", и функция Ft: R"-^""'" нелинейна. Предположим, что для решения F (х) == 0 используется метод Бройдена, и он генерирует последовательность аппроксимаций якобиана Ло, AI, Ач, ... . Пусть Ak раз- деляется на блоки: А k2 зот Хп lfe2^ >(га-т)Х п Покажите, что если Ло вычисляется аналитически или с помощью конечных разностей, то Л^ = /j для всех k ^s 0, и (Л^ — Л,з) ]\ = 0 для всех k ^ 1. Какой вывод отсюда можно сделать относительно сходимости последова- тельности {Л^} к истинному значению F^(x )? 11. Численные примеры плохой сходимости {Л;;} к J{х#} для полностью нелинейных функций. Примените при счете на ЭВМ метод Бройдена для выяснения его сходимости на функции из примера 8.2.6, используя начальную точку Хц == (0.5, 0.5)Т и выводя на печать значения Ak. Сравните последнее значение Ak с 7(х»). Проделайте то же самое, используя начальную точку х, = (2, З)7. 12. Предположим, что мы преобразовали переменные х и F(x) так, что х == 0^ • х, F {х) = Dp • F (х\ где Dx и Dp — положительно определенные диагональные матрицы. Произ- ведите пересчет аппроксимаций по формуле Бройдена в новых пространствах переменных и функции, а затем сделайте обратное преобразование к исход- ным переменным. Покажите, что этот процесс эквивалентен использованию формулы пересчета (8.3.1) в исходных переменных х и F{x). [Указание: но- вый якобиан J(x) связан со старым якобианом 1{х} соотношением J{x) = ^DpI(x)D;1.] 13. Докажите лемму 8.3.1. 14. Воспользуйтесь алгоритмами из приложения, запрограммируйте и пропустите на ЭВМ алгоритм решения систем нелинейных уравнений, исполь- зующий для аппроксимации якобиана метод Бройдена. Когда ваша програм- ма заработает нормально, постарайтесь подыскать задачу, в которой методом секущих вырабатывается направление «вверх по склону графика функции» [т. е. —Р (х,,) А^ J (Хь) F (Хь) > О], так что необходимо восстановить Ak переходом к I(Xk}. 8.5. Упражнения 231 15. Воспользуйтесь леммой 8.1.1 и покажите, что (8.4.2) есть решение задачи (8.4.3). Затем, используя лемму 8.3.1, покажите эквивалентность (8.4.2) и (8.4.4) в случае, когда Ас не вырождена и г/^Лд5д ?= 0. 16. (Трудное упражнение.) Подойдите с более удачным объяснением к тому факту, что «хороший» метод Бройдена (8.1.5) с вычислительной точки зрения имеет больший успех, чем «плохой» метод Бройдена (8.4.4). Упражнения 17 и 18 взяты из работы Гэя и Шнабеля (1978). 17. Пусть Лд е R" х ", s,, у, е R", i = k — 1, k, причем s^_, и s^ линейно независимы, и предположим, что А^$у_, = г/д,. (a) Получите условие на Vy в (8.4.5), такое, что Ль ,S,L_, ==;/,_,. (b) Покажите, что матрица Л^ , заданная в (8.4.5), является при ^-l {sksk-i) "k-i решением задачи: найти . min BsR"Xra при условии В е \В-А. 18. Обобщите упр. 17 следующим образом: предположите дополнительно, что для некоторого m < п существуют s., y.eR", i=k—in, ..., k, такие, что s^_^, ..., s^ линейно независимы и A^s, = у., i == k — m, ..., k — 1. (a) Получите условие на и. в (8.4.5), такое, что Л. .s. = у., i == k — — от, ..., k — 1. (b) Найдите такой способ выбора v^, что Л^ , заданная в (8.4.5), явля- лось бы решением задачи: найти min || 5—Л, II,-, B^R"xJ' k\\F при условии В е Q (у ., s.), г == k — от, ..., k. 9 Методы секущих для безусловной минимизации В этой главе рассматриваются методы секущих для решения задачи безусловной минимизации. В алгоритмах для этой за- дачи в качестве производных использовались градиент V/(^) и гессиан У^(-к). В алгоритмах минимизации градиент должен быть известен довольно точно как для вычисления направлений спуска, так и для критериев останова. Из гл. 8 читатель мог понять, что аппроксимация по секущим не обеспечивает этой точности. Поэтому в квазиньютоновских алгоритмах аппрокси- мация градиента по секущим не используется. С другой сторо- ны, гессиан можно аппроксимировать с привлечением идей ме- тода секущих почти таким же образом, как аппроксимируется якобиан в гл. 8. Это и является темой настоящей главы. Здесь будут представлены наиболее успешно работающие формулы пересчета по секущим для гессиана и сопутствующая им тео- рия. Формулы пересчета не требуют дополнительных вычисле- ний функции или градиента и вновь приводят к локально (7-сверхлинейно сходящимся алгоритмам. Поскольку гессиан есть не что иное, как якобиан системы нелинейных уравнений ^f(x}=0, его можно было бы аппрокси- мировать, используя технику гл. 8. Однако при этом не учиты- вались-бы два важных свойства гессиана: он всегда симмет- ричен и часто положительно определен. Включение этих двух свойств в аппроксимацию гессиана по секущим — наиболее важный новый аспект главы. В разд. 9.1 вводится симметрич- ная формула пересчета по секущим, а в разд. 9.2—формула, сохраняющая к тому же положительную определенность. По- следняя из формул, называемая положительно определенной формулой пересчета по секущим (или BFGS-формулой),—наи- более успешно работающая на практике формула пересчета по секущим для гессиана. В разд. 9.3 представлен еще один вывод положительно определенной формулы пересчета по секущим, который приводит к доказательству ее локальной сходимости. Вопросы программной реализации обсуждаются в разд. 9.4. ' 9.1, Симметричная формула секущих Пауэлла 233 Глава заканчивается изложением в разд. 9.5 результатов, ка- сающихся глобальной сходимости положительно определенной формулы пересчета по секущим, и кратким обсуждением в разд. 9.6 других аппроксимаций по секущим. 9.1. СИММЕТРИЧНАЯ ФОРМУЛА СЕКУЩИХ ПАУЭЛЛА Предположим, что решается задача: min f: R"^R, iceR" был сделан шаг из Хс в х+ и мы хотим аппроксимировать У^(х+} матрицей Я+, используя технику метода секущих. Сле- дуя рассуждениям разд. 8.1, выясним сначала, что должно представлять собой соотношение секущих. Если представить гессиан как матрицу первых производных для системы нели- нейных уравнений Vf(^)==0, то аналогом соотношения секу- щих (8.1.3) будет Я+^=у„ (9.1.1 а) где s,=x+-x„ yc=V/(^+)-Vf(^). (9.1.1b) Будем называть (9.1.1) соотношением секущих для задачи без- условной минимизации. Заметим, что если Я+ удовлетворяет (9.1.1), то квадратичная модель /п+ (х) = f (л:+) + Vf {х^ (х - х^) +^(х- x^Y Н+ (х - Л4) удовлетворяет соотношениям т+ (х+) == f (х+), Vm+(n:+)==V^(^+) и Vm+(xc) == ^f(xc). Это еще один способ объяснения соотноше- ния (9.1.1). Мы могли бы теперь воспользоваться формулой секущих из гл. 8 для аппроксимации ^2f(x+') по формуле STS "с-с (9.1.2) где Не е R"^ есть аппроксимация \'2f(Xc}. Основная проблема в связи с (9.1.2) состоит в том, что даже если матрица Не сим- метрична, то (H+)i не будет таковой, если, конечно, г/с—HcSc не параллелен Sc. Мы уже выявили несколько причин, по кото- рым аппроксимации гессиана следует быть симметричной. (См., например, упр. 12 из гл. 4.) Поэтому мы стремимся найти Я+, которая бы наряду с (9.1.1) обладала свойством H+=Hr+• Поскольку в гл. 8 проектирование в норме Фробениуса на Q{yc,Sc) оказалось удачным способом пересчета Ас, в целях построения симметричной матрицы (Н+)^ на основе [Н+)\ ра- зумной представляется идея проектирования (Я+) i в норме 234 Гл. 9. Методы секущих для безусловной минимизации Фробенпуса на подпространство S симметричных матриц. Не- трудным упражнением будет показать, что это достигается по- средством следующих действий: (Н \ \ КН \ Л-(Н \Т\—Н i (Ус ~ нcsc) ^ + «с (Ус - W1' {H+h = — ((Л+h + (Я+); } — Яд + ———————————Г————————— • 1 "с "с Теперь (Я+)2 симметрична (как и Не), но она в общем случае не удовлетворяет соотношению секущих. Однако можно было бы рассмотреть продолжение этого процесса, генерируя (Я+)з, (H+)t, ... по формулам (Я+)2^+1 =={H^k + (^^-l-^^-H+^L+i). Здесь каждое {Н+}<цг+\ есть ближайшая в Q(i)c,Sc) матрица к (H+}ik, а каждое {Н+)'цг+2 есть симметричная матрица, бли- жайшая к (Я+)2й+1 (рис. 9.1.1). Как было показано Пауэллом (1970Ь),эта последовательность матриц сходится к „ „ i (Ус - ^А) ^ + s, (у, - H,s,y л+==^с+———————j- ———— {Ус ^C^^S^ ~ГТ—^2—————• ""•1-0' •^с (Л^с) Будем называть формулу пересчета (9.1.3) симметричной формулой секущих^. Она известна как симметричная фор- мула пересчета Пауэлла — Бройдена (PSB). Легким упражне- нием можно убедиться, что Я+, заданная согласно (9.1.3), удовлетворяет соотношению секущих (9.1.1) и Н+—Не есть симметричная матрица ранга два. В действительности Дэннис и Морэ (1977) доказали следующую теорему. ^<?С/с.«с) -^+ ' (//+)4 (Я+)2 Не Рис. 9.1.1. Процесс симметризации, предложенный Пауэллом. ') В оригинале.—symmetric secant update.—Прим. перев. 9.1. Симметричная формула секущих Пауэлла 235 Теорема 9.1.1. Пусть матрица //c^K'^" симметрична, Sc, Ус г R", Sc ^ 0. Тогда единственное решение задачи: найти min \\H—Hc\\p йер"х» при условии Hsc=yc, (Н—Не) симметрична, имеет вид (9.1.3). Доказательство теоремы 9.1.1 аналогично доказательству теоремы 8.1.1 и изложено в общих чертах в упр. 4. Теоре- ма 9.1.1 вытекает также из гораздо более общего результата Дэнниса и Шнабеля (1979), приведенного в гл. 11. Он гаран- тирует, что процесс, изображенный на рис. 9.1.1, будет схо- диться к ближайшей для Не матрице в пересечении двух ука- занных аффинных подпространств. Свойства локальной сходимости квазиньютоновского мето- да, использующего (9.1.3), те же самые, что и у метода секу- щих для систем нелинейных уравнений, поэтому мы ограни- чимся формулировкой приведенной ниже теоремы. Доказатель- ство является обобщением техники из разд. 8.2; оно излагается в общих чертах в упр. 5 и 6. Заметим, что рассматриваемый алгоритм сходится локально к любому изолированному нулю градиента Vf(x), так как от V2/^*) требуется только симмет- ричность и невырожденность, а положительная определенность не обязательна. Теорема 9.1.2 [Бройден, Дэннис и Морэ (1973)]. Пусть /: R"-»-R дважды непрерывно дифференцируема в открытом выпуклом множестве D с: R", и пусть V^s Ыру(Д). Предполо- жим, что существует x„eD, такое, что \^(л'*)=0и V2^'(л"*) не вырождена. Тогда найдутся такие положительные постоянные е и б, что, если \\хц—х^ < е и ||Яо—У2/'^)!^ s$ 6, где мат- рица Но симметрична, симметричный метод секущих Xk+i^Xk—Hk^fiXk), Sk=X^i-Xk, y„=Vf(Xk+t)-Vf(Xk), Н^ ==Н„+ (yk~н^гsl^sтk+lik(Уk-ffkSk)т _ о1 с . SkS (9.1.4a) (9.1.4b) (9.1.4c) 236 Гл. 9. Методы секущих для безусловной минимизации корректно определен, а последовательность {xis} остается в D и сходится <7-сверхлинейно к лс». В этот момент может показаться, что мы достигли всего, чего хотели от аппроксимации гессиана по секущим. Однако симметричная формула секущих имеет одну важную особен- ность, которая на практике отрицательно сказывается на его работоспособности. Матрица Н+, заданная согласно (9.1.3), может не быть положительно определенной, даже если таковой является Не и если в Q(t/e,Sc)nS найдутся положительно опре- деленные матрицы. Рис. 9.1.2 наглядно поясняет причину. Пусть PD есть множество симметричных и положительно опре- деленных матриц, a Q5 = Q(t/c, 5с)П S — аффинное подпростран- ство симметричных матриц, которые удовлетворяют соотноше- нию секущих. Тогда мы видим, что ближайшая к Не матрица в QS может не быть положительно определенной, даже если QS П PD не пусто. Более того, поскольку PD является открытым выпуклым конусом, то может даже и не существовать ближай- шей к Не матрицы в QS П PD. Поскольку ранее уже подчеркивалась важность иметь поло- жительно определенный гессиан модели, хотелось бы, чтобы в рассмотренной выше ситуации Н+ была положительно опре- делена. В разд. 9.2 читатель найдет полезный способ, позволяю- щий этого добиться. Результатом является формула секущих для аппроксимации гессиана, которая оказывается наиболее успешной на практике. Она тоже вносит в Не симметричную поправку ранга два. В заключение упомянем тесно связанную с (9.1.3) формулу, к которой мы хотим еще вернуться в разд. 9.3. Дж. Гринстад- Рис. 9.1.2. Объяснение, почему симметричная формула секущих может не давать положительной определенности. 9.2. Симметричные положительно определенные формулы 237 том (1970) была предложена следующая формула пересчета: ЯТ1 гг-1 +^ - "с Ус) Ус -1- »Л .^ - "с Ус) л + -Не УсУс {Уc^sc-н^\Уc}УcУтc {vW {se-H^y^y^y^-H^y.Y _ ^ус}усутс . (9.1.5) Ус)2 Читатель легко догадается, что (9.1.5) есть результат приме- нения процесса симметризации, изображенного на рис. 9.1.1, к плохой формуле пересчета Бройдена (8.4.2) и что Н~{.1 явля- ется ближайшей к норме Фробениуса матрицей в Q (Яд, i/c)OS к //с"'. Теорема 9.1.2 справедлива также и для этой формулы пересчета, но (9.1.5), конечно, разделяет с симметричной фор- мулой секущих тот недостаток, что она не обязательно дает положительную определенность Н+, даже если Не положи- тельно определена и QS П PD не пусто. Тем не менее, как это будет видно в разд. 9.3, (9.1.5) имеет интересную связь с наи- более успешно работающими формулами секущих для аппрок- симации гессиана. 9.2. СИММЕТРИЧНЫЕ ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННЫЕ ФОРМУЛЫ СЕКУЩИХ В вопросе решения задачи безусловной минимизации с по- мощью квазиньютоновского алгоритма много усилий было на- правлено на достижение выигрыша в эффективности, числен- ной устойчивости и глобальной сходимости, обусловленного симметричностью и положительной определенностью гессиана модели. В этом разделе будет показано, как строить симмет- ричные^ и положительно определенные аппроксимации гессиана по секущим. Мы ищем решение задачи: задано: «с, г/с е R"> sc ?= О, найти симметричную и положительно определенную Я+еР"^, такую, что Н+8с==Ус- (9.2.1) Для обеспечения симметричности и положительной определен- ности матрицы Н+ воспользуемся аналогом распространенного в математическом программировании приема: если некоторая переменная h e R должна быть неотрицательной, то ее заме- няют на j2, где j e R есть новая независимая переменная, на которую теперь не накладывается никаких ограничений. Анало- гично, как нетрудно показать, матрица Н+ будет симметричной и положительно определенной тогда и только тогда, когда Н+ = J+f+ для некоторой невырожденной /+ <= R"^. Таким образом, (9.2.1) можно переписать как: 238 Гл. 9. Методы секущих для безусловной минимизации задано: «с. у с <= К", Sp =/= О, найти невырожденную J^ R"^, такую, что J^s,==y,. (9.2.2) Для любого решения /+ задачи (9.2.2) матрица //+==/+/+ будет решением для (9.2.1). Даже для п = 1 видно, что не существует решения задачи (9.2.2), если г/с =т^ 0 не имеет того же знака, что и Sc. Поэтому мы в первую очередь должны определить условия, при которых (9.2.2) будет иметь решение. Лемма 9.2.1 дает ответ на этот вопрос, а также предлагает процедуру нахождения /+. Лемма 9.2.1. Пусть Sc,z/c<=R", Sc Ф 0. Невырожденная мат- рица /еК"^, такая, что J_,f!is^=y^, существует тогда и только тогда, когда s,y, > 0. (9.2.3) Доказательство. Предположим, что существует невырожден- ная/+, такая, что /,/^5д=г/^. Обозначим Од ==/^. Тогда о<"^=</Л^=^. Это доказывает ту часть леммы, к которой относится выраже- ние «только тогда». Часть, относящаяся к «тогда», доказыва- ется с помощью приведенных ниже выкладок, но прежде мы сделаем некоторое отступление, с тем чтобы обсудить условие ^ > 0. Поскольку ус = Vf(x+}— ^f(xc), то условие (9.2.3) эквива- лентно условию W^)><V^), (9.2.4) которое просто означает, что производная функции f(x) по направлению Sc больше в х+, чем в Хс. Это условие будет обя- зательно выполняться, если алгоритмом обеспечивается выпол- нение нашего второго условия приемлемости шага из разд. 6.3 s^f (x^) > ps^ (^), Р е (О, 1), (9.2.5) которое используется для того, чтобы воспрепятствовать появ- лению исключительно малых шагов. Даже если критерий при- емлемости шага не нацелен явно на выполнение (9.2.5), то производимые нашими алгоритмами шаги будут, как правило, удовлетворять (9.2.4), если только мы не окажемся в области со значительной отрицательной кривизной. Вернемся теперь к первой части доказательства леммы 9.2.1. Она указывает, что для любой /+, являющейся решением 9.2. Симметричные положительно определенные формулы 239 (9.2.2), найдется Vc <= R", такое, что /+^=^ и /^,=Ус- Это подсказывает идею следующей процедуры решения (9.2.2): 1. Выбрать J+^R"-^, такую, что /+vc=yc. Матрица /+ будет зависеть от Vc и г/с. 2. Подобрать Уд так, чтобы /^==u^. Вспомним, в каком месте нашего алгоритма мы находимся, когда хотим найти Я+. Шаг Sc определен с помощью разложе- ния Холесского LcL7: положительно определенного гессиана мо- дели Не. Это, по-видимому, будет полностью соответствовать духу гл. 8, если выбирать матрицу /+ настолько близкой к Lc, насколько это возможно. Это означает, что мы удовлетворим приведенному выше шагу 1, выбирая матрицу V U "г -/» (9.2.6) которая по лемме 8.1.1 является ближайшей к Lc в Q(yc,Vc). Далее шаг 2 требует, чтобы (9.2.7) последнее выполняется, только если при некотором ас s k которого упрощения дает уравнение (9.2.8) . Подстановка (9.2.8) в (9.2.7) после не- "с^с^с-с °с"с"е которое имеет действительное решение тогда и только тогда, когда г/^д > 0, так как s^ff.s, > 0. Мы выберем положитель- ное значение квадратного корня ( Ус^с Y \ s^H.. ) / «Fs- V/2 (9.2.9) •^Л потому что это делает /+ ближе к Lc при г/с s= HcSc. В качестве упражнения предлагается показать, что /+, заданная согласно (9.2.6) и (9.2.9), не вырождена и, таким образом, является ре- шением задачи (9.2.2). Это завершает доказательство леммы 9.2.1, поскольку при любой заданной невырожденной Lc, соглас- но (9.2.6) и (9.2.9), справедливо утверждение части «тогда» леммы 9.2.1. П Итак, выведена симметричная формула секущих, которая всякий раз, когда это возможно, сохраняет положительную определенность путем пересчета сомножителя Lc разложения 240 Гл. 9. Методы секущих для безусловной минимизации Холесского матрицы Не в сомножитель J+, такой, что /4-7+=Я+. Однако действительно полезной для /+ была бы форма нижней треугольной матрицы L+, так как тогда мы имели бы разложение Холесского для Н+. Читатель, по-видимо- му, уже догадался, как получить L+ из /+ за 0(п2) операций, привлекая для этого технику пересчета Q^-разложения, вве- денную в разд. 3.4 и применявшуюся в разд. 8.3. Если для по- лучения y^Q.L^ за О (га2) операций использовать алгоритм АЗ.4.1, то Я^=/^===г-^0^0^.^==г-^г-^, и нет никакой необ- ходимости накапливать Q+. Аналогично, можно получить г^+Д+^-разложение Н+ непосредственно из LeZVJ-разложения Не за 0(п2) операций путем пересчета LDV-разложения. Можно также представить (9.2.6) и (9.2.9) непосредственно в виде формулы пересчета матрицы Не в Н+. Если построить //+=7+7^, используя (9.2.6) и (9.2.9), и вспомнить, чтоЯс== ' LcLc, то в результате получим Н,=Н,+ (9.2.10) Этот вид формулы пересчета [или, что э.квивалентно, заданный равенством (9.3.5)] был независимо предложен в 1970 г. Брой- деном, Флетчером, Голдфарбом и Шанно, и формула пересчета стала известна как BFGS-формула. Мы будем называть ее про- сто как положительно определенная формула секущих1). Про- цедуру прямого пересчета сомножителя Холесского Lc в L+ можно найти в работе Голдфарба (1976). Читатель может убе- диться, что (9.2.10), как и симметричная формула секущих из разд. 9.1, удовлетворяет соотношению H+Sc = Ус, и (Я+—Не) представляет собой симметричную матрицу ранга не более чем два. Является ли вообще пригодной эта положительно опреде- ленная формула секущих? Да, она наилучшая среди известных в настоящее время формул пересчета аппроксимаций гессиана. Это иллюстрируется примером 9.2.2, где применяются квази- ньютоновские методы, использующие соответственно симмет- ричную формулу секущих и положительно определенную фор- мулу секущих для решения той же задачи, которая решалась в разд. 5.5 методом Ньютона. По аналогии с гл. 8 полагаем До = V^Xo). Однако в разд. 9.4 мы увидим, что на практике рекомендуется другая стратегия выбора Ну. Пример 9.2.2. ПуСТЬ ФУНКЦИЯ f(A-,,A:g -Г "2J О == (^i - 2)4 + + (х, — 2)2д:|+ (^2+ I)2- ^)на имеет точку минимума х^ == ==(2,—I)7. В этом случае последовательность точек, выраба- ') В оригинале—positive definite secant update.—Прим. перев. 9.2. Симметричные положительно определенные формулы 241 тываемых положительно определенным методом секущих, Xk+\ == Xk — Hk V^ (Xk), (9.2.11 а) Sk=Xk^—Xk, Уй==УЦА:й+1) -Vf(Xk), (9.2. llb) ff„ „ , yf/k нksksтkнk (9.2.11с) т,. y^k ^"k^ с начальными значениями Хо=(\,1У И Но = ^^(хо) такова (с точностью до восьми значащих цифр на ЭВМ CDC с 14 де- сятичными разрядами): Л-^) Хо = =(1 1 ^ 6.0 ^1 -- =(1 -0.5 ^ 1.5 V2 ~- =(1.45 -0.3875 )т 5.12 X Ю-1 X3 - =(1.5889290, - -0.63729087)'' 2.29 X Ю-1 .\4 =(1.8254150, - -0.97155747)' 3.05 X Ю-2 •^5 =(1.9460278, - -1.0705597 )'' 8.33 X Ю-3 Лб =(1.9641387, - -1.0450875 )' 3.44 X Ю-3 .\7 -(1.9952140, - -1.0017148 )7 2.59 X Ю-5 л». = (2.0000653, - -1.0004294 )г 1.89 X Ю-7 .\-„ =(1.9999853, - -0.99995203)7 2.52 X Ю-9 x\0 = (2.0 -1.0 )' 0 Последовательность точек, которая вырабатывается симметрич- ным методом секущих (9.2.4), использующим те же самые хо и Но, такова: j '(.V t) -^0= =(1 1 )' 6.0 Л"! ~- -(I 0,5 ^ 1.5 ^2 -- =(1.3272727, - 0.41818182^ 6.22 X ,0-1 УЗ = =(1.5094933, - 0.60145121)7' 3,04 X Ю-1 ^4~- =(1.7711111, - 0.88948020)7' 5.64 X Ю-2 -^5 -- =(1.9585530, - 1.0632382 ^ 5.94 X ю-3 Лб = =(1.9618742, - 1.0398148 )г 3.16 X ю-3 Х-, = =(1.9839076, - 0.99851156)1' 2.60 X Ю-4 -\» ~- =(1.9938584, - 0.99730502)7' 4.48 X ю-5 -\9.= ==(1,9999506, - 0,99940456)г 3.57 X ю-7 Л"10 ; = (2.0000343, - 0.99991078)'' 9.13 X ю-9 ^11 : =(2.0000021, - 0.99999965)7" 1.72 X 10-и ^12= = (2.0 -1,0 )'" 0 242 Гл. 9. Методы секущих для безусловной минимизации Для достижения такой же точности методу Ньютона требуется шесть или семь итераций. Причины, по которым положительно определенная формула секущих оказалась столь успешной, все еще до конца не по- . няты, хотя в следующем разделе предлагается этому некоторое объяснение. Там мы также обсудим другой вариант пересчета, вытекающий из рассуждении, аналогичных тем, которые исполь- зуются в настоящем разделе для нахождения Н~^ такой, что /^/^y^^Sc. Результатом является Г_ ,-Т , (Л-^^сХ J+ —L,c -г——————,;——————, Vc / „Т \1/2 -te) L^' -J+J + i (9.2.12) где снова Hc=LcL7:. Можно показать, что использование фор- мулы Шермана—Моррисона—Вудбери (лемма 8.3.1) и (9.2.12) дает ^ ^д- , (Ус - ^А) ^ + у, (у, - H^f (у, - H,s„ s,) y^ г С i Т '/Ti \ п« ii1 о /..I „ V У с3 с (9.2.13) Формулу пересчета (9.2.13) часто называют DFP-формулой по именам ее авторов: Дэвидона (1959), Флетчера и Пауэлла (1963). Она была первой среди всех когда-либо предлагавших- ся формул секущих, причем ее первоначальный вывод пол- ностью отличался от приведенного выше. Как легко показать из (9.2.12), DFP-формула тоже обладает тем свойством, что матрица Н+ положительно определена, если положительно определена Яд, и г/^д > 0. По этой причине мы иногда будем называть данную формулу пересчета обратной положительно определенной формулой секущих'). В начале 70-х годов было проведено множество исследова- ний по сравнению квазиньютоновских методов, использующих две введенные в этом разделе формулы секущих [см., напри- мер, Диксон (1972) и Бродли (1977)]'. Единодушно признается, по-видимому, то, что положительно определенная формула се- кущих (BFGS) работает лучше в совокупности с алгоритмами из гл. 6 и что DFP-формула иногда вырабатывает вырожден- ные с вычислительной точки зрения аппроксимации гессиана. Тем не менее DFP-формула нашла плодотворное применение ') В оригинале—inverse positive definite secant update. — Прим. перев. 9.3. Локальная сходимость 243 во многих хорошо зарекомендовавших себя программах, и в следующем разделе она также будет играть в анализе важ- ную роль. 9.3. ЛОКАЛЬНАЯ СХОДИМОСТЬ ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННЫХ МЕТОДОВ СЕКУЩИХ В этом разделе дается альтернативный вывод положительно определенной формулы секущих и DFP-формулы. Простой спо- соб вывода, приведенный в предыдущем разделе, все же не привел к успеху в анализе сходимости, тогда как способ, рас- смотренный в этом разделе, оказался успешным. Мы увидим, что если применить в задаче минимизации некоторое естествен- ное преобразование пространства переменных, то две симмет- ричные положительно определенные формулы пересчета из разд. 9.2 получаются из двух симметричных формул пересчета, рассмотренных в разд. 9.1, в результате применения последних к преобразованной задаче. Очень тесно с ним связанное пре- образование приводит к результатам, касающимся сходимости. 45; В гл. 7 мы увидели, сколь важно иметь дело с хорошо обус- ловленной задачей минимизации. Задачу минимизации квадра- тичной функции можно было бы считать идеально масштаби- рованной, если бы ее гессиан был единичной матрицей, так как это приводило бы к сферическим линиям уровня и к тому, что методы Ньютона и наискорейшего спуска были идентичны. Это «идеальное» масштабирование будет ключом к нашим выводам формул. В разд. 7.1 было показано, что если преобразовать простран- ство переменных по формуле х=Тх, то в новом пространстве переменных квадратичной моделью в окрестности точки х+ будет т+ (х) = f (Л4) + [T-^f (x}Y (х - х^) + где Н+ есть гессиан модели в исходном пространстве перемен- ных. Это означает, что градиент переходит в T•~~т'^ff(x), а гес- сиан модели—в Т^Н+Т-1. Таким образом, перемасштабирова- ние, приводящее к единичному гессиану модели, построенной в окрестности точки х+, удовлетворяет соотношению Г;rЯ+r+l=/, т. е. H+=TT+T+. Было бы замечательно построить формулу пересчета Не по секущим в пространстве переменных, преобразованном с по- 244 Гл. 9. Методы секущих для безусловной минимизации мощью этой матрицы Г+, так как для получения новой квадра- тичной модели использовалось бы идеальное перемасштабиро- вание. Однако Г+ и Н+ заранее не известны, так что рассмот- рим вместо этого произвольную матрицу масштабирования Т, такую, что rf^HeQiy^s,). Теперь рассмотрим в этом пространстве переменных симметрич- ную формулу секущих из разд. 9.1. Она имеет вид ff S , (yc-^^+M^-W' <У,-ЯД,^4 П^—Пс-Л-———————^———————-———77r7-^2———• ^y••j•l) где 5д — Х^. — Лд — TX^. — ТХц — TS(:, Ус = T~^f (х^) - f-^f (х,) = f^y,, Н, = Т~'Н,Т Н,=Т~'Н,Г Читатель может убедиться, что если воспользоваться приве- денными выше соотношениями, с тем чтобы переписать (9.3.1) заново в исходном пространстве переменных, то в результате получится „ „ , (Ус - ffcSc} ^ + н^ic {Ус - ffc^f {y,-H^s,)Hs^H П 4- == П г 1 ——————————————7~=—————————————— — ——————. __———————— . ^ {s^Hs^ (9.3.2) Поскольку HSc == HTSc == Ус для любой симметричной Н s ^Q(yc,Sc), соотношение (9.3.2) не зависит от конкретных Я или Т и принимает вид {Ус - нc^so) У? + Ус (Ус - нcsc)т {УС - нcsc^ ^) УсУ^ т У с8 с (9.3.3) а это и есть DFP-формула! Заметим, что если бы Н^ было заранее известно, то мы смогли бы воспользоваться матри- цей Г+, такой, что Т\.Т^=Н^., и результат оказался тем же самым. Другой способ изложения состоит в следующем. Если Не симметрична и г/Js^ > 0, то для любого rsR"><", такого, что T^rs Q(t/c, Sc), (9.3.3) является единственным решением за- дачи: найти min Цг"^//.,. — H^T^ip Н^. е R" Х " при условии Н+ eQ(t/c, Sc)nS. (9.3.4) 9.3. Локальная сходимость 245 Это означает, что DFP-формула представляет собой проекцию Не на <3(ус,5с)П5 в рассматриваемой взвешенной норме Фро- бениуса. Если применить то же перемасштабирование, использовать формулу Гринстадта (9.1.5) для пересчета H'c\ в Н+1 и затем произвести обратное преобразование пространства, то в ре- зультате получится -1 „-. , (^-^••W+^-^'V Н =Нс + ————————————f—————————— У^с (9.3.5) Простые, но утомительные выкладки показывают, что (9.3.5) представляет собой выражение, которое получается после об- ращения обеих частей равенства (9.2.10), т. е. Я-представления положительно определенной формулы секущих (BFGS). Таким образом, если Не симметрична и г/^$д > 0, то для любой мат- рицы TsR"^, такой, что Т7'! eQ(t/c,Sc), положительно опре- деленная формула секущих является единственным решением задачи: найти )Т1 min Я+ е R" Х " т(н при условии Я+eQ(t/c, Sc)f15. (9.3.6) Читатель, вероятно, заметил интригующую двойственность, ко- торой пронизан в разд. 9.2 и 9.3 вывод положительно опреде- ленной и обратной положительно определенной формул секу- щих. Поскольку каждая из этих формул пересчета может быть выведена с помощью преобразования (масштабирования) про- странства переменных, для каждой итерации своего, то исполь- зующие их методы называют иногда методами переменной метрики. В доказательстве локальной сходимости положительно опре- деленного метода секущих центральное место занимает идея масштабирования. Доказательство показывает, что последова- тельность аппроксимаций гессиана {Hk} обладает свойством ограниченного ухудшения в виде, приведенном в гл. 8. Для установления этого факта в доказательстве используется взве- шенная норма Фробениуса, подобная (9.3.6), но с заменой Т на Г», для которой Г^Г, = V2^ (x,}. Это как раз то масштабиро- вание, при котором матрица Гессе в точке минимума равна единичной. Если последовательность аппроксимаций гессиана сходится к ^2f{x^), то это есть предел матриц перемасштабиро- вания, которые используются в приведенных выше выводах. Та же техника применяется для доказательства локальной 246 Гл. 9. Методы секущих для безусловной минимизации сходимости DFP-метода. В этом случае используется норма из (9.3.4) с Т, замененным на Г„. Доказательство следующей теоремы основано на технике из разд. 8.2; его можно найти в работе Бройдена, Дэнниса и Морэ (1973). Теорема 9.3.1 (Бройден—Дэннис—Морэ). Пусть выполня- ются условия теоремы 9.1.2 и дополнительно предполагается, что V2f(x^) положительно определено. Тогда существуют поло- жительные постоянные е и 6, такие, что если [!л'о—хЛа ^ е и ||Яо—V2/^.»:») На :$: б, где матрица Ну симметрична, то положи- тельно определенный метод секущих (BFGS) (9.2.11) коррект- но определен, а последовательность {х/г} остается в D и схо- дится <7-сверхлинейно к х^. То же остается в силе, если (9.2.11с) заменить обратной положительно определенной формулой се- кущих (DFP) ^fe+i — Hk-{- (Vk - нksk) УЦ + Vk (Vk - ^fe) {Vk - нksk^ sk) yi/k w Этот результат, касающийся сходимости положительно опре- деленного метода секущих, не является более строгим, чем тео- рема 9.1.2, где сформулирован результат относительно сходи- мости симметричного метода секущих. Однако положительно определенный метод секущих работает на практике значитель- но лучше, что воспроизводится ниже в примере 9.3.2. В этом примере также изучается сходимость последовательности ап- проксимаций гессиана {Я*} к значению гессиана в точке мини- мума V2f{x^). В примере видно на промежуточных шагах, что аппроксимации, генерируемые положительно определенной фор- мулой секущих, более точны, чем генерируемые симметричной формулой секущих. Такое поведение, обычное на практике, час- тично объясняет превосходство положительно определенного метода секущих. Другое преимущество положительно определенного метода секущих связано с выводом формул, с которых начинался этот раздел. Не составит труда показать, что положительно опреде- ленная и обратная положительно определенная формулы се- кущих инвариантны относительно линейных преобразований пространства переменных, тогда как симметричная формула секущих не инвариантна (упр. 13). Благодаря инвариантности, которая разделяется методом Ньютона, но не методом наи- скорейшего спуска, соответствующие машинные программы почти не зависят от масштабирования задачи минимизации. Пример 9.3.2. Пусть f (д:,, ^) =х\+ (л:, + x.^f + (^2 — I)2. Эта функция имеет точку минимума в x^,=(0,0)т. В случаях 9.3. Локальная сходимость 247 л;о=(1, \Y и Хц=(—1, З)7' указанным ниже методам требуется для достижения точности \\Xk—л:*11оо^10-8 следующее число итераций: Число итераций из Метод XQ= =(1, 1)Г XQ= =(-1, 3)^ Метод Ньютона 6 11 Положительно определенный метод секущих, Яп = V2/(-Vo) 13 20 Метод Ньютона Положительно определенный метод секущих, Яо=У^(-Уо) Симметричный метод секущих H^^f(Xo) 14 41 Для Хо==(—1,3)7' ниже приводятся значения Н/г, выраба- тываемые двумя методами секущих на некоторых промежуточ- ных и заключительной итерациях. Значение \f2f{x} в точке ми- нимума равно Г2 21 1-2 4J- Значения l-v'fe+il!s$T: н„ на первой из итераций k, для которых Положительно определенный метод секущих 10- Ю-3 10' я, н 16 я, = 5.485 6.996 6.9961 11.78 J = "2.365 2.264 2.264" 4.160 = "2.009 1.993 1.993~ 4.004 Н-, Н Н 40 ~ Симметричным метод секущих 16.86 11.35 I J1.35 9.645J "3.147 3.783' 3.783 6.797 "2.003 2.021" 2.021 4.143 В примере 9.3.2 заключительное значение положительно определенной аппроксимации по секущим согласуется с \^/2f(x^t) в пределах примерно 0.5%. Такое поведение типично для формул пересчета аппроксимаций гессиана по секущим: заключительное значение Hk часто совпадает с V2^'») в не- скольких значащих цифрах. На практике случаи, когда заклю- чительная аппроксимация гессиана заметно отличается от У2^»), по-видимому, менее распространены, чем случай, когда заключительная аппроксимация якобиана заметно отличается от /(.<»). Одна из причин состоит в том, что, хотя последова- тельность аппроксимаций якобиана по секущим обычно не схо- дится к J{x^), когда некоторые компоненты F(x} линейны (что 248 Гл. 9. Методы секущих для безусловной минимизации мы наблюдали в примере 8.2,7), тем не менее аппроксимации гессиана из этой главы не имеют такой проблемы в аналогич- ном случае, когда у Vf(x) имеются линейные компоненты (см. упр. 14). Это различие обусловлено симметричностью формул пересчета аппроксимаций гессиана. Более подробную инфор- мацию по данному вопросу можно найти в работе Шнабеля (1982). 9.4. РЕАЛИЗАЦИЯ КВАЗИНЬЮТОНОВСКИХ АЛГОРИТМОВ, ИСПОЛЬЗУЮЩИХ ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННЫЕ ФОРМУЛЫ СЕКУЩИХ В этом разделе обсуждаются вопросы включения формул се- кущих в наши квазиньютоновские алгоритмы безусловной ми- нимизации. Поскольку наиболее успешной аппроксимацией по секущим для минимизации оказалась положительно определен- ная формула секущих (BFGS), то именно этой аппроксимацией по секущим снабжены алгоритмы из приложения. Нами пред- ставлены формулы пересчета как в нефакторизованном, так и в факторизованном видах соответственно в алгоритмах А9.4.1 и А9.4.2. Нефакторизованный алгоритм непосредственно реали- зует формулу пересчета ранга два (9.2.10). После обращения к формуле пересчета вызывается процедура обработки гессиа- на модели, которая производит разложение аппроксимации гес- сиана модели по Холесскому. Факторизованный алгоритм реали- зует формулу пересчета в том виде, в каком она была выведена в разд. 9.2. В нем производится одноранговый пересчет Lc в /+ [формулы (9.2.6) и (9.2.9)], а затем вызывается алгоритм A3.4.1 для вычисления нижней треугольной матрицы L,==J.Q Коль скоро L^L^ представляет собой разложение новой ап- проксимации гессиана по Холесскому, то в факторизованной форме формулы пересчета процедура обработки гессиана мо- дели не используется. Основное преимущество факторизованной формулы пере- счета заключается в том, что общая трудоемкость пересчета аппроксимации гессиана и получения его разложения по Хо- лесскому составляет О(га2), тогда как при использовании не- факторизованной формулы пересчета—О (га3). Недостатком яв- ляется то, что для нее добавляется работа по программирова- нию и отладке, особенно если уже написана программа обра- ботки гессиана модели. Кроме того, факторизованную формулу пересчета трудно совместить с криволинейным шагом, так как для этого шага требуется Не в явном виде, а также потому, что обычно имеется возможность записи на место Lc сомножителя разложения Не + а.с1 по Холесскому. По этой причине мы 9.4. Реализация квазиньютоновских алгоритмов 249 ^ рекомендуем факторизованную формулу пересчета для раз- работки программ, использующих линейный поиск или поиск вдоль ломаной, но не для криволинейного шага. Что касается курсовых проектов или предварительной исследовательской ра- боты, то во всех случаях предпочтение может быть отдано не- факторизованной форме. При использовании факторизованной формулы пересчета имеется возможность оценивать число обус- ловленности матрицы Lc, используя для этого алгоритм A3.3.1, и если полученная оценка превосходит величину (macheps)-172, то можно вернуться к матрице Не == LcLc и воспользоваться ал- горитмом А5.5.1 для того, чтобы внести поправку к Не добавле- нием к ней единичной матрицы, умноженной на соответствую- щий скаляр, и Lc заново положить равной сомножителю Хо- лесского, но теперь уже для этого измененного гессиана. Ради простоты мы исключили эту возможность из алгоритмов, при- веденных в приложении. Единственная дополнительная особенность обоих алгорит- мов, реализующих формулу пересчета, состоит в том, что пере- счет не происходит в следующих двух случаях. В первом он пропускается, если s^</p sS; 0, так как иначе Н+ не была бы по- ложительно определенной. В действительности мы пропускаем формулу пересчета, когда (9.4.1) На стадии линейного поиска выполнение этого условия можно фактически всегда предотвратить, используя алгоритм линей- ного поиска A6.3.1mod, который обеспечивает выполнение усло- вия д^г/д^ — O.lv/f^^Sc. Что касается алгоритма доверитель- ной области, то может встретиться ситуация (9.4.1). Во втором случае, если Ус достаточно близко к HcSc, то нет никакой необ- ходимости производить пересчет. Мы пропускаем пересчет, если величина каждой компоненты у с—HcSc оказывается меньше, чем ожидаемый уровень шума в этой компоненте. Необходимо также обсудить вопрос выбора начальной ап- проксимации гессиана Но. В отличие от практики решения си- стем нелинейных уравнений здесь не принято брать Но, равной конечно-разностной аппроксимации гессиана ^{хо). Одна при- чина заключена в стоимости этой аппроксимации с точки зре- ния вычислений функции и градиента. Другая состоит в том, что методы секущих для минимизации исходят из того, чтобм начинать с положительно определенной аппроксимации и за- тем таковой ее поддерживать, а значит, матрица Но должна быть положительно определенной. Однако нет никакой гаран- тии, что V^Xo) будет положительно определена. Если гессиан не обладает положительной определенностью, то, используя 250 Гл. 9. Методы секущих для безусловной минимизации технику разд. 5.5, его можно изменить, внеся некоторое возму- щение, и получить положительно определенную матрицу, но тогда возникает сомнение—а оправданы ли затраты на конеч- но-разностную аппроксимацию. Вместо этого минимизационные алгоритмы секущих приня- то начинать с Но == /. Такая Но, конечно, положительно опре- делена, и это приводит к тому, что первый шаг делается в на- правлении наискорейшего спуска. Вспоминая обсуждение воп- росов масштабирования в разд. 7.1, читатель мог догадаться, что мы обобщаем этот выбор, полагая Яо==Д^, что заставляет делать первый шаг в масштабированном направлении наиско- рейшего спуска. Одна из проблем, связанных с выбором Но == / или D^, со- стоит в том, что при этом не учитывается масштаб f{x). По этой причине ||Яо1| может отличаться от IIV^Xo)!! на много порядков, что потребует от алгоритма чрезмерно большого ко- личества итераций. В целях преодоления этих трудностей пред- лагались различные стратегии; так, Шанно и Фуа (1978а) ис- пользовали частный случай некоторой более общей идеи Орена (1974), производя предварительное умножение Ну на YO= = (г/^5д/5^Дц5д) непосредственно перед первым пересчетом. Это дает то, что Но = уоНо удовлетворяет соотношению ^Яц5ц=5^ г/ц, которое представляет собой некоторый ослабленный вариант соотношения секущих. Если f(x) есть квадратичная функция, то гарантируется, что области, в которых лежат собственные значения Но и V^-to), перекрываются, и вообще это приводит к тому, что значения диагональных элементов Яо в большей степени начинают походить на диагональные элементы \'2f(xo). После такого предварительного умножения производится обыч- ный пересчет. Как показывает вычислительный опыт, эта мо- дификация может улучшить работу минимизационных алгорит- мов секущих. Из-за наличия некоторых небольших трудностей с использо- ванием модификации Шанно и Фуа в нашей модульной системе алгоритмов нами применялась другая модификация. Мы просто полагали Яо=тах{|^о)1, typ^.D^, где typ f есть задаваемое пользователем характерное значение f{x). Эта формула имеет тот очевидный недостаток, что она чувствительна к прибавлению константы к f(x). Тем не менее в экспериментах, выполненных Франком и Шнабелем (1982), она оказалась наиболее успешной среди различных стратегий, включая предложенную Шанно и Фуа. Нашими алгоритмами по вычислению Но являются А9.4.3 в нефакторизованном слу- чае и А9.4.4 в факторизованном случае. Благодаря модульной 9.4. Реализация квазиньютоновских алгоритмов 251 структуре пользователь может также полагать Но равной ко- нечно-разностной аппроксимации гессиана 'v2f(xo)• В примере 9.4.1 применяется положительно определенный метод секущих для решения той же задачи из примера 9.2.2, используя теперь уже Но = I и Но =\f(xo) |/. Результаты ис- пользования Но = \f(xo} \I несколько лучше, чем при Но == ==V2/(д'o), тогда как при использовании Нц=1 они гораздо хуже. Пример 9.4.2 демонстрирует результаты использования Ho=\f(xo)\I вместо Но == V^(xo) на задаче-из примера 9.3.2. При использовании положительно определенной формулы секущих вместо аналитически или конечно-разностно заданного гессиана в наших алгоритмах минимизации не нужно делать каких-либо других изменений сверх тех, что упоминались в этом разделе. Пример 9.4.1. Пусть f(x^,x^=(x^—'2')t+(x^—'2')2x'^+ +(^2+1)2. Точкой минимума здесь является х*=(2,—I)1'. Приведенное ниже количество итераций требуется положи- тельно определенному методу секущих (9.2.11) для достижения точности \\Xk—х^\\ sSs 10~8 при использовании указанных значе- ний Ну: Но Количество итераций ^f(Xo) 1Пл-о)1// 10 8 24 Пример 9.4.2. Пусть f (.г,, х^ =х^+ (л-, + x^f + (е^ — I)2. Точкой минимума здесь является х*==(0,0)7'. Указанное коли- чество итераций требуется положительно определенному ме- тоду секущих (9.2.11) для достижения из хо=(\,1)7' и хо == ==(—1,3)7' точности \\Xk—^J|s^ 10~8 при использовании сле- дующих значений Но: Количество итераций Количество итераций Но при XQ=(I, 1)7' при хц=(—\, З)7' 13 11 20 18 Если Но==1, то полный шаг метода секущих из хо в xi==xy— —^f(xo) приводитк увеличению значения f{x}. 252 Гл. 9. Методы секущих для безусловной минимизации 9.5. ЕЩЕ ОДИН РЕЗУЛЬТАТ, КАСАЮЩИЙСЯ СХОДИМОСТИ ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННЫХ МЕТОДОВ СЕКУЩИХ Пауэллом (1976) был получен сильный результат относительно сходимости положительно определенного метода секущих в случае, когда он применяется к сильно выпуклой функции и ис- пользуется в совокупности с линейным поиском, который удов- летворяет условиям, приведенным в разд. 6.3.1. Этот результат приведен ниже. Поскольку здесь имеется линейный поиск, эта теорема представляет собой результат, касающийся в некото- ром смысле глобальной сходимости положительно определен- ного метода секущих. Она имеет и другую привлекательную особенность: в ней не делается никаких предположений отно- сительно начального значения аппроксимации гессиана Но, за исключением лишь того, что она должна быть положительно определенной. Мы не даем доказательства теоремы 9.5.1, так как оно мало что добавляет к общему представлению, но интересующимся студентам рекомендуется все же его в дальнейшем изучить. Для стимулирования интереса читателя заметим, что остается неизвестным—справедливо ли утверждение этой теоремы для DFP-метода. Теорема 9.5.1 [Пауэлл (1976)]. Пусть выполнены предполо- жения теоремы 9.3.1, и, кроме того, пусть гессиан V2/^) поло- жительно определен для каждого х. Допустим имеются произ- вольные xo^R" и положительно определенная симметричная матрица Но. Пусть последовательность {х/г} определяется соот- ношениями Pk=-н~k\^{xk)' xk+l=xk+^kPk' где Kk выбирается так, чтобы выполнялись (6.3.3) и (6.3.4), значение Kk = 1 используется всякий раз, когда оно допустимо, и Hk+i задается согласно (9.2.11Ь,с). Тогда последовательно- сти {xk} и {Hk} корректно определены, и {xk} сходится (у-сверх- линейно к х». 9.6. ДРУГИЕ ФОРМУЛЫ СЕКУЩИХ ДЛЯ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ Много формул секущих было предложено для минимизации, не считая тех, что уже упоминались в этой главе. По-видимому, ни одна из них не имеет преимущества над положительно 9.6. Другие формулы секущих 253 определенной формулой секущих при использовании их как средств общего назначения. В данном разделе кратко упоми- наются некоторые из этих «других» формул пересчета в боль- шей степени из-за того, что они представляют исторический интерес. До сих пор наши формулы секущих для минимизации пред- ставляли собой симметричные поправки ранга два к Не, кото- рые обеспечивали выполнение соотношения секущих Я+Sc == ус. Не составит труда показать, что существует единственная сим- метричная поправка ранга один к Не, которая удовлетворяет соотношению секущих. Это — симметричная одноранговая фор- мула пересчета (SRl-формула) ff ==// | (Ус — HpSc) (Ус — ffcScf (УС— tfcSc)7^ Sc (9.6.1) Неизбежным недостатком этой формулы пересчета является то, что она не обязательно вырабатывает положительно определен- ную Н+, если даже Не положительно определена и s^ > 0, да и знаменатель иногда оказывается фактически нулевым, тогда как в тех же случаях положительно определенная формула пе- ресчета работает нормально. Бройден (1970) был первым, кто рассмотрел непрерывный класс формул пересчета „ | (УС - HCSc) УС + УС (УС - "С^У '' пс г ———————————^Г-————————— —ф №..) f-^- L У 0s с Ус^ Ус HcSc 1Г Ус \ [ У^с (Ус-^с.^УсУГ W HcSc У "^J' (9.6.2) который включает в себя DFP-формулу при <р == 0, положи- тельно определенную формулу секущих (BFQS-формулу) при ср== 1 и SRl-формулу при ^=s'^H^s^(s'^H^^—sтcУc). Каково бы ни было (peR, матрица Я+((р)—Яс есть симметричная матри- ца ранга два, строки и столбцы которой представляют собой линейные комбинации векторов г/с и HcSc. Были проведены зна- чительные теоретические исследования этого класса формул пересчета и некоторых его обобщений. Они широко обсужда- ются в работе Флетчера (1980). Однако эти исследования не привели к появлению формулы пересчета, которая бы превосхо- дила на практике BFGS-формулу. Интересно, что все представители класса (9.6.2), такие, что Я+(ср)—Не имеет одно положительное и одно отрицательное собственное значение, могут быть эквивалентно выражены как Н — ff Л. (^-/УЛ)^+t'c(^-/W (Ус-^с^с}^ ,Q р. о, ^/+ - tf, + ———————„,——————— -—————————, (9.6.3) 254 Гл. 9. Методы секущих для безусловной минимизации где Vc есть линейная комбинация векторов ус и HcSc [см. Шна- бель (1977) или упр. 22]. В частности, положительно опреде- ленная формула секущих (BFGS-формула) соответствует вы- бору ^^ГГ^+а^^ (9-6-4) где а ===(^5/s7//s У72. Таким образом, положительно опреде- ленную формулу секущих можно получить с помощью рассмот- ренных в разд. 9.3 взвешенной нормы или способа вывода, осно- ванного на масштабировании. С этой целью нужно взять Г^Г равной соответствующей выпуклой комбинации матриц Не и Н+. Другой класс формул секущих для минимизации, который привлек к себе значительное внимание, состоит из так назы- ваемых «проекционных, оптимально обусловленных» формул Дэвидона (1975) [см. также Шнабель (1977)]. Для методов, использующих эти формулы пересчета, могут быть тоже уста- новлены некоторые интересные теоретические свойства, но при численных проверках [см., например, Шанно и Фуа (1978Ь)] они работали не лучше, чем BFGS-метод. 9.7. УПРАЖНЕНИЯ 1. Приведите несколько причин, по которым аппроксимация гессиана по секущим должна быть симметричной. 2. Покажите, что задача найти min [|В—Л|]р при условии, что В симметрична, В е R» Х » имеет решение А+А7' В= 3. Пусть Я+ вычислена по симметричной формуле секущих (9.1.3). Убе- дитесь, что H+Sc = Ус и что Н+ — Не представляет собой симметричную матрицу ранга не более чем два. 4. Докажите теорему 9.1.1. [Указание: воспользуйтесь техникой доказа- тельства теоремы 8.1.1 и покажите, что если Я+ задано согласно (9.1.3) и ffeR"x" таково, что Н — Не симметрично и Hsc = у с, то (H—Hc)Sc= =(H+—Hc)Sc и \\(H—Hc)t\\2^\\(H+—Hc)t\\2 для любого f, такого, что Psc = 0. Затем для завершения доказательства воспользуйтесь упр. 11 из гл. 3.] В упр. 5 и 6 намечается в общих чертах доказательство теоремы 9.1.2. Она взята из работы Бройдена, Дэнниса и Морэ (1973). 5. Пусть Н^. задано согласно (9.1.3), Я, = V2/(ж.) и Рд = / — s^/s^s^. Используя предположения теоремы 9.1.2 и тождество (у. — H,s„\ s7' s„ (у. — Я.5„)7' Р, Н+-Н.^Рс(Нс-Н,)Рс+ \!": г е + с\^ т ' • (9.7.1) s^c ^ 9.7. Упражнения 255 покажите, что Н+ удовлетворяет неравенству || ^ -я. ь < II ^ - я. Иг + i (11 ^ - \ Иг + и \ - \ У- (9-7-2) которое аналогично (8.2.3). Воспользовавшись (9.7.2) и техникой доказатель- ства линейной сходимости метода секущих (теорема 8.2.2), докажите локаль- ную (/-линейную сходимость симметричного метода секущих. 6. Воспользуйтесь (9.7.1) для доказательства более сильного, чем (9.7.2), неравенства II и —Н II <ll? II \ (\\ Ecsc 112 Л2 I 2||^11р ^ KIk ) " + <llFяlcllf-2"^h^lrJ+ + у (II х+ — хЛ + |[ Хс — х„ (9.7.3) где Ее = Не — Н,. Используя (9.7.3) и технику доказательства сверхлиней- ной сходимости метода секущих, докажите локальную (/-сверхлинейную схо- димость симметричного метода секущих. 7. Докажите, что матрица ЯеР"х" положительно определена и сим- метрична тогда и только тогда, когда Н = IP для некоторой невырожден- ной /е R"x". 8. Покажите, что если матрица /+ задана согласно (9.2.6) и (9.2.9) и если H^=L^, то H^.=J^JT^ имеет вид (9.2.10) и не зависит от выбора знака в (9.2.9). 9. Предположим, что HcSc == Ус. Чему равно значение /+, заданное со- гласно (9.2.6) и (9.2.9)? К чему приведет изменение знака в правой части (9.2.9) с плюса на минус? Каким образом это оправдывает выбор знака в (9.2.9) ? ,,.. .s 10. Пусть матрица /_^ задана согласно (9.2.12), Я_^=/^/^ и H^L^. Покажите, что (9.2.12) дает (9.7.4) ^Ус У^с Ус Затем покажите, что матрица (9.7.4) представляет собой обратную к (9,2.13). 11. Покажите, что в обозначениях, следующих за (9.3.1), соотношения (9.3.1) и (9.3.2) эквивалентны. 12. Проработайте доказательство теоремы (9.3.1) с помощью статьи Бройдена, Дэнниса и Морэ (1973). 13. (а) Покажите, что положительно определенная формула секущих ин- вариантна относительно (рассмотренных в разд. 9.3) линейных преобразова- ний пространства переменных, а симметричная формула секущих — нет. (Ь) Выведите несимметричную одноранговую формулу, которая инвари- антна относительно линейных преобразований пространства переменных. 14. (а) Пусть функция f (х^, х^) == х\ + 2x^x^ + 2х^ + х^. 256 Гл. 9. Методы секущих для безусловной минимизации Она имеет минимум в х« = (О, О)7, и ^-[1 П- Для Хо = (1, —1)'' и Яо == Vsf{xcl) покажите, что положительно определенный метод секущих вырабатывает последовательность аппроксимаций гессиана {Hk}. обладающую свойством Нт Яй=У^(х.), k-> 00 и что симметричный метод секущих вырабатывает идентичную последователь- ность итераций {Xk}, но при этом последовательность аппроксимаций гессиа- на {Hi,} обладает свойством lim Я,-[5 5-!. fc->oo LO 7J [Указание: обобщите технику доказательства леммы 8.2.7.] (b) Обобщите п. (а) на случай произвольной задачи, в которой градиент Vf(x) линеен в некоторых из его компонент Vf(x}i, причем Vf(xa) имеет ну- левые значения во всех этих компонентах. (c) Установите экспериментально, как изменятся п. (а) и (b), если Vf(xa) имеет ненулевые значения в тех компонентах Vf(x), которые линейны. 15. Дана функция /(х,, л:,) = xf + ;»t| + .4 Она имеет минимум в х» == (О, О)7', и w«.>-[^ ^. Для Ха = (0, —l)7 и Яо == / покажите, что положительно определенный ме- тод секущих и симметричный метод секущих вырабатывают идентичные по- следовательности точек {Xk} и аппроксимаций гессиана {Я*}, а также, что Urn^m. fe->°0 LU_^J 16. Запрограммируйте минимизационный алгоритм из приложения А, ко- торый использует положительно определенную формулу секущих. Сделайте прогон вашего алгоритма на какой-либо тестовой задаче из приложения В. Затем замените формулу секущих в вашем алгоритме конечно-разностной формулой аппроксимации гессиана (оставляя при этом неизменной остальную часть алгоритма) и сделайте заново прогон вашего алгоритма на той же самой задаче. Как соотносятся количества итераций, требуемых этими двумя методами для решения одной и той же задачи? Как соотносятся количества вычислений функции и градиента? (Не забудьте учесть вычисления функции и градиента, потребовавшиеся при конечно-разностной аппроксимации гессиа- на.) Как соотносятся длительности счета? 17. Запрограммируйте минимизационный алгоритм из приложения А, ко- торый использует положительно определенную формулу секущих и модифи- цированный линейный поиск. Сделайте прогон вашего алгоритма на той же самой тестовой задаче из приложения В. (а) Как часто происходит обращение к этой модификации линейного по- иска, т. е. как часто точка х+, которую дает традиционный линейный поиск, не удовлетворяет неравенству . V/ (x+f (х+ - Хс) > (0.9) 7/ (xcf (х+ - Хс) ? 9.7. Упражнения 257 (b) Насколько близким в ваших тестовых задачах оказываете,' послед- нее значение Hie к V2f(x/t)? Попробуйте найти случаи, в которых это расхо- ждение велико. 18. Пусть f: R"-»-R есть положительно определенная квадратичная функция с гессианом Я е R"x", Хс и л-+— две произвольные несовпадающие точки в R", s == х+ — Хс, у = Vf(x+)—Vf{Xc). Покажите, что диапазон собственных значений матрицы Я содержит собственное значение матрицы (sWV. 19. Что представляет собой шаг метода секущих х,-=Хц—Яп'1^^,,) для задачи и начальных точек из примера 9.4.2, если ffy='\f(xo) |/? А если Яд==/? Прокомментируйте результаты сравнения. 20. Покажите, что Я+, заданная согласно (9.6.1), является единственной матрицей, для которой Я+Sc = ус, и (Я+ — Не) представляет собой симмет- ричную матрицу ранга один. 21. Убедитесь, что SRl-формула (9.6.1) соответствует выбору (р == =^А/№^-^) в (9.6.2). 22. (а) Покажите, что если о с = у с + сгЯдЯс, где cr — решение любого из уравнений т т ± (У^с} (^^л} о (у, - ff^f s, + у^ = I . н ,т » О-7-5) scнcsc+^f(Уc-нcsc} sc то (9.6.3) совпадает с (9.6.2). (b) Воспользуйтесь (9.7.5) и докажите, что положительно определенная формула секущих [ф = 1 в (9.6.2)] эквивалентна (9.6.3) при Vc, заданном согласно (9.6.4). 9 Зак. ббо Заключительное программное замечание На этом завершается изложение основного материала книги, посвященного методам решения задач безусловной оптимизации и нелинейных уравнений малой и средней размерности без специальной структуры. В последних двух главах обсуждаются обобщения этих методов на задачи, существенной осо- бенностью которых является их специальная структура. Важным примером служит задача оценивания параметров по нелинейному принципу наимень- ших квадратов. Это частный случай безусловной минимизации, который со- ставляет тему гл. 10. В гл. 11 рассматривается более общий класс задач, где часть матрицы производных определяется легко, а остальная часть — нет. К этой категории относятся задачи с разреженной матрицей производных. Мы кратко обсуждаем разреженные задачи, а затем даем вывод и анализ сходимости методов секущих с минимальными поправками, справедливые для любой задачи из указанного общего класса. 10 Нелинейная задача о наименьших квадратах В этой главе обсуждается решение нелинейной задачи о наи- меньших квадратах, введенной в гл. 1. Эта задача тесно свя- зана с задачами безусловной минимизации и решения нелиней- ных уравнений, которые уже обсуждались в книге, и проработка материала будет состоять главным образом из применения пред- ставленной нами методики. В разд. 10.1 заново вводится нели- нейная задача о наименьших квадратах и обсуждаются произ- водные, имеющие далее для нас важное значение. В разд. 10.2 и 10.3 объясняются два различных подхода к построению алго- ритмов для нелинейной задачи о наименьших квадратах. Пер- вый из них наиболее тесно связан с решением систем нелиней- ных уравнений и приводит к алгоритмам Гаусса — Ньютона и Левенберга—Маркварта. Второй, тесно связанный с безуслов- ной минимизацией, приводит к методу Ньютона для нелиней- ных наименьших квадратов, а также к успешно работающим методам секущих. Конечно, методы этих двух типов тесно свя- заны друг с другом, и нами используется эта связь. В разд. 10.4 кратко упоминаются некоторые другие аспекты проблемы не- линейных наименьших квадратов, включающие критерии оста- нова и обработку смешанных линейно-нелинейных задач о наи- меньших квадратах. 10.1. ПОСТАНОВКА НЕЛИНЕЙНОЙ ЗАДАЧИ О НАИМЕНЬШИХ КВАДРАТАХ Нелинейная задача о наименьших квадратах имеет вид m найти mms(x}=-R(x)TR(x)==-lУr^(x)2, (10.1.1) .sR" 2 2^ где m > п, функция невязки /?:R"-»-R'" 9* 260 Гл. 10. Нелинейная задача о наименьших квадратах нелинейна по х, и через ri(x) обозначена г-я компонента функ- ции R(x). Если R(x) линейна, то (10.1.1) представляет собой линейную задачу о наименьших квадратах, решение которой обсуждалось в разд. 3.6. Нелинейная задача о наименьших ква- дратах обычно возникает из приложений, связанных с наилуч- шим приближением данных, где стараются наилучшим образом приблизить данные (ti, yi), l-==\, ..., т, с помощью модели т(х, <)'), которая нелинейна по х. В этом случае ri(x)= =m(x,ti}—yi и нелинейная задача о наименьших квадратах заключается в таком выборе х, что приближение является на- столько близким к данным, насколько это возможно с точки зрения минимизации суммы квадратов невязок п(х}. Обычно т гораздо больше, чем п (например, п ==5, т == 100). Выбор сум- мы квадратов в качестве меры для наилучшего приближения данных оправдывается статистическими соображениями [см., например, Бард (1970)]. В статистической литературе, однако, та же задача записывается так: п найти min 5(Р)==-У(ПР, ^)-^)2, ^р 2 ^ где р есть переменная, состоящая из р параметров, ^((3, х)— моделирующая функция, и имеется набор данных, представляю- щих собой п точек (xi, г/,), .^•еР'", г/i-sR, m^l. (Иногда вместо S и р используются другие символы.) В целях согласова- ния обозначений с остальной частью книги мы будем использо- вать принятую в численном анализе запись (10.1.1). Нелинейная задача о наименьших квадратах исключительно тесно связана с ранее изучавшимися в этой книге задачами. Так, при т == п она включает в себя как частный случай задачу решения системы нелинейных уравнений, и для любого значе- ния т она представляет собой лишь частный случай задачи безусловной минимизации. Причины, по которым мы не реко- мендуем решать ее с помощью программ безусловной миними- зации общего назначения, станут ясными далее в этой главе. Главным образом это—желание учесть специальную структуру (10.1.1). Приступая к делу, исследуем производные функций R(x) и f(x)==—R(x}TR(x). Пример нелинейной задачи о наи- меньших квадратах и ее производных дан в конце этого раздела. Матрица первых производных для R{x)—это просто матри- ца Якоби /(^eR"^", где J{x}l!=дгl{x}/дx,. Таким образом, аффинной моделью функции R(x) в окрестности точки Хс будет М, (х) = R (х,) + / (х,) (х - х,), )) Не следует путать обозначаемые одним и тем же символом m количе- ство элементов в наборе данных и модель. — Прим. перев. 10.1. Постановка нелинейной задачи 261 что является обобщением на случай m ^= п аффинной модели для системы нелинейных уравнений, которой мы пользовались на протяжении всей книги. Эта модель будет базовой для об- суждаемых в разд. 10.2 методов, которые связаны с интерпрета- цией нелинейной задачи о наименьших квадратах как переопре- деленной системы уравнений. В разд. 6.5 мы видели, что первой производной от f{x)== =-^R(x)TR(x) является Vf (х) == Е ri (х) • V/-, (х) = J (хУ R {х). «=| Аналогично, вторая производная m ^f (х) == Е (V/-, (х) • W, {xY + г, (х} • V2^ (х)): <=1 ==/(x}TJ(x)+S(x), где обозначает в \^(х} информацию о производных второго поряд- ка. Тогда квадратичной моделью для f(x) в окрестности Хс будет ^ (х) = f (х,} + Vf W {х - х,) + у (х - x,Y ^f (х,)[(х - х,) == = у R {Хс7 R (Хс} + R (х,У J (х,} (х - х,}\ + + J (х - x,Y (J (x,Y J (х,) + 5 (х,)} (х - х,), (10.1.2) что представляет собой специальную форму квадратичной мо- дели для минимизации целевой функции вида (10.1.1), получен- ную из разложения в ряд Тейлора. Согласно (10.1.2), метод Ньютона применительно к (10.1.1) имеет вид x+==x,-(!(x,)т/(x,)+S(x,))~\J(x,)TR(x,). (10.1.3) Несомненно, (10.1.3) был бы быстрым локальным методом для нелинейной задачи о наименьших квадратах, так как он является локально (/-квадратично сходящимся при стандартных предположениях. Трудность полномасштабного использования ньютоновского подхода состоит в том, что S(x) обычно либо от- сутствует, либо получение ее затруднительно, а аппроксимация 262 Гл. 10. Нелинейная задача о наименьших квадратах с помощью конечных разностей слишком дорога. Хотя аппрокси- мация по секущим часто используется на практике, применять ее ко всему выражению У2/^') нежелательно, поскольку часть этого выражения — J (х)7"/ (х)— будет в нашем распоряжении. Это связано с тем, что матрица 1(х) должна быть обязательно вычислена (аналитически или с помощью конечных разностей) при вычислении Vf(x). Методы разд. 10.3 будут относиться к методам безусловной минимизации, несмотря на то что мы бу- дем использовать структуру квадратичной модели (10.1.2) при решении нелинейной задачи о наименьших квадратах в случае, если S(x} недоступна в аналитическом виде. Обсуждая различные методы для нелинейной задачи о наи- меньших квадратах, мы хотим различать между собой задачи с нулевой невязкой, малой невязкой и большой невязкой. Эти термины относятся к значению R(x) [или f(x)} в точке мини- мума х» для (10.1.1). Задача, для которой R(x^}=0, называется задачей с нулевой невязкой; применительно к наилучшему при- ближению данных это означает, что модель т(х^, t) точно при- ближает yi в каждой точке набора данных. Различие между за- дачами с малой и большой невязкой мы поясним в разд. 10.2. Окажется, что методы из разд. 10.2 работают лучше на задачах с нулевой и малой невязкой, чем на задачах с большой невязкой, тогда как методы из разд. 10.3 одинаково эффективны во всех этих случаях. Пример 10.1.1. Предположим, что мы хотим наилучшим об- разом приблизить данные (ti, yi), i= 1, ..., 4, с помощью мо- дели от (х, t) == е'-"' + е1"1 исходя из принципа нелинейных наи- меньших квадратов. Тогда R: R"->R\ ri(x}=ei ''= 1, ..., 4, и нелинейная задача о наименьших квадратах со- стоит в минимизации f(A:)=-g-^?(д;)г^?(л;).Taким образом, J{x')f= Г t^1 f^t^ 1,е^ Кроме того, V/ (х) е= R2, Vf (xf == R (xfJ(x) == ft r, (x) ^'\ Z ri (x) tie^} \t'=i 1=1 •/ 2, fix, tV^. Г tie1 [ Q ^ Vf (x) u v^WesR^2. Используя V^)= 10.2. Методы типа Гаусса—Ньютона 2б5 и 5 (х) == Z Li/". (х) V^i (x), имеем ^f(x)==J(xYJ(x)+S{x)== 4 10.2. МЕТОДЫ ТИПА ГАУССА—НЬЮТОНА Первый из рассматриваемого нами класса методов решения не- линейной задачи о наименьших квадратах получается в резуль- тате использования аффинной модели для R(x) в окрестности Хс: (10.2.1) где М,: R"->R"1 и т>п. Мы не можем в общем случае рассчитывать найти х+, для которого Мс {х+) == 0, так как это—переопределенная система линейных уравнений. Однако логичным здесь будет способ ис- пользования (10.2.1) для решения нелинейной задачи о наимень- ших квадратах, состоящий в выборе в качестве следующей ите- рации х+ решения линейной задачи о наименьших квадратах: найти min -5-1| Мс (х) ||2 А, те (х). хе=К'1 (10.2.2) Предположим, что J(xc) имеет полный столбцовый ранг. Тогда, как мы убедились в разд. 3.6, решением для (10.2.2) яв- ляется х,. = х, - (У (x,)TJ(x,}Г\ J {x,Y R (х,). (10.2.3) Обычно мы, конечно же, не вычисляем х+ согласно (10.2.3), а вместо этого всегда решаем (10.2.2), используя Q^-разложение для J{Xc). Итерационный метод, состоящий в использовании (10.2.3) на каждой итерации, называется методом Гаусса—Ньютона. Для того чтобы понять его поведение вблизи решения х^ задачи (10.1.1), сравним его с методом Ньютона для нелинейных наи- меньших квадратов, заданным формулой (10.1.3). Два выраже- ния отличаются лишь членом S(x), входящим в методе Ньютона в матрицу вторых производных J (xc)TJ (хс)+S(xc), но зато опу- щенным в методе Гаусса—Ньютона. Другими словами, един- ственное различие между квадратичной моделью тс(х), (10.1.2), из которой получается метод Ньютона, и квадратичной моделью /"(.(А:), (Ю.2.2), которая дает метод Гаусса—Ньютона, состоит 264 Гл. 10. Нелинейная задача о наименьших квадратах в том, что слагаемое, соответствующее S{Xc} в У2/'^), отсут- ствует в гНс(х). Поскольку метод Ньютона в рамках стандарт- ных предположений сходится локально и ^-квадратично, то, как читатель мог догадаться, успех применения метода Гаусса— Ньютона будет зависеть от того, насколько важным оказыва- ется опущенное слагаемое S{xc), т. е. от того, насколько боль- шой вклад оно вносит в V'гf(xc)=J(xc}TJ(xc)-sгS{xc). Это по существу подтверждается теоремой 10.2.1 и следствием 10.2.2. В них показано, что если S(x*)=0, то метод Гаусса—Ньютона тоже сходится (/-квадратично. Это происходит в том случае, когда R{x) линейно, или когда имеет место задача с нулевой невязкой в решении. Если 5(х») мало по сравнению с / (х«)г/ (х»), то метод Гаусса—Ньютона сходится локально (/-линейно. Однако если S(x») слишком велико, то метод Гаус- са — Ньютона может вообще не быть локально сходящимся. Да- лее, сразу после следствия 10.2.2, мы прокомментируем эти ре- зультаты. Теорема 10.2.1. Пусть R: R"-^R'", и функция f(x}== = -у- R (х)7' R (х) дважды непрерывно дифференцируема в откры- том выпуклом множестве D e R". Предположим, что /(х)е sLip^(D), причем |Щх) На sS, а для всех х <= D, а также, что существуют х, е D и Л,, сг^О, такие что / (л;.)7' R (х.) = О, К—наименьшее собственное значение для J (хУ J (х^}, и ][ (/ (х) - / (x.)f R (х.) |Ь < a 1] х - х. Ib (10.2.4) для всех xeD. Если а <: 'К, то для любого с<=(1Д/о) сущест- вует е >• О, такое, что для всех Хо е N(x,f, е) последовательность, порожденная методом Гаусса — Ньютона ^+i ==^-{J WJ (х,))-'3 (XkY R (x,), корректно определена, сходится к х« и удовлетворяет неравен- ствам (10.2.5) 112. (10.2.6) \xk+\ доказательство. Доказательство проводится по индукции. Мы можем предположить, что К > о ^ 0, так как утверждения теоремы относятся только к этому случаю. Пусть с есть фикси- рованная константа из интервала (1, К/с), выражения /(хо), R{xo) и R(x^) для краткости обозначены соответственно через /о, RO и R*, и через || • || обозначена векторная и матричная 10.2. Методы типа Гауссам—Ньютона 265 /2-нормы. Согласно знакомым теперь нам доводам, существует ei > 0, такое, что /д7д не вырождена и Пусть !№)'|<Т Для всех Хо е W (^, ei). (10.2.7) e==min{e„ -^Ч- (10.2.8) Тогда на первом шаге x^ корректно определено и x^ — х^ == XQ — х^ — (7(/n) Ai^o^ --W'W+W^-^}- = - (W № - ^ (^ - ^ - /о (^ - ^о))]. (10.2.9) По лемме 4.1.12 ll^.-^o-/o(^-^)IK-Ill^-^112. (10.2.10) Из (10.2.4), вспоминая, что / {хУ R (х,) = 0, имеем (10.2.11) Объединяя (10.2.9), (10.2.7), (10.2.10), (10.2.11) и неравенство || /о II ^ ct, получим О ^"« ••0) что доказывает (10.2.5) для случая /;==0. Из (10.2.8) и приве- денного выше соотношения имеем 1 II ^- и II Г ест | сау 11 iil ^ 1 ^1 - ^JK II XQ - А-. |] [^- + ^- II Хо - X, Ц < сау ^Г"" А, — со "ЗГ [ест , л — ест'] _ тч ~w~\ ~ ест + ^ 2Г— |у __ Г II <-^ 11 f __ t- II I XQ — Х^ || <. || XQ — Х^ |[, что доказывает (10.2.6) для случая k == 0. Аналогичным обра- зом проводится шаг индукции. D Следствие 10.2.2. Пусть выполнены предположения теоремы 10.2.1. Если R{x^)=0, то существует е > 0, такое, что для всех Xoe:N(x^, е) последовательность {xk}, порожденная методом Гаусса — Ньютона, корректно определена и сходится <7-квадра- тнчно к х». 266 Гл. 10. Нелинейная задача о наименьших квадратах Доказательство. Если R(x,)==0, то в (10.2.4) можпп поло- жить о равным нулю. Тогда, согласно (10.2.6), последователь- ность {xk} сходится к л:„ а согласно (10.2.5), скорость сходи- мости будет ^/-квадратичной. D Из теоремы 10.2.1 видно, что метод Гаусса—Ньютона не столь хорош, как большинство ранее рассмотренных в книге локальных методов, потому что на многих задачах с невырож- денной матрицей / (х»)7'/(А-„) он обладает невысокой локальной сходимостью, а на некоторых из них он вообще не является локально сходящимся. Константа о, входящая в (10.2.4), играет решающую роль в доказательстве сходимости и заслуживает дальнейшего исследования. Удобно рассматривать а как обозначение для ||S(A-*)]|2, так как для х, достаточно близких к д'„ можно показать в качестве упражнения, что (/ (х) - 1 W R (х.) ^ S (х.) (х - х.). Из этой интерпретации, равно как и из (10.2.4), а является аб- солютной совокупной мерой нелинейности и величины невязки в решении задачи. Так, если функция R(x) линейна или R{x^)== =0, то непосредственно из (10.2.4) следует, что а==0. Отно- шение б/К, которое для гарантии сходимости должно быть меньше 1, может рассматриваться как относительная совокуп- ная мера'нелинейности и величины невязки в решении задачи. Таким образом, теорема 10.2.1 утверждает, что скорость сходи- мости метода Гаусса—Ньютона уменьшается с ростом относи- тельной нелинейности или относительной величины невязки в решении задачи, причем если любая из этих двух величин слиш- ком велика, то метод может вообще не сходиться. Иначе говоря, это указывает на то, что чем больше S(x^ по сравнению с J(x^тJ(x^, тем, вероятно, хуже будет работать метод Гаусса- Ньютона. Хотя метод Гаусса — Ньютона имеет ряд проблем, он служит основой для некоторых важных и успешно работающих практи- ческих методов решения нелинейных задач о наименьших ква- дратах В табл. 10.2.3 подытожены преимущества метода Гаус- са—Ньютона, которые желательно сохранить, и недостатки, ко- торые хотелось бы преодолеть. В примерах 10.2.4 и 10.2.5 по- казано поведение метода Гаусса—Ньютона на простой задаче с одной переменной. В примере 10.2.4 исследуется поведение метода Гаусса- Ньютона при наилучшем приближении моделью е1" == у набора данных вида (t,y): (1,2), (2,4), (3, уз) для различных значе- ний Уз Когда уз ==8, модель точно приближает данные при л-, =Лп 2 а; 0.69315, и в этом случае метод Гаусса—Ньютона сходится квадратично. По мере уменьшения уз оптимальное зна- 10.2. Методы типа Гаусса—Ньютона 267 Таблица 10.2.3. Преимущества и недостатки метода Гаусса — Ньютона Преимущества 1. Локальная ^-квадратичная сходимость для задач с нулевой невязкой в решении. 2. Быстрая локальная (у-яинейная сходимость для задач, кото- рые не являются слишком нелинейными или имеют в решении достаточно малые невязки. 3. Решает линейную задачу о наименьших квадратах за одну итерацию. Недостатки 1. Медленная локальная д-линейная сходимость на задачах, ко- торые довольно нелинейны или имеют в решении достаточно большие невязки. 2. Отсутствие локальной сходимости на задачах, которые сильно нелинейны или имеют в решении очень большие невязки. 3. Не является корректно определенным, если I{Xk) не имеет полного столбцового ранга. 4. Не гарантирована глобальная сходимость. чение Хц. становится все меньше, невязка R(x^) в решении—все больше и эффективность метода Гаусса — Ньютона ухудша- ется. При уз = 3 и уз ==—1 метод Гаусса—Ньютона является все еще линейно сходящимся, хотя в последнем случае сходи- мость очень медленная. В случаях уз = —4 и уз == —8 метод Гаусса — Ньютона вообще не сходится локально. Для сравнения в примере 10.2.4 показано также поведение метода Ньютона для нелинейных наименьших квадратов (10.1.3) на всех этих задачах. Тогда как действие метода Гаусса — Ньютона сильно зависит от размера невязки, для метода Ньюто- на это не существенно, и он работает нормально на всех этих задачах. Для каждой задачи мы рассматриваем две начальные точки: XQ = 1 и значение хц, отличающееся от х« не более чем на 0.1. Поведение алгоритмов при начальной точке, более близ- кой к решению, наилучшим образом передает их свойства локальной сходимости. Пример 10.2.4. Пусть R: R'-^R4, г,(х)==е' -У{, г==1, ...,4, f{x)==-^R(x)TR{x), где ^=1, </i=2, /2==2, y,=4, /з==3, и пусть г/з и х» принимают значения, указанные в таблице. Тогда метод Гаусса — Ньютона (10.2.3) и метод Ньютона (10.1.3) требуют следующего числа итераций для достижения на каждой из этих задач точности IWOQe) К 10~10 на ЭВМ CDC с 14 + десятичными разрядами. Для каждой задачи также указаны точка минимума х, функции / (х) и величина невязки в реше- нии f(x,). 268 Гл. 10. Нелинейная задача о наименьших квадратах Количество итераций,требуемое для достижения точности (УЛ^ЖКУ^методом Ул XQ секущих Ньютона X* /(.V,) 8 1 6 7 • 0.69315 0 0.6 5 6 3 1 8 9 0.44005 1.6390 0.5 4 5 -1 1 11 10 0.044744 6,9765 0 5 4 -4 1 13 12 -0.37193 16.435 -0.3 6 4 -8 1 15 12 -0.79148 41.145 -0.7 8 4 В примере 10.2.5 более детально изучаются случаи из при- мера 10.2.4, когда метод Гаусса—Ньютона не сходится. Пример 10.2.5. Пусть f (x} задано, как в примере 10.2.4. Если г/з=—4, то л:.== — 0.3719287. Пусть л;о=^+б, тогда для достаточно малого [ 6 | метод Гаусса — Ньютона дает х^Хо— (3.20) 6, так что | A-i — х,\ s^ (2.20) | Ху — л'. \. Таким образом, х\ находится дальше от х^, чем Ху. Например, если Хц=—0.3719000, то л:, ==—0.3719919. Если г/з==—8, то х^= —0.7914863, и тогда для XO==J(",+^ лри достаточно малом |6| метод Гаусса—Нью- тона дает х^хц- (7.55) б, Например, если Хо == так что [xi—х»\^= (6.55) |хо—х^\ ==—0.7915000, то л:1=— 0.7913968. Интересной особенностью примера 10.2.5 является то, что метод Гаусса—Ньютона делает плохие шаги, выбирая их слиш- ком большими по длине, но верными по направлению. Этот факт может заинтересовать читателя: действительно ли шаг по методу Гаусса—Ньютона всегда делается в направлении спуска? Это, в самом деле, имеет место всякий раз, когда шаг корректно определен. Доказательство является как раз обобще- нием доказательства из разд. 6.5 того, что шаг метода Ньютона при решении нелинейных уравнений является направлением спуска для соответствующей задачи минимизации. Если /(Хс) имеет полный столбцовый ранг, так что матрица J(xc)TJ(xc) не 10.2. Методы типа Гаусса—Ньютона 269 вырождена, а шаг метода Гаусса — Ньютона So==-(J(^УJ(x,))-lJ{x,)TR(x,) корректно определен, то J(xc)TJ(xc) положительно определена и выполняется соотношение W (ХсУ SG == [/ (x,Y R (л:,)]2' [- (/ (х,У / (x,))-1 J (x^ R {x,)} = = - [R {Xcf J (^)f (/ (x,f / {x,}) [J (X,)7 R (x,)] < О, которое доказывает, что шаг метода Гаусса — Ньютона нахо- дится в направлении спуска. Это указывает на два возможных пути улучшения алгоритма Гаусса—Ньютона: использование его с линейным поиском или со стратегией доверительной об- ласти. Эти два подхода приводят к двум алгоритмам, которые применяются на практике. Алгоритм, использующий метод Гаусса — Ньютона с линей- ным поиском, это просто x^=x,-^(J{x,}т/{x,})~\J{x,)TR(x,), (10.2.12) где Кс выбирается методами разд. 6.3. Будем называть (10.2.12) демпфированным методом Гаусса—Ньютона. К сожалению, в некоторых работах его называют методом Гаусса — Ньютона. Поскольку демпфированный метод Гаусса — Ньютона всегда делает шаги в направлении спуска, которые удовлетворяют кри- терию линейного поиска, то метод локально сходится почти на всех нелинейных задачах о наименьших квадратах, включая задачи с большой невязкой в решении или сильно нелинейные задачи. Действительно, по теореме 6.3.3 он обычно сходится гло- бально. Однако он все же может сходиться очень медленно на тех задачах, на которых метод Гаусса — Ньютона сталкивался с трудностями. Например, если (10.2.12) применяется в четвертой задаче примера 10.2.4 и используется простой линейный поиск с делением пополам [т. е. используется первое подходящее зна- 1 1 чение Кс то, начиная ,с из последовательности!,—, —, -а...) из точки с Хо == —0.3, алгоритму требуется все же 44 ите- рации, 45 вычислений J {x} и 89 вычислений R(x) для достиже- ния точности |У/(д:с)|^ Ю-"10, в то .время как методу Ньютона требуется 4 итерации! Кроме того, демпфированный алгоритм Гаусса — Ньютона все же не будет корректно определенным, если f(xc) не имеет полного столбцового ранга. Другая из предлагаемых нами модификаций алгоритма Гаусса — Ньютона состоит в выборе х+, согласно подходу «мо- дель—доверительная область»: найти min _ || R (Хс} + J (Хс) {х+ — Хс) Иг x,<=f при условии || х+ — Хс Из ^ бд. (10.2.13) 270 Гл. 10. Нелинейная задача о наименьших квадратах Как следствие из леммы 6.4.1, легко получить решение для (10.2.13) в виде х+ = х, - (J (х,)Ч(х,) + ^/)-' J(x^R {x,), (10.2.14) где Цс=0, если 6с S& II (J {хс)Ч(Хс))-Ч{ХсУР(Хс)\\2, и ^>0 в противном случае. Формула (10.2.14) была впервые предложена Левенбергом (1944) и Марквартом (1963) и теперь известна как метод Левенберга—Маркварта. Много версий метода Ле- венберга—Маркварта было реализовано в виде программ, ис- пользующих различные стратегии выбора ^с. Так, реализация формулы (10.2.14) в виде алгоритма доверительной области, где ^с и бс выбраны по способам из разд. 6.4.1 и 6.4.3, принадлежит Морэ (1977). (Морэ использует масштабирование доверитель- ной области, как это описано в разд. 7.1.) Шаг х+—Хс, задан- ный согласно (10.2.14), может быть вычислен более точно путем решения эквивалентной линейной задачи о наименьших квадра- тах (см. упр. 12). Свойства локальной сходимости метода Левенберга—Марк- варта аналогичны свойствам метода Гаусса—Ньютона и при- ведены в теореме 10.2.6. Теорема 10.2.6. Пусть выполнены условия теоремы 10.2.1 и последовательность {^} неотрицательных действительных чи- сел ограничена сверху числом Ь > 0. Если а <: К, то для любого се(1, (^+^)/(а+&)) существует s > 0, такое, что для всех Xo^N(x», e) последовательность, порождаемая методом Левен- берга — Маркварта ^.+i == ^ - (/ W J (^) + ^Л~' J (xkV R (xk\ корректно определена и удовлетворяет соотношениям х. с (о +Ь) са\ 11 v r II <- ^.О+^+^+Ь} „ „ „ „ II -^+1 — x, Ik ^ ———2(А,+&)——— г k ~ xt l12 < " k ~ ••112' Если /?(лс.)=0 и ^k=0(\\J{Xk}TR(Xk}\\2}, то {х„} сходится (/-квадратично к л'». Доказательство. Оно представляет собой простое обобщение теоремы 10.2.1 и следствия 10.2.2. См. также работу Дэнниса (1977). П В теореме 10.2.5 говорится, что алгоритм Левенберга— Маркварта может все же быть медленно локально сходящимся на задачах с большой невязкой в решении, а также на сильно нелинейных задачах, и иногда это действительно так. Тем не 10.3. Методы полностью ньютоновского типа 271 менее многие реализации данного алгоритма, в частности реа- лизация Морэ, которая включена в пакет программ MINPACK, как в конечном счете оказалось, очень успешно применяются на практике, и поэтому указанный алгоритм представляет собой один из подходов, которые мы рекомендуем для общего решения нелинейной задачи о наименьших квадратах. Несколько факто- ров делают алгоритмы Левенберга—Маркварта на многих за- дачах предпочтительней, чем алгоритмы демпфированного ме- тода Гаусса — Ньютона. Один из этих факторов состоит в том, что метод Левенберга—Маркварта корректно определен, даже когда J{xc) не имеет полного столбцового ранга. Другой состоит в том, что в случаях, когда шаг метода Гаусса — Ньютона ока- зывается слишком большим по длине, шаг метода Левенбер- га—Маркварта близок к направлению наискорейшего спуска —J(Xc}TR{Xc), и это часто лучше, чем шаг демпфированного ме- тода Гаусса—Ньютона. Для некоторых версий алгоритма Ле- венберга—Маркварта доказана глобальная сходимость, напри- мер, Пауэллом (1975), Осборном (1976) и Морэ (1977). В разд. 10.3 обсуждается другой подход к решению нелиней- ной задачи о наименьших квадратах, который является не- сколько более надежным, но вместе с тем и более сложным, чем подход Левенберга — Маркварта. 10.3. МЕТОДЫ ПОЛНОСТЬЮ НЬЮТОНОВСКОГО ТИПА Другой рассматриваемый класс методов решения нелинейной задачи о наименьших квадратах основан на использовании ква- дратичной модели функции f(x) в окрестности точки Хс (10.1.2), учитывающей полностью все члены соответствующей формулы Тейлора. Метод Ньютона для нелинейной задачи о наименьших квадратах состоит в выборе х+, которое было бы стационарной точкой этой модели, т. e. ^ = х, - (J (x,Y J (х,} + S (х,}}~' / {х,У R (х,). По теореме 5.2.1 он локально ^-квадратично сходится к точке минимума х^ функции f(x), когда гессиан V2f(x)= !(xc}TI(Xc)+ +5(хс) непрерывен по Липшицу в окрестности точки Хс и У^л-*) положительно определен. Таким образом, свойства ло- кальной сходимости метода Ньютона для нелинейной задачи о наименьших квадратах действительно лучше, чем у методов из предыдущего раздела, так как метод Ньютона обладает высо- кой локальной скоростью сходимости на почти всех задачах, тогда как демпфированный метод Гаусса—Ньютона и метод Левенберга—Маркварта могут медленно локально сходиться при сильно нелинейной функции /?(.v) или большом значении R(x^. 272 Гл. 10. Нелинейная задача о наименьших квадратах Причина, по которой в нелинейной задаче о наименьших квадратах редко применяется метод Ньютона, состоит в том, что редко когда имеется возможность за оправданную цену получить J (Xc}TJ{xc}-\- S(xc) в аналитическом виде. Если недо- ступно аналитическое значение J{xc), то оно должно аппрокси- мироваться конечными разностями так, чтобы V/(Xc)== = J(xc)TR(Xc) вычислялось как можно точнее. Это обходится в п дополнительных вычислений R(x) на каждой итерации. Од- нако стоимость аппроксимации У2f(xc) или S(xc} конечными разностями, составляющая в обоих случаях дополнительные (n2-^-3n)/2 вычислений на каждой итерации, обычно непозво- лительно высока. Непосредственное применение методов секущих из гл. 9 к нелинейной задаче о наименьших квадратах также нежелатель- но потому, что эти методы аппроксимируют все составляющие в выражении для V2f(xc). Однако, поскольку в нелинейных алго- ритмах наименьших квадратов, как нами уже отмечалось, неиз- бежно должно вычисляться J (Хс) либо аналитически, либо по конечным разностям, составляющая J(xc)т!(xc} в выражении для У^(хс) всегда имеется в нашем распоряжении, и нам необ- ходимо лишь аппроксимировать 5(хс). Так как вдобавок f{xc)TJ(xc) часто представляет собой преобладающую часть ма- трицы V2f(xc), то методы секущих, которые не учитывают этого факта и аппроксимируют целиком всю V2f(xc) по секущим, не показали особой эффективности на практике. Поскольку m S(Xc)= Z r^(Xc)V'2r^(Xc), другой альтернативой служит аппроксимация каждой пХ "-мат- рицы V^t^c) согласно методике гл. 9. Это неприемлемо для алгоритмов общего назначения потому, что требует хранения дополнительно m симметричных /г X "-матриц. Тем не менее эта идея имеет определенную связь с подходом, который реально используется. В удачном подходе к решению нелинейной задачи о наи- меньших квадратах на основе идеи метода секущих произво- дится аппроксимация У^(л'с) матрицей f(xrVI(xc}+Ar, где Ас есть отдельная аппроксимация по секущим для S(,x,). Мы будем далее рассматривать подход Дэнниса, Гэя и Уэлша (1981), а ссылки на другие методы можно найти в этой же статье. На- хождение Ас состоит в непосредственном применении методик гл. 8 и 9. Предположим, что имеется аппроксимация Ас для S(xc}, был сделан шаг из Хс в х+, и мы хотим построить аппрок- симацию Л+ для 5(л:+). Прежде всего возникает вопрос «Что представляет собой соотношение секущих, которому должна удов- летворять Л+?» Вспомним, что для задач минимизации матрица 10.3. Методы полностью ньютоновского типа 273 Н+ аппроксимировала У^(л-+), и соотношением секущих было Н+{х+—Xc}=='Vf(x+)—Vf{xc). Аналогично если аппроксимацию m 5(х+)=^г,(х^^г,{х^ 1=1 временно представить себе в виде матрицы m ^+=Х/-,(л4)(Я,)+, (10.3.1) где каждое (Я;)+ аппроксимирует V2/-, (х+), то каждое (Я;)+ должно удовлетворять соотношению (Я;)+ (х+ — х,) == V/-, (х+) — V/-; (Хс) == ==(1-я строка J(x+))т~{i-^{ строка /(л-д))7'. (10.3.2) Комбинация (10.3.1) и (10.3.2) дает соотношение m Л+ 04 - х,) = g г, (^) (Я,)+ (л-+ - х,) = m = Z г,(х+)[(1-я строка ]{x^Y—(i^ строка J (Xc}Y}= =J(x^тR(x^-J(x,)TR(x^Ay#, (10.3.3) служащее для Л+ аналогом соотношения секущих. Заметим, что, хотя это соотношение было выведено из рассмотрения отдельных аппроксимаций (Я;)+, результатом является единственное соот- ношение секущих для той единственной дополнительной матри- цы Л+, которая будет храниться в памяти. В одномерном случае Л+ полностью определяется соотноше- нием (10.3.3). Пример 10.3.1 показывает, как получающийся в результате метод секущих для нелинейных задач о наименьших квадратах работает на тех же задачах, что рассматривались в примерах 10.2.4 и 10.2.5. В целом мы увидим, что метод секущих лишь несколько медленнее метода Ньютона и что он может работать лучше, чем метод Гаусса—Ньютона, на задачах со средней и большой невязкой в решении. В частности, он быстро локально сходится на тех примерах, в которых метод Гаусса— Ньютона не сходится вообще. Пример 10.3.1. Пусть R{x}, f(x), ti, t/i, ti, f/z, ts и набор зна- чений для уз и XQ такие же, как в примере 10.2.4. Тогда метод секущих для одномерных нелинейных задач о наименьших ква- дратах ^ft+i =4- {J(XkYJ(Xk} + Л^)-' Kx^R (Xk), (0 k=0, k>0. (10,3.4) 274 Гл. 10, Нелинейная задача о наименьших квадратах требует приведенного ниже количества итераций для достиже- ния точности \Vf(Xc) К Ю-10 на каждой из следующих задач на ЭВМ CDC с 14+ десятичными разрядами. Для сравнения из примера 10.2.4 воспроизведено количество итераций, требуемых для метода Ньютона, а также решение х, и величина невязки в решении f(^*). Количество итераций, требуемое для достижения точности | V^^) |410"методом Гаусса-Ньютона Ньютона 8 1 5 7 0.69315 0 0.6 4 6 3 1 12 9 0.44005 1.6390 0.5 9 5 -1 1 34 10 0,044744 6.9765 0 32 4 -4 1 * 12 -0.37193 16,435 -0.3 * 4 -8 1 t: 12 -0.79148 41.145 -0.7 * 4 * Метод Гаусса-Ньютона не сходится (см. упр. 10.2.5), При п. > 1 соотношение (10.3.3) определяет Л+ не полностью, и мы доопределяем А+, используя методику гл. 9. Поскольку матрица S(x+) симметрична, то такой должна быть и Л+; тем не менее в общем случае S(x) может не быть положительно определенной даже в решении х* (см. упр. 15), поэтому мы не будем требовать положительной определенности Л+. У нас нет никакой другой новой информации об Л+, следовательно, как и в гл. 9, будем брать в качестве Л+ наиболее похожую на Ас ма- трицу среди множества допустимых аппроксимаций, выбирая Л+, дающую решение задачи о минимальных поправках: min йг-г(Л+-Л,)r-Ч|^, A_(.eR"X'1 при условии: Л^ — Лд симметрична, A_^s^==y^. (10.3.5) Здесь s^=x^—x^, у^ определено в (10.3.3) и Г eR""" не вы- рождена. Если выбрать ту же самую матрицу весов Т, что обеспечила получение DFP-формулы, т. е. любую Т, для которой T^s, == у„ у, A Vf Qc+) - Vf (х,} == / (х+)7- R (х^) - J (x^ R (х,\ 10.3. Методы полностью ньютоновского типа 275 то, как нетрудно показать, обобщая технику разд. 9.3, реше- нием для (10.3.5) служит (»,*-Л^,)^+'/,(»,* - A,s,Y (»е* - ^Л. ^) УсУ^ (10.3.6) Формула пересчета (10.3.6) была предложена Дэннисом, Гэем и Уэлшем (1981); она используется для аппроксимации S(x} в их программе по решению нелинейной задачи о наимень- ших квадратах NL2SOL. Как, может быть, читатель уже дога- дывается, получающийся в результате метод секущих для не- линейной задачи о наименьших квадратах, использующий ите- рационную формулу (10.3.4) и пересчет Л;;, согласно (10.3.6), локально <?-сверхлинейно сходится при стандартных предполо- жениях относительно f(x) и Ац. Этот результат получен Дэнни- сом и Уолкером (1981) и представляет собой частный случай теоремы 11.4.2. Программа NL2SOL, которая реализует только что описан- ный метод секущих, имеет дополнительно несколько интересных особенностей. Для обеспечения глобальной сходимости алгорит- ма используется стратегия «модель—доверительная область», т. е. на каждой итерации решается задача: 1 найти min - R (x,Y R-(x,) + s7} (x,Y R {x,} + . _ ^n •" seR (10.3.7) при условии ||s||2^6e относительно Sc, так что s, = - (/ (л:,)7' / (x,) + Л, + М)~1 / (ХсУ R (х,), (10.3.8) для некоторого |д.с ^ 0. (В действительности опять же исполь- зуется масштабированная доверительная область.) Далее, в ал- горитме иногда вместо расширенной модели (10.3.7) участвует модель Гаусса—Ньютона (10.2.2), не учитывающая Ас. Из-за упоминавшейся выше сложности, связанной с аппроксимацией S{x) конечными разностями, и в связи с тем, что метод Гаус- са—Ньютона имеет тенденцию хорошо работать в начальной стадии, NL2SOL использует для Ло нулевую матрицу, так что в начальной стадии эти две модели эквивалентны. Затем в том месте каждой итерации, где ограничитель длины шага бс пере- считывается в 6+ с учетом сравнения действительного уменьше- ния значения функции f(xc)—f{x+) с уменьшением, предсказан- ным квадратичной моделью, NL2SOL вычисляет уменьшения, 276 Гл. 10. Нелинейная задача о наименьших квадратах предсказанные обеими квадратичными моделями, независимо от того, какая из них применялась для выработки шага из Хс в х+. Пересчет Ас в Л+ проводится всегда, но первый пробный шаг из х+ вычисляется при помощи той модели, в которой предска- зываемое уменьшение функции наилучшим образом согласуется с действительным уменьшением при переходе от Хс к х+. Харак- терно, что такое адаптивное моделирование приводит к тому, что NL2SOL использует шаги по методу Гаусса — Ньютона или Левенберга—Маркварта до тех пор, пока Ас не накопит доста- точное количество полезной информации о вторых производных, а затем переключается на шаги, соответствующие расширенной модели и определяемые согласно (10.3.7), (10.3.8). Для легких задач с малыми заключительными невязками для сходимости иногда достаточно лишь шагов метода Гаусса—Ньютона. И последнее. Перед каждым пересчетом (10.3.6) в NLS2SOL матрица Ас умножается на «масштабирующий» множитель fJ^, Л \ STCACSC ) (10.3.9) который почти такой же, как и множитель Шанно и Фуа, упо- минавшийся в разд. 9.4. Причина, по которой такое масштаби- рование необходимо на каждой итерации, состоит в том, что скалярные компоненты п{х) в . 8{х)=^г,{х)^г,{х) t=i иногда изменяются быстрее, чем компоненты вторых производ- ных У2ri{x), а формула пересчета (10.3.6) не может достаточно быстро реагировать на изменения масштабов. В особенности это проявляется при довольно малом R{x,). Масштабирующий множитель (10.3.9) пробует учесть уменьшение с ||^(хс)||2 ДО II R (х+) || г, так что аппроксимация Л+ оказывается более точной в случаях малой и нулевой невязки в решении. Относительно дальнейших деталей алгоритма NL2SOL, см. Дэннис, Гэй и Уэлш (1981). На практике хорошая программа метода Левенберга—Марк- варта (например, программа Морэ в пакете MINPACK,) и хо- рошая программа метода секущих для нелинейной задачи о наименьших квадратах (например, NL2SOL) при сравнении оказываются близкими. На не слишком нелинейных задачах с малой невязкой в решении обычно нет большой разницы между этими двумя программами. На задачах с большой невязкой в решении и на сильно нелинейных задачах программа метода се- кущих часто требует меньшего числа итераций и вычислений функции. Это справедливо в особенности, если необходимо найти решение х^ с высокой точностью, так как в этом случае 10.4. Некоторые другие соображения 277 важное значение приобретает разница между медленной линей- ной сходимостью и </-сверхлинейной сходимостью. С другой сто- роны, программа метода Левенберга—Маркварта, такая, как программа Морэ, требует для ее написания меньшего числа строк и менее сложна, чем программа метода секущих со всеми ее особенностями, описанными выше. По этим причинам мы ре- комендуем в общем случае использовать обе программы. 10.4. НЕКОТОРЫЕ ДРУГИЕ СООБРАЖЕНИЯ ОТНОСИТЕЛЬНО РЕШЕНИЯ НЕЛИНЕЙНЫХ ЗАДАЧ О НАИМЕНЬШИХ КВАДРАТАХ В этом разделе мы кратко обсуждаем некоторые другие темы, связанные с нелинейными наименьшими квадратами, и читате- лей, проявивших к этому интерес, адресуем за подробностями к более полным источникам. Первой темой служит критерий останова для нелинейных задач о наименьших квадратах, кото- рый отличается несколькими интересными моментами от крите- рия, рассмотренного в разд. 7.2 в связи с задачами безусловной минимизации общего вида. Во-первых, поскольку наименьшим возможным значением для f (х) == — R (хУ R (х) является нуль, 2i " то проверка вида Ц^)^0? служит подходящим критерием сходимости для задач с нулевой невязкой в решении. Эта проверка реализуется как /(x+)s^toli, где toli — надлежащим образом выбранная точность. Во-вторых, градиентная проверка сходимости для нелинейных задач о наи- меньших квадратах вида Vf(x+)=^(^)г^?(л4)^0? (10.4.1) имеет благодаря структуре Vf(x) особый смысл, так как его можно интерпретировать как вопрос о том, является ли R{x+) почти ортогональным к линейному подпространству, натянутому на столбцы матрицы /(х+). В качестве упражнения можно пока- зать, что косинус угла ср+ между R(x+) и этим подпространством равен cos^„ ^+(WIJ+R+ . (10.4.2) II мад ^/чи^ где /+А/(х+) и R^.A,R(x+). Если в распоряжении имеется (/^/+) J^R+, как это будет в программе демпфированного ме- тода Гаусса—Ньютона или метода Левенберга—Маркварта, 278 Гл. 10. Нелинейная задача о наименьших квадратах тогда вместо (10.4.1) можно использовать проверку coscp+^a sS; tola. Другие критерии останова, такие, как (х+—Xc)s0, остаются теми же самыми, что и в задачах безусловной мини- мизации. Кроме того, в приложениях, связанных с наилучшим приближением данных, иногда в качестве критерия останова используется критерий статистической значимости. Распростра- ненный критерий такого рода, тесно связанный с (10.4.2), об- суждается в упр. 18 и в работе Пратта (1977). Обсуждение критериев останова для нелинейных задач о наименьших ква- дратах приведено в работе Дэнниса, Гэя и Уэлша (1981). Другой важной темой служит вопрос решения смешанных линейно-нелинейных задач о наименьших квадратах, т. е. тех задач, в которых функция невязки R{x} линейна по некоторым переменным и нелинейна по остальным. Типичным примером является т /М=у^^(х)2, г,{х}===х^^-{-х^'^-у^ г==1, ..., т. Здесь переменные х\ и х^ входят линейно, в то время как Ху, и д:4—нелинейно входящие переменные. Нам, очевидно, нужно уметь минимизировать f(x) путем решения нелинейной задачи о наименьших квадратах только относительно двух нелинейно входящих переменных д-з и лл.так как для любых заданных зна- чений Хз и л:4 мы можем вычислить соответствующие оптималь- ные значения х\ и Хч путем решения линейной задачи о наимень- ших квадратах. Это действительно так, причем весь достаточно сложный анализ, требуемый для построения алгоритма, был выполнен Голубом и Перейрой (1973). Он кратко изложен в упр. 19 и 20. Имеются некоторые машинные программы, такие, как алгоритм VARPRO Кауфмана (1975), которые решают сме- шанные линейно-нелинейные задачи о наименьших квадратах. Преимущества их состоят в том, что они решают эти задачи за меньшее время и при меньшем количестве вычислений функций, чем стандартные программы для нелинейных наименьших ква- дратов, и что для линейно входящих переменных не требуется никакого начального приближения. Многие интересные вопросы, относящиеся к решению задач наилучшего приближения данных по принципу нелинейных наи- меньших квадратов, в основном выходят за рамки этой книги. Один из них касается оценки погрешности получаемых ответов. В линейных задачах о наименьших квадратах Ax s= b, возни- кающих в связи с наилучшим приближением данных, вычисле- ние решения обычно следует за вычислением ковариационной матрицы (з2{ATA)~\, где о есть некоторая статистическая харак- теристика. При соответствующих статистических предположе- 10.4. Некоторые другие соображения 279 ниях эта матрица дает дисперсию и ковариацию ответов Xi с учетом ожидаемой неточности в векторе измерений данных Ь. В нелинейных задачах о наименьших квадратах использу- ются некоторые аналогичные ковариационные матрицы, а именно ^{ffJf) , б^//^') и ^(H^ffffHf''), где Xf есть оконча- тельная оценка для л;., Jf==/(Xf), Iff=I(Xf}TJ(Xf)+S(Xf) (или аппроксимация этой матрицы) и б ==2f(x)/(m—п)—аналог константы, используемой в линейном случае [см., например, Бард (1970)]. Несмотря на то что надлежащее обсуждение ковариационной матрицы выходит за рамки этой книги, важно предостеречь пользователей программного обеспечения по нели- нейным наименьшим квадратам о том, что ковариационные оценки для нелинейных наименьших квадратов не столь надеж- ны, как для линейных наименьших квадратов, и должны исполь- зоваться с осторожностью. На улучшение этой ситуации были направлены серьезные исследования; см., например, Бейтс и Уоттс (1980). И наконец, как упоминалось в разд. 1.2, много других мер величины вектора R(x), помимо наименьших квадратов, можно использовать для определения того, что понимается под выра- жением «хорошо приближает», причем некоторые из них стано- вятся все более важными для практики. Действительно, можно рассматривать нелинейные наименьшие квадраты как частный случай задачи: найти min f(x}=p(R(x)), /?:R''^R"1, р : R"'->R, (10.4.3) x<=R" где p(z)==-„ zтz. Другими очевидными возможностями являются p(z)== ||z||i и p(z)== llzlico, называемые соответственно li- и ми- нимаксным принципами наилучшего приближения данных. [См., например, Мюррей и Овертон (1980, 1981), а также Бартелс и Конн (1982).] Когда имеются плохие точки данных (так назы- ваемые «выбросы»), то появляется иногда интерес к другим мерам p(z), которые не так сильно учитывают вклад очень больших компонент вектора z. Двумя такими примерами слу- жат функция потерь Хьюбера (1973) l P(z)= Zpi(z,), Pi (г,) = (10.4.4) 280 Гл. 10. Нелинейная задача о наименьших квадратах линейная по z; для | zJ > k, и функция потерь Битона-Тьюки (1974) P(z)==Zp2(z.), p2:R->R, „ к^о-о-тт). ^П^), (10.4.5) постоянная при \zi\~> k. В каждом из случаев константа k должна быть выбрана подходящим образом. Они представляют собой примеры надежных в работе мер, используемых для наи- лучшего приближения данных, и здесь уместно сослаться на Хьюбера (1981). В гл. 11 кратко упоминаются некоторые во- просы, связанные с минимизацией дважды непрерывно диффе- ренцируемой функции вида (10.4.3). 10.5. УПРАЖНЕНИЯ 1. Пусть R(x): R^R20, r^(x}==x^+x^~(t^+xз)'ll^-y^, I = 1, .... 20, 1г f(x)=—R(x) R(x). (Эта задача обсуждалась в разд. 1.2.) Что представ- ляют собой I(x), Vf(x), S(x), V2/^)? 2. Покажите, что теорема 10.2.1 останется справедливой, если константу (со + ^)/(2^) в (10.2.6) заменить на какую-либо другую константу, лежащую между со/Х и 1. 3. Покажите, что в предположениях теоремы 10.2.1 для х, достаточно близкого в Xst, имеет место равенство [/ (х) - I (x,)f R (х,) == S (х„) (х -х,)+0 (|| х - x.Hi). [Указания: запишите m / (х)7' R (х.) == ^ г, (х,} V^ (.<•) 1=1 и воспользуйтесь разложением Vi'i(x) в ряд Тейлора в окрестности точки л"».] 4. Вычислите (вручную или с помощью калькулятора) первый шаг ме- тода Гаусса—Ньютона для задачи из примера 10.2.4, взяв уз = 8 и х» = 1. Вычислите также первый шаг метода Ньютона и два первых шага метода секущих, записанного в примере 10.3.1. 5. Повторите упр. 4 для случая уз == —8, Xis == —0.7. 6. Пусть R, = R (x,), J, == f (x,}, S, == S (x,), x° = х, - (У^)"' f,R„ x1^ =x^ — (/J"/e+ S,,) /J^, SQ==X°. —Xy s^.==x1^ —x^. Покажите, что s—Slv==(^г^„) S Sw. Используйте это, чтобы показать, что если гессиан у2 f (x} === / (х)1' I {х} -[- S (х) непрерывен поЗЛипщицу в окрестности точки мц- 10.5. Упражнения 281 нимума х., функции / (л-) ^= — R (х)' R (х}, Vf {х,} не вырожден, и Хс доста- точно близко к х.,, то X., — X "с 112 11-^ В случае п = 1 вы должны уметь показать, что [(•<G - •t.) - (s. ^сУ1) (^. - -\}\= О ( | х, - ^ |2). (10.5 7. Вычислите / (л-,) / (х,) и S (х„) для двух задач из примера 10.2.5. Затем, используя (10.5.1), получите два коэффициента отталкивания 2.20 и 6.55, которые приведены в этом примере. ^Р^, rЛx}==ex^+tix2-y,, г=1,...,4, f(x)= 8. Пусть R (х}: R2 -> R4, г^(ж)==е = — R (х)7 R (х). Предположим, что ti == —2, t-s, == —1, <з == 0, t^ == 1, у\ == 0.5, '/2=1, Уз ==2, 1/4 =4. [f(x}=0 в точке л:„==(1п2. In 2).] Вычислите одну итерацию метода Гаусса-Ньютона и одну итерацию метода Ньютона, начи- ная с Хц=={1, 1) . Проделайте то же самое, заменив значения г/i и у^ на 5 и —4 соответственно. 9. Запрограммируйте демпфированный алгоритм Гаусса — Ньютона, ис- пользующий алгоритм линейного поиска А6.3.1, и опробуйте его на задачах из примера 9.3.2. Как согласуются ваши результаты с результатами, получен- ными на этих задачах методом Ньютона и методом секущих? 10. Воспользуйтесь леммой 6.4.1 и покажите, что решением для (10.2.13) является (10.2.14). 11. Покажите, что для произвольного ц-5г 0 шаг метода Левенберга— Маркварта л:+—Хс, заданный согласно (10.2.14), является направлением спуска для функции в нелинейной задаче о наименьших квадратах. 12. Задано ^ е= R"1, /eR^", покажите, что s = — (/г/+ [i/)"'/^ является решением нелинейной задачи о наименьших квадратах найти min ||As + b\\i, ^R" A e _c(m +n) x п Л = J 7^ be 13. Докажите теорему 10.2.6, используя технику доказательства тео- ремы 10.2.1 и следствия 10.2.2. 14. Решите задачи из примера 10.3.1 методом секущих для безусловной минимизации где а„=Г(^о). 282 Гл. 10. Нелинейная задача о наименьших квадратах Сравните ваши результаты с приведенными в примере 10.3.1 для метода се- кущих для нелинейных наименьших квадратов, 15. Пусть f{x) задано, как в примере 10.2.4, и уа = 10. Вычислите х» (с помощью калькулятора или ЭВМ) и покажите, что 5 (х«) •< 0. 16. Пользуясь техникой из разд. 9.3, покажите, что если TTTSc == Ус, то решением для (10.3.5) является (10.3.6). 17. Пусть ^?<=R'", и /eR'"X'1 обладает полным столбцовым рангом. Покажите, что проекция R в евклидовой норме на линейное подпространство, натянутое на столбцы матрицы / есть J{/TJ)~'ЧTR. [Указание: выясните, как эта задача связана с линейной задачей о наименьших квадратах, в которой минимизируется \\Jx—/?||z?] Затем покажите, что косинус угла между R и этим линейным подпространством имеет вид (10.4.2). Упражнение 18 описывает в общих чертах статистический критерий оста- нова для нелинейных наименьших квадратов. 18. (а) Пусть as R, s (= R" и Me R^x". Предположим, что М поло- жительно определена, и к >• 0. Покажите, что максимальное значение функ- ции ^(W / т — 1 \ Ц"'' равно a (s М s) (b) Если М представляет собой ковариационную матрицу нелинейной за- дачи о наименьших квадратах, то (р(о), заданное согласно (10.5.2), пропор- ционально проекции s на направление и, деленной на погрешность решения нелинейной задачи о наименьших квадратах в направлении и, и поэтому кри- терий останова тах {ф (о): v <= R"} < tol (10.5.3) представляет собой вполне осмысленный статистически способ измерения ма- лости шага s. Покажите, что если s=—(JTJ)~i}TR и М = (/г/)-', то (10.5.3) эквивалентно проверке (^/(W^ll^tol. (1а5-4) Покажите, что аналогичное выражение имеет место, если s == —H-^FR и М == Н~1, где //sR"X" равно гессиану V^f(x) или его аппроксимации. Сопоставьте (10.5.4) с критерием останова по косинусу угла cos (p+^ tol, где cos (p+ задан согласно (10.4.2). Упражнения 19 и 20 описывают в общих чертах смешанный линейно- нелинейный алгоритм наименьших квадратов Голуба и Перейры (1973). 19. Пусть R: R"->R'", m > п. Кроме того, пусть х==(и, v}7', ueR""'', oeR", 0<р<га, и R(x}=N(v}-u-b, где N: RP-^R'"-1"-^, b e R". Например, если R: R^-^R20, r.(x)=x.e1 3 + XJS t 4—y., то и=(х., Ху\^ v = fx,, х.\, (i-я строка N (v}} == \е 1 3, е i *), b. == у.. Пусть точкой минимума для f (х) == -^ R (х)7 R (х) является .v, = (и,, о.). Докажите, что м. == N (v,l+Ь. Кроме того, докажите, что задача «найти min д f (х)» эквивалентна сле- XG f^ дующей: min '-Цл^о)^)'1'^ -61|2 о.^ 2 (10.5.5) 10.5. Упражнения 283 20. С помощью алгоритма Голуба и Перейры (1973) разработайте для решения задачи (10.5.5) демпфированный алгоритм Гаусса — Ньютона или алгоритм Левенберга—Маркварта. В частности, опишите, как получаются в аналитическом виде требуемые производные (это — самая трудная часть) и как используется Q^-разложение. 21. Модифицируйте так алгоритмы из приложения А для решения не- линейных уравнений, используя локально ограниченный оптимальный («кри- волинейный») глобальный шаг и аналитически заданный или конечно-разност- ный якобиан, чтобы получить алгоритм Левенберга — Маркварта для нели- нейных наименьших квадратов. Вам не нужно будет вносить много изменений в существующие алгоритмы. Алгоритмы А5.4.1 (конечно-разностный якобиан), А6.5.1 (формирование якобиана модели), АЗ.2.1 и A3.2.2 (Q/P-разложение и решение) будут отличаться только тем, что / имеет in, a не п строк, и тогда Q.R-алгоритм будет вычислять решение линейной задачи о наименьших квад- ратах [относительно требуемых незначительных изменений см. Стюарт (1973)]. Алгоритмы криволинейного шага остаются без изменений [однако в работе Морэ (1977) можно найти более эффективную реализацию линейной ал- гебры]. Критерии останова должны измениться, как это обсуждалось в разд. 10.4 [см. также Морэ (1977), Дэннис, Гэй и Уэлш (1981)]. Вы можете протестировать свои программы на многих задачах из приложения В, так как многие из них можно легко переформулировать как нелинейные задачи о наименьших квадратах. 11 Методы решения задач со специальной структурой Эта глава есть нечто вроде приложения к основному материалу книги в том смысле, что в ней излагаются способы применения уже изложенной методики к задачам, в которых структура ма- трицы Якоби или Гессе имеет важную специфику, часто встре- чающуюся на практике. Учет в квазиньютоновских методах специальной структуры не является для нас делом новым. В гл. 9, например, в формулы секущих были включены наследуемые от задач свойства, сна- чала симметричности, а затем и положительной определенности. В гл. 10 были модифицированы методы безусловной минимиза- ции с учетом специальной структуры нелинейной задачи о наи- меньших квадратах. В этой главе нас будет интересовать тот случай, когда часть матрицы производных получается легко и точно, а остальная часть—нет. В наиболее очевидном и, возможно, наиболее важ- ном случае, когда известно, что матрица производных содержит много нулей, говорят, что якобиан и гессиан разрежены. В разд. 11.1 и 11.2 обсуждаются соответственно конечно-разност- ный метод Ньютона и методы секущих для решения разрежен- ных задач. Обобщением рассмотренного в разд. 11.2 случая выступает тот, в котором матрица Якоби или Гессе может быть представ- лена в виде 1(х)=С(х)+А(х), где С{х) получается точно с помощью некоторого метода, а для матрицы А(х) некоторой специальной структуры мы хотим вос- пользоваться аппроксимацией по секущим. В разд. 10.3 уже встречался пример такого типа структуры в методе секущих для нелинейных наименьших квадратов. В разд. 11.3 приведено несколько дополнительных примеров структуры этого типа и представлена весьма общая теория, которая показывает, как строить аппроксимации по секущим для любой задачи. 11.1. Разреженный метод Ньютона 285 В разд. 11.4 представлена общая теория сходимости любого ме- тода секущих, который получается с помощью техники из разд. 11.3. Эти результаты включают на самом деле как частный слу- чай все результаты гл. 8 и 9 по получению методов и исследо- ванию их сходимости. 11.1. РАЗРЕЖЕННЫЙ КОНЕЧНО-РАЗНОСТНЫЙ МЕТОД НЬЮТОНА В этом разделе рассматривается задача решения систем нели- нейных уравнений F(x)=0, о которой также известно, что каж- дое отдельное уравнение зависит от относительно небольшого числа неизвестных. Другими словами, г-я строка матрицы про- изводных имеет очень мало ненулевых элементов, и их распо- ложение не зависит от конкретного значения х. Можно было бы учесть это, просто игнорируя нули и стараясь решить задачу методами из гл. 5—9. Однако для многих задач использование структуры расположения нулей, или, иначе говоря, разрежен- ности J (х), имеет решающее значение даже для самой возмож- ности решения задачи. Прежде всего п может быть настолько велико, что о хранении всей J{x) не может быть и речи, если не отказаться от хранения нулевых элементов. Кроме того, эко- номия количества арифметических операций за счет отказа от хранения нулей при решении системы линейных уравнений J(x,)sN==-F(x,) (11.1.1) относительно ньютоновского шага может оказаться весьма зна- чительной. Если ненулевые элементы J(x) легко вычисляются аналити- чески, то об этом случае много не скажешь. Следует пользо- ваться эффективным способом хранения J(x) наряду с эффек- тивной программой для решения разреженной линейной систе- мы (11.1.1). В настоящее время имеются различные пакеты про- грамм по решению разреженных линейных уравнений, например пакет в Харвелловской библиотеке или Йельский пакет по обра- ботке разреженных матриц, доступный через библиотеку IMSL. Стратегии глобализации из гл. 6 можно без особого труда при- способить к разреженной задаче, за исключением случая ло- кально ограниченного оптимального шага, который лишается своей привлекательности из-за необходимости решения боль- шого количества линейных систем. Оставшаяся часть раздела посвящена эффективным спосо- бам аппроксимации с помощью конечных разностей ненулевых элементов матрицы J (х), если они не заданы аналитически. В основе этого лежит главным образом работа Куртиса, Пауэл- ла и Райда (1974). 286 Гл. 11. Задачи со специальной структурой Приведенные в гл. 4 рассуждения относительно конечных раз- ностей, включая выбор длины шага hi, остаются здесь по-преж- нему в силе. Единственное отличие состоит в том, что мы будем пытаться использовать менее п дополнительных вычислений F(x) для аппроксимации 1{х) путем получения более чем одного столбца конечно-разностного якобиана на основе одного допол- нительного значения F(x). Для того чтобы увидеть, как это сделать, рассмотрим следующий пример. Пусть е, обозначает ;'-й единичный орт, и имеются /2х,+х]\ ( \\ ^-^L -з;' ^w для которых F(x. •^G). '^ ?)• Непосредственно видно, что элементы (1, 2) и (2, 1) якобиана нулевые, и поэтому два столбца якобиана обладают тем основ- ным свойством, что в каждой строке') содержится не более одного ненулевого элемента. На гипотетической машине с macheps = Ю-6 метод из разд. 5.4 выбрал бы /г=(10-3, Ю-2), вычислил .,=F(•^+^)=F(1.001,10)-(3•OM001), v^F(x,+h,e,}=F{\, 10.01)= (^) и затем нашел аппроксимацию первого и второго столбцов J{xc) по формулам v,-F(xc) ^^-OOl^ ^-F(x,} __f0\ и. \ 0 )' ^ \1 } Здесь важно то обстоятельство, что, поскольку нас интересовали лишь Лц и A<ii, нам потребовались только первый элемент fi(xc+/ti^i) в v\ и второй элемент ^(xc+^^z) в vi. Более того, поскольку fi не зависит от л'2 и ^ не зависит от х\, эти два зна- чения можно было получить с помощью единственного вычисле- ния функции to==F(^+^i+^)==F(1.001, 10.01) =(3-0^01) . ., Тогда An={wi—fi(xc))/hi, Am ==(гУ2—М-^))//г2, и, таким образом, мы аппроксимировали J{xc) с помощью только одного дополнительного к F(xc) вычисления F(x). *) Имеется в виду строка образованной этими столбцами подматрицы, которая в данном примере совпадает со всей матрицей. Такие подматрицы будут играть важную роль в последующем обобщении.—Прим. перев. 11.1. Разреженный метод Ньютона 287 В общем случае действуем так же. Сначала находим множе- ство номеров (индексов) столбцов Гс:{1, ..., п} с тем свой- ством, что в каждой строке этого подмножества столбцов яко- биана содержится не более одного ненулевого элемента. Затем вычисляем w и для каждой ненулевой строки i столбца / е Г аппроксими- руем J(xc}a по формуле А ^-^) ""————^——• Общее число дополнительных вычислений F{x), требуемых для аппроксимации J(xc), равняется числу таких индексных мно- жеств Г, необходимых для покрытия всего множества столбцов. Например, если J (х) есть трехдиагональная матрица: J(x}{i^=0, если |г—Л<1, •/Ч-^/^О в противном случае, то нетрудно показать, что для любого значения п достаточно трех множеств индексов {;': /==^mod3}, й==0, 1, 2. Таким об- разом, только три, а не п дополнительных вычислений F{x) тре- буется на каждой итерации, чтобы аппроксимировать J{xc). В общем случае не представляет особого труда группировать столбцы ленточной матрицы в минимальное число групп таких индексных множеств и обобщить приведенный выше пример с трехдиагональной матрицей (упр. 1). К сожалению, не суще- ствует, по-видимому, эффективного способа получения наимень- шего числа таких групп для разреженного якобиана общего вида. Тем не менее простые эвристические алгоритмы оказались в конечном счете весьма эффективными. В недавней работе Коулмана и Морэ (1983) улучшены эвристические приемы Кур- тиса, Пауэлла и Райда и показано, что общая задача имеет Л^Р-сложность'). Заметим, что если вычисление F(x} может быть разбито естественным образом на п вычислений его ком- понент-функций, то приведенные выше способы оказываются здесь ненужными, так как мы можем просто аппроксимировать каждый ненулевой элемент J(xc)ij по формуле (fi(xc +/W)— —f^(xc}}/ll|• Однако на практике, если J {х) не задано аналити- чески, такого рода разбиение F(x} обычно обходится недешево. Эти способы распространяются и на задачу безусловной минимизации, где в качестве матрицы производных выступает гессиан Угf(xc}. В квазиньютоновском методе для больших раз- реженных задач минимизации нужно эффективно хранить ') Подробнее об /VP-сложности см. Ахо, Хопкрофт и Ульман (1974).— Прим. перев. 288 Гл. 11, Задачи со специальной структурой V^n'i) и использовать программы но решению симметричных (и положительно определенных, если этим можно воспользо- ваться) разреженных линейных систем. Если V^Xc) аппрокси- мировать при помощи конечных разностей, используя лишь зна- чения функции, то достаточно просто можно аппроксимировать ненулевые элементы, применяя способы из разд. 5.6. Тем не ме- нее иногда на практике можно вычислить Vf(x) аналитически одновременно с f(x) при малых дополнительных затратах. В этом случае V^(xc) следует аппроксимировать на основе до- полнительных значений Vf(-t), используя в целях обеспечения эффективности этого процесса процедуру, подобную приведен- ной выше. Можно непосредственно использовать способ Кур- тиса, Пауэлла и Райда, а затем для получения разреженной симметричной аппроксимации гессиана взять среднее из полу- ченной матрицы и ее транспонированной. Недавнее исследова- ние Пауэлла и Тоинта (1979), а также Коулмана и Морэ (1982) сосредоточено на использовании симметричности в целях полу- чения этой аппроксимации более эффективным образом (см. упр. 2). 11.2. РАЗРЕЖЕННЫЕ МЕТОДЫ СЕКУЩИХ В предыдущем разделе мы познакомились с тем, как использо- вать разреженность для сокращения количества вычислений функций, требуемых для аппроксимации J {х} конечными раз- ностями. Однако если вычисление F(x) обходится дорого, то такая аппроксимация может оказаться все же слишком обреме- нительной, и тогда нам, возможно, захочется аппроксимировать J(x), привлекая идею метода секущих. При этом для достиже- ния экономии памяти и числа арифметических операций, упо- минающихся в разд. 11.1, желательно, чтобы аппроксимации по секущим имели такую же разреженность, как и сам якобиан. В данном разделе обсуждается разреженная формула секущих, которая является всего лишь специальным применением фор- мулы секущих из гл. 8 к разреженному случаю. Кратко обсуж- даются также разреженные симметричные формулы секущих для задач минимизации. Напомним, что формула секущих для нелинейных уравнений (формула пересчета Бройдена) (и„ — A„s„\ s~ А — А 4- Л+ — ^с ^ Г (11.2.1) представляет собой решение задачи о минимальных поправках: найти min ||В—Лс||р BsR»X" при условии В?с=г/с, (11.2.2) 11.2. Разреженные методы секущих 289 где Ас, Л^еК^" аппроксимируют J(Xc) и f(x^) соотретст- венно, Sc==x+—xc и Ус^^^ч.)—F (Хс) (лля удобства в остав- шейся части этой главы мы будем опускать индекс с величин A, s и у). В разреженном случае пусть ZeR"^ есть (0, ^-ма- трица, задающая структуру расположения нулей в J(x), т. е. ( 0, если / (х)ц = 0 для всех х е R", 11 \ 1 в противном случае, и пусть SP (Z) обозначает множество п X "-матриц, имеющих эту структуру расположения нулей, т. е. SP(Z)={ЛIe=R"x": Мц==0, если Z;/=0, 1^г, j^n}, (11.2.3) Если предположить, что AsSP(Z), то естественным обобще- нием (11.2.2) на разреженный случай будет задача: найти min II В — А \\р аек»х» при условии Bs=y, В е SP (Z). (11.2.4) Конечно, SP(Z) может не содержать ни одного элемента, для которого Bs = у, как, скажем, в том случае, когда требуется, чтобы целая строка в В была нулевой, а соответствующая ком- понента в у не равна нулю. Если требуемая разреженность согласуется с условием Bs == у, то решение (11.2.4) легко най- ти, и оно представлено в теореме 11.2.1. Его можно также по- лучить, используя более общую теорему 11.3.1. Нам потребуется дополнительно следующее обозначение: определим оператор матричного проектирования Р^'- R^"-»- -^R"^ через (PzW/=={^ J'C?' I "Ч!' ^Ij— 1- (11.2.5) Это означает, что Pz обнуляет элементы в М, соответствующие нулевым позициям структуры разреженности Z, и оставляет без изменения остальные элементы в М. В качестве упражне- ния можно показать, что Pz(M) является ближайшей в SP(Z) матрицей к М в норме Фробениуса. Аналогично, для о е R" определим Y) е R" как О, если Z{]=Q, Vj, если 2ц= 1. (11.2.6) Это означает, что У) представляет собой результат наложения на и структуры разреженности f-й строки матрицы Z. 10 Зак. 660 290 Гл. 11. Задачи со специальной структурой Теорема 11.2.1. Пусть Z е К"^ есть (0, 1)-матрица, и пусть SP (Z) определено согласно (11.2.3), а Р^—согласно (11.2.5). Пусть А е SP (Z), s, у i= R". Определим s<, ;==!, ... , п, со- гласно (11.2.6). Если s<==0, только когда У{==О, то решением для (11.2.4) будет разреженная формула секущих1} A^^A+Pz{D+(y-As)sт), (11.2.7а) где D^ определено в (3.6.6) для диагональной матрицы Z)e=R ,пХ" такой, что п. (11.2.7Ь) Доказательство. Пусть Л,., B{. е R" обозначают i-e строки соответственно в Л и В. Тогда, поскольку l|B-A||^==i||B,.-AJ||, <=i задача (11.2.4) может быть решена с помощью выбора в ка- честве каждого BI. решения задачи: найти min HBf.—AJIz fi,.sR'1 при условии (В{. — А;.) s == (у — As);, (В;. — Л,,) <= SP (Z);., (11.2.8) где SP (Z);. =^= [v е R" : о/ = 0, если Z,/ == 0}. Нетрудно показать, что решением для (11.2.8) является Bi. == Л,. + О^ (у - As), s?. (11.2.9) Поскольку t-я строка в Pz ("о1") имеет вид (u;) v< для любых ы,огК", то Bi., заданное согласно (11.2.9), в точности совпа- дает с f-й строкой матрицы А+, заданной согласно (11.2.7). D Пример 11.2.2. Пусть П 0 1- Z== 1 1 О L° i i s=(l, -1, 2)г, y=(2, 1, ЗУ, А==1. Тогда si==(l, О, 2)г, sa= ==(1, -1, О)1', SB-(0, -1, 2Y и (11.2.7) дает [0.2 0 0.4 А+=А+ 1 -1 0 0 -0.2 0.4 1) В оригинале — sparse secant update. — Прим. перев. 11.2. Разреженные методы секущих 291 ~ i 1 i - т 6 3 1 1 2 т ""з" 3 1 i 1 6 '6" 3 дЙа^ы6 с формулой "бР^та Бройдена (11.2.1), которая ~-L _J. J." 663 ^==^+ 4 --^ 4 Формула пересчета (11.2.7) была предложена независимо Шубертом (1970) и Бройденом (1971), а теорема 11.21 была доказана независимо Райдом (1973) и Марвилом (1979) Эта формула пересчета кажется эффективной в квазиньютоновских алгоритмах для разреженных нелинейных уравнений, хотя име- ется мало публикаций по вычислительному опыту их использо- вания. Если некоторое s, = 0, то (11.2.4) имеет решение только тогда> .KTO „""тветствующее значение у.=0. Тем не менее, если J(x}e=SP(Z), s-=x+-Xc и у = F(x+}~ F(xc), то это имеет место всегда (см. упр. 5). Теорема 11.3.1 обращается к более общему случаю. В теореме 11.4.1 будет показано, что квазиныотоновскии метод, использующий формулу пересчета (И.^/), при стандартных предположениях, локально о-сверх- линеино сходится на задачах с J(x)e= SP(Z). К сожалению, применение разреженных формул пересчета в безусловной минимизации, где аппроксимации должны быть к тому же симметричными и, возможно, положительно опреде- ленными, не было столь удовлетворительным. Марвил (1978) и Тоинт (1977, 1978) были первыми, кто обобщил симметрич- ную формулу секущих на разреженный случай, решая задачу: найти min \\В—А\\р BeR»X» при условии Bs==y, (B-A)«=SP(Z), (В - А) симметрична. Мы приводим эту формулу пересчета в разд. 11.3 а в разд 11 4 доказывается локальная <7-сверхлинейная сходимость исполь- зующего ее квазиньютоновского метода. Однако эта формула пересчета имеет несколько существенных недостатков, о кото- рых речь пойдет ниже, причем один из них состоит в том что порождаемые им аппроксимации не обязательно положительно определены. Действительно, попытки построить положите ч; но определенную разреженную симметричную формулу пересчета пока остаются безуспешными. Шанно (1980) и Тоинт (1981) получили разреженную формулу пересчета, которая сводится к BbUS-формуле в неразреженном случае, однако она не обя- зательно сохраняет положительную определенность в случаях наличия разреженности. Ю* 292 Гл. 11. Задачи со специальной структурой Тот факт, что ни одна из этих разреженных симметричных формул пересчета не сохраняет положительную определенность, уже исключает основное достоинство формулы секущих для задач минимизации. Вдобавок вычисления по любой из извест- ных симметричных разреженных формул пересчета требуют до- полнительного решения на каждой итерации системы линейных уравнений с разреженной симметричной матрицей. И наконец, ограниченный вычислительный опыт работы с методами, ис- пользующими эти формулы пересчета, не дал положительных результатов. По этим причинам методы секущих, возможно, не являются перспективным способом решения больших разрежен- ных задач минимизации. '"' Вместо этого, как нам кажется, для решения больших задач минимизации будут использоваться либо конечно-разност- ные методы, рассмотренные в разд. 11.1, либо методы сопря- женных градиентов. Методы сопряженных градиентов несколь- ко отличаются от квазиньютоновских методов по своей основ- ной структуре, и мы не включили их в книгу. Для задач малой размерности методы сопряженных градиентов обычно менее эффективны, чем методы, рассмотренные в этой книге, однако для задач большой размерности они претендуют на первенство. Как и методы секущих, они используют при минимизации только информацию о функции и градиенте, а основным отли- чием выступает то, что они не сохраняют никакой аппрокси- мации матрицы вторых производных. Относительно дальнейшей информации см. Бакли (1978), Шанно (1978), Флетчер (1980), Хестенс (1980) или Гилл, Мюррей и Райт (1981). Что касается их прямой обработки с помощью аппарата линейной алгебры, см. Голуб и Ван Лоан (1983). Усеченные методы Ньютона [см., например, Дембо, Айзенштат и Штайхауг (1982)] соче- тают в себе некоторые черты методов сопряженных градиентов с особенностями методов доверительных областей из гл. 6. Другие новые подходы представлены в статьях Гриванка и Тоинта (1982а,Ь,с). Завершим обсуждение методов секущих для разрежь .,;1ых задач упоминанием о преимуществе методов секущих для не- разреженных задач, которое не распространяется на разрежен- ный случай. Как отмечалось в гл. 8 и 9, мы могли использовать формулы секущих для сокращения затрат на. арифметические операции с 0(п3) до 0(п2) на каждой итерации, используя либо пересчет непосредственно аппроксимации матрицы, обрат- ной к гессиану, либо пересчет LU- или Q^-разложения. В раз- реженном случае первая из возможностей не привлекательна, потому что обратная к разреженной матрице редко бывает разреженной, тогда как вторая возможность не подходит, по- тому что формула пересчета обычно представляет собой по- правку ранга п матрицы Ас. С другой стороны, потеря этого 11.3. Вывод формул с минимальными поправками 293 преимущества, возможно, не столь уж существенна в разре- женном случае, поскольку факторизация и решение разрежен- ной линейной системы часто требуют лишь 0(п) операций. 11.3. ВЫВОД ФОРМУЛ СЕКУЩИХ С МИНИМАЛЬНЫМИ ПОПРАВКАМИ') В оставшейся части этой главы рассматриваются задачи, опре- деляемые функцией F: R"->-'R", матрица производных которой / (л:) ^ F' (х) имеет вид (11.3.1) где С(х) находится непосредственно в нашем распоряжении, тогда как Л (х) требуется аппроксимировать, используя фор- мулы секущих. [Этот случай включает в себя задачи оптими- зации, где F(x}=Vf(x) и J(x)== V^x).] В этом разделе бу- дет представлено в краткой форме расширенное изложение результатов Дэнниса и Шнабеля (1979) по выводу в рамках рассматриваемой общей схемы формул пересчета с минималь- ными поправками. Мы опустим длинное доказательство основ- ной теоремы и приведем лишь простейшие примеры ее приме- нения, так как читатель, специализирующийся в этих вопросах, может обратиться к цитируемому оригиналу. Мы уже видели несколько примеров задач, обладающих структурой (11.3.1). В разреженных задачах, рассмотренных в разд. 11.1 и 11.2, где не нужна полная степень общности, ха- рактерная для этого раздела, C(x)=Q, а А (х} содержит нену- левые элементы J(x) и должно быть аппроксимировано мат- рицами, имеющими такую же структуру разреженности. Близ- кими к рассмотренному являются два случая: когда некоторые компоненты функции F(x) линейны или когда F(x) линейна относительно некоторых своих переменных. Примером в пер- вом случае служит 1{х)= 2 дЬ W • дх1 _ f 2л:1 + Зл:2 — 5 \ \1ч{х1, л:з) == «черный ящик»(л;1, х^)}' 3 \_? 3\ / 0 0 \ дЬ(х) I \Q 0; ' 1 дЬ (х) дЬ (х) 1 • дхг / \ дх1 дХг / (11.3.2) ') В оригинале least change secant updates. — Прим перев. 294 Гл. 11. Задачи со специальной структурой 1 Примером во втором случае служит F(Xi, А-2, А'з) Зд-i + niessi (л:2, ^з)\ — Xt + mess2(x2, Хз) , +5л:1 + mess3 (х^, Хз)} о (?OT| (А:г, ^з) g/ni (х;, Хз) / (Л:1, Л'2» xз} == йхг 5<з _, Дотг (Хг, Xs) дтг(хч, Хз) ~ дхг дхз е дтз (x-t, Хз) дтз {хг, Хз) ОХг 300- -1 0 0 |+ о 500 (Эхз ат, (Х2, Ху) дт\ (л:;, Ха) дхг дхъ дт2(х2, Xs) дтч(хг, Хз) ол:2 дхз оотз (Хг, Хз) дтз (х^, Ху) дхз (11.3.3) В обоих случаях С(х) есть известная постоянная матрица, в то время как А(х), возможно, необходимо будет аппроксимиро- вать с помощью методов секущих. Другим примером служит нелинейная задача о наименьших квадратах, рассмотренная в гл. 10, где С(х)== J(x)TJ(x) и A(x)=^ri(x)^rt(x). t=i Напомним, что J(x) вычисляется всегда (аналитически или по конечным разностям) для того, чтобы вычислить У/(л:)== =J{x)TR{x). Поэтому С(х) имеется в нашем распоряжении, а Л (л;) обычно аппроксимируется нулевой матрицей или с при- влечением техники метода секущих. Наиболее интересной пред- ставляется функция общего вида, используемая для наилуч- шего приближения данных ^)=р(/?(л:)), p:R"^R1, ^R^R",. (11.3.4) о которой речь шла в разд. 10.4. Здесь Vf(x)=J(xfVp(R(x)), ^f (x) = J (хУ V2? (R (x}) J (x) + 1; д(^x)L V^ (x) = С (x} + A (x), «) Слово mess, используемое здесь для обозначения функции, переводит- ся как «беспорядок», «путаница». — Прим. перев. 11.3. Вывод формул с минимальными поправками 295 где тХ "-матрица J(x)^-Rr{x). На практике Vp и V2? обычно получаются тривиально, а J {x) вычисляется аналитически или по конечным разностям для вычисления Vf{x), но о получении приблизительно mn2/2 различных вторых частных производных невязки не может быть и речи. Таким образом, мы непосред- ственно имеем С(х), и нам необходимо аппроксимировать А(х). Во всех этих примерах аппроксимация для А (x) по секущим должна отражать специальную структуру именно этой аппрок- симируемой матрицы. Идея, которая будет использована для нахождения подходящей аппроксимации для А(х+), где х+— некоторое приближение, представляет собой естественное обоб- щение того, что мы делали до сих пор. Примем относительно соотношения секущих такое решение, как, скажем Л+ *= eQ(г/#> s)=^{Af e R"^ : Ms==y*}. Кроме того, выберем аф- финное подпространство гФ, определяемое такими свойствами, как симметричность или разреженность, которыми должны об- ладать все аппроксимации Ak. Затем потребуем, чтобы Л+ была среди матриц из sf- r\ Q (y#, s) ближайшей к Л s s^ в соответ- ствующей норме. Это означает, что Л+ будет результатом при- менения к Л «формулы пересчета с минимальной поправкой», обеспечивающей наличие желаемых свойств. Обсудим для некоторых из наших примеров вопросы выбора Q(г/iftг) s), ^и метрики, необходимой для нахождения наимень- шей поправки. Воспользуемся опять обозначениями s^-x^.—Хц и y==F(x^.)—F (Хс) и напомним читателю, что соотношение секущих в гл. 8, Л+s = у, вытекало из того факта, что у = =J(x+)s, если F(x} линейно, и ys=I(x+)s в нелинейном слу- чае. Здесь желательно, чтобы у* ^ А (х+) s. Для первого примера (функция (11.3.2)) видим, что ^ = == (Л е R2^: AI.==(O, 0)} и что норма Фробениуса представля- ется приемлемой мерой для определения величины поправки. Соотношение секущих тоже имеет очень простой вид, так как Л (х+) s •• ( ° \-( ° Av^^W^W^-)- 2 (Х+) — h (Хс) . поэтому мы берем ^^(О, ^ (х+) - h W = (0, у^. Во втором примере (функция (11.3.3)) sS- === {Л е R^3: Ал == ==(0,0,0)7}, и опять представляется разумным использование нормы Фробениуса, но соотношение секущих будет несколько более интересным. Если можно непосредственно вычислять сложную часть Mess (х-г, Хз} в F(xi, xs, Хз), то у нас нет особых трудностей, так как ясно, что логичным будет выбирать у* == Mess ((х+)2, (^+)з) — Mess {(Хс)ч, (Хс)з). Если мы не можем разбить функцию F таким образом, то вместо этого нами ис- пользуется общая методика, которая работает всегда и которая 296 Гл. 11. Задачи со специальной структурой в данном случае, равно как и в первом примере, приводит к тому же самому выбору у*. Если структура А {х) не подсказывает возможности недоро- гого выбора у*, то, коль скоро С(х+) вычисляется всегда, можно за неимением лучшего перейти к стандартному соотно- шению секущих A^s=y*=.y-C(x^s, (11.3.5) которое эквивалентно требованию о том, чтобы аппроксимация всего якобиана /+= С(х+)-{-А+ удовлетворяла стандартному соотношению секущих /+s=(C(^)+A+)s=y. Читатель может убедиться, что (11.3.5) эквивалентно выбору у* в рассмотренных выше примерах. Наш заключительный пример (функция (11.3.4)) является гораздо более интересным, потому что стандартное у* не явля- ется таким же, как у*, получаемое непосредственно из рас- смотрения A{x+)s. Согласно (11.3.5), стандартное y# имеет вид У#=J{x^тVp(R(x^)-J(x,)т^(R{x,))-J{x+)т^p(R(x^)J(x^s. (11.3.6) С другой стороны, прямое обобщение вывода формул (10.3.1)— (10.3.3) наводит на мысль предложить m Л^^^У^У2^)^ 1=1 -E^^^^-^^i- = / (^f Vp {R (x+)) - J {x,Y Vp {R M = y#, (11.3.7) что, вообще говоря, отличается от (11.3.6). Отрадно, что по- следний выбор у* на практике зарекомендовал себя несколько лучше. Для завершения описания условий, налагаемых на аппрок- симацию по секущим для функций (11.3.4), выберем s4- = == [А <=. R"^; Л == Л7}, так как Л (л-) всегда симметрична. Мож- но было бы, конечно, взять в качестве метрики для определе- ния минимальной поправки норму Фробениуса, что привело бы нашу формулу пересчета при С{х+)==0 к симметричной фор- муле секущих (9.1.3). Однако, коль скоро решается задача ми- нимизации, здесь пригодятся рассуждения о масштабировании из разд. 9.3, и они приведут нас к использованию нормы Фро- бениуса после проведения масштабирования с помощью 7, где 11.3. Вывод формул с минимальными поправками 29 7 JJTs•==y при условии, что yтs > 0. Это сводит нашу формулу пересчета при С(х+) = 0 к DFP-формуле. При заданном выборе соотношения секущих Л+е0(г/*, s), подпространства аппроксимаций si и взвешенной нормы Фро- бениуса 11.11 теорема 11.3.1 дает формулу пересчета, представ- ляющую собой решение задачи: найти min ЦД—ЛЦ BeR"X» при условии BeQ(y#, s) ^ si, если, конечно, такая В существует. На самом деле в теоре- ме 11.3.1 рассмотрен более общий случай, когда Q(y*, s) ^ si может быть пусто. В этом случае в качестве Л+ выбирается матрица в si, ближайшая к Л среди множества матриц из si, ближайших к Q(y*, s). Для простоты теорема формулируется в невзвешенной норме Фробениуса, но она остается в силе и для любой взвешенной нормы Фробениуса. Доказательство Дэнниса и Шнабеля использует технику итеративного проек- тирования, которое является прямым обобщением процедуры симметризации Пауэлла, рассмотренной в разд. 9.1. Читатель может вновь обратиться к рис. 9.1.1, подставляя si вместо 5 и у* вместо Ус. Нам понадобится следующий факт: любое аффинное под- пространство si является сдвигом единственного для него под- пространства У. Для любого Ao^si подпространство У= == {Л — Ло: Л <= si} не зависит от Ло. Теорема 11.3.1 [Дэннис и Шнабель (1979)]. Пусть s =И= О, и Рл и Ру — ортопроекторы на si и У. Пусть, далее, Р есть «X «-матрица, /-и столбец которой имеет вид k(^)U I. \ s s / J и Л е si. Если v есть произвольное решение задачи min \\Pv-(y*-As)\\2, _ п osR'" или, что эквивалентно, задачи II /„.т min P^(^)s-(y „sR"!! \s s ^ TO (11.3.8) •As) •-A +^m \s s/ (11.3.9) 298 Гл. 11. Задачи со специальной структурой является матрицей, ближайшей к Л среди матриц из s4-, бли- жайших KQ(y#, s). Если минимум равен нулю, то Л+ е •S4- '"' ^Q(y#, s). Комбинируя (11.3.8) и (11.3.9) можно представить нашу формулу пересчета с минимальными поправками в виде -)• • P+(y*^_As}^ Л+=Л где через P+ обозначена матрица, обобщенно обратная к Р (см. разд. 3.6). Воспользуемся теперь (11.3.10) для вывода раз- реженной формулы секущих и симметричной разреженной фор- мулы секущих, которые рассматривались в разд. 11.2. Для того чтобы вывести разреженную формулу секущих, ис- пользуя теорему 11.3.1, выбираем г/*=г/, ^=^==SP(Z) и Р.л == Ру == PZ, где последний из операторов задан согласно (11.2.5). Тогда имеет место S.S -те,, s s следовательно, P==(\|sтs)d[ag(s'гs.\, и (11.3.10) дает Л^ = Л + Pz (diag ^s^ (У - As} s1', что экривалентно (11.2.7). Для вывода симметричной разреженной формулы пересчета выбираем у* = у, s4- = У = SP (Z) ^ {Л s R"^ : Л = Л7}. Легко показать в качестве упражнения, что для любого AteR^" Pл(M)=Py(M)==—Pz(MJs-MT). Читатель затем может пока- зать, что в этом случае матрица Р из теоремы 11.3.1 задается формулой Р== (11.3.11) 2s's (11.3.10) так что (11.3.10) дает Л+ = Л + Pz (os1' + so7'), и==р+(у— As). (11.3.12) Дальше будет предложено в качестве упражнения показать, что (11.3.12) сводится при SP(Z) == ^"х" и Pz == / к симметрич- ной формуле секущих (9.1.3). Заметим, однако, что в общем случае для вычислений по формуле пересчета (11.3.12) требу- ется знать вектор у, который в свою очередь требует на каж- дой итерации решения новой разреженной линейной системы. 11.4. Анализ методов с минимальными поправками 299 В заключение, используя теорему 11.3.1, дадим формулы пе- ресчета для трех примеров этого раздела. В качестве простого упражнения можно показать, что для первого примера (11.3.2) формула пересчета имеет вид Л^==Л+^ т, #° ,, т, #° V :(П.3.13) '-> (У — As) е1., ((/"-AS) ' V———^———s! ———^Г.———S2, а для второго (11.3.12), если у== [(sg)2 + (sa)2]^—вид /О ^(y#-As)s.^ \eт^(y#-As)s^ Л+=Л+ 0 ^(y#-As)s, ye7; (у»-As) s^. (11.3.14) \ 0 у< (У* - As) ^ Y< (У* - As) V Как уже отмечалось в гл. 10, для функции (11.3.4) аналогом DFP-формулы служит формула'пересчета (10.3.6) с у*, кото- рое здесь задано согласно (11.3.7) (см. также упр. 16 из гл. 10). 11.4. АНАЛИЗ МЕТОДОВ СЕКУЩИХ С МИНИМАЛЬНЫМИ ПОПРАВКАМИ В этом разделе на основе работ Дэнниса и Уолкера (1981) представлены две теоремы, которые дают необходимые усло- вия, налагаемые на у* и ?4' и гарантирующие локальную схо- димость любого метода секущих, получающегося с использова- нием теоремы 11.3.1. Эти теоремы показывают, что любой пред- ставленный в этой книге метод секущих с минимальными поправками локально и «у-сверхлинейно сходится. Они также указывают способ построения формул секущих для других за- дач со специальной структурой. Далее предположим, что матрицы J(x) и С(х) удовлетво ряют условиям Липшица, и что J(x^) обратима. Исходя из наших целей, полезно провести различие между двумя видами формул секущих с минимальными поправками, такими как, скажем, метод Бройдена, которые на каждой ите- рации при вычислениях по формуле пересчета с минимальными поправками используют одну и ту же норму Фробениуса, не- масштабированную или заданную в фиксированной метрике, и такими, как, скажем, DFP-метод, которые можно представить себе как результат перемасштабирования задачи на каждой итерации заново перед вычислениями по формуле пересчета. Теорема будет сформулирована для каждого из этих двух ти- пов методов, но из соображений краткости мы не будем обсуж- дать методы, подобные BFGS, которые обычно рассматрива- 300 Гл, 11. Задачи со специальной структурой ются как проекции (в смысле минимальных поправок) матри- цы, обратной к аппроксимации гессиана. Мы также ограни- чимся здесь взвешенной и невзвешенной нормами Фробениуса, хотя статья Дэнниса и Уолкера носит более общий характер. Упомянутые теоремы можно интерпретировать, грубо говоря, так, что методы секущих с минимальными поправками схо- дятся, если пространство аппроксимаций s^ выбрано обосно- ванно и если соотношение секущих, в котором участвует г/*, выбрано должным образом, и что они сходятся сверхлинейно, если к тому же и г4- выбрано должным образом. Поэтому вы- бор соотношения секущих является решающим для сходимо- сти метода. Этот факт был до некоторой степени завуалирован той простотой, с которой у* могло выбираться для традицион- ных задач или даже для более общих задач из разд. 11.3. Взаимосвязь между s4- и у* выражается в этих случаях всегда допустимым выбором У*-Рл \( \ J{x+ts)dt}-C(x+) s, (11.4.1) L\^o ^ -1 который сводится к стандартному выбору у* == у — С (х+) s, если Л (л;) е ^ для всех х, как это всегда имело место в разд. 11.3. Теорему 11.4.1 предполагается сформулировать с минималь- ным, до некоторой степени, предположением относительно sf-. Оно сводится а предположению о существовании некоторого Л»е^, для которого квазиньютоновская итерация ^^-(С^+Л,)-'^) была бы локально (/-линейно сходящейся. Это требование к S4' является, конечно, довольно незначительным, и если Л (л-») г «й^, то Л^ •= Л (х^) будет заведомо удовлетворять этому условию. Требование к у* также достаточно минимально, и его нужно рассматривать как требование, чтобы расстояние в норме Фро- бениуса от Л(х») или от А(х+) до 0(у*, s) уменьшалось как максимум из \\х+—А:»||Р и \\Хс—Х^\\Р для некоторого р > 0. Дру- гими словами, величина поправки модели должны становиться все меньше по мере приближения к решению. Как и в разд. 11.3, теория включает случай, когда ^-^Q(t/#, s) пусто. Этот слу- чай важен для ряда приложений, относительно которых будут даны краткие комментарии в конце данного раздела. Заметим, что ||-|| используется для обозначения произволь- ной векторной и подчиненной норм, а \\-\\р по-прежнему ис- пользуется для обозначения нормы Фробениуса. 11.4. Анализ методов с минимальными поправками 301 Теорема 11.4.1. Пусть выполнены предложения теоремы 5.2.1. Пусть ^, У, Q(y, s) и Рл определены как в теореме 11.3.1, Pj^r.Qio s) обозначает евклидов проектор на ортогональ- ное дополнение к У r\ Q (О, s) и С: R" -»• R"^. Предположим, что Л. = Рл [J (х^) — С (х.)] и В, == С (лс,) + Л. обладают теми свой- ствами, что и. обратима и существует такое г„ для которого \\B:lV(x,)-(C{x,)+A,)}^^r.<l. (11.4.2) Предположим также, что правило выбора у* (s), где s=x^. —х, либо является стандартным выбором (11.4.1), либо, в более общем случае, обладает совместно с s^ тем свойством, что су- ществуют а > 0 и р > 0, такие, что для любых х, х+ из окрест- ности точки х^ имеет место неравенство Р1 1<y^Q(0, s) (11.4.3) по крайней мере для одного G, которое является ближайшей в si точкой к Q (у* (s), s), где а{х, x+}==max{\lx—x^\\, \\х+—х,\\}. При этих предположениях существуют положительные числа в и 6, такие, что если || Хц — лс. || < s и || Ло — Л, || < б, то после- довательность, определяемая соотношениями -^+1 == Xk + (С (Xk) + Лй)-1 F (x„), Лй+1=(Лй)+е^, а также соотношениями, приведенными в теореме 11.3.1, су- ществует и сходится к л", по крайней мере (/-линейно, причем lim fe->.00 lim || В, k->00 '•k~л^\^ k->oo И • • II -"& — •v. II И Отсюда {xk} сходится (/-сверхлинейно к х^ тогда и только тогда, когда Y .—. У lim [/ (х,} - (С (х.) + Л.)] .... == 0. й->°° II ^ft •\ll В частности, {х^} сходится (у-сверхлинейно к л:,, если W-C(x.)-A(^)e^. Доказательство теоремы 11.4.1 является сложным, как, мо- жет быть, читатель и предполагает, поскольку из него следует локальная ^-сверхлинейная сходимость каждого из обсуждав- шихся в этой книге методов секущих с фиксированной метри- кой. Например, для разреженного метода секущих из разд. 11.2 ^==SP(Z) и С(х)=0, поэтому мы тривиально получаем 302 Гл, 11. Задачи со специальной структурой /1(л:,)== /(х»)— C(xJ== /(xJs ^, и (11.4.2) выполняется при г, == 0. Кроме того, у* ==//== F (х+) — F (х^) представляет собой стандартный выбор (11.4.1). Таким образом, тривиальное след- ствие из теоремы 11.4.1 заключается в том, что разреженный метод секущих является локально сходящимся, и поскольку Л(л:»)е^, то он сходится ^-сверхлинейно к ж, при стандарт- ных предположениях. Тех же рассуждении практически доста- точно для доказательства на основе теоремы 11.4.1 локальной <7-сверхлинейной сходимости разреженного симметричного ме- тода секущих. Сходимость неразреженных вариантов метода секущих и неразреженного метода секущих из гл. 8 и 9 выте- кает, конечно, из того, что они просто представляют собой та- кие частные случаи, в которых структура разреженности не имеет нулевых элементов. Все традиционные методы из гл. 8 и 9 используют стан- дартный выбор, и поэтому более общее и несколько таинствен- ное условие (11.4.3) оказывается ненужным. С другой стороны, оно нужно в методах наименьших квадратов с фиксированной метрикой или с перемасштабированием, использующих у* == :::=J(x^.)TF(x^)—J(x)TF(x^). Дэннис и Уолкер всесторонне разработали эту проблему, и мы лишь напомним, что для 9'== =={М: M=MT} достаточно иметь ||y#-A.s||<aa^, x^\\s\\. Для У общего вида достаточно иметь у*—A^s^Es для некоторой Ее. У, такой, что 1|PJ^Q(0,^K"<^, ^)"- (n•4A) Позже мы действительно увидим пример, для которого сравни- тельно легко можно получить более строгий результат: ||?||^ ^ w(x,x+}''. Утверждение теоремы 11.4.2, относящееся к итеративно пе- ремасштабируемым методам секущих с минимальными поправ- ками отличается от утверждения теоремы 11.4.1, относящегося к методам с фиксированной метрикой, тем, что должны уточ- няться правила выбора у и у* как функций от s == х+—х. Раз- ница простая: матрицы масштабирования принадлежат Q{y,s), а аппроксимации по секущим принадлежат Q(y*, s). Короче говоря, у стараются выбирать похожим на J(x^)s, а у* — на A(x,)s. Для аффинного подпространства ^ и симметричной поло- жительно определенной матрицы W удобно иметь обозначение РЛ,У, которое определяет ортогональную проекцию на ^ в скалярном произведении, порождающем норму ||Л4||у^ =[trace(W-lM.W-\MT)}^2 в R"><". Если W^JJ7, a M симмет- рична, то полезно иметь в виду, что \\M\\w = Ц.ММ/-7'!^. 11.4. Анализ методов с минимальными поправками 303 Теорема 11.4.2. Пусть выполнены предположения теоремы 5.2.1. Пусть г4-, У и Q(y, s) определены как в теореме 11.3.1 и ^y^Q(o,s),w обозначает проектор на ортогональное дополне- ние к yr\Q(Q, s) в скалярном произведении, порождающем норму ||Л1||у, и С: R" —> R^". Пусть, далее, матрица J(х,} сим- метрична и положительно определена и У обладает тем свой- ством, что для любых s и у, таких, что sтy > 0, проектор Ру, w не зависит от любой конкретной положительно определенной симметричной матрицы W^Q(y,s). Кроме того, предположим относительно ^, что Л.=^,/(^)[/(^.)-С(х.)] и Й.=Л.+С(^) таковы, что В, обратима, и существует такое /'„ для которого ^B;l[/(x^-(C(x,)+AM^^<l. Предположим также, что существуют а,, с^ >- 0 и р > 0, такие, что правило выбора у (s) удовлетворяет условию |ly-/(A-.)s||<ai(T(A-, ^INI, а правило выбора у* (s) представляет собой либо стандартный выбор y*==P^w[(\^J(x+ts)dt)-C(x^)]s для W = J{х^) или некоторого WeQ(y,s), либо обладает совместно с ^ тем свойством, что для любых х и х+ из окрест- ности точки л:, выполняется неравенство Й^.Ж,),^0-^)!!^^, ^р (Н.4.5) для любой симметричной положительно определенной матрицы WeQ {y,s) и по крайней мере для одной G, которая в ^-нор- ме является ближайшей в ^ точкой к Q{y*, s). В рамках этих предположений существуют положительные константы е и б, такие, что если |[хо—л:»||<е и |[Ло—Л»||«<6, то существует последовательность, определяемая соотношениями Xk+1 = Xk — (С (Xk) + Ak}~1 J (Xk), Ak+i-=(Ak)+e=^-, в которых Afe+i получается по формуле секущих с минималь- ными поправками, построенной относительно si и Q(y^,s^\ в У^д-норме, где Wk^Qd/k'sk)• Эта последовательность схо- дится по крайней мере ^-линейно в л;,. Кроме того, ll^.-^ll lim k->00 lim ft->00 304 Гл. 11. Задачи со специальной структурой Следовательно, {х^} сходится ^-сверхлинейно к л:, тогда и только тогда, когда X.,— X lim [W-(<W+A.)]- В частности, {xk} сходится ^-сверхлинейно к л:,, если (/ (д:„) — -С(^))е^. Рассуждения относительно условий (11.4.3), следующие за теоремой 11.4.1, применимы и к условиям (11.4.5). Используя это, предлагается в качестве упражнения применить теоре- му 11.4.2 для доказательства локальной (/-сверхлинейной схо- димости метода секущих Дэнниса, Гэя и Уэлша, приведенного в разд. 10.3 для решения нелинейной задачи о наименьших квадратах. Теорема 11.4.2, конечно, доказывает также и схо- димость DFP-метода. В общем случае теоремы 11.4.1 и 11.4.2 говорят о том, что если вы используете правильно построенное пространство аппроксимаций ^ и при этом знаете, как пра- вильно выбирать соотношение секущих для этого класса ап- проксимаций, то принцип минимальных поправок является пре- восходным способом выбора формул секущих. В заключение заметим, что открывается ряд интересных возможностей, если опустить требование к si-, чтобы А{х}<^.М- для любых .<eR". К этому мы приходим, когда решаем ап- проксимировать Л (х) последовательностью матриц, имеющих более простую структуру, чем А(х). Например, в версии нели- нейного алгоритма Якоби, использующего идею метода секу- щих, итерация имеет вид Xk+i=Xk— A'k\F(Xk), где матрица Лд, диагональна, даже если J (х) не является диа- гональным, т. е. si- == {диагональные матрицы <= R»><"}, но /(х)^.Если F(x.)=0 и ||/-(diag(/(^))-i)/(^)||<l, то теорема 11.4.1 говорит о том, что при надлежаще заданном правиле выбора у* метод будет все же локально сходящимся. Теорема 11.4.1 наводит нас также на мысль выбирать вели- чину у* так, чтобы она аппроксимировала ((diag(/(^)))s),=^^-s^f,(^+s,e,)-^(^)^y#, если Sf =^= 0, и у* == 0, если s; = 0. В качестве несложного уп- ражнения предлагается показать, что для такого выбора yi имеет место (11.4.4), где У] s i О, если S{ =/= О, если Si = 0, 11.5. Упражнения 305 и поэтому данный метод является при соответствующих пред- положениях (/-линейно сходящимся. В приведенном выше примере следует отметить важный мо- мент, который заключается в том, что выбор у* отличается от стандартного выбора (11.3.5), который давал бы у* =у= ==Р(х^.)—F (х), так как С(х^}=0. В общем случае стандарт- ное правило (11.3.5) будет неудовлетворительным при Л(х*)^^, поскольку это приводит к тому, что у^ аппрокси- мирует A(x^)sk, тогда как мы хотим, чтобы оно аппроксими- ровало (P^(A(-^)))Sfe=A,Sfe. Существуют другие практические примеры, в которых пространство аппроксимаций s^ имеет бо- лее простую структуру, чем {Л (л:)}, и во многих из этих при- меров особенно тяжело подобрать подходящее правило вы- бора у* (см., например, упр. 19). Если мы могли бы найти простую идею относительно подходящего выбора значений у*, подобную стандартному условию (11.3.5), то теоремы Дэнни- са—Уолкера подсказали бы нам, что эти м-етоды будут ло- кально сходящимися, и что скорость сходимости будет зави- сеть от того, насколько близко Л (д-„) находится к ^. Этот вопрос служит предметом современных исследований. [См. Дэн- нис и Уолкер (1983).] 11.5. УПРАЖНЕНИЯ 1. Пусть F: R"->-R", и пусть J (х) =F'(x) обладает тем свойством что J(x)ii = 0, если |t—j\ > т, где т < п/2. Используя технику разд. 11.1, ответьте: сколько требуется вычислений F(x) для получения конечно-разност- ной аппроксимации Цх)? 2. [Это упражнение взято из работы Пауэлла и Тоинта (1979).] Пусть J(x) e R^5 имеет следующую структуру расположения ненулевых элементов Х Х х х х Х X х х х Покажите, что техника разд. 11.1 требует для аппроксимации 1(х) полных пять вычислений F(x} дополнительно к F(Xc). Однако если матрица /(-с) симметрична при всех х, то покажите, что 1(х) можно аппроксимировать, используя только два дополнительных вычисления F(x). 3. Пусть SP(Z) определено согласно (11.2.3). Покажите, что решением задачи: найти min \\В— А\\р при условии В е SP (Z) В^ЦПХп является В=Рг(А), где оператор Pz определен согласно (11.2.5). 306 Гл. 11. Задачи со специальной структурой 4. Используя неравенство Коши — Шварца, покажите, что решением для (11.2.8) является (11.2.9). 5. Пусть F: R"-»-R" непрерывно дифференцируема в открытой выпук- лой области ДсР", х, x+e=D, s=x+—x, у ==F (х^) — F (x), s; опреде- лено согласно (11.2.6). Докажите, что если s;=0, то у,=0. [Указание: вос- пользуйтесь формулой (4.1.8).] 6. Покажите на примере, что матрица, обратная к разреженной, может не иметь нулевых элементов. Рассмотрите, например, Л е R"X", такую, что Л</=. |<-'Л=1, 1»-Л>1. (Такая матрица возникает при вычислении кубических сплайнов.) 7. Пусть Л е R"^ есть трехдиагональная симметричная положительно определенная матрица. Постройте алгоритм и организуйте структуру данных для решения линейной системы Ах == Ь, используя 0(п) арифметических опе- раций и 0(п) памяти. Почему так важно, чтобы Л была положительно опре- деленной? 8. Вычислите Vp(R(x)} и ^р(Р(х)) для функций (10.4.4) и (10.4.5), применяющихся для наилучшего приближения данных. Воспользуйтесь этими выражениями для вычисления в каждом случае Vf(x) и ^(х). 9. Покажите, что значения у*, полученные в разд. 11.3 для функций (11.3.2) и (11.3.3), эквивалентны стандартному выбору (11.3.5). 10. Пусть f(x) есть нелинейная функция наименьших квадратов (11.3.4), для которой р {R (х)) == -у R {х)1' R (х). Покажите на примере, что стандарт- ный выбор у* (11.3.6) и выбор (11.3.7), использующийся в разд. 10.3, могут различаться. 11. Проработайте доказательство теоремы 11.3.1, используя работу Дэн- ниса и Шнабеля (1979), либо см. работу Пауэлла (1981) и Гриванка (1982). 12. Пусть Л = SP,(Z) ^ {Л е= R^" : A=AT}. Покажите, что Р^ (М) = ^^Р^М+М1'). 13. Пользуясь теоремой 11.3.1 и упр. 12, завершите вывод разреженной симметричной формулы секущих с минимальными поправками. Покажите так- же, что матрица Р, заданная согласно (11.3.11), положительно определена, если s^O для всех f [см. Деннис и Шнабель (1979)]. 14. Покажите, что разреженная симметричная формула секущих (11.3.12) сводится к симметричной формуле секущих (9.13) при SP (Z) == R"-", т. е. ^=/- 15. Используя теорему 11.3.1, получите формулы пересчета с минималь- ными поправками (11.3.13) и (11.3.14) соответственно для функций (11.3.2) и (11.3.3). 16. Прочтите статью Дэнниса и Уолкера (1981) и затем попытайтесь дать доказательство теорем 11.4.1 и 11.4.2. (Эти теоремы представляют собой незначительное упрощение теорем, приведенных в статье.) 11.5. Упражнения 307 17. Воспользуйтесь теоремой 11.4.2 и докажите локальную (/-сверхлиней- ную сходимость метода секущих Дэнниса; Гэя и Уэлша для нелинейных наи- меньших квадратен x^^-xk+(J(xk)TJ{x„}+AkГ^(xk}т^(xk}^ где Л* пересчитывается согласно (10.3.б),(/^ задано в (10.3.3). 18. Покажите, что вариант нелинейного метода Якоби, использующий идею метода секущих и описанный в разд. 11.4, является (у-линейно сходя- щимся. [Указание: покажите, что ||?|| ^ сиа(х, x+)i'.] 19. В алгоритме Дэпниса и Марвила (1982) разреженная матрица J(xie) аппроксимируется на протяжении конечного числа итераций с помощью мат- рицы вида LoUk, где I(xa) == LyUa и Ui, s {матрицы с такой же структурой разреженности, что и Ua}. Затем, когда алгоритм решает, что якобиан стал слишком плохим, 3(xis+t) = L(x/s+i)-U(Xf!+i} перевычисляется с использова- нием конечных разностей, и процесс возобновляется сначала. Что утверждает теорема 11.4.1 относительно того, каким должно быть у* для этого алго- ритма? Как можно было бы реализовать этот выбор? Какой критерий вы могли бы использовать для принятия решения о том, когда производить вос- становление? Рассмотрите вопрос о привлечении техники выбора ведущего элемента. 20. В алгоритме Джонсона и Остриа (1983) L [/-разложение пересчиты- вается для получения соотношения LUs == у путем пересчета строка за стро- кой U и L-1, так чтобы имело место Us—L-'t/= 0. Напомним, что мат- рица L-1 тоже является нижней треугольной. Посмотрите, не сможете ли вы сами вывести на основе этой подсказки остроумную формулу пересчета Джон- сона и Остриа до того, как вы прочтете их статью. Приложение А. Модульная система алгоритмов безусловной минимизации и и 1 \ и решения нелинейных уравнении ' ОГЛАВЛЕНИЕ Предисловие . ....................... 311 I. Описание ....................... 314 I. 1. Назначение модульной системы алгоритмов ......... 314 I. 2. Организация модульной системы алгоритмов ......... 316 1.3. Организация отдельных модулей ............. 318 1.4. Ввод и вывод ..................... 323 I. 5. Модули для основных алгебраических операций ........ 324 II. Драйверные модули и руководство для безусловной минимизации . . 325 II. 1. Алгоритм D6.1.1 (UMDRIVER). Драйвер модульной системы алго- ритмов безусловной минимизации ............. 325 11.2. Перечень модулей безусловной минимизации ......... 329 11.3. Руководство 1. Выбор алгоритмических вариантов для безусловной минимизации . .................... 331 11.4. Руководство 2. Выбор параметров для безусловной минимизации 333 II. 5. Руководство 3. Соображения относительно памяти для безусловной минимизации . .................... 336 11.6. Алгоритм D6.1.2 (UMEXAMPLE). Драйвер алгоритма безусловной минимизации, использующего линейный поиск, конечно-разностные градиенты и (растеризованные аппроксимации гессиана по секущим 339 III. Драйверные модули и руководство для нелинейных уравнений . . . 341 III. 1. Алгоритм D6.1.3 (NEDRIVER). Драйвер модульной системы алго- ритмов решения нелинейных уравнений ........... 341 III. 2. Перечень модулей для нелинейных уравнений ........ 346 III. 3. Руководство 4. Выбор алгоритмических вариантов решения нели- нейных уравнений ................... 347 III. 4. Руководство 5. Выбор параметров для нелинейных уравнений . . 349 III. 5. Руководство 6. Соображения относительно памяти для нелинейных уравнений . ..................... 351 III. 6. Алгоритм D6.1.4 (NEEXAMPLE). Драйвер алгоритма решения не- линейных уравнений, использующего поиск вдоль ломаной и ко- нечно-разностную аппроксимацию якобиана ......... 353 ') Автор — Р. Шнабель. Модульная система алгоритмов 309 IV. Отдельные модули . .................. 354 (U) = использование только для безусловной минимизации (N) == использование только для нелинейных уравнений IV.1. Модули, задаваемые пользователем (требования к ним) .... 354 (U) FN. Подпрограмма вычисления целевой функции f(x) для без- условной минимизации . ............... 355 (U) GRAD. Подпрограмма вычисления вектора градиента Vf{x) (не- обязательная) . .................. 355 (U) HESS. Подпрограмма вычисления матрицы Гессе V'if(x} (не- обязательная) .................... 356 (N) FVEC. Подпрограмма вычисления функции F(x), задающей не- линейные уравнения . ................ 357 (N) JAC. Подпрограмма вычисления матрицы Якоби J (х) (необяза- тельная) . ..................... 358 IV. 2. Модули, задаваемые разработчиком (частичное описание) . . . 358 (U) UMINCK. Проверка входных параметров для безусловной ми- нимизации . .................... 358 (N) NEINCK. Проверка входных параметров для нелинейных урав- нений . ...................... 360 IV. 3. Алгоритмические модули (приведены полностью) ...... 362 (N) NEFN. Вычисление суммы квадратов для нелинейных уравнений 362 Al.3.1 (MACHINEPS). Вычисление машинного эпсилон .... 363 (N) A3.2.1 (QRDECOMP). Q^-разложение ...... ... 363 (N) A3.2.2 (QRSOLVE). Q^-решение ........ '. . . 365 (N) A3.2.2a (RSOLVE). ^-решение для Q^-решения . . . .366 А.3,2.3 (CHOLSOLVE). Драйвер решения по Холесскому . . 366 А3.2.3а (LSOLVE). L-решение ............ 367 A3.2.3b (LTSOLVE). //-решение .......... 368 (N) A3.3.1 (CONDEST). Оценивание числа обусловленности верхней треугольной матрицы ..... ......... . 368 АЗ.4,1 (QRUPDATE). Пересчет Q^-разложения ..,.'.. 370 А3.4.1а (JACROTATE). Вращение Якоби ....... 371 (N) A3.4.2 (QFORM). Формирование Q из Q^-разложения . . . . 372 А5.4.1 (PDJAC). Конечно-разностная аппроксимация якобиана 373 (U) A5.5.1 (MODELHESS). Формирование гессиана модели .... 374 А5.5.2 (CHOLDECOMP). Возмущенное разложение Холесского 377 (U) A5.6.1 (FDHESSQ). Конечно-разностная аппроксимация гессиа- на с использованием значений аналитически заданного гра- диента . ..................... 379 (U) A5.6.2 (FDHESSF). Конечно-разностная аппроксимация гессиа- на с использованием значений функции .......... 380 (U) A5.6.3 (FDGRAD). Аппроксимация градиента по разностям вперед . .................... 381 (U) A5.6.4 (CDGRAD). Аппроксимация градиента по центральным разностям .... ... . 382 А6.3.1 (LINESEARCH). Линейный поиск . '. '.'.''''' 384 A6.3.1mod (LINESEARCHMOD). Линейный поиск с условием на производную по направлению .... ....... 387 А6.4.1 (HOOKDRIVER). Драйвер локально ограниченного оп- тимального («криволинейного») шага ....... , . 390 А6.4.2 (HOOKSTEP). Локально ограниченный оптимальный («криволинейный») шаг ........ ........ 392 А6.4.3 (DOGDRIVER). Драйвер шага вдоль кривой с двойным изломом . ..................... 395 А6.4.4 (DOGSTEP). Шаг вдоль кривой с двойным изломом . . 396 310 Приложение А. А6.4.5. (TRUSTREGUP). Пересчет доверительной области мо- дели . ...................... 398 (N) A6.5.1 (НЕМОДЕЛ). Построение аффинной модели для нели- нейных уравнении .................. 402 (N) A6.5.1fac (NEMODELFAC). Построение аффинной модели для нелинейных уравнений с' привлечением факторизованных фор- мул секущих . ................... 405 (U) A7.2.1 (UMSTOP). Критерии останова для безусловной миними- зации . ...................... 408 (U) A7.2.2 (UMSTOPO). Критерии останова для безусловной мини- мизации перед начальной итерацией ........... 409 (N) A7.2.3 (NESTOP). Критерии останова для нелинейных уравне- ний ........................ 411 (N) A7.2.4 (NESTOPO). Критерии останова для нелинейных уравне- ний перед начальной итерацией ............. 413 (N) A8.3.1 (BPOYUNFAC). Формула пересчета Бройдена, нефакто- ризованная форма . .................. 414 (N) A8.3.2 (BROYFAC). Формула пересчета Бройдена, факторизо- ванная форма .................... 415 (U) A9.4.1 (BFGSUNFAC). Положительно определенная формула секущих (BFGS), нефакторизованная форма ....... 416 (U) A9.4.2 (BFGSFAC). Положительно определенная формула секу- щих (BFGS), факторизованная форма . ..... . 418 (U) A9.4.3 (INITHESSUNFAC). Начальное значение гессиана для формулы секущих в нефакторизованной форме ....... 420 (U) A9.4.4 (INITHESSFAC). Начальное значение гессиана для фор- мулы секущих в факторизованной форме ......... 421 Предисловие Приложение к данной книге преследует различные цели, кото- рые обсуждаются в разд. I. 1 приложения А. Следующие заме- чания касаются того, как использовать приложение при раз- работке заданий для самостоятельной работы. Их рекоменду- ется прочитать после чтения разд. I. 1 и I. 2 приложения А. Ежегодно в течение последних пяти лет я использовал в различных формах псевдопрограммы из приложения А при разработке заданий для самостоятельной работы группы стар- шекурсников, специализирующихся в оптимизации. Студенты, работая обычно по двое, выбирают определенный метод без- условной оптимизации или решения нелинейных уравнений и пишут полностью программу, используя псевдопрограммы из приложения А. Как правило, каждая группа программировала только одну глобальную стратегию (например, линейный поиск, криволинейный шаг или шаг вдоль ломаной), но несколько ва- риантов вычисления производных (например, конечно-разност- ная аппроксимация и аппроксимация по секущим). Они пи- сали и отлаживали свои программы в течение семестра, а затем прогоняли их на различных тестовых задачах, таких, как за- дачи из приложения В. Я пришел к выводу, что эти проекты составляют наиболее полезную часть курса, основанного на данной книге. Даже если псевдопрограммы и полностью дета- лизированы, учащиеся должны тщательно в них разобраться, чтобы успешно реализовать и устранить неизбежно возникаю- щие ошибки программирования. Наблюдение за работой алго- ритмов в их завершенном виде на тестовых задачах тоже весь- ма поучительно. В особенности это справедливо, когда студен- ты выводят на печать подробную информацию о процессе вы- бора шага, например о пробных значениях параметра линей- ного поиска на каждой итерации, и когда они отвечают на вопросы, возникающие из анализа этой информации (такие, как скажем «Использовалось ли когда-либо дробление шага с кубической интерполяцией?» «Как часто брались значения 312 Приложение А. по умолчанию для шагов дробления?»). Представляется также поучительным сравнение конечно-разностных методов и мето- дов секущих на одних и тех же задачах. Этим проектом можно заниматься в течение семестра. Что касается начала семестра, то для безусловной минимизации, например, группы могут написать подпрограммы вычисления машинного эпсилон и обратного хода решения по Холесскому, а подпрограммы вычисления конечно-разностных производных и построения гессиана модели с использованием возмущенного разложения по Холесскому—после того, как они будут прой- дены в гл. 5. После изучения гл. 6 они могут выбрать глобаль- ный метод и запрограммировать его вместе с драйверной под- программой. Добавление к ним подпрограмм останова из гл. 7 дает полностью завершенную программу, реализующую конеч- но-разностный модифицированный метод Ньютона, которую учащиеся могут начать тестировать. Ее затем можно заменить на BFGS-метод после того, как в гл. 8 и 9 будут пройдены формулы секущих. Аналогичные замечания применимы и к учебному проекту по решению нелинейных уравнений. Для учеб- ных проектов полезны следующие два упрощения: можно пре- небречь матрицами масштабирования (т. е. предположить, что во всех случаях Dx = Dp = /) и использовать более простой для понимания, но менее эффективный способ хранения мат- риц, принятый в псевдопрограммах (см. руководства 3 и 6). Исключение масштабирования фактически не влияет на тести- рование задачи, так как почти все стандартные задачи хорошо масштабированы. Что касается параметров типа допусков, то проще всего использовать их значения по умолчанию, приве- денные в руководствах 2 и 5. Поскольку псевдопрограммы использовались в учебных проектах на протяжении многих лет, в них были внесены не- которые изменения. Первоначально я строго придерживался управляющих структур языка Паскаль с операторами BEGIN и END. Учащиеся, не знакомые с блочно структурированными языками, с некоторым трудом отслеживали структуру, поэтому я перешел на гибкую форму «Паскаль/схема нумерации», ко- торая лежит в основе теперешних псевдопрограмм. Этот пере- ход был равнодушно встречен студентами, знакомыми с блоч- но-структурированными языками, и оказал большую помощь тем, кому знаком только Фортран. Второе изменение заключа- лось в том, чтобы полностью расширить в псевдопрограммах запись произведений, содержащих матрицы. Первоначально псевдопрограммы содержали выражения типа t-<—H*s, где Н— симметричная матрица, у которой хранится только верхняя треугольная часть, но из-за треугольного способа хранения матрицы возникало множество ошибок. Мои учащиеся считают псевдопрограммы в их настоящем виде легкими для использо- Модульная система алгоритмов 313 вания независимо от того, на чем они пишут программы—на Фортране или на блочно-структурированном языке. Для мно- гих из них более трудными оказываются отладка и тестиро- вание систем программного обеспечения таких размеров. Этим вопросам посвящены замечания в начале разд. 7.3. К сожалению, ошибки в псевдопрограммах неизбежны. Не- которые алгоритмы не использовались моими студентами и мо- гут содержать алгоритмические ошибки. В остальных алгорит- мах возможны типографские опечатки. Я постарался сократить число ошибок личным участием в подготовке приложения, и использовал возможности по редактированию текстов, предо- ставляемые операционной системой UNIX на ЭВМ VAX11/780 факультета информатики Университета Колорадо. Я буду под- держивать в ЭВМ список ошибок и готов выслать их любому, кто обратится ко мне с такой просьбой, послав готовый к от- правке конверт с обратным адресом. Обращение по поводу ошибок любого преподавателя, использующего эти псевдопро- граммы для учебных проектов, только приветствуется. Другая возможность для организации учебных проектов за- ключается в том, чтобы получить готовую программу для ре- шения нелинейных уравнений или безусловной минимизации и сделать так, чтобы студенты прогоняли ее на тестовых зада- чах и, может быть, даже меняли некоторые ее части, если, ко- нечно, имеется исходный текст программы. В этих целях можно воспользоваться программой Шнабеля, Вайса и Кунца, почти полностью соответствующей приведенной в этом приложении псевдопрограмме для безусловной минимизации. Программу можно запросить через автора. Р. Шнабель I. ОПИСАНИЕ Назначение модульной системы алгоритмов Приложение А содержит модульную систему полностью дета- лизированных алгоритмов решения задач безусловной миними- зации и систем нелинейных уравнений. Под модульностью мы понимаем то обстоятельство, что каждая явно выраженная функциональная компонента этих методов представлена одним или более отдельными модулями. Например, каждой из таких компонент, как проверка необходимости останова, вычисление производной, факторизация матрицы и стратегия выбора шага («глобальный метод»), соответствует один или более отдель- ных модулей. Слово система отражает тот факт, что для неко- торых стадий процесса минимизации или решения нелинейных уравнений имеются несколько вариантов модулей, так что с помощью различных их комбинаций можно получать раз- нообразные методы. Кроме того, методы безусловной миними- зации и решения нелинейных уравнений имеют несколько об- щих компонент. Существуют, например, три-различных способа глобализации (линейный поиск, поиск вдоль ломаной и криво- линейный шаг), которые можно использовать на принципах взаимозаменяемости совместно с любыми другими частями алгоритмов решения обоих типов задач. Имеются также не- сколько вариантов для вычисления или аппроксимации произ- водных (аналитическое вычисление, конечно-разностная ап- проксимация и аппроксимация по секущим). И наконец, вы- ражение полностью детализированные алгоритмы означает, что каждый модуль полностью определен, включая память и лю- бые параметры типа допусков или эвристические решения, ко- торые обычно опускаются в описаниях более высокого уровня. Имеется пять основных причин, по которым мы включили эти алгоритмы в данную книгу: 1) дать полностью детализированное описание каждого рас- смотренного в книге метода безусловной минимизации или ре- шения нелинейных уравнений. Алгоритмы в основном тексте книги излагаются на таком уровне детализации, который мы считаем достаточным для основательного изучения предмета. Читатели, желающие познакомиться с деталями, могут найти их в этом приложении; Модульная система алгоритмов 315 2) показать, что модульная конструкция квазиньютоновских алгоритмов (алгоритм 6.1.1), к которым мы обращались на протяжении всего предыдущего изложения, может быть дове- дена до уровня программной реализации. Это подтверждает ту главную мысль основной части книги, что все обсуждав- шиеся подходы к решению обоих типов задач представляют со- бой разновидности одной и той же конструкции; 3) обеспечить методикой преподавания с использованием учебных проектов. Мы убедились, что программная реализация одного или более методов из этой системы представляет собой превосходный способ закрепления материала, представленного в книге. Учебные проекты обсуждаются, кроме того, в преди- словии к приложению; 4) способствовать использованию структурированного и управляемого программного обеспечения в тестировании новых методов оптимизации и решения связанных с этим задач. Если готовые программы по оптимизации написаны в модульном стиле, как, например, рассматриваемые нами, то можно раз- работать и протестировать много новых методов, изменив только один или несколько модулей. Это обеспечивает пользо- вателя простым управляемым средством тестирования. Упоми- нающаяся ниже программа Шнабеля, Вайса и Кунца исполь- зовалась именно в таком качестве; 5) помочь тем прикладникам, которым необходимо разра- ботать свои собственные программы. Подчеркнем, что всякий раз, когда это возможно, следует пользоваться библиотеками вычислительного программного обеспечения. Однако из-за спе- цифики того или иного класса прикладных задач иногда необ- ходимо разрабатывать специализированные программы на базе либо копий существующих подпрограмм, либо их адапти- рованных вариантов. Эталоном в подобных случаях могут слу- жить алгоритмы из приложения. Готовая программа для безусловной минимизации, которая почти полностью, но не в точности соответствует алгоритмам в данном приложении, была разработана Шнабелем, Вайсом и Кунцем (1982). Назначение настоящего приложения вовсе не состояло в том, чтобы создать эту программу, потому что в раз- личных библиотеках программного обеспечения содержатся хорошие программы для безусловной минимизации, включая библиотеки Harwell, IMSL, MINPACK. и NAG. Программа была разработана для тестирования алгоритмов из приложе- ния и для того, чтобы обеспечить упоминавшимися выше сред- ствами для проведения исследований. Ее, как правило, можно запросить через автора и использовать для учебных проектов или в качестве дополнительного материала книги. Алгоритмы представлены в виде псевдопрограмм, а не про- грамм на реальном языке программирования (например, на 316 Приложение А. Фортране) в основном ради облегчения их чтения. Алгоритмы на псевдоязыке программирования отличаются от алгоритмов на языке программирования для ЭВМ тем, что в первых со- хранены математические обозначения, например греческие п буквы (^), символика суммирования ( ^ Н [I, /']), скалярное »=/+! произведение векторов (г^ау) и нормы (И-кЦа). Используемый нами псевдоязык был разработан так, чтобы его можно было легко перевести на Фортран или на блочно-структурированные языки, подобные Паскалю и Алголу, и чтобы он мог быть реа- лизован в большинстве вычислительных сред. Он связан с псевдоязыком программирования, использованным Вандерграф- том (1978). Оставшаяся часть разд. I, равно как и разд. II и III этого приложения, будет интересна прежде всего читателям, которые ц собираются реализовывать собранные здесь алгоритмы. В разд. I. 2 объясняется, каким образом объединить части при- ложения для создания одного, нескольких или целой системы >, алгоритмов решения задач безусловной минимизации и нели- j нейных уравнений. Это включает в себя описание структуры j разд. II и III, которые содержат более подробные инструкции по использованию данного приложения при создании алгорит- мов соответственно безусловной минимизации и решения не- линейных уравнений. В разд. 1.3 обсуждаются вопросы пере- вода отдельных модулей системы на язык программирования для ЭВМ, включая вопросы влияния вычислительной среды. В разд. 1.4 и 1.5 кратко обсуждаются два более частных воп- роса программирования этих алгоритмов. Раздел IV содержит текст полностью детализированных мо- дулей, соответствующих различным частям наших методов. Это должно представлять интерес для всех читателей как до- полнение к обсуждению методов в основной части данной кни- ги. Модули пронумерованы в соответствии с их предыдущим изложением: первые две цифры из трех, составляющих номер алгоритма, отвечают номеру раздела, в котором рассматривался этот метод. Например, алгоритмы с А7.2.1 по А7.2.4 являются алгоритмами останова, рассмотренными в разд. 7.2 основной части книги. Модулям также даны короткие имена описатель- ного характера (например, алгоритм А7.2.1 назван UMSTOP), которые используются внутри псевдопрограмм для повышения надежности. 1.2. Организация модульной системы алгоритмов Организация данной системы алгоритмов безусловной миними- зации и решения нелинейных уравнений отражает общую ква- Модульная система алгоритмов 317 зиньютоновскую схему, представленную в разд. 6.1 основной части книги. Методы для обоих типов задач разбиваются на ряд отдельных функциональных компонент (например, про- верка необходимости останова, вычисление производных, ме- тод глобализации), и каждая компонента реализуется одним или более модулями. В некоторых случаях (вычисление произ- водных или их аппроксимация, метод глобализации) для од- ной компоненты дается -ряд вариантов, каждый из которых можно выбрать. Полный метод безусловной минимизации или решения нелинейных уравнений создается выбором и програм- мированием алгоритмов для каждой из отдельных компонент, а затем объединением их со помощью драйверной программы. Алгоритм 6.1.1 в том виде, как он был представлен в основ- ной части книги, содержал указания на то, какие требуются компоненты, а также служил драйвером, однако здесь требу- ется более детальное его рассмотрение. В разделе Описание алгоритмов D6.1.1 и D6.1.3 (см. разд. II. 1 и III. 1) приведены шаги методов безусловной минимизации и соответственно ре- шения нелинейных уравнений. Некоторые из этих шагов явля- ются просто строками программы в драйверном алгоритме, тогда как другие представляют собой упоминавшиеся выше компоненты, которые отвечают одному или более отдельным модулям. В разд. 11.2 и III. 2 приведены отдельные компонен- ты и модули, используемые для их реализации, в том числе и иные варианты, если таковые существуют. Раздел Алгоритм алгоритмов D6.1.1 и D6.1.3 содержит псевдопрограммы драйверных алгоритмов, которые следует ис- пользовать для программной реализации всей системы алго- ритмов безусловной минимизации или соответственно решения нелинейных уравнений со всеми вариантами для метода глоба- лизации и для вычисления производных. Драйвер для програм- мы Шнабеля, Вайса и Кунца (1982) аналогичен первому из них. Для программной реализации одного (или нескольких) отдельно взятого метода, а не всей системы в целом достаточно урезанного варианта драйвера. Алгоритмы D6.1.2 и D6.1.4 слу- жат примерами реализации одного метода: безусловной мини- мизации и решения нелинейных уравнений. Аналогично можно создать драйверы для других отдельных методов, выбирая подходящие части из алгоритма D6.1.1 или D6.1.3. К каждому головному драйверному алгоритму (D6.1.1 и D6.1.3) добавляется перечень упоминавшихся выше модулей и три руководства. Руководство 1 содержит указания по вы- бору среди алгоритмических возможностей, предоставляемых для метода глобализации и для вычисления производных при безусловной минимизации. Оно задумано как совет пользова- телю этой системы и как информация для студентов и читате- лей, интересующихся этими проблемами. В руководстве 2 318 Приложение А. обсуждаются вопросы выбора параметров в критерии останова и всех других параметров, используемых в алгоритмах безус- ловной минимизации. В готовой программной реализации эти параметры могли бы выбираться пользователем или задаваться определенными значениями в программе, причем в учебных проектах обучающиеся выбирали бы их на основе руковод- ства 2. В руководстве 3 подробно обсуждаются вопросы хра- нения матриц, требующихся в программе по безусловной минимизации. Мы пришли к выводу, что эффективное распреде- ление памяти представляет собой слишком сложный аспект алгоритмов, чтобы его можно было полностью отразить в описа- нии псевдопрограмм, предполагающих главным образом лег- кость чтения. В руководстве 3 и в разделах некоторых моду- лей памяти мы пытаемся выправить ситуацию. Руководства 4—6 содержат информацию для решения нели- нейных уравнений, аналогичную приведенной в руковод- ствах 1—3. В случаях когда информация дублируется, в руко- водствах по решению нелинейных уравнений даются ссылки на соответствующие руководства по безусловной минимизации. 1.3. Организация отдельных модулей Структура каждого модуля в разд. IV и драйверных модулей D6.1.1—4 имеет следующий вид: Назначение Входные параметры Входно-выходные параметры Выходные параметры Значения кодов возврата Память Примечания Описание Алгоритм В разделе Назначение в одном или двух предложениях кратко излагается назначение модуля. В трех разделах, рас- сматривающих параметры, приводятся имена, типы данных и дополнительная информация нерегулярного характера о всех параметрах модуля. При вызове модуля другими модулями в системе порядок следования аргументов в операторе вызова соответствует порядку следования параметров в этих разделах. Раздел, посвященный кодам возврата, имеется в таких алго- ритмах, как, скажем, проверки на необходимость останова, ко- торые возвращают в алгоритм, их вызвавший, некоторую зако- дированную целыми числами информацию; во всех других ал- горитмах этот раздел опускается. Раздел модулей Память вместе с руководствами 3 и 6 опре- деляет требования этих алгоритмов к памяти под матрицы и Модульная система алгоритмов 319 векторы. В них обсуждаются также иные программные реали- зации, дающие более эффективные способы хранения, хотя и снижающие удобочитаемость программ. В п. 1 раздела Память каждого отдельного модуля перечисляются все локальные пере- менные, которые являются векторами или матрицами. Все пе- ременные модуля, не перечисленные в этом пункте и не входя- щие в список параметров, являются локальными скалярными переменными (типа real, integer или Boolean). Программы по- строены таким образом, что вся связь между подпрограммами осуществляется через параметры и не требуется никаких гло- бальных переменных (типа фортрановских COMMON). Един- ственное исключение составляют две переменные, которые должны передаваться как глобальные переменные между алго- ритмами решения нелинейных уравнений NEFN и D6.1.3 в том виде, как описано в этих алгоритмах. Раздел Примечания включается на случай дополнительных комментариев, относящихся к модулю. Раздел Описание пред- назначен для пояснения основной структуры алгоритма, кото- рый за ним следует. Он, возможно, даже слишком упрощает некоторые детали алгоритма. В очень простых алгоритмах этот раздел может отсутствовать. Раздел Алгоритм содержит полностью детализированную псевдопрограмму модуля. Форма написания псевдопрограмм рассчитана на то, чтобы быть понятной для всех читателей. Она аналогична той, что использовалась Вандерграфтом (1978), и в ее основе лежат кратко описанные ниже управляю- щие структуры языка Паскаль, которые были выбраны из-за того, что их смысл очевиден из написания. (Управляющие структуры языка Паскаль очень похожи на те, что имеются в языках Алгол, ПЛ/1 и Фортран-77.) Вместо использования паскалевских BEGIN и END применяется схема нумерации, которая указывает порядковый номер и глубину вложения. С точки зрения нашего опыта, это помогает понимать псевдо- программы читателям, не знакомым с блочно-структурирован- ными языками, и имеет то дополнительное преимущество, что каждому оператору дается соответствующий только ему номер. Используется шесть приведенных ниже управляющих струк- тур. Читателю, знакомому с блочно-структурированными язы- ками, следует просмотреть их мельком только для того, чтобы отметить для себя образец схемы нумерации. i) Оператор IF-THEN 1. IF (логическое условие !')-THEN 1.1. первый оператор внутри IF-THEN 1.5. последний оператор внутри IF-THEN (здесь 5 есть размер блока) 320 Приложение А. 2. следующий оператор Смысл оператора: если логическое условие i истинно, то вы- полнить операторы 1.1—5 и перейти к оператору 2, иначе перейти непосредственно к оператору 2. И) Оператор IF-THEN-ELSE 4. IF (логическое условие И) 4Т. THEN 4Т. 1 первый оператор в THEN-блоке 4Т. 3 последний оператор в THEN-блоке 4Е. ELSE 4Е. 1 первый оператор в ELSE-блоке 4Е. 7 последний оператор в ELSE-блоке 5. следующий оператор Смысл оператора: если логическое условие и истинно, то вы- полнить операторы 4Т.1—3, иначе выполнить операторы 4Е.1—7; затем перейти к оператору 5. iii) Оператор множественного ветвления 2. последний оператор За. IF (логическое условие ша) THEN операторы с За.1 по За.4 3b. ELSEIF (логическое условие iiib) THEN оператор 3b.l Зс. ELSE операторы с Зс.1 по Зс.12 4. следующий оператор Смысл оператора: если логическое условие ша истинно, то вы- полнить операторы За.1—4 и перейти к оператору 4; иначе, если логическое условие iiib истинно, то выполнить опера- тор 3b.l и перейти к оператору 4; иначе выполнить опера- торы Зс.1—12 и перейти к оператору 4. Эта управляющая структура с ее характерными ключевыми словами была включена сюда потому, что она способна передавать логическую структуру некоторых из наших ал- горитмов лучше, чем оператор IF-THEN-ELSE, у которого ELSE-ветвь сама представляет собой оператор IF-THEN- ELSE. Количество вариантов может быть увеличено до лю- бого желаемого числа, например алгоритм А7.2.1 имеет операторы с 2а по 2f. iv) Оператор цикла FOR (соответствует оператору цикла DO в Фортране) 6.2. FOR целая переменная == целое значение № 1 ТО це- лое значение № 2 DO операторы с 6.2.1 по 6.2.9 6.3. следующий оператор Модульная система алгоритмов 321 Смысл оператора: а. целая переменная^ целое значение № 1 b. если целая переменная > целое значение № 2, то пе- рейти к следующему оператору (6.3), иначе перейти к шагу с с. выполнить операторы 6.2.1—9 d. целая переменная -— (целая переменная + 1) е. перейти к шагу b Заметим, что цикл никогда не выполнится, если целое значе- ние № 1 ~> целое значение № 2; он выполнится один раз, если эти два значения равны. Иногда используется оператор FOR ... DOWNTO; его смысл отличается от приведенного выше только тем, что в шаге b знак ~> заменяется на знак •<, и в шаге d знак + заме- няется на —. v) Оператор цикла WHILE 7.3.2.WHILE (логическое условие v) DO операторы с 7.3.2.1 по 7.3.2.8 7.3.3 следующий оператор Смысл оператора: а. если логическое условие и истинно, то перейти к шагуЬ, иначе перейти к следующему оператору (7.3.3) b. выполнить операторы 7.3.2.1—8 с. перейти к шагу а vi) Оператор цикла REPEAT 2.3 REPEAT операторы с 2.3.1 по 2.3.6 2.3U UNTIL (логическое условие vi} 2.4 следующий оператор Смысл оператора: а. выполнить операторы 2.3.1—6 b. если логическое условие vi истинно, то перейти к сле- дующему оператору (2.4), иначе перейти к шагу а Заметим, что тело оператора цикла REPEAT вьпюлняется всегда хотя бы один раз, в то время как тело оператора цикла WHILE может не выполниться ни разу. Логическое условие в рассмотренных выше операторах мо- жет быть или простым логическим условием (s2 > х—2), или составным логическим условием ((i = 2) AND ((b < 1)OR(6 > >3))), или же переменной типа Boolean. Составные логиче- ские условия используют операторы AND, OR, а также NOT и вычисляются в соответствии со стандартным порядком вы- полнения действий. Переменным типа Boolean могут быть при- своены значения TRUE и FALSE; если boo есть переменная типа Boolean, то boo и NOT boo исчерпывают все возможные 11 Зак. 660 322 Приложение А. ситуации. Переменные типа Boolean также могут быть частью составных логических условий. Поскольку эти алгоритмы не содержат никаких операторов ввода и вывода (см. разд. 1.4), имеются только два других типа операторов сверх тех шести, которые приведены выше: оператор присваивания и оператор вызова подпрограммы. (Один GO TO используется в алгоритме D6.1.3, и один опера- тор RETURN используется в каждом драйверном алгоритме.) Оператор присваивания записывается как переменная <- выражение и читается «переменная получает значение выражения». Опе- ратор «==» зарезервирован для использования в логических условиях и в операторах цикла FOR. Вызов подпрограммы вы- глядит так: GALL имя модуля {список аргументов). Имя модуля носит описательный характер (например, UMSTOP). Номер модуля (А7.2.1) всегда дается как сопут- ствующий комментарий. Аргументы соответствуют в порядке их следования входным параметрам, входно-выходным пара- метрам и выходным параметрам вызываемого модуля. Если тело какого-либо управляющего оператора состоит только из одного оператора присваивания или вызова подпрограммы, то ему обычно не дается отдельного номера, например: 3.2 FOR г = 1 ТО га DO x[i\^-\ 3.3 следующий оператор Элементы векторов и матриц обозначаются как в языке Паскаль: i-й элемент вектора х есть x[i}, {i,j}-vi элемент мат- рицы М есть M[i, j]. Скалярные переменные могут иметь тип real, integer или Boolean'), причем их тип вытекает из исполь- зования в алгоритме. Иногда имена переменных, когда это со- ответствует их использованию в основной части книги, содер- жат греческие буквы. В программной версии они могут быть преобразованы к их эквиваленту на английском языке (напри- мер, к переходит в alpha). Имена переменных носят описа- тельный характер и некоторые из них оказываются длиннее, чем это допускают стандарты Фортрана. Все имена перемен- ных выделены курсивом. Точность представления переменных вещественного типа не указывается. Рассматриваемые методы обычно должны иметь точность по меньшей мере, в 10—15 десятичных разрядов, от- ') В этих трех случаях тип переменной указывается соответственно как =R, eZ, eBoolean.—Прим. перев. Модульная система алгоритмов 323 водимых под вещественные числа. Поэтому на ЭВМ CDC, Cray и им подобных достаточной оказывается одинарная точность, но на ЭВМ IBM, DEC и аналогичных им вещественные пере- менные должны иметь двойную точность. Единственными ма- шинно-зависимыми константами в программе являются неко- торые функции от машинного эпсилона macheps, который вы- числяется в начале любого метода безусловной минимизации и решения нелинейных уравнений. Основная особенность, которая отличает псевдоязык про- граммирования от существующих языков программирования на ЭВМ и вместе с тем облегчает его чтение, заключается в ис- пользовании математической и, в частности, векторной симво- лики. Это, например, знак суммирования, операции тах и min, возведение в степень, присваивание вектора вектору, умноже- ние векторов, нормы векторов и умножение вектора на диаго- нальную матрицу (см. разд. 1.5). Для программирования этих операций потребуется иногда введение дополнительных пере- менных. Операции с недиагональными матрицами представля- ются в большинстве случаев покомпонентно. Причина состоит в том, что обычно возникает слишком много недоразумений при программировании операции типа t-^-H*s, где H^R^"— симметричная матрица, причем хранится только ее верхняя треугольная часть. В сопутствующих комментариях всегда при- водится матричная форма операций. Комментарии выделяются с помощью обозначений языка Паскаль: символ (* начинает комментарий, и следующий *), стоящий не обязательно в той же строке, завершает его. Опе- раторы RETURN, которые требовались бы в Фортране, но не в блочно-структурированном языке, указаны в комментариях. I. 4. Ввод и вывод Данная система алгоритмов не содержит никаких операторов ввода (типа read) и вывода (типа write, print). Она связана с внешним миром исключительно через параметры, которые перечислены в головной драйверной программе. Это стандарт- ный и вполне подходящий способ получения входных данных, и нет никакой необходимости включать в алгоритмы операторы ввода. Тем не менее большинству из тех, кто займется реали- зацией, захочется включить операторы вывода. Обычно в готовой программе есть несколько уровней вы- вода на печать, в том числе и отсутствие вывода на печать (что иногда желательно, когда программа погружена внутрь другой программы), а также и малый объем вывода на печать, скажем: используемый метод, значения функции (и градиента) в начальной и конечной точках, заключительное сообщение, II* 324 Приложение А. потребовавшееся количество итераций и вычислений функции и производной. Предоставляется еще одна возможность: печа- тать также значения функции (и градиента) в конце каждой итерации. Для отладки и учебных проектов полезно иметь до- полнительную возможность: печатать информацию о процессе выбора шага, например пробные значения ^ на каждой итера- ции алгоритма линейного поиска, последовательные значения доверительного радиуса в методе доверительной области, не- которые подробности итерации по |л в алгоритме криволиней- ного шага. Уровнем вывода на печать можно управлять, если добавить в головном драйвере некоторый входной параметр, скажем printcode; операторы вывода в программе следует де- лать условными, зависящими от значения printcode. Выходные параметры головных драйверов также опреде- лены не полностью. Они должны включать код завершения pa- боты1) и заключительное значение независимой переменной х. Они могут, кроме того, содержать вектор заключительного зна- чения функции (для нелинейных уравнений) или заключитель- ные значения функции и градиента (для минимизации). В слу- чае нелинейных уравнений в заключительной точке вычисляется якобиан или его аппроксимация, и, таким образом, он доступен для вывода. В случае минимизации ни гессиан, ни его аппрок- симация не вычисляются в заключительной точке, поэтому поль- зователь, желающий иметь эту информацию, должен несколько модифицировать соответствующие алгоритмы. I. 5. Модули для основных алгебраических операций Различные алгебраические операции в псевдопрограммах встре- чаются достаточно часто, так что программист, реализующий данные алгоритмы, может захотеть снабдить их специальными подпрограммами выполнения этих операций. Возможными при- мерами служат тах и min, скалярное произведение векторов (о7"®), /2-норма вектора и операции с диагональными матри- цами масштабирования Dx и Dp. При программировании на Фортране для реализации некоторых из этих операций может оказаться полезным использование подпрограмм по основам линейной алгебры (BLAS), в связи с чем см. работу Лоусон, Хенсон, Кинкейд и Крог (1979). Алгоритмы А6.4.1 —5 и А8.3.1 —2 содержат множество вы- ражений вида D^u или D^v L где k равно +2 или ±1, и v e R'1. Во всех перечисленных случаях комментарий в псев- *) Имеется в виду информация о причинах завершения работы подпро- граммы, например: достигнута заданная точность решения, сходимость слиш- ком медленная, имеет место расходимость и т. п. — Прим. перев. Модульная система алгоритмов 325 допрограмме напоминает читателю, что матрица диагонального масштабирования Dx как таковая не хранится, а вместо этого запоминается вектор 5д. е= /?", где D^ == diag ((Sx)i, ... , (S,)„). Таким образом, i-v. компонентой D^v является (5д [/])** v [i]. При программной реализации масштабирования может ока- заться полезным написать одну подпрограмму, которая для Dfv и другую, ко- заданных k, S^ и- v возвращает значение торая возвращает ЦО^о „. II. ДРЛИВЕРНЫЕ МОДУЛИ И РУКОВОДСТВО ДЛЯ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ II. 1.^ Алгоритм D 6.1.1. (UMDRIVER). Драйвер модульной системы алгоритмов безусловной минимизации Назначение: Попытаться найти точку локального минимума х^ функции f(x}: Rn—rR, начиная из XQ и используя один из имеющегося набора алгоритмов. Входные параметры: n(=Z (п ^ 1), Хо (= R", FN (имя задавае- мой пользователем функции f: R''-^R, которая по меньшей мере дважды непрерывно дифференцируема). Кроме того, необязательные: i) GRAD, HESS — имена задаваемых пользователем функ- ций для вычисления Vf(x) и V^(A-) соответственно. 11) global <=Z, analgrad^. Boolean, analhess s Boolean, cheapf e Boolean, factsec s Boolean—параметры, ис- пользуемые при выборе алгоритмических вариантов. Они объяснены в руководстве 1. (Параметрам, которые не введены пользователем, присваиваются значения, зада- ваемые алгоритмом UMINCK.) iii) typxeR", typf(=R, fdigitse=Z, gradtol^R, steptole^R, maxstep e R, itniimit <= Z, б s R — параметры типа до- пусков и константы, используемые в алгоритме. Они объясняются в руководстве 2. (Параметрам и констан- там, которые не введены пользователем, присваиваются значения, задаваемые алгоритмом UMINCK.) iv) printcode s Z—см. разд. 1.4 приложения. Входно-выходные параметры: отсутствуют (см. тем не менее п. 2 раздела Память). Выходные параметры: Xf <= R'1 (заключительное приближение к х^), termcode e Z (указывает на то условие окончания, которое вызвало остановку алгоритма). 326 Приложение А. Кроме того, необязательные: fc(=R(==f{Xf)), gc(=R'г(=\7f{x^)), другие выходные пара- метры по желанию того, кто занимается программной реа- лизацией (см. разд. 1.4). Значения кодов возврата: termcode <. 0: алгоритм закончил работу из-за ошибки во входных данных, см. алг. UMINCK. termcode > 0: алгоритм закончил работу по причине, при- веденной в алг. А7.2.1. Память: 1) Требования относительно памяти под матрицы и векторы обсуждаются в руководстве 3. Непременно прочтите п. 5 в ру- ководстве 3, если вы занимаетесь программной реализацией этих алгоритмов на Фортране. 2) Имена XQ и х^ используются в этом драйвере только лишь для большей ясности. В программной реализации Хо и Xf мо- гут оба занимать одну и ту же память с Хс. Примечания: 1) В разделе «Перечень модулей для безусловной оптимиза- ции» указано, какие модули соответствуют каждому шагу в приведенном ниже разделе Описание. Выбор среди имеющихся в этом перечне вариантов задается описанными в руководстве 1 параметрами, которые определяют алгоритмический вариант. 2) Приведенный ниже Алгоритм используется для реализации всей системы алгоритмов безусловной минимизации. Для реа- лизации отдельного алгоритма безусловной минимизации мо- жет быть использован более простой драйвер, как это наглядно показано на примере алгоритма D6.1.2. 3) На некоторых вычислительных машинах необходимо снаб- дить систему фиктивными подпрограммами GRAD и HESS на тот случай, когда пользователь не предоставляет подпрограм- мы вычисления Vf(x) или соответственно V2f(x). Эти фиктив- ные подпрограммы требуются единственно для того, чтобы была возможна трансляция программы. Описание: Инициализация: 1) Вычислить машинный эпсилон. 2а) Проверить допустимость входных данных, присвоить значе- ния по умолчанию тем параметрам, определяющим алгоритми- ческий вариант, и тем параметрам типа допусков, которые не были входными для пользователя. (Возвратить в драйвер значе- ние termcode.) Модульная система алгоритмов 327 2b) Если termcode •< 0, то завершить работу алгоритма, возвра- тив значения Xf = ху и termcode. Если termcode == 0, то поло- жить itncount-t-Q и продолжить дальше. 3) Вычислить fc = f{xo). 4) Вычислить или аппроксимировать gc == Vf(xo). 5а) Решить, нужно ли остановиться. (Возвратить в драйвер значение termcode.} 5Ь) Если termcode > 0, то завершить работу алгоритма, воз- вратив значения Xf == Хо и termcode. Если termcode = 0, то про должить дальше. 6) Вычислить или аппроксимировать Hc='V2f(xo). 7) Положить Хс == Хо. Итерация: 1) itncount <- iincount + 1. 2) Построить гессиан модели Не (= Не + fV, р. > 0, причем ц == О, если Не уже надежно положительно определен) и его разло- жение по Холесскому Яд = L^, где L^ — нижняя треугольная матрица. 3) Решить {L^)s^=-g,. 4) Положить х+ == Хс + Sc, где Sc = SH или равно шагу, выби- раемому в соответствии со стратегией глобализации. В процессе выполнения этого шага алгоритма вычисляется f+==f{x+). 5) Вычислить или аппроксимировать g+=Vf(x+). 6а) Решить—нужно ли остановиться. (Возвратить в драйвер значение termcode.) 6b) Если termcode > 0, то завершить работу алгоритма, возвра- тив значения Xf == х+ и termcode. Если termcode •== 0, то продол- жить дальше. 7) Вычислить или аппроксимировать Hc=\•!2f{x+). 8) Положить Хс^-х+, fc-t-f+, gc^-g+ и вернуться к шагу 1 ите- рационной части. Алгоритм: (* Инициализирующая часть: *) 1. CALL MACHINEPS {macheps) 1. CALL UMINCK (список параметров выбирает тот, кто зани- мается программной реализацией) (*см. описание UMINCK*) 3. IF termcode < О THEN ^ 3.1 Xf<-Xy 3.2 RETURN для алгоритма D6.1.1 (* при желании вывести на печать соответствующее сообщение *) 4. itncout •«- О 5. CALL FN [п. x„ f,) 6. IF anal grad 6T. THEN CALL GRAD (n, Хц, g,) 328 Приложение А. 6Е. ELSE CALL FDGRAD (n, Xy, f„ FN, S„ л, g,) (* алг. А5.6.3 *) 7. CALL UMSTOPO (n, .v-o, /„ gc, S.„ typf, gradtol, termcode, consecmax) (* алг. А7.2.2 *) 8. IF termcode > 0 8T. THEN Xf^-Хц 8E. ELSE (* вычислить начальное значение гессиана или его аппроксимации *) 8E.la IF analhess THEN CALL HESS (n, Xy, H,) 8E.lb ELSEIF analgrad AND cheapf THEN CALL FDHESSG (ra, Xy, g„ GRAD, 5^, л, Н,) (* алг. А5.6.1 *) 8E.lc ELSEIF cheapf THEN CALL FDHESSF {n, Xy, f„ FN, S„ r\, H,) (* алг. A5.6.2 *) 8E.ld ELSEIF factsec THEN CALL INITHESSFAC (n, f„ typf, S^, Lc} (* алг. А9.4.4*) (* замечание: factsec должно быть FALSE, если global = 2 *) 8E.le ELSE (* factsec = FALSE *) CALL INITHESSUNFAC (n, f, typf, S^, He) (* алг. A9.4.3 *) 9. Хс-^—Хц (* Итерационная часть: *) 10. WHILE termcode =0 DO 10.1 itncount •<- Uncount + 1 10.2 IF NOT factsec THEN CALL MODELHESS (n, S^, macheps, H„ L,) (* алг. A5 51*) 10.3 CALL CHOLSOLVE (n, g„ L„ s„) (* алг. A3.2.3 *) 10.4a IF global = 1 THEN CALL LINESEARCH(«, x„ f„ FN, g„ s^, S^maxstep, steptol, retcode, x^, f^, maxtaken) (* алг. А6.3.1 *) 10.4b ELSEIF global =2 THEN CALL HOOKDRIVER (n, x„ f„ FN, gc, L„ H„ s„, Sy maxstep, steptol, macheps, itncount, bprev, 6, |л, (р, qp', retcode, x^, f^^ maxtaken) (* алг. А6.4.1 *) 10.4с ELSEIF global=3 THEN CALL DOGDRIVER {n, x„ f„ FN g„ L„ s^., S„ maxstep, steptol, 6, retcode, x^, f^, maxtaken) (* алг. A6.4.3 *) 10.4d ELSE (*global==4*) CALL LINESEARCHMOD (n, x„ f„ FN, g„ analgrad, GRAD, s„, S^, maxstep, steptol, retcode, x^, f^, g^,, maxtaken) (* алг. А6.3.1 mod*) Модульная система алгоритмов 329 10.5 IF global ^= 4 THEN 10.5.1 IF analgrad 10.5. IT THEN CALL GRAD (n, x^, g^) 10.5.1E ELSE CALL FDGRAD (^ • x^, ^, FN, S^, T), g^) (*алг. А5.6.3*) (* если используется переключение на центральные разности, то вместо этого CALL CDGRAD (n, x+, FN, S^, T], g^-см. алг. А5.6.4*) 10.6 CALL UMSTOP (n, x„ x^, f^, g^, S„ typf, retcode, gradtol, steptol, itncount, itniimit, maxtaken, consecmax, termcode) (* алг. А7.2.1*) 10.7 IF termcode > 0 10.7T THEN Xf^x+ 10.7E ELSE (* вычислить следующее значение гессиана или его аппроксимации *) 10.7E.la IF analhess THEN CALL HESS (n, x+, H,) 10.7E.lb ELSEIF analgrad AND cheapf THEN CALL FDHESSG (n, x^, g^, GRAD, S^, г), Н^) (*алг. А5.6.1 *) 10.7E.lc ELSEIF cheapf THEN CALL FDHESSF (n, x^, f^, FN, S,, -n, Я,) (* алг. A5.6.2 *) 10.7E.ld ELSEIF factsec THEN CALL BFGSFAC (o, x,, x^, g„ g^, macheps, T], analgrad, Lc) (* алг. А9.4.2 *) 10.7E.le ELSE (* factsec = FALSE *) CALL BFGSUNFAC (ra, x„ x^, g,, g^, macheps, и\, analgrad. He) (* алг. А9.4.1 *) 10.7E.2 x^<-x+ 10.7E.3 f,<-f^ 10.7E.4 g,<-g^ (*END, цикл WHILE 10*) (* при желании вывести на печать соответствующее сообщение об окончании *) (* RETURN длч алгоритма D6.1.1 *) (*END, алгоритм D6.1.1*) 11.2. Перечень модулей безусловной минимизации Шаги в разделе Описание драйвера D6.1.1 соответствуют сле- дующим модулям. Шаги в этом описании, которые не приведены ниже, отвечают соответствующим строкам псевдопрограммы драйверного алгоритма. 330 Приложение А. Инициализация Шаг 1 -MACHINEPS Шаг 2a-UMlNCK Шаг 3 -FN Шаг 4 - GRAD или FDGRAD Шаг 5a-UMSTOPO Шаг 6 —HESS или (FDHESSG/FDJAC) или FDHESSF или INITHESSUNFAC или INITHESSFAC Итерация Шаг 2 -(MODELHESS/CHOLDECOMP) Шаг 3 -CHOLSOLVE Шаг 4 -LINESEARCH или LINESEARCHmod или (HOOKDRIVER/HOOKSTEP/TRUSTREGUP) или (DOGDRIVER/DOGSTEP/TRUSTREGUP) Шаг 5 —GRAD или FDGRAD (или, возможно, CDGRAD, если используется возможность переключения на центральные разности) Шаг ба—UMSTOP Шаг 7 —HESS или (FDHESSG/FDJAC) или FDHESSF или BFGSUNFAC или (BFGSFAC/QRUPDATE) В том случае, когда какой-либо из приведенных выше шагов содержит два и более модулей или групп модулей, разделенных между собой союзом «или», они представляют собой альтерна- тивные варианты, выбираемые с помощью параметров, опре- деляющих алгоритмический выбор. Подразумевается, что конк- ретный метод использовал бы только один вариант для каж- дого такого шага алгоритма. В том случае, когда два и более модулей перечисляются выше в скобках и разделяются между собой наклонной чертой (/), первый из группы модулей, заключенных в скобки, вызы- вается драйвером, а остальные модули этой группы вызываются первым модулем. Например, FDHESSG вызывает FDJAC. Кроме того, приведенные ниже модули вызывают следующие сервисные модули и модули вычисления функции и ее градиента: HOOKSTEP вызывает CHOLDECOMP и L SOLVE LINESEARCH вызывает FN LINESEARCHmod вызывает FN и (CRAD или FDGRAD (или CDGRAD)) TRUSTREGUP вызывает FN Приведенные ниже модули также вызывают следующие их подалгоритмы: CHOLSOLVE вызывает LSOLVE и LTSOLVE QRUPDATE вызывает JACROTATE Модульная система алгоритмов 331 11.3. Руководство 1. Выбор алгоритмических вариантов для безусловной минимизации Ниже приведены алгоритмические варианты, имеющиеся в рас- поряжении при использовании системы алгоритмов безусловной минимизации, и указания по выбору этих вариантов. global — положительное целое, указывающее следующим обра- зом на то, какую стратегию глобализации использовать на каждой итерации: == 1 Линейный поиск (алг. А6.3.1) ==2 Криволинейный шаг на основе доверительной области (алг. А6.4.1) == 3 Шаг вдоль ломаной на основе доверительной обла- сти (алг. А6.4.3) ==.4 Модифицированный линейный поиск (алг. Аб.З-lmod) На некоторых задачах могут существовать большие различия в точности и эффективности, определяемые сменой способов глобализации 1, 2 и 3 при сохранении других параметров и допусков неизменными. Однако ни один из способов не соз- дает впечатление превосходящего в общем случае остальные или уступающего им, и каждый из них, вероятно, является наилучшим на некоторых задачах. Первые три варианта даны для сравнения и для того, чтобы предоставить возмож- ность пользователю выбрать наилучший способ для отдель- ного класса задач. Способ 4 представляет собой незначитель- ное расширение способа 1, и ему можно отдать предпочтение при использовании аппроксимаций гессиана по секущим. По нашему опыту результаты использования способов 1 и 4 очень похожи. Предлагаемое значение по умолчанию: global == 1 (так как это, вероятно, самый простой способ с точки зрения его понима- ния и программирования) analgrad—переменная типа Boolean, которая имеет значение TRUE, если пользователем предоставлена подпрограмма аналитического вычисления градиента Vf(x), и значение FALSE в противном случае. Если аналитические градиенты не предоставлены, то на каждой итерации система будет аппроксимировать градиент по конечным разностям. Алго- ритмы в данной системе обычно способны найти более точ- ное приближение к точке минимума и иногда могут выпол- нить это более эффективно, используя аналитические, а не конечно-разностные градиенты. Поэтому так важно предоста- вить подпрограмму, которая вычисляет аналитический гра- диент, если он имеется в распоряжении. 332 Приложение А. Предлагаемое значение по умолчанию: analgrad = FALSE analhess—переменная типа Boolean, которая имеет значение TRUE, если пользователем была предоставлена подпрограм- ма аналитического вычисления матрицы Гессе \/'if(x}, и зна- чение FALSE в противном случае. Если аналитические гес- сианы не предоставлены, то на каждой итерации система бу- дет аппроксимировать гессиан по конечным разностям или по секущим в зависимости от значения cheapf. Алгоритмы в данной системе могут работать более эффективно, если за- даются аналитические гессианы. Следует предоставлять под- программу вычисления аналитического гессиана, если он имеется в распоряжении. Предлагаемое значение по умолчанию: analhess == FALSE cheapf — переменная типа Boolean, которая имеет значение TRUE, если вычисление целевой функции f{x) обходится недорого, и значение FALSE в противном случае. Если analhess == TRUE, то значение cheapf игнорируется. Если analhess = FALSE, то значение cheapf ипользуется для вы- бора способа аппроксимации гессиана: конечно-разностные гессианы используются, если cheapf == TRUE; аппроксима- ции гессиана по секущим (BFGS-формулы) используются, если cheapf = FALSE. Методы, использующие конечно-раз- ностные гессианы, обычно (но не всегда) будут требовать меньшего числа итераций, чем методы, использующие на той же задаче аппроксимации по секущим. Методы, использую- щие аппроксимации по секущим, обычно будут требовать меньшего числа вычислений целевой функции, чем методы, использующие конечно-разностные гессианы (включая вы- числения функции, идущие на конечные разности), особенно для задач со средними или большими значениями п. Таким образом, если стоимость вычисления f{x) ощутима или если аппроксимации по секущим желательны по какой-либо дру- гой причине, то sheapf следует положить равным FALSE, а в противном случае cheapf следует положить равным TRUE. Предлагаемое значение по умолчанию: cheapf = FALSE. factsec—переменная типа Boolean, которая используется толь- ко в том случае, когда используются аппроксимации гес- сиана по секущим, т. е. когда analhess == FALSE и cheapf == == FALSE, и которая игнорируется во всех остальных слу- чаях. Если используется factsec, то ее значение влияет толь- ко на вычислительную трудоемкость алгоритма, причем ре- зультаты и последовательность итераций остаются неизмен- ными. Если factsec = TRUE, то система использует факто- ризованную аппроксимацию по секущим, в которой пересчи- Модульная система алгоритмов 333 тывается ^//-разложение аппроксимации гессиана, и кото- рая требует 0(п2) арифметических операций на итерацию; если factsec == FALSE, то она использует нефакторизован- ную аппроксимацию, требующую 0(п3) операций на итера- цию. (Подробности см. в разд. 9.4 основной части книги.) Если global = 2, то facfsec должно быть положено равным FALSE, потому что алгоритм криволинейного шага в том виде, как он написан, мог бы сделать запись на место мно- жителя L разложения аппроксимации гессиана по Холес- скому. Если global == 1, 3 или 4, то в готовой программе должно использоваться значение factsec = TRUE, так как это более эффективно. Во всяком случае, значению factsec = == FALSE можно отдать предпочтение в учебных проектах, поскольку эта версия более проста для понимания. Предлагаемое значение по умолчанию: factsec == FALSE для учебных проектов или для случая global == 2, в осталь- ных случаях factsec == TRUE. 11.4. Руководство 2. Выбор параметров для безусловной минимизации Ниже приведены параметры масштабирования, останова и дру- гие, использующиеся для безусловной минимизации, а также указания по выбору для них подходящих значений. typx—массив размерности п, i-я компонента которого есть положительный скаляр, указывающий характерную величину x[i]. Например, если предвидится, что диапазон значений для итераций по х будет иметь вид yie=[-1010, 1010], Х2е[-104,-Ю2],^^ [-6*10-6, УЮ-6}, то подходящим выбором здесь было бы ^/?х==(1010, 103, 7*10~6). Параметр typx используется для задания вектора масшта- бов Sx и диагональной матрицы масштабирования Dx, кото- рые в свою очередь используются повсюду в программе; Dx=d[ag({Sx)i, ..., {Sx)n), где Sx[i]= \/typx[i}. Важно задать значения typx, когда ожидается, что величины компо- нент х будут сильно различаться; в этом случае программа может работать лучше при хорошей информации о масшта- бах, чем при Dx == I- Если компоненты х сходны по величине, то программа будет работать, вероятно, с таким же успехом при Dx == I, как и при каких-либо других значениях. 334 Приложение А. Предлагаемое значение по'умолчанию: typx[i}= I, t == 1, ..., п. lypf—положительный скаляр, служащий оценкой величины f(x) вблизи точки минимума х». Он используется только в приве- денном ниже градиентном условии останова. Если задавае- мое для typf значение слишком велико, то алгоритм может остановиться преждевременно. В частности, если f(xo)~^> ^f^*), то значению typf следует быть равным приблизи- тельно \f(x„,} [. Предлагаемое значение по умолчанию: typf == 1 fdigits — положительное целое, указывающее число достоверных десятичных разрядов, возвращаемых целевой функцией FN. Например, если FN представляет собой результат итератив- ной процедуры (подпрограмма вычисления квадратуры, ре- шения уравнений в частных производных), которая, как пред- полагается, дает пять верных цифр в ответе, то fdigits сле- дует положить равным 5. Если ожидается, что FN дает (с точностью до одной или двух) полное число значащих цифр, имеющихся на данной вычислительной машине, то fdigits следует положить равным —1. Число fdigits исполь- зуется для установления значения параметра f}, который при- меняется в программе для указания относительного уровня шума в f(x}; основное применение г\ находит при вычислении длин шага в конечных разностях. Значение T] полагается рав- ным macheps, если fdigits =—1, и равным max{macheps, 10-fd'g'i's} в противном случае. Если ожидается, что функция f{x} будет зашумленной, но приближенное, значение fdigits не известно, то его следует оценить с помощью алгоритма Хемминга [1973], приведенного в книге Гилл,Мюррей и Райт [1981]. Предлагаемое значение по умолчанию: fdigits == —1. gradtol—положительный скаляр, задающий диапазон, в котором масштабированный градиент считается достаточно близким к нулю, чтобы остановить алгоритм. Алгоритм останавли- вается, если f | Vf {х+} Щ |* max { | х [i] |, typx Щ } ) ,^Л m^{\f\,typf} }^ gradtol (см. разд. 7.2). Это основной критерий останова для безуслов- ной минимизации, и величина gradtol должна отражать пред- ставление пользователя о том, что считать решением задачи. Если градиент аппроксимируется по конечным разностям, то VT), вероятно, представляет собой наименьшее значение для gradtol, при котором приведенное выше условие может вы- полняться. Модульная система алгоритмов 335 Предлагаемое значение по умолчанию: gradtol = macheps\/ъ steptol—положительный скаляр, задающий диапазон, в котором масштабированное расстояние между двумя последователь- ными приближениями считается достаточно близким к нулю для того, чтобы остановить алгоритм. Алгоритм останавли- вается, если {I x+ I1] — ^с [г] 1 1 ^ .1 .t I max ——fir-n ^ r-i i r ^ steptol 1<f<re max {| .<:+[;] |, typx[i}} J ^ r (см. разд. 7.2). Значение steptol должно быть по крайней мере так же мало, как и значение 10^, где d есть число верных цифр, которые пользователь хотел бы иметь в реше- нии х^. Алгоритм может завершить работу преждевременно, если steptol слишком велико, в особенности когда исполь- зуются формулы секущих. Например, steptol = macheps\/з оказывается часто слишком большим при использовании ме- тодов секущих. Предлагаемое значение по умолчанию: steptol= macheps^3 maxstep—положительный скаляр, задающий максимально до- пустимое значение масштабированной длины шага \\Dx(x+— —Xc\\t на каждой итерации. Величина maxstep используется для того, чтобы предотвратить появление шагов, которые могли бы привести оптимизационный алгоритм к перепол- нению или к выходу из интересующей пользователя области, а также для выявления расходимости. Ее следует выбирать достаточно малой для того, чтобы предотвратить первые два из этих случаев, но большей, чем любая разумно ожидаемая длина шага. Алгоритм прекратит работу, если он сделает шаги длиной maxstep на пяти последовательных итерациях. Предлагаемое значение по умолчанию: maxstep •== 103 * * max{||D^oll2, IIOJb} iinlimit — положительное целое, указывающее максимальное число итераций, которые могут быть выполнены до того, как алгоритм прекратит работу. Подходящие здесь значения сильно зависят от размерности и сложности задачи, а также от стоимости вычисления нелинейной функции. Предлагаемое значение по умолчанию: itniimit = 100 б — положительный скаляр, задающий начальное значение ра- диуса доверительной области (см. разд. 6.4). Он используется только при global = 2 или 3 (методы с криволинейным ша- гом или с шагом вдоль ломаной), игнорируется при g7o6a/==l или 4 (методы с линейным поиском). Значение б должно быть таким, какое пользователь считает разумным для мас- штабированной длины шага на первой итерации, и должно удовлетворять условию б ^ maxstep. Если пользователь не 336 Приложение А. задал никакого значения б или, если б ==—1, то вместо него используется длина масштабированного градиента в началь- ной точке. Во всяком случае, радиус доверительной области впоследствии регулируется автоматически. Предлагаемое значение по умолчанию: б ==—1 11.5. Руководство 3. Соображения относительно памяти для безусловной минимизации. Ниже рассматриваются некоторые вопросы памяти, относящиеся ко всей системе алгоритмов безусловной минимизации. Кроме того, многие отдельные модули имеют раздел Память, содержа- щий комментарии, характерные для этих модулей. 1) Во всей системе алгоритмов безусловной минимизации используются две пХ "-матрицы L и Н. Однако в действитель- ности используются только нижняя треугольная часть в L н верхняя треугольная часть в Н, включая главные диагонали обеих матриц. Таким образом, вся система алгоритмов могла бы быть реализована с использованием n2-\-0(n) ячеек па- мяти. Мы написали ее, используя отдельно матрицы для L и для Н, и поэтому затратив сверх необходимого n2—п ячеек памяти, так как это упрощает понимание псевдопрограмм. Тем не ме- нее система написана так, что после некоторых незначительных модификаций, рассмотренных ниже в п. 2, она в результате ис- пользует только га2 + 0{п} ячеек памяти. Для учебных проектов максимальная размерность задачи п будет, вероятно, мала, по- этому систему, по всей видимости, следует реализовывать так, как она сейчас написана, с тем чтобы сделать ее простой для понимания. При реализации в виде программного продукта сле- дует, конечно, произвести модификации, приведенные в п. 2. 2) Для того чтобы вся система алгоритмов безусловной ми- нимизации использовала только одну п X га-матрицу, требуются незначительные модификации алгоритмов А5.5.1—2, А6.4.1—2, А6.4.5, А9.4.1 и драйвера D6.1.1 (или используемого сокращен- ного варианта драйвера). Они по существу заключаются в объ- единении L и Я в одну матрицу, причем главная диагональ мат- рицы Н иногда запоминается в отдельном /г-векторе hdiag, а также в соответствующем изменении программы, списков па- раметров и последовательностей обращений к подпрограммам. Модификации таковы: Алгоритм А5.5.1 i) Заменить выходной параметр LGRnx'г на выходной параметр hdiag e .R" Модульная система алгоритмов 337 И) Между строками 11 и 12 вставить оператор 1Г/2. FOR i=\ ТО п DO hdiag \i\ <- Н [i, i} in) Заменить строки 12 и 13.8 на CALL CHOLDECOMP (п, hdiag, maxoffi, macheps, H, maxadd) iv) В строках 13.3.2, 13.3.3 и 13.7 заменить все вхождения Н [i, i] на hdiag [i] v) Заменить оператор 14.1 на 14.1 FOR i=i+ 1 TO n DO 1.0 ^.Л^^Л^Щ^Щ 14.2. hdiag [i] <- hdiag [i} * S^ [i]2 vi) В строке 15.1 заменить все вхождения L[i, j] на H[i,j} Алгоритм А5.5.2 i) Заменить входной парамер Я s R"^ на входной пара- метр hdiag e R" n) В строке 2.1 заменить H[i,i] на hdiag [i] iii) В строке 4.1 заменить Н [j, j] на hdiag [j] iv) В строке 4.3.1 заменить H[i,j] на L [j, i] Алгоритм А6.4.1 i) Заменить входной параметр Н (= ^"х" на входной пара- метр hdiag е /?" n) В строках 5.1 и 5.3 заменить параметр Н на hdiag Алгоритм А6.4.2 i) Заменить входной параметр Н s У?"^ на входной пара- метр hdiag Е /?" И) В строках ЗЕ.8.2 и ЗЕ.8.5 заменить все вхождения Н [i, i] на hdiag [i} iii) В строке ЗЕ.8.3 заменить параметр Я на hdiag Алгоритм А6.4.5 i) Заменить входной параметр Н ^ R"^ на входной пара- метр hdiag <= R" ii) В строке 9c.2T.Ll заменить H[i,i] на hdiag[i] Алгоритм А9.4.1 i) Добавить входной параметр hdiag e R" в качестве по- следнего входного параметра ii) Перед строкой 1 вставить оператор '/2. FOR г=1 TO'rt DO Я [i, i] <- hdiag [г] Драйвер D6.1.1 i) В строке 10.2 заменить параметр Lc на hdiag ii) В строке 10.4Ь заменить параметр Яр на hdiag 338 Приложение А, iii) В строке 10.7E.le вставить параметр hdiag между anal- grad и Не iv) Заменить все остальные вхождения Lc в списках пара- метров на Не. Они встречаются в строках SE.ld, 10.3, 10.4b, 10.4с и 10.7E.ld. 3) Имеется возможность еще более снизить требование к памяти до '/2"2 + 0(ti) ячеек в одном частном случае, когда используются факторизованные аппроксимации гессиана по се- кущим. В этом случае Н никогда не участвует; мы имеем дело лишь с нижней треугольной матрицей L и верхней треугольной R в алгоритме АЗ.4.1, причем они могут совместно делить одно поле памяти. В большинстве языков программирования для того, чтобы фактически занять только (п2 +га)/2 ячеек для хра- нения треугольной матрицы, она должна быть реализована как вектор с (п2-\-п}/2 элементами, например с помощью представ- ления L [i, j] = v [ ( (i2 — i) /2) + j] == R [j, i], 1< /• ^ t ^ п. Дру- гие подробности этого преобразования оставляем в качестве упражнения. Что касается всех других методов, то для них нужно п2 ячеек памяти, так как все они используют алгоритм А5.5.1, для кото- рого надо одновременно знать L и Я. Алгоритмы криволиней- ного шага и любые алгоритмы, использующие нефакторизован- ные формулы секущих, тоже требуют как L, так и Я. 4) Память под векторы, необходимая модулю, определяется совокупностью векторов в его списке параметров, а также всеми векторами, участвующими в качестве локальных перемен- ных. В п. 1 раздела Память каждого модуля перечислены все векторы, выступающие в качестве локальных переменных. Тому, кто занимается реализацией, следует определить память под векторы, требующиеся драйверу. 5) При реализации этих алгоритмов на Фортране все мо- дули, имеющие среди своих параметров матрицы, могут потре- бовать введения дополнительного параметра ndim, задающего фактическое количество строк матриц. Это нужно всякий раз, когда размеры матриц в модулях задаются как переменные вместо того, чтобы задаваться как фиксированные целые. На- пример, в готовой программной реализации любая матрица бу- дет, как правило, передаваться пользователем в качестве допол- нительного параметра головному драйверу. Они будут описаны в программе пользователя с некоторыми фиксированными раз- мерностями, скажем, как Н (уО, 50), где размер матрицы (50) больше или равен размерности задачи п. Тогда все матрицы в драйвере и модулях системы будут описаны, как H(ndim,n) или L(ndim, и}, где ndim представляет собой дополнительный параметр, передаваемый пользователем драйверу и системой Модульная система алгоритмов 339 каждому модулю, имеющему параметр матричного типа. Здесь ndim содержит количество строк матрицы в программе пользо- вателя, ndim == 50, в то время как п может быть любым числом между 1 и 50. Если вместо этого размеры матриц в модулях задаются как (п, п), то алгоритмы будут работать неправильно. Причина состоит в том, что по правилам языка Фортран мат- рицы располагаются в памяти по столбцам, и компилятору должно быть известно количество ячеек, отводимых под каждый столбец (т. е. число строк) для того, чтобы правильно нахо- дить его место в матрице. В любой версии языка Фортран эти рассуждения применимы ко всем модулям, в которых размеры матриц заданы как пере- менные. Размеры должны иметь вид (ndim,n), где ndim есть входной параметр модели, содержащий число строк матрицы, в какой бы подпрограмме или головной программе она ни была описана с помощью фиксированных целочисленных размеров. (При реализации нашей системы в учебных целях это должен быть драйвер.) Для учебных проектов подойдет иной вариант, при котором матрицы во всех модулях описываются с помощью одних и тех же фиксированных целочисленных размеров, ска- жем, (50, 50). В этом случае дополнительный параметр ndim не нужен, и не требуется производить никаких модификаций наших псевдопрограмм, но система будет работать только при п s? 50. В большинстве языков программирования с полным контро- лем типов дополнительный параметр ndim не потребовался бы, и наши псевдопрограммы можно было бы использовать такими, как они есть. Например, в языке Паскаль можно было бы за- дать тип данных MATRIX =ARRAY^[1.. 50, 1..50] OF REAL в вызывающей программе. Размер матрицы (50) опять был бы большим или равным наибольшей используемой размерности за- дач п. Тогда для всех матр-иц во всех подпрограммах системы просто был бы задан тип данных MATRIX. Для запуска системы при п > 50 необходимо было бы изменить только описание типа данных MATRIX. Недостаток этой схемы заключается в том, что одно и то же слово MATRIX должно использоваться всеми подпрограммами системы и вызывающей программой. 11.6. Алгоритм D6.1.2 (UMEXAMPLE). Драйвер алгоритма безусловной минимизации, использующего линейный поиск, конечно- разностные градиенты и факторизованные аппроксимации гессиана по секущим Назначение: Попытаться найти точку локального минимума л-„ функции f(x): R"-> R, начиная из Хо и используя алгоритм 340 Приложение А. линейного поиска, конечно-разностные градиенты и аппрок- симации гессиана по BFGS-формуле. Входные параметры: п <= Z (и > 1), Хц <= /?", FN (имя задаваемой пользователем функции /: Т?"-»•./?). Кроме того, необязательные: typx^ R", typf s R, f digits e Z, gradtol <= R, steptol s /?, maxstep <= /?, itniimit s Z, prw^- code ^ Z (дальнейшую информацию см. в алгоритме D6.1.1). Входно-выходные параметры: отсутствуют (см. п. 2 раздела Па- мять в алгоритме D6.1.1). Выходные параметры: Xf <= R'1 (заключительное приближение к х^, termcode s Z (указывает, какое из условий оконча- ния вызвало останов алгоритма). Кроме того, необязательные: fc <= R (==f(xf)), gc г R"(== Vf(xf)), другие выходные параметры по желанию того, кто зани- мается программной реализацией (см. разд. 1.4). Значения кодов возврата, память: такие же, как у алгоритма D6.1.1 Алгоритм: (* Инициализирующая часть: *) 1. CALL MACHINEPS {macheps) 2. CALL UMINCK (список параметров выбирает тот, кто занимается программной реализацией) (*см. описание UMINCK*) 3. IF termcode < О THEN - 3.1 Xf<-Xo 3.2 RETURN для алгоритма D6.1.2 (* при желании вывести на печать соответствующее сообщение *) 4 itncount <- 0 5. CALL FN (га, Хц, f,) 6. CALL FDGRAD (n, Xy, f„ FN, S„, TI, g,) (* алг. A5.6.3 *) 7. CALL UMSTOPO (n, Хц, fc, gc, Sx, typf, gradtol, termcode, consecmax) (* алг. А7.2.2 *) 8. IF termcode > 0 8T. THEN Xf^-Xo 8E. ELSE CALL INITHESSFAC (n, f„ typf, S^, L,) (* алг. А9.4.4 *) 9. Xc<-Xo (* Итерационная часть: *) 10. WHILE termcode =0 DO 101 itncounl <- itncount + 1 10 2 CALL CHOLSOLVE (га, g,, L„ s^ (* алг. А3.2.3 *) 10.3 CALL LINESEARCH (ra, x„ f„ FN, gc, s„, S^, maxstep, steptol, retcode, x+, f+, maxtaken) (*алг. А6.3.1 *) Модульная система алгоритмов 341 10.4 CALL FDGRAD (га, x^, f^, FN, S^, л, g+) (* алг. A5.6.3*) 10.5 CALL UMSTOP (га, ^, x^, f^, g^, S^, typf, retcode, gradtol, steptol, itncount, itniimit, maxtaken, consecmax, termcode} (* алг. А7.2.1 *) 10.6 IF termcode > 0 10.6T THEN Xf^-x^ 10.6E ELSE (* вычислить следующую аппроксимацию гес- сиана *) 10.6Е.1 CALL BFGSFAC (га, х^, х,, g^, g,, macheps, T], analgrad, Lc) (* алг. А9.4.2 *) 10.6E.2 x,^-x+ 10.6E.3 f^f^ 10.6E.4 g,<-g^ (•"END, цикл WHILE 10*) (* при желании вывести на печать соответствующее сообщение об окончании *) (* RETURN для алгоритма D6.1.2*) (*END, алгоритм D6.1.2*) III. ДРАЙВЕРНЫЕ МОДУЛИ И РУКОВОДСТВО ДЛЯ НЕЛИНЕЙНЫХ УРАВНЕНИИ 111.1. Алгоритм D6.1.3 (NEDR1VER). Драйвер модульной системы алгоритмов решения нелинейных уравнений Назначение: Попытаться найти корень JC* функции F{x): ^-f-R", начиная из XQ и используя один из имеющегося набора алгоритмов. Входные параметры: rasZ(ra^: l),xo^.Rn, FVEC (имя задавае- мой пользователем функции F: Rn-^R'г, которая по мень- шей мере непрерывно дифференцируема). Кроме того, необязательные: i) JAC—имя задаваемой пользователем функции для вы- числения F'{x}. (F'(x) обозначается здесь через J{x).) ii) global s Z, analjac s Boolean, cheap F e Boolean, fac- tsec e Boolean—параметры, используемые при выборе алгоритмических вариантов. Они объясняются в руковод- стве 4. (Параметрам, которые не введены пользователем, присваиваются значения, задаваемые алгоритмом NEINCK.) 342 Приложение А. iii) typ x г R", typ F (= R'1, F digits f= Z, f vectol e= R, steptol (= 1= 7?, miniol e R, maxstep e R, itniimit e Z, б <= 7? — пара- метры типа допусков и константы, используемые в алго- ритме. Они объясняются в руководстве 5. (Параметрам и константам, которые не введены пользователем, при- сваиваются значения, задаваемые алгоритмом NEINCK.) iv) printcode e Z — см. разд.1.4 этого приложения. Входно-выходные параметры: отсутствуют (см. тем не менее п. 2 раздела Память). Выходные параметры: Xf e R" (заключительное приближение к д'«), termcode s Z (указывает на то условие окончания, которое явилось причиной остановки алгоритма). Кроме того, необязательные: FV+^Rn(=F(xf)}, Jc(=Rnxn(=f(Xf)), другие выходные параметры по желанию того, кто занимается программной реализацией (см. разд. 1.4). Значения кодов возврата: termcode < 0: алгоритм закончил работу из-за ошибки во входных данных, см. алг. NEINCK. termcode > 0: алгоритм закончил работу по причине, при- веденной в алг. А7.2.1. Память: 1) Требования относительно памяти под матрицы и векторы об- суждаются в руководствах 3 и 6. Непременно прочтите п. 5 ру- ководства 3, если вы занимаетесь программной реализацией этих алгоритмов на Фортране. 2) Имена Хо и х/ используются в этом драйвере только лишь для большей ясности. В программной реализации хо и Xf могут оба делить одну и ту же область памяти с Хс. 3) Две глобальные переменные (типа COMMON в Фортране) SF и FV+ должны передаваться между драйвером и алгоритмом NEFN. Подробности см. в алгоритме NEFN. Примечания: 1) В разделе «Перечень модулей для нелинейных уравнений» указано, какие модули соответствуют каждому шагу в приве- денном ниже разделе Описание. Выбор среди имеющихся в этом перечне вариантов задается описанными в руководстве 4 пара- метрами, которые определяют алгоритмический вариант. 2) Приведенный ниже Алгоритм используется для реализации всей системы алгоритмов решения нелинейных уравнений. Упро- щенный вариант драйвера можно использовать для реализации отдельного алгоритма решения нелинейных уравнений, как это наглядно показано на примере алгоритма D6.1.4. Модульная система алгоритмов 343 3) На некоторых вычислительных машинах необходимо снаб- дить систему фиктивной подпрограммой JAC на тот случай, если пользователь не задаст подпрограмму вычисления F'(x). Эта фиктивная подпрограмма требуется единственно для того, чтобы была возможна трансляция программы. Описание: Инициализация: 1) Вычислить машинный эпсилон. 2а) Проверить допустимость входных данных, присвоить значе- ния по умолчанию тем параметрам, определяющим алгоритми- ческий вариант, и тем параметрам типа допусков, которые для пользователя не были входными. (Возвратить в драйвер значе- ние termcode.) 2b) Если termcode •< 0, то завершить работу алгоритма, воз- вратив значения х/ == Хо и termcode. Если termcode == 0, то поло- жить ifncount •<- 0 и продолжить дальше. 3) Вычислить FV+=F(xo), f,=^\\DpFVJ||. 4а) Решить, нужно ли остановиться. (Возвратить в драйвер значение termcode.} 4Ь) Если termcode > 0, то завершить работу алгоритма, возвра- тив значения Xf === хо и termcode. Если termcode = 0, то продол- жить дальше. 5) Вычислить Jc=-l(xo) или аппроксимировать его по конеч- ным разностям. 6) Вычислить g^=^D],FV^. 7) Положить Хс = XQ, FVc = FV+ и restart == TRUE. Итерация: 1) itncount •<- itncount + 1. 2) Вычислить ньютоновский шаг SN = — Ic Fc или его некото- рый вариант, если матрица /с вырождена или плохо обуслов- лена. Построить также связанную с этим минимизационную мо- дель, если используется алгоритм глобализации, основанный на построении доверительной области. 3) Положить х+ = Хс + Sc, где Sc=Sn или равно шагу, выби- раемому в соответствии со стратегией глобализации. В процес- се выполнения этого шага алгоритма вычисляются F,=F(x.) И^='/2р^|. 4) Если /с вычисляется с помощью аппроксимаций по секущим и алгоритм застопорился, то, используя конечные разности, по- ложить заново /с равным J(xc), вычислить также заново gc и повторить итерацию. 5) Вычислить или аппроксимировать Jc==J(x+). 6) Вычислить g^f^D^pFV _^. 344 Приложение А. 7а) Решить, нужно ли остановиться. (Возвратить в драйвер зна- чение termcode.) 7b) Если termcode > 0, то завершить работу алгоритма, воз- вратив значения Xf = х+ и termcode. Если termcode == 0, то про- должить дальше. 8) Положить Хс^-х+, fc^-f+, FVc^-FV+ и вернуться к шагу 1 итерационной части. Алгоритм: (* Инициализирующая часть: *) 1. CALL MACHINEPS (macheps) 2. CALL NEINCK. (список параметров определяет тот, кто занимается программной реализацией) (* см. описание NEINCK*) 3. IF termcode < О THEN 3.1 x.f<-Xo 3.2 RETURN для алгоритма D6.1.3 (* при желании вывести на печать соответствующее сообщение *) 4. itncount^—О 5. CALL NEFN (n, Xy, f,) (*NEFN вычисляет также значение FV ^ = F (xy) и передает его драйверу через глобальный параметр *) 6. CALL NESTOPO(ra, Xy, FV+, Sp, fuectol, termcode, consecmax) (*алг. А7.2.4*) 7. IF termcode > 0 7T. THEN Xf^-Xo 7E. ELSE (* вычислить начальное значение якобиана*) 7Е.1 IF analjac 7E.1T THEN CALL JAC (n, XQ, J,) 7E.1E ELSE CALL FDJAC (n, Xy, FV+, FVEC, S^, T], /,) (*алг. А5.4.1 *) (^<-W^*) 7E.2 FOR i= 1 TO га DO ^ Щ <-Z/c [/, гГ ^+[/Г ^ [/]2 7E.3 FVc^FV+ 0. XQ ^— XQ 9. restart <-TRUE (* Итерационная часть: *) 10. WHILE termcode =0 DO 10.1 itncount <— itncount + 1 10.2 IF analjac OR cheapF OR (NOT factsec) 10.2T THEN CALL NEMODEL (n, FV„ J„ gc, Sp, S^, macheps, global, M, He, s^) (*алг. Аб.5.1*) Модульная система алгоритмов 345 10.2Е ELSE CALL NEMODELFAC (n, FV c, gc, Sp, S^, macheps, global, restart, M, M2, Jc, He, s^} (* алг. A6.5Afac*) 10.3a IF global = 1 THEN CALL LINESEARCH (n, x„ f„ FVEC, g„ s„, 5л:, maxstep, steptol, retcode, x^, f^, maxtaken) (*алг. А6.3.1 *) Ю.ЗЬ ELSEIF global =2 THEN CALL HOOKDRIVER (n, x„ f„ FVEC, g„ M, H„ Spf, Sx, maxstep, steptol, macheps, itncount, 6prev, 6, ц, (p, qp', retcode, x^., f^., maxtaken} (* алг. А6.4.1 *) 10.3с ELSE (* global =3*) CALL DOGDRIVER (n, x„ f„ FVEC, g„ M, SN, S„ maxstep, steptol, 6, retcode, x^., f^., maxtaken) (* алг. А6.4.3 *) 10.4 IF (retcode = 1) AND (NOT restart} AND (NOT analjac) AND (NOT cheapF) 10.4T THEN (* обновление в методе секущих: вычислить заново /с и повторить итерацию *) 10.4Т.1 CALL FDJAC (n, x„ FVc, FVEC, S^, ц, /,) (*алг. А5.4.1 *) 10.4Т.2 g^J^D^FV, (* то же самое, что и в операторе 7E.2, с точностью до замены FV+ на FVc*) 10.4Т.З IF (global =2) OR (global =3) THEN б<-- 1 10.4Т.4 restart <- TRUE 10.4E ELSE (* завершить итерацию*) 10.4E.la IF analjac THEN CALL JAC (n, x+, /,) 10.4E.lb ELSEIF cheapF THEN CALL FDJAC (n, x^, FV+, FVEC, S^, r\, /,) (*алг. А5.4.1 *) 10.4E.lc ELSEIF factsec THEN CALL BROYFAC (n, x„ x+, FV„ FV+, •n, 5<, Sp, J„ M, M2) (* алг. А8.3.2 *) 10.4E.ld ELSE (* factsec == FALSE *) CALL BROYUNFAC (n, x^, x+, FVc, FV+, TI, S^, Jc) (*алг. А8.3.1*) 10.4E.2 IF factsec 10.4E.2T THEN (* вычислить gc, используя Q^-раз- ложение *) (* gc <- IcDpFV^ = (УОрРУ^: *) 10.4E.2T.1 FOR г==1 ТО n DO gc{i\^-^Ic{i,J}*FV^i}*SA]} (^gc^^gc:*) 346 Приложение А. 10.4Е.2Т.2 FOR i=n DOWNTO 1 DO ec[i\^^M[j,i}'gAJ} 10.4E.2E ELSE д <<_/r.n2.c-v 6c •'c ~F • ' + (*так же, как и в операторе 7Е.2 *) 10.4Е.З CALL NESTOP (n, x„ ^, FV^ ^, g„ S„S„ retcode, fvectol, steptol, itncount, Unlimit, maxtaken, analjac, cheapF, minfol, consecmax, fermcode) (* алг. А7.2.3 *) 10.4E.4a IF (termcode == 2) AND (NOT restart) AND (NOT analjac) AND (NOT cheapF) THEN (* обновление *) GO TO 104T 1 10.4E.4b ELSEIF termcode >0 THEN 10.4E.4bT.! Xf^x^ 10.4E.4bT.2 IF termcode = 1 THEN FV^FV, 10.4E.4c ELSE restarts- FALSE 10.4E.5 x,<-x. 10.4E.6 ^<-^ 10.4E.7 FV,^FV+ (^END, операторы IFTHENELSE 10.4 и WHILE 10*) (* при желании вывести на печать соответствующее сообщение об окончании *) (* RETURN для алгоритма D6.1.3*) (*END, алгоритм D6.1.3*) III. 2. Перечень модулей для нелинейных уравнений Шаги в разделе Описание драйвера D6.1.3 соответствуют сле- дующим модулям. Шаги в этом описании, которые не приведены ниже, отвечают соответствующим строкам псевдопрограммы драйверного алгоритма. Инициализация Шаг 1 —MACHINEPS Шаг 2а - NEINCK Шаг 3 - (NEFN/FVEC) Шаг 4а - NESTOPO Шаг 5 —JAC или FDJAC Модульная система алгоритмов 347 Итерация Шаг 2 —(NEMODEL/QRDECOMP/CONDEST/'QRSOLVE/ CHOLDECOMP/CHOL SOLVE) или (NEMODELfac/ QRDECOMP/QFORM/CONDEST/RSOLVE/ CHOLDECOMP/CHOLSOLVE) Шаг 3 —LINESEARCH или LINESEARCHmod или (HOOKDRIVER/HOOKSTEP/TRUSTREGUP) или (DOGDRIVER/DOGSTEP/TRUSTREGUP) Шаг 4 — FDJAC (см. приведенное ниже замечание) Шаг 5 —JAC или FDJAC или BROYUNFAC или (BROYFAC/QRUPDATE) Шаг 7а — NFSTOP В том случае, когда какой-либо из приведенных выше шагов содержит два и более модулей или групп модулей, разделенных между собой союзом «или», они представляют собой альтерна- тивные варианты, выбираемые с помощью параметров, опреде- ляющих алгоритмический выбор. Подразумевается, что конкрет- ный метод использовал бы только один вариант для каждого такого шага алгоритма. Заметим, что в перечне, относящемся выше к итерации, шаг 4 (FDJAC) выполняется только, когда используются аппроксимации якобиана по секущим. В том случае, когда два и более модулей перечисляются выше в скобках и разделяются между собой наклонной чертой (/), первый из группы модулей, заключенных в скобки, вызы- вается драйвером, а остальные модули этой группы вызываются первым модулем. Например, NEFN вызывает FVEC. Кроме того, приведенные ниже модули вызывают следующие сервисные мо- дули и модуль вычисления функции: HOOKSTEP вызывает CHOLDECOMP и LSOLVE LINESEARCH вызывает (NEFN/FVEC) TRUSTREGUP вызывает (NEFN/FVEC) Приведенные ниже модули также вызывают следующие их под- алгоритмы: CHOLSOLVE вызывает LSOLVE и LTSOLVE QRSOLVE вызывает RSOLVE QRUPDATE вызывает JACROTATE 111.3. Руководство 4. Выбор алгоритмических вариантов решения нелинейных уравнений Ниже приведены алгоритмические варианты, имеющиеся в рас- поряжении при использовании системы алгоритмов решения не- линейных уравнений, и указания по их выбору. 348 Приложение А. global—положительное целое, указывающее следующим обра- зом на то, какую стратегию глобализации использовать на каждой итерации: = 1 Линейный поиск (алг. А6.3.1.) == 2 Криволинейный шаг на основе доверительной области (алг. А6.4.1) ^ 3 Шаг вдоль ломаной на основе доверительной области (алг. А6.4.3) На некоторых задачах могут существовать довольно большие различия в точности и эффективности, определяемые сменой способов глобализации 1, 2 и 3 при сохранении других пара- метров и допусков неизменными. Однако ни один из способов не создает впечатление явно превосходящего в общем случае остальные или уступающего им, и каждый из них, вероятно, является наилучшим на некоторых задачах. Эти три возмож- ности даны для сравнения и для того, чтобы предоставить возможность пользователю выбрать наилучший способ для конкретного'класса задач. Предлагаемое значение по умолчанию: global == 1 (так как это, вероятно, самый простой способ с точки зрения его по- нимания и программирования) analjac—переменная типа Boolean, которая имеет значение TRUE, если пользователем была предоставлена подпрограм- ма аналитического вычисления матрицы Якоби J(х}, и значе- ние FALSE в противном случае. Если аналитические якобиа- ны не предоставлены, то на каждой итерации система будет аппроксимировать якобиан в зависимости от значения cheap F по конечным разностям или по секущим. Алгоритмы в дан- ной системе могут работать более эффективно, если задаются аналитические якобианы. Следует предоставлять подпро- грамму вычисления аналитического гессиана всякий раз, когда это возможно. Предлагаемое значение по умолчанию: analjac = FALSE cheapF—переменная типа Boolean, которая имеет значение TRUE, если вычисление функции F(x) обходится недорого, и значение FALSE в противном случае. Если analjac == = TRUE, то значение cheapF игнорируется. Если analjac == = FALSE, то значение cheapF используется для выбора спо- соба аппроксимации якобиана: по конечно-разностным фор- мулам, если cheapF = TRUE; по секущим (формулы пере- счета Бройдена), если cheapF == FALSE. Методы, исполь- зующие конечно-разностные якобианы, обычно будут требо- вать меньшего числа итераций, чем методы, использующие на той же задаче аппроксимации по секущим. Методы с аппроксимациями по секущим, обычно будут требовать Модульная система алгоритмов 349 меньшего числа вычислений функции F(x), чем методы с ко- нечно-разностными якобианами (включая вычисления функ- ции, идущие на конечные разности), в особенности для за- дач со. средними и большими значениями п. Таким образом, если стоимость вычисления F(x} ощутима, то cheapF сле- дует положить равным FALSE, а в противном случае cheapF следует положить равным TRUE. Предлагаемое значение по умолчанию: cheapF = FALSE factsec—переменная типа Boolean, которая используется толь- ко в том случае, когда применяются аппроксимации яко- биана по секущим, т. е. когда analjac = FALSE и cheapF == FALSE, и которая игнорируется во всех остальных случаях. Если используется factsec, то ее значение влияет только на вычислительную трудоемкость алгоритма, причем результаты и последовательность итераций остаются без изменения. Если factsec = TRUE, то система использует факторизованную аппроксимацию по секущим, в которой пересчитывается QR- разложение аппроксимации якобиана, и которая требует 0(п2) арифметических операций на итерацию; если factsec = = FALSE, то она использует нефакторизованную аппроксима- цию, требующую 0{п3) операций на итерацию. (Подробности см. в разд. 8.3 основной части книги.) В коммерческой про- грамме следует положить factsec = TRUE, так как это бо- лее эффективно. Тем не менее, в учебных проектах можно отдать предпочтение factsec = FALSE, поскольку эта версия более проста для понимания. Предлагаемое значение по умолчанию: factsec == FALSE для учебных проектов, factsec = TRUE в остальных случаях. III. 4. Руководство 5. Выбор параметров для нелинейных уравнений Ниже приведены параметры масштабирования, останова и дру- гие параметры, использующиеся при решении нелинейных урав- нений, а также указания по выбору для них подходящих зна- чений. typx—см. руководство 2. tupF — массив размерности п, i-я компонента которого есть по- ложительный скаляр, указывающий характерную величину t-й компоненты функции F(x} в точках, которые находятся не вблизи корня F(x}. Параметр typF применяется для за- дания вектора масштабов Sp и диагональной матрицы мас- штабирования Dp, которые используются повсюду в про- грамме; Dp = diag((SF)i, ..., {Sp)n), где Sp[i} = \/typF[i]. Его следует выбирать так, чтобы все компоненты DpF(x) 350 Приложение А, имели сходные характерные величины в точках, не слишком близких к корню, а также следует выбирать в сочетании с fuectol, как это обсуждается ниже. Важно задать значе- ния typF, когда ожидается, что величины компонент F(x) будут сильно различаться; в этом случае программа может работать лучше при хорошей информации о масштабах, чем при Dp = I. Если компоненты F(x) сходны по величине, то программа будет работать при Dp = I с таким же успехом, как и при каких-либо других значениях. Предлагаемое значение по умолчанию: typF[i}^= I, i ==!,..., п. Fdigits — положительное целое, указывающее число достоверных десятичных разрядов, возвращаемых функцией FVEC, за- дающей нелинейные уравнения. Если компоненты F(x) имеют различные числа достоверных разрядов, то Fdigits следует положить равным наименьшему из этих чисел. В остальном обсуждение Fdigits аналогично обсуждению fdigifs в руководстве 2. Предлагаемое значение по умолчанию: Fdigits =—1 fvectol—положительный скаляр, задающий диапазон, в котором масштабированная функция DpF(x) считается достаточно близкой к нулю, чтобы остановить алгоритм. Алгоритм оста- навливается, если максимальная по модулю компонента DrF(x+) не превосходит fvectol. Это—основное условие оста- нова при решении нелинейных уравнений, и величины typF и fuectol должны выбираться так, чтобы эта проверка отра- жала представление пользователя о том, что считать реше- нием задачи. Предлагаемое значение по умолчанию: fvectol == macheps^3 stepfol—см. руководство 2. mintol — положительный скаляр, используемый для проверки того, не застрял ли алгоритм в точке локального минимума функции f(x)== l/2\\DFF(x)\\•г, где F(x)=^=0. Алгоритм оста- навливается, если максимальная по модулю компонента мас- штабированного градиента функции f{x} в х+ не превосходит mintol; здесь Vf (х) == ! (х}7 D^pF (x), а масштабированное зна- чение для V/(x+) определяется как в случае минимизации (см. gradtol, руководство 2). Значение mintol следует брать довольно малым, чтобы быть уверенным, что это условие не сработало в неподходящей ситуации. Предлагаемое значение по умолчанию: miniol == macheps2^. maxstep — см. руководство 2. itniimit—см. руководство 2. б — см. руководство 2. Модульная система алгоритмов 351 111.5. Руководство 6. Соображения относительно памяти для нелинейных уравнений Соображения относительно памяти для нелинейных уравнений тесно связаны с теми, которые приведены в руководстве 3 для безусловной минимизации; прежде чем читать руководство 6, прочтите, пожалуйста, руководство 3. Ниже даны дополнитель- ные замечания, применимые к алгоритмам решения нелинейных уравнений. 1) Во всей системе алгоритмов решения нелинейных уравне- ний используется три п. X «-матрицы: /, М и Н. Матрица / предназначается для хранения якобиана, вычисленного анали- тически или по конечным разностям. Если применяются факто- ризованные формулы секущих, то J также предназначается для хранения матрицы Z.== Q7", используемой в-алгоритмах АЗ.4.1 и А8.3.2. В матрице М хранятся (в компактном виде) Q^-разло- жение /; в нижней треугольной части М также хранится мат- рица L, используемая в алгоритмах, связанных с глобализацией. Матрица Н фигурирует в алгоритмах, связанных с глобализа- цией; участвует только верхняя часть Н, включая главную диа- гональ. Если используются аналитические якобианы, конечно- разностные якобианы или нефакторизованные аппроксимации по секущим (т. е. всё, кроме факторизованных аппроксимаций по секущим), то Н может легко делить память с М, если для этого незначительно модифицировать алгоритмы, как описано ниже в пункте 2. Это уменьшает требования к памяти под мат- рицы до двух п X п-матриц. Кроме того, когда используются аналитические или конечно-разностные якобианы, матрица J также может делить память с М, если сделать несколько до- полнительных модификаций, как указано ниже в п. 3. Это уменьшает требование к памяти под матрицы до одной п X п- матрицы, но такое уменьшение невозможно при формулах секу- щих. Когда используются факторизованные аппроксимации яко- биана по секущим, Н может делить память с М, только если внести некоторые довольно значительные изменения, как ука- зано ниже в п. 4. 2) Для того чтобы позволить Н делить память с М в случае аналитических якобианов, конечно-разностных якобианов или нефакторизованных аппроксимаций по секущим, должны быть модифицированы алгоритмы А5.5.2, А6.4.1—2 и А6.4.5, как опи- сано в п. 2 руководства 3. Кроме того, должны быть сделаны следующие модификации алгоритма А6.5.1 и драйвера А6.1.3: 352 Приложение А. Алгоритм А6.5.1 i) Заменить выходной параметр H<sR"^'1 на выходной па- раметр hdiag s R". И) Заменить Н [i, j] на М [t, /'] в строках 4Т.1.1, 4Т.3.1 и 4Е.5.1.2. iii) Заменить Н[1, j] на М[\, ]} в строке 4Т.2. iv) Заменить Н [j, i} на М [j, i] в строке 4Т.3.1. v) Заменить тело оператора цикла FOR в строке 4Т.4 на hdiag [i] <— М [i, /]+••• (остальное без изменений). vi) В строке 4Т.5 заменить параметр Н на hdiag. vii) Заменить Н [i, i} на hdiag [i} в строке 4Е.5.1.1. Драйвер D6.1.3 i) В строках 10.2Т и 10.ЗЬ заменить параметр Не на hdiag. 3) В случае когда используются аналитические или конечно- разностные якобианы, матрицы / и М могут делить память, если объединить / и М в один параметр в списке параметров в заго- ловке алгоритма А6.5.1 и при обращении к нему, заменить /['t,/] на M[i,/] в строке 1.1 алгоритма А6.5.1 и заменить все остав- шиеся вхождения параметра М в драйвере D6.1.3 на J. Един- ственно требуемая дополнительная модификация состоит в пе- ределке шагов 4Т.1—4 алгоритма А6.5.1 к виду H^—RTR вместо H•(—JTD2pJ. Поскольку Н и М (которая содержит R в ее верх- ней треугольной части) тоже могут делить память, как описано выше в п. 2, то это несколько нетривиально. Простой способ до- стичь этого заключается в использовании нижней треугольной части матрицы М, которая в то время не занята, в качестве временной памяти для Н. Подробности указанного преобразо- вания оставлены в качестве упражнения. 4) В случае, когда используются факторизованные аппрокси- мации якобиана по секущим, матрица Н может делить память с М, только если в системе алгоритмов произведены следующие изменения. Подробности оставлены в качестве упражнения. i) Не допускается использование факторизованных формул секущих при global ==2. ii) Производятся модификации в алгоритме А6.5 Ifac и драй- вере D6.1.3, аналогичные тем, что описаны выше в п. 2. iii) На шагах ЗТ.1—4 алгоритма A6.5.1fac матрица RTR фор- мируется в нижней треугольной части М, и вызывае- мая на шаге ЗТ.5 подпрограмма CHOLDECOMP заме- няется на такую, которая выполняет разложение на месте нижней треугольной части матрицы. (CHOLDECOMP, как она написана, имеет на входе верхнюю треугольную матрицу, а на выходе—нижнюю треугольную матрицу.) Модульная система алгоритмов 353 111.6. Алгоритм D6.1.4 (NEEXAMPLE). Драйвер алгоритма решения нелинейных уравнений, использующего поиск вдоль ломаной и конечно-разностную аппроксимацию якобиана Назначение: Попытаться найти корень JC» функции F{x): /?"-»- Я" из начальной точки хо, используя алгоритм поиска вдоль ло- манной и конечно-разностные якобианы. Входные параметры: neZ(ra^l), хо s R'1, FVEC (имя зада- ваемой пользователем функции F: Rn—>-R'l, которая по мень- шей мере непрерывно дифференцируема). Кроме того, необязательные: typx <= R'1, typF s R'1, Fdigits e г Z, fvectol s R, steptol s R, mintol <= R, maxstep s R, itniimit (=Z, 6 s R, printcode s Z (относительно дополнитель- ной информации см. алгоритм D6.1.3). Входно-выходные параметры: отсутствуют (см. п. 2 раздела Па- мять в алгоритме D6.1.3). Выходные параметры: xf s R'1 (заключительное приближение к х„}, termcodee.Z (указывает на то условие окончания, которое явилось причиной остановки алгоритма). Кроме того, необязательные: FV^^Rn(=F(Xf)), f^R^^^JiXf)}, другие выходные параметры по желанию того, кто занимается программной реализацией (см. разд. 1.4) Значения кодов возврата, память: такие же, как у алгоритма D6.1.3. Алгоритм: ^Инициализирующая часть:*) 1. CALL MACHINEPS(macAeps) 2. CALL NEINCK (список параметров определяется тем, кто занимается программной реализацией) (*см. описание NEINCK*) 3. IF termcode < О THEN 3.1 Xf(-Xo 3.2 RETURN для алгоритма D6.1.4 (* при желании вывести на печать соответствующее сообщение *) 4. Uncount <- 0 5. CALL NEFN(ra, Хц, f,) (* NEFN вычисляет также значение FV+==F{Xo) и передает его драйверу через глобальный параметр *) 6. CALL NESTOPO(/i, Хц, FV+, Sp, fvectol, termcode, consecmax) (*алг. А7.2.4*) 7. IF termcode > 0 7T.THEN Xf^-xo 12 Зак. 660 354 Приложение А. 7Е. ELSE (* вычислить начальное значение конечно-разностного якобиана *) 7Е.1 CALL FDJAC(re, х», FV+, FVEC, S„ л, /с) (*алг. А5.4.1 *) (*gc^fтcD2PFV+'•^ 7Е.2 РОРг= 1 ТО п DO gc Ш <-t/c [/^Г Л^Ш* ^ Щ2 7Е.З FVc^FV^ О. XQ ^— XQ 9. res/or/ <- TRUE (* Итерационная часть: *) 10. WHILE termcode = О DO 10.1 Uncount <- itncoutit + 1 10.2 CALL NEMODEL(/i, FVc, Ic, gc, Sp, S^, macheps, global, M, He, s„)(* алг. А6.5.1 *) 10.3 CALL DOGDRIVER(/z, x„ f„ FVEC, gc, M, s^, S^, maxstep, steptol, 6, retcode, x^., f+, maxtaken) (*алг. А6.4.3*) 10.4 CALL FDJAC(n, x+, Л/+, FVEC, 5^, /,) (*алг. А5.4.1 *) 10.5 g^]тc*D'lF*FV+ (* то же самое, что и в операторе 7Е.2 *) 10.6 CALL NESTOP(ra, x„ x+, FV+, f+, gc, S^, Sp, retcode, fvectol, steptol, Uncount, ifniimit, maxtaken, analjac, cheapF, mintol, consecmax, termcode) (*алг. А7.2.3*) 10.7 IF termcode > 0 THEN Xf^x+ ELSE restarts FALSE 10.8 л:с<-х+ 10.9 ^<-^. 10.10 FV^FV+ (*END, цикл WHILE 10*) (* при желании вывести на печать соответствующее сообщение об окончании *) (* RETURN для алгоритма D6.1.4*) (* END, алгоритм D6.1.4*) IV. ОТДЕЛЬНЫЕ МОДУЛИ IV. 1. Модули, задаваемые пользователем (требования к ним) Ниже приводятся спецификации для задаваемых пользовате- лем функций, которые требуются или же задаются по желанию Модульная система алгоритмов 355 при использовании системы алгоритмов безусловной минимиза- ции или решения систем нелинейных уравнений. Алгоритм FN. Подпрограмма вычисления целевой функции f(x) для безусловной минимизации Назначение: Вычислять значение задаваемой пользователем функции f(x): R" -^ R в точке Хс. Входные параметры: п г Z, Хс s R". Входно-выходные параметры: отсутствуют. Выходные параметры: fc• s R{== f(Xc)}. Описание: Пользователь должен задать эту подпрограмму при использова- нии данной системы алгоритмов безусловной минимизации. Она может иметь любое имя (за исключением имен подпрограмм в данном пакете); ее имя является входным для драйвера D6.1.1. Ее входные и выходные параметры должны быть точно такими, как указаны (в противном случае все обращения к FN в си- стеме алгоритмов должны быть изменены). Значения входных параметров п и Хс не могут быть изменены этой подпрограммой; подпрограмма должна присваивать параметру fc значение целе- вой функции в Хс- Алгоритм GRAD. Подпрограмма вычисления вектора градиента ^f(x) (необязательная) Назначение: Вычислять значение задаваемого пользователем \ градиента ^f(x): R'l->-R'^ целевой функции f(x) в точке Хс. {Vf(x}[i} ==д!{х)/дх[1}}. Входные параметры: п 1=. Z, Хс е /?". Входно-выходные параметры: отсутствуют. Выходные параметры: g e /?"(== Vf{xc)). Описание: Пользователь по своему усмотрению может задать эту подпро- грамму при использовании данной системы алгоритмов безу- словной минимизации (см. analgrad в руководстве 1). Она мо- жет иметь любое имя (за исключением имен подпрограмм в данном пакете); ее имя является входным для драйвера D6.1.1. Ее входные и выходные параметры должны быть точно такими, как указаны (в противном случае все обращения к GRAD в си- 12* 356 Приложение А. стеме алгоритмов должны быть изменены). Значения входных параметров п. и Хс не могут быть изменены этой подпрограммой; подпрограмма должна присваивать параметру g значение гра- диента целевой функции в Хс. Алгоритм HESS. Подпрограмма вычисления матрицы Гессе У^(лг) (необязательная) Назначение: Вычислять задаваемый пользователем гессиан V^x): R"-^Rnxn целевой функции f(x} в точке Хс. (\'2f(x) [i, j} = д2f{x)/дx[i]дx[j}•, предполагается, что f{x) по крайней мере дважды непрерывно дифференцируема, так что гессиан У^(х) симметричен.) Входные параметры: п е Z, Хс Е /?". Входно-выходные параметры: отсутствуют. Выходные параметры: симметричная матрица H<=Rnxn{= =V2^)). Память: 1) Остальной частью системы алгоритмов используется только верхняя треугольная часть Н, включая главную диагональ. По- этому не нужно присваивать никакие значения элементам ниж- ней треугольной части Н, т. е. элементам H[i, j}, где i > j. Если же нижняя треугольная часть Н заполнена, то она будет игно- рироваться, но никакого вреда остальной части системы алго- ритмов это не принесет. 2) Не требуется никаких изменений этого алгоритма при ис- пользовании экономичного способа хранения матриц. 3) Алгоритму HESS может потребоваться дополнительный вход- ной параметр ndim, если настоящие алгоритмы реализуются на Фортране (см. п. 5 руководства 3). Описание: Пользователь по своему усмотрению может задать эту подпро- грамму при использовании данной системы алгоритмов безу- словной минимизации (см. analhess в руководстве 1). Она мо- жет иметь любое имя (за исключением имен подпрограмм в данном пакете); ее имя является входным для драйвера D6.1.1. Ее входные и выходные параметры должны быть точно такими, как указаны (в противном случае все обращения к HESS в си- стеме алгоритмов должны быть изменены). Значения входных параметров п и Хс не могут быть изменены этой подпрограм- мой; подпрограмма должна присваивать параметру Н значение гессиана целевой функции в Хс. Модульная система алгоритмов 357 Алгоритм FVEC. Подпрограмма вычисления функции F(x), задающей нелинейные уравнения Назначение: Вычислять значение задаваемой пользователем вектор-функции F(x): R"-г R" в точке Хс- Входные параметры: п s Z, Хс е R". Входно-выходные параметры: отсутствуют. Выходные параметры: Fc s R"(= F{xc)). Описание: Пользователь должен задать эту подпрограмму при использова- нии данной системы алгоритмов решения систем нелинейных уравнений. Она может иметь любое имя (за исключением имен подпрограмм в данном пакете); ее имя является входным для драйвера D6.1.3. Однако если ее имя не есть FVEC, то слово FVEC в строке 2 алгоритма NEFN должно быть заменено на имя этой подпрограммы (разъяснение см. в алгоритме NEFN). Ее входные и выходные параметры должны быть точно такими, как указаны (в противном случае все обращения к FVEC в си- стеме должны быть изменены). Значения входных параметров га и Хс не могут быть изменены этой подпрограммой; подпрограмма должна присваивать параметру Fc значение в Хс вектор-функ- ции, задающей нелинейные уравнения. Алгоритм JAC. Подпрограмма вычисления матрицы Якоби J(x) (необязательная) Назначение: Вычислять задаваемый пользователем якобиан J{x): R'l-^Rnx't вектор-функции F(x) в точке Хс. (I[i,j] == =0fi(x)/0x[j], где fi(x) есть i-я компонента функции F(x).) Входные параметры: п s Z, Хс е /?". Входно-выходные параметры: отсутствуют. Выходные параметры: / е Rnxn(==f{xc)). Память: 1) Используется вся матрица /. 2) Не требуется никаких изменений данного алгоритма при применении экономичного способа хранения матриц. Описание: Пользователь по своему усмотрению может задать эту подпро- грамму при использовании данной системы алгоритмов решения систем нелинейных уравнений (см. analjac в руководстве 4). 358 Приложение А. Она может иметь любое имя (за исключением имен подпро- грамм в данном пакете); ее имя является входным для драйвера D6.1.3. Ее входные и выходные параметры должны быть точно такими, как указаны (в противном случае все обращения к JAC в системе алгоритмов должны быть изменены). Значения входных параметров п и Хс не могут быть изменены этой под- программой; подпрограмма должна присваивать параметру J значение якобиана вектор-функции, задающей нелинейные урав- нения, в Хс- IV. 2. Модули, задаваемые разработчиком (частичное описание) Алгоритм UMINCK. Проверка входных параметров для безусловной минимизации Назначение: Проверить введенные пользователем в драйвере безусловной минимизации значения параметров, определяю- щих алгоритмические варианты, допусков и других парамет- ров; присвоить значения невведенным пользователем пара- метрам алгоритмических вариантов и допускам, а также кон- стантам Sx И Т]. Входные параметры: п s Z, macheps e R, xo s R'1. Кроме того, typx s R" и fdigits s Z, если они введены пользо- вателем в драйвере безусловной минимизации. Необязательные входные или выходные параметры: typf e R, gradtol s R, steptol e R, maxstep e R, itniimit <= Z, print- code sZ (см. ниже примечание 1); 6^R (см. ниже приме- чание 2); global е Z, analgrad г Boolean, analhess e. Воо- lean, cheapf г Boolean, factsec s Boolean (см. ниже приме- чание 3). Выходные параметры: Sx s R" (см. ниже примечание 4), T] e R, termcode s Z. Значения кодов возврата: termcode == 0: все введено нормально или подкорректировано данной подпрограммой; termcode < 0: найдена неустранимая ошибка ввода следую- щего типа; termcode == — 1: п < 1; termcode < —1: другие коды возврата, назначенные тем, кто занимается программной реализацией алгоритма UMINCK. Память: 1) Не требуется никакой дополнительной памяти под векторы или матрицы. Модульная система алгоритмоа 359 2) Если пользователем введен параметр typx, то он может де- лить память с S.x, т. е. вместе они могут представлять собой один входно-выходной параметр данного алгоритма. Примечания: 1) Значения параметров typf, gradtol, steptol, maxstep, и itniimit должны быть либо введены пользователем в драйвере безусловной минимизации, либо присвоены алгоритмом UMINCK. Выбор остается за тем, кто занимается реализацией данной системы алгоритмов. Значения введенных пользовате- лем необязательных параметров могут проверяться алгоритмом UMINCK. Значениями, присваиваемыми алгоритмом UMINCK, могут быть либо значения по умолчанию, приведенные в руко- водстве 2, либо другие значения, выбранные тем, кто занимается программной реализацией, (хц используется для вычисления значения по умолчанию для maxstep.) Если printcode исполь- зуется в том виде, как обсуждалось в разд. 1.4 настоящего приложения, то ему тоже должно быть присвоено значение поль- зователем или алгоритмом UMINCK. 2) Значение 6 должно быть задано пользователем или алгорит- мом UMINCK, если global == 2 или 3; оно игнорируется, если global = 1 или 4. См. ниже шаг 4. 3) При реализации полностью всей системы алгоритмов безу- словной минимизации (драйвер D6.1.1) параметры global, anal- grad, analhess, cheapf и factsec либо должны иметь возмож- ность ввода их значений в драйвере D6.1.1, либо им должны присваиваться значения алгоритмом UMINCK. Здесь применимы те же рассуждения, что и выше в п. 1. Рекомендации по вы- бору значений этих параметров алгоритмических вариантов при- ведены в руководстве 1. Если кто-либо занимается программной реализацией подмножества данной системы алгоритмов безу- словной минимизации, такого, как, скажем, представлено драй- вером D6.1.2, то некоторые или все из этих пяти параметров мо- гут ему не понадобиться. 4) Если масштабирование во всей системе не реализуется,, то исключаются выходной параметр Sx и приведенный ниже шаг 2. Описание: 1) Если п -< 1, то положить termcode =—1 и завершить ра- боту алгоритма UMINCK. 2) Если typx. был введен пользователем, то положить Sx[i] рав- ным (\/typx[i\), i === 1, .. ., п, иначе положить Sx[i} == 1, i == ==1, ..., п. 3) Если fdigits был введен пользователем, то положить T] рав- ным тах {macheps, ю-fdigus^ дд^ равным maceps, если fdi- gits ==—1. В противном случае положить T) равным macheps или оценить его, например, с помощью алгоритма Хемминга 360 Приложение А. 119731, приведенного в книге Гилл, Мюррей и Райт [1981], разд. 8.5.2.3. Если •ц > 0.01, то, вероятно, должно быть возвра- щено отрицательное значение termcode. 4) Если global ==2 или 3, и для б не введено никакого значе- ния, то положить б == —1. 5) Присвоить значения параметрам алгоритмических вариантов и другим параметрам, не введенным пользователем, и проверить (необязательно) те значения, которые были введены пользова- телем, как обсуждалось выше в примечаниях 1 и 3. Замечание: если global = 2, analhess == FALSE и cheapf = FALSE, то fact- sec следует установить равным FALSE. (См. руководство 1.) Алгоритм NEINCK. Проверка входных параметров для нелинейных уравнений Назначение: Проверить введенные пользователем в драйвере решения нелинейных уравнений значения параметров, опре- деляющих алгоритмические варианты, допусков и других па- раметров; присвоить значения невведенным пользователем параметрам алгоритмических вариантов и допускам, а также константам Sx, Sp и q. Входные параметры: п ? Z, macheps e R, XQ г R'1. Кроме того, typx^R", typF г R"-, и Fdigits=sZ, если они вве- дены пользователем в драйвере решения нелинейных урав- нений. Необязательные входные или выходные параметры: fvectol^R. steptol е R, mintol е R, maxstep е R, itnilmit <= Z, printco- riesZ (см. ниже примечание 1); 6(=R (см. ниже примеча- ние 2); global е Z, analjac s= Boolean, cheapF e Boolean, factsec e Boolean (см. ниже примечание З). Выходные параметры: Sx^R", Sp es R" (см. ниже примеча- ние 4), У] е R, termcode г Z. Значения кодов возврата: termocode == 0: все введено нормально или исправлено дан- ной подпрограммой; termcode < 0: найдена неустранимая ошибка ввода следую- щего типа: termcode ==—1 :«•<!; termcode < —1: другие коды возврата, назначенные тем, кто занимается программной реализацией алгоритма NEINCK. Память: 1) Не требуется никакой дополнительной памяти под векторы или матрицы. Модульная система алгоритмов 361 2) Если пользователем введены параметры typx или typF, то они могут делить память соответственно с Sx и Sp, т. е. каж- дая пара может представлять собой один входно-выходной па- раметр данного алгоритма. Примечания: 1) Значения параметры fuectol, steptol, mintol, maxstep и Unlimit должны быть либо введены пользователем в драйвере решения нелинейных уравнений, либо присвоены алгоритмом NEINCK. Выбор остается за тем, кто занимается реализацией данной системы алгоритмов. Значения введенных пользовате- лем необязательных параметров могут проверяться алгоритмом NEINCK. Значениями, присваиваемыми алгоритмом NEINCK, могут быть либо значения по умолчанию, приведенные в руко- водствах 2 и 5, либо другие значения, выбранные тем, кто зани- мается программной реализацией, (хо используется для вычис- ления значения по умолчанию для maxstep.) Если printcode ис- пользуется в том виде, как обсуждалось в разд. 1.4 настоящего приложения, то ему тоже должно быть присвоено значение пользователем или алгоритмом NEINCK. 2) Значение б должно быть задано пользователем или алгорит- мом NEINCK, если global =2 или 3; оно игнорируется, если global === 1. См. ниже шаг 5. 3) При реализации полностью всей системы алгоритмов реше- ния нелинейных уравнений (драйвер D6.1.3) параметры global, analjc, cheapF и factsec либо должны иметь возможность ввода их значений в драйвере D6.1.3, либо им должны присваи- ваться значения алгоритмом NEINCK. Здесь применимы те же рассуждения, что и выше в п. 1. Рекомендации по выбору зна- чений этих параметров алгоритмических вариантов приведены в руководстве 4. Если кто-либо занимается программной реали- зацией подмножества данной системы алгоритмов решения не- линейных уравнений, такого, как, скажем, представлено драй- вером D6.1.4, то некоторые или все из этих четырех параметров могут ему не понадобиться. 4) Если масштабирование во всей системе не реализуется, то исключаются выходные параметры Sx и Sp, а также приведен- ные ниже шаги 2 и 3. Описание: 1) Если п •< 1, то положить termcode ==—1 и завершить работу алгоритма NEINCK. 2) Если typx был введен пользователем, то положить Sx[i] рав- ным (\/typx[i]), г'=1, ..., п, иначе положить 5;c[f]==l, i= =1, ..., п. 3) Если typF был введен пользователем, то положить Sp[i] рав- ным (l/typF[i]), i=\, ..., п, иначе положить S/?[t]==l, i = =1, .... п. 362 Приложение А. 4) Если Fdiglts был введен пользователем, то положить \\ рав- ным max{macheps, lO-^'e'^}, или равным macheps, если F di- gits =—1. В противном случае положить т] равным macheps или оценить его, например, с помощью алгоритма Хемминга [1973], приведенного в книге Гилл, Мюррей и Райт [1981], разд. 8.5.2.3. Если T] >• 0.01, то, вероятно, должно быть возвра- щено отрицательное значение termcode. 5) Если global == 2 или 3 и для б не введено никакого значения, то положить б равным —1. 6) Присвоить значения параметрам алгоритмических вариантов и другим параметрам, не введенным пользователем, а также проверить (необязательно) те значения, которые были введены пользователем, как обсуждалось выше в примечаниях 1 и 3. IV.3. Алгоритмические модули (приведены полностью) Алгоритм NEFN. Вычисление суммы квадратов для нелинейных уравнений Назначение: Вычислять в х+ значение функции F(x}, задающей нелинейные уравнения, и вычислять f+ <— '/all DpF (-c+)|'|. Входные параметры: п s Z, х+ s R". Входно-выходные параметры: отсутствуют. Выходные параметры: f+ E /?. Память: 1) В дополнение к перечисленным выше параметрам входная переменная SF <=- R'1 (Dp = diag((SF)i, ..., (Sp)n}) и выходная переменная FV+^ /?"(== F(x+)) должны передаваться как гло- бальные переменные между NEFN и драйвером решения нели- нейных уравнений D6.1.3. (В Фортране это достигается помеще- нием SF и FV+ в помеченный COMMON-блок алгоритмов NEFN и D6.1.3.) Это единственное место во всей системе алгоритмов, где используются глобальные переменные. Требуется, чтобы па- раметры у NEFV и у целевой функции безусловной минимизации FN были одинаковыми; это дает возможность применять одни и те же подпрограммы глобализации как к безусловной миними- зации, так и к нелинейным уравнениям. Примечания: 1) Если имя задаваемой пользователем подпрограммы, которая вычисляет значение вектор-функции в нелинейных уравнениях, отличается от FVEC (см. алгоритм FVEC в разд. IV. 1 настоя- щего приложения), то идентификатор FVEC в строке 2 данного алгоритма должен быть заменен на имя этой задаваемой поль- Модульная система алгоритмов ЗбЗ зователем подпрограммы. Этого делать не нужно, если имя за- даваемой пользователем подпрограммы для F(x) может переда- ваться как глобальная переменная между алгоритмами D6.1.3 и NEFN; в Фортране это невозможно. Алгоритм: 1. CALL FVEC (п, л-+, FV+)(*FV+ <-.F(A-J *) 2. ^<-72*Е((5^]*Л^[ф2) (* RETURN для алгоритма NEFN *) (*END, алгоритм NEFN*) Алгоритм Al.3.1 (MACHINEPS). Вычисление машинного эпсилона Назначение: Вычислять машинный эпсилон. Входные параметры: отсутствуют. Входно-выходные параметры: отсутствуют. Выходные параметры: macheps e R. Память: 1) Никакой памяти под векторы и матрицы не требуется. Алгоритм: 1. macheps <- 1 2. REPEAT macheps <- macheps/2 UNTIL (1 + macheps) = 1 3. macheps <- 2 * macheps (* RETURN для алгоритма Al.3.1*) (*END, алгоритм Al.3.1*) Алгоритм А3.2.1 (QRDECOMP). 0/?-разложение Назначение: Вычислять (^-разложение квадратной матрицы М, используя алгоритм из книги Стюарт (1973). По окончании работы алгоритма это разложение хранится в М, М\ и М2, как описано ниже. Входные парамеры: п <= Z. Входно-выходные параметры: М s ^"х" (на выходе Q и R зако- дированы в М, Ml и М2, как описано ниже). Выходные параметры: М Is R", M2 е R", sing e Boolean. 364 Приложение А. Память: 1) Не требуется никакой дополнительной памяти под векторы и матрицы. 2) На выходе Q и R хранятся, как описано Стюартом: R со- держится в верхней треугольной части М, за исключением ее главной диагонали, которая содержится в M2, (y==Q^_^- ... ...•Qi, где Q, = / — (u^/л/), и/[г]==0, г ==!,..., /—1, u,[i\=M[i, Л, i =j,..., п, л/=М1[Л. 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 6. Описание: Q.R-разложение матрицы М выполняется с помощью преобра- зований Хаусхолдера алгоритмом из книги Стюарт (1973). Раз- ложение возвращает значение sing == TRUE, если обнаружи- вается вырожденность М, иначе — значение sing = FALSE. Раз- ложение выполняется даже в случае обнаружения вырожден- ности. Алгоритм: 1. sing's- FALSE (* sing принимает значение TRUE, если в процессе разло- жения обнаруживается вырожденность М *) 2. FOR k==l TO n- 1 DO 2.1 TI<- max {\M[i, k}\} ft<t'<n 2.2 IFn==0 2.2T THEN (* матрица вырождена *) 2.2T.1 Ml[k}<-0 2.2T.2 M2[k}^0 2.2T.3 sm^<-TRUE 2.2E ELSE (* сформировать Qfe и умножить М на нее слева *) 2.2Е.1 FOR i =k TO n DO M[i,k}^M[i, k}h 2.2Е.2 o^sign{M[k,k]}*(JE.^M[i, k}2) 2.2E.3 M[k, k\<-M[k, k]+o 2.2E.4 M\[k}<-o*M[k, k] 2.2E.5 M2 [k] <- - л * о 2.2E.6 FOR/=fe+l TO n DO 2.2E.6.1 т<- (E M [i, k} * M [i, л)/Л11 [k} 2.2E.6.2 FOR i~=k TO n DO M[i, J]^M[i, j]-r*M[i,k] 3. IF M[n, n}==0 THEN swg^TRUE Модульная -система алгоритмов 365 4. т [п] <- M [n, n} (* RETURN для алгоритма АЗ.2.1 *) (* END, алгоритм АЗ.2.1*) Алгоритм АЗ.2.2 (QRSOLVE). Q^-решение Назначение: Решать (QR)x=b относительно х, где ортогональ- ная матрица Q и верхняя треугольная матрица R хранятся в памяти, как это описано в алгоритме АЗ.2.1. Входные параметры: п (= Z, Me /?"><", Ml <= R", M2 <= R" (Q и R закодированы в M, All и M2, как описано в алгоритме АЗ.2.1). Входно-выходные параметры: Ь s R"- (на выходе на месте век- тора b записывается решение х). Выходные параметры: отсутствуют. Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 6. Примечания: 1) Алгоритм А3.2.2а должен быть представлен отдельной под- программой, потому что он отдельно вызывается алгоритмами A3.3.1 и A6.5.1fac. Описание: 1) Умножить Ь на Q1'. Матрица Q7" хранится в виде Qn-r ... ... -Qi, где каждая Q/ представляет собой преобразование Хаус- холдера, закодированное, как описано в алгоритме АЗ.2.1. Та- ким образом, этот шаг состоит в умножении слева b на Q,, /' == =1, ..., п-\. 2) Решить Rx = QTb. Алгоритм: (*Ь^(УЬ*) 1. FOR /=1 TO n— I DO (*b<-q,b*} 1.1 x^(i,M[l,]}*b[i\\IM\{]\ \i=t / 1.2 FOR г=/ ТО п DO b[i}^b[i]--c*M[i, Л (^^-'б*) 366 Приложение А. 2. CALL RSOLVE (n, M, M2, b) (* алг. A3.2.2a *) (* RETURN для алгоритма АЗ.2.2 *) (* END, алгоритм АЗ.2.2. *) Алгоритм А3.2.2а (RSOLVE). /?-решение для (^-разложения Назначение: Решить Rx == b относительно х, где верхняя тре- угольная матрица R хранится в памяти, как описано в алго- ритме A3.2.1. Входные параметры: n <= Z, М <= ^"х", M2^Rn (M2 содержит диагональ матрицы R, остальная часть R содержится в верх- ней треугольной части матрицы М). Входно-выходные параметры: 6s/?" (на выходе на месте b записывается решение х). Выходные параметры: отсутствуют. Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 6. Алгоритм: 1. b [п] <-- b [п]/М2 [п] 2. FOR i=n- 1 DOWNTO 1 DO b[l\- S М[г,Л*6[Л . ГЦ __________/"t+l___________________ ь ^———————М2Ш——————— (* RETURN для алгоритма А3.2.2а *) (*END, алгоритм А3.2.2а *) Алгоритм АЗ.2.3 (CHOLSOLVE). Драйвер решения по Холесскому Назначение: Решать (LZ7)s == —g относительно s. Входные параметры: п (= Z, g e R", нижняя треугольная Le^"x". Входно-выходные параметры: отсутствуют. Выходные параметры: s e R". Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. Модульная система алгоритмов 367 2) В процессе решения g не меняется. 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 3. Примечания: 1) Алгоритм A3.2.За должен представлять собой отдельную под- программу, потому что он непосредственно вызывается алгорит- мом А6.4.2 (HOOKSTEP). Алгоритм: (* Решить Ly=g:*} 1. CALL LSOLVE (n, g, L, s) (* алг. А3.2.3а *) (* Решить Z/s = y: *) 2. CALL LTSOLVE (ra, s, L, s) (алг. A3.2.3b *) 3. s<-—s (* RETURN для алгоритма АЗ.2.3*) (*END, алгоритм АЗ.2.3*) Алгоритм А3.2.3а (LSOLVE). L-решение Назначение: Решать Ly = b относительно у. Входные параметры: п <= Z, b <=. 7?", нижняя треугольная L s s ./?"><" Входно-выходные параметры: отсутствуют. Выходные параметры: у е R". Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) Подразумевается, что b и у—отдельные параметры. Если при вызове алгоритма b и у соответствуют одному и тому же вектору, то алгоритм работать будет, но b уничтожится в ре- зультате перезаписи. 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 3. Алгоритм: 1. </[1]<-&[1]/L[1, 1] 2. FOR г ==2 ТО га DO г-i b U] - Z (L t'. Л * У W У^-——'-т^——— (* RETURN для алгоритма А3.2.3а *) (*END, алгоритм А3.2.3а *) 368 Приложение А. Алгоритм А3.2.3Ь (LTSOLVE). г7-решение Назначение: Решать Lтx = у относительно х. Входные параметры: п s Z, у s 7?", нижняя треугольная L <= ^ f^nxn Входно-выходные параметры: отсутствуют. Выходные параметры: х s R". Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) Подразумевается, что у и х — отдельные параметры. Если при вызове алгоритма у и х соответствуют одному и тому же вектору, то алгоритм работать будет, но у уничтожится в ре- зультате перезаписи. 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 3. Алгоритм: 1. х [п] <- у [n]/L [п, п} 2. FOR i = п - 1 DOWNTO 1 DO у [i] - Z (L ^ t] * x ^ ^•1-——^гЬ——— (* RETURN для алгоритма A3.2.3b *) (*END), алгоритм A3.2.3b*) Алгоритм АЗ.3.1 (CONDEST). Оценивание числа обусловленности верхней треугольной матрицы Назначение: Оценивать в /i-норме число обусловленности верх- ней треугольной матрицы R с помощью алгоритма, содержа- щегося в работе Клайн, Моулер, Стюарт и Уилкинсон (1979). Входные параметры: п е Z, Me. /?"><", M2 s R'1 (М2 содержит главную диагональ матрицы R, остальная часть матрицы R содержится в верхней треугольной части матрицы М). Входно-выходные параметры: отсутствуют. Выходные параметры: est s R (оценка снизу в ^-норме числа обусловленности матрицы R). Память: 1) Требуются 3 /г-вектора дополнительной памяти для р,рт и x. 2) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 6. Модульная система алгоритмов 369 Описание: 1) est^-Wi. 2) Решить RTx == е относительно х, где ег=±1, г'=1, ..., п, и знак для e-i выбирается в соответствии с алгоритмом из ра- боты Клайн, Моулер, Стюарт и Уилкинсон (1979) с использова- нием их соотношения (3.19). 3) Решить Ry == х относительно у. (В приведенной ниже реали- зации у записывается на место х.) 4) est<-est*\\yU\x\\,. Алгоритм: (* в шагах 1 и 2 положить es<<-||/?||1 *) 1. est^-\M2[\}\ 2. FOR j=2 TO n DO /-i 2.1 temp^-\M2[j]\+^\M[i,j}\ t-i 2.2 est<- max {temp, est} (* в шагах 3—5 решить ^?гy==б, выбирая е в процессе их вы- полнения *) 3. х[\]^-\/М2[\] 4. FOR i=2 ТО п DO p[i]^M[\,i]*x[l} 5. FOR j =2 ТО п DO (* выбрать е, и вычислить х [j} *) 5.1 xp^(l-p[j]}/M2[j} 5.2 xm^(-\-p[j})/M2[j] 5.3 temp <-1 хр \ 5.4 tempm-<—\ xm \ 5.5 FOR ;•=/'+ 1 TO n DO 5.5.1 pm [i] <- p [i\ + M [j, i] *xm 5.5.2 tempm <- tempm + (I pm [i\ |/| M2 [i] \) 5.5.3 p[i]^p[i\+M[j, i\*xp 5.5.4 temp <- temp + (\ p [i} |/| M2 [i}\) 5.6 IF temp ^ tempm 5.6T THEN x[j}^xp (*e/=l*) 5.6E ELSE (*e/==-l *) 5.6E.1 x[j}^xm 5.6E.2 FOR г=/+ 1 TO n DO P W<- pm {i\ n. 6. xnorm<- Z \x[!} I /=i 7. est <- est I'xnorm 8. CALL RSOLVE {n, M, M2, x) (* обращение к алгоритму А3.2.2а для вычисления R~ x *) 370 Приложение А. п 9) xnorm <- S I -к [Л I 10. est •<—est* xnorm (* RETURN для алгоритма АЗ.3.1 *) (*END, алгоритм АЗ.3.1*) Алгоритм АЗ.4.1 (QRUPDATE). Пересчет Q^-разложения Назначение: Для заданного Q^-разложения матрицы А вычис- лять разложение вида Q+R+ матрицы А+ == Q (R + uv'1") за О (/г2) операций. Входные параметры: /г е Z, и s Р11-, v <= R'1, method sZ (=1 для нелинейных уравнений, = 2 для безусловной минимиза- ции). Входно-выходные параметры: Z <= ^"х" (используется только, когда method = 1, содержит' Q на входе и Q^ на выходе), М е R" n (верхняя треугольная матрица, содержащая R на входе и R+ на выходе). Выходные параметры: отсутствуют. Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) При method == 2 Z не используется и данный алгоритм тре- бует только одну п X п-матрицу, так как вызов алгоритма АЗ.4.1 алгоритмом А9.4.2 приводит к тому, что Z и М ссылаются на одну и ту же матрицу. 3) Первая нижняя поддиагональ матрицы ЛГ,так же как и верх- няя треугольная часть, включая главную диагональ, исполь- зуются на промежуточных этапах данного алгоритма. 4) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководствах 3 и 6. Описание: R + ии7' умножается слева на 2 (п— 1) матриц вращения Якоби. Первые п—1 преобразуют uvт к матрице ЦыИг^и7', а R к. верх- ней матрице Хессенберга Рн. Последние п — 1 преобразуют верхнюю матрицу Хессенберга (Rn +1Ы1261»7') к верхней тре- угольной матрице R+. Если method = 1, то Q7' умножается слева на те же самые 2(п—1) матриц вращения Якоби и преобра- зуется к виду Q^. Подробности см. в разд. .3.4 основной части книги. Модульная система алгоритмов 371 Алгоритм: (* найти наибольшее k, такое, что u[k}=^0*) 0. FOR 1-= 2 ТО п DO M[i, i- 1]^0 1. k<-n 2. WHILE (u[k}=0) AND (k > 1) DO k<-k- 1 (* преобразовать R + iiv7 к верхней матрице Хессенберга *) 3. FOR i==k-\ DOWNTO 1 DO 3.1 CALL JACROTATE (n, I, u[i], -u[i+ I], method, Z, M) (*алг. А3.4.1а*) 3.2 IF u[i}=0 THEN и [i] <-1 и [г+1]|________ EL SE и [i} <- +V(" И)2 + (" [i + I])2 4. FOR /===1 TO n DO M[\, /•] ^M[\, j} +"[!]*"[/] (* преобразовать верхнюю матрицу Хессенберга к верхней треугольной *) 5. FOR i = 1 TO k — 1 DO CALL JACROTATE (n, i, M [i, i], -M [i + 1, i], method, Z, M) (* RETURN для алгоритма АЗ.4.1*) (* END, алгоритм АЗ.4.1 *) Алгоритм А3.4.1а (JACROTATE). Вращение Якоби Назначение: Умножать М, а если method = 1, то и Z, слева на матрицу вращения Якоби /(t, t+ I, a, b), как это описано в разд. 3.4. Входные параметры: п е Z, i e Z, a s R, b <= R, method e= Z(==1 для нелинейных уравнений, =2 для безусловной минимиза- ции). Входно-выходные параметры: Z e= R"^ (используется только при method = 1), Me /?"><». Выходные параметры: отсутствуют. Память: то же самое, что для алгоритма АЗ.4.1. Описание: 1) с ^-а/л/а2 + и2' s<-&/V^T&"2. 2) (новая t-я строка М)^- с* (старая г-я строка М)— s * (старая (t-}- 1)-я строка М); (новая (i + 1) -я строка M)^s * (старая t-я строка М) +'с* (старая (1+\)-я строка М) 3) Если method = 1, то выполнить шаг 2 с матрицей Z. 372 Приложение А. Алгоритм: 1. IFa=0 IT. THEN 1T.1 c<-0 IT.2 s<-sign(6) IE. ELSE ____ 1E.1 den<--{-^/a2+Ь2 IE.2 с <- a/den 1E.3 s^b/den (* умножить слева М на матрицу вращения Якоби *) 2. FOR j=i TO n DO 2.1 г/<-^[г, Л 2.2 w<-M[i+ 1, /•] 2.3 M[i, j]^-c*y—s*w 2.4 Л![г+ 1, ]}<-s*y+c*w 3. IF /rae/W = 1 THEN (* умножить слева Z на матрицу вращения Якоби *) 3.1 FOR /=1 ТО n DO 3.1.1 y^Z[i, j} 3.1.2 w^-Z[i+ 1, /•] 3.1.3 Z[t, Л^-с*г/—&*ау 3.1.4 Z [г + 1, Л <- s * у + с * ay * RETURN для алгоритма А3.4.1а*) *END, алгоритм А3.4.1а*) Алгоритм АЗ.4.2 (QFORM). Формирование Q из Q/P-разложения Назначение: Строить ортогональную матрицу QT=Qn-l• ... ... •Qi из матриц преобразования Qi, ..., Qn-i, вырабаты- ваемых алгоритмом Q^-разложения A3.2.1. (Это требуется только в случае использования формулы пересчета Бройдена в факторизованной форме.) Входные параметры: п <= Z, M e R^'1, ЛП г /?" (Q содержится в Л1 и ЛП, как описано в алгоритме A3.2.1). Входно-выходные параметры: отсутствуют. Выходные параметры: Z e ^"х" (содержит Q7'). Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 6. Модульная система алгоритмов 373 Описание: 1) Z<-/. 2) Для k=\, ..., п.—\ умножить слева Z на Qk, где Qfe=/, если Ml[k]==0, Q^ = / — (u•kuтk)|лk в противном случае, и^ [i]== ==0, i== 1, ..., k— 1, Uft[t]==M[<, &], г=А:, ..., и, Лй==М1 \k\. Алгоритм: (* z-<— I: *) 1. FOR г== 1 ТО п DO 1.1 FOR /==1 TO n DO Z[t, Л<-0 1.2 Z[i, г]<^1 2. FOR k =1 TO /г- 1 DO 2.1 lFM\[k]^=0 THEN (*J^-Qfe*Z:*) 2.1.1 FOR /=1 TO n DO 2.1.1.1 x^(J^M[i, k]*Z[i, л) M\[k} 2.1.1.2 FOR 'f^=^ TO n DO Z[U]<-Z[!, Л-т*Л1[г, и] (* RETURN для алгоритма АЗ.4.2*) (*END, алгоритм АЗ.4.2*) Алгоритм А5.4.1 (FDJAC). Конечно-разностная аппроксимация якобиана Назначение: Вычислять аппроксимацию по разностям вперед для J (хс) (матрица Якоби для F(x) в Хс), используя значе- ния F(x). Входные параметры: ne=Z, x^R"-, Fc e= R" (== F (xJ), FVEC (имя для F: R"' -> /?"), S^R", •ns/?. Входно-выходные параметры: отсутствуют. Выходные параметры: J е Д"^" ^ 1{хс). Память: 1) Требуется один /г-вектор дополнительной памяти для Р,. 2) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 6. Примечания: 1) См. разд. Примечания в алгоритме А5.6.3. Описание: /-и столбец J(Xc) аппроксимируется с помощью (F (Ху + /г/е/)— —F(Xc}}/h,; где е/ есть ;-й единичный вектор, и hj== 374 Приложение А. == т-Г2 * гпах {i x, [/•] i, [/S, [j]} - sign (x, [j}). Здесь l/'Sx [j] есть зада- ваемая пользователем характерная величина для |л:с[/"], и T] ==10 , DIGITS—число верных десятичных разрядов в F(x). Соответствующие элементы /(Хс) и / будут, что харак- терно, совпадать приблизительно в их первых (D/G/F5/2) деся- тичных разрядах. Алгоритм: 1. sqrteia <- г)1/2 2. FOR / == 1 ТО га DO (* вычислить /-и столбец / *) 2.1 stepsizej<-scirtefa*max{\x,[j}\, l/S^[j]}* sign(x,[j}} (*для включения другого правила выбора длины шага изменить строку 2.1 *) 2.2 tempi <- Xc[j] 2.3 Xc [j] -<- Хс [j] + stepslzej 2.4 stepsizej <- л-д [j} — tempj (* строка 2.4 немного уменьшает ошибки машинной арифметики; см. разд. 5.4 *) 2.5 CALL FVEC (n, x„ Fj} (* Fj^-F (x,+stepsizej * e,)*) 2.6 FOR г==1 ТО n DO ^ [г, Л <- W [г] - ^ [г] )/stepsizej 2.7 л:;; [у] <- ^е/п/з/ (* восстановить д:с [Д *) (*END, цикл FOR 2*) (* RETURN для алгоритма А5.4.1 *) (*END, алгоритм А5.4.1*) Алгоритм А5.5.1 (MODELHESS). Формирование гессиана модели Назначение: Находить ^ ^ 0, такое, что Н + [^1 s ^"x" на- дежно положительно определена, где (J, = 0, если Н уже яв- ляется надежно положительно определенной. Затем поло- жить Я-<-Я+Ц/ и вычислить разложение по Холесскому LU для Н. Входные параметры: n s Z, S^ <= R", macheps s /?. Входно-выходные параметры: симметричная Я s ^"x". Выходные параметры: нижняя треугольная L e R^". Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) Используются только верхняя треугольная часть Н и нижняя треугольная часть L, включая главные диагонали обеих матриц. Предполагается ради простоты, что каждая из них хранится как Модульная система алгоритмов 375 полная матрица. Однако можно добиться экономии памяти, от- водимой под матрицы, путем модификации данного алгоритма, как объясняется в руководстве 3. Описание: 1) Если Н имеет какое-либо количество отрицательных диаго- нальных элементов, или если абсолютная величина наиболь- шего внедиагонального элемента матрицы Н больше, чем наи- больший диагональный элемент в Н, то Н-^Н + ^i/, где HI > О выбирается так, чтобы новая диагональ вся была положитель- ной, причем чтобы отношение ее наименьшего элемента к наи- большему было ^ (machepsY12 и чтобы отношение ее наиболь- шего элемента к наибольшему по модулю внедиагональному элементу было ^ 1 + 2 * {macheps')1/2. 2) Возмущенное разложение по Холесскому выполняется при- менительно к Н (см. алгоритм А5.5.2). Это дает в результате Н + D == LU, где D представляет собой неотрицательную диа- гональную матрицу, которая неявно прибавляется к Я в про- цессе разложения и содержит один или более положительных диагональных элементов, если Н не является надежно поло- жительно определенной. На выходе maxadd содержит макси- мальный элемент D. 3) Если maxadd =0 (т. е. .0=0), то Н == LU надежно поло- жительно определена и алгоритм завершает работу, возвращая Н и L. В противном случае он вычисляет число sad, которое должно прибавляться к диагонали матрицы Н для того, чтобы обеспечить в (Н + sdd */) надежное строгое диагональное пре- обладание. Поскольку как (Н + maxadd * /), так и (Н + sdd */) являются надежно положительно определенными, алгоритм вы- числяет р,2 = min {maxadd, sdd}, Я<-Я+ ЦаЛ вычисляет разло- жение Холесского LL7" для Н и возвращает Н и L. Алгоритм: (* приведенные ниже шаги 1, 14 и 15 опускаются, если масшта- бирование не применяется *) (* масштабирование H<-Dx HDx , где D^=diag((S^)i, .. .,(S])„)*) 1. FOR г==1 ТО n DO 1.1 FOR j=i TO n DO H[i,j]^-H[i,J]/(SAirSA!}) (* шаг 1 в описании:*) 2. sqrteps *- (macheps^12 3. maxdiag <- max {H [i, i}} { ^ i ^ n 4. mindiag<- min {H[i, i]} К >• ^ re 5. max posdiag<— т ax {0, maxdiag} 6. IF mindlag < sqrteps *maxposdiag 376 Приложение А. 6Т. THEN (* и будет содержать в себе ту величину, которая прибавится к диагонали Н перед попыткой разло- жения по Холесскому*) 6Т. 1 у, <— 2 * (maxposdiag — mindiag) * sqrteps — mindiag 6T.2 maxdlag <— maxdiag -)- ц 6E. ELSE ц<-0 7. maxoff •<— max [ H [i, j} \ i<i < i^n 8. IF maxoff*(l + 2*sqrteps) > maxdiag THEN 8.1 }-i <- i-i + (maxoff — maxdiag) + 2 * sqrteps * maxoff 8.2 maxdiag <- maxoff * (1 + 2 * sqrteps) 9. IF maxdiag =0 THEN (*Я==0*) 9.1 ц<-1 9.2 maxdiag •<— 1 10. IF ц>0 THEN (*Я^Я+^*) 10.1 FOR г=1 ТО /г DO ЯМ]^ЯМ]+^ 11. maxoff 1-<--^тах {maxdiag, {maxoff/п)) (*см. алг. А5.5.2*) (* шаг 2 в описании: обращение к возмущенному разложению по Холесскому *) 12. CALL CHOLDECOMP (п, Н, maxoffi, macheps, L, maxadd) (* алг. А5.5.2 *) (* шаг З в описании:*) 13. IF maxadd > 0 THEN (* Н не была положительно определенной *) 13.1 maxev^-H[\, 1] 13.2 minev <- Н [1, 1] 13.3 FOR i==l TO n DO 13.3.1 off row <- E 1 H [,, i} | + Z 1 Я [г, /•] | /=i /=г+1 13.3.2 maxev <- max {тал:еу, Я [г, i] 4- off row} 13.3.3 mmeo-<—min{/nwe», /-/[г, г] — offrow} 13.4 sdd •<- (maxev — minev') * sqrteps — minev 13.5 sdd <- max {sdd, 0} 13.6 }i <- min {maxadd, sdd} (*H^H+^I:*) 13.7 FOR г=1 ТО п DO Я[г,г]<-ЯМ]+ц (* обратиться к разложению Н по Холесскому: *) 13.8 CALL CHOLDECOMP (n, H, 0, macheps, L, maxadd} (*алг. А5.5.2*) (* обратное масштабирование H*-D^HD^, L-^-D^L*) 14. FOR г =1 TO n DO 14.1 FOR j=i TO /г DO H[i, ]}^-H[i, j}*SAi}*SAi] Модульная система алгоритмов 377 15. FOR i==\ TO n DO 15.1 FOR ]=\ TO i DO ^,Л^1<,/Г5,Н (* RETURN для алгоритма А5.5.1 *) (*END, алгоритм А5.5.1 *) Алгоритм А.5.5.2 (CHOLDECOMP). Возмущенное разложение Холесского Назначение: Находить г^-разложение для Н + D, где D есть неотрицательная диагональная матрица, которая прибав- ляется к Н в случае, когда необходимо позволить продол- жить процесс разложения, используя алгоритм, основанный на модифицированном разложении Холесского, изложенном в книге Гилл, Мюррей и Райт (1981). Входные параметры: п е Z, симметричная Н s 7?"><", maxoffl<=R, macheps e R. Входно-выходные параметры: отсутствуют. Выходные параметры: нижняя треугольная L (= R'1 х п, maxaddl <= R (= max {D[i,i}}\ \ 1<1<га ) Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) Используются только верхняя треугольная часть Н и нижняя треугольная часть L, включая главные диагонали обеих матриц. Предполагается ради простоты, что каждая из них хранится в полной матрице. Однако можно добиться экономии памяти,. отводимой под матрицы, путем модификации данного алго- ритма, как объясняется в руководстве 3. Описание: Делается попытка обычного разложения по Холесскому. Однако если в какой-либо момент алгоритм определяет, что Н не яв- ляется положительно определенной, или если оказывается, что ^ [], Л ^ mint, или если при имеющемся значении L [j, j} неко- торые элементы L [i, j}, i >• ;", оказались больше, чем maxoffi, то некоторое положительное число D [j, j} неявно прибавляется к Н [j,j]. Величина D [j,j] определяется так, чтобы L [j,j} равня- лось максимальному среди значения mini и того наименьшего значения, которое обеспечивает равенство max [\L[i, /]!}== /<«" =maxoffl. Эта стратегия гарантирует, что L[i, i] $s mini для всех i и что \L[i, ]} |^ maxoffi для всех i>j. Это в свою очередь влечет за собой ограниченность сверху числа обусловленности матрицы Н + D. 378 Приложение А. В то же самое время алгоритм построен так, что, если mini == 0 и Н численно положительно определена, то произво- дится обычное разложение Холесского без какой-либо потери в эффективности, приводящее к Н = LL7' и D == 0. Когда алго- ритм А5.5.2 будет вызываться алгоритмами А6.4.2, А6.5.1 и A6.5.1fac, входной параметр maxoffi будет нулевым, и по- этому будет нулевым mini. Когда алгоритм А5.5.2 будет вызы- ваться алгоритмом А5.5.1, параметр mini будет положительным, но D будет все же равным 0, если Н положительно определена и имеет достаточно хорошую обусловленность. Вообще, алго- ритм старается строить D, ненамного большую, чем это необ- ходимо. Дополнительную информацию, включая объяснение способа выбора maxoffi, см. Гилл, Мюррей и Райт (1981). Алгоритм: 1. mini <- {macheps}^ * maxoffi 2. IF maxoffl=0 THEN (* это имеет место, когда алгоритм А5.5.2 вызывается при известном факте положительной определенности Н алго- ритмами А6.4.2 и А6.5.1; данные строки служат рассчитан- ной на этот случай мерой предосторожности в машинной арифметике *) ___________ 2.1 maxoffi <- , / max {| Н [i, i] \} V 1 < >• < " 2а. minl2 -«- (macheps)42 * maxoffi 3. maxadd <- О (* maxadd будет содержать максимальную величину, кото- рая неявно прибавляется ко всем диагональным элементам матрицы Н при формировании LZ/==//+^*) 4. FOR j = 1 ТО га DO (* сформировать /-и столбец L *) 4.1 L[j,J}^-H[j,j}-^{L[j,i})2 i=\ 4.2 mini]]*-0 4.3 FOR i == j + 1 TO n DO 4.3.1 L [i, Л <- H [j, i] -t(L [i, k] * L [j, k]) t—i 4.3.2 minljj-t-max{\L[i, j}\, mini]]} 4.4 minljj ^ max {^^-, mini} 4.5 IF L [j, /•] > minljj2 4.5T THEN (* итерация обычного разложения Холесского *) L [/,/•] ^У^ТПГ 4.5E ELSE (* увеличить H[j, ]]*) .Модульная система алгоритмов 379 4.5Е.1 IF minlj] < minl2 THEN minljj <- minl2 (* это возможно, только когда введенное значе- ние maxoffi == 0 *) 4.5E.2 maxadd <—max {maxadd, minljj2 — L [j, j}} 4.5E.3 L[j, j}^-minljj 4.6 FOR ;==/+ 1 TO n DO L[i, J]^-L[i, j}/L[j, j] (* RETURN для алгоритма А5.5.2 *) (*END, алгоритм А5.5.2 *) Алгоритм А5.6.1 (FDHESSG). Конечно-разностная аппроксимация гессиана с использованием значений аналитически заданного градиента Назначение: Вычислять аппроксимацию по разностям вперед для V2f(xc), используя аналитические значения Vf(x). Входные параметры: n e Z, Xc s ^n, g e R'1 (= ^f (Хс)), GRAD (имя подпрограммы для V/: R"'->R'1), Sx <= R", T) e 7?. Входно-выходные параметры: отсутствуют. Выходные параметры: симметричная Н е. Rnxn (sg V2^ (^c)). Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) Только диагональ и верхняя треугольная часть Н имеют пра- вильные значения на выходе из алгоритма А5.6.1, потому что только они составляют те части Н, к которым обращается остальная часть системы алгоритмов. Тем не менее, на проме- жуточном этапе данного алгоритма используется вся матрица Н. 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 3. Описание: 1) Аппроксимиросать V2/^) матрицей Н, используя алгоритм А5.4.1. 2) Я <-(Я +/F)/2. Алгоритм: 1. CALL FDJAC (n, x„ g, GRAD, S^, Л, Н) (*алг. А5.4.1 *) 2. FOR t = 1 TO n — I DO 380 Приложение А. 2.1 FOR j=i+ 1 TO n DO H[i, i}<-(H[i, j\+H[j,i]/2 (* RETURN для алгоритма А5.6.1*) (*END, алгоритм А5.6.1 *) Алгоритм А5.6.2 (FDHESSF). Конечно-разностная аппроксимация гессиана с использованием значений функции Назначение: Вычислять аппроксимацию по разностям вперед для Угf{xc), используя только значения f(x). Входные параметры: п е Z, Хс е R'1, fc e R (== f (Xc)), FN (имя подпрограммы для f: R" -> R), Sx^R", Ц г R. Входно-выходные параметры: отсутствуют. Выходные параметры: симметричная Я е ^"х" (^V2/^))- Память: 1) Требуются два /г-вектора дополнительной памяти для stepsize и fneighbor. 2) Только диагональ и верхняя треугольная часть Н запол- няются алгоритмом А5.6.2, поскольку исключительно к этим частям Н обращается вся система алгоритмов. 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 3. Описание: Элемент ^(Хс)[1,1} аппроксимируется по формуле H[i,j}= = (f {х, + h,e, + А,.е/) - f (Хс + ^е,) - f (Хс + /г/е/) + f (Хс))/(Ь;Ь<), где (?, есть г-й единичный вектор и /г, = f\113* max {| Xc[i] I, l/Sx [l] } * sign (Xc [i}). Здесь 1/S.c [г] есть задаваемая пользовате- лем характерная величина для | Хд [г] | и T] == 10" , DIGITS — число верных десятичных разрядов в f(x). Соответствующие элементы V2/ (х^ и Н будут, что характерно, совпадать прибли- зительно в их первых (D/G/TS/3) десятичных разрядах. Алгоритм: 1. cuberfefa <- •n1/3 2. FOR i = 1 TO n DO (* вычислить stepsize[i] и f (Xc + stepsize[i] * e;) *) 2.1 stepsize[i\ <- cuberteta * max {| Xc [i] 1, 1/S^ [г]) * sign (Xc [i}) (* для включения другого прарила выбора длины шага изменить строку 2.1 *) 2.2 tempi <- Хс [i] 2.3 Xc [i] <- Xc [i] + stepsize[i} Модульная система алгоритмов 381 2.4 s/e/wze^] <- Хс [г] — геогрг (* действия в строке 2.4 немного уменьшают ошибки машинной арифметики; см. разд. 5.4 *) 2.5 CALL FN (n, л:^, fneighbor[i]) (* fneighbor[i] <-f(xc+ stepsize[i} * e,) *) 2.6 Xc [i] <— ton/M (* восстановить х„ \i\ *) 3. FOR i = 1 TO n DO (* вычислить г-ю строку Н *) 3.1 tempi •<— Xg [г] 3.2 х, [г] ^- х, [г] + 2 * s^^s;ze[i] (* или же Хс [i] <- Хс [i] — stepsize *) 3.3 CALL FN (/г, Хс, fii) (* fii <- f (Xc 4- 2 * s/e/^геШ * <?,) *) 3.4 H [i, i} <- ((fc - fneighbor^]) + (fii - f neighbor^]))/ (stepsize[i] * stepsize[i]) 3.5 Xc [i] <- /е/прг + stepsize[i\ 3.6 FOR / == i + 1 TO n DO (* вычислить Я [i, j} *) 3.6.1 temp] <- Xp [/'] 3.6.2 -Ус [/'] <-JCc [/"] + stepsize[ji] 3.6.3 CALL FN (ra, A-c, W) (* ^7 •^ Ц^с + 5/е^ге[г] * e, + s/e/5Stze[/'] * e,) *) 3.6.4 Я [i, j] ^- ((fc - fneighbor[i]) + (fij - fneighbor[j]))/ (stepsize[i\ * stepsize[j}) 3.6.5 Хд [/'] <- ^e/n/5/ (* восстановить -tcIA*) 3.7 д:с[г] — /е/тгрг (* восстановить Хс{1}*) (* END, цикл FOR 3*) (* RETURN для алгоритма А5.6.2 *) (*END, алгоритм А5.6.2 *) Алгоритм А5.6.3 (FDGRAD). Аппроксимация градиента по разностям вперед Назначение: Вычислять аппроксимацию 'Vf(Xc) по разностям вперед, используя значения f(x). Входные параметры: п е= Z, Хс е= R'1, fc 6= R(==f(xc)), FN (имя подпрограммы для f: R'г->R), Sx<=R", •ц е R. Входно-выходные параметры: отсутствуют. Выходные параметры: g <= /?"(^Vf(xc)). Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. Примечания: 1) Данный алгоритм идентичен алгоритму А5.4.1, за исключе- нием того, что параметры /с s R и g e R'1 алгоритма А5.6.3 за- 382 Приложение А. меняются параметрами Fc s R" и / г ^"х" в алгоритме А5.4.1, а также, что строка 2.6 алгоритма А5.6.3 заменяется соответ- ствующим циклом в алгоритме А5.4.1. Описание: Элемент V/" (Хс) [i] аппроксимируется по формуле g [j] == =•(f(Xc-lt-fг^e|)—f(Xc))/h^, где е/ есть ]-н единичный вектор и Ь/=^*тах{\хА]]\, 1/5, Ш }s * sign (хД]\). Здесь 1/5, [j] есть задаваемая пользователем характерная величина для |Хц [j} |, и т) == ю-0'077'5, DIGITS—число верных десятичных разрядов в f(x}. Соответствующие элементы Vf{Xc) и g будут, что харак- терно, совпадать приблизительно в их первых [DIGITS./2) деся- тичных разрядах. Алгоритм: 1. sqrteta <- т]'/2 2. FOR / == 1 ТО п DO (* вычислить §•[/'] *) 2.1 s^s/ze/<-s^e/a*max{l^D']l, 1/5.c [/']}* sign (x^ [j]) (* для включения другого правила выбора длины шага изменить строку 2.1 *) 2.2 tempi^x,[j] 2.3 А-д [/] <- л:с [Л + stepsizej 2.4 stepsizej <- Хс [j] — tempi (* действия в строке 2.4 немного уменьшают ошибки машинной арифметики; см. разд. 5.4*) 2.5 CALL FN (n, x„ fj) (* fj <-f(x,+ stepsizej * е,) *) 2.6 g[j]^[fi-fc}/stepsizej 2.7 Xc [i] <- tefft/7/ (* восстановить Хс [j} *) (* END, оператор цикла 2 *) (* RETURN для алгоритма А5.6.3 *) (*END, алгоритм А5.6.3 *) Алгоритм А5.6.4 (CDGRAD). Аппроксимация градиента по центральным разностям Назначение: Вычислять аппроксимацию Vf(xc) по центральным разностям, используя значения f(x}. Входные параметры: п е Z, Хс г R", FN (имя подпрограммы для f: R" -> R), S^ е= /?", Y\ ?E R. Входно-выходные параметры: отсутствуют. Выходные параметры: g е /?"(^ У/(л:с)). Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. Модульная система алгоритмов 383 Примечания: 1) Аппроксимация градиента по центральным разностям может быть полезной при решении некоторых задач безусловной опти- мизации, как обсуждалось в разд. 5.6. В драйвере D6.1.1 не предусмотрено использование алгоритма А5.6.4, но он может быть легко расширен включением в него автоматического пере- хода с аппроксимации градиента по разностям вперед на цен- тральные разности, как указывается ниже. Этот переход произ- водился бы, когда на какой-либо итерации использование алго- ритмом аппроксимации градиента по разностям вперед не при- вело к достаточному убыванию функции, но градиентный кри- терий останова еще не выполняется. В этом случае текущая ите- рация повторяется с использованием аппроксимации Vf(xc) по центральным разностям, и затем алгоритм продолжил бы ис- пользование исключительно аппроксимаций градиента по цен- тральным разностям до тех пор, пока не выполнится какой-либо критерий останова. Изменения в драйвере D6.1.1 с целью включения этого авто- матического перехода на центральные разности таковы: Заменить ELSE-ветвь оператора 6 на: с с DT СТ7 ' 6Е.1 CALL FDGRAD (п, Хц, f„ FN S^, ц, g,) 6Е.2 fordiff^-TWE Вставить между операторами 10.3 и 10.4: 10.3'/2 IF (global ==2) OR (global ==3) THEN trustsave <- 6„ Вставить между операторами 10.4d и 10.5: 10.4'/2 IF (retcode=l) AND (NOT analgrad) AND (fordiff= =TRUE) THEN 10.4'/2.1 CALL CDGRAD (n, x„ FN, S^, -q, g,) 10.4'/2.2 fordiff*- FALSE 10.4'/2.3 IF {global ==2) OR (global =3) THEN бд <- trustsave 10.41/2.4 IF global =2 THEN lOA'/zA.l CALL MODELHESS {n, S^, macheps, He, Lc} 10.4'/2.4.2 f-i^-0 10.4'/2.5 GO TO 10.3 Заменить ELSEE-ветвь в строке 10.5.1 на: 10.5.1Е ELSE 10.5.1Е.1 IF fordiff=JRUE THEN CALL FDGRAD (n, x+, f^, FN, Sx, 'П, g+) ELSE CALL CDGRAD (n, x^, FN, Sx, ^ g+} Приложение А. Описание: Элемент УД^с)[Л аппроксимируется по формуле g[j]==(f(Xc+hjej)— — f(Xc— Ь/е/))/(2*Ь/), где е/ есть ]-н единичный вектор, и h, = == ^13 * тах {| х, [j] |, 1/5^ [Д } * sign (x, [j]). Здесь 1/S^ [/] есть зада- ваемая пользователем характерная величина для |л"с[/]1> и г\== Ю"010173, DIGITS—число верных десятичных разрядов в f (х). Соответствующие элементы V/ {Хс) и g будут, что харак- терно, совпадать приблизительно в их первых (2* DIGITS/3) десятичных разрядах. Алгоритм: 1. cuberteta -<— ri'/3 2. FOR j= 1 ТО п DO (* вычислить g [j] *) 2.1 stepshejf-cuberteta *m&^{\Xc[]}\, l/S^ [/']}* sign (Xc [/']) (*для включения другого правила выбора длины шага изменить строку 2.1 *) 2.2 tempj <- Хс [j} 2.3 Хс [Л <- ^ И] + stepsizej 2.4 stepsizej <- ^с [у] — /emp/ (* действия в строке 2.4 немного уменьшают ошибки машин- ной арифметики; см. разд. 5.4*) 2.5 CALL FN (n, x„ fp) (* fp^f{x, + stepsizej* e,) *) 2.6 л'с [/"] <- /e/n;o/ — stepsizej 2.7 CALL FN (га, л:,, fm) (* fm*-f(x, - stepsizej* e,) *) 2.8 ^ [Д <- (^ - fm)/C2 * stepsizej} 2.9 Хд [/'] <-tempj {'* восстановить x^ [j} *) (* END, оператор цикла 2 *) (* RETURN для алгоритма А5.6.4 *) (*END, алгоритм А5.6.4 *) Алгоритм А6.3.1 (LINESEARCH). Линейный поиск Назначение; Для заданных g'1'? < 0 и а < -у- (используется а==1СГ4) находить, используя линейный поиск с дроблением шага, точку х+==Хс+-^р, ^ <= (О, I], такую, что Ц^+Х <f(X,}+^gTp. Входные параметры: п e Z, х^ <= R", fc<== R(=f(Xc)), FN (имя программы для f: R'1 -> R), g е= R" (= \?f (х,}), р е= Р", S^ e 7?", тах step e R, steptol <= R. Входно-выходные параметры: отсутствуют. Выходные параметры: retcode e Z, x^. s ^", f+ e R(=f (x+)), maxfaken e Boolean. Модульная система алгоритмов 385 Значения кодов возврата: retcode == 0: найдена удовлетворительная х+; retcode ==1: подпрограмме не удалось найти удовлетвори- тельную х+, достаточно отличающуюся от Хс. Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. Примечания: 1) Во всех наших обращениях к данному алгоритму (в драйве- рах D6.1.1—3) р есть ньютоновский шаг или шаг метода секу- щих. Тем не менее данный алгоритм будет работать при лю- бом р, таком, что g7? < 0. Описание: (Пусть х+(К) обозначает Хс + ^р.) 1) Положить К = 1. 2) Установить, удовлетворительна ли точка х+(К). Если да, то положить retcode =0 и завершить работу алгоритма А6.3.1. Если нет: 3) Установить, не слишком ли мала длина шага. Если да, то положить retcode == 1 и завершить работу алгоритма А6.3.1. Если нет: 4) Уменьшить А с помощью множителя, лежащего между 0.1 и 0.5, следующим образом: (Пусть через f (х\ обозначена производная f (х) в д"д по направлению р.) а. При первом дроблении: выбрать новое значение л таким, чтобы -t-i-(^) была точкой минимума квадратичной функции одной переменной, интерполирующей / (х^\, f (Хс\ f (х^ + р}, но ограничить снизу новое К числом 0.1. (Гарантируется, что новое К< 1/(2(1—а)) = 1/1.9998; см. разд. 6.3.2.) b. При всех последующих дроблениях: выбрать новое ^ таким, чтобы х+ {'л) была точкой локального минимума куби- ческой функции одной переменной, интерполирующей f (Хс), f'p^c)' f^+W)' f(x+{^prev)')^ "о ограничить новое 7. отрез- ком [0.1* (старое К}, 0.5* (старое. К)}. 5) Вернуться к шагу 2. Алгоритм: 1. maxtaken-f— FALSE 2. retcode*- 2 3. а^Ю"4 (* а есть константа, используемая в проверке шага на при- емлемость f (x+)^f (Хс}-{-a^g7'?; ее значение можно изме- нить, изменив этот оператор *) I/^IS Зак. 660 386 Приложение А. 4. Newtlen <-1| D^p ^ (*D^==diag((5^)i, ..., (5;,)„) хранится как 5^ <=./?". Относи- тельно предлагаемой программной реализации выражений, содержащих D^, см. разд. 1.5 данного приложения. *) 5. IF Newtlen > maxstep THEN (* ньютоновский шаг х^. =Хс-\- р больше максимально допу- стимого *) 5.1 р <- p\maxstepl Newtlen) 5.2 Newtlen*—maxstep 6. init slope <- g^p 7. r^e/z^/г <- max {| p [i] |/(max {| x, [i} \, 1/5, [i]})} 1 sS, 1 ^ П (* rellength есть относительная длина р, вычисляемая как в подпрограмме останова *) 8. minlambda *- steptollrellength (* minlambda есть минимально допустимая длина шага *) 9. ^<-1 10. REPEAT (* циклом проверить — удовлетворительна ли х^. = =Хс-\-Кр, и, если требуется, построить новое К *) 10.1 х+<-Хс+^р 10.2 CALL FN {п, х^, ^) (*^<-/(^)*) Ю.За IF ^ < fc + а * К * inltslope THEN (* найдена удовлетворительная х+ *) Ю.За.1 retcode^-Q Ю.За.2 IF^=1 AND [Nevsilen> 0.99 ^ maxstep} THEN maxtaken <— TRUE (* RETURN для алгоритма А.6.3.1 *) Ю.ЗЬ ELSEIF ^< minlambda THEN (* не удалось найти удовлетворительную-г+, достаточно отличающуюся от х,: *) Ю.ЗЬ.1 retcode<- 1 Ю.ЗЬ.2 х+<-Хс (* RETURN для алгоритма А6.3.1 *) 10.3с ELSE (* уменьшить К *) 10.3с. 1 IF ^=1 10.3c.lT THEN (* первое дробление, квадратичная интерполяция *) 10.3с. IT. I Ktemp <- — initslope/(2 * (f+ —fc— inltslope}) 10.3c.lE ELSE (* все последующие дробления, куби- ческая интерполяция *) Га1 i Г lA2 -l/^prev2)} l0.3c.lE.! \_ь\^~{Г=^р7е^*\_—^ргеу1^ ^preu2) j [/+ — fc — 'k* init slope ~] Й: I f+preu — fc— ^prev * iniislope J 10.3с. 1Е.2 dw <- &2 — 3 * a * Inltslope Модульная система алгоритмов 387 10.3c.lE.3 IF д==0 THEN (* кубическая интерполяция выро- ждается в квадратичную *) Klemp -<— — initslopeicyb) ELSE (* невырожденная кубическая интер- поляция *) Петр <-(—&+ (й^с^ДЗ * а) 10.3c.lE.4 IF Метр > 0.5*^ THEN Klemp ^- 0.5 * К Ю.Зс.2 Kprev^K Ю.Зс.З f+prev<-f+ Ю.Зс.4 IF^e/np<0.1 *^ THEN 7,-s-O.l * ^ELSEA<-^e/n/? (*END, альтернатива 10.3с «уменьшить Д» и оператор множественного ветвления 10.3) 10U UNTIL retcode<2 (*END, оператор цикла REPEAT 10*) (* RETURN для алгоритма А6.3.1*) (*END, алгоритм А6.3.1 *) Алгоритм A.6.3.1.mod (LINESEARCHMOD). Линейный поиск с условием на производную по направлению Назначение: Для заданных g7? <. О, ос < '/а (используется к == Ю-4) и р S(CT, 1) (используется (3 = 0.9) находить точку х+ = Хс + ^Р, ^ > 0, такую, что f(x+) ^ f(xc)+ a^p и ^Кх+Ур-^^р. Входные параметры: те же, что и в алгоритме А6.3.1, и, кроме того, analgrad s Boolean, GRAD (имя подпрограммы для V7: Т?"-»-^", если analgrad == TRUE, а иначе фиктивное). Входно-выходные параметры: отсутствуют. Выходные параметры: те же, что и в алгоритме А6.3.1, и, кроме тoгo,g+<=.Rn(==Vf(x+)). Значения кодов возврата, память, примечания: те же, что и в алгоритме А6.3.1. Описание: (Пусть через х+Щ обозначается Хс + ^р, и пусть два неравен- ства f (х+) s^ f {Хс)-{-aKg7 р и Vf(x+)Tp ;Ss pg^p называются соот- ветственно к-условием и р-условием.) 1) Положить ^ == 1. 2) Если x+(^) удовлетворяет к- и р- условиям, то положить retcode =- 0 и завершить работу алгоритма A6.3.1mod. 3) Если х+(К) удовлетворяет только ст-условию и К ^ 1, то по- ложить Х-<-2*д и перейти к шагу 2. ValB 388 Приложение А. 4) Если л'+(^) удовлетворяет только а-условяю п л <. 1 илм если А'+(/.) не удовлетворяет а-условию и К > 1, то: - а. Если ^ < 1, то определить Klo = К, Khi = (последнее из предыдущих пробных значений X). Если ^>1, то опреде- лить Khi=K, Klo =( последнее из предыдущих пробных зна- чений /^). Замечание: в обоих случаях л'+(^о) удовлетворяет в-условию, а р-условию—нет, x+{Khi) не удовлетворяет а-условню, и \1о «< ^ftf. b. Используя последовательные квадратичные интерполяции, найти значение К s (К!ю, )Jzi), при котором л'+(?.) удовлетво- ряет «- и (3-условиям. Затем положить retcode == 0 и завер- шить работу алгоритма А6.3.1 mod. 5) В противном случае (х+(К) не удовлетворяет а-условию и Д ^ 1) произвести такое же дробление шага, как описано в шаге 4 раздела Описание алгоритма А6.3.1, и перейти к шагу 2. Алгоритм: Такой же, как алгоритм А6.3.1, за исключением того, что шаги Ю.За.1 и Ю.За.2 заменяются на следующие: Ю.За.1 IF analgrad THEN CALL GRAD (n, x+, g^) ELSE CALL FDGRAD (n, x^, f+, FN, S„ л, g+) (* алг. А5.6.3, аппроксимация градиента по разностям вперед *) (* или если вместо этого желательна аппроксимация градиента по центральным разностям, то CALL CDGRAD (n, х^, FN, S„ л, gA алг. А5.6.4 *) Ю.За.2 (3^-0.9 (*для изменения в данном алгоритме значения р достаточ- но изменить эту строку *) Ю.За.З newslope <-- g+p Ю.За.4 IF newslope < р * initslope THEN Ю.За.4.1 IF (^=1) AND (New/ten < maxstep) THEN 10. За. 4.1.1 maxlambda <— maxsteplNewtlen Ю.За.4.1.2 REPEAT Ю.За.4.1.2.1 Kprev<-K Ю.За.4.1.2.2 f+preu^-f+ 10.За.4.1.2.3 A,<-min{2*A, maxlambda} 10.За.4.1.2.4 х+-^-Хс+^*р Ю.За.4.1.2.5 CALL FN (n, x^, f+)(* x+ <-f{x^.) *) 10.За.4.1.2.6 IF f+<jFс-}- « * ^ ^initslope THEN 10.За.4.1.2.6.1 то же самое, что н выше в стро- ке Ю.За.1 Ю.За.4.1.2.6.2 newslope <-g^p (*END, оператор IFTHEN Ю.За.4.1.2.6 *) Модульная система алгоритмов 389 10.3a.4.1.2U UNTIL (^ > f, + а * К * initslope) OR {newslope > Р * initslope) OR (7, > maxlambda} (* END, оператор IFTHEN 10.За.4.1*) Ю.За.4.2 IF(^<l)OR((^>l)AND(f+>/,+a^*m^/o/?e)) THEN Ю.За.4.2.1 -Uo <-min {Л, Kprev} Ю.За.4.2.2 \diff<-\Kprev—K\ Ю.За.4.2.3 IF К < Kprev 10.3а.4.2.3Т THEN 10.3а.4.2.3Т.1 flo<-f^. 10.3а.4.2.3Т.2 fhi^-f^prev 10.3а.4.2.3Е ELSE 10.3а.4.2.3Е.1 flo <- f+preu 10.3a.4.2.3E.2 fhi^-f^ Ю.За.4.2.4 REPEAT 10 За 4 2 4 1 Kincr ^- -newslope * (Uiff}2 Ш.с»а.4.2.4.1 МПСГ <- у ^ _ ^ ^ newslope * Kdiff)) Ю.За.4.2.4.2 IF Uncr < 0.2*Kdiff THEN Kincr *- 0.2 * Kdiff Ю.За.4.2.4.3 К <- Uo + Uncr Ю.За.4.2.4.4 х+^-х.+^р Ю.За.4.2.4.5 CALL FN(n, x^ f+)(*x+ <-f(x^) *) Ю.За.4.2.4.6 IF /+ > fc + a * 7, * initslope 10.3a.4.2.4.6T THEN 10.3a.4.2.4.6T.l Mi^<-Uncr 10.3a.4.2.4.6T.2 fhi<-f+ 10.3a.4.2.4.6E ELSE 10.3a.4.2.4.6E.l то же самое, что и выше в строке Ю.За.1 10.3а.4.2.4.6Е.2 newslope <- g^p 10.3а.4.2.4.6Е.З IF newslope < ^initslope THEN 10.3a.4.2.4.6E.3.1 Uo-^-K 10.3a.4.2.4.6E.3.2 Mi^ <- Kdiff — Uncr 10.3a.4.2.4.6E.3.3 flo^-f+ (*END, операторы IFTHEN 10.3a.4.2.4.6E.3 и IFTHENELSE Ю.За.4.2.4.6 *) 10.3a.4.2.4U UNTIL (newslope > p * initslope) OR (^diff < minlambda) 10.3a4.2.5 IF newslope < (3 * initslope THEN (* не удалось удовлетворить р-условию *) Ю.За.4.2.5.1 f+<-flo Ю.За.4.2.5.2 x^<-x,+Uo*p (*END, операторы IFTHEN Ю.За.4.2 и IFTHEN Ю.За.4*) 10.За.5 retcode <- О Ю.За.6 IF (К * Newtlen > 0.99 * maxstep) THEN maxtaken <-TRUE (* END, добавления в алгоритме A6.3.1mod*) 13 Зак. 660 390 Приложение А. Алгоритм А6.4.1 (HOOKDRIVER). Драйвер локально ограниченного оптимального («криволинейного») шага Назначение: Находить точку х+ = Хс — {Н + цД^)"' g, ц > О, такую, что f(x+)•^f(Xc)-i-agт(x^.—Xc) (используется а == == 10~4), и масштабированную длину шага из отрезка [0.756, 1.56), начиная с введенного значения б, но при необходимости увеличивая или уменьшая 6. (Dx=diag((Sx)i, ..., (5ж)п).) А также вырабатывать начальное значение радиуса довери- тельной области для следующей итерации. Входные параметры: п s Z, Хс s R", fc s R{==f(xc)), FN (имя подпрограммы f: R"—>-R), g <= Rn(=='Vf(xc)), нижняя тре- угольная L s R"^", симметричная Н G. Rnxn(=LLT), SM s г Д?" (= —H^g), Sx e R", ' maxstep <= R, steptol e R, itn- count eZ, macheps e /?. Входно-выходные параметры: 6 е R, ц е 7?, бргеи е ./?, ф е ./?, Ф' е /? (последние четыре не будут иметь значений при пер- вом обращении к данному алгоритму; последние два будут иметь текущие значения на выходе, только если ц^= 0). Выходные параметры: retcode е Z, x+e-R", f+G R(==f(x+)), maxtaken s Boolean. Значения кодов возврата: retcode == 0: найдена удовлетворительная точка х+', retcode ==1: подпрограмме не удалось найти удовлетвори- тельную х+, достаточно отличающуюся от Хс- Память: 1) Требуются два /г-вектора дополнительной памяти для s и x+prev. 2) Используются только верхняя треугольная часть Н и нижняя треугольная часть L, включая главные диагонали обеих матриц. Предполагается ради простоты, что каждая из них хранится в полной матрице. Однако можно добиться экономии памяти, отводимой под матрицы, путем модификации данного алго- ритма, как объясняется в руководстве 3. Описание: 1) Обратиться к алгоритму А6.4.2 с тем, чтобы найти шаг s^—^H+V^D^g, Ц>0, такой, что || адЬе [0.756, 1.56], или чтобы положить s==Sf/, если !| Од-s.v Iks^ 1.56, 2) Обратиться к алгоритму А6.4.5 с тем, чтобы решить, при- Модульная система алгоритмов 391 нимать или нет л-+ в качестве следующего приближения, и чтобы вычислить новое значение б. Если retcode == 2 или 3, то вернуться к шагу 1; если retcode =0 или 1, то завершить ра- боту алгоритма А6.4.1. Алгоритм: 1. retcode <—4 (* означает начальное обращение к алгоритму А6.4.2 *) 2. firsthook^-JRUE 3. Newllen^\\D^s,v\\2 (*Dx==d[ag((Sx)i, ..., (Sx)n) хранится как S_, <= /?". Относи- тельно предлагаемой программной реализации выражений, содержащих D^, см. разд. 1.5 настоящего приложения. *) 4. IF (iincount == 1) OR (6=—1) THEN 4.1 ц<-0 (* требуется для алгоритма А6.4.2 *) 4.2 IP б==-1 THEN (* пользователем не было задано никакого начального значения радиуса доверительной области (или было вос- становление в методе секущих решения нелинейных урав- нений); положить 6 равным длине масштабированного шага по методу Коши *) 4.2.1 a^-IIZ^gllJ (* 4.2.2-3 реализуют р ^L^^p *) 4.2.2 р^О 4.2.3 FOR i= 1 TO n DO 4.2.3.1 temp ^^(L [j, i]* g [j]/(S. []] * 5, [/])) 4.2.3.2 p <- р + temp * temp 4.2.4 б^а*^/2/^ 4.2.5 IF 6> maxstep THEN 6^- maxstep 5. REPEAT (* вычислить и проверить новый шаг *) 5.1 CALL HOOKSTEP (n, g, L, H, s^, 5,, Newtlen, macheps, 6, ^, bprev, qp, q/, firsthook, ^'init, s, Newttaken) (* Найти шаг с помощью алгоритма криволинейного шага А6.4.2*) 5.2 бргеи -<—б 5.3 CALL TRUSTREGUP (n, x„ f„ FN, g, L, s, 5,, Newttaken, maxstep, steptol, 1, H, 6, retcode, x+preu, f+prev, x+, f+, maxtaken) (* проверить новую точку и сделать пересчет радиуса доверительной области, алгоритм А6.4.5*) 5U. UNTIL retcode < 2 (* RETURN для алгоритма А6.4.1 *) (*END, алгоритм А6.4.1 *) l3* 392 Приложение А. Алгоритм А6.4.2 (HOOKSTEP). Локально ограниченный оптимальный («криволинейный») шаг Назначение: Находить приближенное решение задачи: min ^+(1/25^5) ^" ПрИ УСЛОВИИ ||Дд:5||2<гб путем выбора &==—(//+ ^?>i)~1 g, Ц ^ 0, такого, что || D^s Из г [0.756, 1.56], или s^ff^g, если Nevatlen^ 1.56. (Z),=diag((S,)„ .... (5,)„).) Входные параметры: га s Z, §• е /?", нижняя треугольная Le/?"><", симметричная Яе=/?»х'1 (==LL7'), sц<^Rn(=—H-\ g), 5,е=^, Newtlen e ^" (== || 0^„ У, macheps e= R, дргеи е /?. Входно-выходные параметры: 6 е R, ^^ R, ч> ^ R, q/ s Д*, firsfhook e Boolean, q/imY s ^ (<p, q)' будут иметь новые значения на выходе, только если ц =^= 0; (p'init будет иметь новое значение на выходе, только если firsthook в процессе рассматриваемого обращения к алгоритму приняло значение FALSE.) Выходные параметры: s e R", Newttaken s Boolean. Память: 1) Требуется один /г-вектор дополнительной памяти для tempvec. 2) Используются только верхняя треугольная часть Н и нижняя треугольная часть L, включая главные диагонали обеих матриц. Предполагается ради простоты, что каждая из них хранится в полной матрице. Однако можно добиться экономии памяти, отводимой под матрицы, путем модификации данного алго- ритма, как объясняется в руководстве 3. Описание: 1) Если 1.56 ^ Newtlen, то положить s == s/v, 6===rnin{6, Newt- ten} и завершить работу алгоритма А6.4.2. Если нет: 2) Вычислить начальное значение ^ на основе заключительного значения ц на предыдущей итерации, а также нижнюю и верх- нюю границы [ilow и [лир для точного решения |^*, как объяс- няется в разд. 6.4.1 основной части книги. 3) Если ц ф [\alow, [iup], то положить ц = шах {(ц/ода*^ыр)1/2, Ю-^ир). 4) Вычислить s==s(tx)= — [Н + ^0^)~1 g. Вычислить также (p==q)((i)=|l?><s(^i)||2-7, и q/==q/(^). 5) Если ((D^slb s [0.756, 1.56], то завершить работу алгоритма А6.4.2. Если нет: 6) Вычислить новые значения [i, [alow и \^ир, как объясняется в разд. 6.4.1, и вернуться к шагу 3. Модульная система алгоритмов 393 Алгоритм: 1. hi ^-1.5 2. ;o<-0.75 (* hi и lo есть константы, используемые в проверке допустимости шага || D^s Из е [/о * б, hi * 6]; их можно из- менить, изменяя операторы 1 и 2 *) 3. IF Newtlen < hi * 6 3T. THEN (* s есть ньютоновский шаг*) ЗТ.1 Newttaken <-TRUE 3T.2 s^s^ 3T.3 ^<-0 3T.4 6<-min{6, Newtlen) (* RETURN для алгоритма А6.4.2 *) 3E. ELSE (* найти fi, такое, что \\D^(H + ii,Dl)~1 g^(=[lo* 6, hi * б] *) ЗЕ.1 Newttaken <- FALSE (* вычислить начальное значение ^i, если предыдущий шаг не был ньютоновским *) ЗЕ.2 IF 11 > О THEN I- Ф + бргеу 1 Г (6prev — 6) + Ф 1 ^ ^- ^ - [——§———J [————^————J (* выражение (fiprev — б) следует заключать в скобки, так как возможно равенство 6prev == 6 *) (* шаги ЗЕ.3—6 вычисляют нижнюю и верхнюю границы для ^.*) ЗЕ.З (р<- Newtlen— б ЗЕ.4 IF firsthook THEN (* вычислить (f'init *) ЗЕ.4.1 first hook*-FALSE (*шаги ЗЕ.4.2—3 дают в результате tempvec-<— <-г.-'д2^) 3E.4.2 tempvec ^-D^v (* D^ = diag ((5^)i, .... (5;,)„) хранится как S^ г R'1. Относительно предлагаемой программной реализа- ции выражений, содержащих Дд, см. разд. 1.5 на- стоящего приложения.*) ЗЕ.4.3 CALL L SOLVE (n, tempvec, L, tempvec) (* решить L * tempvec = DxS^ с помощью алгоритма А3.2.3а*) ЗЕ.4.4 (fi'init •<- — || tempvec ||J/'Newtlen 3E.5 i-i/oay <- —(fl^'inU 3E.6 v^up^\\D^gVb 3E.7 done-^- FALSE 394 Приложение А. ЗЕ.8 REPEAT (* проверить значение ц и, если необходимо, вырабо- тать следующее ц *) ЗЕ.8.1 IF ((ц < ц/оау) OR (^ > цир)} THEN ^ <- тах {(ц/ода * ^ир)1!2, Ю"3^»/?} (*Я<-Я+^:*) ЗЕ.8.2 FOR /=1 ТО « DO //[;, i\^H[i, i}+v.*S^[i\*SAi} (* вычислить /-//-разложение новой Н, используя ал- горитм А5.5.2 *) 8Е.8.3 CALL CHOLDECOMP (п, Н, 0, macheps, L, maxadd) (* решить (LLT)s=—g, используя алгоритм A3.2.3 *) ЗЕ.8.4 CALL CHOL SOLVE (/z, g, L, s) (* положить Я заново равной ее первоначальному значению: Н <- Н — ц * D^ *) ЗЕ.8.5 FOR г=1 ТО га DO H[i, i]^H[i, г] - »х * 5, [г] * 5, Н ЗЕ.8.6 steplen.^-\\D^ ЗЕ.8.7 (p^-steplen~6 {v шаги ЗЕ.8.8—9 дают в результате tempvec <— г -1 г.2 * \ <-L Z);cS J ЗЕ.8.8 tempvec *-D^s 3E.8.9 CALL L SOLVE («, tempvec, L, tempvec} (* решить L * tempvec == D^s^ с помощью алгоритма АЗ.2.3 *) ЗЕ.8.10 q/ <- — |j tempvec f^steplen. 3E.8.11 IF ((sfeplen > /о * 6) AND (s^era < hi * 6)) OR (flu/) — \tlov ^ 0) ЗЕ.8.1 IT THEN (* шаг s является приемлемым*) 3E.8.11T.1 done^-TRUE (* RETURN для алгоритма А6.4.2 *) ЗЕ.8.1 IE ELSE (* шаг s неприемлем, вычислить но- вое ц, а также границы \ilow и \аир *) ЗЕ.8.11 E.I ц/оау-<—тах{^/оау, ц—(ф/Ф')} ЗЕ.8.11Е.2 IF q)<0 THEN ^y/x-^i ЗЕ.8.11Е.Зц<-ц-[^^].[^] (*END, оператор IFTHENELSE ЗЕ.8.11*) 3E.8U UNTIL riorae=TRUE (*END, оператор IFTHENELSE 3*) (* RETURN для алгоритма А6.4.2 *) (*END, алгоритм А6.4.2. *) Модульная система алгоритмов 395 Алгоритм А6.4.3 (DOGDRIVER). Драйвер шага вдоль кривой с двойным изломом Назначение: Находить точку х+ на кривой с двойным изломом, такую, что f(x+)sSi f{xc)-{-agт(x+—Хс) (используется а == = Ю-4), и масштабированную длину шага б, начиная со зна- чения 6 на входе, но при необходимости увеличивая или уменьшая 6. Кроме того, вырабатывать начальное значение радиуса доверительной области для следующей итерации. Входные параметры: raeZ, Хс е R", fc e R (== f(Xc)), FN (имя подпрограммы для f: У?" ->/?), g е /?"(== Vf (x^), нижняя треугольная L е= /?"><", s^ e R11 (= — {LU}-1 g), S, e /?", maxstep e R, steptol e R. Входно-выходные параметры: 6 е R. Выходные параметры: retcodeeZ, x+ e R", f+<= R(==f{x+)), maxtaken e Boolean. Значения кодов возврата: retcode == 0: найдена удовлетворительная точка х+; retcode == 1: подпрограмме не удалось найти удовлетвори- тельную х+, достаточно отличающуюся от Хс. Память: 1) Требуются четыре п-вектора дополнительной памяти для s, SSD, v и к+prev. 2) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководствах 3 и 6. Описание: 1) Обратиться к алгоритму А6.4.4 с тем, чтобы найти шаг s на кривой с двойным изломом, такой, что ||2)<s||2 == б, или чтобы положить s = s;v, если \\DxSf/\\2 ^ 6. (Dx = diag((Sx)i, ... ..., (S.)„)). 2) Обратиться к алгоритму А6.4.5 с тем, чтобы решить—при- нимать или нет х+ в качестве следующего приближения и чтобы вычислить новое значение б. Если retcode == 2 или 3, то вер- нуться к шагу 1; если retcode == 0 или 1, то завершить работу алгоритма А6.4.3. Алгоритм: 1. retcode •<— 4 (* означает первоначальное обращение к алгоритму А6.4.4 *) 2. firstdog^TRVE 3. Newtlen<-\\D,s^ (* D^=diag((5Ji, ..., (Sx)n) хранится как Sx <= R"- Отно- сительно предлагаемой программной реализации выраже- ний, содержащих Dx, см. разд. 1.5 настоящего приложе- ния. *) 396 Приложение А. 4. REPEAT (* вычислить и проверить новый шаг*) 4.1 CALL DOGSTEP (n, g, I,, s^, S^, Newtlen, maxstep, 6, firstdog, Cauchylen, v\, §30, v, s, Newttaken) (* Найти новый шаг вдоль кривой с двойным изломом с помощью алгоритма А6.4.4 *) 4.2 CALL TRUSTREGUP (n, х„ f„ FN, g, L, s, S^ Newttaken, maxstep, steptol, 2, L, 6, retcode, x^prev, f^prev, x+, /+, maxtaken) (* проверить новую точку и сделать пересчет радиуса доверительной области, алгоритм А6.4.5 *) (* второе L в приведенном выше списке параметров яв- ляется фиктивным параметром *) 4U. UNTIL retcode < 2 (* RETURN для алгоритма А.6.4.3*) (*END, алгоритм А6.4.3*) Алгоритм А6.4.4 (DOGSTEP). Шаг вдоль кривой с двойным изломом Назначение: Находить приближенное решение задачи: min gтs+( l/2)sтLLTs seR" при условии || AcS Иг ^ б путем выбора на описанной выше кривой с двойным изло- мом шага s, такого, что ||D^sll2=6, или s=s^, если Newtlen < 6. (D^ == diag ((S,\, .... (W.)] йвГ Входные параметры: n e Z, g e R", нижняя треугольная L'e. e^", ^eГ(=-(^г)-l^), ^еГ, Newtlen^ e=^(=||D;^ll2), maxstep <=R. Входно-выходные параметры: б <= 7?, firstdog e Boolean, Cauchy- len e /?, T| <= К, SSD s R"', v e R'1 (последние четыре парамет- ра будут иметь текущие значения на входе и выходе, толь- ко если в тот момент firstdog == FALSE). Выходные параметры: s s R", Newttaken e Boolean. Память: 1) Никакой дополнительной памяти под векторы и матрицы не- требуется. 2) Этот алгоритм не меняется при использовании экономичного" способа хранения матриц, описанного в руководствах 3 и 6. Описание: 1) Если Newtlen ^ 6, то положить s = s/y, б == Newtlen и завер- шить работу алгоритма А6.4.4. Если нет: 2) Вычислить кривую с двойным изломом, если она не была уже вычислена в течение этого обращения к алгоритму А6.4.3. Модульная система алгоритмов 397 Указанная кривая с двойным изломом представляет собой ку- сочно-линейную кривую, соединяющую точки Хс, Хс + Sso, Хс + л^лг и Хс + SN, где Sso есть шаг по методу Коши, в точку минимума квадратичной модели на масштабированном направлении наи- скорейшего спуска, и т] ^ 1. (См. разд. 6.4.2 основной части книги относительно дальнейших деталей.) 3) Вычислить единственную точку Хс + s на кривой с двойным изломом, такую, что ||D,:s||2 == б. Алгоритм: 1. IP Newtlen < б IT. THEN (* s есть ньютоновский шаг*) 1Т.1 Newttaken ч- TRUE 1T.2 s<-s„ 1T.3 6<- Newtlen (* RETURN для алгоритма А6.4.4*) IE. ELSE (* ньютоновский шаг слишком длинный, s лежит на кривой с двойным изломом *) 1Е.1 Newttaken •<- FALSE 1Е.2 IF firstdog THEN (* вычислить кривую с двойным изломом *) 1Е.2.1 firstdog^ FALSE 1Е.2.2 a^-B^-'gl (* Dx == diag ((5;c)i, ..., (S,)J хранится как Sx e= e /?". Относительно предлагаемой програм- мной реализации выражений, содержащих Dx, см. разд. 1.5 настоящего приложения.*) (*1Е.2.3-4 реализуют р-<-! I^D^g^- 1Е.2.3 р<-0 1Е.2.4 FOR /==1 TO n DO 1 Е.2.4.1 temp^ Z, {L [j, i] * g Щ/(5, [/Г;5, [/•])) IE.2.4.2 p<-p+/e/n/3*i/em/3 1E.2.5 sso^-(a/p)^-'g (* «до есть шаг по методу Коши в преобразо- ванной метрике; ^дд в разделе Ог.исание есть D^sso*) 1Е.2.6 Cauchylen^ a *a}i2/^ (* ^IJSsolk *) 1Е.2.7 Ti-'-O^-KO.S^Ap*!^!)) (*T)< 1; см. разд. 6.4.2*) 1E.2.8 о <- T)Z)^„ — SSD (* о есть (•HSJV — sso) в преобразованной метри- ке *) 398 Приложение А. IE.2.9 IF 6==—1 THEN 6 <- min {Cauchylen, maxstep} (й: первая итерация, и пользователем не было задано никакого начального значения радиуса доверительной области *) (*END, оператор 1Е.2, вычислить кривую с двойным изломом *) 1Е.За IF л * Newtlen < 6 THEN (* сделать уменьшенный шаг в ньютоновском направ- лении *) 1Е.За.1 л <- (6/Newtlen.) * s^ (* RETURN для алгоритма А6.4.4 *) 1Е.ЗЬ ELSEIF Cauchylen > 6 THEN (* сделать шаг в направлении наискорейшего спуска *) 1Е.ЗЬ. 1 s<- (6/Cauchylen) * D^Sso (* RETURN для алгоритма А6.4.4 *) 1Е.Зс ELSE (* вычислить выпуклую комбинацию векторов SSD и •f^Sf/ (== D^'Sso+^^'y)' которая имеет масштабиро- с *\ ванную длину, равную 6 ) 1Е.Зс.1 temp•<—vтssD 1Е.Зс.2 tempv <- vтu 1Е.Зс.З К*-{—temp A-________ + л/temp2 — tempv * (Cauchylen2 — b^jtempv 1Е.Зс.4 S*-D^(SSD+^) (* END, операторы ELSE 1Е.Зс, множественного ветвления 1E.3 и IFTHENELSE 1 *) <* RETURN для алгоритма А6.4.4 *) (*END, алгоритм А6.4.4 *) Алгоритм А6.4.5 (TRUSTREGUP). Пересчет доверительной области модели Назначение: Для заданного шага s, выработанного алгоритмом криволинейного шага или шага вдоль ломаной, решить, сле- дует ли принимать х+ == Хс + s в качестве следующего при- ближения. Если нет, то уменьшить или увеличить довери- тельную область для текущей итерации. Входные параметры: п е Z, Хс <= R", fc s R(==f(xc)), FN (имя подпрограммы для f: Rn->-R}, g s R", нижняя треугольная L <= ^"х", s Е R", Sx s R", Newttaken e Boolean, maxstep <= s R, steptol e R, steptupe e Z(= 1 для криволинейного шага, 2 для шага вдоль ломаной), симметричная Н е ^"х" (используется только при steptype == 1, в этом случае содер- жит гессиан модели). Модульная система алгоритмов 399 Входно-выходные параметры: 6s/?, retcode s Z, x+prev (= R", f+preu E R (последние два параметра будут иметь текущие значения на входе и новые значения на выходе, только если в тот момент retcode = 3). Выходные параметры х+ е= R", f+<== R(=f(x+)), maxtaken <== s Boolean. Значения кодов возврата: retcode = 0: точка х+ принята в качестве следующего при- ближения, 6 является радиусом доверительной области для следующей итерации; retcode == 1: х+ является неудовлетворительной, однако шаг глобализации завершен из-за того, что относительная длина (х+—Хс) лежит в пределах допуска на длину шага в критерии останова алгоритма, что во многих случаях свидетельствует о том, что какое-либо дальней- ,шее продвижение невозможно; см. случай termcode == 3 в алгоритмах А7.2.1 и А7.2.3; retcode ==2: значение f(x+) слишком велико, текущая ите- рация должна быть продолжена с новым, уменьшенным значением 6; retcode == 3: значение f(x+} достаточно мало, но шанс сде- лать более длинный успешный шаг кажется достаточно хорошим, чтобы текущая итерация была продолжена с новым, удвоенным значением б. Память: 1) Никакой дополнительной памяти под векторы и матрицы не требуется. 2) Используется только верхняя треугольная часть Н и нижняя треугольная часть L, включая главные диагонали обеих матриц. Предполагается ради простоты, что каждая из них хранится в полной матрице. Однако можно добиться экономии памяти, отводимой под матрицы, путем модификации данного алгоритма, как объясняется в руководстве 3. 3) Если steptype == 2, то Н не используется, и данный алгоритм требует только одной п X п-матрицы, так как вызов алгоритма А6.4.5 алгоритмом А6.4.3 приводит к тому, что Я и L ссылаются на одну и ту же матрицу. Описание: 1) Вычислить х+ == Хс + s, f+== f (х+), А/ = / (х+) — f (хс). 2) Если retcode = 3 и (f+ $з f+prev или /\f > lQ-'^gтs}, то вос- становить значения х+ и f+ равными x+prev и f+prev, поло- жить 6 = 6/2, retcode == 0 и завершить работу алгоритма А6.4.5. Если нет: 400 Приложение А. 3) Если А/ > l0~4grs, то шаг неприемлем. Если относительная длина шага слишком мала, то положить retcode == 1 и завер- шить работу алгоритма А6.4.5. В противном случае вычислить К, при котором Хс + ^s есть точка минимума квадратичной функции одной переменной, интерполирующей f(xc), f(xc-\-s) и производную функции / в Хс по направлению s; положить б = = K\\s\\, но проследить, чтобы новое значение б было между 0.1 и 0.5 от старого значения б. Завершить работу алгоритма А6.4.5. 4) А/' :Sa \0~4gтs, и поэтому шаг является приемлемым. Вычис- лить ^fpred == (значение f{x+)—f(xc), предсказываемое квадра- тичной моделью (=^5 +'AS^LL^)). Затем выполнить один из пунктов: а. Если А/ и \fpred совпадают в пределах относительной ошибки, равной 0.1, или выявлена отрицательная кривизна, и если возможен более длинный шаг, а также если значение б не было уменьшено в течение этой итерации, то положить б == 2 * б, retcode == 3, x+prev == л-+, f+prev = f+ и завершить работу алгоритма А6.4.5. Если нет: Ь. Положить retcode == 0. Если Af ~> 0.l*^fpred, то положить б = 6/2, иначе если Л/ < 0.75*Afpred, то положить б == 2*6, иначе не менять б. Завершить работу алгоритма А6.4.5. Алгоритм: (* Приведенные ниже шаги 9а.5. и 9с.ЗТ.5 нужно выполнять только в том случае, когда данный алгоритм используется для решения систем нелинейных уравнений. *) 1. maxtaken-f— FALSE 2. a^-lO"4 (*а есть константа, используемая в проверке шага на приемлемость f(x^.)'S^f(Xc)-i-agт(x^. — л-д); ее зна- чение можно изменить, изменив этот оператор. *) 3. steplen <--1| D^s На (* Dx == diag ((Sx)i, .. •, (Sx}n) хранится как Sx s R". Относительно предлагаемой программной реализации выражений, содержащих Dx, см. разд. 1.5 данного приложения.*) 4. А'+ <- Хс + s 5. CALL FN (га, х^, ^) {* f^^-f(x-+)*) Q.^f^f+-h 7. init slope <— gтs 8. IF retcode ^= 3 THEN f+preu <- 0 (* может понадобиться на случай ошибки при испол- нении следующего оператора *) 9а. IF (retcode ==3) AND ((/+ > f+preu) OR (A/ > a * initslope)) THEN (* положить заново л'+ равным x^prev и завершить шаг глобализации *) Модульная система алгоритмов 401 9а.1 retcode <- О 9а.2 х^. <— х^ргеи 9а.З f+*-f^.preu 9а.4 6 <- 6/2 9а.5 FV+<-FV+preu (* FV+ есть глобальная переменная; га-вектор FV+preu является дополнительной локальной переменной, ис- пользуемой только при решении нелинейных уравне- ний *) (*RETURN для алгоритма А6.4.5 *) 9b. ELSEIF A/>a* initslope THEN (* f (x+) слишком велико *) 9b.l rellength*- тах {——п '^'"о гч, \ 6 1<«<Л тах{|^[»]|, l/S^[t]} ; 9b.2 IF rellength < stepfol 9b.2T THEN . (* -c+—Хд слишком мало, завершить шаг глобализа- ции *) 9b.2T. 1 retcode <- 1 9b.2T.2 х^-^Хс (* RETURN для алгоритма А6.4.5 *) 9b.2E ELSE (* уменьшить б, продолжить шаг глобализации*) 9b.2E. 1 retcode <-2 г.. г>„ ri sn — initslope'* steplen 9b.2E.2 6temp <- ,„..,.„—., • ,, ' (Ч* (Ц — initslope)) 9b.2E.3a IF Ыепгр <Q.\ *6 THEN 6^-0.1*6 9b.2E.3b ELSEIF 6temp>0.5*6 THEN б<-0.5*б 9b.2E.3c ELSE b^-btemp (* RETURN для алгоритма А6.4.5 *) 9c. ELSE (*/(-t:+) достаточно мало*) (*в 9с.1 —2 положить ^fpred<-gтs+ 1/2s^s*) 9c. 1 Afpred <— initslope 9c.2 IF steptype = 1 9c.2T THEN (* криволинейный шаг, вычислить sтHs *) 9c.2T.l FOR i=\ TO га DO 9c.2T. 1.1 temp <- 1/2 * H [I, i\ * s [i]2 П + Z H [i, j] * s [i] * s [j] 1=1+1 9c.2T. 1.2 l^fpred <- ^fpred + temp 9c.2E ELSE (*шаг вдоль ломаной, вычислить sтLLTs*) 9c.2E.l FOR i=\ TO га DO П 9c.2E. 1.1 temp^- Z [L [J, i] * s [j] ) i=i 402 Приложение А. 9с.2Е. 1.2 \ipred <- \fpred + (temp * lemp/2) 9c.3 IF retcode ^ 2 AND ((| ^fpred - А/ К 0.1 * | АД) OR (А/ < initslope}} AND (Newttaken= FALSE) AND (6 < 0.99 * maxstep) 9c.3T THEN (* увеличить б вдвое и продолжить шаг глобализа- ции *) 9c.3T.l retcode <-3 9с.ЗТ.2 x+prev-<-x+ 9c.3T.2 f+prev-i-f^. 9с.ЗТЛ 6<-rnin{2*6, maxstep} 9c.3T.5 ^;V+^)/•<?u<-^:V+ (* RETURN для алгоритма А6.4.5 *) 9c.3E ELSE' (* взять х+ в качестве нового приближения, выбрать новое значение б *) 9c.3E. 1 retcode^- О 9с.ЗЕ.2 IF steplen > 0.99 * maxstep THEN maxtaken •<— TRUE 9c.3E.3a IF A/ > 0.1 * t^fpred THEN 6<-6/2 (* уменьшить 6 для следующей итерации *) 9c.3E.3b ELSEIF А/ < 0.75 * &.fpred THEN 6<-min{2*6, maxstep} (* увеличить б для следующей итерации *) (* 9c.3E.Зс ELSE б не меняется*) (*END, операторы ELSE 9c.3E, ELSE 9с и множественного. ветвления 9 *) (* RETURN для алгоритма А6.4.5 *) (* END, алгоритм А6.4.5*) Алгоритм А6.5.1 (NEMODEL). Построение аффинной модели для нелинейных уравнений Назначение: Приводить факторизацию якобиана модели, вы- числять ньютоновский шаг и обеспечивать необходимой ин- формацией глобальный алгоритм. Если якобиан модели вы- рожден или плохо обусловлен, то модифицировать его перед вычислением ньютоновского шага, как описано в разд. 6,5 основного текста книги. Входные параметры: п е= Z, F, е /?" (= F (х,)), /e^" (=/(xJ или ее апроксимации), ge Rn{= J DpFc), SpeR'1, Sx s R , macheps e R, global e Z. Входно-выходные параметры: отсутствуют. Выходные параметры: М i= /?" х ", Н <= R" х ", s^ e /?". Модульная система алгоритмов 403 Память: 1) Требуются два /г-вектора дополнительной памяти для Ml и М2. 2) Используются только верхняя треугольная часть и главная диагональ Н. Матрица Н может делить память с М, если внести некоторые незначительные изменения в этот алгоритм (и в дру- гие), как объясняется в руководствах 6 и 3. 3) М используется в первой части данного алгоритма для хра- нения Q^-разложения DpJ, как описывается в алгоритме A3.2.1. На выходе при global == 2 или 3 ее нижняя треугольная часть и главная диагональ содержат множитель L разложения Холес- ского матрицы Н, формирующейся ниже на шагах 3 и 4. Если global = 2, то эта же самая матрица содержится в верхней тре- угольной части и главной диагонали параметра Н на выходе. (Н может использоваться в пределах данного алгоритма неза- висимо от значения параметра global.) Описание: 1) Вычислить Q^-разложение DpI. (Dp=diag((Sp)i, ..., (5/г)„).) 2) Оценить в /i-норме число обусловленности RDx1. (Dx=^ =diag((5,)„ ..., (5,Щ 3) Если RDx' вырождена или плохо обусловлена, то положить H=JrD2pJ+-^n*macheps*^JTD'2pf^l*D'2x (см. разд. 6.5), вычис- лить разложение Н по Холесскому, положить з//-<-— И~^, где g=J DpFc, и завершить работу алгоритма А.6.5.1. 4) Если RDx1 хорошо обусловлена, то вычислить s,v<- — /"'F^ Если global =2 или 3, то записать R7' в нижнюю треугольную часть М. Если global = 2, то положить Н = RTR. Завершить работу алгоритма А6.5.1. Алгоритм: (*M^-Dpf; Dp==diag((Sp)t, ..., (Sp)n) *) 1. FOR i=l TO nDO 1.1 FOR j=l TO n DO M[i, }]^Sp[(]*/[i,j] 2. CALL QRDECOMP (n, М, М\, М2, sing) (* обратиться к алгоритму A3.2.1 для вычисления QR-раз- ложения М *) 3. IF NOT sing 3T. THEN (* оценить ^{RD~^}*} ^R^-RD-^*} 3T.1 FOR /=1 TO n DO 3T.1.1 FOR t=l TO /•- 1 DO M[i,i]^M[i,j]/Sx[j] 3T.1.2 M2[j]^-M2[j]/S,[n 3T.2 CALL CONDEST (n, М, М2, est) 404 Приложение А. (* обратиться к алгоритму A3.3.1 для оценки числа обусловленности R *) ЗЕ. ELSE est^-0 ____ 4. IF (sing) OR^est> I/-\/macheps) 4T. THEN (* внести возмущение в якобиан, как описано в разд. 6.5 *) (^Ж-/^/*) 4Т.1 FOR г==1 ТО п DO 4Т.1.1 FOR j=i TO n DO H[i,j]^-t /[&,<]* •Ф, Л!* S^]2 fc—i Б (*на шагах 4Т.2 — 3 вычисляется Hnorm-^-tOx^D'x1^ *) 4Т.2 Hnorm^(\ISA\}}^(\H^, AI/S^/]) 4T.3 FOR i =2 TO n DO 4T.3.1 /e/n/?<-(l/S^[t])* { t (1 Я [/, г] |/S, [/•])+ Z (I H [I, j\ \IS, [j])} l/=i /=t+i ) 4T.3.2 Hnorm <- max [temp, Hfiorm} {* H <- H + V" * macheps * Hnorm * D\ *) 4T.4 FOR i == 1 TO n DO _______ H [i, i} <- Я [i, i\ + V" * macheps * Hnorm * S^ [i}2 (* на шагах 4Т.5—6 вычислить s^<-H~'g*) 4T.5 CALL CHOLDECOMP (n,, H, 0, macheps, M, maxadd) (*Алг. А5.5.2*) 4T.6 CALL CHOLSOLVE (ft, g, M, s„) (*алг. A3.2.3*) 4E. ELSE (* вычислить обычный ньютоновский шаг *) (* положить заново R<-RDx*) 4Е.1 FOR /==1 TO га DO 4Е.1.1 FOR t==l TO /-1 DO M[i, j}<-M[i, n^SAj} 4E.l.2M2[j]^-M2[i]*SA]} 4E.2 s^^--Dp*Fc (*D^-diag((Sp)„ ..., (W*) 4E.3 CALL QRSOLVE (n, M, Ml, M2, s^) (* обратиться к алгоритму A3.2.2 для вычисления ЛГ'^*) 4Е.4 IF (global ==2) OR (global ^=3) THEN (* (нижняя треугольная часть Af)<-7?7'*) 4Е.4.1 FOR t=l TO га DO 4E.4.1.1 М[г, t]<-M2[t] 4E.4.1.2 FOR /=1 TO i—\ DO M[i, j\<-M[j, i] Модульная система алгоритмов 405 4Е.5 IF global =2 THEN (* н<-ьи*} 4E.5.1 FOR t= 1 TO га DO 4Е.5.1.1 H[l,i]^-Z {M[i,k}f 4E.5.1.2 FOR j=i~+ 1 TO ra DO H[i, A^Z (^[<, ^]^VU/, ^j) (* RETURN для алгоритма Аб.5.1 *) (*END, алгоритм Аб.5.1*) Алгоритм A6.5.1fac (NEMODELFAC). Построение аффинной модели для нелинейных уравнений с привлечением факторизованных формул секущих Назначение: Этот алгоритм является модификацией алгоритма Аб.5.1,. которая используется вместе с факторизованкыми формулами секущих. Он отличается от алгоритма Аб.5.1 глав- ным образом в способе хранения Q^-разложения аппрокси- мации якобиана. Входные параметры: га е Z, Fc e= R"- (= F (Хс)), g 6= Р"-, Sp e= R'1, Sx s R", macheps e R, global s Z, restart <= Boolean. Входно-выходные параметры: MeR^'1, Ш <= R", Je=Rn^n. Выходные параметры: //s/?^", s,v e R"'. Память: 1) Требуется один га-вектор дополнительной памяти для М\. 2) Используются только верхняя треугольная часть и главная диагональ H. Матрица Н может делить память с M, если внести некоторые незначительные изменения в этот алгоритм, как объ- ясняется в руководствах 6 и 3. 3) В случае восстановления / содержит / (л'с) на входе и Q7' на выходе, где QR ='DpJ(Xc). В остальных случаях / содержит Q7 на входе, где QR есть факторизованная аппроксимация D/-/(x'c) по секущим, и не меняется данным алгоритмом. Мат- рица М содержит R в своей верхней треугольной части на вы- ходе (иногда за исключением своей главной диагонали), а так- же на входе (включая главную диагональ), если нет восстанов- ления. Если global =2 или 3, то главная диагональ и нижняя треугольная часть М будет содержать на выходе ту же самую матрицу L, что содержится в М на выходе алгоритма Аб.5.1. Если global =2, то Н содержит ту же самую матрицу на вы- ходе, что содержится в Н на выходе алгоритма Аб.5.1. Описание: 1) В случае восстановления вычислить Q^-разложение Dp], раз- мещая '(У в / п R в М. (Dp=diag((Sp\, ..., (Sp)^).) 406 Приложение А. 2) Оценить в /i-норме число обусловленности матрицы RD^c1. (?>,=diag((5\)i, ..., (^Щ 3) Если RDx1 вырождена или плохо обусловлена, то положить Н = RTD2FR + V" * macheps * 1/?7/)^ [|i * Dl (см. разд. 6.5), вычи- слить разложение Я по Холесскому, положить Sff<——H~lg, где g = Rr(УDpFc, и завершить работу алгоритма А6.5.1 fac. 4) Если RDx1 хорошо обусловлена, то вычислить s,v <— <——^"'Q DpFc. Если global =2 или 3, то записать ^г в ниж- ней треугольной части М. Если global == 2, то положить Я <— RTR. Завершить работу алгоритма A6.5.1fac. Алгоритм: 1. IF restart IT. THEN (* вычислить новое Q^-разложение *) (*M<-DpJ(x,); Z^==diag((^)i, .... (W *) 1T.1 FOR г==1 ТО п DO 1T.1.1 FOR j= 1 TO n DO M[i,j}^Sp\i}!Ч[i, j} 1T.2 CALL QRDECOMP (n, M, Ml, M2, sing) (* обратиться к алгоритму A3.2.1 для вычисления Q^-разложения M *) 1Т.З CALL QFORM (n, M, M\, /) (* обратиться к алгоритму A3.4.2 для вычисления (У и размещения ее в / *) 1Т.4 FOR г==1 ТО n DO M [i, i] <- М2 [i] IE. ELSE (* проверить R на вырожденность*) 1Е.1 smg<- FALSE 1E.1 FOR г=1 ТО n DO 1E.2.1 IF M[l, i]=-0 THEN smg-<-TRUE 2. IF NOT sing 2T. THEN (* оценить Ki (№1) *) (^<-/?D;'*) 2T.1 FOR /=1 TO n DO 2T.1.1 FOR г==1 TO /—1 DO M [i, j} <- M [i, j]/S, Щ 2T.1.2 M2[j}^-M2[j}ISAj} 2T.2 CALL CONDEST (n, M, M2, est) (* обратиться к алгоритму A3.3.1 для оценки числа обусловленности R *) (* положить заново R<-RDx*) 2Т.З FOR j= 1 TO n DO 2T.3.1 FOR j= 1 TO /'— 1 DO M[i, j}^M[i, j}*SAl} 2T.3.2 M2\j}<-M2[!}*SAJ} Модульная система алгоритмов 407 2Е. ELSE est^-Q ____ 3. IF (sing) OR (est > 1 /^macheps) 3T. THEN (* внести возмущение в якобиан, как описано в разд. 6.5*) (*/-7<-^*) ЗТ.1 FOR г==1 ТО n DO ЗТ.1.1 FOR j=i TO n DO H[i, /j^-Z M[k, i}*M[k, j} k=i (*на. шагах ЗТ.2 — 3 вычислить Нпогт*-\ D^HD^ii *) 3T.2 Ялог/п<-(1/5,[1])^г(|Я[1, j}\IS,['!})~ 3T.3 FOR г =2 ТО /г DO ЗТ.3.1 temp^-(l/S^[i})* {t(\H[i,i}\/SAJ})+ i (\ffV,J}\/SAi})} Л/=1 /=t+l ) 3T.3.2 Я/гог/та^-тах {temp, Hnorm} (:1! H^-H + V" * macheps * Я/гогт * Z^ *) 3T.4 FOR г= 1 TO re DO_______ Я [г, г] ^- Я [г, /] + V» * macheps * Hnorm * S. U}2 ('-^ i \ на шагах ЗТ.5—6 вычислить s^-<—H~g*) ЗТ.5 CALL CHOLDECOMP (n, Я; 0, macheps, M, maxadd) (*а чг А5 52*) 3T.6 CALL CHOLSOLVE (re, g, M, s^ (* алг. А3.2.3 *) 3E. ELSE (* вычислить обычный ньютоновский шаг*) (*5у<- —JDpFc, напомним, что /=QГ*) ЗЕ.1 FOR i==\ TO re DO ^И^-Е(^[г,Л*^Ш*РЛ/]) 3E.2 CALL RSOLVE (re, A'J, M2, s^ (* обратиться к алгоритму А.3.2.2 для вычисления R'^Su*) ЗЕ.З IF {global =2) OR (global ==3) THEN (* (нижняя треугольная часть Л^)<-/?7'*) ЗЕ.3.1 FOR /==2 TO re DO 2Е.3.1.1 FOR /==1 TO i-\ DO M[i,]]<-M[j,i] 3E.4 IF global =2 THEN (*Я^Ц/*) 3E.4.1 FOR /=1 TO re DO 3E.4.1.1 FOR j=i TO n DO i ^[',A<-Z (^[г,^]*^[/, k\) k=t (* RETURN для алгоритма A6.5.1fac*) (*END, алгоритм A6.5.1fac*) 408 Приложение А. Алгоритм А7.2.1 (LMSTOP). Критерии останова для безусловной минимизации Назначение: Принимать решение, останавливать ли алгоритм безусловной минимизации D6.1.1 по какой-либо из причин, перечисленных ниже. Входные параметры: п г Z, Хс <= R"', x^<=R11, f e= R(==f(x+)}, g е= Т?" (= Vf (A-J), S^ e= R'1, typf e= R, retcode e= Z, gradtol e= R, steptol <= R, itncoutit s Z, itniimit <= Z, maxtaken ^ Boolean Входно-выходные параметры: consecmax s Z. Выходные параметры: termcode s Z. Значения кодов возврата: termcode = 0: не выполнен ни один из критериев останова; termcode ~> 0: выполнен некоторый критерий останова, как указано ниже: termcode == 1: норма масштабированного градиента меньше, чем gradtol; х+, вероятно, является приближенно точкой локального минимума f{x) (если значение gradtol не слишком велико); termcode = 2: масштабированное расстояние между послед- ними двумя шагами меньше, чем steptol; х+ может ока- заться приближенно точкой локального минимума f(x), но возможно также то, что алгоритм продвигается очень медленно и что он не находится вблизи от точки мини- мума или что значение steptol слишком велико; termcode = 3: на последнем шаге глобализации не удалось найти точку со значением целевой функции, меньшим, чем в Хс; либо Хс является приближенно точкой локального минимума и невозможно достичь более высокой точности. либо используется неточно запрограммированный анали- тический градиент, либо конечно-разностная аппроксима- ция градиента слишком неточна, либо значение steptol слишком велико; termcode == 4: превышен лимит на число итераций; termcode == 5: было сделано последовательно пять шагов длиной maxstep; либо f(x) не ограничена снизу, либо f(x) имеет конечную асимптоту в некотором направлении, либо значение maxstep слишком мало. Память: 1) Не требуется никакой дополнительной памяти под векторы и матрицы. Описание: Параметр termcode полагается равным 1, 2, 3, 4 или 5, если вы- полнено соответствующее приведенное выше условие; если ни одно из этих условий того, если maxtaken == единицу, в противном нулю. Алгоритм: Модульная система алгоритмов 409 не выполнено, то termcode -<— 0. Кроме TRUE, то consecmax увеличивается на случае consecmax полагается равным 1. termcode <— 0 2я. IF retcode=\ THEN termcode <-3 f тахЛл-, [t]|, 1/S [<•]} ) 2b. ELSEIF ,^xJlgM|. l^,^)"} < gradtol THEN termcode <- 1 (* это максимальная компонента масштабированного гра- диента; см. разд. 7.2. ПРЕДОСТЕРЕЖЕНИЕ: если зна- чение typf слишком велико, то алгоритм может завершить работу преждевременно *) 2с. ELSEIF max {——\x+[ll^xcll]\•^ }<steptol THEN К«Л max(|^[t]|, l/S^i]] J "'- ^ termcode •<— 2 (* это максимальная компонента масштабированного шага; см. разд. 7.2 *) 2d. ELSEIF itncount > itniimit THEN termcode <-4 2e. ELSEIF maxtaken = TRUE THEN (* был сделан шаг длиной maxstep; при желании вывести на печать это сообщение *) 2e. 1 consecmax <- consecmax + 1 2e.2 IF consecmax ==5 THEN termcode <- 5 (* ограничение в пять шагов максимальной длины совер- шенно произвольно и может быть изменено заменой этого оператора *) 2f. ELSE consecmax^ 0 (* END для оператора множественного ветвления 2 *) (* при желании в этом месте вывести на печать соответствую- щее сообщение об окончании, если termcode > 0 *) (*RETURN для алгоритма А7.2.1 *) (* END, алгоритм А7.2.1 *) Алгоритм А7.2.2 (LJMSTOPO). Критерии останова для безусловной минимизации перед начальной итерацией Назначение: Решать, завершать ли работу алгоритма D6.1.1 пе- ред начальной итерацией по причине того, что хо является приближенно стационарной точкой для f(x). 14 Зак. 660 410 Приложение А. Входные параметры: п <= Z, л-о s R", f^R(=f(xo)), g <=. (=Rr'(=vf(xo)), S^ <= R", typfe=R, gradtol^R. Входно-выходные параметры: отсутствуют. Выходные параметры: termcode e Z, consecmax <= Z. Значения кодов возврата: termcode = 0: хо не является приближенно критической точкой для f(x}~, termcode = 1: хо является приближенно критической точкой для f(x). Память: 1) Не требуется никакой дополнительной памяти под векторы и матрицы. Примечания: 1) Если termcode == 1, то возможно, что Хо является прибли- женно точкой максимума или седловой точкой f{x}. Это можно определить путем выяснения, является ли ^2f(xo) положительно определенной. В случае отрицательного ответа алгоритм D6.1.1 может быть запущен заново из некоторой точки вблизи хо. Тогда, вероятнее всего, он будет сходиться опять к хо, лишь если XQ является приближенно точкой локального минимума f{x). Описание: Значение termcode полагается равным 1, если абсолютная ве- личина максимальной по модулю компоненты масштабирован- ного градиента оказывается меньше, чем i.0-з*gradtol. (Перед начальной итерацией используется более строгий допуск на ве- личину градиента.) В противном случае termcode -<- 0. Алгоритм: 1. consecmax •<- О (* consecmax будет использоваться алгоритмом А7.2.1 для проверки на расходимость; он содержит число последних последовательно сделанных шагов, масштабированная длина которых была равна maxstep *) ,, ,„ ( , г.-, , .,, max {| Жо [г] [, l/Sx [i]} ) -- ,n-3 * л. i 2- ^^Л'^' max;^!.^} Ч^1» ^radt01 THEN termcode^-1 (* при желании вывести соответствующее сообщение об окончании *) ELSE termcode <- 0 (* RETURN для алгоритма А7.2.2 *) (*END, алгоритм А7.2.2 *) Модульная система алгоритмов 411 Алгоритм А7.2.3 (NESTOP). Критерии останова для нелинейных уравнений Назначение: Решать, завершать ли работу алгоритма решения нелинейных уравнений D6.1.3 по какой-либо из причин, пере- численных ниже. Входные параметры: п е Z, Хс е= R'1, х+ е R", F e R'1 (= F (л'+)), FnormeR(=(l/2)[\DpF(x^Q, gre^(=/^/^), S^R", Sp e R"', retcode '=. Z, fvectol e R, steptol e R, iincount s Z, itniimit e Z, maxtaken <= Boolean, analjac e Boolean, cheapFe. e Boolean, mintol e R. Входно-выходные параметры: consecmax E Z. Выходные параметры: termcode e Z. Значения кодов возврата: termcode == 0: не выполнен ни один из критериев останова; termcode > 0: выполнен некоторый критерий останова, как указано ниже: termcode == 1: норма масштабированного значения функции меньше, чем fvectol; x+, вероятно, является приближенно корнем F(x) (если значение fvectol не слишком велико); termcode == 2: масштабированное расстояние между послед- ними двумя шагами меньше, чем steptol; x+ может ока- заться приближенно корнем F(x), но возможно также, что алгоритм продвигается очень медленно, не находится вблизи корня, или значение steptol слишком велико; termcode == 3: на последнем шаге глобализации не удалось в достаточной степени уменьшить ||.F(A")||2; либо Хс близко к корню F(x) и невозможно достичь более высокой точ- ности, либо используется неточно запрограммированный аналитический якобиан, либо неточна аппроксимация яко- биана по секущим, либо значение steptol слишком велико; termcode == 4; превышен лимит на число итераций; termcode = 5: было сделано последовательно пять шагов длиной maxstep; либо |[^(х)||2 асимптотически прибли- жается сверху к конечному значению в некотором направ- лении, либо значение maxstep слишком мало; termcode == 6: Хс, по-видимому, является приближенно точ- кой локального минимума Ц/7^)!^, которая не есть корень F(x) (или значение mintol слишком мало); для нахожде- ния корня F{x) алгоритм должен быть запущен вновь из другой области. Память: 1) Не требуется никакой дополнительной памяти под векторы и матрицы. I4* 412 Приложение А. Описание: Параметр termcode полагается равным 1, 2, 3, 4, 5 или 6, если выполнено соответствующее приведенное выше условие; если ни одно из этих условий не выполнено, то termcode -*-0. Кроме того, если maxtaken == TRUE, то consecmax увеличивается на единицу, в противном случае consecmax полагается равным нулю. Алгоритм: 1. termcode •<- О 2а. IF retcode==\ THEN termcode <-3 2b. ELSEIF max {Sp [t] * | F [i\ \} < fvectol THEN termcode <- 1 1<i<ra (* это максимальная компонента масштабированного зна- чения функции; см. разд. 7.2 *) 2с. ELSEIF max { - 1 х+ ^"ц^1'11 •n I < steptol THEN 1<;<Л max{|^[t]|, l/S^t]} J^ ty termcode <- 2 (* это максимальная компонента масштабированного ша- га; см. разд. 7.2 *) 2d. ELSEIF itncount > itniimit THEN termcode <- 4 2e. ELSEIF maxtaken = TRUE THEN (* был сделан шаг длиной maxstep; при желании вывести на печать это сообщение *) 2e. 1 consecmax •<- consecmax + 1 2e.2 IF consecmax = 5 THEN termcode <- 5 (* ограничение в пять шагов максимальной длины совер- шенно произвольно и может быть изменено заменой этого оператора *) 2f. ELSE 2f.l consecmax •<- О 2f.2 IF analjac OR cheapF THEN 2f.2.i IF шах ^mi—^m.i^.-m^^^ i«<n'> max {rnorm, n/2} ) ~ termcode •<— 6 (* проверка на локальный минимум Ц-ЕМПз опускается при использовании методов секущих, поскольку в этом случае g может не быть точным *) (* END, оператор множественного ветвления 2 *) (* при желании вывести здесь соответствующее сообщение об окончании, если termcode > О*) (* RETURN для алгоритма А7.2.3*) (* END, алгоритм А7.2.3*) . Модульная система алгоритмов 413 Алгоритм А7.2.4 (NESTOPO). Критерии останова для нелинейных уравнений перед начальной итерацией Назначение: Решать, завершать ли работу алгоритма D6.1.3 пе- ред начальной итерацией по причине того, что XQ является приближенно корнем F(x}. Входные параметры: п е Z, л-о <= 7?", F <= Р"(= F(xo)), Sp <= R", fvectol i= R. Входно-выходные параметры: отсутствуют. Выходные параметры: termcode s Z, consecmax s Z. Значения кодов возврата: termcode = 0: хо не является приближенно корнем F(x}', termcode == 1: Хо является приближенно корнем F(x). Память: 1) Не требуется никакой дополнительной памяти под векторы и матрицы. Описание: Значение termcode полагается равным 1, если абсолютная ве- личина максимальной по модулю компоненты масштабирован- ного значения функции меньше, чем l0~2*fuectol. (Перед на- чальной итерацией используется более строгий допуск на вели- чину функции.) В противном случае termcode •<- 0. Алгоритм: 1. consecmax •«— О (* параметр consecmax будет использоваться алгоритмом А7.2.3 для проверки на расходимость; он содержит число последних последовательно сделанных шагов, масштабиро- ванная длина которых была равна maxstep *) 2. IF max {Sp [i] * \ F [i] \} < 10~2 * fvectol кг<» THEN termcode ч-1 (* при желании вывести соответствующее сообщение об окончании *) ELSE termcode-e-0 (* RETURN для алгоритма А7.2.4 *) (* END, алгоритм А7.2.4 *) 414 Приложение А. Алгоритм А8.3.1 (BROYUNFAC). Формула пересчета Бройдена, нефакторизованная форма Назначение: Производить пересчет А по формуле .. л , (У - ^ W где s==x^—Xc, y==F+—Fc, пропуская всю или часть фор- мулы пересчета при выполнении условий, описанных ниже. Входные параметры: п s Z, х^ е R1, х^. s R"-, Fc е Т?" (= F (Хс)), F^ е Г 0== F (л:+)), т) е 7?, 5, е Г (^ = diag ((5,)i, ..., (5,)„)). Входно-выходные параметры: AGRnxn. Выходные параметры: отсутствуют. Память: 1) Требуется один /i-вектор дополнительной памяти для s. 2) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 6. Описание: Для каждой 1-й строки пересчет t-й строки производится, если | (у—As) [i] | не оказывается меньше, чем оценка уровня шума в у [i], которая равна q* (| F+ [i] \ + Fc [г] |). Алгоритм: 1. S<-X^ — Хс 2. denom^\\D^ (*Z)^=diag((5^)i, ..., (S^n) хранится как Sx e R'1. Относи- тельно предлагаемой программой реализации выражений, содержащих D^. см. разд. 1.5 настоящего приложения. *) 3. FOR i = 1 TO n DO (*tempi<-(y— As) [г]*) 3.1 tempi <- F^ [i] - F, [i] - Z A [i, j} * s [/] 3.2 IF | tempi \ > л * (| F^ [i] \ +\ F, [г] |) THEN (* произвести пересчет г-й строки *) 3.2.1 tempi -<- tempi /denom 3.2.2 FOR /==1 TO га DO A [i, !] <- A [i, ]} + tempi * s [/•] * 5, [j}2 (* RETURN для алгоритма А8.3.1 *) (* END, алгоритм А8.3.1 *) Модульная система алгоритмов 415 Алгоритм А8.3.2 (BROYFAC). Формула пересчета Бройдена, факторизованная форма Назначение: Пересчитывать Q^-факторизацию матрицы Л, аппроксимирующей Dpf(xc), в факторизацию вида Q+R+ мат- рицы (Di,y-As){D^Y А+———TD^S————' аппроксимирующей DpJ(x+), где s = х+—Хс, у == F+—Fc, пропуская всю или часть формулы пересчета при выполне- нии условий, описанных ниже. Входные параметры: п <= Z, Хс е /?", х+ г R'1, Fc е R"' (== F (Хс)), F+ е У?" (= F (х^)), л е R, 5, е= Г (D, == diag ((5,)i, ..., (S,)J), S^er(^=diag((^)i, ..., (^)J). Входно-выходные параметры: Z е ^"х" (содержит Q7 на входе, Q'. на выходе), М е /?"х" (верхняя треугольная часть и главная диагональ Л1 содержит R на входе, Д'4- на выходе), М2 г /?" (содержит главную диагональ R на входе, главную диагональ R+ на выходе). Выходные параметры: отсутствуют. Память: 1) Требуются три /г-вектора дополнительной памяти для s. t и w. 2) Первая нижняя поддиагональ М, а также ее верхняя тре- угольная часть, включая главную диагональ, используются на промежуточных этапах данного алгоритма. 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 6. Описание: 1) Переписать М2 на главную диагональ М. 2) s •<- х+ — Хс. 3) Вычислить t = Rs. 4) Вычислить w == Dpy—As = Dpy—Zтt. Если |ау[г'][ меньше, чем оценка уровня шума в Dpy[i], измеряемого величиной г) *D p[i] *(\F+[i} | + l^ctt] |), то ay[t] полагается равным нулю. 5) Если w == 0, то пересчет не производить. В противном случае: 5а) Положить t == (У-ЦО = Zw, s = D'^slsтD^s, 5b) Обратиться к алгоритму A3.4.1 для пересчета Q^-раз- ложения матрицы Л в разложение вида Q+R+ матрицы <3(/?+^) 5с) Переписать новое значение диагонали М в М2. 416 Приложение А. Алгоритм: 1. FOR t=l TO n DO М [i, i] <- M2 [i\ 9 С -4_ Y —— Y 3. y&tjOupdofe^-TRUE (*f<-^S: *) 4. FOR г- = 1 TO /г DO t[i]^^M[i, j]*s[j] 5. FOR г=ГтО n DO (*^]^(D^-Z^ [/]:*) 5.1 w [i] <- Sp [i} * F+ M - 5/, [i\ * F, [<•] - Z ^ [/', i] * ^ [Л 5.2 IF w [г] > TI * Sp [i] * (| F+ H | + I Fc HT) THEN skipiipdate<- FALSE ELSE ау[г]^-0 6. IF skipupdate= FALSE THEN (* f^—z * a»: *) 6.1 FOR г=1 ТО ra DO ^ И ^-? 2 [г, Л *"'[/'] 6.2 derao/ra<-|l^s||j (*D.,=diag((S^)i, ..., (^)J) хранится как S;, s/?". Относительно предлагаемой программой реализации вы- ражений, содержащих Dx, см. разд. 1.5 настоящего приложения *) 6.3 s <— Z)^ * s/denom 6.4 CALL QRUPDATE (га, ^, s, 1, Z; ЛГ) (* алг. АЗ.4.1 *) 6.5 FOR i = 1 TO n DO Л12 [г] <- Л! [г, г] (* RETURN для алгоритма А8.3.2 *) (* END, алгоритм А8.3.2 *) Алгоритм А9.4.1 (BFGSUNFAC). Положительно определенная формула секущих (BFGS), нефакторизованная форма Назначение: Пересчитывать Н по BFGS-формуле и^т„ ,,,,т „ /^ss^ yy Н -Н ——,——+— s'Hs где s = х+ — Хс, у == g^ — gc, пропуская пересчет в случае выполнения условий, сформулированных ниже. Модульная система алгоритмов 417 Входные параметры: n e= Z, ^ s R'1, х+ 6= 7?", gc <= /?", g+ e 7?", macheps s R., f\ e /?, analgrad e Boolean (= TRUE, если ис- пользуется аналитический градиент, FALSE в противном случае). Входно-выходные параметры: симметричная Н е ^"х". Выходные параметры: отсутствуют. Память: 1) Требуются три п-вектора дополнительной памяти для s,y w. t. 2) Используется только верхняя треугольная часть Н, включая главную диагональ. (Это — единственные компоненты Я, к ко- торым обращается остальная часть системы алгоритмов.) 3) Если преследуется цель более экономного отношения к па- мяти под матрицы, то данный алгоритм следует незначительно модифицировать, как объясняется в руководстве 3. Описание: Указанный выше пересчет не производится, если либо i) yтs <; <.(machepsYt2\\s\\ч\\y\\ч, либо ii) для каждого i величина | (г/—Hs) [i] | меньше, чем оценка уровня шума в y[i]. Оценка уровня шума вычисляется по формуле tol*(\gc[i] |+|ё+М I)' где tol = T], если используются аналитические градиенты, tol == ==^1/2, если используются конечно-разностные градиенты. Алгоритм: 1 • S ^—Х 4. Л с 2. y*-g+—gc 3. tempi <-yTs 4. IF templ^imachepsf2*^^*^^ THEN (*ELSE пересчет не производится, и алгоритм завершает работу *) 4.1 IF analgrad =TRUE THEN tol^-r] ELSE tol<-^l'2 4.2 skipupdate^-TRUE 4.3 FOR i=l TO га DO (4[i]^Hs[i}:*) 4.3.1 / [/] <- Z/Ц/, /]МЛ+ ^fl[i, j]^s[j] 4.3.2 IF | у [/] -'-1 [i\ | > tol * m^ffg, [i] |, | ^ [i] |} THEN skipupdate <- FAL SE 4.4 IF skipupdate == FALSE THEN (* произвести пересчет; ELSE пересчет не производится, и алгоритм завершает работу *) 4.4.1 te^np2<-sтt (*sтHs*) t [iYt [j] temp2 418 Приложение А. 4.4.2 FOR /=1 TO n DO 4.4.2.1 FOR j==i TO n DO я[,л<-яl.л+^] (*END, операторы IFTHEN 4.4 и IFTHEN 4*) (* RETURN для алгоритма А9.4.1 *) (* END, алгоритм А9.4.1 *) Алгоритм А9.4.2 (BFGSFAC). Положительно определенная формула секущих (BFGS), факторизованная форма Назначение: Пересчитывать /^-факторизацию матрицы Н в факторизацию вида L+L^ матрицы Н— Н^_Н_ ,^_^»г Jw„ г „г, JJ ' s'Hs У s где s = х+ — х„ y==g+- gc, (y^H^(al^_ ( у^ \'2 J-L+~—^——' "-b^J • используя алгоритм A3.4.1 для вычисления Q^-факторизации матрицы У7' за 0(п2) операций. Пересчет не производится в случае выполнения условий, сформулированных ниже. Входные параметры: n s Z, Хс s R'1, х+ s /?", gc е. R'1, g+ s R", machepse.R, r[e.R, analgrad s Boolean (==TRUE, если используется аналитический градиент, FALSE в противном случае). Входно-выходные параметры: М е ^»х" (нижняя треугольная часть и главная диагональ М содержат L на входе, L+ на вы- ходе) . Выходные параметры: отсутствуют. Память: 1) Требуются четыре га-вектора дополнительной памяти для s, у, t и и. Этот объем может быть уменьшен до двух векторов простой заменой t на s и и на у во всех их вхождениях в при- веденном ниже алгоритме. (То есть t и и используются только для того, чтобы сделать алгоритм более простым для пони- мания.) 2) На промежуточных этапах данного алгоритма используется вся матрица М, хотя на входе в алгоритм и на выходе из него Модульная система алгоритмов 4)9 необходимы только ее нижняя треугольная часть и главная диа- гональ. 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 3. Описание: 1) Если г/^ < (/7гac/гe/5s)l/2||s||2ll</||2 или если для каждого i ве- личина | (у—LZ^s) [i] | оказывается меньше, чем оценка уровня шума в у [i], то пересчет не производится. Оценка уровня шума в y[i\ вычисляется по формуле tol* (\gc[i}\ + |^+И|), где tol == == T] в случае использования аналитических градиентов и tol == == т^2, если используются конечно-разностные градиенты. 2) Если должен производиться пересчет, то вычисляются и = Lтs|^/yтs'sтLLTs и / = у — aLUs, и U копируется в верх- нюю треугольную часть М. Затем вызывается алгоритм A3.4.1, возвращающий в верхнюю треугольную часть М значение мат- рицы ./?-)-> для которой 7?^^?,==(L+^r)(^-r+u^r)• Затем /?7, ко- пируется в нижнюю треугольную часть М и возвращается как новое значение L+. Алгоритм: 1. S <- Х+ — Хс 2. y<-g+-gc 3. tempi <-yтs 4. IF tefnpl^imacheps)"2*^^*^^ THEN (*ELSE пересчет не производится, и алгоритм завершает работу *) (*/^-//5:*) 4.1 FOR г==1 ТО n DO t\i\^^M[j,i\*s[j} 4.2 temp2 '^f't (* == s^'Ll^s *) ______ 4.3 a<--\/temp\ltemp2 (* = ^yтs|sтLLTs *) 4.4 IF analgrad ==TRUE THEN tol<-f\ ELSE tol^-^l2 4.5 skipupdate*-TRVE 4.6 FOR г=1 ТО n DO (*tempЗ<-(LLTs)[i]•.*) i 4.6.1 temp3 <- S M [i, j] * t [j] >_i 4.6.2 IF | у [i] - temp31 > tol * max {| g, [i] |, | g^ [i] |} THEN skipupdate <— FAL S E 4.6.3 и [i] <- у [i] — a * femp3 420 Приложение А. 4.7 IF skipupdate== FALSE THEN (* произвести пересчет; ELSE пересчет не производится, и алгоритм завершает работу*) 4.7.1 ^/np3<-l/V'tempi * tempi (* = l/-\/^1ГгsгLLTs *) 4.7.2 FOR i ==1 TO n DO /[г]<--/еотр3*<[г] (* скопировать U в верхнюю треугольную часть М: *) 4.7.3 FOR t==2 TO га DO 4.7.3.1 FOR /=1 TO t—1 DO M[j,i}<-M[i,j} (* обратиться к алгоритму A3.4.1 для вычисления QR-раз- ложения матрицы 17 + ut1: *) 4.7.4 CALL QRUPDATE (га, t, и, 2, М, М) {* второе М является фиктивным параметром *) (* скопировать транспонированную верхнюю треугольную часть М в М:*) 4.7.5 FOR i == 2 ТО га DO 4.7.5.1 FOR j=l TO l-\ DO M[i, j]<-M[j,i] (* END, операторы IFTHEN 4.4 и IFTHEN 4 *) * RETURN для алгоритма А9.4.2 *) * END, алгоритм А9.4.2 *) Алгоритм А9.4.3 (IN1THESSUNFAC). Начальное значение гессиана для формулы секущих в нефакторизованной форме Назначение: Полагать Н == max {\f(xo) \, typf}*D^, где D^ == ==diag((S,)i, ..., (S,)„). Входные параметры: raeZ, f e R (== f {Xo)), typf e R, Sx <= R". Входно-выходные параметры: отсутствуют. Выходные параметры: симметричная Н е ^"х". Память: 1) Не требуется никакой дополнительной памяти под векторы и матрицы. 2) Используется только верхняя треугольная часть Н, включая главную диагональ. (Это — единственные компоненты Н, к ко- торым обращается остальная часть системы алгоритмов.) 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 3. Модульная система алгоритмов 421 Алгоритм: 1. temp <- max {| /|, typf} 2. FOR i == 1 ТО n DO 2.1 H [i, i] <- temp * S^ [i] * 5., [i] 2.2 FOR /• == i + 1 TO ra DO ff[i,j]^-0 (* RETURN для алгоритма А9.4.3 *) (*END, алгоритм А9.4.3 *) Алгоритм А9.4.4 (INITHESSFAC). Начальное значение гессиана для формулы секущих в факторизованной форме Назначение: Полагать L = max {| f(xo) j, typf}*Dx, где D,=diag((5,)„ .... (5,)„). Входные параметры: га е Z, / s= R (= f (Ху)), typfeR, Sx s 7?". Входно-выходные параметры: отсутствуют. Выходные параметры: нижняя треугольная L е. У?^". Память: 1) Не требуется никакой дополнительной памяти под векторы и матрицы. 2) Используется только нижняя треугольная часть L, включая главную диагональ. 3) Этот алгоритм не меняется при использовании экономичного способа хранения матриц, описанного в руководстве 3. Алгоритм: 1. temp ^- (max {| Д, typf})112 2. FOR i= 1 ТО га DO 2.1 H[i, i}<-iemp*SAi} 2.2 FOR / = 1 TO i — 1 DO L[i,]}^-0 * RETURN для алгоритма А9.4.4 *) * END, алгоритм А9.4.4 *) Приложение В. Тестовые задачи') Тестовые задачи обсуждаются в разд. 7.3, так что интересую- 80' щемуся этим предметом читателю следует ознакомиться с разд. 7.3, прежде чем приступать к настоящему приложению. Морэ, Гарбов и Хиллстром (1981) дают набор приблизительно из 15 тестовых задач, каждая из которых подходит для безу- словной минимизации, решения систем нелинейных уравнений и нелинейных задач о наименьших квадратах. Многие из этих задач можно решать на ЭВМ с различными значениями п. Для каждой задачи дается начальная точка хо, и большинство рас- считано на то, чтобы начинать также из 10*л:о и \00*хо. Таким образом, число возможных задач, предоставленных Морэ, Гар- бовом и Хиллстромом, в действительности достаточно велико. Ниже приводится небольшое их подмножество, которые можно использовать для тестирования в учебных проектах или для те- стирования нового метода на самой ранней стадии. Всем, кто заинтересован во всестороннем тестировании, настоятельно ре- комендуется прочитать работу Морэ, Гарбова и Хиллстрома, а также рекомендуется использовать более широкий набор содер- жащихся там тестовых задач. Хайберт (1982) дает сравнитель- ный анализ программ решения систем нелинейных уравнений, используя тестовые задачи из работы Морэ, Гарбова и Хилл- строма, и делает предложения по модификации этих задач, при- водящей к задачам с плохой обусловленностью или к задачам с зашумленной функцией. Приведенные ниже задачи 1—4 являются стандартными те- стовыми задачами как для нелинейных уравнений, так и для безусловной минимизации. В каждом случае задается п скаляр- ных функций от п неизвестных, fi(x), i == 1, .... п. Вектор-функ- цией в нелинейных уравнениях служит г л wi F(x)=\ ••• . ____ 1-^)-! ') Автор — Р. Шнабель. Тестовые задачи 423 тогда как целевой функцией для безусловной минимизации служит fw=i.fi(x)2. i^\ Задачи 1—3 могут быть просчитаны на ЭВМ с различными зна- чениями п. Стандартными размерностями для задач 1 и 2 яв- ляются соответственно п == 2 и п == 4, причем с них следует на- чинать тестирование. Приемлемым первым вариантом для за- дачи 3 является п = 10. Задача 5 представляет собой трудную тестовую задачу, которая зачастую используется только для безусловной минимизации. Следуя Морэ, Гарбову и Хиллстрому, мы приводим для каж- дой задачи: а) размерность п; Ь) нелинейную функцию (функ- ции); с) начальную точку хо; d) корень и точку минимума х„, если имеется их точное значение. Минимальное значение f(x) равно нулю во всех случаях. Решение этих задач можно начи- нать из Хо, \0*Хц или 100 *Хо. Ссылку на оригинальный источ- ник для каждой задачи можно найти в работе Морэ, Гарбова и Хиллстрома. 1) Расширенная функци'я Розенброка &) п— любое положительное целое, кратное 2; b) для г'==1, ..., п/2: ^-i W-10(^-^-1). f2i(x)=:= 1 — X2i-l'^ c) ^=(-1.2, 1, ..., -1.2, 1); d) л-.=(1,1, ..., 1, 1). 2) Расширенная обобщенная функция Пауэлла a) n — любое положительное целое, кратное 4; b) для i= 1, ..., п/4: /4t-3 W == X-li^S + lO-^t-Zi f4i-2W==-\/5 (Xu_t—Xi{), ^-lM=(^-2-2^-l)2, ^)==VlO(^-3-^)2; c) Xo==(3, -1, 0, 1, ..., 3, -1, 0, 1); d) ^.==(0, 0, 0, 0, ..., 0, 0, 0, 0); замечание: Р'(х^) и V2/^.) вырождены. 3) Тригонометрическая функция a) га — любое положительное целое; b) для 1== 1, ..., га: п. fi (х) == га — S (cos х, + i (1 — cos .v,) — sin x,); c) Xo==(l/n, 1/ra, .. ., l/n). 424 Приложение В. 4) функция типа спиралевидного желоба a) п=3; b) ft(x}=lO(x,-lOQ(xi,x,)), h(x)=l0((x2,+x^^2-l), fs (х) = Хз, где Q (Xt, х.г) = (1/2я) arctg (х^/х^ при х^ > О, Q(xi, A:2)=(l/2n)arctg(n:2/A:i)+0.5 при х^ < 0; c) ^о=(-1. О, О); d) л:.=(1,0, 0). 5) Функция Вуда a) га ==4; b) f (х) == 100 (^ - х^ + (1 - ^)2 + 90 (^ - х^ + + (1 - 42 + 10.1 ((1 - х,)2 + (1 - ^)2) + +19.8(1-^) (1-^); c) х„=(-3, -1, -3, -1); d) ^.=(1, 1, 1, 1). ЛИТЕРАТУРА Асен (Aasen J. О.) (1971) On the reduction of symmetric matrix to tridiagonal form, BIT 11, 233—242. Авриель (Avriel M.) (1976) Nonlinear Programming: Analysis and Methods, Prentice-Hall, Englewood Cliffs, N. J. Алговер, Джордж (Allgower E., Georg K.) (1980) Simplicial and continuation methods for approximating fixed points and solutions to systems of equations, SIAM Review 22, 28—85. Армийо (Armijo L.) (1966) Minimization of functions having Lipschitz-continuous first partial derivatives, Pacific J. Math. 16, 1—3. Ахо, Хопкрофт, Ульман (Aho A. U., Hopcroft J. E., Ullman J. D.) (1974) The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, Mass. [Имеется перевод: Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. — M.: Мир, 1979.] Бакли (Buckley A. G.) (1978) A combined conjugate gradient quasi-Newton minimization algo- rithm, Math. Prog. 15, 200—210. Банч, Парлетт (Bunch J. R., Parlett B. N.) (1971) Direct methods for solving symmetric indefinite systems of linear equations, SIAM J. Numer. Anal. 8, 639—655. Бард (Bard Y.) (1970) Nonlinear Parameter Estimation, Academic Press, New York. Барнес (Barnes J.) (1965) An algorithm for solving nonlinear equations based on the secant method, Comput. J. 8, 66—72. Бартелс, Конн (Bartels R., Conn A.) (1982) An approach to nonlinear /i data fitting, in Numerical Analysis, Cocoyoc 1981, ed. by Hennart J. P., Springer-Verlag, Lecture Notes in Math. 909, 48—58. Бейтс, Уоттс (Bates D. M., Watts D. G.) (1980) Relative curvature measures of nonlinearity, J. Roy. Statist. Soc. Ser. B 42, 1—25, 235. Бил (Beale E. M. L.) (1977) Integer programming, in The State of the Art in Numerical Ana- lysis, ed. by Jacobs D., Academic Press, London, 409—448. Битон, Тьюки (Beaton A. E., Tukey J. W.) (1974) The fitting of power series, meaning polynomials, illustrated on hand-spectroscopic data, Technometrics 16, 147—192. Боггс, Дэннис (Boggs P. Т., Dennis J. E., Jr.) (1976) A stability analysis for perturbed nonlinear iterative methods, Math. Сотр. 30, 1—17. Брайян (Вгуап С. А.) (1968) Approximate solutions to nonlinear integral equations, SIAM J. Numer. Anal, 5, 151—155. Брент (Brent R. P.) (1973) Algorithms for Minimization without Derivatives, Prentice-Hall, Englewood Cliffs, N. J. Бродли (Brodlie K. W.) (1977) Unconstrained minimization, in The State of the Art in Numerical Analysis, ed. by Jacobs D., Academic Press, London, 229—268. 426 Литература Бройден (Broyden С. G.) (1965) A class of methods for solving nonlinear simultaneous equations Math. Сотр. 19, 577—593. (1969) A new double-rank minimization algorithm, AMS Notices 16, 670. (1970) The convergence of a class of double-rank minimization algorithms Parts I and II, J. I. M. A. 6, 76—90, 222—236. (1971) The convergence of algorithm for solving sparse nonlinear sys terns, Math. Сотр. 25, 285—294. Бройден, Дэннис, Морэ (Broyden С. G., Dennis J. Е., Jr., More J. J.) (1973) On the local and superlinear convergence of quasi-Newton methods J. I. M. A. 12, 223—246. Вандерграфт (Vandergraft J. S.) (1978) Introduction to Numerical Computations, Academic Press, New York. Вольф (Wolfe P.) (1969) Convergence conditions for ascent methods, SIAM Review 11, 226— 235. (1971) Convergence conditions for ascent methods. II: Some corrections, SIAM Review 13, 185—188. Гандер (Gander W.) (1978) On the linear least squares problem with a quadratic constraint, Stanford Univ. Computer Science Tech. Rept. STAN-CS-78-697, Stanford Calif. (1981) Least squares with a quadratic constraint, Numer. Math. 36, 291— 307. [Это сокращенная версия работы Гандер (1978).] Гарфинкель, Немхаусер (Garfinkel R. S., Nemhauser G. L.) (1972) Integer Programming, John Wiley & Sons, New York. Гилл, Голуб, Мюррей, Сондерс (Gill Р. Е., Golub G. Н., Murray W., Saunders M. A.) (1974) Methods for modifying matrix factorizations, Math. Сотр. 28, 505—535. Гилл, Мюррей (Gill Р. Е., Murray W.) (1972) Quasi-Newton methods for unconstrained optimization, J. I. M. A. 9, 91—108. Гилл, Мюррей, Райт (Gill Р. Е., Murray W., Wright M. H.) (1981) Practical Optimization. Academic Press, London. [Имеется перевод: Гилл Ф., Мюррей У., Райт M. Практическая оптимизация. — M.: Мир, 1985.] Голдстейн (Goldstein А. А.) (1967) Constructive Real Analysis, Harper & Row, New York. Голдфарб (Goldfarb D.) (1970) A family of variable metric methods derived by variational means Math. Сотр. 24, 23—26. (1976) Factorized variable metric methods for unconstrained optimization Math. Сотр. 30, 796—811. ' , Голдфельд, Куанд, Троттер (Goldfeldt S. M., Quandt R. Е., Trotter H. F.) (1966) Maximization by quadratic hill-climbing, Econometrica 34, 541—551. Голуб, Ван Лоан (Golub G. H., Van Loan С.) (1983) Matrix Computations, the Johns Hopkins University Press. Голуб, Перейра (Golub G. H., Pereyra V.) (1973) The differentiation of pseudo-inverse and non-linear least squares problems whose variables separate, SIAM J. Numer. Anal. 10, 413—432. Гриванк (Griewank А. О.) (1982) A short proof of the Dennis-Schnabel theorem. B. I. T. 22, 252—256. Гриванк, Тоинт (Griewank А. О., Toint Ph. L.) (1982а) Partitioned variable metric updates for large sparse optimization problems, Numer. Math. 39, 119—137. Литература 427 (1982b) Local convergence analysis for partitioned quasi-Newton updates in the Broyden class, Numer. Math. 39, 429—448. (1982с) On the unconstrained optimization of partially separable functions, in Nonlinear Optimization, ed. by Powell M. J. D. Academic Press, London. Гринстадт (Greenstadt J. L.) (1970) Variations on variable-metric methods, Math. Сотр. 24, 1—22. Гэй (Gay D. M.) (1979) Some convergence properties ol' Broyden's method, SIAM J. Numer. Anal., 16, 623—630. (1981) Computing optimal locally constrained steps, SIAM J. Sci. Stat. Сотр. 2, 186—197. Гэй, Шнабель (Gay D. M., Schnabel R. B.) (1978) Solving systems of nonlinear equations by Broyden's method with projected updates, in Nonlinear Programming 3, ed. by Mangasarian 0., Meyer R., Robinson S., Academic Press, New York, 254—281. Дальквист, Бьёрк, Андерсон (Dahlquist G., Bjorck A., Anderson N.) (1974) Numerical Methods, Prentice-Hall, Englewood Cliffs, N. J. Дембо, Айзенштат, Штанхауг (Dembo R. S., Eisenstat S. C., Steihaug T.) (1982) Inexact Newton methods, SIAM J. Numer. Anal. 19, 400—408. Джонсон, Остриа (Johnson G. W., Austria N. H.) (1983) A quasi-Newton method employing direct secant updates of matrix factorizations, SIAM J. Numer. Anal. 20, 315—325. Диксон (Dixon L. С. W.) (1972a) Quasi-Newton family generate identical points, Parts I and II, Math. Prog. 2, 383—387, 2nd Math. Prog. 3, 345—358. (1972b) The choice of step length, a crucial factor in the performance of variable metric algorithms, in Numerical Methods for Non-linear Optimi- zation, ed. by Lootsma F., Academic Press, New York, 149—170. Диксон, Cere (Dixon L. C. W., Szego G. P.) (1975, 1978) Towards Global Optimization, Vols. 1, 2, North-Holland, Amsterdam. Донгарра, Банч, Моулер, Стюарт (Dongarra J. J., Bunch J. R., Moler С. В.,Stewart G. W.) (1979) LINPACK Users Guide, SIAM Publications, Philadelphia. Дэвидон (Davidon W. C.) (1959) Variable metric methods for minimization, Argonne National Labs Report ANL-5990. (1975) Optimally conditioned optimization algorithms without line sear- ches, Math. Prog. 9, 1—30. Дэннис (Dennis J. E., Jr.) (1971) Toward a unified convergence theory for Newton-like methods, in Nonlinear Functional Analysis and Applications, ed. by Rail L. В., Aca- demic Press, New York, 425—472. (1977) Nonlinear least squares and equations, in The State of the Art in Numerical Analysis, ed. by Jacobs D., Academic Press, London, 269—312. (1978) A brief introduction to quasi-Newton methods, in Numerical Ana- lysis, ed. by Golub G. H., Oliger J., AMS, Providence, R. I., 19—52. Дэннис, Гэй, Уэлш (Dennis J. E., Jr., Gay D. M., Welsch R. E.) (1981a) An adaptive nonlinear least-squares algorithm, TOMS 7, 348—368. (1981b) Algorithm 573 NL2SOL—An adaptive nonlinear least-squares al- gorithm [E4], TOMS 7, 369—383. Дэннис, Марвил (Dennis J. E., Jr., Marwil E. S.) (1982) Direct secant updates of matrix factorizations. Math. Сотр. 38, 459—474. Дэинис, Мей (Dennis J. E., Jr., Mei H. H. W.) (1979) Two new unconstrained optimization algorithms which use function and gradient values, J. Optim. Theory Appl. 28- 453—482. 428 Литература Дэниис, Мора (Dennis J. E., Jr., More J. J.) (1974) A characterization of superlinear convergence and its application to quasi-Newton methods. Math. Сотр. 28, 549—560. (1977) Quasi-Newton methods, motivation and theory, SIAM Review 19, 46—89. Дэинис, Тапиа (Dennis J. E., Jr., Tapia R. A.) (1976) Supplementary terminology for nonlinear iterative methods, SIGNUM Newsletter 11:4, 4—6. Дэннис, Уолкер (Dennis J. E., Jr., Walker H. F.) (1981) Convergence theorems for least-change secant update methods, SIAM J. Numer, Anal. 18, 949—987, 19, 443. (1983) Sparse secant update methods for problems with almost sparse Ja- cobians, in preparation. Дэннис, Шнабель (Dennis J. E., Jr., Schnabel R. B.) (1979) Least change secant updates for quasi-Newton methods, SIAM Review 21, 443—459. Зирилли (Zirilli F.) (1982) The solution of nonlinear systems of equations by second order systems of o. d. e. and linearly implicit A-stable techniques, SIAM J. Numer. Anal. 19, 800—815. Канторович Л. В. (1948) Функциональный анализ и прикладная математика. УМН 3, No. 6, 89—185. Кауфман (Kaufman L. С.) (1975) A variable projection method for solving separable nonlinear least squares problems, BIT 15, 49—57. Клайн, Моулер, Стюарт, Уилкинсон (Cline А. К., Moler С. В., Stewart G. W., Wilkinson J. H.) (1979) An estimate for the condition number of a matrix, SIAM. J. Numer. Anal. 16, 368—375. Конт, де Бур (Conte S. D., de Boor С.) (1980) Elementary Numerical Analysis: An Algorithmic Approach, 3d ed., McGraw-Hill, New York. Коулман, Морэ (Coleman Т. F., More J. J.) (1982) Estimation of sparse Hessian matrices and graph coloring problems, Argonne National Labs, Math.-C. S. Div. TM-4. (1983) Estimation of sparse Jacobian matrices and graph coloring prob- lems, SIAM J. Numer. Anal. 20, 187—209. Куртис, Пауэлл, Райд (Curtis A., Powell M. J. D., Reid J. К.) (1974) On the estimation of sparse Jacobian matrices, J. I. M. A. 13, 117—120. Левенберг (Levenberg К.) (1944) A method for solution of certain problems in least squares, Quart. Appl. Math. 2, 164—168. Лоусон, Хенсон, Кинкейд, Крог (Lawsou С. L., Hanson R. J., Kincaid D. R., Krogh F. Т.) (1979) Basic linear algebra subprograms for Fortran usage, ACM TOMS 5, 308—323. , Марвил (Marwil E. S.) (1978) Exploiting sparsity in Newton-type methods, Cornell Applied Math. Ph. D. Thesis. (1979) Convergence results for Schubert's method for solving sparse non- linear equations, SIAM J. Numer. Anal. 16, 588—604. Маркварт (Marquardt D.) (1963) An algorithm for least-squares estimation of nonlinear parameters SIAM J. Appl. Math. 11, 431—441. Морэ (More J. J.) (1977) The Levenberg—Marquardt algorithm: implementation and theory, in Numerical Analysis, ed. by Watson G. A., Lecture Notes in Math. 630' Springer-Verlag, Berlin, 105—116. Литература 429 Морэ, Гарбов, Хиллстром (More J. J., Garbow В. S., Hillstrom К. E.) (1980) User guide for MINPACK-1, Argonne National Labs Report ANL-80-74. (1981a) Testing unconstrained optimization software, TOMS 7, 17—41. (1981b) Fortran subroutines for testing unconstrained optimization soft- ware, TOMS 7 136—140. Морэ, Сорснсен (More J. J., Sorensen D. C.) (1979) On the use of directions of negative curvature in a modified Newton method, Math. Prog. 16, 1—20. Мюррей (Murray W.) (1972) Numerical Methods for Unconstrained Optimization. Academic Press, London. Мюррей, Овертон (Murray W., Overton M. L.) (1980) A projected Ligrangian algorithm for nonlinear minimax optimi- zation, SIAM J. Sci. Statist. Comput. 1, 345—370. (1981) A projected Lagrangian algorithm for nonlinear li optimization, SIAM J. Sci. Statist. Comput. 2. 207—224. Нелдер, Мид (Nelder J. A., Mead R.) (1965) A simplex method for function minimization, Comput. J. 7, 308— 01 Q Орен (Oren S. S.) (1974) On the selection of the parameters in self-scaling variable metric algorithms, Math. Prog. 7, 351—367. Ортега, Рейнболдт (Ortega J. M., Rheinboldt W. C.) (1970) Iterative Solution of Nonlinear Equations in Several Variables. Academic Press, New York. [Имеется перевод: Ортега Дж., Рейнболдт В. Итерационные методы решения нелинейных систем уравнений со мно- гими неизвестными.—M.: Мир, 1975.] Осборн (Osborne M. R.) (1976) Nonlinear least squares—the Levenberg algorithm revisited, J. Austral. Math. Soc. 19 (Series B), 343—357. Пауэлл (Powell M. J. D.) (1970a) A hybrid method for nonlinear equations, in Numerical Methods for Nonlinear Algebraic Equations, ed. by Rabinowitz P., Gordon and Breach, London, 87—114. (1970b) A new algorithm for unconstrained optimization, in Nonlinear Programming, ed. by Rosen J. В., Mangasarian 0. L. and Ritter K., Aca- demic Press, New York, 31—65. (1975) Convergence properties of a class of minimization algorithms, in Nonlinear Programming 2, ed by Mangasarian 0. L., Meyer R. and Robinson S., Academic Press, New York, 1—27. (1976) Some global convergence properties of variable metric algo- rithm without exact line searches, in Nonlinear Programming, ed. by Cottle R. and Lemke C., AMS, Providence, R. I;, 53—72. (1981) A note on quasi-Newton formulae for sparse second derivative matrices, Math. Prog. 20, 144—151. Пауэлл, Тоинт (Powell M. J. D., Toint Ph. L.) (1979) On the estimation of sparse Hessian matrices, SIAM J. Numer. Anal. 16, 1060—1074. Пратт (Pratt J. W.) (1977) When to stop a quasi-Newton search for a maximum likelihood estimate, Harvard School of Business WP 77—16. Райд (Reid J. K.) (1973) Least squares solution of sparse systems of non-linear equations by a modified Marquardt algorithm, in Proc. NATO Conf. at Cam- bridge, July 1972, North-Holland, Amsterdam, 437—445. Райнш (Reinsch C.) (1971) Smoothing by spline functions, II, Numer. Math. 16, 451—454. 430 Литература Соренсен (Sorensen D. С.) (1977) Updating the symmetric indefinite factorization with applications in a modified Newton's method, PH. D. Thesis, U. C. San Diego, Argonne National Labs Report ANL-77-49. (1982) Newton's method with a model trust region modification, SIAM J. Numer; Anal. 19, 409—426. Стренг (Strang G.) (1976) Linear Algebra and Its Applications, Academic Press, New York. [Имеется перевод: Стренг Г. Линейная алгебра и ее приложения. — М.: Мир, 1980.] Стюарт (Stewart G. W., Ill) (1967) A modification of Davidon's method to accept difference ap- proximations of derivatives, J. ACM 14, 72—83. (1973) Introduction to Matrix Computations, Academic Press, New York. Тоиит (Toint Ph. L.) (1977) On sparse and symmetric matrix updating subject to a linear equation, Math. Сотр. 31, 954—961. (1978) Some numerical results using a sparse matrix updating formula in unconstrained optimization, Math. Сотр. 32, 839—851. (1981) A sparse quasi-Newton update derived variationally with a non- diagonally weighted Frobenius norm, Math. Сотр. 37, 425—434. Уилкинсон (Wilkinson J. H.) (1963) Rounding Errors in Algebraic Processes, Prentice-Hall, Engle- wood Cliffs, N. J. (1965) The Algebraic Eigenvalue Problem, Oxford University Press London. [Имеется перевод: Уилкинсон Дж. Алгебраическая проблема собственных значении.—М.: Наука, 1970.] Флетчер (Fletcher R.) (1970) A new approach to variable metric algorithms, Comput. J. 13, 317—322. (1980) Practical Methods of Optimization, Vol. 1, Unconstrained Opti- mization, John Wiley & Sons, New York. Флетчер, Пауэлл (Fletcher R., Powell M. J. D.) (1963) A rapidly convergent descent method for minimization, Comput. J. 6, 163—168. Форд (Ford В.) (1978) Parameters for the environment for transportable numerical software, TOMS 4, 100—103. Фосдик (Fosdick L. ed.) (1979) Performance Evaluation of Numerical Software, North-Holland, Amsterdam. Франк, Шнабель (Frank P., Schnabel 1?. В.) (1982) Calculation of the initial Hessian approximation in secant al- gorithms, in preparation. Хайберт (Hiebert K. L.) (1982) An evaluation of mathematical software that solves systems of nonlinear equations, TOMS 8, 5—20, Хебден (Hebden M. D.) (1973) An algorithm for minimization using exact second derivatives, Rept. TP515, A.E.R.E., Harwell, England. Хемминг (Hamming R. W.) (1973) Numerical Methods for Scientists and Engineers, 2 ed., McGraw- Hill, New York. [Имеется перевод первого издания: Хемминг Р. В. Численные методы для научных работников и инженеров. — М.: Нау- ка, 1979.] Хестенс (Hestenes M. R.) (1980) Conjugate-direction Methods in Optimization, Springer Verlag, New York. Литература 431 Хьюбер (Huber P. J.) (1973) Robust regression: asvmptotics, conjectures, and Monte Carlo, Anals of Statistics 1, 799—821. ' (1981) Robust Statistics, John Wiley & Sons, New York. [Имеется перевод: Хьюбер Дж. П. Робастность в статистике.—М.: Мир, 1984.] Шанно (Schanno D. F.) (1970) Conditioning of quasi-Newton methods for function minimization, Math. Сотр. 24, 647—657. (1978) Conjugate-gradient methods with inexact searches, Math. of Oper. Res. 3, 244—256. (1980) On the variable metric methods for sparse Hessians, Math. Сотр. 34, 499—514. Шанно, Фуа (Schanno D. F., Phua К. H.) (1978a) Matrix conditioning and nonlinear optimization, Math. Prog. 14, 145—160. (1978b) Numerical comparison of several variable metric algorithms, J. Optim. Theory Appl. 25, 507—518. Шнабель (Schnabel R. В.) (1977) Analysing and improving quasi-Newton methods for unconstrai- ned optimization, Ph. D. Thesis, Cornell Computer Science TR-77-320. (1982) Convergence of quasi-Newton updates to correct derivative values, in preparation; Шнабель, Вайс, Кунц (Schnabel R. В., Weiss В. E., Koontz J. E.) (1982) A modular system of algorithms for unconstrained minimization, Univ. Colorado Computer Science, TR CU-CS-240-82. Штайхауг (Steihaug T.) (1981) Quasi-Newton methods for large scale nonlinear problems, Ph. D. Thesis, Yale University. Шуберт (Schubert L. K.) (1970) Modification of a quasi-Newton method for nonlinear equations with a sparse Jacobian, Math. Сотр. 24, 27—30. Шульц, Шнабель, Бирд (Shultz G. A„ Schnabel R. В., Byrd R. H.) (1982) A family of trust region based algorithms for unconstrained minimization with strong global convergence properties, Univ. Colorado Computer Science TR CU-CS-216-82. Добавлено при переводе Бахвалов H. С., Жидков H. П., Кобельков Г. М. (1987) Численные методы: учебное пособие для вузов.—М.: Наука. Васильев Ф. П. (1980) Численные методы решения экстремальных задач.—М.: Наука. Евтушенко Ю. Г. (1982) Методы решения экстремальных задач и их применение в си- стемах оптимизации.—М.: Наука. Марчук Г. И., Лебедев В. И. (1971) Численные методы теории переноса нейтронов. — М.: Атомиздат. Михалевич В. С., Гупал А. М., Норкин В. И. (1987) Методы невыпуклой оптимизации.—М.: Наука. Поляк Б. Т. (1983) Введение в оптимизацию. — М.: Наука. Пшеничный Б. H., Данилин Ю. М. (1975) Численные методы в экстремальных задачах.—М.: Наука. Самарский А. А., Николаев E. С. (1978) Методы решения сеточных уравнений.—М.: Наука. Сухарев А. Г., Тимохов А. В., Федоров В. В. (1986) Курс методов оптимизации.—М.: Наука. ИМЕННОЙ УКАЗАТЕЛЬ Авриель (Avriel M.) 10, 29 Айзенштат (Eisenstat S. С.) 292 Алговер (Allgower E.) 11, 17, 186 Андерсон (Anderson N.) 29 Армийо (Armijo L.) 148 Асен (Aasen J. О.) 70 Axo (Aho A. U.) 26 Бакли (Buckley A. G.) 292 Банч (Bunch J. R.) 70, 71, 88 Бард (Bard Y.) 260, 279 Барнес (Barnes J.) 228 Бартелс (Bartels R.) 279 Бейтс (Bates D. M.) 279 Бил (Beale E. M. L.) 23 Бирд (Byrd R. H.) 7, 8, 189 Битон (Beaton A. E.) 280 Боггс (Boggs P. Т.) 134 Брайян (Bryan С. А.) 136 Брент (Brent R. P.) 29 Бродли (Brodlie К. W.) 242 Бройден (Broyden С. О.) 207, 211, 213, 235, 240, 246, 254, 255, 291 Бур, де (de Boor С.) 29 Бьёрк (Bjorck A.) 29 Вайс (Weiss В. E.) 198, 315, 317 Вандерграфт (Vandergraft J. S.) 316 Ван Лоан (Van Loan С.) 58, 71,292 Вольф (Wolfe P.) 149, 150 Гандер (Gander W.) 167 Гарбов (Garbow В. S.) 199, 422 Гарфинкель (Garfinkel R. S.) 23 Гнлл (Gill P. E.) 10, 79, 128, 226, 292, 334, 360, 362 Голдстейн (Goldstein A. A.) 148 Голдфарб (Goldfarb D.) 79, 240 Голдфельд (Goldfeldt S. M.) 165 Голуб (Golub G. H.) 58, 71, 79, 278, 282, 283, 292 Гриванк (Griewank A. 0.) 292, 306 Гринстадт (Greenstadt J. L.) 236 Гэй (Gay D. M.) 7, 164, 171, 223, 228, 231, 275, 278, 283, 307 Дальквист (Dahlquist G.) 29 Дембо (Dembo R. S.) 292 Джонсон (Johnson G. W.) 307 Джордж (Georg К.) 11, 17, 186 Диксон (Dixon L. С. W.) 17, 242 Донгарра (Dongarra J. J.) 71, 88 Дэвидон (Davidon W. С.) 242, 254 Дэннис (Dennis J. E., Jr.) 11, 118, 134, 152, 174. 203, 211, 213, 217, 234, 235, 246, 254, 255, 275, 278, 283, 293, 297, 299, 305, 306, 307 Зирилли (Zirilli F.) 186 Канторович Л. В. 116 Кауфман (Kaufman L. С.) 278 Кинкейд (Kinkeid D. R.) 324 Клайн (Cline А. К.) 75, 368, 369 Конн (Conn A.) 279 Конт (Conte S. D.) 29 Коулман (Coleman Т. F.) 287, 288 Крог (Krogh F. T.) 324 Куанд (Quandt R. E.) 165 Кунц (Koontz J. E.) 198, 315, 317 Куртис (Curtis A.) 285, 287 Левенберг (Levenberg К.) 165 Лоусон (Lawson С. L.) 324 Марвил (Marwil E. S.) 291 Маркварт (Marquardt D.) 165 Мей (Mei H. H. W.) 174 Морэ (More J. J.) 7, 127, 152, 167, 169, 199, 203, 211, 213, 217, 224, 234, 235, 246, 254, 255, 271, 283, 287, 288, 422 Моулер (Moler С. В.) 71, 75, 88, 36S, 369 434 Именной указатель Немхаусер (Nemhauser G. L.) 23 Носедал (Nocedal) 8 Овертон (Overton M. L.) 279 Орен (Oren S. S.) 250 Ортега (Ortega J. M.) 36, 92, 116 Осборн (Osborne M. R.) 271 Остриа (Austria N. H.) 307 Парлетт (Parlett B. N.) 70 Пауэлл (Powell M. J. D.) 7, 180, 242, 252, 271, 285, 287, 288, 305, 306 Перейра (Pereyra V.) 278, 282, 283 Пратт (Pratt J. W.) 278 Райд (Reid J. К.) 285, 287, 291 Раинш (Reinsch С.) 168 Райт (Wright M. H.) 10, 128, 292, 334, 360, 362 Рейнболдт (Rheinboldt W. С.) 36, 92 116 Cere (Szego G. P.) 17 Сондерс (Saunders M. A.) 79 Соренсен (Sorensen D. С.) 7, 127,171 Стренг (Strang G.) 58, 71 Стюарт (Stewart G. W., Ill) 58, 75, 88, 134, 283, 363, 364, 368, 369 Тапиа (Tapia R. A.) 203 Тоинт (Toint Ph. L.) 288, 291, 292, 305 Троттер (Trotter H. F.) 165 Тьюки (Tukey J. W.) 280 Уилкинсон (Wilkinson J. H.) 24, 58, 73, 75, 368, 369 Ульман (Ullman J. D.) 26 Уолкер (Walker H. F.) 211, 275, 299, 305, 306 Уотс (Watts D. G.) 279 Уэлш (Welsch R. E.) 275, 278, 283 307 Флетчер (Fletcher R.) 165, 203, 240 242, 253, 292 Форд (Ford В.) 28 Фосдик (Fosdick L., ed.) 200 Фуа (Phua К. Н.) 250, 254 Хайберт (Hiebert К. L.) 422 Хебден (Hebden M. D.) 167 Хемминг (Hamming R. W.) 334, 359, 362 Хенсон (Hanson R. J.) 324 Хестенс (Hestenes M. R.) 292 Хиллстром (Hillstrom К. Е.) 199 224 422 Хопкрофт (Hopcroft J. E.) 26 Хьюбер (Huber P. J.) 279, 280 Шанно (Schanno D. F.) 240 250, 254 291, 292 Шнабель (Schnabel R. В.) 7, 189 198, 228, 231, 235, 248, 254 293 297, 306, 315, 317 Штайхауг (Steihaug T.) 189, 292 Шуберт (Schubert L. К.) 291 Шульц (Shultz G. A.) 7, 189 Ян (Yuan) 8 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Алгоритм гибридный (hybrid algo- rithm) 42 • — Голуба — Перейры (Golub—Perey- ra) 282 Алгоритмы квазиньютоновские (qua- si-Newton) 139 Антипереполнение (underflow) 26 Аппроксимация конечно-разностная (finit-difference) 45 — с помощью секущей (secant ap- proximation) 44, 203 Вращение Якоби (Jacobi rotation) 76 Гессиан (Hessian) 92 Градиент (gradient) 92 Дифференцируемость по Гато (Ga- teaux differentiability) 107 — — Фреше (Frechet) 107 Дробление ньютоновского шага (back- tracking from the Newton step) 41 Задача безусловной минимизации (unconstrained minimization prob- lem) 15 — нелинейная о наименьших квадра- тах (nonlinear least-squares) 16, 19 — о минимальных поправках (least- change) 288 Исчезновение порядка см. Антипере- полнение Константа Липшица (Lipschitz con- stant) 98 Мажоризация (maJorization) 118 Масштабы (scales) 190 Матриц разложения (matrix factori- zations) 65 Матрица вращения (rotation matrix) 76 — Гессе см. Гессиан — незнакоопределенная (indefinite) 80 — отрицательно определенная (nega- tive definite) 80 — — полуопределенная (negative se- midefinite) 80 — положительно определенная (po- sitive definite) 80 — — полуопределенная (positive se- midefinite) 80 — со строго доминирующей диаго- налью (strictly diagonally domi- nant) 81 — Якобу см. Якобиан Матрицы сингулярное разложение (singular value decomposition) 85 — сингулярные числа (singular va- lues) 85 — собственные векторы (eigenvec- tors) 80 — — значения (eigenvalues) 80 — число обусловленности (condition number) 73 Машинный эпсилон (machine epsi- lon, macheps) 26 Метод Гаусса — Ньютона (Gauss — Newton method) 263 — — — демпфированный (damped) 269 — глобальный (global) 16 — деления пополам (bisection) 40 — локальный (local) 16 — итеративный локально сходящийся (iterative locally convergent) 36 — Левенберга—Маркварта. (Leven- berg—Marquardt) 270 — Ньютона — Рафсона (Newton — 436 Предметный указатель Raphson) 32, 39 — — сходимость (convergence) 36 — секущих (secant) 45, 203, 209 — — обратно положительно опреде- ленный (inverse positive definite) 242 — — положительно определенный (positive definite) 241 — сопряженных градиентов (conjuga- te gradient) 292 Методы спуска (descent) 105 Минимум глобальный (global mini- mizer) 17, 50 — локальный (local) 17, 50 Модель аффинная (affine model) 32 Модель—доверительная область (mo- del—trust region) 161 — локальная (local model) 32 Модульная система алгоритмов (mo- dular system of algorithms) 314 Направление спуска (descent dire- ction) 141 — — наискорейшего (steepest-des- cent) 142 Норма (norm) 59 — евклидова см. Норма наименьших квадратов — матричная (matrix) 61 — наименьших абсолютных разно- стей (least absolut residual) 60 — — квадратов (least-squares) 60 — Чебышёва 60 Область доверительная (trust region) 161 Оператор матричного проектирования (matrix projector operator) 289 — множественного ветвления (mul- tiple branch statement) 320 Ортогональная матрица (orthogonal matrix) 65 Ортогональные векторы (orthogonal vectors) 65 Ортонормальная система векторов (orthonormal set) 65 Ошибка округления (round-off error) 25 — — абсолютная (absolute) 25 — — относительная (relative) 25 Перемасштабирование (rescaling) 190 Переполнение (overflow) 26 Поиск линейный (line search) 145 — — идеальный (perfect) 187 Последовательность сходящаяся (con- vergent sequence) 34 — — с (у-порядком, по меньшей мере равным р (<7-oder at least p) 35 — — у-шагово <7-сверхлинейно (/-step ^-superlinearly) 35 — 9-линейно сходящаяся (i/'linearly) 34 — 9-сверхлинейно сходящаяся (q-su- perlinearly) 35 Представление с плавающей точкой (floating-point representation) 24 Представления точность (precision) 24 Производная по направлению (direc- tional derivative) 93 Система нелинейных уравнений (si- multaneous nonlinear equations) 14 Системы плохо обусловленные (ill- conditioned systems) 72 Скалярное произведение (inner pro- duct) 64 Скорость сходимости ^квадратичная (^-quadratic convergence) 35 — — ^-кубическая ((/-cubic) 35 След матрицы (trace of matrix) 63 Уравнения нормальные (normal equa- tions) 84 Ухудшение ограниченное (bounded deterioration) 213 Формула Дэвидона — Флетчера — Пауэлла (Davidon — Fletcher — Ро- well update) 242 — Ньютона — Лейбница 33 — пересчета Бройдена (Broyden's up- date) 207 — — симметричная одноранговая (symmetric rank-one (SRI)) 253 — проекционная и оптимально обус- ловленная (projected and optimally conditioned) 254 — секущих см. Формула пересчета Бройдена — — положительно определенная (positive definite secant update) 240 — — разреженная (sparse) 290 — — с минимальными поправками (least-change) 293 — — симметричная Пауэлла — Брой- дена (Powell-symmetric-Broyden, PSB) 234 — Шермана — Моррисона — Вудбери (Sherman — Morrison — Woodbury) 225 Функция Вуда (Wood's function) 424 — итерационная сжимающая (contra- ctive iteration) 119 — невязки (residual) 259 Предметный указатель 437 — непрерывная по Липшицу (Lipschitz continuous) 36, 98 — непрерывно дифференцируемая (continuously differentiable) 92 — — — в открытой области (open region) 93 — — — дважды (twice) 94 — Пауэлла обобщенная вырожденная (extended Powell singular) 423 — Розенброка (Rosenbrock) 193 — — расширенная (extended) 423 — типа спиралевидного желоба (he- lical valley) 424 — тригонометрическая 423 Хаусхолдера преобразование (Hous- holder transformation) 69 Холесского разложение (Cholesky decomposition) 70 Шаг криволинейный (hook step) 170 — с двойным изломом (double dog- leg) 171 Шага длина (length) 160 — — минимальная (minstep) 159 — направление (direction) 160 Якобиан (Jacobian) 96 BFGSFAC 418 BFGSUNFAC 416 BFGS-формула см. Формула секущих положительно определенная BROYFAC 415 BROYUNFAC 414 CDGRAD 382 CHOLDECOMP 377 CHOLSOLVE 366 CONDEST 368 DFP-формула см. Формула Дэвидо- на — Флетчера — Пауэлла . DOGDRIVER 395 DOGSTEP 396 FDGRAD 381 FDHESSF 380 FDHESSG 379 FDJAC 373 FN 355 FOR 320 FVEC 357 GRAD 355 — HESS 356 HOOKDRIVER 390 HOOKSTEP 392 IF-THEN 319 IF-THEN-ELSE 320 1NITHESSFAC 421 INITHESSUNFAC 420 JAC 357 JACROTATE 371 LINESEARCH 384 LINESEARCHMOD 387 LSOLVE 367 LTSOLVE 368 <1-норма см. Норма наименьших аб- солютных разностей <г-норма см. Норма евклидова Zp-норма (Ip-norm) 60 /оо-норма см. sup-норма MACHINEPS 363 MODELHESS 374 NEDRIVER 341 NEEXAMPLE 353 NEFN 362 NEINCK 360 NEMODEL 402 NEMODELFAC 405 NESTOP 411 NESTOPO 413 NP-полнота (NP-completeness) 287 (PLU decomposi PLU-разложение tion) 69 QFORM 372 QRDECOMP 363 QRP-разложение (QRP decomposi- tion) 69 QRSOLVE 365 QRUPDATE 370 QR-разложение (QR decomposition) 69 REPEAT 321 RSOLVE 366 SRI-формула см. Формула пересче- та симметричная одноранговая sup-норма 60 TRUSTREGUP 398 UMDRIVER 325 UMEXAMPLE 329 UMINCK 358 UMSTOP 408 UMSTOPO 409 WHILE 321 Научное издание Джон Дэннис, мл., Роберт Шнабель ЧИСЛЕННЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ И РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ Заведующий редакцией доктор физ.-мат. наук, профессор [ Б. В. Шабат | Зам. заведующего редакцией А. С. Попов '————————— Ст. науч. редактор И. А. Маховая Мл. редактор Т. Ю. Дехтярева Художник В. А. Медников Худ. редактор В. И. Шаповалов Технический редактор Е. Н. Прохорова Корректор С. А. Денисова ИВ № 6285 Сдано в набор 24.06.87. Подписано к печати 22.03.88. Формат 60Х90/16. Бумага типограф- ская № 2. Печать высокая. Гарнитура литературная. Объем 13,75 бум. л. Усл. печ. л. 27,50. Усл. кр.-отт. 27,50. Уч.-изд. л. 26,20. Изд. № 1/5470 Тираж 14000 экз. Зак. 954Цена^2р. 10 к. ИЗДАТЕЛЬСТВО «МИР» 129820, ГСП, Москва, И-110, 1-й Рижский пер., 2 Отпечатано с набора Ленинградской типографии № 2 головного предприятия ордена Трудового Красного Знамени Ленинградского объединения техническая книга» им. Евгении Соколовой Союзполиграфпрома при Государственном комитете СССР по де- лам издательств, полиграфии и книжной торговли. 198052, г. Ленинград, Л-52, Измай- ловский проспект, 29, в Ленинградской типографии №. 4 ордена Трудового Красного Знамени Ленинградского объединения «Техническая книга» им. Евгении Соколовой Со- юзполиграфпрома при Государственном комитете СССР по делам издательств, поли- графии и книжной торговли, 191126, Ленинград, Социалистическая ул., 14.