Текст
                    ДЖ ОРТЕГА, У. ПУЛ
ВВЕДЕНИЕ
В ЧИСЛЕННЫЕ МЕТОДЫ
ДИФФЕРЕНЦИАЛЬНЫХ
УРАВНЕНИЙ
Перевод с английского Н.Б. Конюховой
Под редакцией Л.Л. Абрамова
МОСКВА "НАУКА"
ГЛАВНАЯ РЕДАКЦИЯ
ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ
1986

ББК 22.19 0-63 УДК 519.6 An Introduction to Numerical Method* for Differential Equation* James M. Ortega William G. Poole, Jr. Pitman Publishing Inc. . Ортега Дж., Пуп У. Введение в численные методы решения диф- ференциальных уравнений/Пер. с англ.; Под ред. АЛ. Абрамова. — М.: Наука. Гл. ред. физ.-мат. лит.» 1986. — 288 с. Табл. 13. Ил. 76. Бибпиогр. 111 назв.. Дж. Ортега, У. Пул ВВЕДЕНИЕ В ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ Редактор ТЛ. Галишникова Художественный редактор ГМ. Коровина Технические редакторы С.В. Геворкян, BJf. Никитина Корректоры НМ. Кузьмина, ТВ. Овод Набор осуществлен в издательстве ианаборно-печапаощих автоматах ИБ И* 12419 Сдано в набор 31.03.86. Подписано к печати 17.07.86 Формат 60 X 90 1/16. Бумага офсетная Гарнитура Пресс-Роман. Печать офсетная Усллсял. 18,0. Усл.кр.-отт. 18,0. Уч.-нздл. 19,95 Переж 16500акз.Тип.зек 168 .Цеп 1р.80к. Ордена Трудового Красного Знамени издательство ’Наука” Главная редакция физико-математической литературы 117071 Москва В-71, Ленинский едоспект, 15 4-я типография издательства "Наука" 630077 г. Новосибщхж-37, ул. Станиславского, 25 с 1702070000-140 О53(О2)-86 19-86 С1981, James М. Ortega and William G. Poole, Jr. © Перевод на русский язык. Издательство "Наука?’. Главна* редакция физико-математической литературы, 1986
ОГЛАВЛЕНИЕ ПРЕДИСЛОВИЕ...................................................... 5 Глава 1. МИР НАУЧНОГО ПРОГРАММИРОВАНИЯ............................ 8 1.1. Что такое научное программирование........................ 8 1.2. Математическое моделирование............................. 10 1.3. Процесс мюленного решения................................ 13 1.4. Влияние информатики на научное программирование.......... 18 Глава 2. ЗАДАЧА КОМИ ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ........................................................ 27 2.1. Примеры задачи Коши...................................... 27 2.2. Численное решение: одношаговые методы.................... 32 2.3. Полиномиальная интерполяция............................. 44 2.4. Численное решение: многошаговые методы................... 51 23. Устойшвость, неустойчивость и жесткие уравнения.......... 58 Глава 3. ЗАКРЕПЛЕНИЕ НА ОБОИХ КОНЦАХ: ДВУХТОЧЕЧНЫЕ КРАЕ- ВЫЕ ЗАДАЧИ.................................................. . 67 3.1. Задача диффузии.......................................... 67 3.2. Метод конедаых разностей для линейных задач.............. 71 3.3. Решение систем линейных уравнений........................ 80 3.4. Перестановки............................................. 90 33. Плохая обусловленность и анализ ошибок................... 98 Глава 4. ЖИЗНЬ, В ДЕЙСТВИТЕЛЬНОСТИ, НЕЛИНЕЙНА................... 111 4.1. Решение методом стрельбы................................ 111 4.2. Решение нелинейных уравнений с одним неизвестным........ 115 4.3. Решение систем нелинейных уравнений. . . . ............. 126 4.4. Конечно-разностные методы для нелинейных краевых задач.. 132 Глава 5. ЕСТЬ ЛИ ЧТО-НИБУДЬ ЕЦЕ, КРОМЕ КОНЕЧНЫХ РАЗНОСТЕЙ? 138 5.1. Введение в проекционные методы.......................... 138 5.2. Аппроксимация сплайнами и метод наименьших квадратов.... 145 5.3. Численное интегрирование................................ 160 5.4. Дискретные задачи, использующие сплайны................. 168 Глава 6. И ВАЖНЫХ ЧИСЕЛ: ВЫЧИСЛЕНИЕ СОБСТВЕННЫХ ЗНАЧЕНИЙ 177 6.1. Примеры задач на собственные значения и необходимые математичес- кие сведения.................................................. 177 6.2. Проблема собственных значений для симметричных матриц... 189 6.3. ДО-алгоритм........................................... 200 6.4. Методы для больших разреженных матриц................... 209 Глава 7. ПРОСТРАНСТВО И ВРЕМЯ................................... 215 7.1. Уравнения в частных производных ........................ 213 7.2. Явные методы и проблема у стойте оста. . ............... 221
7.3. Неявные методы........................................ 231 7.4. Полудискретные методы................................... 235 Глава 8. ПРОКЛЯТИЕ РАЗМЕРНОСТИ.................................. 241 8.1. Задачи с двумя и тремя пространственными переменными.... 241 8.2. Дискретизация двумерных задач........................... 245 8.3. Прямые методы для больших разреженных систем . . ...... 252 8.4. Итерационные методы..................................... 263 ПРИЛОЖЕНИЯ...................................................... 276 1. Необходимые сведения нз анализа.......................... 276 2. Обыкновенные дифференциальные уравнения.................. 278 3- Линейная алгебра и теория матриц......................... 280 СПИСОК ЛИТЕРАТУРЫ............................................... 285
ПРЕДИСЛОВИЕ Необходимость решения дифференциальных уравнений явилась одним из первоначальных и основных мотивов для развития как аналоговых, так и цифровых вычислительных машин. Численное решение таких задач и сейчас поглощает значительную часть машинного времени, предоставляе- мого современными ЭВМ. Цель этой книги — познакомить читателя с чис- ленными методами решения как обыкновенных дифференциальных урав- нений, так и уравнений в частных производных, хотя в основном мы со- средоточиваем наше внимание на обыкновенных дифференциальных урав- нениях и особенно на решении краевых задач для таких уравнений. Во второй главе мы рассматриваем задачу Коши для обыкновенных дифференциальных уравнений. В гл. 3 и 4 рассматриваются конечно-раз- ностные методы решения соответственно линейных и нелинейных двухто- чечных краевых задач. В гл. 5 описываются методы Галеркина и коллока- ции. В гл. 6 рассматриваются задачи на собственные значения, а в гл. 7 и 8 — начальные и краевые задачи для дифференциальных уравнений в частных производных. Мы предполагаем, что в качестве минимальной подготовки читатель прослушал начальный курс программирования для ЭВМ, включающий некоторые элементарные методы численного интегрирования, аппрокси- мации функций и т.д. Также предполагаем, что читатель прочно владеет основами математического анализа и линейной алгебры и знает начальный курс дифференциальных уравнений. Некоторые необходимые нам основ- ные факты из этих областей собраны в приложениях, а подготовительный материал излагается непосредственно в тексте. Для полного изучения книги студентам с указанным минимальным уровнем подготовки потребу- ется целый год; однако, если исключить некоторые темы, материал книги легко использовать для семестрового или даже полусеместрового курса. Решение дифференциальных уравнений требует знания различных облас- тей численного анализа. Так, например, решение линейных краевых задач конечно-разностными или проекционными методами в конечном счете сво- дится к решению системы линейных алгебраических уравнений и независи- мое изложение этой темы приводится в гл. 3, там, где впервые появляется в этом необходимость. Если же дифференциальное уравнение оказывается нелинейным, то и возникающие при этом алгебраические уравнения также оказываются нелинейными и методы решения одного нелинейного уравне- ния и систем нелинейных уравнений разбираются в гл. 4. Аналогично, ап- проксимация полиномами, сплайнами и по методу наименьших квадратов излагается там, где появляется необходимость в такой аппроксимации как 5
средстве решения дифференциальных уравнений. Те студенты, которые прослушали семестровый курс численных методов, могут использовать значительную часть этого материала как обзорную и сосредоточиться не- посредственно на дифференциальных уравнениях. В этом случае большая часть книги может быть пройдена за один семестр. Так как содержание книги охватывает большинство основных тем, излагаемых в начальном курсе по численным методам, она может служить учебником по такому курсу. И действительно, книга была написана в ос- новном с этой целью, но с ориентацией на студентов, интересующихся, главным образом, дифференциальными уравнениями. Фактически мы пришли к выводу, что для весьма большого числа студентов указанная организация материала, которая для начального курса выглядит довольно непривычно, оказалась более удобной и мотивированной, чем употребляе- мая обычно. Таким образом, эту книгу можно использовать в самых раз- личных аудиториях, отличающихся как уровнем подготовки студентов, так и целями курса. Авторы с успехом использовали ранние варианты рукописи книги для чтения разнообразных курсов, от начального курса численных методов для студентов младших и старших курсов, специализи- рующихся по математике и использованию ЭВМ, до курса по методам чис- ленного решения дифференциальных уравнений Для студентов второго кур- са, специализирующихся по инженерным и естественным наукам. В первых разделах большинства глав приводится несколько модельных задач, причем в некоторых случаях дается довольно полный вывод соот- ветствующих уравнений. Мы отнюдь не считаем, что этих разделов доста- точно, чтобы научить сложному искусству математического моделирова- ния, но они все же включены, чтобы обосновать последующее изложение. Эти разделы можно пройти в быстром темпе или вообще опустить без ущер- ба для понимания остального материала книги или, наоборот, расширить, если лектор захочет подчеркнуть некоторые аспекты моделирования. Эта книга носит теоретический характер, хотя в ней довольно мало фор- мулировок теорем как таковых и многие доказательства либо вообще опущены, либо только намечены. Тем не менее Мы обычно приводим достаточную математическую аргументацию, проясняющую математичес- кие свойства описываемых методов. Во многих случаях детали доказа- тельств выносятся в разделы упражнений или дополнительных замечаний, где также указываются ссылки на литературу. Мы находим такой стиль вполне удовлетворительным для большинства студентов, особенно для нематематиков. Решение дифференциальных уравнений на ЭВМ составляет большую и важную часть того, что все чаще и чаще называют научным программиро- ванием*). Чтобы определить место нашего предмета в этой широкой тематике, в вводной гл. 1 дается обзор того, что включает в себя научное программирование. Кратко обсуждаемые в этой главе вопросы, связанные *' Чтобы вылепить из области использования ЭВМ, охватывающей все сферы че- ловеческой деятельности, часть, связанную с применением ЭВМ для решения научно- технических задач, авторы вводят термин ’’Scientific computing”. Мы переводим его как "научное программирование", сознавая, что он страдает такими же недостатками, как уже укоренившиеся термины "математическое программирование" или "систем- ное программирование" - Примеч. пер. 6
с использованием ЭВМ, в дальнейшем не развиваются, хотя в различных местах мы отмечаем, что здесь было бы полезно использовать некоторые конкретные Приемы. Развитие численных методов решения дифференциальных уравнений достигло сейчас такой стадии, когда существует надежное, эффективное и удобное для пользователя математическое программное обеспечение решения многих основных задач. Например, всюду в мире используются прекрасные библиотеки процедур для решения задачи Коши из гл. 2, ли- нейных уравнений гл. 3 и задач на собственные значения из гл. 6. Тщатель- но просмотрев дополнительные замечания и ссылки в конце каждого раздела, читатель может найти информацию о доступных пакетах програм- много обеспечения. В некоторых упражнениях читателю Предлагается со- ставить программы, реализующие некоторые основные алгоритмы для тех же самых задач. Цель этих упражнений не в создании практического программного обеспечения, а в том, чтобы читатель получил определенный опыт в программировании таких алгоритмов, что, в частности, ведет к бо- лее глубокому их пониманию. Разработка надежного, эффективного и удобного для использования программного обеспечения выходит за рам- ки этой книги.
Глава I МИР НАУЧНОГО ПРОГРАММИРОВАНИЯ 1.1. Что такое научное программирование Тысячи компьютеров как в США, так и за их пределами используются для решения бурно растущего многообразия задач: учета финансовой и хозяйственной деятельности промышленности и правительства, заказов билетов на самолет и других систем резервирования, частичного перевода с национальных языков, как, например, с русского на английский, кон- троля за управляемыми процессами и т.д. Одним из самых первых и по- прежнему самым распространенным применением .ЭВМ является решение задач, возникающих в науке и технике, или, более точно, построение реше- ний математических моделей, описывающих ту или иную физическую ситуацию. Эту очень широкую область называют научным программирова- нием. Сейчас вряд ли можно найти какую-либо область науки и техники, где бы не использовались с этой целью ЭВМ. Расчет траекторий спутников Земли и движения планет давно стал самым обычным делом. Авиационные инженеры также используют ЭВМ для моделирования потока воздуха вокруг самолета или другого летательного аппарата при его движении в ат- мосфере и для проверки структурной целостности конструкции. Такие исследования играют исключительно важную роль в авиационной индустрии при проектировании надежных и экономичных воздушных и космических кораблей. Инженеры-строители используют ЭВМ для исследования структурных характеристик больших зданий, плотин, автострад и тл. Метеорологи тра- тят очень большое количество машинного времени для предсказания по- гощЛ на завтра, а также для составления долгосрочных прогнозов, вплоть до предсказания возможных изменений климата Земли. Астрономы и ас- трофизики моделируют эволюцию звезд, и значительная часть наших знаний о таких явлениях, как красные гиганты и пульсирующие звезды, была получена в результате расчетов на ЭВМ в сочетании с наблюдениями. Эко- логи и биологи все чаще и чаще используют ЭВМ в таких далеких друг от друга областях, как динамика популяций (включая изучение естественных взаимоотношений в природе типа хищник — жертва), движение крови в организме человека и распространение загрязняющих веществ в океане и атмосфере. Математические модели всех упомянутых выше проблем, а также боль- шинства других научных и инженерных задач представляют собой системы дифференциальных уравнений — как обыкновенных, так и в частных произ- водных. Так что в первом приближении научное программирование в нас- тоящее время можно охарактеризовать как решение дифференциальных 8
уравнений с помощью ЭВМ. Даже если такое определение было бы абсолют- но точным, все равно научное программирование было бы исключительно интересной дисциплиной. Дифференциальные уравнения имеют самые разнообразные ’’формы и размеры”, и даже самые большие современные компьютеры ни на йоту не приблизили нас к решению многих задач, постав- ленных физиками и инженерами. Но научное программирование гораздо шире, причем охватываемая им область быстро изменяется. Возникает множество новых математических моделей, каждая из которых ставит свои собственные проблемы. Обработ- ка данных — сведение результатов большого числа измерений в приемле- мые для использования совокупности статистических данных — всегда была важной, хотя и несколько прозаической частью научного программи- рования. Но теперь, когда мы имеем инструменты (такие, как искусствен- ные спутники Земли), которые позволяют проводить измерения гораздо быстрее, чем мы в состоянии их обрабатывать, необходим свежий взгляд на способы хранения и использования этой незаменимой информации. В более развитых областях техники то, что еще вчера представляло слож- ную проблему даже для одноразового решения на ЭВМ, превратилось се- годня в заурядную задачу, которая многократно решается с изменяющи- мися параметрами. Это дало толчок к созданию систем технического проек- тирования с помощью ЭВМ, число которых все время увеличивается. По- добные соображения справедливы и относительно целого ряда других об- ластей науки и техники. Хотя зто обсуждение было начато с целью определить ту область, кото- рую мы называем научным программированием, сделать это точно доволь- но трудно, особенно указать ее границы и пересечения с другими облас- тями. Мы примем, в качестве рабочего определения, что научное програм- мирование — это совокупность методов, технических приемов и теорети- ческих результатов, необходимых для решения на ЭВМ математических моделей задач, возникающих в науке и технике. Большинство этих методов, технических приемов и теорий было раз- работано математиками, причем их основы возникли задолго до появления ЭВМ. Этот набор математических теорий и методов, называемый численным анализом (или вычислительной математикой),составляет основную часть научного программирования. Развитие электронно-вычислительной техники ознаменовало, тем не менее, новую эру в подходе к решению научных за- дач. Многие численные методы, разработанные для ручных вычислений (включая использование настольных калькуляторов для выполнения ариф- метических действий), пришлось пересмотреть, а от некоторых полностью отказаться. В то же время целый ряд вопросов, которые были несуществен- ными или вообще не возникали при проведении ручных вычислений, приоб- рели исключительную важность для эффективного и правильного исполь- зования больших вычислительных систем. Многие из этих вопросов — языки программирования, операционные системы, управление большими массивами данных, правильность программ и т.д. — вошли в состав новой дисциплины — информатики*), от состояния которой научное программи- рование очень сильно зависит. Но сама математика по-прежнему играет глав- *) В оригинале - ’’Computer science”. - Примеч. пер. 9
ную роль в научном программировании: на ее основе строится язык мать магических моделей, которые затем должны решаться, и обеспечивается информация о пригодности модели (существует ли решение? является ли это решение единственным?), разрабатываются теоретические основы численных методов и, во все большей степени, многие средства самой информатики. Итак, можно сказать, что научное программирование опирается на матема- тику и информатику с целью разработки наилучших способов использования Численны* анализ Иатегаггика Задачам области „ Научим „ Вычислительна* _ науки или техники програниирманиа^^ система ~ Информатика Рис. 1.1. Научное программирование-и примыкающие области вычислительных систем длй решения задач науки и техники. Указанная взаимосвязь наук схематично изображена на рис. 1.1. В следующей части этой главы мы рассмотрим несколько глубже эти различные области. 1.2. Математическое моделирование Как уже говорилось в разделе 1.1, мы рассматриваем научное програм- мирование как дисциплину, предметом которой является получение с помощью ЭВМ решений математических моделей задач, возникающих в науке и технике. Следовательно, первый шаг общего процесса построения решения должен заключаться в формулировке походящей математической, модели исследуемой проблемы. Этот шаг является частью той дисциплины, в которой данная проблема возникает; инженеры разрабатывают модели для технических задач, биологи — для биологических и тд. Математики иногда привлекаются к этому процессу моделирования, по крайней мере в качестве консультантов, но, к сожалению, искусство математического моделирования все больше и больше выпадает из сферы деятельности современных математиков. Построение математической модели начинается с выделения тех фак- торов, которые следует принять во внимание. Во многих физических зада- чах эти факторы связаны с условием равенства сил или выполнением ка- ких-либо законов сохранения. Например, в формулируемой в разделе 2.1 модели для* задачи о траектории ракет основным физическим законом, на который опирается построение модели, является второй закон Нью- тона, который гласит, что сумма действующих на тело сил должна равнять- ся производной от импульса тела. Чтобы применить этот общий закон к данной конкретной задаче, необходимо выделить и выразить количествен- но те силы, которые в данном случае существенны. Например, на ракету,, движущуюся в атмосфере Земли, действует сила гравитационного притя- жения со стороны Юпитера, но ее влияние настолько незначительно по сравнению с притяжением Земли, что им вполне можно пренебречь. Может 10
казаться, что и некоторые другие сипы малы по сравнению с доминирую- щими, но вопрос об их отбрасывании не столь прост. Таким образом, построение модели является неизбежным компромиссом между учетом всех вероятных факторов, играющих роль в данной задаче, и сохранением математической модели достаточно простой, чтобы ее можно было решить имеющимися в нашем распоряжении средствами. В классической науке рассматривались только очень простые модели явлений, так как решения приходилось находить вручную: либо аналитически, либо численно. С уве- личением мощности ЭВМ и развитием численных методов стало возмож- ным работать со все более сложными моделями. Кроме основных соотношений, которые во многих, если не в большин- стве задач научного программирования имеют форму дифференциальных уравнений, модель обычно включает ряд начальных, граничных и допол- нительных условий. Например, в задаче хищник — жертва, которая будет рассмотрена в гл. 2, задается начальная популяция обоих изучаемых видов. Граничные условия обычно являются естественной частью задачи. Напри- мер, при изучении тока крови в сосудах мы требуем, чтобы поток не мог проникать сквозь стенки сосудов. В других случаях граничные условия могут и не быть столь физически очевидными, но все же могут требоваться для того, чтобы математическая задача имела единственное решение. За- частую исходная формулировка математической модели действительно имеет множество решений, а единственное интересующее нас решение вы- деляется с помощью некоторого дополнительного условия, такого, как положительность решения или достижение на этом решении минимума энергии. В любом случае обычно предполагается, что в окончательной форму- лировке математическая модель со всеми соответствующими начальными, граничными и дополнительными условиями имеет единственное решение. Следующий шаг тогда заключается в нахождении этого решения. Для проб- лем, которые в настоящее время представляют интерес, редко удается по- лучить решение в замкнутой форме; оно должно быть каким-то образом найдено приближенно (аппроксимировано). Методы аппроксимации реше- ний, которые будут рассмотрены в этой, книге, представляют собой числен- ные методы, удобные для реализации на ЭВМ; они почти полностью вытес- нили из практики другие классические методы аппроксимации. В следу- ющем разделе мы в общем виде обсудим те шаги, которые следует пред- принять для получения численного решения, и остальная часть книги будет посвящена детальному рассмотрению этих шагов для целого ряда различ- ных задач. Если мы в состоянии находить решения модели, то следующим шагом обычно является обоснование модели. Под этим мы понимаем подтвер- ждение того, что полученное решение является достаточно точным для тех целей, ради которых данная модель разрабатывалась. Имеются два главных источника возможных ошибок. Во-первых, это неизбежные ошибки числен- ного решения. Общая природа этих ошибок обсуждается в следующем разделе, и одним из главных предметов последующего изложения будет более глубокое изучение происхождения этих ошибок и то, как их конт- ролировать. С другой стороны, также неизбежны погрешности самой моде- ли. Как уже отмечалось, моделирование обязательно включает в себя сле- 11
дующий элемент: разработчик модели пытается учесть все действующие г реальной задаче факторы, но затем, чтобы с моделью можно было работать, он отбрасывает или аппроксимирует те из них, которые, на его взгляд, мало влияют на решение. Вопрос заключается в том, действительно ли оправдано пренебрежение этими факторами. Первая проверка обоснованности модели состоит в том, является ли найденное решение приемлемым хотя бы в общих чертах. Если, например, проблема заключается в расчете траектории ракеты, ожидаемая максималь- ная высота подъема которой равна 100 км, а вычисленное решение дает высоты порядка 200 км, то очевидно, что где-то допущена грубая ошибка. После того как такие большие ошибки исключены, что обычно бывает несложной задачей, начинается следующий этап проверки, состоящий в сравнении, когда это возможно, результатов расчетов с имеющимися экс- периментальными данными или результатами наблюдений. Зачастую это оказывается весьма тонким мероприятием, так как, хотя эксперименталь- ные данные могут быть получены в контролируемых условиях, физика эксперимента может отличаться от математической модели. Например, в математической модели расчета потока воздуха вокруг крыла летатель- ного аппарата обычно предполагается, что идеализированный летательный аппарат движется в бесконечной атмосфере, в то время как эксперимен- тальные результаты получают в аэродинамической трубе, где имеется влияние стенок трубы. (Подчеркнем, что ни эксперимент, ни математичес- кая модель не отражают подлинной ситуации, где самолет летит в атмос- фере, имеющей конечные размеры.) Требуется опыт и интуиция исследо- вателя, чтобы сделать здравое заключение о том, достаточно ли хорошо согласуются расчеты математической модели с результатами наблюдений, В начальной стадии исследования очень часто полученные результаты не согласуются и модель приходится модифицировать. Обычно это сво- дится к включению в модель некоторых дополнительных членов, кото- рыми, казалось, можно было пренебречь. Но иногда требуется полный пересмотр модели и подход к изучению физической ситуации с совершенно других позиций. В любом случае, как только модель модифицирована, весь цикл начинается сначала: новое численное решение, новое обоснование, Пс. 1.2. Математическое моделирование и процесс решения 12
дополнительные модификации и тд. Это процесс схематично изображен на рис. 1.2. Если в результате процесса обоснования и модификации модель будет признана адекватной, то она готова к использованию для предсказания. В этом, конечно, и состоит цель работы. Теперь мы должны быть в состоя- нии ответить на вопросы, которые дали толчок к разработке модели: ”На какую высоту поднимется ракета?*’, ’’Съедят ли волки всех кроли- ков?” и тд. Конечно, мы всегда должны относиться к получаемым ответам со здравым скептицизмом. Просто окружающий нас физический мир слишком сложен, а наши знания о нем слишком ограничены, чтобы мы могли предсказывать будущее с абсолютной точностью. Все же надеемся, что полученные с помощью ЭВМ решения дадут нам возможность глубже проникнуть в суть изучаемой проблемы, будь то физическое явление или техническая разработка. 1.3. Процесс численного решения В этом разделе мы обсудим общие вопросы, которые возникают при нахождении решений математических моделей с помощью ЭВМ. В последу- ющих главах эти вопросы рассмотрены более конкретно. Когда математическая модель уже построена, первой нашей мыслью обычно является мысль о том, нельзя ли попытаться найти решение в явной замкнутой форме. Однако такое решение обычно возможно тодько при определенном (часто весьма радикальном) упрощении проблемы. Такие упрощенные постановки с известными решениями могут оказать- ся чрезвычайно полезными как контрольные варианты для более общей исходной задачи. Убедившись в невозможности построения явного решения, мы обраща- емся к разработке численного метода для его нахождения. При выборе численного метода нахождения решения мы сначала подсознательно, а потом, по ходу разработки, все более явно учитываем те вычислительные средства и программное обеспечение, которые имеются в нашем распоря- жении. Подход в случае мини-ЭВМ может быть совершенно отличен от под- хода в случае очень большой ЭВМ. Но обычно эти отличия в подходе каса- ются размера модели, а не ее типа, и определенные общие вопросы должны быть рассмотрены независимо от того, какую ЭВМ мы собираемся исполь- зовать. Может быть, наиболее важным фактором в научном программировании является то, что компьютеры имеют дело с конечным числом цифр и симво- лов. В силу этого мы, вообще говоря, не можем выполнять арифметичес- кие действия в классе вещественных чисел так, как привыкли в чистой математике. Арифметические операции, выполняемые ЭВМ, ограничены ко- нечным числом разрядов, в то время как численное представление боль- шинства вещественных чисел требует бесконечного числа разрядов. Нап- ример, численное представление таких фундаментальных констант, как я и е, требует бесконечного числа цифр и никогда не может быть введено в ЭВМ абсолютно точно. Более того, даже если наши исходные данные допус- кают точное численное представление в ЭВМ, в результате выполнения арифметических операций мы в конце концов допустим некоторые по- грешности. Например, для численного представления частного от деления 13
двух четырехзначных чисел может потребоваться бесконечное Число цифъ И даже произведение двух четырехзначных чисел в общем случае требче для представления восьми цифр, так что после нескольких умножений число разрядов, необход имых для точного запоминания результата, быстро выйдет из разумных пределов. Если, наример, предположить, что на ЭВМ реализована четырехразрядная десятичная арифметика, то результат опера- ции 0,8132 • 0,6135 = 0,49889820 будет, в зависимости от компьютера, пред- ставлен либо как 0,4988, либо как 0,4989. Следовательно, нужно с самого начала примириться с тем фактом, что мы не в состоянии выполнять ариф- метические действия на ЭВМ абсолютно точно. При выполнении почти всех арифметических операций будем делать небольшие ошибки, называе- мые ошибками округления, и наша задача — обеспечить, чтобы эти неболь- шие ошибки не накапливались так сильно, чтобы полностью исказить результаты вычислений. Более точно, каждая вычислительная машина характеризуется длиной слова, т.е. количеством д воичных разрядов, составляющих каждое слово памяти. Эта длина слова и определяет число цифр, с которыми в машине выполняются обычные арифметические действия, называемые арифмети- кой с одинарной точностью. В большинстве используемых для научных расчетов ЭВМ это число эквивалентно от 7 до 14 десятичным знакам. Воз- можна также реализация арифметики более высокой точности. На многих машинах арифметика с двойной точностью, в которой, по существу, удваи- вается количество цифр, реализуется аппаратурно. В этом случае выполне- ние программ, использующих арифметику с двойной точностью, если и увеличивает время счета по сравнению с вариантами одинарной точности, то весьма умеренно, и только в редких случаях время счета увеличива- ется вдвое. К счастью, большинство современных крупных ЭВМ с корот- кими длинами слов имеют очень эффективную арифметику двойной точ- ности. В то же время на некоторых машинах арифметика двойной точ- ности реализована с помощью программного обеспечения и в, несколько раз увеличивает время счета по сравнению с вариантами одинарной точнос- ти. Арифметика более высокой точности, чем двойная, реализуется только с помощью программного обеспечения и с увеличением порядка точности становится все более и более неэффективной. В практических задачах арифметика высокой точности используется редко. Ошибки округления могут по-разному влиять на окончательный ре- зультат вычислений. Во-первых, при выполнении миллионов операций, каждая из которых вносит небольшую ошибку, существует опасность, что эти маленькие ошибки накопятся так, что поглотят значительную часть точности вычисленного результата. Если использовать округление до бли- жайшего числа, помещающегося в разрядной сетке, то отдельные ошибки будут частично нейтралиэовывать друг друга, но среднее квадратичное от- клонение будет расти с ростом числа операций, оставляя возможность боль- шой ошибки в окончательном результате. Если жеиспольэовать усечение, т.е. отбрасывание хвостовых цифр, а не округление, то это приводит к смеще- нию ошибок в одном направлении и вероятность большой погрешности в окончательном результате увеличивается*). Как пример этого явления рас- •) Автор, видимо, предполагает, что используемые арифметические действия. - сложение чисел одного знака и умножение. - Примеч. ред. 14
мотрим вычисление выражения 0,8132 • 0,6135 • 0,2103, значение которого, округленное до восьми десятичных знаков после запятой, равно 0,10491829. Усечение произведения первых двух чисел до четырех знаков дает 0,4988, с ошибкой 0,9820 - 10”* . Умножение 0,4988 на 0,2103 дает после усечения 0,1048, с ошибкой 0,9764 • 10-4. Накопленная ошибка составляет 0,1183 • • 10'3. Помимо возможности накопления ошибок в результате выполнения большого числа операций, существует еще опасность катастрофической потери знаков. Предположим, что два числа а и b отличаются лишь в по- следнем знаке. Тогда разность с = а - b будет иметь только одну знача- щую цифру, даже если при вычитании не будет допущено никакой ошибки округления. Последующие вычисления с использованием величины с обычно приводят к тому, что окончательный результат имеет только один верный знак. Всякий раз, когда это возможно, необходимо попытаться исключить опасность возникновения катастрофической потери знаков посредством изменения порядка вычислений. Катастрофическая потеря знаков дает один из примеров того, как кор- ректный, если его рассматривать в точной арифметике, алгоритм может оказаться численно неустойчивым. Действительно, результаты вычислений могут оказаться абсолютно неверными из-за ошибок округления даже при выполнении небольшого числа арифметических операций. Примеры такого рода будут приведены позже. В настоящее время проведен детальный анализ влияния ошибок округ- ления для ряда простых основных алгоритмов, например, для используе- мых при решении систем линейных уравнений; некоторые из этих резуль- татов будут описаны более подробно в гл. 3. Очень эффективным заре- комендовал себя так называемый обратный анализ ошибок. Используемый при этом подход основывается на доказательстве того, что влияние ошибок округления эквивалентно определенному возмущению исходных данных задачи. Когда такой анализ удается провести, можно утверждать, что по- грешность решения, обусловленная ошибками округления, не превосходит погрешности, вызванной определенными ошибками в исходной модели. Вопрос о влиянии ошибок округления на решение в этом случае сво- дится к изучению зависимости решения от возмущения параметров мо- дели. Другое обстоятельство, где ’’конечность” ЭВМ приводит к погрешности численного решения, связано с необходимостью замены непрерывных задач дискретными. Вот, простой пример. Для вычисления интеграла от непрерывной функции нужно знать значение подынтегральной функции на всем интервале интегрирования, т.е. на бесконечном множестве точек. В то же время при вычислении этого интеграла на ЭВМ используются значе- ния подынтегральной функции только в конечном числе точек. Следова- тельно, даже если последующие арифметические операции будут выпол- няться точно, без каких-либо ошибок округления, все равно будет сущест- вовать ошибка, обусловленная дискретной аппроксимацией интеграла. Ошибки такого типа обычно называют ошибками дискретизации или ошибками усечения. Эти ошибки, за исключением тривиальных случаев, всегда возникают при численном решении дифференциальных уравнений и других непрерывных задач. 15
Имеется еще один более общий тип ошибок, который в каком-то смысла близок к ошибкам дискретизации. В основе многих численных методов лежит идея итерационного процесса. В ходе такого процесса строится по- следовательность приближений к решению в надежде, что эти приближения сойдутся к решению; во многих случаях может быть дано математическое доказательство сходимости. Однако на ЭВМ можно реализовать только конечное число таких приближений, поэтому мы вынуждены останавли- ваться, не достигнув математической сходимости. Ошибку, вызванную таким конечным завершением итерационного процесса, иногда называют ошибкой сходимости, хотя общепринятой терминологии здесь не су- ществует. Если исключить тривиальные задачи, которые не представляют интереса в научном программировании, то мы можем описать положение с ошиб- ками вычислений следующим образом. Всякое вычисление связано с ошиб- ками округления. Если математической моделью проблемы является диф- ференциальное уравнение или какая-то другая непрерывная задача, то здесь всегда будет присутствовать ошибка дискретизации и во многих случаях, особенно в нелинейных задачах, еще и ошибка сходимости. Все эти типы ошибок, а также методы их анализа и регулирования будут обсуждаться более полно в конкретных ситуациях, разбираемых в последующих главах. Другим важнейшим фактором, помимо точности, рассматриваемым при разработке методов решения математических моделей на ЭВМ, является эффективность. Под этим мы понимаем количество усилий, как челове- ческих, так и ЭВМ, которое необходимо затратить для решения данной задачи. Для большинства задач, таких как решение систем линейных алгеб- раических уравнений, имеется целый ряд возможных методов решения, причем некоторые из них восходят к методам, предложенным десятки, а то и сотни лет назад. Ясно, что мы хотели бы выбрать такой метод, кото- рый минимизировал бы время счета, давая при этом приемлемую для нас точность приближенного решения. Это, однако, оказывается удивительно сложной задачей, требующей учета целого ряда обстоятельств. Хотя часто оказывается возможным оценить время работы алгоритма, подсчитав необходимое число арифметических операций, вопрос о том, как решить задачу с заданным уровнем погрешности за минимальное время счета или с минимальным объемом вычислений, все еще, за исключением нескольких случаев, остается открытым. Даже если пренебречь ошибками округления, известно удивительно немного. В последние несколько лет эти вопросы привели к возникновению нового предмета: сложность вычислений. Однако, если даже такие теоретические результаты были бы известны, они бы дали только приближенную оценку фактического времени счета, которое зависит от ряда факторов, связанных с используемой вычислитель- ной системой: от объема и быстродействия основной и внешней памяти, числа обращений к внешней памяти и характеристик операционной сис- темы. И эти факторы все время изменяются в результате создания новых вычислительных систем или их новой архитектуры. Фактически разработка и анализ численных методов должны побуждать и направлять эти изме- нения. Мы на простом примере покажем, как может возникнуть очень неэф- фективный метод. Во многих элементарных учебниках по теории матриц 16
ли линейной алгебре излагается правило Крамера решения систем линей- ных алгебраических уравнений. Это правило связано с вычислением отно- шений некоторых определителей. Определители же, в свою очередь, обычно вводятся как сумма всех возможных произведений элементов матрицы, по одному элементу из каждой строки и каждого столбца. Всего имеется и! таких произведений. Если мы теперь приступим к вычислению опреде- лителя, непосредственно следуя приведенному определению, то нам по- требуется (л — 1)л! умножений и л! сложений. Если применить такой метод к очень маленьким матрицам, скажем 3X3 или 4X4, ничего плохого не произойдет. Предположим теперь, что мы применим этот метод к мат- рице размерности 20 X 20, являющейся небольшой для задач современного научного программирования. Если считать, что на выполнение каждой арифметической операции требуется 1 мс (10-6 с), то требуемое для вычислений время, если даже пренебречь всеми вспомогательными опера- циями программы, превысит миллион лет! В то же время метод исключе- ния Гаусса, который будет рассмотрен-в гл. 3, выполнит все арифметичес- кие операции, необходимые для решения линейной системы порядка 20 X X 20, менее чем за 0,005 с (по-прежнему считая, что одна операция выпол- няется за 1 мс). Хотя это и исключительный пример, но он очень наглядно иллюстрирует те неприятности, которые могут возникнуть, если при реше- нии задач на ЭВМ наивно следовать математическим рецептам. Но даже если метод сам по себе является хорошим, чрезвычайно важно, чтобы реализующая его программа для ЭВМ была составлена как можно лучше, особенно в том случае, если ею будет пользоваться не только автор программы. Приведем некоторые критерии качественного программиро- вания. 1. Надежность - программа не содержит ошибок и можно быть уверен- ным, что она вычисляет именно то, ради чего она составлена. 2. Работоспособность, которая тесно связана с надежностью, — програм- ма может обнаруживать неверные данные, выявлять ’’вырожденность” или какие-то другие обстоятельства, при которых от программы нельзя ожидать правильных результатов, а также фиксировать прочие ненормаль- ные ситуации и обрабатывать их так, чтобы это удовлетворяло пользова- теля. 3. Переносимость — программа может быть перенесена с одной ЭВМ на другую с минимумом усилий и без утраты надежности. Обычно это пред- полагает, что программа написана на каком-либо распространенном языке высокого уровня, например фортране, и не использует никаких ’’трюков” зависящих от особенностей конкретной ЭВМ. Любая используемая харак- теристика конкретной машины, как, например, длина слова, четко выде- ляется. 4. Поддерживаемость — любую программу время от времени прихо- дится изменять, будь то корректировка или усовершенствование. Программа должна быть составлена так ясно и логично, чтобы в нее было легко вносить изменения с минимальной вероятностью порождения новых ошибок. Важной частью поддерживаемое™ является наличие хоро- шей документации программы, которая позволяла бы эффективно менять программу и тем лицам, которые не участвовали в написании первона- чального текста. Хорошая документаци|Л||яэд^1ДЛ^ .ц_^1Д"чи1 >, чтобы ДжОотега I КАЗАНСКОГО 17 I IBL'tlllin-ruTur,
пользователь понимал, как использовать программу, ее возможност:, ограничения и т.д. И, наконец, необходимо провести широкое тестирование программы, чтобы убедиться, что она удовлетворяет сформулированным выше критериям. О разделах математики и информатики, имеющих дело с разработкой качественных программ для решения математических задач, говорят, что они занимаются созданием математического обеспечения. В настоящее время имеются очень хорошие программы решения ряда математических задач, в частности решения систем линейных уравнений, вычисления собст- венных значений матрицы, решения задачи Коши для обыкновенных диф- ференциальных уравнений. 1.4. Влияние информатики на научное программирование Как можно было заключить из предыдущего раздела, путь от математи- ческого метода до успешно работающей программы довольно долог. Наря- ду с разработкой средств, необходимых для создания хорошего математи- ческого обеспечения, имеется ряд других областей информатики, которые играют все более важную роль в научном программировании. Очевидно,- аппаратные средства и основное программное обеспечение исключительно важны. Революция в архитектуре ЭВМ в настоящее время в самом разгаре, и возможные последствия использования дешевых микро- процессоров, объединенных в большие массивы, открывают захватываю- щие перспективы. Уже сейчас успешное использование матричных процессо- ров, таких как Иллиак IV, и векторных компьютеров, таких как Крей-1 и СДС Кибер 200, требует пересмотра численных методов для применения на таких машинах. Если массивы из микропроцессоров действительно получат широкое распространение, то станет необходимым решительный критический анализ эффективности использования существующих числен- ных методов. Почти все программы для решения задач научного программирования написаны на языках программирования высокого уровня, таких как фортран, алгол, паскаль и др. Среди них фортран, со времени его разработ- ки в середине 1950-х годов, по-прежнему остается основным языком, используемым для задач научного программирования. С тех пор фортран постоянно модифицируется и расширяется (и кое-кто даже считает, что улучшается). В последнее время был разработан ряд препроцессоров для фортрана, которые позволяют использовать при составлении программ некоторые возможности, не имеющиеся в самом фортране; написанные на этих расширенных языках программы сначала преобразуются в програм- му на фортране, пригодную для обработки стандартным компилятором. Следует ожидать дальнейшего развития языков программирования для задач научного программирования, особенно в направлении создания язы- ков еще более высокого уровня. Многие задачи научного программирования требуют обработки огромно- го количества данных — как входных и выходных, так н возникающих в процессе вычислений. Вопросы, связанные с организацией эффективного хранения и извлечения данных, называют управлением данными. Так, например, используемая при автоматическом проектировании база данных, 18
- которой находится вся информация, относящаяся к конкретному объек- / разработки, — это может быть летательный аппарат, автомобиль, плоти* на и тд. — может содержать несколько миллиардов символов. При проекти- ровании летательного аппарата эта информация будет включать все, отно- сящееся к геометрии каждой части аппарата, свойства материалов для каждой части и т.д. Инженер может использовать эту базу данных просто для нахождения всех материалов, обладающих определенными свойствами. В то же время эта база данных будет использоваться при проведении анали- за различных структурных свойств летательного аппарата, что требует решения определенных дифференциальных уравнений в частных производ- ных. В последние несколько лет был разработан целый ряд программ для управления большими массивами данных, которые предназначены для деловых приложений, как, например, управление запасами. Развитая при этом методология частично используется теперь для управления большими базами данных в научных расчетах. Кроме уже упомянутых разделов информатики, имеются еще два, ма- шинная графика и символьные вычисления, на которых мы остановимся более подробно. Результатом научных расчетов являются числа, которые могут, напри- мер, представлять собой значения решения некоторого дифференциаль- ного уравнения в выбранных определенным образом точках. Обычно эти числа выдаются в виде таблиц или в каком-либо ином виде с помощью быстродействующих печатающих устройств. Однако объем такой информа- ции может оказаться подавляющим, и, кроме того, проводящему расчеты инженеру или ученому обычно гораздо более удобно, если это только возможно, работать с результатами, представленными в форме графиков, кривых или каких-либо других наглядных изображений. Например, ре- зультаты расчетов, представляющие сложную функцию или физический объект, такой как летательный аппарат, особенно полезны, если они изоб- ражены наглядно (см. рис. 1,3 и 1.4). В течение многих лет такой вывод результатов определенных расчетов рутинно осуществляют механические графопостроители. В последнее время все более доступными становятся 2* 1»
Рис. 1.4. Одноступенчатый орбитальный корабль терминалы с электронно-лучевыми дисплеями, а также другие типы ви зуальных терминалов. Использование этих устройств для наглядного вы- вода (а в определенных случаях и для ввода) называют машинной гра- фикой. Особенно важной является диалоговая графика, которая позволяв- решающему задачу управлять ходом вычислений и в случае необходимости сразу же вносить изменения или корректировки. Существует много различных типов графических выходных устройств но мы ограничимся двумя наиболее распространенными — барабанным пошаговым графопостроителем, который использует перо и чернила, >: подобной телевизору электронно-лучевой трубкой (ЭЛТ). Перо барабаь кого графопостроителя двигается вверх и вниз, по бумаге, покрывающее поверхность барабана или цилиндра. Продольные движения реализуются посредством вращения бумаги под пером в прямом и обратном направлю ниях. Графопостроитель выдает высококачественное изображение на бу- мажном носителе. Однако, по сравнению с ЭЛТ, он работает очень медлен- но. ЭЛТ подобна обычному телевизионному монитору. Дисплей состои- из набора фосфоресцирующих точек. Электронно-лучевой дисплей обычн< используется в диалоговом режиме, который дает пользователю возмож ность взаимодействовать с ЭВМ: вводить или изменять данные, принимав решения и т.д. Главная сила ЭЛТ заключается в той высокой скорости, с которой она может воспроизводить изображения. Для наглядного представления данных в системах машинной график»: используются стандартные блоки точек, прямых, кривых, поверхностей а также текстовый материал. Точка определяется тройкой координа- (х, у, г), а отрезок прямой — парой конечных точек, (х1э yit и (хх 20
2, гг). Как уже упоминалось, кривая обычно аппроксимируется последо- вательностью коротких отрезков прямых. Перед выводом изображения на дисплей координаты точек запоминаются в некотором файле или в базе данных. В случае сложных изображений проектирование таких баз данных оказывается весьма трудным делом и программное обеспечение, осуществляющее извлечение и обработку соответствующих данных, отра- жает эту сложность. Другой крайний случай составляют очень простые приложения, для реализации которых требуются довольно несложные базы данных. Вообще говоря, для задания одной координаты точки тре- буется одно машинное слово. Для очень сложных изображений могут понадобиться десятки и даже сотни тысяч точек, что поглощает значитель- ную часть памяти не очень больших вычислительных систем. Имеется много типов обработки данных и типов манипуляций с графи- ческими базами данных. Расположение основных элементов базы данных — точек — может задаваться двумя различными способами. Абсолютное зада- ние предполагает наличие некоторой фиксированной глобальной системы координат. При относительном задании указывается смещение по отноше- нию к ранее заданной точке. Большинство графических устройств включает три основные манипуляционные операции: перемещение пера, курсора, све- тового луча или головки графопостроителя в заданную точку; проведение прямой линии до заданной точки; нанесение точки в некотором месте. Другой тип манипуляционных операций используется тогда, когда на дисплей надо вывести какую-то долю, определенным образом повернутый вид или уменьшенный размер структуры, представленной в базе данных. Это сводится к преобразованию всей базы данных или ее части. Преобразо- вания по своей природе могут быть алгебраическими или тригонометричес- кими, как, например, поворот против часовой стрелки на угол 6 вокруг начала координат, отражение, которое может интерпретироваться как пово- рот на 180е вокруг некоторой оси, масштабирование, изменяющее величи- ны координат, или перенос начала координат. Эти преобразования могут быть как двумерными, так и трехмерными. Большая часть преобразований реализуется в виде матричных операций. Системы программного обеспечения машинной графики состоят из двух основных частей. Одну часть составляют программы, обрабатывающие базу данных и осуществляющие такие уже упомянутые операции, как по- ворот и масштабирование. Эти операции являются математическими и не зависят обычно от конкретных устройств. Другая основная часть системы программного обеспечения предназначена для управления графическим устройством. Эта часть обеспечивает передачу информации графическому устройству для перемещения курсора, проведения линии, нанесения точек и т.д. На самом низком уровне это программное обеспечение зависит от конкретного используемого устройства, поскольку, например, координаты точки должны выражаться в форме, совместимой с аппаратными инструк- циями. На один уровень выше — перемещение курсора в некоторую точку, проведение линии — это программное обеспечение уже может не зависеть от конкретного графического устройства. Стиль программирования, используемый при работе с машинной графи- кой, совершенно отличен от программирования численных методов. Одна- ко при этом преследуется та же самая цель - передать ЭВМ инструкции, 21
которые она должна выполнить. При работе с электронно-лучевым диал* говым дисплеем команды низкого уровня могут иметь примерно следуй щий вид: ВКЛЮЧИТЬ КУРСОР УСТАНОВИТЬ РЕЖИМ АБСОЛЮТНЫХ КООРДИНАТ ПЕРЕМЕСТИТЬ КУРСОР В ТОЧКУ (23.1, -16.4) ВЫКЛЮЧИТЬ КУРСОР Команды графопостроителя обычно представляют собой обращения к подпрограммам. Мы теперь переходим к последней теме этого раздела — символьным вычислениям. Под этим имеется в виду возможность работать с матема- тическим! выражениями в символьной форме (а ие только с числами) во многом аналогично тому, как это делается с помощью карандаша и бумаги. Системы символьных вычислений могут, например, складывать, умножать и делить многочлены и рациональные выражения, дифференцировать функ- ции, находить интегралы от многих функций, которые допускают интегри- рование в замкнутой форме, и тд. Эти возможности являются многообе- щающими как средство избавления от утомительных преобразований длин- ных алгебраических выражений, что нередко оказывается необходимой предварительной работой, перед проведением численных расчетов. Некото- рые системы символьных вычислений уже сейчас широко используются в научном мире; - эффективность и возможности этих систем постоянно увеличиваются, и в будущем следует ожидать их еще более широкого использования. Наверно, лучше всего различие между численным и символьным вы- числением можно понять на простом примере. В качестве такого примера мы рассмотрим вычисление полиномов Чебышева первого рода- Эти поли- номы определяются формулой Тп (х) = cos(n arccosx), -1<х<1, хотя большее практическое значение имеют двучленные рекуррентные соотношения Л (*)-*, Г/+1 (х)=2х7)(х) - Tf_i (х), / = 1,2,... Программа вычисления первых 20 полиномов Чебышева на псевдофортра- не может выглядеть Примерно следующим образом: DIMENSION Т(20) INPUT X Т(1)= 1. 22
• (2) = Х DO 10 J = 2,19 T(J + 1) = 2. *X *T(J) - T(J - 1) 10 CONTINUE OUTPUT T Этот фрагмент программы вычисляет значения полиномов Чебышева для заданного значения X. Если, например, Х=0,6, то результатом работы программы будет Г(1)=1. Г(2) = 0.6 7’(3) = —0.28 Г(4) =-0.936 Подчеркнем, что эта ориентированная на численные расчеты программа на фортране вычисляет значения полиномов при конкретном значении X. Если нужно вычислить значения полиномов при другом значении X, го эта программа должна быть выполнена еще раз с этим новым значением X. В противоположность этому в системе символьных выделений перемен- ная X может быть представлена в виде символа и все предписываемые в цикле операции могут быть выполнены при незаданном значении X. Ре- зультат работы системы символьных вычислений мог бы иметь вид Г(1)»1 Г(2)=Х Г(3) = 2*Х **2 — 1 Г(4) = 4* Х**3-3 * X Этот пример наглядно демонстрирует одно из основных различий между численным вычислением с использованием численно ориентированного языка, такого как фортран, и символьным вычислением: в символьной системе переменные и выражения имеют символьные (или алгебраические), а не числовые значения. Другое важное отличие состоит в том, что символь- ное представление является точным, а не приближенным. В настоящее время имеется несколько различных символьных систем. В тех из них, которые-обладают синтаксисом, подобным фортрану или алголу, программа вычисления полиномов Чебышева будет выглядеть примерно так же, как приведенный выше фрагмент программы на форт- ране. Отличаться будет только результат. В то же время многие символьные системы имеют синтаксис, совершенно отличный от фортрана. В качестве 23
примера можно привести одну из наиболее широко используемых систеь. Macsyma, разработанную в Массачусетсском технологическом институте. Широко используемые системы символьных вычислений обладают большим диапазоном возможностей. Здесь мы опишем только некоторые из них, наиболее существенные для научных приложении. Аналогично фортрану символьные системы имеют (символьные) выра- жения и операции. Например, мы можем определить выражение как EXPR: Xt2+(Y-6)*Z, и это выражение будет выводиться как (Y6)Z+X2. Можно сделать символьные подстановки EXPR. Х= S1N(A), Y=LOG(A), которые дают (LOG(A) — 6)Z +SIN2A. Можно использовать и символьные матрицы; запись М: MATRIX ([А, В, С], [1,2,3], [1.7, X, Y]) определяет построчно матрицу А В С' м= 1 2 3 -1,7 X Y. Могут быть также определены и символьные операции над матрицами, такие как М2 и М~1. Из-за сложности вычислений операция М~1 обычно может быть выполнена только для матриц небольшого размера. Существует много символьных операций, которые можно применять к выражениям. Давайте переопределим выражение EXPR как EXPR: (Х +3) * (X+ 7) t 4—Xt3 *(Х +2) t 2. Тогда оно может быть выведено как (Х +3)(Х+7)4 — Х3(Х +2)2. Операция раскрытия скобок EXPAND(EXPR) преобразует это выражение к виду 27Х4 + 374Х3 + 2254Х2 + 6517Х + 7203. Чтобы продемонстрировать некоторые другие возможности символьных систем, положим Y равным 2 1 X Х+2 " Х+1 ” (Х+ I)2 ' Команда упрощения выражений, V: SIMPLIFY(Y), может сгенерировать выражение X ” Х3+4Х2+5Х+2 ' 24
.наложение этого выражения на элементарные дроби, W: PARFRACT(V), 2 -2Х-1 Х + 2 (Х+1)2 может быть затем преобразовано с помощью операции разложения на множители, Z: FACTOR (W): X ” (Х + 1)2(Х + 2) ' Вместе с операцией FACTOR обычно используется функция решения урав- нений SOLVE. Так, SOLVE(Y=0, X) дает Х = 0. Другой класс составляют функции, вычисляющие суммы и произведе- ния, SUM и PRODUCT. Так, например, сумма от 1 до °°, SUM(r4,I = 1, INFINITY), может быть выражена либо как формальная сумма INF 1 либо можно потребовать фактического вычисления суммы. В последнем случае выход системы будет иметь вид (PI)4- 90 Аналогичным образом можно представлять и вычислять произведения. Символьные системы включают многие операции математического ана- лиза. Если, например, выражение Y имеет вид X5/2 LOG(X + 1)TAN(X3/2)’ ТО операция LIMIT(Y, Х-+0) дает 1, a LIMIT (X *LOG(X), X -+0*) дает 0. Для демонстрации операций дифференцирования и интегрирования по- ложим Тогда Z = INTEGRATE (Y, X) дает /2Х-1 \ L0G(X2 — Х + 1) A\SQRT(3)/ LOG(X + 1) б SQRT(3) 3 * Ответ можно проверить, выполнив операцию DIFFERENTIATE(Z). Чтобы результат принял исходную форму, может потребоваться выполнение опе- рации упрощения выражений. Как другой пример, команда INTEGRATE (Tt2 * SIN(T)t 12 * C0S(T)t8, T, -И. И) 2S
просит систему вычислить интеграл f T2COSe(r)SIN,a(T)dT. — я Система может выдать ответ либо в виде точного представления 77И3 45261359 И 393216 “ 23781703800 ’ либо преобразовать результат к виду 5.4737758 Е-3. Можно находить и интегралы с бесконечными пределами, как показыва- ет пример операции INTEGRATE(l/(Xt2 + 5) t (3/2), X, О, INF), вычкляющей значение интеграла " 1 о(Х2+5)^2 которое равно 1/5. В сочетании с командой INTEGRATE часто используют- ся операции типа EXPAND, SIMPLIFY и FACTOR. В этом разделе мы кратко рассмотрели некоторые области информати- ки, оказывающие все возрастающее влияние на научное программирование и, в частности, на решение дифференциальных уравнений. В последующем изложении мы в разных местах будем отмечать, где соответствующая мето- дология может быть с выгодой использована, хотя детальное освещение этих вопросов выходит за рамки книги. Дополнительные замечания и ссылки 1.4 Хорошее введение в принципы машинной графики содержится в книге [50]. Для дополнительного чтения можно рекомендовать книги [10,66,* 86, 99], а также статью [97]. Первые системы символьных выделений появились в середине 1960-х годов, но только в начале 1970-х годов несколько таких различных систем стали доступ- ными для широкого круга пользователей. Основным мотивом для разработки первых систем послужили естественно научные (главным образом физические) и математи- ческие приложения. В настоящее время тратятся значительные усилия на усовершенст- вование существующих и разработку новых систем. Общим слабым местом символь- ных систем является их сильная зависимость от конкретной ЭВМ. Каждая система обычно работает только на одном типе ЭВМ и перевод системы с одной ЭВМ на другую связан с серьезными трудностями. Другой недостаток заключается в сложности реали- зации непосредственной связи символьной системы с универсальными языками про- граммирования, такими как фортран или паскаль. Перечислим несколько наиболее широко известных систем символьных вычисле- ний: Altran[5], Foimac[79],Macsyma [111], Reduce [93] и Scratchpad [19].Обзор ис- пользования систем символьных вычислений в научном программировании можно найти в статье [94], где рассматривается пример, совершенно аналогичный приведен- ному в этом разделе, но вместо полиномов Чебышева используются полиномы Ле- жандра. Собрание обзорных статей о различных аспектах воздействия информатики на научное программирование можно найти в книге [53 ]. 26
Глава 2 ЗАДАЧА КОШИ ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 2.1. Примеры зада«« Коши В этом разделе мы построим две математические модели, представляю- щие собой задачи Коши для обыкновенных дифференциальных уравнений; одну модель — из области экологии, другую — из области аэронавтики. Модель типа хищник - жертва Давайте рассмотрим динамику популяции двух видов, взаимодействую- щих между собой по типу хищник — жертва. При этом предполагается,* что жертва может найти достаточно пищи для пропитания, но при каждой встрече с хищником последний убивает жертву. Примеры таких межвидо- вых взаимоотношений дают волки и кролики; паразиты и некоторые ор- ганизмы, на которых они паразитируют. Наша цель — исследовать измене- ние во времени популяций хищников и жертв. Изучению взаимоотношений типа хищник — жертва в последнее время уделяли значительное внимание как экологи, так и математики. Обозначим соответственно через х=х(г) и y=y(t) количество жертв и хищников в момент времени t. Чтобы получить математические уравне- ния, которые приближенно описывают динамику популяций, мы сделаем несколько упрощающих предположений. Во-первых, предположим, Что норма рождаемости жертв хь и норма естественной смертности (те. без учета уничтожения хищниками) ха являются константами, причем хь >Ха- Таким образом, в отсутствие хищников популяция жертв будет расти со скоростью (xb — xd) х. Во-вторых, предположим, что число случаев, когда хищник убивает жертву, зависит от вероятности их встречи и, следо- вательно, пропорционально произведению ху. Объединяя эти два предполо- жения, получаем, что популяция жертв подчиняется обыкновенному диф- ференциальному уравнению dx —— = ах+Рху, (2.1.1) dt где a =xb-Xd>0,а 0< О. Чтобы вывести уравнение, описывающее популяцию хищников, пред- положим, что при отсутствии жертв число хищников по естественным причинам убывает, что задается членом уу. В то же время в результате встреч с жертвами число хищников увеличивается, что ведет к уравнению dy -—^уу + бху (2.1.2) dt та
с т < О и 8 >0. Таким образом, мы пришли к нелинейной системе двух обыкновенных дифференциальных уравнений dx dy = ах+0ху, -'ГУ + йху, (2.1.3) dt-------------------------------------------------------dt Где а>0, 0 < О, у < О и 8>0. Эти уравнения были впервые выведены в 1925 г., и известны как уравнения Лотки-Волътерра. Однако задача пока сформулирована не полностью; мы должны начать процесс в неко- торый момент времени (например, при t = 0) с заданными значениями начальных популяций х(0) и у (О). Таким образом, дополняем дифферен- циальные уравнения двумя начальными условиями х(О) =Х6, У(0) =Уо- (2-1.4) Задача о траектории Предположим, что ракета запускается под заданным углом наклона к поверхности (угол запуска). На какую высоту поднимется ракета? Ответ на этот вопрос зависит от целого ряда факторов: характеристик ракеты и ее двигателя, сопротивления воздуха, гравитационных сил и т.д. Чтобы построить математическую модель этой задачи, мы должны сделать ряд упрощающих предположений. Во-первых, ограничимся рас- смотрением ракет, поднимающихся вверх и перемещающихся вдоль по- верхности Земли на расстояния, не превышающие 100 км. В этом случае без существенной потери точности можем считать, что Земля плоская. Во-вторых, предположим, что вся траектория ракеты лежит в одной плос- кости, т.е. предполагается отсутствие бокового ветра и т.д. Используя z эти два предположения, выбираем двумерную систему координат с на- чалом в месте старта. Типичная траектория представлена на рис. 2.1. Рис. 2.1. Типичная траектория Как видно из рис. 2.1, функции x(t) и у (г) обозначают координаты х и у ракеты в момент времени t, причем считаем, что ракета стартует при t = 0, так что х(0)=у(0)=0. (2.1.5) Если обозначить производные по времени как x=dxfdt и у =dyjdt, то вектор скорости ракеты в момент t представится в виде v(г) = (х(г) ,у (г)). Будем обозначать величину вектора скорости через v(r), а его угол с горизонтом через 6(t), как это показано на рис. 2.1. Эти величины тогда определятся выражениями v(r)=l(*(O)a +Сг(0)311,а» 0(r) = arctg(y(r)/x(r)). (2.1.6) 28
Основная математическая модель траектории выводится из второго закона Ньютона d — (mv)=F. (2.1.7) dt Здесь т (г) — масса ракеты, F — результирующая действующих на ракету сил, которая состоит из трех слагаемых: (1) силы тяги при работе двига- теля, Г(т): (2) силы сопротивления cpstfn, . (2.1.8) где с — коэффициент сопротивления, р — плотность воздуха их— попереч- ное сечение ракеты; (3) силы гравитации mg, где g — ускорение сво- бодного падения. Чтобы записать уравнение (2.1.7) в переменных хи у, заметим, что сила тяги и сила сопротивления действуют вдоль оси ракеты. Если мы обозначим эту часть результирующей силы F через , то Fi = T-cpsv42. (2.1.9) Так как сила гравитации действует только в вертикальном направлении, уравнение (2.1.7) можно записать покоординатно следующим, образом: тх +mjc = Ficos0, ту +ту = FjSin0 — mg. (2.1.10) Используя (2.1.9) и меняя порядок членов, перепишем уравнения (2.1.10) в виде 1 / 1 _\ т , х =— IT------cpxir Icos0-----х. т \ 2 / т (2.1.11) - i / i л . у-—IT— — cpsirlsin0----------У—g. т \ 2 / т Это связанная система двух нелинейных (вспомните соотношения (2.1.6)) дифференциальных уравнений второго порядка. Мы предполагаем, что с их— известные постоянные, р — известная функция у (т.е. высоты над поверхностью), Т и т (а следовательно, и т) — известные функции fi. (Изменение массы обусловлено расходом топлива.) Решение системы (2.1.11) должно удовлетворять (2.1.5), что дает два из четырех необходимых начальных условий. Другие два условия даются соотношениями v(0)=0, 0(0) =0О- (2.1.12) Таким образом, при заданных характеристиках ракеты имеется только один свободный параметр — угол запуска 0О, причем его изменение будет, очевидно, привод ить к изменению траектории. Уравнения (2.1.11) могут служить математической моделью и для таких баллистических задач, как полет снаряда, выстреленного из артиллерийско- го орудия, или камня, запущенного из рогатки. В таком случае предпола-' 1аем, что тело стартует с заданной скоростью ц>, так что условия (2.1.12) 29
заменяются на условия v(O)=Vo, 0(0) =0О- (2.1.13) В этом случае отсутствует сила тяги н, следовательно, нет изменения массы, так что уравнения (2.1.11) упрощаются и принимают вид —срзи1 _ — ср sv2 Х =-----:--cos0, у=-------------sin0 — g, (2.1.14) 2m 2m который доказывает, что в такой упрощенной модели при заданных началь- ной скорости и угле запуска траектория зависит только от сопротивления воздуха и силы земного притяжения. Теперь наша задача заключается в решении уравнений (2.1.11) с началь- ными условиями (2.1.5) и (2.1.13)..Мы в дальнейшем будем использовать условия (2.1.13), поскольку они как частный случай v0 =0 включают ус- ловия (2.1.12). В том тривиальном случае, когда отсутствуют как сила тяги, так и сопротивление воздуха, эти уравнения допускают явное решение (упражнение 2.1.3). Однако при любом сколько-нибудь реальном задании плотности воздуха р и силы тяги такое решение оказывается невозможным и возникает необходимость в приближенном численном решении. Для численного решения удобно преобразовать два уравнения второго порядка (2.1.11) в систему четырех уравнений первого порядка. Диффе- ренцируя соотношения x = wcos0, j = wsin0, (2.1.15) имеем i’ = i>cos0 — w0sin0, у = iisin0 + u0cos0. (2.1.16) Подставляя теперь (2.1.15). и (2.1.16) в уравнения (2.1.11) и разрешая последние относительно о и в, получаем - 1 I 1 Л w v- — IT—. — cpsv21—gsinO--------v, (2.1.17) m \ 2 / m . g 0 = - —cos©. (2.1.18) о Уравнения (2.1.17) и (2.1.18) вместе с (2.1.15) составляют систему четы- рех уравнений первого порядка относительно функций х, у, v и в Началь- ные условия по-прежнему задаются соотношениями (2.1.5) и (2.1.13). Мы вернемся к численному решению задачи хищник - жертва и задачи о траектории после того, как рассмотрим основные методы, используемые для решения задач такого типа. Дополнительные замечания и ссылки 2.1 К сожалению, нам не известно никакого аналитического представления нетривиаль- ных решений задачи (2.1.3)-(2.1.4), поэтому мы вынуждены обратиться к прибли- женным методам решения это* Задачи. Основной темой этой книги являются числен- ные методы, заменяющие непрерывную задачу дискретной, которая затем решается на ЭВМ. Но здесь мы продемонстрируем другой подход к решению задачи (2.1.3)- (2.1.4), основанный на теории возмущений. При этом подходе исходная непрерывна 30
адача заменяется близкой к ней, но более простой непрерывной задачей, решение шторой может быть найдено аналитически. Первый шаг состоит в определении спииоиархых состояний (ха, у,), называемых акже точками равновесия. В нашем случае стационарные состояния определяются Формулами х = х,= -т/б, у=у,= -а/0, юскольку dxI ay I — = х,(а + 0у,) = О, —I =у4(-у + 6х4) = 0. А I («ж.У? * I 'азлагая правые части (2.1.3) в ряд Тейлора в окрестности точки (х„у,), получаем х(а+ру) = 0х,(у-.уу(т+бх) = бу,(х-х,) +... Ледователыю, в окрестности этой точки можем аппроксимировать исходные урав- 1ения (2.1.3) линейными х=?хг(у-yj, у = бу,(х —х4). (2.1.19) С помощью некоторых основных идей, используемых при решении дифферен- мальных уравнений, можно ноказать, *по решения системы (2.1.19) удовлетворяют «отношению СД.2И -Вх. «>. де с — некоторая постоянная, определяемая начальными условиями. Соотношение 2.1.20) - это уравнение эллипса с центром в точке (х/.Ур, причем различные начали- ме значения х(0) н у (0) задают разные эллипсы. На рис. 2.2 показано семейство Рис. 2.2 юдооных эллипсов с центрами в точке (х(, уг), причем стрелки указывают направ- ление, соответствующее возрастанию времени. Видно, что изменение популяций носит алогический характер: через определенное время популяции возвращаются к перво- начальному уровню. Такой анализ на основе теории возмущений может дать полезную информацию о введение решений (2.1.3) в окрестности стационарной точки. Поскольку уравнения 2,1.3) . аппроксимируются уравнениями (2.1.19), можно ожидать, что решения урав- нений (2.1.3) будут близки к эллипсам, являющиеся решениями уравнений (2.1.19). "то действительно подтверждается результатами численных расчетов, описываемых последующ» разделах этой главы. Дальнейшую информацию о проблеме хищник - жертва и о других задачах мате- нпнческой биолопш можно шйти в кшге [71]. Подробное изложение теории дви- хения ракет имеется, например, в книге[б7]. 31
УПРАЖНЕНИЯ 2.1 2.1.1. При каком соотношении коэффициентов а, Р, у н Б н каких уровнях популя- ций х н у в (2.1.3) будет обеспечена стабильность популяций (т.е. x(f + дг) = х(г) и у (t + ДГ) =у (г) при всех дг > 0) ? 2.1.2. Выведите формулы (2.1.6). 2.1.3. Покажите, что решение системы уравнений х=0, y = -mg с начальными условиями х(0) =у(0) =0, и(0) =и., 6(0) = е, выражается формулами х(г) = = (ugcose<)r, у (г) = -mgt*/2 + (vedneg) г. 2.2. Численное решение: однопаговые методы В предыдущем разделе мы привели два примера задач Коши для систем обыкновенных дифференциальных уравнений. Теперь рассмотрим такие задачи в общей постановке: — =Л(*,У1(*),--,3'Я(*)), Г»1,...,л, а<х<Ъ, (2.2.1) dx yt(fl)=yh i=l.......и. (2.2.2) Здесь ft — заданные функции, х — независимая переменная, yt — заданные начальные условия. Надо найти функции у,, являющиеся решением задачи (2.2.1.)—(2.2.2) на отрезке а Ъ. Как мы видели в предыдущем разде- ле, задача хищник — жертва приводит к двум, а задача о траектории - к четырем уравнениям первого порядка (см. упражнение 2.2.1). В приложе- нии 2 показано, что как одно уравнение высшего порядка, так и система уравнений высшего порядка могут быть сведены к системе уравнений первого порядка, так что задача (2.2.1)—(2.2.2) является весьма общей. Для простоты изложения в -дальнейшем ограничимся одним уравнением dy ---=f(x,y\ a<x<b, (2.2.3) dx с одной неизвестной функцией у и начальным условием J(a)=b (2.2.4) Далее, в конце раздела, покажем, что рассмотренные методы легко рас- пространяются на системы вида (2.2.1). ®о л-а Л?*-! лгж " ‘----------'““Г”" Рис. 2.3. Разбиение отрезка [в, 6] Хотя решение некоторых задача Копи может быть найдено аналити- чески, во многих случаях, в том числе для большинства задач, представ- ляющих практический интерес, такой путь оказывается невозможным. Цель настоящей главы состоит в описании способов построения приближен- ного решения задачи Коши с помощью численных методов, в частности конечно-разностных методов. Первый шаг на пути численного решения состоит в разбиении отрезка [а, д] на конечное число частей введением узловых точек а =х0< xt< ... 32
— - Xjf - b так, как это показано на рис. 2.3. Хотя неравномерное раз- биение отрезка не ведет, к каким-либо особым трудностям, для простоты изложения и анализа будем предполагать, что узловые точки делят отрезок на равные отрезки. Если обозначить через h расстояние между узлами (шаг сетки), то h=(b-a)INuxk=a + kh, (* = 0, 1,....ЛГ),гдеЛГ— (целое) число отрезков разбиения. В дальнейшем будем, через у(хк) обозначать значение точного решения (2.2.3) в точкехк,ачерезук — соответствующее приближенное значение, построенное с помощью рассматриваемого числен- ного метода. Рис. 2.4. Один шаг метода Эйлера Вероятно, простейшей численной схеме» является метод Эйлера, кото- рый определяется формулами Уо=У, Л+1=Уа+й/(*к.Ук). * = 0,1,...,ЛГ-1. (2.2.5) Вывод метода Эйлера очевиден. Из разложения Тейлора (см. приложе- ние 1) функции у в окрестности точки хк имеем Л2 y(xk+i)By(xk)+hyXxk)+—y"(zk)= й» „ =j(Jffc)+*r(Xfc,y(xfc))+—у (zk), (2.2.6) где гк пежит внутри отрезка [xk,Xj[+1].Mu всегда будем считать, что все выписываемые пооизводные действительно существуют. Если производ- ная у" ограничена, а шаг h мал, то можем отбросить последний член и, используя обозначение * в смысле ’’приближенно равно”, написать JOffc+i)^ j(Xfc)+й/(х*,Уа). Это и служит основой для (2.25). Геометрический смысл метода Эйлера заключается в аппроксимации решения на отрезке [хк, хк+1] отрезком касательной, проведенной к графику решения в точке хк (рис. 2.4). Метод Эйлера очень прост для реализации на ЭВМ: на шаге к вычисляется значение f(xk, ук), которое затем подставляется в (2.2.5). Таким образом, все необходимые операции, по существу, сводятся к вычислению f (xk,yk). Приведем теперь простой пример использования этого метода. Рассмот- рим задачу у’(х)=у2(.х)+ 2х—х4, у(0)=0. (2.2.7) Легко проверить, что точным решением этой задачи является функция у(х) =х2. Здесь/(х,у) =у2 + 2х—х4 и, следовательно, формулы метода .Дж. Ортега 33
Эйлера для (2.2.7) с учетом того, что хк = kh, принимают вид Лк+i =.У*+Л(Я+2*й-*4й4), * = 0,1...... Уо = 0. (2.2.8) В табл. 2.1 приведены некоторые значения, вычисленные по формулам (2.2 Д) при й = 0,1, и соответствующие значения точного решения. Таблица 2.1 Вымеленное по методу Эйлера и точное решети задачи (2.2.7) X У Численное решение У Точное ре- шение X У Численное решение Л’ Точное ре- шение 0,1 0,00 0,01 0,4 0,12 0,16 0,2 0,02 0,04 ол 0.20 0,25 0,3 0,06 0,09 0,6 0,30 0,36 Как видно из табл. 2.1, численное решение сильно отличается от точного и главный вопрос при использовании метода Эйлера или любого другого численного метода состоит в оценке точности приближенных значений у*. Вообще говоря, существуют два источника погрешности этих приближений: (1) ошибка дискретизации, возникающая в результате замены, дифферен- циального уравнения (2.2.3) разностной аппроксимацией (2.2.5); (2) оцибка округления, накопившаяся при выполнено! арифметических опера- ций по формулам (2.2.5). Мы рассмотрим ошибки округления позднее, а сейчас будем считать, что знамения ;ук в (2.2.5) вычисляются точно, так что погрешности обусловлены только ошибкой дискретизации. Введем вели- чину £(й)= max |y*-y(x*)L-/ (2.2.9) K*<JV называемую глобальной ошибкой дискретизации (иногда эту величину на- зывают глобальной ошибкой усечения). Отметим, что £(й) зависит от ве- личины шага й, поскольку предполагается, что приближения ук вычисляют- ся при заданном значении й. Интуитивно ожидаем и определенно надеемся, что при уменьшении й ошибка дискретизации будет убывать и, в частности, при стремлении й к нулю также будет стремиться к нулю. Мы не будем здесь давать полный анализ глобальной ошибки дискрети- зации, а удовлетворимся лишь тем, что покажем, как такой анализ обычно проводится. Во-первых, предположим, что точное решение у имеет на от- резке [«, й| ограниченную вторую производную;*": max |>’"(г) | =2И. (2.2.10) а<х<Ь Далее рассмотрим величину £(х, й) = ^-[у(х +й)->’(х)] -/(х,>>(х)), (2.2.11) й которая называется локальной ошибкой дискретизации метода Эйлера в точке х и служит мерой того, насколько разностная аппроксимация >*'(л) 34
отличается от/(х,у(х)). Предположим теперь, что ук равно значению точ- ного решения у^ск). Тогда разность между аппроксимацией по Эйлеру yk+i и точным решением >’(**+1) выражается формулой >’*+т = >’(**+1) ~ >'(**) — й/(хк,>,(хк)) = й£(хк,й). (2.2.12) Таким образом, умноженная на h локальная ошибка дискретизации равна ошибке на одном шаге метода Эйлера, стартовавшего с точного решения. Нас интересует максимум L (х, й) по х, так что определим локальную ошибку дискретизации метода Эйлера как £(й) = max |£(х, й)1. (2.2.13) а<х<Ь—А Отметим, что величина L (й) зависит как от величины шага й, так и от вида правой части дифференциального уравнения и от отрезка [а, й]. Мы, од- нако, выделили явно только зависимость отй .поскольку в предположении (2.2.10) с помощью разложения Тейлора, аналогичного (2.2.6), можно по- лучить оценку й £(Л) < — М = О(й). (2.2.14) Мы здесь воспользовались стандартным обозначением О(й) для величины, стремящейся к нулю при й ->0 с той же скоростью, что и й. В общем случае будем говорить, что функция ^(й) равна <7 (Л7’), если при й -*0 величина g (й) /й₽ ограничена. Задача теперь состоит в том, чтобы связать локальную ошибку дискрети- зации с „глобальной ошибкой дискретизации. Если обозначить ошибку у (хк) —ук через ек, то, согласно (2.23) и (2.2.12),получим <?*+! =У(**+1) ->’*+! =У(хк) + й/(хк,>,(хк)) + й/,(хк, й) — ~Ук-й/(хк,ук) = (2.2.15) = е* +й[-/(хк,у(хк))-/(хк,ук)] +й£(хк,й). Предположим теперь, что функция / имеет ограниченную частную произ- водную по второй переменной: <Mit а<х<Ь, 1>>|<<». (2.2.16) Тогда по теореме Лагранжа о среднем значении при некотором 0 < 6 < 1 имеем !/(**,Я**))-/(**. Ук) 1= I V I = Н- (**,М**) + (1-е)Ук)(У(*к)-Ук) <Miek. I Эу | Используя эту оценку и заменяя L (хк,й) на£(й),из (2.2.15) получаем 1ек+1 1<(1 +ЙМ,) 1ек 1 + й |£(й) I. (2.2.17) Полагая здесь св1+йМ1 и раскрывая последовательность в (2.2.17), °°1к^1М|<с |ек | + й |£(й) | <c* |ek_j | +сй 1£(Й) 1 + й 1£(й) I < ... ., .<с* jet 1+с*-1й 1£(й) 1 +...+сй1£(й) 1 + й Щй) I. (2.2.18)
Таблица 2.2 h Вычисленное значение Ошибка Отношение ошибок 1 2,000 0,718 1/2 2,250 0,468 0,65 1/4 2,441 0,277 0,59 1/8 2,566 0,152 0,55 1/16 2,638 0,080 0,53 В частности, оценка ошибки eN в конечной точке интервала будет содер- жать сумму N членов ckhL (й), каждый из которых равен О(Л2)- Так как JV= (b—a)/h, то сумма будет равна 0(h). Таким образом, у нас есть осно- вания ожидать, что будет справедлива следующая Теорема' 2.2.1 (ошибка дискретизации метода Эйлера). Если функ-. ция f имеет ограниченную частную производную по второй переменной и если решение задачи (2.23) — (2.2А) имеет ограниченную вторую произ- водную, то глобальная ошибка дискретизации метода Эйлера E(h) = 0(h). Чтобы эта теорема была доказана полностью, следует показать, что вёли- чина cN = (1 +hMt)N ограничена при h -*0. Доказательство этого извест- ного факта мы опускаем. Предыдущий анализ показывает, что глобальная ошибка дискретизации есть 0(h). Это обычно выражают утверждением, что метод Эйлера имеет первый порядок. Практическим следствием этого факта является ожида- ние того, что при уменьшении h приближенное решение будет все более точным и при стремлении h к нулю будет сходиться к точному решению с линейной скоростью по Л; т.е. мы ожидаем, что при уменьшении шага h вдвое ошибка уменьшится примерно в 2 раза. Такое поведение ошибки демонстрируется на следующем примере. Рассмотрим уравнение у' = >’, >’(0) = 1, решение которого есть >’(*) 3 = ех. Используя разные шаги h, мы по методу Эйлера нашли приближенные значения решения при х- 1 (см. табл. 2.2). Точное решение прих= 1 равно е = 2,718...; в среднем столбце таблицы дана ошибка приближенного ре- шения при разной величине шага. В крайнем правом столбце приведено отношение ошибок при последовательном делении пополам шага h. Из таблицы видно, что, как и следовало ожидать, это отношение близко к 1/2. Очень медленная сходимость при уменьшении h, которая, в частности, видна и из табл. 2.2, характерна для методов первого порядка и служит препятствием для их использования. Значительная часть остального мате- риала этой главы посвящена изучению других методов, погрешность кото- рых при стремлении h к нулю убывает с более высокой скоростью. Как при- мер одного из подходов к построению таких методов мы рассмотрим метод Хьюна, определяемый формулой h №+1 =№ ♦ ~[f(xk,yk)+f(xk+1,yk +hf(xk,yk))]. (2.2.19) Обратите внимание, что мы просто заменили f(xk,yk) в методе Эйлера на 36
.реднее значений функции Л вычисленных в двух различных точках. Это иллюстрирует рис. 25. Метод Хьюна известен также как метод Рунге - Кутта второго порядка и, как мы вскоре покажем, имеет локальную ошибку Дискретизации <2(й2). Наиболее знаменитым из методов Рунге — Кутта является классический метод четвертого порядка, задаваемый фор- мулой >’*+1 =>’* +—(Fi + 2F2 + 2F3 +F4), (2.2.20) О We . . . . I h h \ Fi =f(xk,yk), F2 =fck +y , yk +~Fib / й й \ F3 =f(xk +— , yk +— FA, \ At At f Fi-Axi#,, yk+hF3). Здесь f (xk,yk) в методе Эйлера заменено на взвешенное среднее значений Л вычисленных в четырех различных точках. Было бы поучительно пост- роить для этого случая рисунок, аналогичный рис. 2.5; это предлагается сделать в упражнении 2.2.9. В разделе 2.4 мы будем рассматривать методы, которые используют информацию, полученную на предыдущих шагах, т.е. ук+1 будет функцией Рис. 2.5. Метод Хыона не только ук, но и >’*_ t, Ук-2 и тд. В настоящем разделе мы имеем дело с методами, зависящими только от>’* и не использующими никаких преды- дущих значений. Такие методы называются одношаговыми и могут быть представлены в общем виде как Ук+i =Ук+^^(хк,ук) (2.2.21) с соответствующей функцией • В случае метода Эйлера функцией >р яв- ляется сама/, в то время как для метода Хьюна ,р(х, у) = у- [ /(х, у) +f(x + h, у + hf(x, у))]. (2.2.22) Метод Рунге - Кутта четвертого порядка (2.2.20) тоже является од ношаго- вым и соответствующая функция может быть записана в виде, аналогич- ном (2.2.22) (см. упражнение 2.2.5). 37
Для любого одношагового. метода (2.2.21) опеределим локально ошибку дискретизации аналогично методу Эйлера соотношением £(й) = шах 1£(х, й)|, a<x<b-h L(x, h) = -J- [ y(x +Й) ->’(*)] -4>(x, y(x)), (2.2.23) h где, как и раньше, >’(х) — точное решение дифференциального уравнения. Если для данной функции ч> окажется, что L (й) = O(hp) при некотором целом р, то при соответствующих предположениях относительно функций р и / можно показать, что глобальная ошибка дискретизации будет также порядка р по й, т.е. EQi)= max |у(х*)-у*1 = О(йр). (2.2.24) i<k<N Порядок метода (2.2.21) определяется как целое р, рря которого L (й ) = = О(йр). Такое определение порядка является некоторым утверждением о свойствах самого метода. При этом предполагается, что решение диффе- ренциального уравнения у имеет Ограниченные производные до определен* ного порядка. Например, для метода Эйлера мы показали, что р = 1 в пред- положении (2.2.10). Как будет продемонстрировано ниже, для других методов может потребоваться ограниченность производных решения и функции f более высокого порядка. Сравнительно несложно показать, что локальная ошибка дискретизации метода Хьюна есть О(й2), но мы получим это как следствие более общего анализа, который служит основанием для методов Рунге - Кутта. Давайте рассмотрим функцию <р, определяемую соотношением < р(х, y)=c2f(x, y)+c3/(x +cth,y + cihf(x, у)). Мы хотим выбрать константы ct, с2 и с3 так, чтобы максимизировать по- рядок одношагового метода (2.2.21), т.е. хотим найти наилучшую опреде- ляемую константами с2 и с3 линейную комбинацию двух значений f ив какой точке интервала при этом следует вычислять второе значение /, что задается константой с,. Разложим функцию <р в ряд Тейлора по двум переменным в окрест* ности точки (х, у). Разлагая сначала по переменной х, получаем < p=c2f+с3 [ f(x, у +с, hf) + cthfx(x. у +cthf) + с2 h2 ♦ -у- fxx (х,у +С1й/) + О(й3)], где обозначаем /*(х,у) просто как /, а частные производные по х - как /х и Воспользовавшись теперь разложением по у, где все встречающиеся частные производные вычислены в точке (х,у), имеем ¥> +у с? h^fyy + О(й3) + + с,й[А +ClhffXy + О(й2)] +ус? h2fxx +О(й3)) = 38
• с2 +с3у+С1С3Л(&у + А) + +у d c3h\pfyy + 2ffxy +fxx)+O(h 3). (2.2.25) С другой стороны, для точного решения дифференциального уравнения ;>(х) имеем 2- [>(х+й) - >(х)] =/(*)+ -J-/(х)й + т-/"(*)Л2 +<?(*’) = Л 2 о 1 df 1 d2f 1 =/+— Л ”7 +Т *’ "77 +o(h3)=f+- htffy+fx>* 2 dx 6 dx2 2 + — (ffyy + 2ffxy +/xx +fx fy ) + О(Л3). (2.2.26) 6 Объединяя теперь (2.2.25) и (2.2.26), получаем 4" (у(х+й)-.у(х)] -<Р(*.У(*))в й = (1 -са -с3)/+й(-|'-Whiffy +А)+ (2.2.27) + ~ (f2fyy + 2ffxy + fxx) + 4" (A fy +ff2y) + O(h3). 2 V3 / о Если мы потребуем, чтобы с2 +с3 = 1, ct с3 = 1/2, (2.2.28) то первые два члена в. (2.2.27) обратятся в нуль для любой функции f. Однако член fxfy +ffy в общем случае не будет тождественно равен нулю; так что, как бы мы ни выбирали константы, самое большое, чтомы можем иметь 4-[Я* + Л)-Я*)] -*(х.У(*)) = О(й2), (2.2.29) й что и буд ет выполняться всякий раз, когда удовлетворены условия (2.2.28) и все необходимые производные ограничены. Таким образом, L (й) = = О(й2) и все методы, выделенные условием (2.2.28), имеют второй по- рядок. Если положить Ci -7/2 и выразить с2 и с3 из двух уравнений (2.2.28) через 7> то мы получим функцию^,. всегда удовлетворяющую (2.2.28). Таким образом, метод К! \ 1/7 \1 1----|Д**.У*)+—/1** +“ Ук + Т“/С**,Лк>1| 7/ 7 \ 2 2 /J имеет второй порядок точности для любого значения у#0. Специальный выбор 7 = 2 дает метод Рунге - Кутта второго порядка (2.2.19) .Построе- 39
ft = 0,1,... кие методов Рунге — Кутта более высокого порядка и, в частности, мс,. да четвертого порядка (2.2.20) может быть проведено совершенно анало- гично, но требует более громоздких выкладок. Теперь покажем, как описанные выше методы, можно использовать для систем уравнений. Рассмотрим систему (2.2.1), которую запишем в векторной форме: y'(*)=f(x, J(x)). (2.230) Здесь у(х) — вектор с координатами yt (х),... ,yn(x), a f — вектор с координатами f\,... ,/п. Через у обозначим вектор, составленный из на- чальных значений (2.2.2). Тогда метод Эйлера (2.2.5) для системы (2.230) может быть записан как Уо=У, №+1=>’*+Л/(х*,№), Л = 0,1,..., (2.231) где УиУг> • • — векторы приближений к решению у в соответствующих точках. Мы могли бы, конечно, выписать соотношения (2.231) покоорди- натно; при л = 2 это бы выглядело так: >’10 =^1, >’20=>,2> Pl,*+1 ~>’lk +^/i(x*,>’i*,>’2* ) >’2,*+1 ~>’lk +*/2(**»>’lfc»>’2*) Очевидно, что краткая векторная запись (2.231) гораздо более удобна. Аналогично, метод Хьюна (2.2.19) для системы (2.230) может быть записан в векторной форме следующим образом: Л №+1 =Ук +у [/(**,№)+/(**+1.№ +Л/(х*»Л))]- (2.2.32) В упражнении 2.2.7 предлагается записать в векторной форме метод Рунге- Кутта четвертого порядка (2.2.20). Теперь кратко обсудим влияние ошибок округления, возникающих при реализации на ЭВМ методов этого раздела. Рассмотрим сначала метод Эйлера. Здесь имеется два источника ошибок округления. Во-первых, это ошибка, возникающая при вычислении f (хк,ук). Обозначим эту ошиб- ку через ек. Во-вторых, ошибка цк, возникающая при счете по самой фор- муле Эйлера. Таким образом, фактически вычисленные приближения ук удовлетворяют соотношениям >’fc+i ~Ук+Ь l/(xjt,>’jt) + е*] ft —0,1,... (2.2.33) Можно получить оценку влияния этих ошибок через оценки величин ек и 1}к. Мы, однако, ограничимся следующим интуитивным рассуждением. Как мы видели, глобальная ошибка д искретизации метода Эйлера стремит- ся к нулю при стремлении Л к нулю. Следовательно, за счет уменьшения шага h мы можем сделать ошибку дискретизации сколь угодно малой. Однако чем меньше h, тем больше потребуется шагов по методу Эйлера и, вообще говоря, тем больше скажутся на полученном решении ошибки ок- ругления. На практике, когда при выполнении арифметических опера- ций используются слова фиксированной длины, всегда существует такая величина шага h, меньше которой вклад ошибок округления начинает 40
^минировать в суммарной ошибке. Эта ситуация схематически изображена на рис. 2.6, где й0 определяет минимальный шаг, который можно исполь- зовать в практических расчетах. Эту минимальную величину шага очень трудно установить зарнее, но в задачах, где не требуется слишком высокая точность, необходимый шаг обычно будет значительно больше, чем этот минимум, и основной вклад в полную ошибку будет вносить ошибка диск- ретизации. Такое поведение характерно и для других методов, хотя мини- мальный размер шага будет меняться от метода к методу и от задачи к задаче. Рис. 2.6. Поведение ошибки в методе Эйлер* и других методах В заключение этого раздела приведем результаты некоторых простых расчетов для уравнении модели хищник — жертва, полученных в разделе 2.1. Напомним, что это были уравнения = ах + fix у, вуу+ Ьху, t > 'О, (2.2.34) dt dt с начальными условиями *(0)=хо. /(0)=Уо- (2.2.35) В дополнительных замечаниях к разделу 2.1 было показано, что точка х, = -у/8, У,и-«/0 является стационарной для системы (2.234) и что в окрестности точки (*»»Л) траектории решений (x(t),y(f)) при t >0 близки к эллипсам. В иллюстративных целях Мы выбрали начальные значения х0 и у0вблизи стационарной точки. Мы использовали также следующие, значения пара- метров: а = 0,25, 0 = -0,01, 7 = -1,00 и 8 = 0,01. При этих параметрах ста- ционарной является точка (х,,Э’я) = (100,25). Во всех случаях использо- вались начальные значения х0 = 80 и >’о = 30. На рис. 2.7—2.9 представлены приближенные решения задачи (2.2.34) — (2.2.35), полученные в результате использования некоторых из изложен- ных в этом разделе численных методов. Во всех случаях мы представи- ли х (численность жертв) и у (численность хищников) как функции вре- мени t в виде параметрических кривых на плоскости (х,у). При возраста- нии t движение происходит по часовой стрелке. На рис. 2.7 показаны три возможности, которые обычно доступны пользователям графических сис- тем. На рис. 2.7,а. нанесены только дискретные значения (xf,y,) (i s = 0,1,...), полученные численным методом, что подчеркивает дискретную природу этих методов. На рис. 2.1/5 эти точки соединены отрезками пря- мых, придающими приближению многоугольную форму. Это обычно са- мая простая возможность, реализуемая графопостроителем. На рис. 2.7,в 41
точки соединены гладкими кривыми. Эта возможность требует специаль- ного программного обеспечения, основанного на методах аппроксимации подобных тем, которые будут рассмотрены в разделе 5.2. На рис. 2.8 показана зависимость приближенного решения от велтгатнь шага й. Представленные на этом рисунке результаты получены по Merojr Эйлера (2.25). При этом использовались шаги 1,05 и 0,25. Видно, чг при уменьшении шага в два раза ошибка также уменьшается пример» в два раза, что соответствует сходимости со скоростью O(h). Ясне что ошибка весьма велика даже при h = 0,25. Рис. 2.7. Возможности графического вывода. Решение задач! (2.2.34)-(2.2.35) а) только данные; б) данные, соединенные отрезками; в) данные, интерполированные функцией Рис. 2.8. Метод Эйлера для задачи (2.2.34)-(2.2.35). Использованы три различии величины шага Рис. 2.9. Метод Рунге-Кутта второго порядка (раскручивающаяся спираль) при ша- ге Л = 1 в сравнении с "точным” решением задач! (2.2.34) - (2.2.35) 42
оавнения ’’точное” решение получено по методу tynre-Кутта широкого по- рядка. В целях сравняет с методами более низкого порядка так получен* ное решение вполне можно рассматривать как точное. На рис. 2.9 продемонстрирован эффект от использования метода второ- го порядка, а не метода Эйлера, имеющего первый порядок. Здесь ошибка при шаге й = 1 меньше, чем ошибка метода Эйлера при шаге й =0,25. Обратите внимание, что, как и в случае метода Эйлера, приближенное ре- шение представляет собой раскручивающуюся спираль, удаляющуюся от точного решения. Здесь, вероятно, уместно сделать несколько поясняющих замечаний. Конечно, задача (2.234) - (2.235) не моделирует абсолютно .точно физи- ческую ситуацию. Мы не учли многие факторы, такие, как ограниченность пищи для жертв, вмешательство других хищников, влияние погоды и тд. Такие упрощения были, в частности, необходимы и для возможности дать описание модели в этой главе. Действительной проверкой модели является сравнение полученных по модели результатов с конкретной физической ситуацией. Вычисленные решения задачи (2.234) - (2.2.35) сравнивались с фактическими данными, о популяциях видов. При этом оказалось, что форма кривой, представленной на рис. 2.7, в, весьма правдоподобно ап- проксимирует реальные данные, хотя, как и следовало ожидать, резуль- таты расчетов ведут себя значительно более гладко. Как и в случае реаль- ной ситуации, хищники не полностью истребляют свои жертвы. При умень- шении численности жертв популяция хищников также уменьшается, по- этому шансы жертв на выживание возрастают. Поведение популяции хищ- ников все время следует за изменением популяции жертв, и цикл повто- ряется. Дополнительные замечания и ссылки 2.2 Вероятно, наиболее простой с концептуальной точки зрения подход к построению одношаговых методов высокого порядка заключается в разложении решения в ряд Тейлора. Рассмотрим следующий "метод”: - У*+1 =>it+Ay’(Xjt)+yh2/'(Xjt) + . • + “Г У(₽)С**). (2.2.36) где у — точное решение. Легко видеть, что такой метод имеет порядок р. Старшие производные решения можно, в принципе, определить из самого дифференциального уравнения. Действительно, у'(х)=/(х,у(х)), d У" (*) = ~Ж У СО) “fx&. У СО) +Гу(х. УМ)У'М. (2.2.37) Затем мы заменяем y'(j%) на/(х*,у^) и аналогично поступаем со старшими произ- водными. Таким образом, этот метод при р = 1 является просто методом Эйлера, а прир= 2 принимает вид . а Уй+1 =Уй*Л7(хьУй)*— [/хС*ьУ*)+4(к*.У*)ЖьУ*)) и является методом второго порядка. Можно продолжить дифференцирование (2.2.37) и выразить более высокие производные решения у через старшие частные производные /(х,у), но получаемые при этом методы становятся чрезвычайно гро- моздкими. При определении выражений для этих производных в известной мере по- лезной оказалась техника символьных вычислений. Дальнейшее развитие методов на основе разложения в ряд Тейлора можно найти в книге [12]. 43
Методы Рунге - Кутта выше четвертого порядка могут быть построены, но толью за счёт еще больших затрат иа вычисление значений функции/. Методы Рунге - Куп* порядка р требуют р вычислений значений f при 2 <р<4, р+ 1 вычислений при 5 < <р < 7 и р + 2 вычислений при р > 8. Подробное обсуждение методов Рунге - Кутта имеется, например, в книгах [38,92]. Все хорошие программы, реализуюпме методы Рунге - Кутта, используют неко- торый механизм автоматического изменения шага интегрирования А. Интуитивно ясно, что если решение изменяется плавно, то можно вести интегрирование с отно- сительно большим шагом. В областях же, где решение изменяется резко, необходи- мо считать с маленьким шагом. Проблема заключается в том, как определить вели- чину шага, с которым следует начать следующий шаг интегрирования. Обычный под- ход состоит в оценке локальной ошибки дискретизации и, в зависимости от ее вели- чины, уменьшении или увеличении текущего значения шага. Существует несколько способов оценки локальной ошибки. Два простых способа состоят либо в прохожде- нии последнего шага интегрирования с половинным шагом и сравнении двух полу- ченных результатов, либо в использовании двух методов Рунге - Кутта, имеющих разный порядок. Оба эти способа требуют дополнительного вычисления значений f. В настоящее время,. по-видимому, самым эффективным является использование формул Рунге - Кутта - Фельберга. Эти формулы позволяют, например, применять метод Рунге - Кутта пятого порядка для оценки ошибки метода Рунге - Кутта четвер- того порядка таким образом, что требуется исего только шесть вычислений значе- ний /, в противоположность десяти при использовании обычных формул Рунге - Кутта. УПРАЖНЕНИЯ 2.2 2.2.1. Перепишите уравнения (2.1.3) модели хищник - жертва в виде (2.2.1), т.е. выпишите функции /, и . Проделайте то же самое для уравнений траектории (2.1.15), (2.1.17) и (2.1.18). 2-2.2- Примените метод Эйлера к задаче Коши у'= -у, OjSx<l,y(O) =1 сА = 0,25. Сравните ваши результаты с точным решением у(х) = е х. Повторите вычисления при меньших А. 2.2.3. Проверьте результаты расчетов, приведенные в табл. 2.1 и 2.2. 2.2.4. Примените метод Хьюна к задаче из упражнения 2.2.2. Сравните получен- ные результаты с результатами по методу Эйлера. 2.2.5. Выпишите функцию из (2.2.21) для метода Рунге - Кутта четвертого порядка (2.2.20). 2.24. Метод У*+1 =У* + */(х*+(А/2), у*+(*/2)/(х*,у*)) называются прави- лом средней точки. Покажите, что этот метод имеет второй порядок точности. 2.2.7. Запишите метод Рунге - Кутта четвертого порядка (2.2.20) для системы (2.2.30) в векторной форме. 2.2.8. Примените' метод Эйлера и метод Хьюна к задаче у'(х) вх’ + [у(х)]а, У (0) в 1,х> 0,и вычислите у, при А = 0,1. 2.2.9. Для метода Рунге — Кутта четвертого порядка (2.2.20) сделайте рисунок, соответствующий рис. 2.5. 2.2.10. Повторите представленные на рис. 2.8 вычисления, используй метод Эйле- ра с величинами шага 04 и 0,25. Насколько малым следует выбрать шаг, чтобы гра- фик решения на рисунке выглядел замкнутым? 2.2-11- Проверьте устойчивость решения уравнений 2.2.34 модели хищник - жертва по отношению к изменению начальных условий. Для этого измените начальные усло- вия х0 = 80, у, = 30 на единицу в каждом направлении (четыре различных случая) и повторите вычисления, используя метод Рунге - Кутта второго порядка. 2-3. Полиномиальная интерполяция Описанные в разделе 2.2 методы были одношаговыми, тл. методами, которые аппроксимируют значение >’ в хк+1, используя только информа- цию в предыдущей точке хк. В разделе 2.4 будут изложены методы, кото- рые используют информацию о нескольких предыдущих точках. Но для 44
чвития этих методов нам сначала необходимо рассмотреть полиномиапь- _4ую интерполяцию, которая и является темой настоящего раздела. Пусть нам заданы набор точек (узлов) *о»х1»- • • и соответствующий набор чисел >’о, yt• • • • ,Уп- Задача интерполяции заключается в построении такой функции g, которая удовлетворяет соотношениям g(xi)=yi, / = 0,1,...,и. (2.3.1) Существует много типов аппроксимирующих функций, но в этом разделе интерес для нас будут представлять полиномы. Непосредственно не вполне очевидно, что полиномами можно интерпо- лировать данные в заданных узлах. Если, например, данные заданы в трех различных узлах, то никакой полином первой степени (линейная функция) не сможет интерполировать эти данные, если только они не лежат на одной прямой. В то же время существует полином второй степени и множество полиномов третьей степени, которые будут интерполировать эти дайные. Основной результат для задачи полиномиальной интерполяции дает сле- дующая Теорема 2.3.1 (существование и единственность интерполяционного полинома). Если узлы x0,xlt... ,х„ различны, то для любых • • • ... ,у„ существует единственный полином р(х) степени не выше п такой, что ₽(*/)=А / = 0,1....и. (2.3.2) Доказательство. Существование может быть доказано построе- нием полиномов Лагранжа, определяемых формулами (х - х0) (х - х,)... (х - xf_ j )(х - х/Ч|)... (х - х„) = 1 (Xj - Xv)(Xj - X,)... (Ху- Xy_I)(X/- -X/+I) ... (X/ -x„) " f x-xk\ = П (---------1, j = 0,1,..., и. (2.3.3) *=o\xy-x* / **/ Легко убедиться, что эти полиномы, каждый из которых имеет степень п, удовлетворяют соотношениям Следовательно, полином /у (х)ру равен нулю во всех узлах X/ (/ = 0,1,... ..., л), за исключением узла Ху, где/у (Ху) >7 = >7. Полагая теперь р(х)= S /у(х)>’у, /=о (2.3.5) получаем полином степени не выше л, который интерполирует исходные данные. Для доказательства единственности предположим противное, т.е. пред- положим существование другого интерполяционного полинома fl(x) сте- пени не выше п. Полагая г(х) =р(х) - <у(х), получаем полином степени не выше л, который обращается в нуль вл+1 различных точках x0,xt,... ... ,х„. По основной теореме алгебры такой полином должен быть тож-
дественно равен нулю и, следовательно, р(х) =д(х). Таким оораэоь. единственность доказана.' Как пример полиномиальной интерполяции давайте построим полином не выше второй степени, такой, что р(— 1) = 4, р(0) = 1 и р( 1) = 0. Со- ответствующий интерполяционный полином (2.3.5) имеет вид (х - 0)(х - 1) л (х - (-1 ))(х -1). > ~ (-1))(х-0) _ ' (-1 _ 0) (-1 - 1) (0 - (-1)) (0 - 1) (1 - (-!))(! - 0) = 2х2 — 2х + 1 -х2 + 0 = х2 -2х + 1. Легко проверить, что р(х) действительно интерполирует эти данные. Естественно возникает вопрос о точности полиномиальной интерпо- ляции. Но сначала мы должны сформулировать, что мы здесь будем пони- мать под точностью. В самом деле, если имеем данные только в л -i-1 точ- ках и интерполяционный полином точно согласуется с данными в этих точках, то чего еще можно желать? . Обычно необходимость интерполяции возникает в ситуации, когда не- которая функция f определена на всем интересующем нас интервале, но ее значения известны только на дискретном множестве точек. В этом слу- чае интересно рассмотреть отличие р(х) от /(х) при значениях х, лежащих между узлами. Следующая теорема дает выражение ошибки через старшие производные функции f. Теорема 23.2 (ошибка полиномиальной шперполяции). Пусть функ- ция /(х) имеет и + 1 непрерывную производную на некотором интервале, содержащем [хо, х„], где х0 < х, < ... < х„ - различные углы. Тогда если р (х) - единственный полином степени не выше п, удовлетворяющий соотношениям Р(хд=Л.х1), f = 0,1..........и, то для любого х из указанного интервала (х - х0)(х - х.)... (х - х„) , ... /(х)-р(х)= i”----------------------/и+,)(2), (23.6) (л + 1)! где z — некоторая точка из интервала, содержащего х0, х„ и х. Мы приведем доказательство этой теоремы в дополнительных заме- чаниях к этому разделу. Здесь обсудим только некоторые ее следствия. Прежде всего, отметим, что если даже л не очень велико (например, 4 или 5), то, вероятно, все равно окажется сложно, если вообще возможно, вычислить производную порядка и + 1 от функции f. Даже если и = 1 (ли- нейная интерполяция) и нужна только вторая производная от f, ее тоже может оказаться невозможно определить, если сама функция f не задана, а известны только ее значения в дискретных точках; самое большее, что мы можем сделать, это получить некоторую оценку второй производной на основе наших предположений о свойствах функций f. Формула (23.6) только в очень редких случаях может быть использована для получения точ- ной оценки погрешности. Тем не менее она часто оказывается полезной для понимания внутренней природы возникающих ошибок. Давайте рас- смотрим пример, где предположим, что узлы X/ расположены равномерно 46
с шагом л. Тогда, как легко видеть, для любого х из отрезка [хо,х„[ I (х — х0) (х — х,). ..(х-х„) |<(л + 1)!й"+|, и из (2.3.6) имеем |/(х) -р(х) | <1Ий"+1, (2.3.7) ГДМ= max l/B+,)(z)|. xe<z<x„ Оценку (2.3.7) по-прежнему трудно использовать из-за входящей в нее величины М, но она оказывается полезной в следующем смысле. Предполо- жим, что мы хотим аппроксимировать функцию f на заданном отрезке [я, й] посредством кусочных полиномов, тл. функций, являющихся поли- номами на заданных подотрезках [я, й]. Если, например, а - То < 71 < • • ... < ур < ур+1 = й - некоторое разбиение отрезка [а, й] и g - некоторая функция, непрерывная на [я, й] и являющаяся полиномом на каждом интер- вале (7/, 7,+i) О' = 0,1,... ,р), то функция# называется кусочно-полино- миальной на [а й] . Приведем пример кусочно-квадратичной функции. Предположим, что функция) х | 0 г на отрезке [0,1] 1/2 задана значениями 1/6 1/3 2/3 5/6 1 1 / 1 1 3 2 1 0 2 1 1 Тогда функция g, определенная равенствами —54х2 +21 х + 1, О < х < 1/3, «(*) = 1/3 < х < 2/3, (2.3.8) -54х2 +93х-38, 2/3 < х < 1, является кусочно-квадратичной на [0,1] и совпадающей с / в заданных уз- лах; функция g непрерывна на всем отрезке и квадратична на каждой из частей [0, 1/3], [1/3, 2/3] и [2/3, 1]. График этой функции приведен на рис. 2.10. . Рис. 2.10. Кусочно-квадратичная функ- ция О 1/0 1/31/2 2/3 S/9 1 Рассмотрим теперь ошибку аппроксимации функции f функцией g из (2.3.8). Пусть М — оценка сверху абсолютной величины третьей произ- водной от/ на всем отрезке [0,1]. Тогда на каждой из его частей (0,1/3], [1/3, 2/3] и [2/3, 1] можно применить оценку ошибки (2.3.7); здесь й = 1/6 и п = 2. Поэтому |/(х)-Нх) I < й3М < JU/63, 0 < х < Г. (2.3.9) Без дальнейшей информации относительно М эта оценка мало что дает в количественном отношении. Но она, тем не менее, показывает, как влияет 47
на оценку погрешности шаг h между узлами интерполяции. Действительна если разбить отрезок на шесть, а не на три части и составить кусочно-квадра- тичную функцию g из квадратичных полиномов на этих шести отрезках, то шаг h будет равен 1/12 и оценка (23.9) примет вид IZO) - g(x) | < , т.е. величина оценки уменьшится в восемь раз по сравнению с оценкой в случае трех частей разбиения. Конечно, это не означает, что фактическая ошибка при этом уменьшается в восемь раз. Аналогичные рассмотрения можно провести и в случае использования кубичных полиномов и полино- мов более высокого порядка. Хотя, как показывает теорема 2.3.1, интерполяционный полином являет- ся единственным, имеется несколько других способов получения или пред- ставления этого полинома, не опирающихся на полиномы Лагранжа. Вероятно, наиболее фундаментальный подход состоит в следующем. Пред- ставим интерполяционный полином р в виде р(х)=д0 +atx +... +апхп и потребуем, чтобы выполнялись условия «о ♦ — +Лцх" = У1, 1 “ 0,1...«- (2.3.10) Так как величины xt и известны, это просто система п + 1 линейных уравнений с л + 1 неизвестными а0, а/, .... ап. Запишем эту систему в матричной форме: через V, называется матрицей Вандермонда и, если всех/ различны между собой, является невырожденной. Последнее утверждение довольно легко доказать непосредственно, однако мы его уже установили косвенно .с по- мощью теоремы 2.3.1, которая показывает существование и единственность интерполяционного полинома. Действительно, если бы матрица V была вырожденной, то при данных узлах интерполяционный полином либо вообще не существовал, либо таких полиномов'было бы бесконечно много Подход на основе матрицы Вандермонда иногда полезен для теоретиче- ских рассмотрений, нц для практического построения полинома ои мало пригоден. Для этих целей обычно лучше использовать полиномы Лагранжа, но и они оказываются неудобными, если к набору данных нужно добавить или удалить из него какой-либо узел. Если, например, мы хотим добавить к набору данных (xf,yf) (i = 0, 1,..., л) точку (xn+i, x»+i) и составить полином степени , л + 1, интерполирующий эти данные, то нам придется пересчитать все полиномы Лагранжа.Имеется, однако, другое представление 48
ополяцнонного полинома, которое очень полезно именно в этом случае. jto представление Ньютона, к описанию которого мы теперь переходим. Предположим, что точки х/ расположены равномерно с питом h. Опре* делим разности д анных у < какДуг =Ут+1 — Ут, а разности более высокого порядка как результат повторного применения згой операции: Д2Уо = ДУ1 - Дуо аУ2 - 2У1 +Уо, Д’уо = Д2у, - Д2у0 = У» - 3 уг + Зл - у0, min (п \ / л \ . ... J Jyn-i ♦( 2 1Р»-2 где, как обычно, биномиальные коэффициенты задаются формулой л\ л(л-1)...(л-/+1) / /= 71 С помощью разностей (2.3.12) определим наш полином степени л как Ри(х)=у0 (х - х0) (х - х0)(х - х,) +---------ДРо +--------------Д2Уо + - п £п (х - х0)(х - х,)... (х - Х„_! ) Ро- (2.3.13) л!й" Очевидно, что р„(х0) = у0, так как все остальные члены в (2.3.13) обра- щаются в нуль. Подобным же образом имеем Рл(Х1)=Ро +-----7--(Pi -Ро)=Рг, й , х . (х2-х0), v . (*a-*o)(*2-Xi)z n Рл(х2)=Po +---------(Pi —Po) +----TT5------(P2 -2y 1 +Уо) - ft 2ft =Po + 2(yi - Уо) + (Pa - 2y> +y0)=y2. Аналогичным образом можно убедиться,что р„(х/) = у/ (/ = 3,..., л), хотя вычисления при этом становятся все более утомительными. Интересно отметить, что вид полинома р„ в (2.3.13) аналогичен пер- вым и + 1 членам разложения Тейлора в точке х0. Предположим теперь, что мы добавили к набору данных точку (x„+i, Pn+i). Тогда полином p„+i, удовлетворяющий условиям ра+т(хт) - Ут (i =0,1...л + 1), можно записать в виде ' ( t (x-XoKx^Xi) .(х-хп) АИ+1 ри+! (х) = р„(х) +----- -------------Д"+1у0. (л +1)! Ля+| Именно выражаемое этой формулой свойство представления Ньютона для . Дж. Ортега 49
интерполяционного полинома делает в ряде случаев это представление особенно полезным для практики. В следующем разделе воспользуемся интерполяционными полиномами для построения других методов решения дифференциальных уравнений. Они также окажутся полезными и в других частях этой книги Дополнительные замечания и ссылки 2.3 Приведем доказательство основной теоремы 2.3.2 об ошибке полиномиальной интерполяции. Предположим, что х + х/ (/ = О, 1, .... л). В противном случае обе части (2.3.6) равны нулю и результат тривиален. Зафиксируем теперь х и. введем функцию #(») я/(») -Р(») -ч(х)Ф(»), где *(») (» - х,)(» - х,)... (а - х„), ч(х) = (/(х) -р(х))/ф(х). Очевидно, что <е (х/) = 0 (/ = 0, 1.п) и (х) " 0. Таким образом, v имеет по край- ней мере л + 2 различных нуля х„ х,. —,х„, х. Тогда в результате последовательного применения теоремы Ролля получаем, что функция v* имеет по крайней мере л + 1 различный нуль, - по крайней мере л различных нулей и т.д. В частности, имеет по крайней мере одни нуль г на интервале, натянутом на точ- ки х,, х,....х„, х. Но поскольку р - полином степени л, а ф - полином степе- ни л +1, то /"+*)(,) =/<"**)(,) -₽<"*»(,) -Ч(х)^("+,)(г)я =/(и+1)(») -(л + 1) !fl(x). Следовательно, 0 = /”+1>(г) =/(и+1>(2) - (л +1) ! «(х). Выражая отсюда q (х), приходим к (2.3.6). Более полное рассмотрение проблемы интерполяции можно найти, например, в книг» [100,111). УПРАЖНЕНИЯ 2.3 2.3.1. Постройте полином р второй степени, удовлетворяющий условиям р(0) = 0, р(1) = 1 ир(2) = 0, с помощью всех трех методов, т.е. используя полиномы Лагранжа, матрицу Вандермонда и представление Ньютона. Убедитесь, что все три полинома оказываются одинаковыми. 2.3.2. Пусть /(х) = sin(wx/2) и пусть р - полином из упражнения 2.3.1, совпадаю- щий с f в точках х = 0,1, 2. Используйте (2.3.7) для получения оценки |/(х)-р(х) | на отрезке [0, 2]. Сравните эту оценку с фактической ошибкой в некоторых точках интервала в, в частности, при х« 1/4 их = 3/4. 2.3.3. Найдите кусо<но-линейную и кусожю-квадряпгаую функции, соответствую- щие следующим данным: х | 0 1/6 | 1/3 | 1/2 | 2/3 f | 1 4| 1 I -1 I 2~ Вышслите оценки ошибок для этих функций на отрезке [0,1], считая, что функция / такова, что |/и(г)|< 4, |/"’(z)| < 10, 0<z<. 1. 2.3.4. Пусть /(х) = sinx и пусть р и q - два полинома третьей степени, удовлетво- ряющие условиям р( 1/3) =4(1/3) =/(1/3), 1 = 0,1,2,3. Получгте оценку для Г р(х) - —ч(х) I, справедливую на всем отрезке [0,1|. 50 5/6 1 ~4 О”
-.4. Численное решение: многошаговые методы Мы вернемся теперь к задаче Коши у‘=/(х,у), a<x<b, у(а)=у. (2.4.1) В методах раздела 2.2 значение зависело только от информитии в предыдущей точке хк. Кажется вполне вероятным, что можно добиться большей точности, если использовать информацию о нескольких предыду- щих точках х*. x*-i. — Именно так и поступают в многошаговых методах. Большой и важный класс многошаговых методов возникает на основе следующего подхода. Если подставить в (2.4.1) точное решение у(х) и проинтегрировать это уравнение на отрезке [х*, х*+, ], то получим **+1 Я**+1)-у(х*) = f y'(x)dx = **+i «*+1 = f f(x,y(x))dx^ f p(x)dx, (2.4.2) xk xk где в последнем члене предполагаем, что р(х) — полипом, аппроксими- рующий /(х, у(х)). Чтобы построить этот полином, предположим, как обычно, что ук, y*-i, - приближения к решению в точках Хк, x*_i, .... x*_jv. Мы по-прежнему считаем, что узлы х{ расположены равномерно с шагом й. Тогда = /(х/, yf) (1 = к, к — 1,.... к— N) есть приближения к /(х, у(х)) в точках х*. х*_!,....x*„/v, и мы в качест- ве р возьмем интерполяционный полином для набора данных (х,, //) (f = к, к - 1,.... к— N). Таким образом, р - полином степени N, удовлет- воряющий условиям р(х{) = ft (i = к, к — 1, ...» к — N). В принципе, можем проинтегрировать этот полином явно, что ведет к следующему методу: ** Ук*1=Ук + f p(x)dx. (2.4.3) Хк В простейшем случае, когда N = 0, полином р есть константа, равная А, и (2.4.3) превращается в обычный метод Эйлера. Если N= 1, то р естьлиней- ная функция, проходящая через точки (x*_lf fk-i) и (х*, /*),т.е. (.Х-Хк)~ (х-х*_1) Р(х) =-----~fk~l +-------------fk. ft ft Интегрируя этот полином от х* до х*+!, получаем следующий метод: Ук+i ~Ук + (^fk -А-i)» (2.4.4) который является двубсшаговым, поскольку использует информацию в двух точках х* и х*_ >. Аналогично, если N = 2, то р есть квадратичный • 51
полином, интерполирующий данные (х*_2, А-2). (•**_1> fk-i) - (x*t f к ) . а соответствующий метод имеет вид Jfc+i =Ук +-^-(23fk - 16А-! +5Д-2). (2.4.5) Если /V = 3, то интерполяционный полином является кубическим, а соот- ветствующий метод определяется формулой =Ук +-^(55 fk-59+37/k_2 -9Л_3). (2.4.6) Отметим, что метод (2.4.5) является трехшаговым, а (2.4.6) — четырех- шаговым. Формулы (2.4.4)—(2.4.6) известны как методы Адамса - Башфорта. Как мы увидим в дальнейшем, метод (2.4.4) имеет второй порядок точно- сти, поэтому его называют методом Адамса - Башфорта второго порядка. Аналогично, методы (2.4.5) и (2.4.6) называют соответственно методами Адамса - Башфорта третьего и четвертого порядков. Мы, в принципе, мощи бы продолжить этот процесс и, используя все большее число преды- дущих точек, а следовательно, и интерполяционный полином р более высо- кой степени, получить методы Адамса — Башфорта сколь угодно высокого порядка. При этом с ростом N формулы становятся все более громоздки- ми, но принцип остается тем же. Многошаговые методы порождают пробтему, которая не возникала при использовании одношаговых методов. Эта проблема становится понятной, если, например, рассмотреть метод Адамса — Башфорта четвертого поряд- ка (2.4.6). Нам задано начальное значение у0, но при к = 0 для счета по формуле (2.4.6) необходима информация в точках x-i, x-j и х_з, кото- рая, естественно, отсутствует. Сложность заключается в том, что многоша- говые методы в начале работы нуждаются в помощи. Мы не можем исполь- зовать (2.4.6) при к < 3 или (2.4.5) при к < 2. Обычный выход из положе- ния состоит в использовании какого-либо одношагового метода того же порядка точности, например метода Рунге — Кутта, до тех пор, пока не будет получено достаточно значений для работы многошагового метода. Или же можно на первом шаге использовать одношаговый метод, на вто- ром - двухшаговый и так далее, пока не будет получено достаточно старто- вых значений. При этом, однако, существенно, чтобы эти стартовые значе- ния были вычислены с той же степенью точности, с какой будет работать окончательный метод. Так как стартовые методы обычно имеют более низкий порядок, вначале приходится считать с меньшим шагом и использо- вать больше промежуточных точек. Методы Адамса—Башфорта используют уже сосчитанные значения в точ- ке х* и в предыдущих точках. В принципе, при построении интерполяцион- ного полинома мы можем использовать и точки xk+i, х*+2 и т.д. Простей- ший случай при этом состоит в использовании точек х*+1, х*,.... xk~n и построении интерполяционного полинома степени N+ 1, удовлетворяющего условиям p(-ty) = ft (1 = к + 1, к, .... к— N). При зим возникает класс методов, известных как методы Адамса - Моултона. Если N = 0, то р — линейная функция, проходящая через точки (xfc, /*) и (x*+i, /*+1). и 52
оответствующии метод Jk+l ~Ук + '^(А+1 +/к) (2.4.7) является методом Адамса - Моултона второго порядка. Если N = 2, то р - кубический полином, построенный по точкам (JCjt+i, A+i), (**,/*), (xa-i> fk-i) и (x*_2, A-2), и соответствующий метод Jk+i =Ук + 19А - 5 A-i +А-г) (2.4.8) является методом Адамса - Моултона четвертого порядка. - Заметим теперь, что в формулах (2.4.7) и (2.4.8) значение A+t неиз- вестно. Дело в том, что для вычисления /Хх*+1, №+1) = Д+1 нужно знать значение ja+i, которое само пока является неизвестным. Следовательно, методы Адамса — Моултона определяют у*+1 только неявно. Так, напри- мер, соотношение (2.4.7) действительно является уравнением Jk+i (2.4.9) относительно неизвестного значения J4+1. То же самое справедливо и отно- сительно (2.4.8). В силу этого методы Адамса — Моултона называются неявными. В то же время методы Адамса — Башфорта называют явными, поскольку они для нахождения значения Jk+i не требуют решения никаких уравнений. На практике обычно не решают непосредственно уравнение (2.4.9), а используют совместно явную и неявную формулы, что приводит к методу прогноза и коррекции. Одним из Широко используемых методов прогноза и коррекции является объединение методов Адамса четвертого порядка (2.4.6) и (2.4.8): У&У* +^-(55Д -59Л-! +37Л-2 -9А_3), /*+1 в/(х*+1. Ук+1)» (2.4.10) =№ +^(9/^Й + 19А -5Д-, +Д-г). Обратите внимание, что в целом этот метод является явным. Сначала по формуле Адамса - Башфорта вычисляется значение j**,, являющееся "прогнозом'’ для jk+I. Затем используется для вычисления прибли- женного значения А+|, которое в свою очередь используется в формуле Адамса - Моултона. Таким образом, формула Адамса — Моултона "кор- ректирует” приближение, даваемое формулой Адамса — Башфорта. Вернемся теперь к вопросу об ошибке дискретизации и, чтобы не загромождать изложение, рассмотрим подробно только метод Адамса—Башфорта (2.4.4). Аналогично формуле (2.2.23) для одношаговых 53
методов, определим локальную ошибку дискретизации в точке х ка: L(x, й) = ^{у(х+й)-у(х) -1 [3/(х,у(х))-/(х-й, у(х-й))]), (2.4.11) где у(х) — точное решение дифференциального уравнения. Так как у * (х) = f (х, у.(х) ), можем переписать (2.4.11) в терминах у и у * и затем разложить у и у’ в ряд Тейлора в окрестности точки х. В результате получим Их, Л) = |у(х + й) -у(х) [ЗУ(х) —У(х - й)] | = = £ {*/(*) ♦£/'(*) +£/"(*) + £/4)(*t)- - j [ 3/(X) -У(х) + йУ’(х) - у"\х) + £y4>(z2)] ] = = -^ й1 2У"(х) +^-y(4)(z1)(2.4.12) JL X 1 л» где z 1 и z2 — промежуточные точки, входящие в остаточные члены форму- лы Тейлора. Предполагая теперь, что четвертая производная решения огра- ничена (а следовательно, ограничены и всё младшие производные),видим, что локальная ошибка дискретизации удовлетворяет соотношению £(й)= max | £(х, й) | = О(й2), (2.4.13) а < х < b—h которое показывает, что данный метод имеет второй порядок точности. Мы могли бы определить локальную ошибку дискретизации отдельно для каждого упомянутого в этом разделе метода. Однако все эти методы представляют собой частные случён линейных многошаговых методов и описываются общей формулой m m Jk+l = 2 «/Jk+i-f+ft S 0f/jt+l-i, (2,4.14) i = 1 1=0 где, как обычно, f/ = f(x/, y/),m — некоторое фиксированное целое. Методы (2.4.14) называют линейными, потому что у*+1 является линейной комбинацией значений У/ и /). Если 0О = 0, то формула (2.4.14) опреде- ляет явный метод. Если же 0О & 0, то метод оказывается неявным. Во всех методах Адамса Oj =1 и at =0 (/ >1); в методах Адамса—Башфорта 0о = 0; в методах Адамса - Моултона 0О 0.. Для общего линейного многошагового метода (2.4.14) определим локальную ошибку дискретизации в точке х как 1 m -ш. Ь(х,й) = -[у(х + й)~ 2 aty(x-(i- 1)й)]- I = 1 54
- E ft/(x,y(x-(f-l)ft)) = l = 0 m m = т[Ях + Л)- S a/y(x-(i-l)ft)]- S fity'(x-(f-l)b) ial ,= 0 (2.4.15) и локальную ошибку дискретизации как £(Л) = max |£(х, Л)|. (2.4.16) а < х < b-h Для любого конкретного метода, т.е. для любых заданных значений т и констант а/ и fit, можно с помощью разложений Тейлора для функций у и у' в точке х вычислить локальную ошибку дискретизации. В частности, при соответствующих предположениях о дифференцируемости решения можно показать, что методы Адамса — Башфорта (2.4.5) и (2.4.6) имеют третий и четвертый порядки соответственно, в то время как методы Адамса — Моултона (2.4.7) и (2.4.8) имеют второй и четвертый по* рядки. В упражнении 2.4.6 предлагается провести доказательство этих утверждений. После того как локальная ошибка дискретизации найдена, воз- никает задача оценки глобальной ошибки дискретизации, которая, как и в случае одношаговых методов, определяется выражением 7(Л) = max |y(xk) — у* |. В общем случае эта задача является до- 1 < к < N таточно трудной, но при соответствующих предположениях относительно оункции / и решения у можно показать, что для всех методов этого ъс. 2.11. Метод Рунге - Кутт* второго порядка (внешняя спираль) в метод второго юрядка прогноза и коррекции Адамса (внутренняяспираль), в обоих случаях шаг 1 = 1; для сравнения сплошной линией изображено ’’точное” решение задачи (2.2.34) — 2.2.35) he. 2.12. Методы второго порядка Адамса - Башфорта и прогноза и коррекции Адам- а в сравнении с "точным” решением задачи (2.2.34) - (2.2.35) 5S
Методы этого раздела представляют привлекательную альтернатив" одношаговым методам раздела 2.2. Оказывается, что можно построить методы высокого порядка, которые требуют только одного вычисления значения / на шаге. И хотя эти методы не являются самостартуюшими, наиболее эффективные из имеющихся в настоящее время программ для ЭВМ основаны на методах Адамса высокого порядка. (См. дополнительные замечания в конце этого раздела.) Рис. 2.13. Метод второго порядка прогноза и коррекции Адамса для задачи одраек- тории (2-4.17) - (2.4.18). Показаны траектории для двух начальных углов В заключение этого раздела вернемся к примерам задач из раз- дела 2.1. На рис. 2.9 показано прибшженное решение уравнений задачи хищник — жертва (2.2.34)—(2.2.35), полученное по методу Рунге-Кутта второго порядка. На рис. 2.11 мы к этому добавили приближенное реше- ние, полученное по методу прогноза и коррекции, который использует формулы Адамса - Башфорта (2.4.4) и Адамса — Моултона (2.4.7) и выписан явно в упражнении 2.4.5. Отметим, что ошибки этих двух методов второго порядка сравнимы по величине, хотя спираль одного принижен- ного решения раскручивается внутрь, а другого наружу. В обоих случаях счет проводился с шагом h = 1. На рис. 2.12 решение по методу прогноза и коррекции второго порядка, показанное на рис. 2.11, сравнивается с методом Адамса — Башфорта вто- рого порядка. Обратите внимание, какое сильное влияние оказывает шаг коррекции на метод Адамса — Башфорта; точность несколько улучшается, но, что более примечательно, спираль приближенного решения теперь развертывается внутрь, а не наружу. Расчеты по обоим методам по-прежне- му проводились с шагом Л = 1. Обратимся теперь к задаче о траектории, рассмотренной в разделе 2.1. Система обыкновенных дифференциальных уравнений, описывающая полет снаряда, задается уравнениями (2.1.15), (2.1.17) и (2.1.18) с Т = О и m = 0: x = i>cos0, y = wsin0, 1 • g (2417) w = — cpsv2 — gsin0, fl= —— cosfl, 2m ° v •*. и начальными условиями x(0) = 0, y(0) = 0, v(O) = wo, 0(0) = 0O- (2.4.18) 56
1ри расчетах в (2.4.17) использовались следующие значения параметров: т = 15 кг, с = 0,2, р= 1,29 кг/м, s = 0,25 м2 ng = 9,81 м/с2. Начальное зна- чение скорости в0 в (2.4.18) бралось равным 50 м/с. Использовались два различных значения начального угла: 0О = 0,6 и 1,2 рад. Траектории полета снаряда показаны на рис. 2.13. Дополнительные замечания и ссылки 2.4 На основе методов Адамса разработан целый ряд тонких и весьма сложных программ для ЭВМ. В этих программах методы Адамса реализованы таким образом, что имеется возможность менять не только величину шага, как это упоминалось при обсуждении методов Рунге - Кутта, но и порядок самого метода. В используемых в настоящее время программах порядок точности может достигать тринадцати. Даль- нейшее обсуждение теории и практики использования методов Адамса можно найти, например, в книгах |11, 37-38]. Прекрасный обзор положения дел к середине 1970-х годов в области разработки и применения программ как для методов Рунге - Кутта, так и многошаговых методов-дан в работе 1103]. В этой статье подчер- кивается тот важный момент, что различия в программной реализации методов на ЭВМ могут оказаться более существенными, чем различия внутренних свойств самих методов. Другой подход к построению многошаговых методов исходит из общей формулы линейного метода (2.4.14) и требует, чтобы она была точной, когда решение у диф- ференциального уравнения является полиномом степени q. Отсюда будет следовать, что полученная формула определяет метод порядка q. Если, например, q = 1, то фор- мула (2.4.14) должна быть точной, если решение является константой; тогда все ft обращаются в нуль (так как fix,у (*)) = у' (х) - 0) и мы приходим к условию т 1 = X О/. (2.4.19) / = 1 Аналогично, требование точности формулы (2.4.14) для решения у(х) = х ведет к условию т + 1 = а,т +«,(»»-I) + ... + ат + S 0/. (2.4.20) 1=0 Условия (2.4.19) и (2.4.20) называются условиями согласованности многошагового метода. Эти условия являются необходимыми и достаточными для того, чтобы метод имел первый порядок точности. Этот процесс можно продолжить и получить условия иа коэффициенты а/ и 0/, которые являются необходимыми и достаточными, чтобы метод имел любой требуемый порядок точности. Дальнейшее обсуждение многошаго- вых методов имеется, например, в книгах (37,92]. Мы можем объединить одношаговые методы раздела 2.2 и многошаговые методы этого раздела в одну общую формулу: И| г*+1 = £ а1г*-ц_) + Л^(х»+1.х*....**+!_«;у»+1, )’»......Ук+1-m)- (2.4.21) 1=1 Для одношаговых методов т - 1. Если при этом ах = 1 и функция <р ие зависит от Xfc+l и j’fc+i, то (2.4.21) превращается в одношаговый метод (2.2.21). С другой стороны, если функция имеет вид т Ч>- Е 0,7'(xfc+i_,-, Ук+1-г), 1 = 0 то формула (2.4.21) превращается в линейный многошаговый метод (2.4.4). Формула (2.4.21) фактически включает все используемые в настоящее время методы. 57
УПРАЖНЕНИЯ 2.4 2.4.1. Выпишите интерполяционный полином второй степени по данным (Хк-2> /к-2)> (*к-1» /к-1)* (*к» /к)- Затем подставьте этот полином в (2.4.3), проин- тегрируйте и получите формулу (2.4.5). Аналогииым образом, проинтегрировав полином третьей степени, полученный в результате добавления к данным точки (*к-3. /к-з).выведите формулу (2.4.6). 2.4.2. Составьте программу для ЭВМ, реализующую метод Адамса - Башфорта второго порядка (2.4.4). Для вычисления недостающего стартового значения yt вос- пользуйтесь методом Гунге - Купа второго порядка. Решите по вашей программе задачи из упражнений 2.2.2 и 2.2.4 и сравните ваши результаты с методами Эйлера и Хьюна. 2.4.3. Снова выполните упражнение 2.4.2, используя метод Адамса - Башфорта четвертого порядка (2.4.6). 2.4.4. Проведите подробный вывод метода Адамса - Моултона (2.4.7). Проделайте то же самое для метода (2.4.8). 2.4.5. Используйте как можно большую часть вашей программы из упражнения (р) 2.4.2 для составления программы, реализующей метод прогноза и коррекции yk+i = = J’k* (/»/2)(3/k-/k-i)./kS=/Uk+i. 4?j).yk+l =№+ (Л/2)(/Й)+А)-Реши- те по этой программе ту же самую задачу у* - —у, у(0) -1, и сравните ваши резуль- таты с методом из упражнения 2.4.2. Составьте также программу для метода (2.4.10). 2.4.6. Вычислите локальную ошибку дискретизации для методов Адамса - Башфор- та (2.4.5) и (2.4.6) и покажите, что эти методы имеют третий и четвертый порядок соответственно. (Считайте, что решение достаточтое число раз дифференцируемо.) Проделайте то же самое для методов Адамса - Моултона (2.4.7) и (2.4.8) и убедитесь, что они имеют соответственно второй и четвертый порядки. 2.4.7. Для методов Адамса - Башфорта и Адамса - Моултона второго, третьего и четвертого порядков выпишите коэффициенты а/ и 0/ в общей формуле линейного многошагового метода (2.4.14). 2.4Л. Рассмотрите метод j’jt+i = yk-i ♦ (Л/2) (/к+1-+ 2/к */к-1) решения задачи Коши у*(л) - /(х,у(х)), у(0) =а: а) определите порядок метода; б) подумайте, как применить этот метод к системе уравнений у* =/(*, у), у (0) « а, какие при этом могут встретиться трудности. 2.4.9. Повторите вычисления из рис. 2.12, используя метод Адамса - Башфорта второго порядка и метод прогноза и коррекции из упражнения 2.4.5. 2.4.10. Повторите вы<исления из рис. 2.13. Определите значение угла е,, при кото- ром дальность полета снаряда составляет 150 м. 2.5. Устойчивость, неустойшвость и жесткие уравнения -Одним из центральных вопросов, пронизывающих все научное програм- мирование, является проблема устойчивости. Этот термин используется слишком часто и в зависимости от контекста может иметь различные значе- ния. В этом разделе мы обсудим несколько аспектов пробтемы устойчиво- сти в том смысле, как она понимается при «елейном решении обыкновен- ных дифференциальных уравнений. Рассмотрим дифференциальное уравнение второго порядка у” - 10/ - Ну = 0 (2.5.1) с начальными условиями Я0)=1. /(0) = -1. (2.5.2) Решением задачи (2.5.1)-(2.5.2), как легко проверить, является функция 58
/<х) = e~x- Предположим теперь, что мы изменили первое начальное усло- вие на малую величину в, так что начальные условия примут вид у(0)=1+е, у'(б) = -1. (2.5.3) Тогда, как легко убедиться непосредственной подстановкой, решением уравнения (2.5.1) с начальными условиями (2.5.3) будет функция у(х) = (1 +-Ц + jje11*. (2-5.4) Следовательно, при любом сколь угодно малом е > О второй член в (23.4) приводит к тому, что решение стремится к бесконечности при х-*°°. Эти Рис. 2.14. Решения задачи при мало отличающихся начальных условиях Рис. 2.15. Решения задачи при трех мало отличающихся начальных условиях два решения показаны на рис. 2.14. Мы говорим, что решение у (х) = е~х задачи (2.5.1)—(2.5.2) является неустойчивым. Это означает, что сколь угодно малые изменения начальных условий могут вызвать сколь угодно большие изменения решения при х В численном анализе такие задачи обычно называют плохо обусловленными. В этом случае крайне сложно получить указанное решение численно, поскольку ошибки округления и усечения оказывают такое же влияние, как и изменение начальных условий, и приводят к тому, что решение уходит в бесконечность (см. упражне- ние 2.5.1). Еще более резко неустойчивость может проявиться в нелинейных уравне- ниях. Например, задача у' = ху(У - 2), у(0) = 2 (2.5.5) имеет решение у (х) = 2, которое является неустойчивым. Действительно, при начальном условии у (0) = у0 решение задается формулой у(х) = 2у0 Уо +(2 -Уо)е*’ так что если у0 < 2, тоу(х) -‘•0 при х-»•<», а если у0 > 2, то решение растет и имеет особенность, когда Уо + (2 - у0)ех - 0. Характерное поведение решений показано на рис. 2.15. Два предыдущих примера служили иллюстрацией неустойчивости реше- ний самих дифференциальных уравнений. Теперь обратимся к возможной неустойчивости численных методов. Давайте рассмотрим многошаговый метод и+г =Уи-1 +2й/и, (2.5.6)
который напоминает метод Эйлера, но, как легко проверить (.см. упражне- ние 2.5.3), имеет второй порядок точности. Применим теперь метод (2.5.6) к задаче у' = -2у + 1, у(0)=1, (2.5.7) точное решение которой имеет вид у(х) = 0,5е~2х + 0,5. (2.5.8) Это решение является устойчивым. Действительно, если заменить начальное условие на у (0) = 1 + е, то решение примет вид у(х) = (0,5 + е)е"2зе +0,5, и, следовательно, изменится только на ее~2х. В применении к задаче (2.5.7) метод (2.5.6) определяется формулой Уп +1 ~Уп-1 + 2Л(— 2уп + 1), уо = 1. (2.5.9) где в качестве у о берется начальное условие. Однако, поскольку метод (2.5.6) является многошаговым, чтобы начать счет, необходимо задать значение у>. В качестве yi возьмем значение точного решения (2.5.8) при х = h, т.е. у, =0,5 е-2Л +0,5. (2.5.10) Поведение порождаемой формулой (2.5.9) последовательности {у„} можно сравнительно легко проанализировать. Чтобы проделать это, будем рассматривать (2.5.9) как разностное уравнение. Теория разностных урав- нений имеет много параллелей с теорией дифференциальных уравнений, и мы кратко обрисуем основные элементы этой теории в случае линейных разностных уравнений порядка m с постоянными коэффициентами. Такие уравнения имеют форму Jn + i ~amyn +... +aty„_m + l +а0, n-m-l,m,m + 1,..., (2.5.11) где «о, «1». • • ,ат — заданные постоянные. Однородная часть уравнения (2.5.11) имеет вид Уп + i samyn+...+aly„_m + l. (2.5.12) По аналог™ с дифференциальными уравнениями попытаемся найти для уравнения (2.5.12) решения экспоненциального типа, только в этом случае в качестве экспоненты будем брать выражение у* = К* с некоторой неиз- вестной постоянной X. Можно видеть, что если X удовлетворяет уравнению Хт -атХт~' —...—at =0, (2.5.13) которое представляет собой характеристическое уравнение для (2.5.12), то Уk ~ X* действительно является решением (2.5.12). Если предположить, что все m корней Xi,..., Хт уравнения (2.5.13) различны, то последова- тельности X*,..., Х^, образуют фундаментальную систему решений и общее решение уравнения (2.5.12) можно записать в виде Ук= S qX* Л = 0,1,..., (2.5.14) «• = 1 60
ct — произвольные постоянные. Если 1— ат - ат_х —... — д, #= О, то, как легко проверить, частное решение (2.5.11) выражается формулой Ук в®о/(1 -а1-...-ат}. (2.5.15) Следовательно, общее решение уравнения (2.5.11) есть сумма (2.5.14) и (2.5.15): m „ «о yk = S с,Х|+----------------, Jt-0,1,... (2.5.16) l *= 1 1 — Как и в случае дифференциальных уравнений, произвольные постоянные в (2.5.16) определяются из дополнительных условий, накладываемых на решение. Так, если заданы начальные значения Уо,У1.....Ут-i, (2.5.17) то из (2.5.16) следуют условия “ t «о S cfXkt +-----------------=yfc, к = 0,1,...,т - 1, (2.5.18) 1 = 1 1 — • • • — ат представляющие собой систему т линейных уравнений относительно т неизвестных cif...,cm, которую можно использовать для определения значений Q. Применим эту теорию к разностному уравнению (2.5.9), которое пере- пишем следующим образом: Уп +1 = - 4йу„ +Уп_1 + 2Л, уо = 1, У1 «0,5 e~2h + 0,5. (2.5.19) Соответствующее характеристическое уравнение X2 + 4ЛХ — 1=0 имеет корни Xi =-2й+\/1 +4Л2, Х2 = —2й-\^1+4й2. (2.5.20) Разрешая тогда относительно Ci и сг условия (2.5.18), которые в этом случае принимают вид 1 1 r?i + с2 +—=у0 = 1, CjXi + с2Х2 +— =yi - 0,5е-2" + 0,5, 2 2 находим I 1 '*-Г‘ “~4 2VTT4P ' <Х5,21) Таким образом, мы для решения уравнения (2.5.19) получили представ- ление Уп =С1(- 2h +>/1+4й2)" + с2(- 2Л - у/1 + 4Л2)» + 0,5. (2.5.22) Хотя такое представление решения может показаться несколько'громозд- ким, оно позволяет легко определить поведениеу„ при п -*• Действитель- но,, при любой фиксированной величине шага h > 0 очеви дно, что П<-2Л+71+4Л4<1, 2й +>/1 +4Л2 >1. «1
Следовательно, при л-* 00 первый член в (2;5.22; стремится к нулю, _ второй член, осциллируя, стремится к бесконечности. Так как точное реше* ние (2.5.8) задачи (2.5.7) стремится к 0,5 при х ясно, что погрешность приближенного решения{у„} стремится к бесконечности и метод (2.5.9) в применении к задаче (2.5.7) оказывается неустойчивым. Подчеркнем, что этот рост погрешности никак не связан с ошибками округления, так как формула (2.5.22) является точным математическим представлением для уп, и если бы последовательность (2.5.19) вычислялась в точной арифметике, получаемые значения полностью бы совпали со значениями, даваемыми формулой (2.5.22). Приведенный пример ясно показывает, насколько важно, чтобы метод был в определенном смысле устойчивым. Наиболее фундаментальное определение устойчивости можно сформулировать в терминах общего метода (2.4.21): Уп+1 ~ &(Уп + 1 — i + Ь<Р(.Хп + 1» - • • ’Хп + 1 —т,Уп + 1» • • • гУп + 1 —т)' i = l (2.5.23) Метод (2.5.23) является устойчивым, если все нули X/ полинома р(Х) = Хт - в1 Хт-1 - ... - (2.5.24) удовлетворяют условию IX/1 < 1 и любой нуль такой, что I X/ I = 1, является простым. Если, в дополнение к этому, т — 1 нулей полинома (2.5.24) тако* вы, что IX/1 < 1, метод (2.5.23) является строго устойчивым. Любой метод, имеющий по крайней мере первый порядок точности, m должен удовлетворять условию Е = 1 и, следовательно, 1 должно быть <=1 нулем соответствующего полинома (2.5.24). В этом случае для любого строго устойчивого метода полином (2.5.24) будет иметь один нуль, рав- ный 1, а все остальные нули по абсолютной величине будут строго меньше, чем 1. Так как методы Рунге — Кутта являются одношаговыми, то для них р(Х) = X — 1. Этот полином не имеет никаких других нулей, кроме X = 1, и, следовательно, методы Рунге — Кутта всегда строго устойчивы. В случае m-шагового метода Адамса р(Х) = Х"1 — X"1-1, так что остальные»! — 1 нулей (2.5.24) равны нулю, и такие методы также строго устойчивы. Для метода (2.5.19) полином (2.5.24) принимает вид р(Х) = X2 — 1 и имеет два нуля: + 1 и — 1. Следовательно, этот метод устойчив, но не строго устойчив. Именно отсутствие строгой устойчивости и приводит к неустойчи- вому поведению последовательности{ук), порождаемой формулой(2.5.19). Это можно пояснить следующим образом. Разностное уравнение (2.5.19) имеет второй порядок (так как в него входятуи + 1, Уп и Jn-i) и,следо- вательно, имеет два фундаментальных решения X” и X”, где Xi и Х2 - корни характеристического уравнения, определяемые формулами (2.5.20). После- довательность {/*}, получаемая по методу (2.5.19), строится с целью аппроксимации решения дифференциального уравнения первого порядка (2.5.7), которое имеет одно фундаментальное решение. Это фундаменталь- ное решение аппроксимируется последовательностью X”; последователь- ность же X" является’’паразитной” и должна быстро стремиться к нулю 62
>цнако I Ха I > 1 при любом А > 0 и, следовательно, X" стремится к беско- нечности, а не к нулю; именно это и вызывает неустойчивость. Заметим теперь, что при Л -* 0 значения Xt и Х2 стремятся к нулям полинома устойчи- вости (2.5.24). Действительно, этот полином является предельным при Л -> О для характеристического полинома Ха + 4ЛХ — 1 уравнения (2.5.19). Поня- тие строгой устойчивости теперь становится более очевидным. Если все, за исключением одного, нули полинома устойчивости по абсолютной величие меньше единицы, то при достаточно малом h все, кроме одного, корни характеристического уравнения рассматриваемого метода будут по абсо- лютной величие меньше единицы. Следовательно, степени этих корней, являющиеся ’’паразитными” фундаментальными решениями разностного уравнения, будут стремиться к нулю и не приводить к возниюювению неустойчивости. Теория устойчивости, которую мы только что обсудили, касается, по существу, устойчивости в пределе при Л -> 0. Приведенный выше пример неустойчивости (показывает, что может происходить при сколь угодно малом h, если метод является устойчивым, но не строго устойчивым. Однако даже строго устойчивые методы могут вести себя неустойчиво, если h слишком велико. И хотя, в принципе, эту трудность можно преодо- леть за счет уменьшения величины h, это может привести к недопустимо большим затратам машинного времени. Такая ситуация возникает при решении дифференциальных уравнений, которые называют жесткими, и мы закончим этот раздел кратким обсуждением такого рода проблем. Рассмотрим уравнение у'= — 100у + 100, у(О)=уо. (2.5.25) Точным решением этой задачи является функция у(х) = (jo - 1)е100х + 1. (2.5.26) Очевидно, что это решение устойчиво. Действительно, если мы заменим начальное условие нау0 + е, то решение изменится на ее 100х. Метод Эйле- ра в применении к задаче (2.5.25) принимает вид Уп 100у„ + 100) = (1 - 100Л)у„ + 100Л, (2.5.27) и точное решение этого разностного уравнения первого порядка выражает- ся формулой Уп - (Jo - 1)(1 - Ю0Л)" + 1. (2.5.28) Предположим для конкретности, что уо = 2. Тогда точные решения (2.5.26) и (2.5.28) примут вид y(x) = e-100x +1, (2.5.29) Уп =(1 - 100Л)" + 1. (2.5.30) Функция у(х) очень быстро убывает от уо = 2 до своего предельного значения 1. Так, например, у (0,1) 1 + 5 • 1(Г5. Поэтому иа начальном •этапе мы, естественно, ожидаем, что для точного вычисления решения потре- буется считать с малым шагом Л. Однако после, скажем, х = 0,1 решение изменяется медленно и, по существу, равно 1, так что интуитивно кажется, 63
что метод Эйлера должен дап достаточную точность при сравнительна большом шаге h. Однако из (2.5.30) видно, что если h > 0,02, то 11 — 100Л | > 1 и значения уп с увеличением номера шага начинают быстро расти, свидетельствуя о неустойчивости. Если сравнить точные решения (2.5.29) и (2530), то видно, что частные решения уравнений (2.5.25) и (2.5.27) тождественно совпадают (и равны 1). Величина (1 — 100Л)" служит аппроксимацией экспоненциального члена е”100х и действительно является хорошим приближением при малых h, но это приближение быстро становится неудовлетворительным, когда h достигает значения 0,02, И хотя этот экспоненциальный член после х = 0,1 фактически не вносит никакого вклада в решение, для сохранения устойчивости метот Эйлера по-прежнему требует, чтобы этот член аппроксимировался достаточно точно. Эта ситуа- ция характерна для жестких уравнений: решение содержит член, вклад которого очень мал, однако обычные методы для сохранения устойчивости требуют, чтобы этот член аппроксимировался достаточно точно. Эта проблема очень часто возникает при решении систем уравнений. Рассмотрим, например, уравнение второго порядка у" + 101/ + 100j = 0. (2.531) Мы можем, как это показано в приложении 2, преобразовать (2.531) в эквивалентную систему двух уравнений первого порядка, но для наших целей достаточно рассмотреть его в исходной форме. Общее решение (2.531) имеет вид у(х) = ci е~100х +с2 е~ х. Так что решением, удовлетворяющим начальным условиям /0) =1,01, /(0) = —2, является функция /Х)= ~ е-100х+е-х. (2.532) После того как х достигнет значения порядка 0,1, вклад первого члена в решение будет очень мал. Если, тем не менее, применим к соответствующей уравнению (2.531) системе первого порядка метод Эйлера, то мы столк- немся с той же самой проблемой, что и в предыдущем примере: придется выбрать шаг достаточно малым, чтобы точно аппроксимировать член е100х, несмотря на то что его вклад в решение очень мал. Приведенный пример демонстрирует сущность проблемы жесткости, возникающей при решении систем уравнений. Обычно в таких задачах неза- висимой переменной является время, а в моделируемой физической проб- леме возникают быстро затухающие переходные процессы, с которым! чис- ленной схеме приходится иметь дело и после того, как они уже практически ничего не вносят в решение. Общий подход в решению проблемы жесткости заключается в использо- вании неявных методов. Подробное рассмотрение этих вопросов выходит за рамки настоящей книги, и мы здесь ограничимся демонстрацией значе- ния неявных методов для решения жестких задач, применив один из простейших таких методов к задаче (2.525). 64
1етод решения общего уравнения у’ =f(x, у), состоящий в использова- нии формулы Уп+i =Уп +hf(.x„+l,y„+l), (2.5.33) называется обратным методом Эйлера. Этот метод по форме совпадает с обычным методом Эйлера, за исключением того, что значение f вы- числяется в точке (хи+1, ул+,), а не в (х„, уп), так что метод является неявным. Применяя (2.5.33) к задаче (2.5.25), получаем разностное урав- нение Уп+i =Уп + Л(- Ю0ул+1 + 100), (2.5.34) которое можно переписать как ул+1 = (1 + ЮОЛ)-1 Ол + 100Й). <2.5.35) Точное решение уравнения (2.5.35), как легко проверить (см. упражне- ние 2.5.10), задается выражением у„ = (Уо - О (1 + 100йГ" + 1, (2.5.36) которое при начальном условии у0 = 2 принимает вид уп = (1 + ЮОЛ)"" + 1. (2.5.37) Отсюда видно, что решение ведет себя устойчиво при любой величине шага. Обратный метод Эйлера, как и сам метод Эйлера, имеет только первый порядок точности, так что к лучшим результатам привело бы использова- ние метода Адамса — Моултона второго порядка h Ул+1 = Уп + — tfn + fan+i, Уn+i)1, (25.38) который называют также правилом трапеции. В упражнении 2.5.14 предла- гается применить этот метод к задаче (2.5.25). Использование неявного метода для решения уравнения (2.5.25) выгля- дит обманчиво простым потому, что это уравнение линейно и соответствую- щее разностное уравнение (2.5.34) легко разрешается относительно ул+1. Если бы дифференциальное уравнение было нелинейным, то для определе- ния ул+1 потребовалось бы на каждом шаге решать нелинейное уравнение. В общем случае системы дифференциальных уравнений на каждом шага, приходится решать систему уравнений (линейную или нелинейную, в зави- симости от вида дифференциальных уравнений). Конечно, это связано с большими затратами машинного времени, но для эффективного решения жестких уравнений численный метод должен включать те или иные неяв- ные элементы. Дополнительные замечания и ссылки 2.5 По теории устойшвости решений дифференциальных уравнений имеется обширная литература. В качестве хорошо написанного вводного курса можно рекомендовать книгу (39]. Мы привели основные результаты теории линейных разностных уравнений только для случая, когда корни характеристического уравнения различны. При наличии кратных корней в решение входят полиномиальные члены, совершенно аналогичные соответствующим членам для дифференциального уравнения. Более детальное изложе- ние теории линейных разностных уравнений приведено, например, в книге [92]. Метод (2.5.6) возникает естественным образом в результате дифференцирования интерполяционного полинома; выводнмеетсяв книге (92,с. 219]. • Дж. Ортега 65
Основные результаты по теории устойшвости многошаговых методов получень Далквистом в 1930-х годах; подробное наложение этой теории имеется в работе [92] С тех пор был предложен ряд новых определений устойшвости. В частности, были введены понятия жесткой устойшвостн и Л-устойшвости, характеризующие те типы устойчпости, которым! должны обладать «меленные методы для успешного решения жестких уравнений. Дальнейшие сведения о различных определениях устойшвостн можно найти, например,в книгах [11,37]. Хотя к настоящему времени предложен и действительно используется целый ряд методов решения систем жестких уравнений, вопрос о наиболее эффективном спосо- бе решения таких систем все еще остается открытым. Обсуждение многих методов И дальнейшие сведения о жестких уравнениях имеются в книгах [11,37,38] и в об- зорной статье [102]. УПРАЖНЕНИЯ 2.5 23.1. Положив.z = у* покажите, что задача (23.1)-(23.2) эквивалентна системе первого порядка / = z, г' = 10z + 11у с начальными условиям! у(0) =1, z(0) = -1. Попробуйте решить эту систему шеленно, воспользовавгшсь любым методом иэ этой главы, и проанализируйте полученные результаты. 23.2. Попробуйте решить задачу (233) шеленно, воспользовавшись каким-либо методом иэ разделов 2.2 и 2.4, и проанализируйте полученные результаты. 23.3. Покажите, что метод (2.5.6) имеет второй порядок точности. 23.4. Проведите «меленные расчеты по алгоритму (23.9) -(23.10) при разных значениях Л. Проанализируйте получающиеся результаты. 23.5. Выпишите решение разностного уравненияyn+1 = (5/2)yn+yn_p у„ =у, = 1 через корни его характеристического уравнешя. Исследуйте поведение последователь- ности {у„} при 233. Выберите значение у, таким образом, чтобы соответствующее решение раз- ностного уравнения (23.9) сув = 1 стремитесь к нулю прип Составьте програм- му, реализующую алгоритм (23.9) как с найденным значением у,, так и со значением у,, задаваемым формулой (23.10). Проанализируйте получаюпвгеся результаты. 23.7. Рассмотрите метод уи+1 ~у„_3 + (4Л/3) (2f„ - f„_t + 2/„_2) известный как метод Милна. Исследуйте этот метод на устойшвость и строгую устойшвость. 233. Составьте программу, реализующую метод Эйлера (23.27), и проведите расчеты при различных значениях Л, как меньших, так и больших, чем 0,02. Проана- лизируйте полученные результаты. 23.9. Система у* = z, г' = -100у - 101 z является системой первого порядка, эк- вивалентной уравнению второго порядка (23.31). Примените метод Эйлера к этой системе с начальным! условиями у(0) = 2, z(0) = - 2 и определите эксперименталь- но, насколько малым должен быть шаг Л, чтобы счет был устойшвым. Попытайтесь подтвердить ваши выводы о необходимой велишне шага й аналитически. 23.10. Найдите решение разностного уравнения Уп+1 = суп + d как функцию началь- ного значения уо. Используйте полученный результат для доказательства того, что формула (23.36) дает решение уравнения (2.5.35). 23.11. Функция у(х) = е~х является решением задаш у" =у, у(0) =1, у'(0) = -1. Устойшво ли это решение? Докажите ваше утверждение. 23.12. Установите, какие иэ следующих методов устойшвы в какие строго устой- швы: й а) Ук+l ~Ук + g ~ %-1 *ЗД_2); « Л , A't+i ~Ук~1 +"5“№+i +2Л'+Лк-1); Л в) У к* 1 = 3Ук - 2Ук-1 + “ (йк+1 + 2А +Л-1). 23.13. Рассмотрите многошаговый метод ук+1 •= (1/2) (ук +ук_1) + (ЗЛ/4) (3/к - Является пн этот метод усгойшвыМ? Строго устойчивым? Каков его порядок? 23.14. Примените правило трапеции (23.38) к уравнению (23.25' 66
лава 3 ЗАКРЕПЛЕНИЕ НА ОБОИХ КОНЦАХ: ДВУХТОЧЕЧНЫЕ КРАЕВЫЕ ЗАДАЧИ 3.1. Задача диффузии Многие задачи научного программирования представляют собой нелиней- ные дифференциальные уравнения в частных производных вида “г = (Р“х)х +*(*. «) (3.1.1) с соответствующими начальными и граничными условиями, такими как и(О,х) = ^(х), 0<х<1 (начальноеусловие), (312) u(t, 0) = a, u(t, 1) = 0, t > 0 (граничные условия). Здесь р и q — заданные функции х, g — заданная функция двух переменных, а и Р — заданные константы, и — решение, которое требуется найти; через ut обозначена частная производная bufot. Мы вернемся к изучению зависящих от времени дифференциальных уравнений в частных производных вида (3.1.1) в гл. 7. В этой же и двух последующих главах будем заниматься соответствующими стационарными задачами. Во многих ситуациях, описываемых уравнениями типа (3.1.1), в котррые в качестве независимых переменных входят пространство и вре- мя, главный интерес представляет поведение решений при t -> °°. Если решение задачи имеет предельное значение при t -» °°, т.е. н(Т,х)->и(х) при хе [0,1], (3.1.3) то говорят, что функция v является стационарным решением. Один из. под- ходов к нахождению такого стационарного решения состоит в вычислении зависящего от времени решения u(t,x), соответствующие методы рассмат- риваются в гл. 7. Такой подход, конечно, является неизбежным, если нас интересует и поведение решения как функции от t до достижения стацио- нарного состояния. Другой подход заключается в следующем: мы замечаем, что стационар- ное решение должно удовлетворять уравнению (3.1.1), в котором частная производная по времени положена равной нулю, т.е. уравнению (Pfx)x +g(x,u)=0 (3.1.4) с граничными условиями u(0) = a, w(l) = 0. (3.1.5) Так как v — функция только переменной х, уравнение (3.1.4) является обыкновенным дифференциальным уравнением, которое мы перепишем в виде (ри*)’ +£(*,и) = °- (3.1.6) 67
Поскольку граничные условия (3.1.5) задаются на обоих концах интервал., уравнение (3.1.6) вместе с граничными условиями (3.1.5) называют двух- точечной краевой задачей. Численное решение таких задач, формулировка которых более подробно рассматривается в приложении 2, и будет предме- том этой и двух последующих глав. Отметим, что отрезок [0,1] выбран исключительно для удобства, а не по каким-либо иным специальным соображениям. Если уравнение (3.1.6) определено на произвольном конечном интервале, то задачу всегда можно свести к отрезку [0,1] (см. упражнение 3.1.1). Рис. 3.1. Сферическая клетка В качестве примера уравнения типа (3.1.6) рассмотрим следующую зада- чу из биофизики. Рассмотрим клетку, показанную на рис. 3.1, где мы до- пускаем идеализацию, считая клетку абсолютно сферической. Предполо- жим, что некоторый элемент, например кислород, вступает в реакцию с другими веществами, содержащимися в клетке, в результате чего он пе- рестает существовать как свободный кислород. Предположим далее, что клетка погружена в среду, в которой имеются свободные молекулы кисло- рода. Мы предполагаем, что эти молекулы могут проникать сквозь оболоч- ку клетки и затем вступать в уже упомянутую реакцию. Зная концентра- цию кислорода в окружающей среде и скорость, с которой молекулы кислорода вступают в реакцию внутри клетки, образуя другие компонен- ты» мы бы хотели определить концентрацию кислорода в клетке в любой заданный момент времени и, в особенности, какова будет установившаяся концентрация. Если обозначить через и концентрацию кислорода в клетке как функцию времени и трех пространственных переменных, то можно показать, что функция и будет удовлетворять уравнению ut = Au+g(u), (3.1.7) где Д - трехмерный оператор Лапласа, т.е. Ди = ихх +uyv + uzz. Здесь пер- вый член моделирует диффузию кислорода сквозь клетку (предполагает- ся, что коэффициент диффузии постоянен и нормирован на единицу), а второй член имеет вид g(u) = - си/(и + d), (3.1 £) где cud— константы, зависящие от таких факторов, как скорость реак- ции, число присутствующих бактерий, концентрации веществ в клетке и т.д. Чтобы справиться с уравнением (3.1.7), сделаем некоторые дальнейшие упрощающие предположения. В дополнение к сферичности поверхности -клетки, будем считать, что сама клетка, диффузия и реакции являются 68
о>ерически симметричными, т.е. предполагаем, что в показанных на рис.3.1 сферических координатах г, <р и в скорость реакции и образующаяся кон- центрация зависят только от г. В этом случае оператор Лапласа А в сфе- рических координатах имеет вид (см. упражнение 3.1.2). Если теперь, чтобы прийти к стационарному урав- нению, положить иг=0 в (3.1.7), то получим -у (r2i/)'+tf(u) = 0, г или (r2v) + r2g(v) = 0, (3.1.9) где v - и(г) — стационарная концентрация кислорода в клетке. Предполагаем, что концентрация кислорода вне клетки равна некоторой постоянной Р и что проницаемость оболочки клетки бесконечна. Это при- водит к граничному условию и(1) = 0, (3.1.10) причем мы нормировали радиус клетки на единицу. Чтобы получить другое граничное условие при г = 0 заметим, что из предположения о сферической симметрии следует д'(0) = 0. (3.1.11) Обратите внимание, что условие (3.1.11) отличается от условий (3.1.5), где на обоих концах отрезка было задано значение функции. Мы могли бы с самого начала заменить (3.1.5) на более общие условия: Ч,п(0) + ч2п'(0) = а. Т1Ц(1) + т21>'(1) = 0, (3.1.12) в которых на каждом конце отрезка задается линейная комбинация значе- ний функции и ее производной. Тогда условия (3.1.10) и (3.1.11) будут являться частным случаем условий (3.1.12), когда ifo - 0, i?2 = 1,7i = 1 и 7г =0. Задача, определяемая уравнением (3.1.9) и граничными условиями (3.1.10)—(3.1.11), представляет собой двухточечную краевую задачу. Та- кие задачи играют исключительно важную роль в научном программирова- нии как сами по себе, так и в качестве моделей для краевых задач с не- сколькими переменными. Поскольку функция g в (3.1.8) нелинейна, уравнение (3.1.9) является нелинейным и дело обстоит так, что почти все возникающие в приложениях двухточечные краевые задачи оказываются нелинейными. Тем не менее в остальной части этой главы мы изложим важ- ный метод решения линейных двухточечных краевых задач, а затем в следующей главе вернемся к нелинейным задачам. Дополнительные замечания и ссылки 3.1 Математическую теорию двухточечна краевых задач для обыкновенных диффе- ренциальных уравнений, а также несколько примеров таких задач, можно найти в книге [3]. Наиболее важным является вопрос о существовании и единственности «9
решения, особенно в случае нелинейных задач. Одно из условий, достаточное как дл существования, так и единственности решения простого уравнения v" = f( е) с гранич- ным! условиями и(О) = ав е(1) = р, состоит в том, что функция/предполагается не- прерывно дифференцируемой и /'(и) > 0 при I и f < «>. Различные другие условия и распространение на более общие уравнения приводятся в упомянутой книге, а также в работе (30]. В этом разделе мы рассматривали только уравнения второго порядка с одной пе- ременной. Для уравнений более высокого порядка, таких как * в1 + • • • +«л-1 (*)»'(•*) + a„MvM =dM, в конечных точках отрезка [0,1] должны быть заданы и условий на функцию и и первые и - 1 ее произвощых. Можно подойти иначе и, как в гл. 2, свести уравнение высшего порядка к системе вида А (x)w’ = BMw +/(х), где и» и/ - векторы порядка и, я AM нВМ - матрица размера и X л. В этом случае в точках 0 и 1 должно быть задано п условий на координаты w. Дальнейшее обсужде- ние двухточечшх краевых задач для систем уравнений смотрите в разделе 4.1 и в работе [30]. Изложение в этом разделе задачи из биофизики в основном следует работе [30] (см. также [49] и [36]). Полученная в результате двухточечная краевая задача (3.1.9) называется особенной, потому что коэффициент при и" в начале координат обращает- ся в нуль. Особая природа задач! становится более очевидной, если выполнить, диффе- ренцирование в (3.1.9) и поделить все уравнение наг2, что приводит к эквивалентно- му дифференциальному уравнению 2 и" + — v' +g(v) = 0. (3.1.13) г В этой форме коэффициент при и при г = 0 обращается в бесконечность. Теория обыкновенных дифференциальных уравнений с особенностям! изложена, например, в работе [32]. О недавних результатах по ч<спенному решению двухточечтых краевых задач для уравнений второго порядка с особенностями первого рода смотрите ра- боту [62]. В дополнение к особенности при г - 0 может оказаться, что коэффициент с в не- линейной функции g в (3.1.8) очень велик. Если же мы разделим уравнение (3.1.13) на с и положим е=с~1, то оно примет вид '(*’*7'1') ’^7' Дифференциальные уравнения, в которых старшая производная умножается на малую константу, называют сингулярно возмущенными. Дальнейшее рассмотрение проблем этого типа можно найти, например, в книге [33]. УПРАЖНЕНИЯ 3.1 3.1.1. Пусть и — решение на отрезке [4,ft] краевой задач! (₽(*)«')' +qMu=gM, «(о)=«, u(fc) = 0. Покажите, что функция и мажет быть получена в результате решения на отрезке [0,1 ] краевой задачи d f* dv\ л A фДРО’) ф'1+Ч<У)’’=«(”)» v(0) = a, v(D = 0, где Pb’)=p(a + (ft - о)у), $(у) - q(a + (ft - а)у) (ft - в)1, g(v) = (b -afgfu). если положить иМ - о((х - e)/(ft - в)). 70
..1.2. Оператор Лаплас* д в сферических координатах,, в и у, имеет вид 1 а /. ди X 1 а’и ~г~.— — I sm е —— I + . . .----—. r’sme эе \ ае ) r’srn’e эу>* Покажите, что если функции и сферически симметриша, т.е. и - функция только от г.то ' 3.13. Найдите явное решение двухточечной краевой задом v" + v = 2ех, и (О) = 1, и(1) =е. 32. Метод конечных разностей для линейных задач В этом разделе мы рассмотрим, вероятно, самый распространенный подход к рещению краевых задач: метод конечных разностей. Ограничимся линейными уравнениями вида л(х)п"+ й(х)и' + е(х)и = </(х), 0<х<1, (3.2.1) где а, Ь, с и d — заданные функции х. Сначала рассмотрим граничные ус- ловия и(О) = а, Н1) = Р, (3.2.2) а в дальнейшем будем иметь дело и с более общими граничными условия- ми, такими как (3.1.12), в которые входят производные от функции v в конечных точках. Особенно простой частный случай задачи (3.2.1)—(3.2.2) вида u"=d(x), п(0) = 0, п(1) = 0 (3.2.3) окажется полезным при некоторых последующих рассмотрениях.. Соотношения (3.2.1) и (3.2.2) определяют линейную двухточечную крае- вую задачу относительно неизвестной функции и, и наша цель состоит в разработке алгоритмов получения приближенного решения этой задачи на ЭВМ. Будем предполагать, что рассматриваемая задача имеет единственное решение, которое по крайней мере дважды непрерывно дифференцируемо. Пусть х, x+hax-h — три точки на отрезке [0,1 Тогда выражения и(х + й) — п(х) v (х) --------------- й и 1>(х + й) - 2«(х) + 1>(х - й) п(х)«--------------3------------ (3.2.5) • й называются конечно-разностной аппроксимацией соответствуюпшх произ- водных. Чтобы выяснить, насколько хорошо правые части (3.2.4) и (3.2.5) аппроксимируют производные, воспользуемся разложением Тейлора ц(х + й) « и(х) + и'(х)й + — v”(x)h2 + О(й3), (3.2.6) где С^й3), как и прежде, означает, что остаточный член разложения стре- 71
мится к нулю при Л -* 0, как Л3. Из (3.2.6) немедленно получаек <3'2-7» L Л J 2 откуда видно, что при малых Л погрешность аппроксимации (3.2.4) пропор- циональна h и и"(х). Чтобы определить погрешность аппроксимации (3.2.5), нам придется выписать еще два члена в разложении (3.2.6), предполагая при этом, что функция и четырежды дифференцируема, а затем воспользо- ваться аналогичным разложением для и(х - h). Проделав это, после не- сложных алгебраических выкладок, которые предлагается выполнить в упражнении 3.2.1, получим ,, [и(х + Л) - 2и(х) + и(х - Л)] 1 /дч , л и”(х) - —-----------—-------------- = - — и<4)(х)Л2 + О(Л4). (3.2.8) Л2 Отсюда видно, что при малых Л погрешность аппроксимации (3.2.5) про- порциональна Л2 и четвертой производной. Соотношения (3.2.7) и (3.2.8) показывают, что выражения (3.2.4) и (3.2.5) действительно аппроксимируют соответствующие производные. Характер зависимости погрешности от h будет важен для нас позднее, при рассмотрении вопроса об ошибке нашего приближенного решения уравнения (3.2.1). Здесь только отметим, что отличие в зависимости погрешности приближений (3.2.4) и (3.2.5) от h характерно для аппрок- симации односторонними разностями по сравнению с аппроксимацией центральными разностями. Если бы мы вместо (3.2.4) воспользовались центральной аппроксимацией , и(х + Л) — и(х - Л) и(х)~ 2Л (3.2.9) то, как легко видеть (упражнение 3.2.2), погрешность была бы также про- порциональна h3. ль-0 Лг ля_, Рис. 3.2. Узлы сетки Теперь разделим отрезок [0,1] на несколько равных частей длины h. Как и в гл. 2, точки х, будем называть точками сетки или узлами, а Л — шагом сетки; точки х0 и х„+1 называются граничными узлами, а Х|.....х„ - внутренними узлами. В каждом внутреннем узле сетки ап- проксимируем производные от решения v выражениями (3.2.9) и* (3.2.5): u’(xf) « t>(Xf + i)-t>(X,i) 2Л „ w(x/+i) - 2u(xz) + l^-j) и (xf) ж (3.2.10) h2 h h Если теперь подставим эти приближения в уравнение (3.2.1.) и обозначим 72
начения функций а, Ь, с и <1 в точке Xj через а/г Ь1г с/ и dt, то полупим [w(*f+i)-2u(x/) + u(x/_1)] [u(x/+l)-w(xf_i)] л,--------------j-----------+£>,---------—---------+с/и(х/)« dt. Л 2Л (3.2.11) Итак, мы показали, что если заменить первую и вторую производные ре- пения v с помощью конечно-разностных аппроксимаций и подставить эти ппроксимации в дифференциальное уравнение, то получим приближенные авенства (3.2.11), которым должно удовлетворять решение. Рассмотрим теперь обратную процедуру. Предположим, что мы можем тайти числа , ..., v„, которые точно удовлетворяют соотношениям 3.2.11), т.е. удовлетворяют уравнениям Л/ Ь/ —2(«/+i -2uf + u,_i)+ — (и/+1 -Vi_i} + ciVi = dh (3.2.12) л 2л i= 1.....и, i?o= а и 1>и+1 - 0. Тогда можем рассматривать t>0, i>i,..., v„+1 как прибли- женные значения решения и краевой задачи (3.2.1)—(3.2.2) в точках сетки -о, Х|, ..., х„+1. Мы вскоре вернемся к вопросу о том, насколько эти ижближения хороши. Уравнения (3.2.12) представляют собой систему п линейных уравнений •тносительно и неизвестных щ.....v„. Если собрать вместе коэффициенты ipu vit то (3.2.12) можно переписать как (-al + blh/2)vi_I + (2д, - clh2)vl + (-at - dfA/2)u/+1 = -h2dh i= 1,... ,n, дли как ПЩ-1 + Pi »i+qtVi+1 = - h2db де ,ким образом, задача сводится к решению этой системы линейных уравне- ий. Методы .решения таких систем будут рассмотрены в последующих разделах этой главы. В особенно простом частном случае (3.2.3) имеем at = 1, Ь/ = 0, ct = О, ак что Pi = 2, rj = qt = —1 и матрица коэффициентов в (3.2.14) 73
принимает вид Г 2 -! ' - 1 2 2-1 - -12, (3.2.15) В качестве несколько более сложного Примера рассмотрим уравнение (х2 + l)t>"(x) + 2xu'(x) + (sin x)w(x) = coax, 0<х< 1, с граничными условиями v(0) = О И и(1) = 1. Здесь а(х) =х2 + 1, й(х) - 2х, c(x) = sinx и d(x) = cosx, так что цгЦК? + 1, bj = 2jh, Cj = smjh, dj~ = cosjh, j-l,...,n. Следовательно, Pj = 2(jh)1 - h2s\njh + 2, Qj =.- (jh? -jh2 - 2, гу = -(/й)2+/й2-2, и j-e уравнение системы (3.2.14) при 2</<л - 1 имеет вид (—(/Л)2 +/йа - 2] и,.] + [2(/й)2 - й’вйт/й + 2] v, + + [- (/й)2 “/й2 - 2]u/+i = - A’cos jh. Первое же и последнее уравнения системы, которые содержат грашчные условия, зышсываются как (2й2 — й2йп й + 2)t>i — (2й2 + 2)и2 = — й2сов й, [-(лй)2 +лй2 -Zjun-! + [2(ий)2 -й28тлй + 2]1>„ = = - й2со» лй + [(лй)2 + лй2 + 2]. Вернемся теперь к важному вопросу об ошибке приближенных значений Hi- • • • > • Так как линейная система (3.2.14), из которой определяются эти величины, решается численно, вычисленные значения V/ содержат погрешность, обусловленную ошибками округления. Одиако этот вопрос будет более подробно рассмотрен в двух последующих разделах, а сейчас будем предполагать, что значения ц вычисляются без ошибок округления, т.е. t>i, ..., и„ - точное решение системы (3.2.14).Пустьи(х/) — значение Точного решения краевой задаш в точке х,. Тогда, аналогично случаю зада- чи Коши из гл. 2; назовем глобальной ошибкой дискретизации величину max Ity — i>(xf)|, (3.2.16) 1 тл. опмбку, обусловленную заменой Непрерывной краевой задачи ее дис- кретным аналогом (3.2.14). Подробный и строгий анализ ошибки дискретизации выходит за рамки настоящей книги, и мы только кратко покажем, как такой анализ обычно проводится. Из оценок погрешностей (3.2.7) и (3.2.8) видно, что чем мень- ше шаг й, тем лучше разностные отношения аппроксимируют производные, так что интуитивно естественно ожидать, что то же самое будет справедли- во и для ошибки дискретизации. Вопрос заключается в том, как связать эти погрешности с (3.2.16). Покажем, как это можно было бы сделать, на примере очень простой задачи (3.2.3). В этом случае разностные уравне- 74
1ия <3.2.12) принимают вид 77 (ц+1 -2ц + ц_,) = «/,. /=1.....я. ft где ц> = а, ц, +! = 0. Введем сначала, аналогично случаю задачи Коши, локальную ошибку дискретзации 1 L(х, ft) = — [и(х + ft) - 2о(х) + ц(х - ft)J - d(x), (3,2.17) ft где v — точное решение дифференциального уравнения. Так как </(х) = = о"(х), можем сделать такую подстановку в (3.2.17) и затем, сштая функ- цию и достаточное число раз дифференцируемой, воспользоваться форму- лой (3.2.8), что приводит к соотношению Их. Л) = — |о(х + ft) - 2v(x) + u(x - Л)] - ц"(х) = О(Л2). Л Вычислим теперь значения L(x. ft) в точках сетки. Полагая о, = Их1г ti) и используя, что h2di = ц+i - 2ц + ц_!, получаем равенства [и(л7+1) — 2v(jc/) + u(jcf-_i)] -(ц + 1 -2ц + ц_1) = Л2ц, /=1,...,л, которые, если положить et = и(х,) — ц, можно переписать в виде ef-+i — 2ц-+ ef-_| = ft2of:, /=1,...,и, (3.2.18) где е0 = еп+1 =0. Если обозначить матрицу (3.2.15) через А и ввести векто- ры е и о с координатами et...., е„ и о,......ап, то (3.2.18) можно запи- сать как Ae = -h2a (3.2.19) или, если предположить, что А~* существует, как е = -Л2Л“,<г. (3.2.20) Последнее соотношение и дает основную связь между глобальной и локаль- ной ошибками дискретизации. Техническая проблема, которая выходит за рамки настоящей книги, состоит в изучении поведения матрицы Л-1 при ft -> 0. Этот вопрос ослож- няется тем, что порядок и матрицы А пропорционален 1 /ft, так что п -> °° при Л -> 0. Тем не менее можно показать, что при стремлении ft к нулю ошибки дискретизации ц также стремятся к нулю, что является сущест- венно необходимым свойством хорошей схемы аппроксимации. Более то- го, при довольно мягких предположениях о решении величины et стре- мятся к нулю как О(й2),что служит признаком соответствующей скорости сходимости. Тот же самый подход к анализу ошибки дискретизации при определен- ных предположениях относительно коэффициентов a, ft, с и d может быть применен и к более общей задаче (3.2.1). Для аппроксимации задачи (3.2.1) может быть использован целый ряд других разностных схем. Рассмотрим две из них, которые иногда оказы- ваются весьма важными для решения практических задач. 75
Как увидим позже, в разделе 3.4, одним из желательных свойств дл матрицы коэффициентов разностной схемы (3.2.14) является диагональное доминирование. Матрицу А = (ау) размера л X л называют диагонально доминирующей (по строкам), если |в„|> 2 |в//|, л, (3.2.21) /*< тл. если абсолютная величина диагонального элемента каждой строки боль- ше или равна сумме абсолютных вели<ын всех недиагональных элементов этой строки. Посмотрим, является ли матрица (3.2.14) диагонально доминирующей. Нам нужно, чтобы 1 > 1г/1 + |«J, или, используя (3.2.13), чтобы 12ai - с,й2 | > | щ - ЬМ2 | + | at + M/2 |. (3.2.22) Если предположить, что af > 0 и ct <0 (как увидим позднее, такие ограни- чения на коэффициенты ан с являются вполне естественными), то условие (3.2.22) будет заведомо выполняться при достаточно малом й,в частности, если 1Мй<2Д/. (3.2.23) Такое ограничение на шаг h является весьма жестким, но его можно обойти, если для аппроксимации первой производной вместо центральной разности (3.2.9) использовать односторонние разности. Более точно, будем использовать аппроксимацию . ((uz+i ~и/)/й, если bi>Q, «(*/)« ’ (3.2.24) I (Pi — vt_ i )/й, если bt < 0, так что направление односторонних разностей будет определяться зна- ком bt. Такие разности широко используются в задачах динамики жид- костей и газов, где их называют разностями против ветра (или против потока). При аппроксимации (3.2.24) z-я строка матрицы коэффициентов (3.2.14) принимает вид - в», 2at -Cjh2 + bth, — (в/ + й/й), й/ > 0, (3 2 25) -(вт-й/й), г^-с/й’-й/й, -ab Ь{<0, ' ’ и если по-прежнему считать, что at > 0 и cf < 0, то, как легко проверить, условия диагонального доминирования будут выполняться независимо от величшы шага h. Отметим, однако, что если аппроксимация централь- ными разностями (3.2.9) имеет второй порядок точности, то аппроксима- ция односторонними разностями (3.2.24) имеет только первый порядок, так что приходится оценивать выигрыш в связи с лучшими свойствами матрицы коэффициентов по сравнению с потерями от увеличения ошибки дискретизации. Другим желательным свойством, которым может обладать матрица коэффициентов в (3.2.14), является симметричность. Матрица Л = (ву) на- 76
.ывается симметричной, если в// =aji< 4 / = 1, - - , и, (3.2.26) или, в матричных обозначениях, если Л = А т, где через А т обозначена транс- понированная матрица (а,-,). Чтобы матрица в (3.2.14) была симметричной, необходимо, чтобы = г/+1, или, используя (3.2.13), чтобы 1 1 -ai- — bih = -ai+i + —bl+lh, f Л-1. Ясно, что в общем случае эти соотношения не будут выполняться. Однако во многих задачах уравнение (3.2.1) имеет вид [fl(x)y']’=d(x). (3.2.27) (Напомним, что если отбросить нелинейный член, то именно такую форму Ч-l х1-чг •Zz+1 Рис. 3.3 имело бы уравнение модельной задачи из предыдущего раздела; см.(3.1.6).) В этом случае можно получить симметричную матрицу коэффициентов, если следующим образом осуществить замену производных разностными отношениями. Введем сначала посередине между точками сетки х, и х,+1 вспомогательные узловые точки x/±iy2, как это показано на рис. 3.3. Используя эти вспомогательные узлы, заменим внешнюю производную в (at/) выражением , , 1 , [а(х)и(х)] * («/+1/2Ц/+1/2-e/_i/2U/_i/2), (3.2.28) л где нижние индексы указывают те точки сетки, в которых проводятся вы- числения. Заменяя теперь первые производные центральным! разностям! , 1 — -«/)• , 1 U/-l/2 и подставляя их в (3.2.28), получаем 1 ,2 [fl/-!/2u/-l -(«/+1/2 + «/~l/2)ty + «/+1 /2«/+11 • п (3.2.29) Таким образом, в этом случае соответствующая (3.2.14) система разност- ных уравнений принимает вид 4v=fl, 77
где «3/2 + «1/3 -«3/2 ~«3/2 «5/2 + «3/2 -«5/2 А— — «л —1/2 «л + 1/2+«л-1/2_ (3.2.30) Ясно, что эта матрица является симметричной и диагонально доминирую- щей. Отметим также, что если в(х) = 1, то (3.2.30) превращается в матри- цу (3.2.15) с элементами 2 и —1. Если в левой части уравнения (3.2.27) будет присутствовать член с(х)и, то ото приведет просто к тому, что из i-го диагонального элемента матрицы (3.2.30) будет вычитаться cth2. Весь приведенный выше анализ проводился в предположении, что гранич- ные условия имеют вид (3.2.2). В предыдущем разделе мы, однако, видели, что граничные условия могут накладываться не только на саму функцию, но и на ее производную, и теперь перейдем к рассмотрению тех модифика- ций, которые требуются в этом случае. Рассмотрим, например, вместо условий (3.2.2) граничные условия и'(0) = а, и(1) = Р, (3.2.31) т.е. зададим не и(0), a v (0). Пусть по-прежнему производные в (3.2.1) аппроксимируются по формулам (3.2.10), что приводит к разностным уравнениям (3.2.12). В первом из этих уравнений, т.е. при i - 1, значение i>o уже не определяется из граничного условия при х = 0. Вместо этого заме- няем первое условие (3.2.31) односторонней разностью (3.2.4) при х = 0: v'(0)*(i>i-ПоУЛ = а. (3.2.32) В результате к л уравнениям (3.2.12) добавляется еще одно уравнение U1 — t>o = ah и получаемп + 1 уравнений сл +1 неизвестными ц»щ v„. Если же значение производной будет задано на правом конце, то использу- ем одностороннюю разность |>*(1)м(Ц|+1 -vn)lh=0. В более общем случае в качестве граничных условий на обоих концах могут быть, как в (3.1.12), заданы линейные комбинации значений функ- ции и ее производной; т.е. 4iu(0)+fl2t>'(0) = a, 7iu(l) + 72t>'(l) = P. (3.2.33) Аппроксимируя эти условия аналогично предыдущему, получаем соотно- шения (th -ц0) ihuo+ih ----;-----=а, h (1»и+1 -и„) 7i »п♦1 + 72 —- = 0, (3.2.34) п которые вместе с л уравнениями (3.2.14) составляют систему л + 2 разност- ных уравнений с л + 2 неизвестными v0, i»i, .... ии+1. Матричная форма 78
-гой системы имеет вид □аничные условия мы ни задавали, основной вычислительной проблемой стается решение полученной системы линейных алгебраических уравнений, .тому вопросу мы и'посвятим остальную часть этой главы. Дополнительные замечания и ссылки 3.2 В этом разделе мы рассмотрели только простейшие способы построения разност- ных схем, причем для довольно простых задач. Как мы видели, аппроксимация .ентральными разностями (3.2.10) привошт к схемам второго порядка, т.е. погреш- ность аппроксимации в этом Случае пропорциональна h*. Чтобы достичь большей точ- ности, можно, в принципе, использовать аппроксимации более высокого порядка; ак, например, схема v"(x,) * 7777 (- «/-2 + 16v/_i - ЗОо/ + 16v/+i - v/+2) (3.2.36) ип ч случае достаточной гладкости функции и является аппроксимацией четвертого юрядка (ошибка пропорциональна Л4). Одна из трудностей, которые возникают при [рименении аппроксимаций такого типа к двухточечным краевым задачам, связана с оиближением к гранишым точкам. Если, например, мы воспользуемся схемой 3.2.36) в первом внутреннем узле х,, то нам понадобится значение функции v не -олько в точке х,,но и в точке х_ i, которая лежит вне интервала. Другой подход к построению приближений высокого порядка к решению, исполь- уюный при этом аппроксимацию производных только до второго порядка точности, взывается экстраполяцией к пределу (или экстраполяцией по Ричардсону). Это очень ’бщяй метод, который применим не только к краевым задачам, но и к численному нтегрировакию к даффереицированхю, задачам Копи и тд. В основе метода лежит ледуюпый принцип. Пусть а - некоторая аппроксиьмруемая волишиа и а(Л) - нжближение к а, которое зависит от параметра Л (во ааюгих приложениях этим параметром является расстояние между узлами сетки). Предположим тиоке, что >шибка аппроксимации представима в виде в-в(Л) =с,Л*+с,Л* + ..., (3.2.37) ...с,,... вам неизвестны. Если мы имеем два приближения, при Л и Л/2, то, .оъединяя их, можно полушть новое приближение «Л) = у^4в(у)-20)] , (3.2.38) которое, как легко проверить, удовлетворяет соотношению в - Л(Л) = - с3й’/6 +.:. = О(Л»). „ Идею такой экстраполяции можно применить к двухточежшм краевым задачам, ешая данную задачу дважды, с шагомЛ и Л/2, и комбинируя полученные приближё- тия в каждом узле более редкой сетки по.формулам типа (3.2.38). В определенных лучаях, например, когда в уравнении' (32.1) отсутствует член с Первой производной, изложение погрешности (3.2.37) содержит только четные степени Л, н однократное рименение экстраполяционного принципа оказывается особенна эффективным, да- 79
вая сразу четвертый порядок точности. Обсуждение применения экстраполяции _ численному интегрированию {квадратурные формулы Ромберга) смотрите в дополни- тельных замечаниях к разделу 5.3. Подробное рассмотрение тем этого раздела имеется в книге [30]; обзор более поздних результатов можно найти в статьях [37, 74]. УПРАЖНЕНИЯ 3.2 3.2.1. Предположим, что функция и(х) шесть раз дифференцируема. Разложив i>(x -I- It) и v(x - It) по формуле Тейлора, убедитесь в справедливости соотно- шения (3.2.8). 3.2.2. Предполагая, что функция ц(х) дважды дифференцируема, покажите, что ошибка при аппроксимации центральными разностями (3.2.9) пропорциональна h*. 3.2.3. Рассмотрите двухточечную краевую задачу (I +x’)v" +2хи -ц = х*. и(0) = =1. и(1) = 0: а) положите Л - 1/4 и выпишите явно систему разностных уравнений (3.2.12); б) перепишите систему уравнений пункта ав матричюй форме. Определите, является ли матрица коэффициентов симметричной и диагонально доминирующей; в) выполните снова задания из пунктов а н б, аппроксимируя v* односторонним! разностями (3.2.24); г) выполните снова задания из пунктов а н б, переписав уравне- ние в виде [(1 +х1)и']’-t>=x’ и воспользовавшись затем разностной схемой(3.2.29); д) выполните снова задания из пунктов а н б при граншиых условиях v*(0) =1, v(l) = = 0, а затем при граничных условиях и(0) + и(0) = 1, и'(1) + (1/2) v(l) =0. 3.3. Решение систем линейных уравнений Одной из проблем, наиболее часто встречающтхся в задачах научного программирования, является нахождение решения системы линейных урав- нений (см., например, предыдущий раздел, а также разделы 4.3, S.2 и 8.2). В этом разделе мы ограничимся рассмотрением систем, в которых число уравнений равно числу неизвестных. Будем записывать такие системы в виде Ах~Ь, (3.3.1) где А - заданная матрица размера л X л, Ь — заданный вектор-столбец с п координатами, ах— вектор с п координатами, который и подлежит опреде- лению. В приложении 3 дается краткий обзор основных понятий и результа- тов, используемых в этом разделе. Если матрица А является невырожденной, то решение системы (3.3.1) можно представить в виде х=Л-*й, (3.3.2) где 4-1 — матрица, обратная к А. Однако в большинстве случаев не реко- мендуется вычислять обратную матрицу, поскольку затрачиваемое при этом машинное время значительно превосходит время, требуемое для не- посредственного решения системы (3.3.1). В этом разделе рассмотрим методы непосредственного решения систе- мы (3.3.1) в предположении, что все элементы матрицы системы хранятся в оперативной памяти ЭВМ. Мы уделим также внимание ленточным матри- цам, т.е. матрицам, все ненулевые элементы которых располагаются лишь на нескольких диагоналях, которые и хранятся в памяти. Простейшим слу- чаем нетривиальных ленточных матриц являются трехдиагональные матри- цы, которые, например, встречались в разделе 3.2. Другие типы разрежен- ных матриц рассматриваются в гл. 8. 80
!меется один алгоритм решения систем (33.1), который почти всегда, если учитывать и все его модификации, используется для решения неболь- ших и умеренно больших (скажем, п - 200) линейных систем с заполнен- ными матрицами (т.е. с матрицами, почти все элементы которых отличны от нуля). Этот алгоритм называется гауссовым исключением. Сначала продемонстрируем работу этого алгоритма на примере системы трех урав- нений с тремя неизвестными 4х| - 9х2 + 2х3 = 2, 2х, - 4х2 + 4х3 = 3, (3.33) - х( + 2х2 + 2х3 = 1, которая в матричной форме записывается в виде (3.3.4) Первый основной шаг гауссова исключения состоит в исключении первой переменной х{ из второго и третьего уравнений. Если из второго уравнения системы вычесть первое, умноженное на 0,5, и из третьего уравнения вы- честь первое, умноженное на —0,25, то полушм эквивалентную систему уравнений: 4 -9 2 Х| 2 0 0,5 3 х2 = 2 0 - 0,25 2.5 Хз 1,5 (3.35) Второй основной шаг состоит в исключении х2 из третьего уравнения. Это может быть сделано вычитанием из третьего уравнения второго, умножен- ного на —0,5, что приводит к системе 4 -9 2 *1 2 0 0,5 3 х2 S 2 (3.3.6) .0 0 4. *3- .2,5. Этот алгоритм основывается на том факте (обычно доказываемом во ввод- ных курсах по линейной алгебре), что при замене какого-либо уравнения системы линейной комбинацией этого уравнения и некоторого другого уравнения решение системы не меняется. Проделанные операции называют- ся элементарными преобразованиями строк. К этому моменту мы заверши- ли первую часть алгоритма гауссова исключения, которую обычно называют прямым исключением или приведением к треугольной форме. Эта часть завершается тогда, когда все элементы последней строки системы, кроме крайне правого, обращаются в нуль (см. 33.6) ). Вторая часть алгоритма заключается в решении полученной верхней треугольной системы (33.6). Это легко осуществляется с помощью процес- са обратной подстановки. Последнее уравнение (33.6) имеет вид 4х3 =2,5. Следовательно, х3 = 0,625. Подставим теперь это значение во второе урав- нение: 0,5х2 + (3) (0,625) = 2. •. Дж. Ортега 81
Отсюда х2 = 0,25. Подстановка этих значений х2 и х3 в первое уравнени- дает 4xi - (9) (0,25) + (2) (0,625) - 2, или xt = 0,75. Чтобы проверить найденное решение, выполним умножение 4 -9 2 0,75 2 -4 4 0,25 - 1 2 2 0,625 результат которого совпадает справой частью (33.3) В случае общей системы размера и X л алгоритм гауссова исключения состоит из тех же шагов, что и в примере 3X3. Если система записана в виде «11X1 + ... +«i„Xn=fti, «2 (х( + ... + д2пх„ = й2, (33.7) «nlXi + ... + вцпхп “ то первый шаг состоит в исключении xj из последних п — 1 уравнений. Это достигается вычитанием из второго уравнения первого, умноженного на «21/«и, из третьего уравнения первого, умноженного на «з1/«и, й тд. Этот процесс привод ит к преобразованной системе уравнений «11X1 +«12*2 + ... + Л1„Х„ =*1, _(l)v + + -(»)« = *<>) «22 Х2 + ... + «2иХИ ®2 » .;.............................:.. (33.8) ап2 *2 + ’ * ’ + апп хп "п ’ где С) вл ап «. 1- Л/1 - «и =««-«!/------- - = ---- , 1.7 = 2....л. «II «11 Применяя теперь тот же самый процесс к последним л — 1 уравнениям системы (3.3.8), исключаем х2 из последних л — 2 уравнений и тд., пока вся система не приведется к треугольной форме: соответствующие элементы. Этим завершается фаза прямого исключения (или приведения к треугольной форме) алгоритма гауссова исключения. Решение треугольной системы (33.9) теперь легко получается на фазе об- >ратной подстановки, в ходе которой уравнения системы (3.3.9) решаются 82
. обратном порядке: •*" °п /впп ’ Г =ГЛ<"-2> Л(п-2)г мЛ"~2) хп-1 (Рп-1 — вп-1,пхп"вп-1,п-1 (33.10) х| - (bi --Л12Х2 — ... ~ainxn)/aii. Выше мы считали, что элемента( и все элементы 1 (/ = 2,..., и), которые использовались в качестве делителей, отличны от нуля. Однако дело не всегда обстоит именно так, и если какие-либо из этих элементов обращаются в нуль или становятся слишком маленькими, то алгоритм должен быть модифицирован. Мы вернемся к этому вопросу в следующем разделе. Процесс гауссова исключения можно очень компактно записать в виде алгоритма. Прямое исключение для й= 1,... ,п — 1, для/-k + 1......л: kk * aikl<ikk\ для / = к + 1,..., л: вЦ *~аИ ~ hkttkj, bi*~bi-likbk. Обратная подстановка для к = п, л - 1,..., 1: Л Хк *~(bk - S ак/Х/)1акк . / = ь+1 (33.11) (3.3.12) При составлении программы д ля' ЭВМ, реализующей этот алгоритм, следу- ет обратить внимание на то, что последовательно преобразуемые в ходе этого процесса элементы а~ можно записывать в те же ячейки памяти,, где располагались элементы исходной матрицы вц. На это указывает пятая строка алгоритма. Если это будет сделано, то исходная матрица, разумеет- ся, будет испорчена. Аналогичным образом, новые элементы Ь^ можно записывать на место исходных элементов Ь/. Вычисляемые в третьей строке* алгоритма множители ljk можно записывать на место элементов а1к, так как после вычисления соответствующего значения Цк элемент а,к больше ненужен. Покажем теперь, как алгоритм гауссова исключения связан с фактори- зацией (разложением в произведение) матрицы А. Введем нижнюю тре- угольную матрицу L с единичным! диагональным! элемента»», положив расположенные ниже диагонали элементы 1ц равным! множителям, ис- пользованным при исключении /-й переменной из 1-го уравнения. В случае примера (3.3.4) полупим 1 О 03 1 -0,25 -0,5 О О 1 (33.13) £ = 83
Обозначим теперь через U верхнюю треугольную матрицу, которая полу- чается после завершения фазы исключения. В нашем примере матрица U — это матрица системы (3.3.6), а в общем случае — матрица системы (3.3.9). Перемножение матриц L и U показывает, что A=LU, (3.3.14) что и является треугольной факторизацией матрицы А. Это представление называют также L {/-разложением матрицы Л. Если теперь, используя пря- мую подстановку, решить треугольную систему Ly=b (3.3.15) относительно у, то получим вектор правой части в (3.3.6). Таким образом, алгоритм гауссова исключения для решения системы Ах = b эквивалентен следующему трехшаговому процессу. 1. Факторизовать А = LU. 2. Решить Ly = b. (3.3.16) 3. Решить Ux=y. Этот взгляд на процесс гауссова исключения с точки зрения теории матриц оказывается весьма полезным для теоретических рассмотрений, а также служит основой для некоторых вычислительных вариантов проведения процесса исключения. Очень важным является вопрос об эффективности алгоритма гауссова исключения. Чтобы ответить на него хотя бы частично, мы сейчас оценим число арифметических операций, необходимых для вычисления вектора х, являющегося решением системы. Основная часть работы приходится на вы- полнение строки алгоритма (3.3.11), расположенной в самом внутреннем цикле. Эта строка включает одно сложение (операции сложения и вычита- ния мы считаем эквивалентными) и одно умножение. Для подсчета общего шсла этих операций мы просто иьштируем циклическую структуру ал- горитма: число сложений =S 2 2 1=2 2 (л - й) = k-l i=fc+l j=k+l k=l i=k + l z , "71 , (л — 1)(л)(2л -1) л3 = 2 (л-й)2 = 2 й2 = ---------------------- ж----, (3.3.17) k=l к-1 6 3 и это же выражение определяет число умножений. Мы пока подсэдтали только число операций, необходимое для приведения исходной матрицы к треугольной форме. Определенная работа требуется также для модифи- кации вектора правой части Ь, вычисления множителей /,* и выполнения обратной подстановки. Однако здесь в каждом случае требуется не более чем порядка л2 операций (см. упражнение 3.33). Таким образом, при достаточно больших л основное время затрачивается на приведение матри- цы к треугольному виду, причем соответствующее число операций оказы- вается пропорциональным л . Чтобы получить представление о количестве машинного времени, кото- рое может потребоваться для решения с помощью гауссова исключения системы умеренного размера, предположим, что л = 100 и что операция сло- 84
:<«ния выполняется за 1 мс, а операция умножения за 2 мс (мс = 10”® с). Тогда время, затрачиваемое на операции сложения и умножения при тре- 1003 угольной факторизации, составит примерно —-— (3 мс) = 10 мс = 1 с. Конечно, понадобится еще время на выполнение других арифметических операций, входящих в полный алгоритм исключения, но оно будет значи- тельно меньше, чем 1 с. Более существенными являются различные ’’на- кладные расходы”, связанные, например, с пересылкой данных в память и из памяти. Эти расходы могут легко удвоить или утроить полное время счета, но в любом случае на ЭВМ с таким быстродействием для ре- шения системы размера 100 X 100 потребуется всего несколько се- кунд. В приведенных выше рассуждениях предполагалось, что матрица систе- мы является заполненной, т.е. содержит мало нулевых элементов. Многие матрицы, возникающие в практических задачах и, в частности, при решении дифференциальных уравнений, обладают, однако, тем свойством, что большинство их элементов равно нулю. Возможно, простейпмй нетривиаль- ный пример матриц, такого рода дают трехдиагональные матрицы, рассмот- ренные в разделе 3.2; каждая строка такой матрицы содержит не более трех ненулевых элементов, независимо от величины п. Трехдиагональные матрицы представляют собой частный случай так называемых ленточных матриц, все отличные от нуля элементы которых располагаются на относительно небольшом числе диагоналей, примыкаю- щих к главной диагонали. Структура такой матрицы показана на рис. 3.4. Рис. 3.4. Матрица с шириной ленты р + q + 1 Q Матрица А - (а^) является ленточной с шириной ленты р +q + I, если и/у = 0 для всех i и / таких, что i -j >р или/ - i >q. Все ненулевые элементы такой матрицы лежат на главной диагонали, р диагоналях ниже нее и q диагоналях выше нее. Если р = q = 1-, то имеются только три ненулевых диагонали и матрица является трехдиагональной. Три различные трехдиагональные матрицы, приведенные в разделе 3.2, возникли в результате использования ме- тода конечных разностей для решения линейных двухточечных крае- вых задач. Аппроксимация производных разностями более высокого порядка приво- дит к матрицам с большей шириной ленты. Так, например, определяемая формулой (3.2.36) аппроксимация четвертого порядка ведет к матрице с шириной ленты, равной S (р = q = 2). Более широкие ленточные матрицы будут рассмотрены в гл. 8 в связи с численным решением уравнений в «ЯСТНЫХ производных. 85
Давайте рассмотрим процесс гауссова исключения для трехдиагонально? системы уравнений - «||»| +вцХ2 =*1. 021х1 + <*2 2х2 +в23х3~^2, <Г32Х2 +вЗэХз + Л34*4 ~Ь3, (3.3.18) апп—1хп — 1 +аппхп~ Если, как и раньше, предположить, что at 1 и все последующие делители от- личны от нуля, то легко видеть, что для трехдиагональных систем алгоритм гауссова исключения реализуется особенно просто. В первом столбце нуж- но исключить только один элемент а2i, и при этом в системе изменяются только коэффициенты а2 2 и й2. Полученная в результате первого шага пре- образованная система снова является трехдиагональной: .О) + „ v -А(1) «22 х2 + а2 3X3 - о2 , <Тз2Х2 +а33*3 +«34Х4=Ьз, апп-1хп— 1 +<htnxn ~bn, и относительно нее, как и относительно систем, получающихся на последую- щих шагах, справедливы те же самые замечания. Так как каждый шаг преобразования требует только двух сложений, двух умножений и одного деления, а всего необходимо п — 1 таких шагов, то для приведения системы к треугольной форме требуется только 2 (л — 1) сложений, 2 (л — 1) умно- жений и л — 1 делений. Обратная подстановка реализуется тоже чрезвычайно просто. Каждое уравнение содержит самое большее два неизвестных, причем типичное уравнение имеет вид Таким образом, обратная подстановка требует только л —1 сложений, л — 1 умножений и л делений, и мы приходим к следующему результату. Число операций для трехдиагональной системы = 3(л - 1) сложений + + 3(л — 1) умножений + (2л -1) делений. (3.3.19) Сравнивая это число с О(л3) операций, требуемых для заполненной матри- цы, видим, что для трехдиагональных систем алгоритм гауссова исключе- ния оказывается очень эффективным. Если, как и прежде, предположить, что операции умножения и сложения выполняются соответственно за 2 мс и 1 мс, а деление за S мс, то полное время выполнения арифметических операций для решения системы размера 100 X100 составит только (3) (99) (2 мс) + (3) (99) (мс) + (199) (5 мс) < 0,002 с. Так как число операций растет линейно по л, то даже при решении систе- мы размера 10000 X 10000 время выполнения арифметических операций на ЭВМ с такими характеристиками окажется меньше, чем 1 с. Требования к памяти при решении трехдиагональных систем также ока- зываются минимальными. Естественно, мы не станем использовать для хранения матрицы системы двумерный массив размера л X л, так как это 86
<ы означало выделение л3 ячеек памяти дня хранения только Зл элементов. Для запоминания ненулевых элементов матрицы и вектора правых частей удобно использовать одномерные массивы. Тогда, включая массив для решения, нам потребуется всего 5л ячеек памяти. Мы могли бы перефразировать описанный процесс исключения в тер- минах L ^разложения. В данном случае им _ (см. упражнение 3.3.6) и алгоритм разложения формулируется следую- щим образом: «1 *-«!!. Для/ -2....л (3.3.21) h' «*-!,/• Матрицы вида (3.3.20) иногда называют бидиагональными. Многие соображения относительно трехдиагональных систем примени- мы и к ленточным системам общего вида. Пусть А — ленточная матрица, структура которой показана на рис. 3.4, причем для простоты будем пред- полагать,- что q = р. В первом столбце подлежат исключению р элементов, и при этом исключении будут изменяться только те элементы матрицы Л, которые заключены в строках и столбцах с номерами от 2 до р. При этом потребуется р3 сложений, р1 умножений и р делений (не считая операций с правой частью системы). Полученная в результате первого этапа преобра- зования матрица снова оказывается ленточной с той же самой шириной ленты, так что для ее преобразования требуется такое же число операций. После л - р — 1 таких шагов приходим к задаче преобразования заполнен- ной матрицы размера (р + 1) X (р + 1). Таким образом, число сложений (или умножений), необходимое для приведения ленточной матрицы к тре- угольной форме, определяется выражением (л - р — 1)р3 + (р/б) (р + •И) (Зр+1)«лр3 -2р3/3. Хранение ленточной матрицы может быть организовано с помощью р + q + 1 одномерных массивов, анало- гично случаю трех диагональной матри- цы. Однако, если р достаточно велико, по-видимому, лучше хранить диагонали матрицы Л в виде столбцов двумерно- го массива размера л X (р + q + 1), как это проиллюстрировано на рис. 3.5 при л = 5,р = 1 и<? = 2. -л- Теперь вернемся к матрицам общего вида (не обязательно ленточным). Во- первых, отметим, что - определитель Рис. 3.5. Хранение ленточной матрицы — 0 «11 «1» «13 «м ап «и» «14 «» «за «34 «33 ч «4. «4* «м 0 «И «зэ 0 0 87
матрицы А, обозначаемый как det Л, легко получается в качестве пооочног* продукта процесса исключения. Действительно, так как определитель про- изведения двух матриц является произведением их определителей, а опре- делитель треугольной матрицы равен произведению ее диагональных эле- ментов, в результате Z.//-разложения матрицы А имеем det А = det LU= det L • det V = tu2 г ... м„„. (3.3.22) Таким образом, определитель является просто произведением диагональ- ных элементов приведенной к треугольному виду системы и для его вычис- ления требуется только л — 1 дополнительных умножений. Отметим, что и в том случае, когда нас интересует только определитель матрицы, а не ре- шение линейной системы, приведение к треугольной форме по методу гауссова исключения оказывается наилучшим общим способом его вы- числения. Процесс гауссова исключения является также и наилучшим способом обращения матрицы А. Пусть et — вектор, i-й элемент которого равен 1, а остальные равны нулю. Тогда вектор е/ представляет собой i-й столбец единичной матрицы I и из определяющего обратную матрицу соотноше- ния АА~* = I следует, что i-й столбец матрицы А~' является решением линейной системы уравнений Лх=ef. Таким образом, решая л систем урав- нений Axi = eit t = l..п, (3.3.23) и используя найденные векторы xt,.. ., в качестве столбцов, получаем обратную матрицу А ~1. Можно рассмотреть более общую задачу, заключающуюся в решении нескольких систем с одной и той же матрицей коэффициентов Axt = bf. i-1....т. (3.3.24) Эта задача может быть эффективно решена с помощью следующей моди- фикации процесса (3.3.16): 1. Факторизовать Л =LU. 2. Решить Lyi =bf, i = 1,..., т. (3.3.25) 3. Решить их, =у,. Обратите внимание на то, что матрица Л факторизуется только один раз, независимо от числа правых частей. Таким образом, число операций рав- но О(л3) + О(тп2), где второе слагаемое соответствует шагам 2 и 3 в (3.3.25). Объем работы, выполняемой на этапах 2 и 3, только тогда приближается к объему работы на шаге факторизации (по крайней мере для заполненных матриц), когда значение т становится близким к л. От- метим, что при вычислении Л-1, когда т = л, полное количество операций по-прежнему имеет порядок О (л3), т.е. тот же порядок, что и при решении линейной системы. Отметим также, что при реализации схемы (3.3.25) этапы 1 и 2 можно выполнять либо од новременно, модифицируя правые части в ходе процесса гауссова исключения, либо сначала провести факторизацию и запомнить множители 1ц, а затем перейти к этапу 2. Все алгоритмы этого раздела основывались на предположении, что эле- ментен и все последующие используемые в процессе исключения диаго- М
альные элементы преобразованных матриц не обращаются в нуль. При ре- цеиии практических задач этого оказывается недостаточно; зги элементы ЮЛжны быть в некотором смысле достаточно велики, так как в противном лучае могут возникнуть большие ошибки округления. Связанные, с этой тооблемой вопросы, а также модификации, необходимые для того, чтобы гооцесс исключения оказался жизнеспособной процедурой, будут рассмот- «ны в разделе 3.4. Дополнительные замечания и ссылки 3.3 Имеется большое количество книг, посвященных численным методам линейной шгебры, и в каждой из них рассматривается проблема решения систем линейных 'равнений; смотрите, например, (78, 88]. Более детальное и глубокое исследование !ано в книгах (84,91). Сведения о программном обеспечении решения линейных равнений можно найти в дополнительных замечаниях к разделу 3.5. Хотя метод гауссова исключения и является чрезвычайно эффективным, существу- ет алгоритмы с лучшими показателями по числу операций как функции от и. Так. например, в методе, предложенном в статье [75], число умножений, необходимое 2 8 тля решения линейной системы порядка л. есть О (л*-"). Однако постоянный шожитель, стоящий' перед этим членом, значительно превосходит множитель при таршем члене в методе гауссова исключения. В силу этого, а также большой слож- юсти упомянутый метод не смог составить серьезной конкуренции в практичес- жх расчетах алгоритму гауссова исключения. УПРАЖНЕНИЯ 3.3 3.3.1. Решите вручную следующую систему: 3х1 +'.v2 +2-v3 = 1, 4.v, + 3х2 +2х3 = 2, х, +4л2 + 2х, =4. 3.3.2. Выпишите явно, матрицы L и V, факторизующие матрицу А из упражне- шя 3.3.1. Пересчитайте решение снова, используя L и U. 3.3.3. Покажите справедливость следующих утверждений относительно числа опе- раций в методе гауссова исключения: а) число сложений (умножений) для вычисле- 1ия новой правой части равно п\п — 1)/2; б) для вычисления множителей число делений равно л (и - 1) /2; в) число делений при обратной подстановке равно л; । число сложений (умножений) при обратной подстановке равно л (л - 1)/2. 3.3.4. Покажите, что шаг процесса исключения, обнуляющий элементы .первого толбца матрицы Л, находящиеся в строках 2, 3,..., л, эквивалентен умножению А лева на матрицу 1 1 О L -/„1 о 1J кажи те более общее утверждение, что Z„_i... LtL,A “ U, где 1 -Ini 0 1 89
3.34. Убедитесь, что произведение матриц L и U иэ (3.3.20) является трехдиагт- налыюй матрицей. 3.34». Составьте программу, реализующую алгоритм гауссова исключения для трехдиагональных систем. Для хранения матрицы используйте одномерные массивы. 3.3.7. Составьте -программу, реализующую алгоритм гауссова исключения для ленточной матрицы с q диагоналями выше главной диагонали и р диагоналями ниже главной диагонали. Для хранения матрицы используйте схему, представленную на рис. 3.5. 3.34. Докажите следующие (уже использованные нами) свойства определителей: а) определитель треугольной матрицы равен произведений ее диагональных элемен- тов; б) определитель произведения двух матриц равен произведению определителей этих матриц. 3.4. Перестановки Рассматривая в предыдущем разделе алгоритм гауссова исключения, мы предполагали,' что at t и все последующие делители отличны от нуля. Теперь опишем модификацию этого алгоритма, которая позволяет, прово- дя при необходимости перестановку уравнений, избавиться от указанного ограничения. Предположим, как обычно, что матрица коэффициентов А является невырожденной. Допустим, что Дц =0. Тогда в первом столбце матри- цы А обязательно найдется другой отличный от нуля элемент, так как в противном случае матрица А оказалась бы вырожденной (см. упражне- ние 3.4.1). Пусть, например, ак1 Ф 0. Поменяв теперь местами первое и к-е уравнения, мы, очевидно, получим эквивалентную систему, у кото- рой элемент с индексами (1,1) отличен от нуля, так что можем выполнить первый шаг процесса исключения. Такую перестановку уравнений можно осуществить и на любом последующем шаге, если вычисленный диагональ- ный элемент, который должен служить в качестве делителя, обратится в пуль. Действительно, предположим, что мы довели процесс исключения до стадии «и и что at/ =0. Если все остальные элементы г-го столбца, лежащие ни- же «// 1 *, равны пулю, то эта матрица является вырожденной (см. упраж- нение 3.4.2). Преобразованная матрица получена из исходной , с помощью не изменяющей определителя операции добавления к одной строке матри- цы другой строки, предварительно умноженной на некоторый множитель, н операции перестановки строк, которая изменяет только знак определи- теля. Таким образом, если преобразованная матрица вырождена, то, вопре- ки предположению, и исходная матрица является вырожденной. Следова- тельно, по крайней мере один из элементов Ди (к = i + 1........л) не равен пулю, и мы можем переставить строку, содержащую этот элемент, 90
: /-й строкой, обеспечив тем самым отличие от нуля нового элемента с ин- дексами (/, /). Подчеркнем еше раз, что перестановка строк не изменяет решения системы. Мы уже отмечали, что перестановка строк приводит к изменению знака определителя матрицы коэффициентов. Поэтому если в нашу задачу входит вычисление определителя, то необходимо зафиксировать, какое было сде- лано число перестановок: четное или нечетное. Так как в точной арифметике описанный процесс гауссова исключения дает решение линейной системы за конечное число шагов и с этим процес- сом не связано никакой ошибки дискретизации, то единственное обстоя- тельство, которое может повлиять на точность вычисленного решения, — это наличие ошибок округления. Здесь имеются две возможности. Первая связана с накоплением ошибок округления при выполнении большого чис- ла арифметических Операций. Так, например, если п = 1000, то, как показа- но в предыдущем разделе, для решения системы потребуется поряд- ка и3 = 10е операций. Даже если ошибка на каждой отдельной операции мала, полная погрешность могла бы быть весьма значительной. Позднее увидим, что это потенциальное накопление ошибок округления оказывает- ся не столь серьезным, как можно было бы ожидать. Вторая возможность связана с возникновением катастрофических оши- бок округления. Если для алгоритма характерно это неприятное свойство, то такой алгоритм называют численно неустойчивым и его нельзя исполь- зовать в качестве универсального метода. Хотя описанный выше процесс перестановок с математической точки зрения.гарантирует применимость алгоритма гауссова исключения для решения любой невырожденной сис- темы, этот алгоритм может привести к возникновению катастрофических ошибок округления и является численно неустойчивым. Чтобы понять, как это может произойти, мы проанализируем простой пример разме- ра 2 X 2. Рассмотрим систему I—105 1 1 Г Xi 1 _ Г 1 1 2 1 J L Ха J L 0 J с точным решением =-0,4999975... , х2 = 0,999995. Предположим теперь, что в нашем распоряжении имеется компьютер, выполняющий операции над десятичными числами, причем длина слова соответствует четырем цифрам. Это означает, что числа представляются в форме 0. * * * * X 10₽. Давайте выполним алгоритм гауссова исключения на этом гипотетическом компьютере. Во-первых, заметим, что t 0 и ни- какой перестановки не требуется. Множитель -0,2X10* , 12 1 = — -----7 = -0.2 X 10* 0,1 X 10“4 (3.4.1) вычисляется точно, а значение нового агг получается как 4? = 0,1 • Ю1 - (-0,2 • 10е) (0,1 • 10*)= 0,1 • 10* + 0,2 10* =0,2 • 10*. (3.4.2) 91
Точная сумма в (3.4.2) равна, разумеется, 0,200001 • ГО", но, так как г слове компьютера помещаются только четыре цифры, это число должно быть представлено в виде 0,2000-106. Это первая ошибка округления, возникшая в ходе вычислений. Новое Ь2 есть д2(,) = - (-0,2 • 106 ) (0,1 • 10*) = 0,2 106. (3.4.3) Отметим, что при вычислении этого значения ошибки округления не возни- кают. Не возникают они и при обратной подстановке: д}0 0,2 -106 х2 = —77г --------г= 0,1 • Ю1, а® 0,2 • 106 0,1 • 10* -0,1 • ю1 *1 =-----— T_L«----- "0. -0,1 . IO"4 Найденное значение x2 прекрасно согласуется с точным значением, но зна- чение Xi не имеет ни одного верного знака. Подчеркнем, что была допущена только одна ошибка при вычислении а^2, причем эта ошибка произошла в шестом десятичном знаке. Все остальные операции были выполнены точно. Каким же тогда образом смогла эта ’’малюсенькая” ошибка при- вести к столь катастрофическому отклонению вычисленного значения х, от точного решения? Ответ на этот вопрос можно получить с помощью принципа обратного анализа ошибок, являющегося одной из наиболее важных концепций научного программирования. Основная идея обратного анализа ошибок состоит в выяснении не того, какая допущена ошибка, а того, какая же задача на самом деле решена. Мы используем здесь этот принцип следую- щим образом. Обратите внимание, что величина 0,000001 ХЮ6, которая была отброшена при вычислении а^2 в (3.4.2), есть просто элемент а22 исходной матрицы. Так как это единственное место, где а22 участвует в вычислениях, то сосчитанное решение было бы тем же самым, если бы значение а22 равнялось нулю. Другими словами, при вычислении на нашем четырехразрядном компьютере мы нашли точное решение системы [ -io-s П Г *il Г 11 Интуитивно мы чувствуем, что системы (3.4.1) и (3.4.4) могут иметь со- вершенно различные решения, и именно так и обстоит дело. Но почему же все это произошло? Виновником является большой мно- житель /2|, который из-за недостаточной длины машинного слова не позво- лил элементу д22 включиться в сумму (3.4.2). Этот большой множитель возник из-за малости Ди по сравнению с д21, и ’’лекарством”, как и прежде, оказывается перестановка уравнений. Действительно, если бы мы на нашем гипотетическом четырехразрядном компьютере решали систему I 2 1 L -io s 1 (3-4.4) (3.4.5) 92
u имели бы следующие результаты: 0,1 • IO-4 = -0,5 • 10"s, l2t 0,2 • 10* а£>=0,1 • 10' *2(l> = 0,l -10' 0,1 • 10s x2 ----------Г 0,1 • 10* -(0,1 Ю*)(П xl = ---------------- 0,2 • 10' -(-0,5 • 10-5)<1) = 0,1 • 10', -(-0.5 • 10"s)(0) = 0,l • 10*, = l.o, Как видно, полученное решение теперь прекрасно согласуется с точным решением. Следуя сравнительно простой стратегии, всегда можно добиться, чтобы используемые в процессе исключения множители были по абсолютной величине меньше или равны единицы. Эта стратегия, называемая стратегией частичного упорядочивания, состоит в следующем: если это необходимо, то на к-м шаге процесса исключения осуществляется перестановка строк, так чтобы на главной диагонали оказался наибольший по абсолютной величине элемент из элементов Л-го столбца, лежащих ниже главной диа- гонали и на ней самой. Включая эту схему перестановок в алгоритм прямо- го исключения (3.3.11), получаем Прямое исключение с частичным упорядочиванием Для. к = 1,... ,п- 1: найти т> А: такое,что |am*l = max{|art|: i>k}; если amk = О, то А вырождена, прекратить алгоритм, иначе поменять местами akf и ат, (f = k,k + l,...,n), поменять местами Ьк и Ьт. Для i = k + 1,к +2,..., п: (3.4.6) hk *~&ikfakkt для j = k + 1,Л + 2,... ,п: oy^-ay-Iikakj, bt*-bt — ltkbk. Метод гауссова исключения с частичным упорядочиванием зарекомендо- вал себя на практике как исключительно надеждный алгоритм. Тем не менее существуют два основных опасных момента, которые следует иметь в виду. Во-первых, перед использованием алгоритма матрица должна быть масштабирована. Чтобы проиллюстрировать это, рассмотрим систему [10 -106 1 Г 1 Г -io6 2 1 J I х2 J 1 О Стратегия частичного упорядочивания не требует здесь никаких перестано- вок, так как элемент ап уже является наибольшим в первом столбце. 93
Однако если мы проведем исключение на нашем гипотетическом четыре:- разрядном компьютере (см. упражнение 3.4.5), то встретимся точно с той же самой проблемой, с которой мы столкнулись при решении системы (3.4.5). В самом деле, (3.4.7) — это просто система (3.4.1), первое урав- нение которой умножено на - Ю6. Использование стратегии частичного упорядочивания обосновано в том случае, если матрица коэффициентов масштабирована так, что максималь- ные элементы в каждой строке н каждом столбце имеют одинаковый порядок величины. Такое масштабирование иногда называют уравновеши- ванием матрицы. К сожалению, нам не известна какая-либо простая и уни- версальная процедура для такого масштабирования, однако в конкретных практических задачах обычно бывает ясно, какие строки и столбцы нужда- ются в масштабировании, причем оно может быть проведено др начала процесса исключения. Так, например, если дана система (3.4.7), то следует пронормировать первую строку так, чтобы ее максимальный элемент рав- нялся примерно единице. Тогда элемент flu станет малым и стратегия частичного упорядочивания приведет к перестановке первой и второй строк. Вторая опасность заключается в том, что даже в случае равновесной матрицы стратегия частичного упорядочивания может оказаться численно неустойчивой. Теоретические примеры такого рода построены, однако возможность появления таких матриц в практических задачах настолько маловероятна, что ею можно смело пренебречь. (Смотрите также допол- нительные замечания в конце настоящего раздела.) При использовании перестановок строк алгоритм гауссова исключения перестает быть эквивалентным разложению матрицы А в произведение нижней н верхней треугольных матриц. Нижняя треугольная матрица в этом случае модифицируется описываемым ниже образом. Матрицей перестановок называется такая матрица Р размера л Хи, в каждой строке и в каждом столбце которой имеется ровно один эле- мент, равный единице, а все остальные элементы равны нулю. Пример такой матрицы размера 4X4 дает матрица “1 0 0 0 0 0 0 1 р = 0 0 1 0 О 1 0 0 (3.4.8) Перестановка строк матрицы может быть осуществлена с помощью умно- жения слева на матрицу перестановок. Например, умножение матрицы размера 4X4 на матрицу перестановок (3.4.8) переставляет вторую и четвертую строки, оставляя первую и третью строки на месте (см. упраж- нение 3.4.6). Таким образом, требуемая стратегией частичного упорядочи- вания перестановка строк матрицы коэффициентов А может быть пред- ставлена как результат умножения матрицы А слева на соответствующие матрицы перестановок. Если обозначить через Pt матрицу перестановок, соответствующую перестановке строк на Z-м шаге процесса исключения, то фактически получаем треугольную факторизацию матрицы Рп-1Рп-2 P2PiA=LU, (3.4.9) 94
не самой матрицы А. Отсюда A (P~lL) U. Так как произведение мат- риц перестановок является матрицей перестановок и обратная к матрице перестановок матрица является матрицей перестановок (см. упражне- ние 3.4.7), первый множитель в разложении А является перестановкой нижней треугольной матрицы, а второй множитель по-прежнему является верхней треугольной матрицей. Отметим, что если на i-м шаге никакой перестановки строк не требуется, то матрица перестановок Pf является просто единичной матрицей. Перестановки строк требуют дополнительного машинного времени, а в случае ленточных матриц, кроме того, несколько усложняют хранение. Рассмотрим сначала трехдиагональную систему. Если на первом шаге будет проведена перестановка строк,, то элементы первых двух строк будут иметь вид • * * О___ • • 0... Тогда в процессе исключения в позиции (2,3) в общем случае появится ненулевой элемент, и преобразованная матрица размера (и — 1) Х(п — 1) будет опять трехдиагональной. Таким образом, эффект перестановки * строк сводится к возможному появлению ненулевых элементов во второй наддиагонали преобразованной треугольной матрицы, т.е. множитель U в разложении А больше не будет бидиагональной матрицей, а будет в общем случае иметь три ненулевые диагонали. По-видимому, самый щюстой путь работы с памятью в этом случае заключается в выделении дополнительного одномерного массива для хранения этих элементов второй наддиагонали. Та. же самая проблема возникает и для ленточных матриц, имеющих форму, показанную на рте. 3.4. Если на первом шаге потребуется переста- новка первой строки й строки р+ 1, то это приведет к появлениюрдопол- нительных элементов в первой строке, что в свою очередь в процессе исключения приведет к появлению дополнительных, элементов в строках 2, 3, ..., р+1. Таким образом, необходимо предусмотреть место для хранения р возможных Дополнительных наддиагоналей. Простейший способ заключается в выделении с самого начала дополнительного массива памяти размера лХр. Естественно, для этого потребуется пр дополнительных ячеек памяти. Другой путь основан да том, что нужное количество допол- нительной памяти не превосходит объема памяти, используемого для хра- нения ненулевых по дди атонален. Так как в ходе алгоритма лежащие на поддиагоналях элементы исключаются, то занимаемая ими память осво- бождается и ее можно использовать для хранения новых наддиагональных элементов. Однако обычно это пространство под главной диагональю используется для запоминания множителей, так что если эти множители нужны, то у нас нет никакой другой альтернативы, кроме выделения допол- нительной памяти. Хотя для произвольных невырожденных матриц использование страте- гии частичного упорядочивания является необходимым, имеются некото- рые типы матриц, относительно которых известно, что они не требуют никаких перестановок. Наиболее важными из них являются диагонально доминирующие матрицы (см. уравнение (3.2.21)) и положительно опре- 95
деленные симметричные матрицы (см. приложение 3). В обоих этих еду» ях можно спокойно использовать алгоритм гауссова исключения без каких либо перестановок строк; мы еще обсудим этот вопрос в следующем разделе. Это обстоятельство особенно благоприятно для ленточных матриц, и оказывается чрезвычайно удачным, что большинство возникающих при решении дифференциальных уравнений ленточных матриц являются либо диагонально доминирующими, либо симметричными и положительно оп- ределенными. В случае симметричной положительно определенной матрицы иногда оказывается полезным вариант гауссова исключения, известный как метод Холецкого. Этот метод основывается на разложении A =LLT. (3.4.10) Здесь L - нижняя треугольная матрица, у которой на главной диагонали не обязательно стоят единицы, как это было в случае L (/-разложения; через LT обозначена матрица, транспонированная к L. При условии поло- жительности диагональных элементов матрицы L разложение (3.4.10) является единственным (см. упражнение 3.4.8). Приравнивая соответствующие элементы в левой и правой частях (3.4.10), можно получить правило, позволяющее выразить элементы мат- рицы L через элементы А. Действительно, если обозначить элементы мат- Приравнивая элементы первого столбца слева н справа от знака равенства в (3.4.11), видим, что ац=1ц1и, так что первый столбец матрицы L находится по формулам /н=(А11),/2. /д»вд//1ь ( = 2,(3.4.12) Аналогично получаем соотношения I . i ац= S /?*, а/у= S ltkljk, j<i, (3.4.13) it= i fc= i которые являются основой для последовательного определения столбцов матрицы L по следующему алгоритму. Разложение Холецкого Для/= 1,... ,и: /^)V2. (3.4.14) k = 1 Для i=j + hi *" (fl<f— hk)lhi • к - 1 96
looie вычисления матрицы L решение линейной системы может быть получено точно так же, как и в случае £ [/-разложения (3.3.16): решаем Ly = b, а затем решаем LTx=y. Для реализации метода Холецкого необходима положительность величин ац из которых извлекается квадратный корень. Если матрица коэффициентов А является положительно определенной, то все эти вели- чины действительно будут положительными и, более того, сам метод будет численно устойчивым. Метод Холецкого позволяет очень эффективно использовать машинную память. Так как матрица А симметрична, то нужно хранить только ее нижнюю треугольную часть, причем элементы //,- сразу после вычисления можно записывать на место соответствующих элементов матрицы Л. Кроме того, этот метод легко адаптируется на случай ленточных матриц. Если р — число ненулевых диагоналей ниже главной диагонали матрицы А (тогда, в силу симметрии, имеется н р ненулевых диагоналей выше главной диаго- нали) , то алгоритм (3.4.14) принимает вид Разложение Холецкого для ленточных матриц Для /=!,..., п: q <-max(l, j —р), 'f' *=<? Для i=j + 1,.. .,mifl(/ +p, n): r •«-max(l, i — p), k = r В этом разделе мы обсудили различные вопросы, связанные с точностью численного решения систем линейных уравнений. В следующем разделе мы рассмотрим ряд дополнительных проблем, в том числе важный вопрос о ’’плохой обусловленности”. Дополнительные замечания и ссылки 3.4 ’ Перестановку строк, обусловленную стратегией частичного упорядочивания, не обязательно выполнять явно. Вместо этого можно осуществлять неявные перестанов- ки, используя вектор перестановок, который содержит информацию о том, какие строки поменялись местами; подробнее смотрите [88]. Вопрос об использовании явных или неявных перестановок зависит от машинного времени, необходимого для перестановки строк, времени, связанного с индексацией, требований к наглядности программы и ряда других соображений. В тех случаях, когда стратегия частичного упорядочивания оказывается недоста- точной для гарантии точности, можно использовать другую стратегию, называемую стратегией полного упорядочивания. Эта стратегия заключается в перестановке строк и столбцов таким образом, чтобы в качестве делителя на главной диагонали оказался наибольший по абсолютной величине элемент из еще не обработанной подматрицы. Такая стратегия гауссова исключения приводит к значительному росту машинного времени и редко используется в стандартных программах. Дальнейшую информацию по этому вопросу можно найти в работе [83]. . Дж. Ортега 97
УПРАЖНЕНИЯ 3.4 3.4.1. Предположим, что 1-й столбец матрицы А содержит только нулевые элемен- ты. Покажите, что матрица А вырождена, используя следуюпже разные аргументы: а) шфещепитель А равен нулю; б) О, где е<-вектор, имеющий единицу в/-Й по- зиции и нули в остальных; в) матрица А имеет не более л - 1 линейно независимых столбцов. 3.4.2. Пусть Л - матрица вида 0 «« О «1-1,1-1 О ац •М,1 _0 ... О а„1 ... ат_ Покажите, что еслиед«в|+1>, =... •«„,= О, трА вырождена. 3.4.3. Следующую систему размера 3x3 репине методом гауссова исключения, делая при необходимости перестановки строк, чтобы избежать деления на нуль: 2х,+2х,+3х, =• 1, х, +х, + 2х, 2, 2х, +ха + 2х, - 3. 3.44. Составьте программу, реализующую алгоритм гауссова исключения (3.4.6) со стратегией частичного упорядочивания. Вклюютте обратную подстановку. 3.43. Примените алгоритм гауссова исключения к системе (3.4.7), используя описанный а тексте четырехразрядный десятичный компьютер. Повторите вычисле- ния после перестановки уравнений. 3.4.6. а) Покажите, что при умножении матрицы размера 4x4 слева на матрицу перестановок (3.4.8) вторая и четвертая строки меняются местами, а первая и третья остаются без изменений; б) покажите, что умножение отрава на эту матрицу переста- новок меняет местами второй и четвертый стобцы; в) выпишите матрицу перестано- вок размера 4X4, которая переставляет первую и третью строки, оставляя вторую и четвертую без изменений. 3.4.7. Покажите, что произведение двух матриц перестановок размера л X л явля- ется матрицей перестановок. Покажите, что матрица, обратная к матрице перестано- вок, есть матрица перестановок. 3.4.8. Пусть А - LLT — факторизация симметричной положительно определенной матрицы А, где L - нижняя треугольная матрица с положительными элементами на главной диагонали. Покажите, что ecng матрица L получается из L переменой знаков всех элементов Z-й строки, то A *LLT. (Отсюда видно, что разложение вида LLT не является единственным, хотя существует только одна такая матрица L с положи- тельными элементами на главной диагонали.) 3.5. Плохая обусловленность анализ ошибок Алгоритм гауссова исключения с частичным упорядочиванием зареко- мендовал себя на практике как эффективный и надежный метод. Тем не менее и этот алгоритм может не привести к точному решению, если система уравнений ’’плохо обусловлена”. Говорят, что линейная система уравнений ‘ является плохо обусловленной, если малые изменения элементов матрицы коэффициентов или правых частей приводят к большим изменениям в решении. В этом случае ни от какого численного метода нельзя ожидать, 98 '
что он даст точное решение, а во многих случаях даже не следует пытаться искать решение. Начнем с простого примера размера 2 X 2. Рассмотрим систему 0,832X1 + 0,488X2 = 1,00, 0,784X1 + 0,421 х2 - 0 (3.5.1) и предположим, что выполняем алгоритм гауссова исключения на трех- разрядном десятичном компьютере. Так как ац — наибольший элемент матрицы, то никакой перестановки не требуется, и новые элементы а'£ и выделяются следующим образом:. /21 я 0,784/0,832 = 0,9421308 ... = 0,942, = 0,421 - 0,942 • 0,448 = 0,421 - 0,4221016 = -0,001, (35.2) ft2(O = 0 - 1,00 • 0,942 = -0,942. Здесь мы отделяем вертикальной чертой те цифры, которые теряются при вычислении. Таким образом, получаем треугольную систему 0,832X1 + 0,448X2 = 1,00, -0,001X2 =-0,942, и обратная подставнока дает приближенное решение Xi =-506, х2 =942. / (3.5.3) Но истинное решение (3.5.1), с точностью до трех знаков, есть дс1 = —439, х2 = 817, (3.5.4) так что вычисленное решение отличается от точного примерно на 15%. Почему же это произошло? Первый и бросающийся в глаза ответ состоит в том, что мы потеряли знаки при вычислении aty. Действительно, вычислеьдое значение содержит только одну значащую цифру, так что наше окончательное реше- ние не будет иметь более одного верного знака. Но это только внешнее проявление существа проблемы. Здесь снова воспользуемся принципом обратного анализа ошибок. Выполняя вычисления* более детально, можно показать, что полученное решение (3.5.3) является точным решением Рис. 3.6. Почт параллельные пря- мые, определяемые системой (3.5.1). Прямые, пересекаются в точке (-439,817)
системы 0,832xi + 0,447974.. .ха = 1,00, 0,783744... Xi + 0,420992... ха = 0. (3.5.5) Максимальное относительное изменение элементов этой системы по отно- шению к исходной системе (3.5.1) составляет примерно 0,03%. Однако такое изменение приводит к изменению решения на 15%, т.е. ошибки в данных увеличиваются примерно в 500 раз. Коренная причина этой плохой обусловленности заключается в том, что матрица коэффициентов (3.5.1) ’’почти вырождена”. Геометрически это означает, что определяемые двумя уравнениями (3.5.1) прямые почти параллельны. Эта ситуация показана на рис. 3.6. Рассмотрим теперь систему уравнений 0,832X1 + 0,448ха = 1,00, 0,784X1 + (0,421 + е) х2 = 0. (3.5.6) Второе уравнение определяет семейство прямых, зависящее от парамет- ра е. При увеличении е от нуля примерно до 0,012 прямая поворачивается против часовой стрелки. При этом точка ее пересечения с прямой, опреде- ляемой первым уравнением, удаляется в бесконечность до тех пор, пока прямые не станут параллельными и линейная система не будет иметь ре- шения. Ясно, что при приближении параметра е к значению, при котором сис- тема (3.5.6) вырождается, даже очень малые изменения одного коэффи- циента системы могут вызывать все увеличивающиеся изменения решения. В точке вырождения определитель матрицы коэффициентов обращается в нуль, и иногда считают, то малость определителя является мерой плохой обусловленности системы. Но, как показывает следующий пример, в общем случае это неверно. Пусть det 10"‘° 0 0 Ю-ю м Г 1010 0 1 «КГ20, det ,п = 1О20. L 0 10“ J (35.7) Значения этих двух определителей совершенно различны, но прямые, зада- ваемые двумя соответствующими системами уравнений: 10"1ОХ1 =0, 101Ох1 =0, 10"1Ох2=0, 101Оха=0, (3.5.8) являются одними и теми же, просто координатными осями. Как нам вскоре станет ясно, если определяемые уравнениями системы прямые взаимно перпендикулярны, то система ’’идеально обусловлена”. Таким образом, величина определителя матрицы коэффициентов не является хорошей мерой близости этой матрицы к вырождению. Однако, как мы увидим, если матрица надлежащим образом масштабирована, эта величина может стать основой для такой меры. В случае двух уравнений очевидно, что хорошей мерой ’’почти параллель- . ности” двух соответствующих прямых может служить угол между ними. По существу, эквивалентной мерой является площадь показанного на 100
ис. 3.7 параллелограмма, длины сторон которого равны единице, а высо- та обозначена через й. Так как основание равно единице, то площадь парал- лелограмма численно равна просто й, а угол 0 между прямыми, опреде- ляемыми этими двумя уравнениями, связан с й соотношением Л = sin в. Таким образом, площадь й изменяется от 0, когда прямые сливаются, до 1, когда они перпендикулярны, и служит хорошей мерой ’’почти парал- лельности” этих прямых. Из аналитической геометрии известно, что расстояние от точки (0, у) ДО прямой Д21*1 + «22*2 = О есть й = lajiP+anVl/Ob, «2 =(«21+«22)1,2 • Если предположить, что ди >0, то координаты (0, у) будут задаваться формулами 0 = -au/at, у = Лц/«1, «1 =(ли+л?2)*/2, так что , 1«11«22 ~ «21«1г1 Й = ---------------- «1«2 I det Л | <»1(*2 (3.5.9) Таким образом, видим, что площадь h равна значению определителя, делен- ному на произведение ata2. Рис. 3.7. Единичный параллелограмм Эта мера легко распространяется на случай п уравнений. Пусть А = = ~ матрица коэффициентов системы. Положим |det А | у=--------------- ata2 . ..«и (3.5.10) где at = (4i +л« +... +4„)V2. Мы обозначили величину в (35.10) через К, а не через й, потому что она представляет собой объем л-мерного параллелепипеда, построенного на прямых, определяемых строками матрицы А. Величины 1 («Н»«й»----«Л/и)» *’=1»---,и» являются координата»» л точек л-мерного пространства, евклидово рас- стояние которых от начала координат равно единице, и зти л точек опре- деляют параллелепипед с единичными сторонами. 101
Интуитивно ясно й может быть доказано, что объем параллелепипед заключен между нулем, если, например, две или более- сторон совпадают, и единицей, когда все эти стороны взаимно перпендикулярны. Если V = О, то det Л =0, и матрица А является вырожденной. Если V - 1, то стороны ’’максимально непараллельны”, и в этом случае матрица А называется идеаяыю обусловленной. Видим, что Idetl...................II, I I ani!aH . . . annlon J| т.е. объем V равен абсолютной величине определителя матрицы, строки которой нормированы на единичную евклидову длину. Плохая обусловленность матрицы проявляется не только в сложности вычисления точного решения соответствующей линейной системы. Вернем- ся снова к системе (3.5.1) и предположим теперь, что "реальная” задача, которую мы бы хотели решить, описывается системой (3.5.5), но коэффи- циенты этой системы измеряются при помощи некоторой физической аппаратуры, которая обеспечивает точность только до третьего десятично- го знака. Таким образом, система (35.1) - зто не та система, которую нам надо репмть на самом деле, а некоторое ее приближение, которое нам удалось получить. Предположим также, что мы можем утверждать, что коэффициенты приближенной системы определены с точностью не менее 0,05%. Если сравнить системы (35.1) и (35.5), то видно, что зто действительно имеет место. В такой ситуации часто можно слышать утверж- дение, что мы должны суметь найти решение системы примерно с той же точностью. Но, как мы уже видели, такое утверждение неверно: в случае системы (3.5.1) из-за плохой обусловленности матрицы небольшие погреш- ности в коэффициентах приводят к погрешностям в решении в 500 раз большим. Следовательно, как бы точно мы ни решали систему (35.1), нам не избавиться от ошибок, обусловленных погрешностями при изме- рении коэффициентов. Если, например, нам надо найти решение ’’реальной” системы (3.5 5) с точностью не менее чем 1 %, то необходимо измерять коэффициенты точнее, чем с тремя десятичными знаками. Таким образом,. некоторые плохо обусловленные системы не следует даже пытаться ре- пить, а нужно либо переформулировать задачу, либо провести более точные измерения данных. В некоторых случаях, однако, матрица коэффициентов может быть известна точно. Классический пример плохо обусловленных матриц дают матрицы Гильберт, элементы которых являются точными рациональными мслами: 1 1/2 ... - 1/л 1/2 (35.11) 1_ 1/и .. . 1/(2л—1)J С увеличением л эти матрицы становятся все более плохо обусловленными. Насколько плоха обусловленность этих матриц, можно проиллюстрировать таким примером. Если при п=8 ввести элементы матрицы на ЭВМ в виде двоичных дробей с 27-ю двоичными знаками (что эквивалентно примерно 102
jcbMM десятичными знакам), то точно вычисленная на ЭВМ обратная матрица 'будет отличаться от точной обратной к Яв матрицы в первом знаке! Другое проявление плохой обусловленности состоит в следующем. Предположим, что х - вычисленное решение системы Ах=Ь. Один из способой оценки точности х заключается в определении вектора невязок г=Ах — Ь. (35.12) Если х точное решение, то вектор г будет равен нулю. Следовательно, мы могли бы ожидать, что если х - хорошее приближение к точному ре- шению, то вектор г будет ’’мал”, и, наоборот, если вектор г мал, то х яв- ляется хорошим приближением. В некоторых случаях это действительно так, но если матрица А плохо обусловлена, то величина г может быть весьма обманчивой. В качестве примера рассмотрим систему 0,780*1 +0,563х2 =0,217, 0,913*! +0,659*2 =0,254 (35.13) и приближенное решение а Г 0,341 1 х= I I. L -0,087 J (35.14) В этом случае вектор невязок есть (35.15) Рассмотрим теперь совершенно отличное приближенное решение [ 0,9991 -1,001] и соответствующий вектор невязок Г -0,0013... 1 *1 0,0015...] (35.16) (35.17) Сравнивая невязки (3.5.15) и (35.17), можем прийти к заключению, что (3.5.14) дает лучшее приближение к решению. Однако точным решени- ем системы (35.13) является вектор (1, —1), так что невязки дают ин- формацию, которая только вводит в заблуждение. Подобное явление может возникнуть и при обращении матриц. Пусть [ 9999 9998 ] Г 9999,9999 -9997,0001 I, В = 1 10000 9999 J L -10001 9998 где матрицу В мы рассматриваем как приближение к матрице А~'. Чтобы оценить точность этого приближения, вычислим матрицу невязок Л, =АВ-1= 0,0001 0,0001 0 0 (35.18) 103
где / - единичная матрица. Если бы В равнялась А~‘, то матрица иевязо: была бы нулевой. И действительно, значения невязок очень малы, особенно в сравнении с величинами элементов матриц Ат В. Это, казалось бы, сви- детельствует о том, что матрица В является очень хорошим приближением к матрице Л-1. Но обратная матрица должна также удовлетворять соот- ношению А~'А — 1=0, и если мы вычислим соответствующую матрицу невязок, то получим Какой же матрице невязок верить? Матрица (35.18) указывает на очень хорошее приближение, в то время как (35.19) говорит о плохом прибли- жении. Истинная же обратная матрица равна А'1 = 9999 -99981 -10000 9999 ]’ так что В дает приближение с точностью до единицы в четвертом знаке. Таким образом, матрица невязок (3.5.19) вводит нас в заблуждение и это снова является следствием плохой обусловленности матрицы А. Теперь обратимся к другому способу определения степени плохой обусловленности матрицы, основанному на использовании норм (обзор- ные сведения о нормах векторов и матриц можно найти в приложении 3). Предположим сначала, что х* — решение системы Ах=Ь и х* + Дх — ре- шение этой же системы с правой частью b + ДЬ, т.е. А(х* + Дл) =Ь + ДЬ. (3.5.20) Так как Ах* = Ь, то отсюда следует, что Л(Дх)=ДЬ и Дх=Л-,(ДЬ). Здесь, как обычно, предполагаем, что матрица А невырожденна. Следо- вательно, 1ДхК1Л Ч1Д»1, (3.5.21) откуда видно, что изменение решения, обусловленное изменением вектора правой части, ограничено величиной 1Л'11. Таким образом, если IIА~‘ V велика, то небольшое изменение b может привести к большому измене- нию х*. Понятие "большое” всегда является относительным, поэтому полезнее иметь дело с относительным изменением IIД xl / II х* I. Из А х* = b следует ИЫ<ИЛИ8х*11, что вместе с (3.5.21) дает И Дх11ЬК 1Л1 ИЛ-11 IДЬ11х*1 или, что то же самое (при b Ф 0), (3.5.22) Из этого неравенства видно, что относительное изменение х*, обусловлен- ное изменением Ь, ограничено величиной относительного изменения Ь, 104
/множенной на IA11 А~’ II. Произведение #ЛII#Л-11 играет очень важную роль и называется числом обусловленности матрицы А (по отношению к используемой норме); это число мы будем обозначать соп4(Л). Матри- цы, у которых значение сопб(Л) велико, являются плохо обусловленными, а матрицы, у которых соп<1(Л) мало, хорошо обусловленными (отметим, что cond(4) > 1). Рассмотрим теперь случай, когда изменяются элементы матрицы А, так что возмущенное уравнение имеет вид (А + 6Л) (х*+6х) = Ь. (35.23) Так как Ах* = Ь, то Л6х = Л — (Л + 6Л )х* — SASx = —SА (х* + 6х), или —6х=Л~’6Л (х*+6х). Следовательно, g SA П #6x0 < И ЛИ 16ЛЯI х* + 6x# = cond(4)----~1х* + 6хИ, #Л1 так что 16x0 1бЛ1 —— < cond(d ) —-. (35.24) #х* +6х# я Л п И снова главную роль в оценке играет число обусловленности. Обратите внимание, что (35.24) выражает изменение х* по отношению к возму- щенному решению, а не к самому х*, как в (35.22), хотя можно получить оценку и относительно х*. Неравенства (35.22) и (35.24) нужно правильно интерпретировать. Если число обусловленности матрицы Л мало, скажем близко к 1, то малые относительные изменения данных обязательно приводят лишь к малому изменению решения. С другой стороны, если число обусловлен- ности велико, то малые изменения в данных могут привести к большому изменению решения, но это происходит не обязательно, а в зависимости от конкретного возмущения. На практике влияние большого числа обус- ловленности зависит от точности данных и длины слова используемой ЭВМ. Если, например, сопб(Л) = 106, то может быть потеряно 6 десятичных знаков, что на ЭВМ с длиной слова, эквивалентной восьми десятичным знакам, может оказаться катастрофой, в то время как на ЭВМ с длиной слова в 16 десятичных знаков это может и ие вызвать никаких серьезных проблем. В общем случае очень трудно вычислить число обусловленности IЛ# 1Л"1 И, не зная матрицы Л-1. Однако в некоторых представляющих интерес случаях это удается сделать сравнительно просто, и мы сейчас приведем пример такого вычисления в норме /2 для трехдиагональной матрицы Л из (3.2.15). Как указано в приложении 3, норма /2 симметрич- ной матрицы равна ее спектральному радиусу- Следовательно, 1Л«#Л-,1 =р(Л) р(Л-‘). 105
Как мы сейчас покажем, все собственные значения матрицы (3.2.15) легко выражаются явно, что дает нам возможность найти «мело обусловленности. Ключ к вникяешю лежит в легко проверяемом (см. -упражнение 3.55) тригонометрическом тождестве (/ —1)(*я) . (/ + 1)(*я) *я . /*я —sin------------sin ______ = —2 cos —— sin —, (35.25) и +1 n + 1 n + 1 л + 1 которое справедливо для/,й = 1,... ,л. Если к обеим частям этих равенств прибавить член 2sin (/йя/(л + 1)] и затем выписать систему этих равенств при / = 1, ..., л и фиксированном к в матричной форме, то мы получив 2 -1 kit sin —— и + 1 2ки sin---- пкп sin--- л + 1 Отсюда видно, что собственные значения Хл и соответствующие соостве- ные векторы v* суть кк sin------ кк X* = 2 — 2 cos — 2кк sin---- л. (35.26 v* = , *=1 лйя sin---- L л +1_ Таким образом, максимальное собственное значений матрицы А есть ял />(Л)=Х^ — 2 —2cos “ , а минимальное я Xi = 2 - 2 cos---> 0. (Отсюда, между прошм, видно, что матрица А является положительг определенной.) Так как собственные значения А~* суть Х^1, ..., Х„’, > спектральный радиус матрицы Аравен X]1. Следовательно, ял 2-2COS.------ IАI, М-‘ I, = X* Xi’ =---------. я 2 — 2 cos---- 106
1ри больших л мы можем заменить косинусы первыми членами разложе- ния в ряд Тейлора: я я2 COS ---г =» 1 —— , п + i 2(„ + 1)2 ’ ля я cos------ —cos ' — н +1 л + 1 я* 2(п + 1)2 ’ так что я2 2 II л || , 2(л + 1)2 4(л + 1)2 -я2 аНЛ-’Ц2 = 4—Г =О(«2)- 1Г 1Г 2(п +1)2 Отсюда видно, что матрица А является умеренно плохо обусловленной и что число обусловленности растет примерно как квадрат порядка матрицы. В заключение этой главы вернемся к линейной двухточечной краевой задаче из раздела 3.2. В качестве примера рассмотрим, следующую задачу: 1(1 +х2)ы*]’= 2+6х2 + 2xcosx-(1 +x2)sinx, (3.5.27) ы(0)=1, ы(1) = 2 + мп1. (3.5.28) Уравнение (3.5.27) можно переписать в виде (1 + х2)ы" + 2хм' = 2 + 6х2 + 2xcosx-(l + x2)sinx, (3.5.29) т.е. в общей форме уравнения второго порядка (3.2.1). Чтобы оценить точ- ность разностных методов раздела 3.2, мы выбрали задачу, решение кото- рой известно: и (.v) = х2 + sinx +1. (3.5.30) Для аппроксимации уравнения (3.5.27) будем использовать три различ- ные схемы. Первый метод определяется формулами (3.2.24) и (3.2.25) раз- дела 3.2 и использует для первой производной аппроксимацию первого порядка. Сравнивая форму уравнений (3.5.29) и (3.2.1), видим, что д(х) = = 1 + х2, 6(х) = 2х, с(х) = 0, a d(x) есть правая часть (35.29). Отсюда следует,чтоД/ -a(xt) xa(ih) = 1 + (ih)2,bi = 2ih,ct = 0и^ = 2+6(/Л)2 + + 2/Лсо1(|'Л) - (1 + /2Л2) sin(ift). Таким образом, /-я строка матрицы коэффициентов в (3.2.25) принимает вид (так как bt > 0) л -1-/2й2, 2+2/(/+1) й2,—1 —1(1+ 2)й2, (3.531) и вся матрица имеет форму ’ 2+4Л2 -1-ЗЛ2 -1-4Л2 2 + 12Л2 — 1—8Л2 ° 0 —1 — л2й2 2+ 2л(л + 1)й2 J * (3.5.32) где (л + 1)й = 1. Вектор правых частей задается в виде -й2Н -(1 +Л-’Х d2,...,d„-(n2 +Л-2)(2 + яп1)]г. (3.5.33) 107
_U(X) Рис. 3.8. Решение задачи (3.5.27)-(3.5.28), полученное* по разностной схеме (3.5.35)-(3-5.36) при шаге Л = 1/3- Другие указанные методы дают графически неотличимые решения Второй способ разностной аппроксимации определяется соотношения- ми (3.2.12), (3.2.13) и (3.2.14). В этом случае Ля строка матрицы коза- фициентов есть -1 — i(i — 1)й2,2+ 2»2й2, -1 -i(i + l)ft2 (3.5.34 и сама матрица и вектор правых частей имеют соответственно вид 2 + 2й2 —1—2й2 -1-2Й2 2 + 8й2 — 1—6й2 О О -1- л(л- 1)й2 2 + 2и2й2 (3.5.35 и —h2 { di -(1 +h~2 +Л-’), d2,...,dh - [л(л - 1) + й-2](2+ sin 1)) т. (3.5.36 Третья, и последняя, разностная схема определяется соотношения ми (3.2.29) и (3.2.30), применимыми только к уравнениям типа (3.2.21, к которому принадлежит и уравнение (3.5.27). В этом случае /*я строк, матрицы есть -1 _ (/ _ 0.5)2й2, 2 + (2г2 + 0,5)й2, -1 - (/ + 0,5)2й2, (3.5.37 так что матрица коэффициентов и вектор правых частей принимают соо* ветственно вид Г 5 , 9 , 2 + —й2 -1-—й2 _ 2 4 0 9 , 17 , 25 , -1----й2 2 + — й2 -1----------й2 4 2 4 0 2^2л2+^й2 (3.5.38 —й2 { di - (1/4 +й‘2), d2, ...,d„ - [(л + 1/2)2 +й’2] (2 + sin 1)) т. (3.5.39 108
Пметим, что все три трехдиагональные матрицы являются диагонально доминирующими, так что процесс гауссова исключения будет численно устойчив без использования какой-либо стратегии упорядочивания. Кроме того, матрицы (3.5.35) и (3.5.38) являются симметричными. Были проведены расчеты по всем трем разностным схемам при несколь- ких различных значениях шага h. Полученные решения оказались настоль- ко близки, что на графике они неразличимы. № рис. 3.8 представлен гра- фик' приближенного решения, полученного по второй разностной схеме (3.5.35)—(3.5.36) при величине шага h = 1/32. Это приближенное решение очень хорошо согласуется с точным решением (3.5.30). Дополнительные замечания и ссылки 3.5 В очень важной статье [83] (учебное изложение результатов этой работы можно найти, например, в книгах [52,88]) показано, что влияние ошибок округления выра- жается в том, что приближенное численное решение является точным решением неко- торой возмущенной системы (4 + 64) х = Ъ. Детальный анализ показывает, что оценка возмущающей матрицы имеет вид IIМ ll«<p(n)ge И А И.., где р(л) — кубический полином от порядка матрицы,, е— базовая ошибка округле- ния компьютера (например, 2~3 ’) и< - множитель роста, определяемый как • •*/ (Jt) где Ofj - элементы последовательно проеобразуемых матриц, формируемых в про- цессе исключения. Множитель роста очень, сильно зависит от используемой стратегии перестановок. Если никаких перестановок не делается, то g может быть сколь угодно большим. При использовании стратегии частичного упорядочивания множитель g ог- раничен величиной 2я-1, которая при больших п полностью доминирует над р(п). Уилкинсон построил примеры матриц, на которых значение g = 2Я—1 действительно достигается, но на практике такие матрицы, по-видимому, встречаются крайне редко. Уилкинсон и другие исследователи определяли фактическое значение g при решении большого числа практических задач, и лишь в редких случаях это значение было боль- ше, чем 8, независимо от размера матрицы. Для стратегии полного упорядочивания Уилкинсон полугол весьма сложную, но гораздо лучшую оценку величины g. Он также высказал предположение, что в этом случае g < л. Вопрос о справедливости этой гипотезы пока остается открытым. Для диагонально доминирующих (по столбцам) матриц множитель роста g огра- ничен значением 2, независимо от того, используется или нет какая-либо стратегия перестановок. Для симметричных положительно определенных матриц g = 1. Этим объясняется, почему для двух указанных важных классов матриц никакой стратегии перестановок не требуется. Одним из способов, посредством которого можно пытаться найти точное решение плохо обусловленных систем, а также установить сам факт плохой обусловленности, является метод итерационного уточнения, к описанию которого мы переходим. Пусть х, - приближенное решение системы Ах =Ьнг1 =Ах, - Ь. Если х, не является точным решением, то г, 0. Решим теперь систему 4х,= —г,. Если бы а, было точ- ным решением этой системы, то А (х, +il)=Ax1 - г, =Ь н вектор ж, + z, являлся бы тогоым решением исходной системы. Разумеется, мы не в состоянии вышслить а, тошо, ио надеемся, что х3 = х, + а, будет лучшим прибли- жением к точному решению, чем х,. Чтобы это действительно было так, необходимо вычислять вектор невязок, выполняя операции с более высокой точностью. Если при решении линейной системы используется одинарная точность, то вектор невязок, 109
вообще говоря, следует вычислять с двойной точность». Эту процедуру можно пова- рить: формируем г, Лх3 - Ъ, решаем систему Az, » -rt, полагаем х, =х, ♦ «, и т.л Если задача не является очень плохо обусловленной, то одной или двух итераций обыч- но оказывается доспточю для получения точного решения. Техника решения линейных уравнений сейчас достигла очень высокого уровня. Особенно это относится к заполненным и ленточным «тринам, которые умещаются в оперативной памяти ЭВМ. Вероятно, наилучшим пакетом для решения линейных систем в настоящее время является пакет LinpacK, состоящий из подпрограмм, на- писанных на фортране. Разработка этого пакета финансировалась Национальным на- учшм фондом и министерством энергетики США. Пакет L/лрееквключает также ме- тод оценки «ела обусловленности матрицы, который позволяет избежать больших затрат, связанных с вычклением ||4_,|. Описание пакета содержится в руковод- стве для пользователя (23]. УПРАЖНЕНИЯ 3.5 3-5.1. Вьпмспите определитель и нормированный определитель (3.5.10) матрицы 1 2 3* А = 2 3 4 3 4 4 н матрицы системы (3.5.6). 33.2. Используй свойства матричных норм, докажите, что cond (А) > 1. 33.3. Выделите cond (А) для матриц из упражнения 33.1, используя нормы lt н /«, (определение этих норм смотрите в приложении 3). 334. Решите систему (33.1) при различиях правых частях. Используя норму /«>, сравните разности этих решений с оценкой (33-22). 333. Докажите тождество (33.25). 33.6. Решите «елейно систему с матрицей коэффициентов (33-32) н вектором правых частей (33.33) при И = 10 и л « 20. Рассмотрите вопрос о точности ваших при- ближенных решений. 33.7. Выполните снова упражнение 33.6 для систем (33.35) - (33-36) н (33.38)- (33.39).
лава 4______\______________ ЖИЗНЬ, В ДЕЙСТВИТЕЛЬНОСТИ, НЕЛИНЕЙНА 4.1. Репкине методом стрельбы В этой главе мы рассмотрим вопросы, связанные с решением нелиней- ных задач. Вспомним, что математической моделью проблемы, описанной в разделе 3.1, была нелинейная двухточечная краевая задача (r2v*)’+r20(v) = O, 0<г<1, (4.1.1) п(0)=0, п(1) = Д (4.1.2) где g(y)=-cv](u+d). (4.L3) Имеются два основных подхода к решению таких задач. Один подход за- ключается в дискретизации дифференциального уравнения, как это было сделано в предыдущей главе для линейных уравнений; мы исследуем этот подход в разделе 4.4. В настоящем разделе мы рассмотрим метод, основан- ный на решении задач Коши, и для этой цели сначала в качестве примера разберем задачу о полете снаряда из гл. 2. Напомним, что эта задача о полете снаряда описывалась уравнения- ми (2.1.15), (2.1.17) и (2.1.18) ст = ОиТ = О: х - vcos0. y = usin0, -1 . g W-1-4’ w=-----cpsv2 -gsinfl, 0 =---cos0. 2m v Как н ранее, имеем начальные условия л(0)=у(0) = 0, п(О) = п. (4.4.5) В гл. 2 мы; кроме того, задавали условие 0(0) = 0, (4.1.6) так что задача (4.1.4)—(4.1.6) являлась задачей Коши. Поставим теперь вместо (4.1.6) условия х(Т)=х; Х(7’) = 0, (4.1,7) т.е. мы хотим, чтобы место падения снаряда, находилось на заданном рас- стоянии х. Соотношения (4.1.4), (4.1.5) и (4.1.7) определяют теперь крае- вую задачу. Отметим, что Т здесь является свободным параметром, т.е. не задаем время полета снаряда, а только требуемое расстояние. Мы можем получить численное решение' этой задачи на основе метода проб и ошибок, которым мог бы воспользоваться, артиллерист: выбирает- ся некоторый угол стрельбы, например, 0t, и производится выстрел, что lit
математически означает решение задачи Коши с начальными условиям» (4.1.5)—(4.1.6), где 0(0) = ®!. (4.1.8) Отслеживаем траекторию до тех пор, пока у (высота) не обратится в нуль, и фиксируем соответствующее значение х, которое мы обозначим через xt. Если х 1 < х, то произошел недолет н при следующем выстреле увеличи- ваем угол 0(0) до 02-Если на этот раз произойдет перелет, то нужное Рис. 4.1. Метод стрельбы Рис. 4.2. Два возможных решения знцчение.0(О) лежит между 0» и 02. Эта ситуация изображена на рис. 4.1. Если жех] < х2 < х, то снова увеличиваем 0 (0) и т.д. Очевидно, эта задача имеет решение только в том случае, если х задано в радиусе действия орудия; максимальная дальность полета снаряда зави- сит как от начальной скорости и0> так и от значений т, с и s. Однако един- ственным решение будет только тогда, когда х равно максимальной даль- ности. В противном случае получим ситуацию, изображенную на рис. 4.2. Конечно, время полета Т для этих двух решений окажется разным. Мы могли бы применить ту же самую процедуру к краевой за- даче (4.1.1) - (4.1.2), даже если бы она не имела никакой физической ана- логии со стрельбой. В этом случае мы бы выбрали некоторое пробное зна- чение щ для v (0) и, решив задачу Коши (r2v) +r2g(o) = 0, u(0)=oI, и*(0) = 0, (4.1-9) на отрезке [0, 1], получили значение v при г = 1. Для численного решения мы бы, вероятно, с помощью описанной в приложении 2 замены предвари- тельно свели дифференциальное уравнение второго порядка к системе пер- вого порядка v -w, (r2w)' +r2g(u) = 0. Тогда начальное условие v ’(0) 3 0 перейдет в и>(0) = 0. Затем сравниваем полученное значение и в точке г 3 1 с заданным в этой точке граничным условием и(1) = /}, изменяем значение и(0) и снова решаем задачу Коши. (Здесь имеются трудности, связанные с интегрированием этой системы вблизи точки г = 0. Этот вопрос будет рассмотрен лозднее.) Метод стрельбы, как он описан выше, выглядит как предложенный для данного случая, но его можно систематически развить, если понять, что ма- тематическая проблема, решением которой мы занимаемся, является, по существу, нахождением корня нелинейного уравнения с одним неизвест- ным. Чтобы убедиться, что это действительно так, давайте рассмотрим ме- тод стрельбы для уравнения (4.1.9) и обозначим через s значение и(0) в 112
ачальном условии. Пусть и (г; s) - решение задачи Коши при и (0) = s и /(s) = u(l-;s) -/3. Тогда идея метода стрельбы заключается просто в нахождении значения s, при котором /(s) 3 0. Мы теперь, в принципе, можем применить любые чис- ленные методы отыскания корней уравнений. Некоторые из этих методов будут рассмотрены в следующем разделе. Метод стрельбы можно также применять и для решения двухточечной краевой задачи в случае систем первого порядка общего вида. Рассмотрим систему «' = R(u, t), 0 < t < 1, ’ (4.1.10) где u(t) — вектор с п компонентами п;(т) (i = 1,..., л). Предположим,что при Г =1 нам заданы значеният функцийиз ut..и„, а прн г 3 0 заданы значения л - т функций. Таким образом, имеем ровно и граничных условий. Пусть Uo и Ut — множества функций, значения кото- рых заданы при t3 0 и t - 1 соответственно. Эти множества могут пересе- каться. Например, значения и( могут быть заданы при t- 0 и при t - 1, а значения и2 могут быть не заданы ни в одной из граничных точек. Теперь применим метод стрельбы следующим образом. Присвоим т не заданным при t= 0 функциям некоторые начальные значения st, . . . , sm и решим численно задачу Коши и' и (0) определяется граничными условиями или {Sj Для ufGUi сравним заданные граничные значения с соответствующими координатами проинтегрированного решения u(l;s), где s 3 (st, . . . , sm). Чтобы «(1; s) было решением краевой задачи, значения st,..., s„, должны быть такими, чтобы выполнялись условия и,(Г,а)-заданное значение, ut £Ut. Эти условия представляют собой систему т нелинейных уравнений с т неизвестными st,..., sm. Методы решения систем нелинейных уравне- ний мы рассмотрим в разделе 4.3. Хотя метод стрельбы идейно прост, он может страдать от неустойчиво- сти, возникающей при решении задачи Коши. Неустойчивости такого рода уже рассматривались в гл. 2, и здесь приведем еще один простой пример, сходный с примером, разобранным в разделе 2.5. Рассмотрим уравнение u"-100u = 0 (4.1.11) с граничными условиями u(0) = l, и(1)30. (4.1.12) Легко проверить, что точным решением этой краевой задачи является функция 1 е“20 «(0’у—е’,0,_]Т72® е10,‘ (4113) Попытаемся получить зто решение методом стрельбы, полагая и'(0) = г. (4.1.14) :. Дж. Ортега ИЗ
Точное решение соответствующей задачи Коши дается выражение* «(/;»)= + 2£Ме>°г (4ЛЛ5) 20 20 откуда видно, что значение н(1;«) очень чувствительно к изменению з. Точное решение (4.1.13) краевой задачи получается при » = - 10(1 +е’2в)/(1 —е‘20) * -10. Если мы решим задачу Коши со значением з, точным до двух десятичных Рис. 4.3. Решения точной и возмущен* ной задач знаков, скажем при з = — 9,99, то получим картину, показанную на рис. 43. Вследствие этого для получения хорошего приближения к решению крае- вой задачи требуется значительно более точное значение з. Проблема, конечно, связана с тем, что решение задачи Коши растет, как е10г, и, чтобы подавить эту быстро растущую компоненту, начальное усло- вие приходится определять очень точно. Дополнительные замечания и ссылки 4.1 Метод стрельбы для решения двухточечных краевых задач описывается в большин- стве книг по численному анализу. Особенно подробное изложение дано в книге (651. Другим подходом к решению двухточечных краевых задач, основанным на сведе- нии к задачам Коши, является метод инвариантного погружения. Этот метод, однако, приводит к задачам Коши для дифференциальных уравнений в частных производных, а не для обыкновенных дифференциальных уравнений. Детальное рассмотрение мето- да инвариантного погружения можно найти в книге (44|. УПРАЖНЕНИЯ 4.1 4.1.1.Решите двухточечную краевую задачу у"+у'+У = -U2 +х+ 1Ху(0)«у(1)ж = 0 методом стрельбы, используя для решения задачи Коши одни из методов гл. 2. Сравните ваши численные результаты с точным аналитическим решением задачи. (Указание: Для нахождения аналитического решения воспользуйтесь методом неопре- деленных коэффициентов для случая, когда правая часть является многочленом второй степени.) 4.1.2. Решите численно задачу о полете снаряда, задаваемую соотношениями (4.14), (4.1 Л) и (4.1.7). Для решения задачи Коши используйте один из методов гл.2. 4.13. Попытайтесь решить задачу (4.1.11) - (4.1.12) тем же методом, который вы использовали в упражнении 4.1.2. Сравните ваши лучшие результаты с точным реше- нием (4.1.15) и объясните расхождение. Проанализируйте также все трудности, с которыми вы встретились при получении <жслеяного решения. 114
2. Решение нелинейных уравнений с одним неизвестным В предыдущем разделе мы видели, что метод стрельбы с одним свобод- ным параметром можно рассматривать как задачу о нахождении решения нелинейного уравнения /00=0. (4.2.1) Во многих других областях научного программирования также возникают задачи, решение которых сводится к отысканию корней уравнений или в более общем случае, к вопросу о решении систем нелинейных уравнений, который мы обсудим в следующем разделе. Частный, но важный случай (4.2.1) возникает, когда функция /(х) является полиномом /(х) =а„х" +... + atx +а0. (4.2.2) В этом случае из основной теоремы алгебры следует, что / имеет ровно п комплексных нулей (вещественных или невещественных), если нули считать с учетом их кратности. Для произвольной функции / обычно трудно установить, сколько корней имеет уравнение (4.2.1): уравнение может не иметь корней, иметь один корень, конечное или бесконечное множество корней. Для того чтобы на заданном интервале (а, Ь) имелось не более одного корня, достаточно выполнения простого условия /’(х) > 0 для всех х G (а, Ь) (4.2.3) (или/’(х)<0 внутри этого интервала). Однако это условие не гарантирует существования корня на интервале. (В упражнениях 4.2.1 и 4.2.2 предла- гается доказать эти утверждения.) Если, однако, функция / непрерывна и /(а)<0, /(d) > О, (4.2.4) то интуитивно ясно (и строго доказано в известной теореме анализа), что f должна иметь по крайней мере один корень на интервале (а, Ь). Давайте теперь предположим, что условие (4.2.4) выполняется, и для простоты будем считать, что на интервале (а, Ь) уравнение имеет ровно один корень. (Нет необходимости предполагать выполнение (4.23); ситуация может быть такой, как показано на рис. 4.4.) Одним из простей- ших способов построения приближения к корню функции / в данной ситуации является метод половинного деления, который представляет собой просто систематизацию метода, предложенного в предыдущем разде- ле для подбора начального условия. :• 115
Пусть *1 - (а + fc)/2 — средняя точка интервала (а, д). Вычислим значе- ние/(Xj). Если/(Х1)>0, то корень уравнения (4.2.1), который в дальней шем будем обозначать через х*, должен лежать между а HXj; если Дх2)< С как в ситуации, показанной на рис. 4.4, то х‘ лежит между х, и Ь. Продол жим теперь этот процесс, выделяя интервал, в котором должен лежат корень х*, и вычисляя значение f в его средней точке с целью определения следующего интервала. Для функции, показанной на рис. 4.4, шаги процесс- выглядели бы следующим образом. 1 . ДХ1)<0. Следовательно, х* Gfxj.d). Подожни» х2 = (х, +i)/2. 2 .Дх2) >0. Следовательно,х* €(Х1,х3).Положитьх3 =(xi +х2)/2. З .Дхэ) <0.Следовательно,х* G(x3,x2). Положитьх4 =(х2 +хэ)/2. 4 .Дх4)<0. Следовательно,х,€(х4,х2).Положитьх$ =(х2 +х4)/2. Ясно, что на каждом шаге метода половинного деления длина интервал» содержащего х*, уменьшается в 2 раза. Таким образом,через т шагов длина интервала станет равной (Ь-а)2~т, откуда следует оценка погрешности текущего приближения к корню. Действительно, если хт +t — средня, точка интервала после т шагов, то |xm + i-x*|<|i-fl|/2m + 1. (4.2.5 Эта оценка получена при молчаливом предположении, что значения Дх, вычисляются точно. При счете на ЭВМ из-за ошибок округления (а возмож но, и из-за ошибки дискретизации — вспомните, что вычисление функции в методе стрельбы требовало интегрирования задачи Коши) дело, естествен- но, обстоит не так. Заметим, однако, что в методе половинного делени. используется не значение Дх/), а только знак Дх,), так что до тех пор пока знак Дх,) определяется верно, метод нечувствителен к ошибкам прк вычислении Дх,). Может возникнуть мысль, что ошибки окоугления не Рис. 4.5. График полинома х* - 6xs + 15х4 - 2 0х‘ + 15ха - 6х + 1, полученный и< программе на фортране с точностью 14 десятичных знаков. Теоретически этот полиноь равен нулю при х = 1 н положителен во всех остальных точках. (Мы благодарны з; этот пример профессору Джону Райсу) 116
югут быть настолько велики, чтобы привести к изменению даже знака пункции. Однако, как показывает рис. 4.5, зто не так. Если же знак Дх/) называется неверным, то следующий подынтервал выбирается неправиль- на и оценка (4.2.5) перестает быть справедливой. Ясно, что если максимум -.осолютной величины ошибки,допускаемой при вычислении/в пронзволь- юй точке интервала (а, Ь)_, равен £*, то знак/будет определяться верно до ех пор, пока выполняется условие |/(х)|>£. 'ак как вблизи корня х* значения функции / близки к нулю, то можем твеождать и обратное: вблизи корня существует интервал неопределенности, Рис. 4.6. Интервал неопределенности Рис. 4.7 кажем (х* - е, х* + е), в котором знак / может определяться непра- вильно (см. рис. 4.6). Когда наши приближения попадают в этот интервал, дальнейшее их продвижение к корню становится весьма проблематичным. С сожалению, установить интервал неопределенности заранее оказывается :райне сложно. Он зависит от неизвестного значения корня х*, от того, тасколько пологим является график функции в окрестности корня, и от величины погрешности, допускаемой при вычислении /. С другой стороны, юпадание в этот интервал обычно, можно установить в ходе расчетов по устойчивому поведению итераций; когда это происходит, нет никакого мысла продолжать вычисления дальше. Тот факт, что знак функции / вблизи корня может определяться неверно, шияет не только на метод половинного деления, но и на другие методы, :оторые мы будем рассматривать. Позднее, в этом разделе, будет приведен -оответствующий пример. Недостатком метода половинного деления является то, что он можеп •ыть весьма медленным. Чтобы сократить начальный интервал, скажем, j 106 раз, что соответствует точности примерно в 6 десятичных знаков, огласно оценке погрешности (4.2.5) мы должны ожидать, что потребуется п = б/logi о 2 = 20 вычислений значений /. Если, как в методе стрельбы, гаждое вычисление / связано с большими затратами машинного времени, *о возникает желание по возможности сократить число этих вычислений. Метод половинного деления можно ускорить, если использовать значе- 1ия функции / (а не только их знаки). Простейшим способом учета этой шформации является выбор в качестве следующей точки х, +1 нуля линей- юй функции, которая интерполирует/(х) по точкам х,_ j н х(. Это показа- ю на рис. 4.7. Из этого рисунка, где изображена несколько благоприятная 117
ситуация, видно, что х/+1 является значительно лучшим приближением - корню, чем средняя точка интервала (х{_ t, х{). Линейная интерполяционная функция имеет вид . (х-х^О (х-х,) К.х)=;----------------------7 Лх/_1) (это легко проверить непосредственно, или можно обратиться к разде- лу 23). Корень этой функции определяется по формуле ХГ-^Х^-Х/ЛХ*-}) (4.2.6) (4.2.7) Мы теперь можем поступать, как в методе половинного деления, запоминая г, +1 и либо xh либо Х/_ 1, так чтобы значения функции в двух этих точках были разного знака. Это так называемый метод ложного положения. В противоположность этому в методе секущих мы просто последовательно проводим итерации по формуле (4.2.7), используя при этом значения двух последних приближений, независимо от того, имеют ли значения функций в этих точках разные знаки или нет. Удобно переписать (4.2.7) в виде формул Лх/) Л**)-Л*/_1) , а/ =------------------ (4.2.8) (4.2.9) dt которые, как легко проверить, математически идентичны (4.2.7) и которые лучше использовать для вычислений, так как при этом происходит меньшая потеря верных знаков. Можем рассматривать величину dt в (4.28) как одностороннюю разност- ную аппроксимацию /’(х,) и> следовательно, рассматривать (4.2.8) как ’’дискретную форму” итерационного метода Лх,) х»+1 =х/--------. / (X/) Этот метод известен как метод Ньютона и является самым знаменитым методом для нахождения корней уравнений (а также, как мы увидим в следующем разделе, для решения систем нелинейных уравнений). Геоме- трически метод Ньютона можно интерпретировать как аппроксимацию функции f линейной функцией /т(х) = Лх<) + (х - хО/^х,), график которой является касательной в точке xt к графику /, и выбор затем в качестве следующего приближения х/+1 нуля/Дх). Это интерпрета- ция проиллюстрирована на рис. 4.8. Итерационную формулу Ньютона (4.2.9) можно переписать в виде xz + i=g(xz), (4.2.10) где $(х)=х-Лх)//'(х). (4.2.11) 118
j обшей форме (4.2.10) могут бы» записаны и многие другие итерацион- ные методы. Так, например, если положить £(х) =х - аДх), (4.2.12) где о. — тиякотсры. постоянная, имеющая тот же знак, иго и то получим очень простой метод, который проиллюстрирован на рис. 4.9. Этот метод иногда называют методом Хорд. Итерационные методы в форме (4.2.10) называют одношаговыми мето- дами, поскольку xt+i зависит только от предыдущего приближениях,. Рис. 4.8. Метод Ньютона Рис. 4.9. Метод хорд В отличие от этого метод секущих (4.2.8) использует два приближения, х, и х,_,, и является примером многошагового метода. (Обратите внима- ние на аналогию с одношаговыми и многошаговыми методами для задачи Коши.) Чтобы быть пригодной, итерируемая функция g должна обладать сле- дующим свойством: х* =g(x’), (4.2.13) если х* — корень функции f. Ясно, что для функций (4.2.11) и (4.2.12) это имеет место. (Для (4.2.11) это справедливо, если даже /г(х*) = 0, хотя в этом случае g(x*) следует определять как предел при х-»х*; см. упраж- нение 4.2.3.) Значение х*, которое удовлетворяет условию (4.2.13), назы- вается неподвижной точкой функции g. Теперь обсудим основное свойство, которое обеспечивает сходимость итераций по крайней мере в том случае, когда начальное приближение до- статочно близко к х*. Будем предполагать, что: (1) функция g непрерывно дифференцируема в окрестности х*, (2) выполняется условие (4.2.13) и (3) |/(х)|. < 1 < 1. если 1х-х*|<0. (4.2.14) Согласно известной из анализа теоремы Лагранжа о среднем значении Г(х)-$(х*)»<Ч$)(х-х*), (4.2.15) где £ лежит между х и х*. Отсюда, в салу (4.2.14), можем заключить, что 1я(х)-$(х,)1 < 7lx-x* I, если |х-х’|<0. (4.2.16) Предположим теперь, что Гх« — х‘| < 0. Тогда, используя (4,2.10) и (4.2.13), видим из (4.2.16), что |Х| — х‘| = |g(x0)-g(x•) | <7lxe-x’|. 119
Так как 7 < 1, отсюда следует, что xt лежит ближе к х*, чем х0. Таким об- разом, |xi — х* | < 0, и мы можем повторить наши рассуждения: |х2 -х* | < 7|Х! -х* | < 72 |х0 -х* |, или, в общем случае, |х„- х* | < 7l*n-i -х* I < ... < 7я |х0 —х* |. (4.2.17) Поскольку 7 < 1, то х„ -»х* при (предполагаем отсутствие ошибок округления или каких-либо иных ошибок). Здесь может быть выдвинуто возражение, что условие (4.2.14) нельзя проверить, так как для этого требуется информация о поведении g* вблизи точки х*, которая нам неизвестна. Как это ни удивительно, мы, однако, можем получить полезные сведения из предыдущего анализа, даже не зная значения х*. В качестве первой иллюстрации проанализируем приведенную в разделе 2.4 формулу Адамса — Моултона второго порядка для решения обыкновенного дифференциального уравнения у* = f(y). Эта неявная формула дана в (2.4.9) в виде Ук+i =Ук ♦ [/(№+1) +Л ]• (4.2.18) Мы здесь для простоты опустили зависимость f от х. Соотношение (4.2.18) можно рассматривать как уравнение для определения y*+i, хотя в разде- ле 2.4 мы его использовали только как ’’формулу коррекции”, т.е. прогно- зируемое значение y£ было вычислено по явной формуле и затем исполь- зовано в (4.2.18) для получения нового приближения к Ук+1: 4'4 - <4.2.19) Теперь можем снова скорректировать зто приближение, подставив его вместо в (4.2.19). Повторяя зту процедуру, получим последо- вательность 4'Д” ‘Ук (4.2.20) Ясно, что (4.2.20) — это просто итерационный процесс y[f^=g (y^t). где g(y) = Ук ♦ *[/(/)♦/»]. л. Если yk+i — точное решение уравнения (4.2.18); то, применяя изложенный выше анализ, можем заключить, что последовательность (4.2.20) будет схо- диться к ук+1 при условии, что (спрогнозированное значение) доста- точно близко к и 1?О) 1 = I* Лу)1 < I в окрестности Уь+i- Если шаг Л достаточно мал, то оба эти условия выполняются. 120
j качестве другой иллюстрации использования анализа схопимпсти рас- смотрим метод Ньютона. Предположим, что /* (х*) 0 и что /(х) дважды непрерывно дифференцируема в окрестности х*. Тогда, в силу не- прерывности /'(х), следует, что / (х) #= О в некоторой окрестности х*, и мы можем продифференцировать итерируемую в методе Ньютона функцию (4.2.11), получив 7 ч=1 _ Г(х)/”(х) [Г(х)]’ "[/'(х)]2 ’ Так как /(х*) = 0, то g’(x*) = °- Отсюда, в силу непрерывности g’(x). Рис. 4.10. Примеры ’’плохого” поведения метода Ньютона: в) /*(х/) = 0; следующее приближение не определено; б) осцилляции; в) расходимость следует, что условие (4.2.14) должно выполняться в некоторой окрестно- сти х*. Таким образом, если Xq достаточно близко к х*, то итерации Ньютона будут сходиться. Мы сейчас показали, что при довольно мягких предположениях до- строенные по методу Ньютона приближения должны сходиться к корню уравнения, если только хь (или какое-либо другое приближение х*) доста- точно близко к х*. Теоремы сходимости такого рода обычно называют теоремами о локальной сходимости. Хотя эти теоремы и не дозволяют , ответить на вопрос, будут ли сходиться итерации при заданном начальном приближении Хо, они характеризуют очень важное свойство, внутренне присущее анализируемому итерационному методу. Если приближение далеко от решения, то при использовании метода Ньютона могут возникнуть различные типы ’’плохого” поведения итераций, которые продемонстрированы на рис. 4,10. С другой стороны, имеются ситуации, когда метод Ньютона будет сходиться при любом начальном при- ближении. Вероятно, самым простым случаем является тот, когда /(х) имеет нуль, /' (х) не обращается в нуль, /(х) выпукла, т.е. при любых х и у и любом 0 < а < 1 выполняется неравенство /(«х + (1 - а)у) < а/(х) + (1 - ci)f(y). Если функция f дважды дифференцируема, то она будет выпуклой в том и только том случае, если f" (х) > О при всех х. Поведение метода Ньютона при выпуклой функции показано на pic. 4.11. В тех случаях, когда можно гарантировать, что итерационный метод будет сходиться при любом началь- ном приближении, мы будем говорить, что имеет место глобальная сходи- мость. Результаты этого типа обычно требуют наложения очень жестких ограничений на функцию f, таких как, например, выпуклость. С экономической точки зрения, т.е. с точки зрения затрат машинного времени, вопрос о скорости, с которой итерации сходятся к корню уравне- 121
ния, почти так же важен, как и вопрос о том, сходятся пи итерации вооощ— Предположим, в соответствии с оценкой (4.2.17), что ошибки ведут себя таким образом: |х*-х/+1 | = tIx’-x/I, где т очень близко к 1, скажем, у = 0,999. Тогда для уменьшения погреш- ности на заданной итерации в 10 раз потребовалось бы более двух тысяч итераций. Разумеется, мы бы хотели, чтобы константа у в оценке (4.2.17) была настолько малой, насколько это возможно. Но из вывода оценки (4.2.16) ясно, что она не может быть меньше, чем lg'(x*)|. Если g’(x’) =# 0, то говорят, что скорость сходимости является линейной или геометрической. Напомним, однако, что для метода Ньютона мы показали, что g'(x*) = 0 (в предположении, что /'(х*) ¥= 0). Отсюда, конечно, не следует, что итерации сойдутся за один шаг, но это свидетельствует о том, что скорость сходимости имеет высокий порядок. В частности, можно пока- зать (см. упражнение 4.2.4), что в методе Ньютона ошибки удовлетворяют соотношению |х* -x/+i | < с\х* -X/|2, (4.2.21) где с - константа, зависящая от отношения /" к /* вблизи точки х*. Если последовательные итерации удовлетворяют соотношению (4.2.21), то говорят, что имеет место квадратичная сходимость. В этом случае при при- ближения к корню итерации начинают сходиться чрезвычайно быстро. Пред- положим, например, что с = 1 и |х‘- х,1 * 10-3. Тогда |х*— х,+11 » яа 10~6, так что за одяу итерацию число верных знаков удваивается, Именно наличие квадратичной сходимости придает методу Ньютона особое Рис. 4.11. Сходимость метода Ньютона в случае выпуклой функции Рис. 4.12. Функция/ (х) ” 1/х + 1п2 - 2 В качестве демонстрации использования метода Ньютона рассмотрим за- дачу нахождения нулей функции /(х) - 1/х + 1пх - 2. Эта функция опреде- лена при всех положительных х и, как показано на рис. 4.12, имеет два нуля: один между х = 0 и х = 1 и другой между х = 6 и х = 7. В табл. 4.1 приведены данные о первых шести итерациях по методу Ньютона при на- чальном приближении х = 0,1. Обратите внимание, что, как только прибли- жение оказалось ’’достаточно близким” (в данном случае после трех итера- ций) , число верных знаков стало удваиваться после каждой итерации, что указывает на упомянутую выше квадратичную сходимость. 122
Таблица 4.1 Сходимость метода Ныивиа дал /(*) = 1/х+1л х - 2 Итерация X Г(х) * - 1Г(*)/Г'(«)1 Число верных знаков 1 0,1 5,6974149 0,16330461 0 2 0,16330461 2,3113878 0,23697659 0 3 0,23697659 0,7800322 0,29438633 1 4 0,29433633 0,1740346 0,31576121 2 5 0,31576121 0,0141811 0,31782764 - 4 6 0,31782764 0,0001134 0,31784443 8 До сих пор обсуждение метода Ньютона основывалось на пред положении о точном вычислении приближений. Однако ясно, что ошибки округления или какие-либо другие ошибки неизбежно приведут к тому, что приближе- ния будут иметь некоторую погрешность. Если, например, при вычисле- нии f(xi) и /*(х,) были допущены соответственно ошибки е, и е|, то в-качестве следующего приближения х1+1 получим x/+t = е (/(xf) + ej) 0 (/'(xd+cfr, где взятые в кружок знаки операций говорят о том, что при вычитании и делении также возникают ошибки округления. Полный анализ влияния этих ошибок очень сложен, если вообще возможен, так что ограничимся только несколькими замечаниями. Если ошибки et и е/ малы, то, пока мы находимся не слишком близко к корню, можно ожидать, что вычислен- ные приближения будут вести себя примерно так же, как и точные. Когда же значения становятся сравнимыми по величине с е/, вычисленные прибли- жения начинают вести себя иначе. Так, в частности, в случае метода поло- винного деления мы видели, что когда знак f точно не определяется, метод перестает работать, так как может быть неправильно выбран интервал, в котором находится корень. Аналогичная вещь может произойти и с мето- дом Ньютона: если знак f(xi) будет определен неправильно» а знак f'(xi) правильно (естественное предположение, если /*(х*) не очень мало), то значение f(xi)lf*(xi') будет иметь неверный знак и следующее приближе- ние сдвинется в противоположную сторону. Как и в случае метода половин- ного деления, к методу Ньютона (а по существу, ко всем итерационным ме- тодам) применимо понятие интервала неопределенности вблизи корня х*. В гл. 3 мы обсудили вопрос о плохой обусловленности решения системы линейных уравнений. Аналогичная проблема может возникнуть при вы- числении корней нелинейных уравнений. Простейший пример такого рода дает рассмотрение тривиального полиномиального уравнения х" = О, которое имеет л-кратный нулевой корень, и полиномиального уравнения х" = е, е > О, корни которого равны умноженным на корням и-й степени из единицы, 123
так что все они по абсолютной величине равны е1/и. Если, например, п = 10 и е = 10“10, то корни второго полинома имеют абсолютную вели- чину 10“’. Таким образом, изменение одного коэффициента исходного полинома на 10“’° приводит к изменению корней в 10’ раз большему. Этот простсж пример есть частный случай того общего факта, что если корень х* полинома f имеет кратность т, то изменение коэффициентов f на величину порядка е может привести к изменению значения х* на вели- чину порядка €1/,и . С помощью разложения в ряд Тейлора в окрестно- Рис. 4.13. Большое изменение х* при малом изменении / сти х* можно показать, что аналогичное утверждение справедливо и относи- тельно функций, которые не являются полиномами. Необходимым условием кратности корня х* является равенство (х* ) = 0. Если /’ (х* ) ¥= 0, но /’ (х) мала в окрестности х*, то, как по- казывает рис. 4.13, небольшие изменения f могут приводить к значитель- ным изменениям х*. Вероятно, самым знаменитым примером того, насколько плохо обуслов- ленными могут оказаться некратные корни, является следующий. Пусть / — полином двадцатой степени с корнями 1, ..., 20 и пусть / - тот же самый полином, но у которого коэффициент при х19 изменен на 2~23 % Ю“7. Тогда, с точностью до одного знака после запятой, корни полинома / будут иметь значения: 1,0; 2,0; 3,0; 4,0; 5,0; 6,0; 7,0; 8.0; 8,9; 10,1 ±0,6i; 11*8± l,7i; 14,0 ± 2,5 i; 16,7 ± 2,8 i ; 19,5 ± 1,91; 20,8. Так как коэффициент при х*9 в /(х) равен 210, вид им, что изменение од- ного коэффициента примерно на 10“7 % приводит к такому большому из- менению корней, что некоторые из них даже становятся невещественными! Дополнительные замечания и ссылки 4.2 Детальное изложение теории итерационных методов нахождения корней уравнений имеется в книге [80], превосходный анализ ошибок округления дан Дж.Уилкинсоном ([82,84]). В частности, Уилкинсону мы обязаны приведенным выше примером плохо обусловленного полинома двадцатой степени. Для отыскания нулей полиномов имеется ряд специальных методов, таких как: метод Бэрстоу для полиномов с вещественными коэффициентами, но могущих иметь невещественные нули; метод Лягерра. обладающий кубической сходимостью (т.е. оценка погрешности вида (4.2.21) имеет в правой части множитель |х* — xj |*); алгоритм Трауба - Дженкинса, который имеет глобальную сходимость. В последние годы наметилась тенденция в направлении разработки полиалгорит- мов, которые представляют собой комбинации двух-или более методов. Например, можно использовать метод половинного деления до тех пор, пока приближение не окажется настолько близко к корню, что метод Ньютона будет сходиться, и после этого для ускорения сходимости перейти на метод Ныотона. Тем не менее вопрос о том, когда переходить с одного метода на другой, оказывается сложным, и для его 124
ешения как для этой, так и для других комбинаций методов были предложены раз- личные эвристические стратегии. Другая проблема, которая также не имеет определенного решения, заключается в том, когда прекращать итерации. Обычно используют простейшие условия: 1/(х/) I < е или Ijq+i — х/| < е, где е - некоторое заданное допустимое отклоне- ние. Первое условие может ввести в заблуждение, если функция f вблизи корня уравнения оказывается очень пологой, как это имеет место в случае кратного корня. Второе условие может привести к неверному результату в самых различных ситуациях, в зависимости от конкретного итерационного метода. Например, в случае метода Рис. 4.14 Ньютона это может произойти, если на некоторой итерации производная окажется очень большой. Эти две возможности показаны на рис. 4.14. УПРАЖНЕНИЯ 4.2 4.2.1. Используя теорему Лагранжа о среднем значении (см. приложение 1), пока- жите, что если функция [ непрерывно дифференцируема и выполняется условие (4.2.3), то f имеет на интервале (a, by не более одного нуля. 4.2.2. Пусть fW = сх. Покажите, что, хотя (х) > О при всех х, функция f не имеет нулей. 4.2.3. Пусть х* - нуль дважды непрерывно дифференцируемой функций /, причем (х*) = О, но f* (х) * 0 в окрестности х*. Покажите, что в этом случае предел при л —х* итерируемой функции g(x) из (4.2.11) существует и равен х*. 4.2.4. Пусть х* - нуль дважды непрерывно дифференцируемой функции f и /*(х*) * 0. Покажите, что погрешности итераций по методу Ньютона в некоторой окрестности х* удовлетворяют соотношению (4.2.21). {Указание. Разрешите соотно- шение 0 = f{x*) =/(х) +Г'(х)(х*- х) + 1/2/‘"(()(л*— х)’ относительно х* и затем используйте (4.2.9).) 4.2.5. Рассмотрите уравнение /(х) = 0, гое /(х) - х - №, имеющее корни 0 и ± 1: а) покажите, что метод Ньютона локально сходится к каждому из этих корней; б) выполните несколько шагов по методу Ньютона, взяв в качестве начального при- ближения xt = 2. Проанализируйте скорость сходимости, которую вы наблюдаете при проведении итераций; в) выполните несколько шагов по методу половинного деления и по методу секущих, начиная с интервала (3/4,2); сравните скорость сходи- мости итераций в этих методах и в методе Ньютона; г) определите интервал, для ко- торого итерации Ньютона будут сходиться (в отсутствие ошибок округления) к кор- ню 1 при любом начальном приближении х, из этого интервала. Проделайте то же самое для корней 0 и —1. 4.2.6. Рассмотрите уравнение х - 2з1нх = 0: а) покажите на графике, что это урав- нение имеет ровно три корня: 0, и по одному в каждом из интервалов (л/2,2) и (-2, -тг/2); б) покажите, что итерации x,+i = 2 sinx/ (i = О, 1,...) сходятся к кор- ню из (я/2,2) при любом х, из этого интервала; в) примените метод Ньютона к этому уравнению и установите, при каких начальных значениях итерации будут сходиться к корню из интервала (я/2,2). Сравните скорость сходимости итераций Ньютона с итерациями пункта б. 4.2.7. Пусть » - положительное целое и а - положительное число. Покажите, что применение метода Ньютона к уравнению х" - а = 0 приводит к последовательности итераций . г _ *fc+l = Ч (w - 1)х* +—, * = 0.1... И I ГЛ—1 I L Xk J :оторая сходится при любом хв > 0. 125
4.2.8. Установите, справедливы ли спедужнцие предложения, и обоснуйте вали выводы: я) пусть {х*} - последовательность итераций Ныотон» для непрерьвно доф- феревднруемой функции /; если для некоторого i выполняются неравенства IfUf) I < 0,01 и |*/+1 - х{ I <0,01, то *f+i удалено от корня уравнения /(*) - 0 не более чем на 0,01; б) итерации Ньютона сходятся к единственному решению урав- нения х1 - 2*+1 = 0 при любом *, # 1 (ошибки округления не учпываются). 4X9. Рассмотрите уравнение ** - 2* + 2 » 0. Как ведут себя поршни Ныотона при различных вещественных начальных приближениях? 4X10. Покажите, что итерации Ньютона сходятся к единственному решению урав- нения е 2х+ 3* + 2 = 0 при любом начальном значении *,. 4.3. Решение систем нелинейных уравнений В разделе 4.1 мы упомянули, что применение метода стрельбы к системе обыкновенных дифференциальных уравнений может привести к необходи- мости решения системы нелинейных алгебраических уравнений относитель- но недостающих начальных условий. В разделе 4.4 мы увидим, что приме- нение метода конечных разностей к нелинейным краевым задачам также приводит к нелинейным системам уравнений. Поэтому в настоящем разделе рассмотрим общую проблему численного решения систем нелиней- ных уравнений и, в частности, то, как описанные в предыдущем разделе методы переносятся на эту более общую ситуацию. Проблема, которую мы рассматриваем, заключается в нахождении при- ближенного решения системы уравнений Я(*1, *!,..., х„) = 0, i=l, (43.1) где Л, fa,..., fn ~ заданные функции п переменных xt,.... х„. Для удоб- ства записи воспользуемся векторными обозначениями и перепишем (4.3.1) в виде F(x) • 0, (432) где, как обычно, х — вектор с координатами х,,.... х„, a F - вектор-функ- ция с координатами /|, ..., При л = 1 мы в качестве частного случая (43.1), получаем рассмотренную в предыдущем разделе задачу отыскания Рис. 4.15. Возможные ситуации при л = 2: я) нет решений; б) единственное решейие; в) несколько решений корней одного уравнения. Другим частным случаем, в котором F(x) в Ах - ft, где А — заданная матрица и b — заданный вектор, является рассмотренная в гл. 3 задача решения системы линейных уравнений. 124
j общем случае весьма сложно выяснить, имеет ли уравнение (43.2) решение, и если имеет, то сколько. В сравнительно простом случае п = 2 возможные варианты можно, по крайней мере в принципе, представить себе геометрически. Если, например, изобразить на плоскости (xt, х2) мно- жество точек, для которых ft (xt, х2) = 0, и множество точек, для кото- рых /з (х,. хз) = 0, то пересечение этих множеств и будет множеством решений системы (43.2). (Здесь и далее мы ограничиваемся рассмотре- нием только вещественных решений.) На рис. 4.15 представлены несколько возможных ситуаций. В дальнейшем будем предполагать, что (43.2) имеет решение х*, которое нас и интересует, хотя не исключено, что система имеет и другие решения. Во многих ситуациях — и именно так будет в разделе 4.4 — система (4.3.2) имеет вид Г(х) = Ах-Н(х) = 0, (4.3.3) где А — заданная невырожденная матрица, а Н - заданный вектор, коорди- наты которого являются нелинейными функциями. В этом случае естест- венна (хотя и не обязательно удачна) следующая итерационная процедура: х1*1 * А1 Н(х‘), » = О,1........................ (4.3.4) где верхний индекс указывает номер итерации. Здесь, как и далее, (4.3.4) означает, что на каждом Шаге для получения следующего приближения необходимо решить систему линейных уравнений Лх/+1 = Щх1). Итерации (43.4) обычно называют итерациями Пикара, Этот метод можно рассматривать как специальный случай переноса метода хорд из предыду- щего раздела на систему и уравнений, который в общем случае имел бы вид х*1^-BFtf), 1 = 0,1,..., (43.5) где В - заданная невырожденная матрица. Легко видеть (см. упражнение 43.2), что если функция F задана в форме (433) »В=А “*, то (435) сво- дится к (4.3.4). При каких условиях итерации (43.5) или (4.3.4) сходятся? Ситуация здесь совершенно аналогична скалярному случаю, но анализ осложняется необходимостью работать с вектор-функциями. Давайте рассмотрим один шаг общего итерационного процесса х'+* = G(x'), i = 0,1.............................. (43.6) где G — заданная итерируемая функция. Для (4.35), например, G(x) = х - BF(x). (43.7) Будем предполагать, что решение х* уравнения F(x) = 0 удовлетворяет ра- венству х* = G(x’) и, наоборот, еслих* = G(x*),to F(x*) = 0.Ясно,что если матрица В невырождена, то для функции (4.3.7) эти условия выпол- няются. В предыдущем разделе теория сходимости основывалась на выполнении в окрестности решения неравенства! g'(x) I <1. Соответствующий результат 127
д ля системы уравнений формулируется следующим образом. Если IIG'(x)|| < у < 1, ||х —х* || < 0, (433J ♦ то итерации (4.3.6) сходятся, когда ||х° — х* II < 0 (или если IIх* - х* II при некотором к). Здесь <?'(х) — матрица Якоби вектор-функции Gr вычисленная в точке х, а || || обозначает, как и в разделе ЗЗ.норму векто» ра или соответствующую матричную норму. Не будем доказывать эту те® рему сходимости, а только отметим, что это легко сделать, если воспользо- ваться обобщением неравенства (4.2.16) на случаи п переменных. Применяя признак (4.3.8) к итерациям (4.35), получаем достаточное условие сходимости ||I-BF'(х)II < 7 < 1, Их-х* II < 0, (43.9) которое для итераций (4.3.4) принимает вид ||А-'Н\х) || < 7 < 1, II х - х* || < 0. (43.10) Из условия (4.3.10) следует, что итерации (4.3.4) будут сходиться, если матрица А~1Н* (х) "мала”, когда точка х близка к х*. Аналогично, итера- ции (4.3.5) будут сходиться, если матрица BF * (х) близка к единичной или, что то же, В близка к F ' (х). Так как решение х* заранее неизвест- но, эти признаки следует, скорее, рассматривать как дающие некоторое представление о факторах, управляющих сходимостью, а не как практиче- ское средство установления сходимости. Как и в предыдущем разделе, скорость сходимости будет зависеть от величины || G * (х) ||. Поэтому мы хотели бы сделать эту величину возмож- но меньшей, по крайней мере вблизи решения х*. Если бы для итераций (4.3.5) мы положили В = [F’(x*)]“’, то тогда G*(х*) = 0, и скорость сходимости вблизи решения была бы высокой. Конечно, мы не в состоянии осуществить такой выбор, так как значение х* неизвестно, но мы можем достичь того же эффекта с помощью следующего итерационного процесса: х'*1 =х'- [КЧх'Ж’Лх'), i = 0,1,... (4.3.11) Здесь мы, конечно, предполагаем, что матрицы Якоби F * (х*) являются невырожденными. Фактическая реализация метода (4.3.11) осуществляется с помощью следующих шагов. 1. Решаем линейную систему F'(x')j»' = -Я*')- ‘ (43.12) 2. Полагаем х*+1 = х* +у*. Ясно, что при п - 1 итерации (43.12) представляют собой метод Ньюто- на, описанный в предыдущем разделе. Из различных возможных распрост- ранений итераций Ньютона на случай и переменных метод (43.12) является наиболее последовательным, поскольку он обладает следующими свойства- ми, которые мы приводим без доказательства. 1. Если функция F д важд ы непрерывно дифференцируема в окрестности х* и матрица F'(x) невырождена в окрестности х*. то при условии, чтох° достаточно близко к х*, итерации (43.12) будут сходиться к х* (теорема 128
j локальной сходимости), причем скорость сходимости будет квадра- тичной: Их'+| - х* II<с Их' -X* И 2. (4.3.13) 2. Геометрически метод (43.12) можно интерпретировать следующим образом. Каждая функция аппроксимируется линейной функцией //, которая, если рассматривать ее как гиперплоскость в (л + 1)-мерном прост- ранстве, является касательной к // в точке х'. Пересечение п множеств (х: /,(х) = 0), .7=1,...,л, и является следующим приближением х/+|. Эта интерпретация в случае /1=2 проиллюстрирована на рис. 4.16. Пересечение с плос- Поверхность костью(х„х2) касатель- ной плоскости к поверх- ности f, в точке ^(х*) to4 Пересечение с плос- KOCTbK>(jq,x2) касатель- ной плоскости к поверх- ности 4 в точке 4<х*) Поверхность $(«) Рис. 4.16. Метод Ньютона при л = 2 Как пример применения метода Ньютона (43.12) в случае двух урав- нений приводим в табл. 4.2 первые четыре итерации для системы нели- нейных уравнений х2+х2-1=0, х2-х2 =0, где в качестве начального приближения использовались значения xt = 03 и х2 = 0,5. Как и в одномерном случае, видно, что итерации сходятся при- мерно с квадратичной скоростью. Свойство квадратичной сходимости (43.13) (которое теряется, если матрица F'(x*) вырождена) очень желательно и придает методу Ньютона при решении систем нелинейных уравнений особенную ценность. Однако имеются три обстоятельства, которые могут препятствовать его успешно- му применению. Во-первых, это необходимость определения на каждом шаге матрицы Якоби, что требует вычисления п1 частных производных bfj/dxj. Если л велико или функции достаточно сложны, то получе- ние аналитических выражений для производных и последующее програм- мирование соответствующих формул может оказаться исключительно нуд- ной и утомительной работой. Иногда эту работу можно облегчить, исполь- зуя технику символьного дифференцирования, о которой говорилось в первой главе. Другим широко используемым подходом является аппрокси- мация частных производных конечными разностями, например, а/;- 1 — (х)* —[//(х1,...,х/_1,х|+Л,х/+1........хя)-Л(х)]. (4.3.14) Эх,- Л При этом подходе требуются выражения только для самих функций ft, ’ Дж. Ортега 129
Таблица 4.2 Сходимость метода Ньютона в случае двумерно* системы х? + х} - 1 “ О, х? -х, =0 Итерация X, Число верных знаков 0 0,5 0,5 0,0 1 0,87499999 0,62499999 1,2 2 0,79067460 0.61805555 2,4 3 0,78616432 0,61803399 4,8 4 0,78615138 0,61803399 8,8+ которые нужны в любом случае. Но фактическое вычисление матрицы - Якоби либо с помощью выражений для частных производных, либо через аппроксимации типа (43.14) может оказаться дорогостоящим с точки зрения машинного времени. Поэтому на практике часто используют моди-^ фикацию метода Ньютона, при которой матрица Якоби пересчитывается' лишь время от времени, а не на каждой итерации. Такой алгоритм может ' выглядеть следующим образом. 1. Вычислить F'(x°). 2. Провести итерации х* ** =х' - (F’(x®)]"*F(x'), 1 = 0,1,...,*. 3. Вычислить Ff(x *+1). (4.3.15) 4. Провестиитерациих/+1 =х‘ — [F'( х*+1)] Ffx*), i = k + l...2*. Модифицированные итерации Ньютона могут быть также полезны, чтобы ослабить второй недостаток метода Ньютона, связанный с необходимостью/; решения на каждой итерации системы линейных уравнений. Преимущество алгоритма (4.3.15) в этом отношении заключается в том, что при фактичео-' кой его реализации приходитсярешатьрядлинейныхсистем(какнашаге2)г- . F'(x°)y'=F(x'), 1 = 0,1,...,*, / где матрица коэффициентов F'(x°) не изменяется. Как указывалось разделе 33, это позволяет запомнить в ходе гауссова исключения мжн жители L (/-разложения матрицы F’ (х°) н использовать их для всех к + 1- правых частей. Третьей и наиболее серьезной трудностью, возникающей при использо- вании метода Ньютона, является то, что при заданном начальном прибли- жении х° итерации могут расходиться; локальная теорема сходимости гарантирует сходимость только в том случае, если точка х° (или какая- либо другая итерация) окажется ’’достаточно близкой” к х*. Одно из средств преодоления згой трудности заключается в построении наилучше- го возможного приближения исходя из физических (или каких-либо иных) соображений. Однако эго не всегда бывает достаточным. Более менее систематическим подходом, который часто, но отнюдь не во всех случаях 130
приводит к успеху, является метод продолжения по параметру, к изло- жению которого мы теперь переходим. Во многих научных задачах требуется решить определенные уравнения при различных значениях одного или нескольких параметров. Предполо- жим, что в задаче имеется один параметр а, и запишем систему уравнений в виде Г(х;а) = О. (4.3.16) Допустим, нам надо найти решения xj при значениях а0 < <*i < • • • < o?v, причем при « = «0 задача решается тривиально или достаточно просто; например, при а = а0 система уравнений может оказаться линейной. Если Хо может быть вычислено и величина I otj - а0 I мала, есть основания на- деяться, что х0* достаточно близко к х*, чтобы быть подходящим началь- ным приближением для решения уравнения F(x; at) =0. Продолжая этот процесс, используем каждое найденное решение предыдущей задачи в качестве начального приближения для решения следующей задачи. Если уравнения, которые нужно решить, не содержат такого параметра, мы всегда можем ввести его искусственно. Пусть, например, F(x) = 0 — система уравнений, подлежащая решению, их0 — наша лучшая аппроксима- ция решения (но недостаточная для сходимости метода Ньютона). Введем новую систему уравнений, зависящую от параметра а: F(x,a)=F(x) +(a l)F(x°) = 0, 0<а<1. (4.3.17) Тогда при а = 0 имеем систему Ffx; 0) =F(x) —F(x°) с известным реше- нием х°, а при а = 1 получаем исходную систему F(x; 1) = F(x) = 0. Следо- вательно, мы можем действовать, как в предыдущем абзаце для после- довательности 0 = а0 < «1 < • • - < ojy = 1. Дополнительные замечания и ссылки 4.3 Более подробное обсуждение богатого многообразия методов численного реше- ния систем нелинейных уравнений имеется в книгах (54,55j В частности, в этих книгах описываются различные дискретные формы метода Ньютона, в которых мат- рица Якоби каким-либо образом аппроксимируется. Некоторые из таких аппрокси- маций приводят к естественным обобщениям метода секущих на системы уравне- нгй, другие ведут к так называемым квазиныотоновским методам, которые в настоя- щее время выглядят наиболее многообещающими. Обзор состояния этих квазиныото- новских методов можно найти в статье [ 18]. Многие системы уравнений возникают при минимизации или максимизации функ- ций п переменных. Из анализа известно, что если функция g непрерывно дифферен- цируема, то необходимое условие локального минимума имеет вид т.е. градиент функции g должен обратиться в нуль. Следовательно, решив эту систе- му уравнений, получим точку возможного локального минимума функции g, причем часто бывает известно, что в такой течке минимум действительно достигается. Обрат- но, если нам дана система уравнений// - 0 (i ж 1,..., л), то,вводя функцию л 2 I//U)]’, 1=1 можно свести решение системы к задаче минимизации функции g. Ясно, что минимум функции g, равный нулю, достигается тогда, когда все // обращаются в нуль. Для 131
получения численного решения такое преобразование обычно не рекомендуете., так как при этом ухудшается обусловленность задачи. С методом продолжения по параметру тесно связан метод Давиденко. Для его иллюстрации мы рассмотрим систему (4.3.17) н предположим, что при ее (0,11 она определяет непрерывно дифференцируемое по а решение х(«). Дифференцируя тогда тождество Г(х(«)) + («-1И(х°) = 0 по а, по правилу дифференцирования сложной функции получаем F'(x(«))x'(e) + F(x°) = O. Отсюда, предполагая невырожденность матрицы Якоби F'(x (а)), приходим к Диффе- ренциальному уравнению *'(«)= - [Г (х(а))Г‘F(x°) с начальным условием х(0) = х°. Решение х(в) этой задачи Коши при а-1 даст, как мы надеемся, желаемое решение исходной системы уравнений F(x) = 0. На прак- тике нам придется решать дифференциальные уравнения численно, н для этого мож- но, в принципе, использовать любой из методов гл. 2. Хотя метод Давиденко и метод продолжения по параметру выглядят весьма привлекательно, в практических задачах они нередко оказываются не столь надежными, как хотелось бы. Так, в частности, возможно, что при некотором «< 1 матрица Якоби F'(x(«)) станет вырожденной, или, например, кривая решения уйдет в бесконечность, не достигнув значения а = 1. За последние несколько лет были достигнуты значительные успехи в преодолении некоторых из этих трудностей; обзор недавних результатов смотрите в работе [51]. УПРАЖНЕНИЯ 4.3 4.3.1. Покажите графически, что система уравнений х’ +xj - 1, х,1 - х, = 0 имеет ровно два решения. 4.3.2- Покажите, что если F имеет вид (4.3.3) н В =А~*, то (4.3.5) сводится к (4.3.4). 4.3.3. Вычислите матрицу Якоби С (х) для вектор-функции 434. Покажите, что если G(x) -x-AF(x), то G’(x) -BF'(x), н выведите отсюда, что условия (4.3.9) и (4.3.10) следуют из (4.3.8). 4.3.5. Для функций из упражнения'4.3.1 найдите уравнения касательных плоскос- тей в точке х, -2,х, =2. 4.34. Выпишите формулы итераций Ньютона для уравнений из упражнения 4.3.1. В каких точках х матрица Якоби не вырождена? 4.3.7. Составьте программу для решения системы и уравнений с и неизвестными по методу Ньютона. Для решения линейных уравнений используйте гауссово исклю- чение с частичным упорядочиванием. 4.4. Конечно-разностные методы для нелинейных краевых задач Теперь займемся распространением на нелинейные краевые задачи мето- да конечных разностей, рассмотренного в гл. 3. Сначала обратимся к до- вольно простому уравнению v” =g(x, v), 0 <х < 1, (4.4.1) 132
граничными условиями u(0) = a, v(l)=0. -(4.4.2) Здесь g — заданная функция двух переменных, а а и 0 — заданные кон* стан ты. Мы поступим точно так же, как в разделе 3.2. Разобьем отрезок [а, й] узловыми точками О х0 <...<xIJ+i*l с шагом Л и в каждой внутренней точке .......х„ аппроксимируем вто- рую производную центральными разностями. Подставляя-зги аппроксима- ции в (4.4.1), приходим к следующей системе уравнений (соответствую- щей (3.2.12)): и/+1 - 2и/ + v,_ 1 = h2g(xh vt), и, (4.4.3) где u0 ~ a и t>n+1 ~ £ известны из граничных условий (4.4.2). Если функция g нелинейна по v, то эта система п уравнений с п неизвестными также будет нелинейной. Решение vJ,...,wj системы (4.4.3), если оно существует, является приближением в узловых точках г,,..., к соответствующему решению» задачи (4.4.1) — (4.4.2). Систему (4.4.3) можно следующим образом переписать в матрично- векторной форме. Пусть А — трехдиагональная матрица (4.4.10), все элементы главной диагонали которой равны 2, а все элементы двух приле- жащих диагоналей равны —1, и пусть Я — вектор-функция от v, v = (и1;... ...,»„), определенная как Я(у)=Л2 0 __ + __________ 0 g(xn,v„)J 0 . (4.4.4) Тогда система (4.4.3) примет вид F(v)=A v +Я(у) = 0. (4.4.5) В качестве примера рассмотрим задачу »"(х) = 3»(х)+х2 + 10[»(x)J3, 0<х<1, »(0) = »(1) = 0. Здесь g(x, ») = 3v + x2 + 10i?, и при Xj = ih, i = 0,1,..., п + 1, Л = 1/(л.+ 1) разностные уравнения (4.4.3) имеют вид wI+i —2ц+»/-! =Л2(3», + /2Л2 + 10v?), /=1,...,и, (4.4.6) (4.4.7) (4.4.8) (4.4.9) где из ганичных условий v0 =w„+i =0. Для этой задачи матрица А и 133
вектор-функция Н из (4.4.5) определяются равенствами A = ' 2 -1 -1 2 , Я(у) = й2 -З^+й’+Ю^ ’ Зп2 + 4й2 +.101^ . (4.4.10 2 -1 Зп„ +л2й2 + 10п„ Рассы ютрим -1 2 . теперь некотор ые численны е методы решения системь (4.4.5). Итерации Пикара, которые мы обсуждали в разделе 4.3, в данноы случае имеют вид Лу*+1 =-Я(у*). (4.4.11 Время проведения одной итерации почти полностью зависит от сложности вычисления И, потому это решение трехдиагональной линейной системы находится очень быстро. Более того, в этом случае Z. (/-разложение мат рицы А достаточно получить только один раз, не повторяя его на каждоь итерации. Будут ли итерации (4.4.11) сходиться, целиком зависит с свойств Н. Давайте теперь рассмотрим применение к (4.4.5) метода Ньютона. Ка. мы видели в разделе 4.3, в этом случае матрица Якоби Г(у)=Л+Я’(у). (4.4.12) Таким образом, к-я итерация метода Ньютона состоит® следующем. 1. Решить [А +Н'(ук)] ук = - [Лу* +Я(у*)], (4.4.13) 2. Положить v*+I = v* +ук. Так как /-я координата Н/ вектор-функцииЯ Я/(у) = й2^(х„п1) зависит только от о, , то dHildvj = O, j*i. (4.4.14) Следовательно, матрица Якоби Я'(у) диагональна, так что линейные сие темы, которые приходится решать на итерациях Ньютона (4.4.13), ока- зываются трехдиагональными и требуют сравнительно небольшого числ операций, даже если для их решения используется алгоритм с перестаноь кой строк. В данном случае матрица Якоби А + Н' (у) имеет вид , Э ‘ 2 + й ’—*(*!.»») -1 ov „ Ъ -1 2+й2 —-g(x2,t>2) -1 dv d -1 2 + й2 —g(x„,nA) dv J (4.4.15) 134
аблниа 4.3 4етод Ньютона для разностных уравнений (44.9) X | Л = 0,1 h = 0,01 h = 0,001 0.1 -0,0058 -0,0058 -0,0058 0.2 -0,0116 -0,0118 -0,0118 0,3 -0,0174 -0,0176 -0,0176 0,4 -0,0223 -0,0230 -0,0230 0,5 -0,0274 -0,0276 -0,0276 0,6 -0,0302 -0,0304 -OjO3O4 0,7 -0,0303 -0,0305 -0,0305 0,8 -0,0265- -0,0266 -0,0266 0,9 -0,0170 -0Л171 -0.0171 Обратите внимание, что для реализации метода Ньютона необходимо вы- числять частные производные от g, входящие в (4.4.15). Если функция g достаточно сложная, то для получения явных выражений для этих частных производных может оказаться полезной техника символьных вычислений, рассмотренная в гл. 1. Эти выражения были бы затем включены в програм- му вычисления матрицы Якоби (4.4.15). Давайте вернемся к краевой задаче (4А6) и соответствующим разност- ным уравнениям (4.4.9). Здесь g определяется формулой (4.4.7), так что dg(x, v) ------- = 3 + 30 v2, du и /-й диагональный элемент матрицы Якоби равен просто 2 + Л2 (3 + ЗОи2)- Так как матрица А в (4.4.10) диагонально доминирующая, добавление по- .'юлоггельных членов Л2 (3 + 30Vf) только увеличивает степень преоблада- ния диагональных элементов. И в общем случае, если 3g(x, w)/3w >0, 0 <.г < 1, и А есть матрица из (4.4.10), то А +И'(\) - диагонально доминирующая матрица, (4.4.16) А +Н'(у\ положительно определенная матрица. (4.4.17) Как мы видели в разделе 3-3, любого из этих свойств достаточно для того, чтобы трехдиагональные системы (4.4.13) метода Ньютона можно было бы численно устойчиво решать алгоритмом гауссова исключения без какой- либо перестановки строк. Можно также доказать (но это выходит за рамки настоящей книги), что любое из условий (4.4.16) или (4.4.17) гарантирует, что система (4.4.5) имеет единственное решение. В табл. 4.3 приведены результаты решения методом Ньютона разност- ных уравнений (44.9). Значения даны в узлах сетки 0,1; 0,2; 0,9 при h =0,1; 0,01 и 0,001 (л = 9,99 и 999). Во всех случаях в качестве на- чального приближения для метода Ньютона брался вектор т° = 0, а итера- ции прекращались, когда все координаты вектора поправки ук из (4.4.13) становились меньше по абсолютной величине, чем 10-6, Предположим теперь, что уравнение (44.1) имеет более общую форму: (<?(x)t/)’=£(*. и), 0<х<1, (4.4.18) 135
а граничные условия оставим в виде (44.2). Если для левой части этог< уравнения воспользоваться разностной аппроксимацией (3.2.29), то раз- ностные уравнения примут вид ai-l/2 vl-l ~ (fli+l/2 + д1-1/2)У|+fli+1/2 Vf+1 = ft2g(xf,nf), /•1.....». <4A1’> где «/±i/2=fl(x/ *Л/2) и по-прежнему и0=а, v„+i =0. Если мы теперь обозначим через А трехдиагональную матрицу, соответствующую (44.19) (матрица А выписана явно в (3.2.30)), то система уравнений снова за- пишется в виде (4.4.5), итерации Пикара в виде (4.4.11) и итерации Нью- тона в виде (44.13). Матрица Якоби будет опять симметричной и трехдиа- гональной. Кроме того, если будут выполнены условия Э^(х, и) —-------- >0, а(х)>0, 0<х<1, (44.20) Эи то останутся в силе свойства (44.16) и (4.4.17). Вид разностных уравнений (44.19), в принципе, сохраняется и для уравнения (x2v)' =cvx2l(y + d), 0<х<1, (4.4.21) которое возникло из задачи о диффузии, рассмотренной в разделе 3.1. В этом случае вместо (4.4.2) задаются граничные условия w'(0) = 0, п(1) = Д (4.4.22) (Мы несколько изменили обозначения раздела 3.1: в качестве независи- мой переменной вместо г используется х.) Если узлы сетки по-прежнему определены формулами (4.4.8), то в/±1/2=0^1/2)2Л2, (4.4.23) и, следовательно, разностные уравнения (4.4.19) принимают вид (I - 1/2)2п,_, - (2i2 + 1/2>, + (I + 1/2)2п,+, = cvtiih)2 f(yt + d), (44.24) где i = 1,...., и. Из граничного условия w(l) = р имеем ип+1 = р. Однако другое граничное условие, и' (0) = 0, теперь не определяет значения п0- Вместо этого аппроксимируем v' (0) односторонней разностью: п'(0)*(П1 - п0)/Л- Отсюда, так как v' (0) = 0, мы получаем дополнительное условие и0 = подстановка которого в первое (/ = 1) уравнение (4.4.24) приводит к соотношению 9 («1 - v2) = cvth2l(vt +d). (4.4.25) Это уравнение вместе с уравнениями (4.4.24) при i = 2,.... п образует систему п уравнений для определения и,,..., и„. Так как#(х, v)-cvx2/(и + d), то 3g/a V = cdx21 (у + d)2 (4.4.26) 134
матрица Якоби для этой системы имеет вид 4cdh2 9+--------- (Pi +d)2 4cd(2h)2 34 + - (v2 +df -25 —(2и—1) 2 , 4cd(nh'f (8л2 +2)+----—v (vn+d)2 ,м видим, что матрица Якоби является симметричной. Более ток), ак как по предположению константы с и d положительны, из (4.4.26) ледует, что dg/d и > 0, так что, как и прежде, матрица Якоби оказывается положительно определенной. Следовательно, мы я в этом случае можем фименять метод Ньютона, не делая при решении трехдиагональных систем шкаких перестановок. Дополнительные замечания и ссылки 4.4 Доказательство того, что при условиях (4.4.16) или (4.4.17) система (4.4.5) имеет единственное решение, можно найти, например, в книге [54], раздел 4.4. Вопросы численного решения уравнения диффузии (4.4.21) проанализированы Геллером [30], н мы здесь: следуем его результатам. Как отмечалось в дополни- тельных замечаниях к разделу 3.1, это уравнение имеет особенность в начале коорди- нат, так как в этой точке коэффициент при v' обращается в бесконечность. УПРАЖНЕНИЯ 4.4 44.1. Выпишите разностные уравнения (4.4.3) и соответствующую матрицу Якоби 1ля:а)£(х,и) =v + va; 6)g(x,v) =xv’. 44.2. Выпишите явные формулы итераций Ньютона (4.4.13) для разностных урав- :ений (4.4.3) с функциями g из упражнения 4.4.1. 4.4.3. Выполните снова упражнение 4.4.1 для разностных уравнений (44.19) при: 1 в(х) = ех; б) e(x) = 1 +х*. 44.4. Покажите, что в предположениях (4.4.20) справедливы утверждения (4.4.’ 6) (4.4.17). , 4.4.5. Рассмотрите двухточечную краевую задачу v"= ev +2 -ех , 0 <х< 1, v (0) = - 0, v(l).= 1; а) выпишите в матрично-векторной форме стандартные конечно-разност- :ые уравнения для этой задачи при Л =0,01; б) проанализируйте подробно, как бы вы тали решать систему уравнений пункта а на ЭВМ; анализ должен включать четкое писание метода, исследование того, какие проблемы могут возникнуть при примене- нии этого метода, сколько потребуется машинного времени н тд.; в) подробно пишите использование метода стрельбы для решения этой краевой задачи н разведите ice трудности, которые могут возникнуть еди реализации этого метода на ЭВМ.
Глава 5 ЕСТЬ ЛИ ЧТО-НИБУДЬ ЕЩЕ, КРОМЕ КОНЕЧНЫХ РАЗНОСТЕЙ? 5.1. Введение в ироекщюнные методы В трех предыдущих главах мы довольно подробно рассмотрели приме- нение конечно-разностных методов для построения приближенных решений дифференциальных уравнений. В этой главе мы остановимся на другом под- ходе, реализация которого имеет несколько вариантов, называемых мето- дом конечных элементов, методом Галеркина, методом Рэлея — Ритца и т.д. В основе всех этих методов лежит попытка аппроксимировать решение дифференциального уравнения конечной линейной комбинацией заданных функций. Эти заданные функции, называемые обычно базисными функция- ми (или пробными функциями), выбираются относительно простыми: полиномы, тригонометрические функции и сплайн-функции. Наиболее важными из них являются сплайн-функции, которые мы изучим в следую- щем разделе. Суть методов заключается в том, что мы рассматриваем ре- шение как лежащее в некотором бесконечномерном функциональном пространстве и пытаемся построить приближенное решение, которое лежит в конечномерном подпространстве, определяемом этими базисными функ- циями. ’’Проекция” решения на это подпространство и есть приближенное решение. Эти общие идеи мы проиллюстрируем на линейной двухточечной крае- вой задаче {P{x)v')‘ +q(x)v=f{x), 0<х<1, (5.1.1) у(0) = 0, о(1) = 0, (5.1.2) где для простоты взят отрезок [0,1] и нулевые граничные условия. Будем искать приближенное решение задачи (5.1.1)—(5.1.2) в виде «(*) = (5.1.3) где базисные функции <р/ удовлетворяют граничным условиям задачи, т.е. (0) = (1) = 0, / = 1,..., и. (5.1.4) В этом случае приближенное решение и, задаваемое формулой (5.1.3), будет удовлетворять граничным условиям. Классическим примером набора базисных функций, удовлетворяющих условиям (5.1.4), являются функции (х) = sin/ях, / = 1.п. (5.1.5) Другим примером может служить набор полиномов Vy(x)=x7(l —х), / = 1,...,и. (5.1.6) 138
) последнем случае приближенным решением (5.1.3) является полином и (х) = х (1 - х) (Cj + с2 х +... + спхп~1) степени п + 1, обращающийся в нуль в точках 0 и 1. Нашим главным приме- ром набора базисных функций являются, однако, сплайн-функции, кото- рые, как упоминалось выше, будут рассмотрены в следующем разделе. При заданном наборе базисных функций мы должны указать, в каком смысле функция (5.1.3) будет являться приближенным решением, т.е. какой критерий следует использовать для определения коэффициен- тов С/ линейной комбинации. Здесь имеется несколько возможных под- ходов, но мы остановимся только на двух, которые имеют широкую об- ласть применения и часто используются на практике. Сначала рассмотрим метод коллокации. Пусть на отрезке [0, 1] выбра- но п не обязательно равноудаленных точек xt, 1 .., х„. Потребуем, чтобы приближенное решение (5.1.3) удовлетворяло дифференциальному урав- нению (5.1.1) в этих п точках, т.е. мы требуем выполнения соотношений d Г d п II rRWyt 2 <W(*)) + dx L dx j = i JI xt + q(xt) ^^c/lpj(x{)=f(xt), i = l,... ,n. (SA.T) При этом, естественно, предполагаем, что базисные функции являются дважды дифференцируемыми. Выполняя дифференцирование в (5.1.7) и собирая коэффициенты прису, получаем с, [p(xi)<p”(xi)+p,(xi).p}(xi) + + q (*/) (*<)] = f(xj), / = 1,..., л. (5.1.8) Это система n линейных уравнений с п неизвестными с,...., с„. С вычисли- тельной точки зрения задача состоит в определении коэффициентов «И=Р (*/) (*/)+Р '(*<) (*<) + Я (*/) Щ (*/) (5.1.9) и последующем решении системы линейных уравнений Ac=f, (5.1.10) где А — матрица размера л X л с элементами att, с = (сь .. ., с„) и Г=Сг(Х1),...,/(х„)). В качестве простого примера рассмотрим уравнение [(1 + х2)п’(«)]' + х2п(х) = х3, 0<х<1, (5.1.11) с граничными условиями (5.1.2). Здесь р(х) = 1 + х2 иq(x) =х2. Давайте сначала используем базисные функции (5.1.5). Тогда ip'f(x)=jit cos jitx, ipj(x) = —(jit)2 sin/тгх, так что коэффициенты (5.1.9) имеют вид а{/ - -(1 + х^) 0тг)2 sin jitxi + 2jitxf cosjttxt + x2 sin/тгх, = = [-(1 + x2) (jit)2 + x2 ] sin/тгх, + 2/тгх, cos/тгх,.
Компоненты вектора правой части системы (5.1.10) суть просто/(х;) =х3 . Если же в качестве базисных взять функции (5.1.6), то <p’f (х) = xf~1 [/-(/+ 1) х), ^/"(х)=/х7-2 У - 1 - (у + 1) х] и коэффициенты (5.1.9) примут вид оц = (1 +х?)А4/-4 (/ — 1—(/ + !)*/]+ 2х/ I/ - О’ + О-',] +х/*2 (1 -xf). Компоненты правой части будут по-прежнему равны х/. В обоих случаях, как только выбраны узлы сетки xt,.... хл,коэффициенты системы (5.1.10) легко вычисляются. Мы вернемся к обсуждению метода коллокации после рассмотрения другого подхода к определению коэффициентов ct, ... , с„. Этот подход, известный как метод Галеркина, основывается на понятии ортогональ- ности функций. Напомним, что два вектора / и g называются ортогональными, если равно нулю их скалярное произведение: (f,g)=fTg = S ffg> = 0- (5.1.12) /= » Предположим теперь, что координатами векторов fug являются значения двух функций / и g в п узлах равномерной сетки на отрезке [0, 1], т.е. /=(/(й),/(2й),... ,/(лй)), где h ~ (п + 1) — шаг сетки, и аналогично представляется вектор#. Тогда условие ортогональности (5.1.12) запишется как . 2 /(/й)#(/й) = О, /= 1 или, умножая обе части равенства на й, й S /(/й)#(/й) = О. (5.1.13) /= 1 Пусть теперь п -* 00 (или, что то же, пусть h -> 0). Тогда, в предположении интегрируемости функций fug, левая часть (5.1.13) будет стремиться i к f f(x) g (х) dx. Будем называть функции fug ортогональными на от- о резке [0,1], если выполняется условие ff(x)g(x)dx = 0. (5.1.14) о Основанием для метода Галеркина являются следующие соображения. Определим невязку приближенного решения и (х) как г(х) = (р(х)п'(х))’+9(х)М(х)-/(х), 0<х<1. (5.1.15) Если бы и(х) было точным решением уравнения (5.1.1),то невязка была бы тождественно равна нулю. Очевидно, что в этом случае невязка была бы ор- тогональна любой функции и, в частности, была бы ортогональна набору базисных функций. Мы не можем, однако, ожидать, что функция и(х) бу- 140
4ет точным решением, поскольку мы ограничили ее выбор линейной ком- бинацией базисных функций. В методе Галеркина предлагается выбирать коэффициенты этой линейной комбинации так, чтобы невязка функ- ции и(х) была ортогональна всем базисным функциям ,..., / [(р(х)м'(x))'+q(x)и(х)-/(х)] q>t(x)dx = 0, /=1.......и. (5.1.16) о Подставляя (5.1.3) в (5.1.16) и меняя местами суммирование и интегриро- вание, получаем п 1 , 2 9 S + q(x)ipj(x)\>pt(x)dx = /= i о = if(x)^t(x}dx, i = l,...,и. о Таким образом, снова приходим к системе линейных уравнений в фор- ме (5.1.10), где ft = //(*) toWdx, i=l,...,n, (5.1.17) О 1 , «</= Л(р(*)^/О)) +q(x),f>j(x)],pi(x)dx. о Интегрируя здесь первый член по частям 1 , /(₽(»)*/(»)) Л(»)<**в О _ I1 1 =p(jc)^/(jc)^(jf) - J‘p(x)^(x)^;(x)dx • ° о и замечая, что проинтегрированный член исчезает (так как функции рав- ны нулю на концах отрезка), можем переписать выражение для коэф- фициентов как <%/•- fP(x)<pl(x)<P/(x)dx + f q(x)<Pi(x)q>f(x)dx. (5.1.18) о о Таким образом, система уравнений для определения коэффициентов ct,... .. . , с„ в методе Галеркина имеет вид Ле =/, где элементы матрицы Л за- даются формулой (5.1.18), а вектора/ —формулой (5.1.17). В качестве примера приведем систему уравнений, возникающую при применении метода Галеркина к дифференциальному уравнению (5.1.11) с граничными условиями (5.1.2). В случае базисных функций (5.1.6) коэф- фициенты (5.1.18) определяются по формуле «г/ = - fx,+t~2 (1 + х2) (/ - (i + 1)х) О' - О' + !)*)<& + о + /xf+/+2 (1 — x)2dx = о 141
ij 2y+i+/ (i +1)(/+l) + y 2ij + i + i+i-l i+j i+j+l i+j + 2 (i + l)(/+l) + l 2 1 j /+/ + 3 f+/ + 4 i+f + 5 а координаты вектора правой части по формуле 1 11 Л» fxM (1 -x)dx = —- о I+3 I+4 Выполнив вычисления по этим формулам, легко сформировать систему уравнений Ac =f. В упражнении 5.1.5 предлагается определить коэффициен- ты этой системы для базисных функций (5.1.5). Сделаем теперь несколько замечаний по поводу применения конечно-раз- ностных методов, метода коллокации и метода Галеркина к уравнению (5.1.1). В каждом случае центральной вычислительной проблеме») является решение системы линейных уравнений. Хотя в конечно-разностных методах и в методе коллокации линейные системы строятся по л узловым точкам отрезка, природа решений этих систем совершенно различна. В конечно-раз- ностных методах — это приближения к значениям решения дифференциаль- ного уравнения в точках сетки, а в методе коллокации - это коэффициен- ты представления (5.1.3) для приближенного решения. Следовательно, в методе коллокации (и в методе Галеркина) для получения значения при- ближенного решения в произвольной точке х данного отрезка требуется дополнительное вычисление по формуле “(*) = Е Cf<pf(x). i= » Хотя конечно-разностные методы не требуют никакой дополнительной ра- боты для нахождения приближенного решения в узлах сетки, это решение определено только в этих узлах, так что для построения решения в других точках отрезка необходимо использовать интерполяцию. В то же время ме- тод коллокации и метод Галеркина дают представление приближенного решения сразу на всем отрезке. Как мы видели в гл. 3, система линейных уравнений метода конечных разностей легко строится и обладает тем важным свойством (для использу- емых там разностных аппроксимаций второго порядка), что матрица коэф- фициентов системы является трехдиагональной. Решение такой системы связано со сравнительно небольшими затратами машинного времени, так как требуемое при этом число арифметических операций пропорциональ- но л (см. раздел 3.3). Если базисные функции <pt достаточно просты, то и в методе коллокации элементы матрицы коэффициентов сравнительно I легко вычисляются по формулам (5.1.9). Однако теперь матрица коэффи- ' циентой в общем случае оказывается заполненной, что приводит не только ; к необходимости вычисления всех л2 элементов, но и к тому, что время решения системы становится пропорциональным л3. Очень важным свой- ством, возникающим при использовании в качестве базисных функций сплайнов (сплайны рассматриваются в следующем разделе), является то, что тогда функции щ будут отличны от нуля только на некотором отрезке, 142
«держащем точку xf. В случаях, которые рассматриваются в разделе S.4, этот отрезок распространяется только от Х/_2 до Х/+2, и матрица коэф- фициентов при этом оказывается трехдиагональной. Те же самые замечания относятся и к методу Галеркина: матрица коэф- фициентов в общем случае будет заполненной, но использование подходя- щего базиса из сплайн-функций позволяет нам получить систему с трехдиа- гональной матрицей. Однако здесь возникает другое осложнение. Вычисле- ние элементов матрицы коэффициентов по формулам (5.1.18) и коорди- нат вектора правых частей по формулам (5.1.17) требует интегрирования по всему отрезку. Явное вычисление этих интегралов в замкнутой форме возможно только в редких случаях, когда функции р, qwf имеют очень простой вид. Обычно эти интегралы приходится вычислять приближенно, и это приводит нас к вопросу о численном интегрировании, который мы рассмотрим в разделе 5.3. При определенных обстоятельствах можно так- же воспользоваться компьютерными системами символьных вычислений. Одно из преимуществ метода Галеркина в применении к рассматривае- мой задаче (5.5.1), (5.5.2) состоит в том, что он приводит к системе с сим- метричной матрицей. Это можно, в частности, видеть из формул (5.1.18). Метод коллокации не обязательно дает симметричную матрицу. Ни один из этих методов не имеет явного превосходства над другими. Для каждого метода можно указать задачи, в-которых он оказывается наилучшим. Выяс- нение вопроса, какой из трех указанных методов наиболее эффективен в применении к имеющейся конкретной задаче, может потребовать специ- ального анализа. Закончим этот раздел кратким описанием применения метода коллока- ции и метода Галеркина к решению нелинейных задач. Мы ограничимся рассмотрением простого уравнения v"=g(v), v(0) = v(l) = 0, (5.1.19) где g — заданная нелинейная функция одной переменной. В методе колло- кации мы, как и прежде, потребуем, чтобы приближенное решение (5.1.3) удовлетворяло уравнению (5.1.19) в заданных точках хп ..., хп. Это при- водит к системе уравнений f Cj'Pi\xi)=g ( i=l,...,n, (5.1.20) относительно коэффициентов c*t, . . . , сл. Так как функция; нелинейна, система (5.1.20) также является нелинейной. Аналогично этому, в методе Галеркина невязка (5.1.15) теперь опреде- ляется соотношением л л r(x)= Е с/^/(х)-;( Е с/Ф/(х)), /=1 /= 1 так что соответствующая (5.1.16) система уравнений принимает вид 1 л п Л (ж) — ^( 2^(ж))] ^(x)dx = 0, /= 1,... ,«.(5.1.21) Как и раньше, можем проинтегрировать первый член по частям и 143
привести (5.1.21) к виду л * I и - 2 с/ f <p'/(x)<p/(x)dx = fg( 2 >pt(x)dx, (5.1.22) i - i о о i - 1 также представляющему собой нелинейную систему относительно коэф- фициентовси.. .,с„ Дополнительные замечания и ссылки 5.1 Близкий' подход к проекционным методам можно получить с помощью вариацион- ного принципа. Рассмотрим задачу нахождения min /{₽ (х) [v'(x)|* - 4 (х) [о (х)]а - 2/(х) v (х) } dx, (5.1.23) ueFo где V - множество нужное число раз дифференцируемых функций, обращающихся в нуль в точках х = Он х = 1. Из вариационного исчисления известно, что решение задачи (5.1.23) будет также н решением дифференциального уравнения (5.1.1), кото- рое является уравнением Эйлера для этой задачи. Следовательно, мы можем получить решение (5.1.1), решая задачу (5.1.23). При этом мы можем аппроксимировать реше- ние задачи (5-1.23) аналогично тому, как это делается в методе Галеркина. Такой метод известен как метод Рэлея - Ритца. Пусть од...fn - наборбаэисных функций таких, что щ (0) = щ(1) = 0 (/ = 1, - - - .... л). Тогда проблема отыскания 1 п 3 min ;{р(х)[ J c/(p/(x)| - Р.....cn 0 — 4 (х) [ Е -2f(x) Е cppj(x)}dx (5.1.24) i=l i=l представляет собой конечномерную задачу минимизации относительно коэффициен- тов ct,..., сп Пусть с*..... Сд - решение этой задачи минимизации. Тогда в качест- ве приближенного решения задачи (5-1.23) берется функция л U (х) = Г с? од (х). / = 1 Если при применении метода Галеркина к уравнению (5.1.1) мы используем эти же базисные функции, то получим то же самое приближенное решение. Хорошее изложе- ние методов Галеркина и Рэлея - Ритца имеется в книге (76 ] - Существенным является вопрос, когда системы линейных уравнений, возникаю- щих при применении методов этого раздела, имеют единственное решение. Обычно на этот вопрос легче ответить в случае метода Рэлея - Ритца, поскольку тогда задача сводится к вопросу о существовании минимума функционала (5.1.24). В разделе 5.4 мы приведем несколько простых примеров, когда системы уравнений методов кол- локации и Галеркина имеют единственные решения. При этом в качестве базисных функций мы будем использовать сплайны, которые служат предметом обсуждения следующего раздела. Введение в тематику, связанную с теоремами существования и единственности, а также обсуждение важного вопроса об ошибке дискретизации методов коллокации н Галеркина можно найти,например,вработах [41,59-611. УПРАЖНЕНИЯ 5.1 5.1.1. а) Для двухточечной краевой задачи у "(х) = у (х) + х2,0 <х< 1,у(0)=у(1) = = 0, выпишите явно систему уравнений (5.1.8) при п = 3, где vy(x) = sin/их и х,- = i/3, i.j = 1,2,3; б) выполните задание пункта а снова при уу(х) = x^l - х), / = 1, 2, 3; в) выпишите эти системы для базисных функций (5.1 Л) и (5.1.6) в матричной форме для произвольного я; г) повторите задание пунктов a-в для задачи (1 + х’)у” + + 2ху' + х*у = ех, у(0) =у(1) = 0. 144
.1.2. Покажите, что функции яп к их взаимно ортогональны на отрезке (0,1], т.е. 1 / sin ктгх • sin jitxdx = 0, j, к = 0,1./ * Л. О 5.1.3. Выполните упражнение 5.1.1 для уравнений Галеркина лс -ft где вектор/ н матрица А определяются соответственно формулами (5.1.17) и (5.1.18). 5.1.4. Пусть g(u) =еи: а) выпишите явно уравнения (5.1.20) н (5.1.22) для двух- точечной краевой задачи (5.1.19) при П = 3 н *у(х) = sin/irx, /= 1,2,3; б) выполните задание пункта а для базисных функций *у(х) = х^(1 - х), j = 1,2,3. 5.1.5. Для базисных функций (5.1.5) покажите, что коэффициенты ац в (5.1.18) определяются формулами i/ir’ - 1 1/яа +1 ац=----------(1 -СО8(/-/)я] +-----------(1 -cos(f +/)»], (i */), аи = - 1/12 - /’я3/2 - /31г3/6 -1/4»3/3. 5.2. Аппроксимация сплайнами и метод наименьших квадратов В разделе 23 мы рассмотрели вопрос об аппроксимации функции поли номами и кусочными полиномами. В настоящем разделе мы разовьем эти идеи в двух направлениях. Первое — это аппроксимация посредством интерполяции кусочными полиномами, обладающими рядом дополнитель- ных свойств. Второе — зто полиномиальная или кусочно-полиномиальная аппроксимация на основе критерия, отличного от используемого при интерполяции. Пусть на отрезке [а, й] задана сетка a <xt <х2 <.. . <х„ <Ьи . . . • • • >Уп — значения некоторой функции в узлах сетки. В разделе 2.3 мы использовали для аппроксимации кусочные полиномы, значения которых совпадали со значениями функции в определенных узлах сетки. Например, функция (2.3.8) являлась кусочно-квадратичным полиномом, принимаю- щим заданные значения в семи узлах. Она была составлена из трех квадра- Рис. 5.1. Кусочно-киадратичная функция тичных полиномов и была непрерывна на всем интервале, но не дифферен- цируема в узлах, где соединялись разные полиномы. Предположим теперь, что мы хотим аппроксимировать функцию кусоч- но-квадратичными полиномами, но требуем при этом, чтобы аппроксими- рующая функция была дифференцируема всюду. В этом случае нам понадо- бится подход, отличный от использованного в разделе 2.3. Для иллюстрации этого подхода положим п = 4, It = [х/, х, + j ] (i = 1,2,3) и qi(x) = ai2x7 +д,1Х + д/0, 1 = 1,2,3. (5.2.1) 0. Дж. Ортега 145
Определим теперь функцию <? (x) как«(х) = ф(х) при х Е It {i = 1,2,3 (рис. 5.1). Чтобы функция q была непрерывна и принимала в узлах сетки заданные значения {у/}, необходимо потребовать выполнения условий ?1(*1)=У1. 91(X2)=j2, «2(Х2)=У2, 02(Хз) =Уз, (5.2.2) ?з(*з)=УЗ. 9з(*4)=>4. Если мы, кроме того, хотим, чтобы функция q была дифференцируема в узлах, то q\ должно равняться q3 в х3 и q'i должно равняться q3 вх3, т.е. ?'1(*2) = ?2(*2). 42(x3) = q'3(x3). (5ХЗ) Функция q определяется девятью коэффициентами полиномов qi, <72 и q3. Равенства (5.2.2) и (5.23) дают только восемь соотношений для этих девяти коэффициентов, так что для однозначного определения q требуется дополнительное условие. Обычно указывается значение q в некотором узле, например, <7'1(Х1)=</1. (5.2.4) где di - некоторое заданное значение. Девять соотношений (5.2.2), (5.2.3) и (5.2.4) представляют собой просто систему девяти линейных уравнений относительно коэффициентов полиномов qh которая может быть решена методом гауссова исключения. Этот подход легко распространяется на произвольное число узлов. Пусть задано п узлов. Тогда будем иметь л — 1 отрезков/; и л - 1 квадратичных полмюмов qt, определенных на этих отрезках. Условия (5.2.2) и (5.2.3) примут вид ?/(*< + 1)=Л+1. » = 1...я-1. (5.2.5) 9/(*/ + 1) = 9/+1(*/ + 1)» » = 1, .. ,л — 2. (5.2.6) Эти соотношения представляют собой Зл - 4 линейных уравнения относи- тельно Зл — 3 неизвестных коэффициентов полиномов qx,..., q„_ 1. Снова требуется одно дополнительное условие, в качестве которого можно использовать, например, (5.2.4). Таким образом, для определения кусочно- квадратичного полинома мы должны решить систему Зл — 3 линейных уравнений. Расписав подробно соотношения (5.2.5), (5.2.6) и (5.2.4) для квадратич- ных полиномов (5.2.1), получим flf2x? + flnxf +flf0 =у„ i = 1,..., л - 1, *i2*?+l +«il*i + l +в/о=Л+1. 1 =1,...,л —1, 2a,-2xf+1 +a/t = 2а/+ 12х| + j + а, + itl, i = 1,...,л — 2, 2fli2Xi +flj 1 =di, 146
1ли, в матрично-векторной форме, (5.2.7) Структура этой системы уравнений здесь видна достаточно наглядно. При аппроксимации решений дифференциальных уравнений, а также во многих других ситуациях, оказывается желательным, чтобы аппрокси- мирующие функции были по крайней мере дважды непрерывно дифферен- цируемыми. Этого нельзя добиться с помощью кусочно-квадратичных полиномов, за исключением случая, когда данные таковы, что их можно аппроксимировать одним квадратичным полиномом на всем интервале. Таким образом, приходим к рассмотрению кусочно-кубического полинома С(х), обладающего следующими свойствами: С (х)—дважды непрерывно дифференцируемая функция; (5.2.8) на каждом отрезке/f = [xf,x{ + 1], ,л-1, <529) функция С(х) является кубическим полиномом. ' ' ’ ' Такая функция называется кубическим сплайном. Это название происходит от гибкой деревянной рейки, используемой чертежниками для проведения кривых. На каждом отрезке /f функция С(х) представляется в виде С(х) = С/(х)=а/3х8 +а12х2 +ацх +а/0, x&It. (5.2.10) Условие (5.2.8), разумеется, влечет за собой непрерывность функций С и С на всем отрезке /. Следовательно, должны выполняться Зл — 6 условий С/_ 1 (Х() = С/х,), С,_ 1 (*/) — С/(х,-), С"/_1(х,) = С/и(х/), i = 2...л-1. (5211) Так как для построения функции С надо определить 4п — 4 коэффициента ац в (5.2.10), то нам нужно еще п + 2 дополнительных условия. В случае задачи интерполяции или аппроксимации мы потребуем, чтобы функция С принимала в узлах заданные значения C(xf)=yh » = 1........л, (5.2.12) что дает и дополнительных соотношений. Нам нужно еще два условия, и их можно выбрать из самых разных соображений. Так называемый естест- 0* 147
венный кубический сплайн удовлетворяет дополнительным условия* ) = С"(х„) = О. (5.2.13) Можно показать, что если С — какой-либо другой кубический сплайн, удовлетворяющий условиям (5.2.8), (5.2.9) и (5.2.12), то ЛС"(х)]2 dr </ [С"(х)] 2dr. (5.2.14) а а Сплайн С можно было бы построить, решив линейную систему уравнений (5.2.11) - (5.2.13) относительно неизвестных коэффициентов а9. Сущест- вует, однако, другой подход, приводящий к простой трехдиагональной системе уравнений, в которой неизвестными являются значения вторых производных С в узлах сетки. Саму функцию С мы можем затем опреде- лить с помощью интегрирования. Чтобы принт к этой трехдиагональной системе, нужно выполнить целый ряд преобразований, к которым мы теперь и приступаем. Во-первых, заметим, что так как С,- — кубический полином, то С/ — линейная функция. Поэтому из формулы линейной интерполяции следует c;u)=c;,(xI)+L—* [с;(х/+1)-с;(х,)1, (5.2.15) где ht =х<+ j — х( (i = 1,..., п — 1). Проинтегрировав это выражение дваж- ды, приходим к формуле для С(х): СХх) = с;(х,) + / С7(0Л = = G(x/)+ Ci (x,)(x - xf) +-—--------------(x - xty, G(x) = Q(XZ) + f C‘i(t)dt = Q(x,) + CXxf)(x - Xi) + +Ci”(*/) — ----- +---------—--------- (X - Xi?. Z ОЛ/ -Для удобства в дальнейшем будем пользоваться обозначениями Л = ^(х/) = С/_1(хД yj -CjCrd-Cf-ifrd, y,=C^xt) = C^Axi), (5.2.16) (5.2.17) (5.2.18) в которых учтены условия (5.2.11) и (5.2.12). Заменяя теперь i на i - 1 в (5.2.16) и полагая х =х/, получим У/ =y'i-i + (У/ + У/-1) • (5.2.19) Полагая затем х =х/+, в (5.2.17) и разрешая это соотношение относитель- но y'i, получаем , У1 + 1-У1 „ Л; „Л, У,----7-----yi+iT ~ У1 Т • Л/ 6 3 (5.2.20) 148
1риравцивание правых частей (5.2.19) и (5.2.20) дает , ./ ". " _У/ + 1~У1 » л« » hi У/-1+(Л + Ji-i)— =— -------------- -yt + i— ~ У/ — (5.2.21) 2 rtf о 3 Теперь мы'хотим исключить уJ_i из (5.2.21). Заменяя для этого i на i — ’ в (5.2.20) и подставляя выражение для у<_ t в (5.2-21), получаем У/-У/-1 „Л/_| „ й,_| „ й/. -У,—------У,-х—— *{У,+У1-\> — 0 3 2 л, hi _ .17 + 1 -У! „ h, ht У‘*' 6 3 ’ что после перегруппировки членов дает У1 Л/_ 1 + 2y"(hi + hf-t) +у"+1Ь( = [yi + i-yt Л-Л-il ------ I > J ~ hi----h^ J (5.2.22) Это система л - 2 линейных уравнений c n — 2 неизвестными y2,... ,у„_г, напомним, что у» =yh - 0 согласно условию (5.2.13). Если положить 7. = 6 Р<+1 ft - У‘. У{~1 1. i = 2....,n —1, (5.2.23) 1 I ht..i J то система (5.2.22) примет вид Ну = у,гц^у = (у2,---.Ул-1)> Г=(7а» - --.Уп-!) и "2(й,+й2) й2 й2 2(й2+й3) йэ 0 Ли_2 О . (5.2.24) 2(ЙИ_2 +й„_1) Матрица Н трехдиагональная и диагонально доминирующая. (Она является также симметричной и положительно определенной.) Следовательно, система Ну = у легко и эффективно решается методом гауссова исключения без каких-либо перестановок. После того как значения у" найдены, мы должны еще получить пред- ставления для полиномов Ci, ..., С„_ j. Так как величины у{ нам тоже известны, значения первых производных в узлах сетки можно определить из (5.2.20): x-ow-c,*7—-а, 4--Ат •i=i................»-'• 6 3 (S.2.25) hi Выражения для самих СДх) можно затем получить из формулы (5.2.17), переписав ее в обозначениях yt, у'( и у-: . „ (X - X/)2 „ „ (х - X/)3 ci(x)=y/+y;(x-x/)+y;—+(у;'+1 -у;') (5.2.26) 2 ой/ 1=1....л-1. Отметим, что если вы хотите вычислить С(х) при некотором конкретном 14°
значении х, то сначала необходимо определить отрезокв котором лежи точка х, и затем воспользоваться выражением для соответствующего по- линома Ct. Теперь приведем простой пример построения кубического сплайна. Пусть заданы следующие узлы и соответствующие значения функции: *1=0, х2 = 1/4, х3 = 1/2, х4 = 3/4, xs = l, У1 = 1, Ут. = 2, Уз = 1, Уд = 0, ys = 1. Здесь п = 5 и все hf равны 1/4. Матрица Н в (5.2.24) и вектор f, коор- динаты которого вычисляются по формулам (5.2.23), имеют вид 1 ~4 1 0 ’-48 н= — 1 4 1 , "Г - 0 4 0 1 4 48 Таким образом, величины у2,Уз и у4 находятся из системы линейных, уравнений 4у2" + Уз =-192, У2 +4уз + У4 =0, Уз"+4у4" = 192, которая легко решается методом исключения. Накладывая, согласно (5.2.13), дополнительные условия у f = у $ = 0, получаем уГ = О, у2" = -48, Уз = О, у4 =48, ys" = 0. Подставляя эти значения у в (5.2.25), находим значения у,:. П=6, у2=0, уз=-6, у4=0. Теперь по полиномов сплайн: формулам (5.2.26) составляем выражения для кубических С], С2, С3 и С4, определяя тем самым искомый кубический С,(х) = 1+6х —З2х3, 1 0<х<~, 4 С(х) = / 1V / 1\3 С2(х) = 2 — 241 х — — ] +321 х--I , \ 4/ \ 4/ / 1 \ / 1 V С3(х)=1 -61 х----) + 321 х---I , \ 2/ \ 2/ 1 1 — <х<-, 4 2 3 <х<—, 4 (з V / з V з X — ) — 32(х-1, —<х<1. 4/ \ 4/ 4 Если нужно вычислить значение С в некоторой точке, скажем, при х = 0,35, то сначала замечаем, что 0,35 G [1/4, 1/2], и используем для вычисления полином С2: С(0,35) = С2(0,35) = 2 - 24(0,1 )2 + 32(0,1 )3 = 1,792. В разделе 5.4 мы снова вернемся к методам коллокации и Галеркина, используя в качестве базисных функций кубические сплайны. В остальной 150
исти настоящего раздела мы рассмотрим другой подход к аппроксимации полиномами или иными функциями, когда критерием уже ие является сов- падение в некоторых точках значений исходной и аппроксимирующей функций. Мы имеем в виду аппроксимацию по методу наименьших квад- ратов. Напомним, что из раздела 2.3 уже известно, что если заданы значения функции f в п + 1 различных точках х0, х(..х„, то существует .единст- венный полином степени п, такой, что р(х/)=/(х/), /“0,1...., я. Предположим теперь, что функция f сама является полиномом степени и, и наша задача состоит в определении его коэффициентов. Тогда, согласно приведенному результату, если бы значения функции f задавались точно, нам было бы достаточно знать эти значения в л + 1 различных точках. Однако во многих случаях значения /' определяются в результате измере- ний и могут содержать ошибки. При этом обычно проводят гораздо больше, чем п + 1 измерений, надеясь, что в результате "усреднения” эти ошибки исчезнут. То, как эти ошибки "усреднятся”, зависит от метода обработки измерений, используемого для определения коэффициентов полинома /. По статистическим соображениям в качестве такого метода часто выбирают метод наименьших квадратов. Этот метод, кроме того, исключительно прост и элегантен с математической точки зрения. Предположим теперь, что нам задано т точекхь.... хт, гдет>л + 1, и по крайней мере я + 1 из этих точек различны. Пусть ft,... ,fm - прибли- женные значения функции / в точках xj....хт. Мы хотим найти такой полином р(х) =fl0 +fl>x +... + а„хп, чтобы на нем величина т 2 1Л-Р(х,)]2 (5.2.27) /=1 достигала минимума среди всех полиномов степени и, т.е. мы хотим найти такие коэффициенты а0, at......а„, чтобы сумма квадратов ошибок 4 - p(Xf) была минимальной. Простейший случай такой задачи возникает при л = 0, когда полином р является просто константой. Предположим, например, что мы имеем т измерений w 1,..., wm веса некоторого предмета, причем эти данные полу- чены на т различных весах. Здесь все точки х»,..., хт идентичны и в вы- ражении явно не присутствуют. Привлекая принцип наименьших квадратов, приходим к задаче минимизации функции g(w)= S (Wj-w)2. i = i Из анализа известно, что функция g достигает минимума (локального) в точке w, в которой #’(£) = 0 и #’’(£•) >0. Так как £'(w) = - 2 S (Wj - w). g"(w) = 2m, i = i отсюда следует A 1 Ю W= --- S Wj. m i = i 151
Поскольку уравнение g'(w) = 0 имеет только одно решение, точка w будет единственной точкой минимума функции g. Таким образом, аппроксима- цией по методу наименьших квадратов для величины w будет просто сред- нее арифметическое измерений и>(...wm. Следующей по простоте является ситуация, когда используется линей- ный полином р(х) =а0 + а}х. Такие ситуации часто возникают на практике, когда предполагается, что наши данные подчиняются некоторой линейной зависимости. В этом случае функция (5.2.27) принимает вид g(ao,ai}= X (fj - ао - atXi)2, (5.2.28) i = 1 и мы ищем минимум по коэффициентам а0 и а,. Из анализа известно, что необходимым условием минимума функции g является выполнение соот- ношений dg т --- = — 2 Z (7, - До - aixi) = О, Эд0 1 = 1 Эя т -—=-2 Z х,(4-До-Д1Х,-) = 0. Эд, i = l Группируя вместе коэффициенты при д0 и at, приходим к системе двух линейных уравнений та0 + ( 2 х,)д1 = X fj, ( X х,) д0 + ( Z х? )at = Z х,/} /=1 i=i i=i i=i i=i относительно неизвестных д0 и а,, решение которой находится по явным формулам: Zx?Z/j. - Sx,./; Ех, тХх,-// - Ef'- Lx, ° mZxf-(Zxj)2 ’ fflSx- -(Zx,)2 где суммы берутся по всем i от 1 до т. В общем случае полиномов степени п мы приходим к задаче минимиза- ции функции (5.2.27), т.е. ищем минимум функции Я(д0,Д1,...,д„)= Z (fl0+atXi+ ... +апх"-ftf. (5.2.29) / = 1 Из анализа известно, что, как и в случае п = 2, необходимым условием ми- нимума функции g является обращение в нуль всех ее частных производ- ных первого порядка: Эя — (яо,<»1.....fln) = O, / = 0,1,...,л. Эд, Выписывая эти частные производные в явном виде, получаем соотношения Z х{(а0 + atXj + ... +апх" -/,) = 0, / = 0,1,.. ., л, (5.2.30) /=1 которые представляют собой систему л + 1 линейных уравнений относитель- но и + 1 неизвестных д0, а,,..., ап. Эти уравнения обычно называют нор- мальными уравнениями. Собирая коэффициенты при at и переписывая 152
павнения (5.2.30) в векторно-матричной форме, приходим к системе де все суммы берутся от 1 до т. Заметим, что систему (5.2.31) можно переписать в виде ErEa~Erf, - (5.2.32) де (5.2.33) Латрица Е — это матрица типа Вандермонда размера т X (и + 1). В предпо- ложении, что по крайней мере п + 1 из точек х,- различны, можно прказать, то ранг матрицы Е равен п + 1. Следовательно, матрица ЕТЕ является по- южительно определенной. Отсюда, в частности, следует, что решение систе- мы (5.2.31) дает единственную точку минимума функции g из (5.2.29), -ак что задача аппроксимации по методу наименьших квадратов имеет цинственное решение. Изложенная выше процедура непосредственно распространяется на более ющую задачу приближения по методу наименьших квадратов, когда ап- (роксимирующие функции не обязательно являются полиномами. Пусть "о. , • • • > >Рп — заданные функции одной переменной, W],..., wm — за- данные положительные числа, называемые весами, ах, хт и Л,..., fm — -о же, что и раньше. Тогда общая линейная задача аппроксимации по методу аименьших квадратов заключается в нахождении чисел а0, а}, ...» а„, соторые минимизируют функцию g(flo, at..... ап) = = Z w.ko'PoU,-) + + an<Pn(xt) - fg]2. (5.2.34) i = 1 ели ivi = w2 = ... =wm =1, a i^/(x) = x/, to g — простофункция(5.2.29). ) качестве базисных часто используются также функции <рДх) = sin/ттх, / = 0,1,..., п, «^•(х) = е*'*, j = 0,1,..., п, це Of — заданные числа. Веса Wj обычно используются для придания большей или меньшей роли ем или иным членам суммы (5.2.34). Если, например, значенияполуче- ш в результате измерений и мы достаточно твердо уверены, скажем, в из- лерениях .......f\0, а по поводу остальных имеем некоторые сомнения, о можем положить iv, = w2 = ... - iv, 0 = 5 и u’j, = ... = wln = 1. 153
Действуя точно так же, как и раньше, можем получить нормальные урав- нения для функции (5.2.34). Частные производные первого порядка от функции g имеют вид 3g •» — ~ 2 Z [вобо(х,-) + ei6i(x,) + .. - +д„б„(х,) . да,- 1 = 1 Приравнивая эти производные нулю и объединяя коэффициенты при af, приходим к линейной системе уравнений, которая в векторно-матричной форме записывается в виде Swf <й>(х,)бо(х,-) Z (Х/)бо(х,) .. Хи’/бо(х,-)б1(х,) • Zw/6w(*/)6o(*/> во at = Sw/spo(x,)6n(x/) . . . 2*W„(*/)6»(*/) _ а,,_ Sw^oCx,-)/;. (5.2.35) где все суммы берутся от 1 до т. Как и прежде, можем переписать эту систему в форме (5.2.32), где теперь бо(Х1) x/w7^o(x2) \/ЙЧ1Р1(Х1) ... ^^„(x») х/н’Г'Мхг) ... \ZmT^„(x2) - \А7„бо(х„,) (5.2.36) Чтобы система (5.2.35) имела единственное решение, необходимо и доста- точно, чтобы ранг матрицы £ в (5.2.36) был равен п + 1. Это в свою очередь накладывает определенные условия на точки хх,„ и функции 6o-6i - • • •. би- нормальные уравнения очень полезны для теоретических рассмотрений. Однако для практических вычислений их можно использовать только при малых п, поскольку уже при п > 5 эти уравнения обычно оказываются очень плохо обусловленными. Опишем теперь другой подход к построению полинома метода наименьших квадратов, основанный на использовании ортогональных полиномов. Пусть 9о, 91......Чп — полиномы степеней 0, 1, ..., п соответственно. Будем говорить, что полиномы взаимно ортогональны на множестве точек хь ..., х,„,если т s «*(*/)«/(*/)• о, *,/»0, *#/. (5.2.37) i = 1 154
Мы вскоре вернемся к вопросу о том, как построить такой набор ортого- нальных полиномов, а сейчас давайте предположим, что мы их уже имеем, и подставим = qt (/ = 0, 1, ..., п) в нормальные уравнения (5.2.35), где все веса wt взяты равными единице. Тогда, в силу (5.2,37), все лежа- щие вне главной диагонали элементы матрицы коэффициентов системы (5.2.35) обратятся в нуль и система уравнений примет вид т т S [<7*(*«)]2= 2 4k<xMt’ * = 0,1,..., л, 1 = 1 1 = 1 так что т т ак=( X qk (хМШ S С*,)]2 X к » 0.1,..., и. (5.2.38) 1 = 1 г = 1 Таким образом, по методу наименьших квадратов получаем полином q{x)= I akqk(x). (5.2.39) к =0 Естественно возникает вопрос, совпадает ли полином (5.2.39) с поли- номом, полученным из нормальных уравнений (5.2.31). При нашем стан- дартном предположении, что среди т точек х,- есть по крайней мере и + 1 различных, ответ на этот вопрос положителен. Это следует из того факта, что, как уже отмечалось выше, задача аппроксимации по методу наимень- ших квадратов имеет единственное решение, т.е. существует единственный полином степени меньшей или равной и, который минимизирует (5.2.27). Следовательно, чтобы убедиться, что полином (5.2.39) является тем же самым минимизирующим полиномом, достаточно показать, что любой полином степени п может быть представлен в виде линейной комбинации полиномов <?,. т.е. по заданному полиному р(х) = b0 + btx + ... + bnxn (5.2.40) можно найти коэффициенты со,с\,... ,сп такие, что р(х) = coqo(x) + ct9t(x) + ... + cnqn(x). (5.2.41) Это может быть сделано следующим образом. Пусть qj(x) » di0 + ditx + ... + i = 0,1,..., n, где djj^O. Приравнивая правые части (5.2.40) и (5.2.41), получаем b0 + btx + ... + ЬпХп = = Codoo +С1(</ю + <Л1*) + ... + c„(rf„0 + ...+rfnnx"). Приравнивая теперь коэффициенты при одинаковых степенях х, приходим к соотношениям = cndnn, bn-i =cnd„„_i + (5.2.42) i0 = cnd„0 + c„_i<7n_i ,o + • - + c0d0o, которые являются необходимыми и достаточными условиями тождествен- ности полиномов (5.2.40) и (5.2.41). При заданных b0,bi,. .. ,Ь„ соот- 155
ношения (5.2.42) представляют собой треугольную систему уравнений относительно коэффициентов с,, которая разрешима, так как da ФО (7 = 0,1,...,»). Таким образом, полином (5.2.39) дает просто другое представление единственного полинома метода наименьших квадратов, получаемого как решение системы нормальных уравнений (5.2.31). Использование ортогональных полиномов позволяет преобразовать нормальные уравнения в тривиальную диагональную систему уравнений. Однако все трудности теперь переносятся на вычисление полиномов q,. Имеется несколько возможных способов построения ортогональных по- линомов, но мы остановимся только на одном, особенно подходящем для вычислений. Пусть 9о(х)^ 1, qt (х) = х - ttj, (5.2.43) где константа оц должна быть определена из условия ортогональности q0 и fli на множестве точек xf. Следовательно, должно выполняться соот- ношение 0= 2 9o(xf)9i(*t)- 2 (х,-а,) = Z x,-maIt i = 1 i = 1 i = 1 откуда 1 '« ot| = — Z xh (5.2.44) m i-i Пусть теперь 9г(*) = xqt(x) - a2qi (x) - fa, где константы a2 и fa определяются из условий ортогональности q2 поли- номам 9о и <71, т.е. из условий 2 к, <71 (х,)- а2 q 1 (х,) - fa ] = 0, « = 1 2 [x,9i(x,-) -а291(х/)-₽|]<71(х,) = 0. < = о Учитывая, что 2^1 (х,-) = 0, из этих соотношений получаем 2 xtqi(xt)-mfa =0, < = 1 ш m 2 *,[<71 (X,)]2 -o2 Z l<7i(x,)]2 =o, » = i ,=i так что 1 •» Pi = — 2 x^Jx,), m < = i «2=( 2 x,[<7i(x,)]2)/( Z ki(x,-)]2). , = 1 i = 1 156
Построение последующих полиномов проводится аналогичным об- разом. Считая, что полиномы ?о> > 9/ Уже найдены, положим Q/+i(*) = *?/(*) (5.2.45) где константы а/+1 и fy подлежат определению из условий ортогональ- ности. В частности, должны выполняться равенства т nt 2 <7/+1(*i)<7/(*l) = O, S ?/ + 1(х,)?/_1(х/) = 0. (5.2.46) Отметим, что при выполнении этих двух соотношений полином <?/+1 будет ортогонален всем другим полиномам qk (k<f— 1). Действительно, из (5.2.45) имеем 2 Е XtqAXi)qk(Xi)- 1 = 1 1 = 1 tn т -а/+1 Е q^Xifq^Xiy-fy Е ^-.ДхД^Сх.-). (5.2.47) i=i /=1 Два последних члена в (5.2.47) равны нулю по предположению, а полином xqk (х) имеет степень к + 1 и, следовательно, может быть представлен как линейная комбинация полиномов ............?k+i- Отсюда следует, что и первый член в правой части (5.2.47) также равен нулю. Возвращаясь к условиям (5.2.46) и подставляя в них<7/+1 из (5.2.45), приходим к следующим формулам для оу+1 и fy: т т а/+, = ( . Е x.-fo/x,-)]2)/( Е fa/x,-)]2), (5.2.48) tn т fy = ( 2 х,9 (х,-)? _,(х,-))/( Е fy-i(х,-)]2). (5.2.49) Отметим, что знаменатель в (5.2.48) может обратиться в нуль только в том случае, если ?/-(х,-) = 0 (7=1...т). Но поскольку по предположе- нию среди точек х,- есть по меньшей мере п + 1 различных и / Си, отсюда бы следовало, что полином ?Дх) тождественно равен нулю, что противо- речит определению q^. Таким образом, знаменатель в формулах (5.2.48) и (5.2.49) отличен от нуля. Теперь можем сформулировать алгоритм построения ортогональных полиномов следующим образом: 1 т 1. Положить Qo(*) = 1, qj(x) = х - — Е xf. tn i=l 2. Для /= 1..... и - 1 положить ?/+ ,(х) = xqt(x) - а/+!?Дх) -fyq,- , (х), где a/+i задается формулой (52.48), a fy - формулой (5.2.49). 3. Вычислить коэффициенты а0, а......... полинома метода наимень- ших квадратов ao<7o(x) + fli?i(x)+ ... +дп9и(х) по формулам (5.2.38). Как уже отмечалось, такой подход предпочтительнее с вычислительной точки зрения, поскольку он позволяет избежать решения системы (5.2.31), которая может оказаться очень плохо обусловленной. Другим преиму- ществом этого подхода является возможность строить полином метода 157
наименьших квадратов степень за степенью. Например, если мы заранее не знаем, полином какой степени нас удовлетворит, мы можем начать с полинома первой степени, затем построить полином второй степени и т.д., пока не получим полином, который мы будем считать подходящим. В при- веденном алгоритме построения ортогональных полиномов коэффициен- ты а, не зависят от п; как только вычислен полином мы можем найти коэффициент dj и, следовательно, получить полином наименьших квадра- тов степени/. Мы теперь приведем простой пример, используя те же данные *1=0, х2=1/4, *3 = 1/12, *4=3/4, *5 = 1, У1=1. 3’2=2, _>>з = 1, 3’4=0, 3’s = l, что и в примере построения кубического сплайна. Так как здесь задается пять точек х,-, эти данные единственным образом определяют интерполя- ционный полином четвертой степени. Давайте получим линейный и квадра- тичный полиномы метода наименьших квадратов как на основе нормаль- ных уравнений, так и с помощью ортогональных полиномов. Для вычисления коэффициентов линейного полинома метода наимень- ших квадратов на основе нормальных уравнений нам потребуются следую- щие величины: 5 5 5 15 5 5 2*, = -. £** = — , 24 = 5, £*,-/} = 2. (5.2.50) 1=1 2 i=i 8 i=i i=i Тогда по приведенным ранее формулам для коэффициентов а0 и ах по- 1учим / 15 \ / 5 \ / 5 \ (Т)(5)-(2)(Т 7 (5) (2)-(5) —) л \ о / \ 2 / 1 \ 2 / — 4 а о — " = , и 1 = — . /15\ /25\ 5 / 15 \ / 25\ 5 (5) ( — I - I-) (5) I — ) - I — I \ 8 / \ 4 / \ 8 / \ 4 / 'ледовательно, линейный полином метода наименьших квадратов, постро- нный по этим данным, имеет вид Р1(х) = 7/5-(4/5)х. (5.2.51) !ри вычислении с помощью ортогональных полиномов тот же' самый олином представляется в форме ao4o(x)+aiq,(x)=ao +ai(x-a1), (5.2.52) те д0 и Д1 определяются по формулам (5.2.38), a at — по форму- е (5.2.44): 7 - | <N - |<N и И _| 7 м 'ТГ" II II о « m 1 1 , at =— Sx, = — , 5 2 . 1 5 Л 2*,-Л- --Eft 2 Г 2 2 —4 2 , 5 15 5 .5 5 Sx2 -Хх,+— — -— + ~ ' 4 8 2 4
Таким образом, полином (5.2.52) есть просто 1 — (4/5) (х —1/2) и, как и следовало ожидать, он идентичен полиному (5.2.51). Для определения коэффициентов квадратичного полинома по методу наименьших квадратов из нормальных уравнений нам необходимо решить систему (5.2.31) при и = 2: ' m Zx? Ех,- Ex? " Ex? Sx* Ex? Sx?_ ' a0 at - a2 = 2Л ‘ ZXifi ^x-fi При наших данных эта система имеет вид 640 320 240 ao 640 320 240 200 at = 256 .240 200 177 J a2 . .176. Решая зту систему, находим До = 7/5, ffi= —4/5, л2=0. (5.2.53) Таким образом, лучшим в смысле метода наименьших квадратов аппрок- симирующим квадратичным полиномом оказывается линейный полином, т.е. добавление квадратичного члена не дает никакого улучшения по сравне- нию с линейной аппроксимацией. В том, что значения (5.2.53) привильны, можно убедиться, построив квадратичный полином метода наименьших квадратов с помощью ортогональных полиномов. Представление через ортогональные полиномы имеет вид аоЧо (* Н Д1Ч । (х) + а2 q2 (х) = 7 5 где коэффициенты а2 и Pi находятся по формулам (5.2.48) и (5.2.49): Таким образом, q2(x) = x2 -х —1/8 и из (5.2.38) получаем, что а2 =0. Дополнительные замечания и ссылки 5.2 В качество дополнительной литературы по сплайн-функциям можно рекомендовать книги 116,59]. В этих книгах можно, в частности, найти сведения о сплайнах, исполь- зующих полиномы более высокой степени, чем кубические. Такие сплайны иногда оказываются очень полезными. Другой подход к построению полиномов по методу наименьших квадратов связан с непосредственным использованием системы линейных уравнений Еа = J, где Е mf определяются в (5.2.33). Эта система имеет размерrn х (и + 1), где m обычно больше, чем и + 1, т.е. матрица Е нс является квадратной. О технике работы с такими система- ми смотрите, например. (23.78]. 159
УПРАЖНЕНИЯ 5 2 5XI. Пусть известны следующие значения некоторой функции/: /(1) = 2. /(2) = = 3,/(3)=5, f(4) = 3: а) постройте по этим данным интерполяционный полином третьей степени и запи- шите его в виде а0 + я, х + я, х1 + а} х3; б) постройте по этим данным квадратичный сплайн, удовлетворяющий условию q‘ (Г) = 0 {указание: начните слева); в) постройте по этим данным кубический сплайн, удовлетворяющий условиям С”(1) - 6, С”(4) = -9 {указание-, попробуйте использовать полином пункта а). 5.2.2. Переупорядочьте неизвестные в системе уравнений (5.2.7), чтобы получить матрицу коэффициентов с возможно меньшей шириной ленты. 5.2.3. Используя условия (5.2.11)-(5.2.13),выпишите систему уравнений относи- тельно неизвестных коэффициентов я^- кубического сплайна (5.2.9). 5.2.4. Для функции из упражнения 5.2.1 постройте, кубический сплайн, который удовлетворяет условиям С’(1) = 1, С'(4) = -1, а не условию (5.2.13) (указание: подумайте). 5.2.5. Составьте программу построения естественного кубического сплайна по заданному набору точек х, < ... < х„ и соответствующим значениям функции yt.......уп. Программа должна сначала решать трехдиагональную систему с матрицей коэффициентов (5.2.24), а затем использовать формулы (5.2.25) н (5.2.26). Составь- те также программу вычисления значения этого кубического сплайна в заданной точке х. Проверьте вашу программу на примере из текста. 5.2.6. По данным из упражнения 5.2.1 найдите тождественно равный константе, линейный и квадратичный полиномы, получающиеся по методу наименьших квадра- тов, используя как нормальные уравнения, так и ортогональные полиномы. 5.2.7. Составьте программу, которая использует подход на основе ортогональных полиномов для построения полинома метода наименьших квадратов степени и по данным в т точках (ш > п + 1). Проверьте вашу программу на полиномах из упраж- нения 5.2.6. 5.3. Численное интегрирование Метод Галеркина, описанный в разделе 5.1, требует вычисления опреде- ленных интегралов вида ь 1(f) • J f(x)dx. а Потребность в вычислении таких интегралов возникает и в целом ряде других задач. Подынтегральная функция f(x) может быть задана одним из трех способов: 1. Задается явная формула для f(x), например, /(x) = sin(xe Л'2). 2. Функция f(x) явно не задана, но ее значение может быть вычислено при любом х из отрезка [д. Л]. Обычно это значение вычисляется по неко- торой подпрограмме. 3. Для некоторого фиксированного конечного набора точек х,- из отрез- ка [д, й] задается таблица значений {х,,/(х,)}. Интегралы от функций первого типа иногда удается вычислить аналити- чески, либо вручную, либо с помощью машинных символьных систем. Интегралы от функций второго и третьего типов (а также первого, если не используются символьные методы) обычно находятся численными метода- 160
ми. Такие методы называют квадратурными формулами и получают по- средством аппроксимации функции f(x) некоторой другой функцией f(x), интеграл от которой вычисляется сравнительно просто. Для аппроксимации f(x) может быть использован любой класс простых функций, таких как полиномы, кусочные полиномы, тригонометрические, экспоненциальные или логарифмические функции. Конкретный выбор класса аппроксими- рующих функций может зависеть от некоторых определенных свойств подынтегральной функции, но в наиболее распространенном случае, ко- торый мы здесь и рассмотрим, в качестве таких функций используются полиномы. Простейшим полиномом являете? константа. В формуле прямоугольни- ков функция f аппроксимируется своим значением в точке а (или в Точ- ке Ь), т.е. /Ю*Л(Г)=(*-ц)Г(Д). (5.3.1) Мы могли бы аппроксимировать функцию f и другой константой, полу- Рис. 5.2. а) Формула прямоугольников; б) формула средней точки Рис. 5.3. а) Формуле трапеций; б) формула Симпсона ченной в результате вычисления значения f в некоторой внутренней точке отрезка; обычно используют точку (а + й)/2, являющуюся центром отрез- ка, что приводит к формуле средней точки (5.3.2) Формулы прямоугольников и средней точки проиллюстрированы на рис. 5.2. Следующим простейшим полиномом является линейная функция. Если она выбрана совпадающей с f в концах отрезка а и Ь, то мы получаем трапецию, показанную на рис. 5.3. Площадь этой трапеции (интеграл от линейной функции), используемая в качестве приближения к значению 11 Дж. Ортёга 161
интеграла от f, определяется по формуле (Ь — а) 1(f)~ T(f) = |/(а) +/(*)]. (5.3.3) Эта формула известна как формула трапеций. Приведем еще одну формулу, которая получается в результате аппрокси- мации функции f квадратичным интерполяционным полиномом, который совпадает с f в крайних точках а и b и средней точке (а + Ь)/2. Интеграл от этого квадратичного полинома выражается формулой (см. упражне- ние 5.3.1) , ч r п (й - а) Г / а + Ъ\ 1 1(f) *> S(f) = —Яд) + 4fl — ) + f(b) , (5.3.4) 6 L \ 2 / J которая называется формулой Симпсона. Эта формула проиллюстрирована на рис. 5.3. Отметим, что формулу Симпсона можно также рассматривать как линейную комбинацию формулы трапеций и формулы средней точки с коэффициентами 1/3 и 2/3 соответственно: И. { a + b\ 1 1 f(a)+f(b) ] 2 (а + Ъ\ — Л<0 + 4/( — )+ЛЬ) =- + - /( — 6 [ \2/ J 3 2 J 3 \ 2 / Можем продолжить эту процедуру построения квадратурных формул, используя полиномы все более высоких степеней. Внутри отрезка [a, 6] берем m точек, делящих его на m + 1 равных отрезков, и строим интерпо- ляционный полином, который совпадает с f в этих m точках и на концах отрезка. Интегрируя затем этот полином от а до Ъ, мы получим приближен- ную формулу для вычисления интеграла. Такие квадратурные формулы называются формулами Ньютона - Котеса. (См. дополнительные замечания в конце раздела.) Теперь займемся оценкой погрешности, возникающей при использовании только что описанных квадратурных формул. Во всех случаях функция f(x) аппроксимируется на отрезке [а, Ь] интерполяционным полиномом ь р(х) и в качестве приближенного значения интеграла берется fp(x)dx. а Следовательно, допускаемая при этом ошибка есть просто ь Е = f [f(x) — p(x)]dx. (5.3.5) а Основная теорема об ошибке интерполяции (теорема 2.3.2) позволяет представить (5.3.5) в виде Е = —1 - f(x-x0)...(x- xn)f(n+1 \z (х)) dx, (5.3.6) (п + 1)! а где х0, х 1, ..., хп — узлы интерполяции, a z(x) — точка отрезка [а. Л], зависящая от х. Теперь применим формулу (5.3.6) к конкретным интере- сующим нас случаям. 3 формуле прямоугольников (5.3.1) имеем п - 0 и х0 =ч. так что (5.3.6) принимает вид * ь М, I ER I = I f (х - a)f (z(x))dx | <Mt f(x- a)dx =- (b - a)2 3, (5.3.7) a a 2 162
где М\ - max | /'(x)|. Эта оценка не изменится, если в формуле прямо- а <х < Ь угольников вместо точки а будет использован другой конец отрезка Ь. Подчеркнем, что ошибка будет малой только в том случае, если либо будет мала величина М\, что соответствует близости функции / к константе, либо будет мала длина самого отрезка. Мы вернемся к этому вопросу несколь- ко позже, когда будем обсуждать практическое использование квадратур- ных формул. В случае формулы трапеций (5.3.3) мы имеем п = 1, х0 = а и Xi = b, так что из (5.3.6) получаем 1 ъ М2 , ' IЕт I = - I /(х - п) (х - 6)/"(z(x))dx | <— (b - д)3, (5.3.8) 2 а 12 где М2 - max |/"(х)|. а < х < Ь Рассмотрим теперь формулу средней точки (5.3.2), в которой и = Ои х0 = (а + 6)/2. Если мы здесь применим формулу (5.3.6) и будем действо- вать, как в (53.7), то придем к оценке |£м1 = (а + Ь) 1 ——] /(z(x))dx dx (6 - д) (Ь.+ а). (5.3.9) Эта оценка, однако, нас не устраивает, так как содержит только первую степень (6 - а). Чтобы получить нужную оценку, мы разложим подын- тегральную функцию в (5.3.5) в ряд Тейлора в окрестности точки m = = (а + 6)/2. Так как в данном случае интерполяционный полином является просто константой, р (х )=f(m), мы имеем /(х) - р(х)=f'(m) (х - m) + -^-/"(z(x)) (х - т)2, где z — зависящая от х точка внутри отрезка [а, Л]. Подставляя это разло- жение в (5.3.5), получаем следующую оценку погрешности формулы сред- ней точки: ь 1ЕМ1 » 1/[Г(*)-р(*)]Л| = а 1 1 J /'(тн) (х - т) +—/"(Z (х)) (х - т)2 dx | < ъ f'(m)f(x-tn)dx а 1 ь + ~ //"(z(x))(x-m)2dx 2 а Мы здесь использовали, что ь ь (ь-а)э f (х - m)dx = 0, f(x - ntfdx = ------ а а 12 М2 <---- (Ь-а)3. 24 (5.3.10) Аналогичным образом мы могли бы вывести оценку погрешности формулы 11* ’ 163
Симпсона, которую здесь приводим без доказательства (М4 — оценка мо- дуля четвертой производной): (b-df. (5.3.11) ZooU Во все полученные нами оценки ошибок входят степени длины отрезка [в. Ь]. Если эта длина не будет малой, то, вообще говоря, не будут малыми и эти оценки. Однако на практике мы будем применять наши квадратурные формулы только на достаточно малых отрезках, получаемых в результате разбиения данного отрезка [в, Ь]. Итак, пусть мы разбили отрезок [а, Ь] нал частей [x/i,*/] (i = 1...л),гдех0 =аихп = Ь.Тогда Ъ п xi Kf) = ff(x)dx = s J /(x)dx. a i=l x/_i ’ Если мы теперь к каждому отрезку [xf_i ,Х/] применим формулу прямо- угольников, то получим составную формулу прямоугольников 1(D^!cr(D= S ^/(хг-О, (5.3.12) i = i где ht = xt - xf_j. Точно так же, применяя к каждой части отрезка соот- ветствующую основную формулу, мы получим составные формулы сред- ней точки, трапеций и Симпсона-. п / х{ + х/_1 \ 1см(Л= 2 htf[ / -) (5.3.13) /=1 \ 2 / (составная формула средней точки), л fc. 1ст(П= 2 И(х,_1)+/(х/)1 (5.3.14) i = l 2 (составная формула трапеций), Ics(f) 4 + V/(x,)| (5.3.15) 6 i=l I \ 2 / J (составная формула Симпсона). Отметим, что все эти составные формулы можно рассматривать как ре- зультат аппроксимации подынтегральной функции f на отрезке [а, й] кусочным полиномом и последующего интегрирования этого кусочного полинома. Для формулы прямоугольников и формулы средней точки ап- проксимирующая функция будет кусочно-постоянной, для формулы тра- пеций — кусочно-линейной и для формулы Симпсона — кусочно-квадра- тичной. Теперь мы можем воспользоваться полученными выше оценками ошиб- ки на каждой части [я й]. Так, например, для формулы прямоугольников, используя (5.3.7), мы получаем следующую оценку ошибки составной формулы: Мх ” , Ecr < — 2 й’. (5.3.16) 2 i = i 164
Здесь в качестве М\ мы использовали максимум |/'(х)1 на всем отрезке [а, Ь]. Разумеется, более точная оценка получилась бы при использовании максимумов |/'(х) I отдельно на каждой части отрезка [а, Ь]. В том случае, когда все части [в, Ь] имеют одинаковую длину, ht = h = = (b - d)/n, (5.3.16) принимает вид Mi ecr (b-a)h (5.3.17) (ошибка составной формулы прямоугольников), откуда следует, что составная формула прямоугольников является мето- дом первого порядка, т.е. ошибка убывает только линейно по й. Аналогич- но, используя (5.3.8), (5.3.10) и (5.3.11), можно получить оценки ошибок других составных формул. Ниже приводятся эти оценки для случая, когда все части разбиения отрезка имеют одинаковую длину h: Mi ECM<~{b-d)h3 (5.3.18) (ошибка составной формулы средней точки), М2 ECT<—{b-aW (5-3.19) ci 12 (ошибка составной формулы трапеций), М. Ecs<^~(b-a)h^ (5.3.20) ZooU (ошибка составной формулы Симпсона). Таким образом, составные формулы средней точки и трапеций имеют вто- рой порядок, в то время как составная формула Симпсона имеет четвертый порядок. В силу своей сравнительно высокой точности и простоты состав- ная формула Симпсона особенно часто используется в качестве метода чис- ленного интегрирования. При использовании квадратурных формул мы встречаемся с той же труд- ностью, с которой мы уже несколько раз сталкивались при построении дру- гих численных аппроксимаций. Речь идет о необходимости правильного выбора величины шага Л/. Если бы схемы численного интегрирования ис- пользовались так, как только что описано, пользователь был бы должен задавать шаг hj априори. Употребляемые при решении практических задач хорошие пакеты программ численного интегрирования обычно включают некоторые автоматически адаптирующиеся схемы, которые изменяют величину шага в зависимости от оценки погрешности, получаемой в ходе вычислений. От пользователя требуется только указать допустимую вели- чину ошибки, а программа сама подберет необходимый шаг интегри- рования. Дополнительные замечания и ссылки 5.3 Решение задов Коши У'(х) =f(x), У(в) = 0, а<х<Ь, (5.3.21) Ь при х = Ь есть просто у(й) = / f(x)dx. Следовательно, интегрирование можно рассмат- 165
ривать как тривиальный частный случай решения задачи Коши, когда правая часть не зависит от у. Для решения задачи (5.3.21) можно, в принципе, использовать любой из методов гл. 2. Фактически большинство из этих методов сводится к уже рассмот- ренным нами квадратурным формулам. Так, например, метод Эйлера — это просто составная формула прямоугольников, метод Рунге - Кутта второго порядка - состав- ная формула трапеций, метод Рунге — Кутта четвертого порядка - составная формула Симпсона. Формулы Ньютона - Котеса, упомянутые в основном тексте как получающиеся интегрированием интерполяционного полинома степени л, могут быть записаны в виде J(f) - X a,/(xf), (5.3.22) 1=0 где ж, - узлы равномерной сетки на отрезке [с, Ь], причем х„ = а, хп = Ь. Правило Симпсона - это случай л = 2. При л < 7 все коэффициенты а/ в (5.3.22) положитель- ны, но, начиная с л = 8, некоторые коэффициенты становятся отрицательными, что приводит к потере верных знаков в результате ошибок округления. Формулы Ньюто- на - Котеса имеют и существенный теоретический недостаток, состоящий в том, что даже для бесконечно дифференцируемых функций может не быть сходимости при л — “ к величине интеграла. Представление (5.3.22) позволяет осуществить другой подход к выводу квадра- турных формул - метод неопределенных коэффициентов. Предположим сначала, что все узлы х/ заданы. - Будем выбирать коэффициенты а/ так, чтобы форму- ла (5.3.22) оказалась точной для полиномов возможно более высокой степени. Тогда, в частности, оиа должна быть точной для полиномов 1, х, х2,..., хт, где т мы стре- мимся сделать как можно большим. Это означает, что должны выполняться со- отношения и j ^+1 _e/’+1 Ё а/Xi ------------, j = 0,1,... ,m. (5.3.23) 1=0 /+1 (Правые части этих соотношений есть просто точные значения интегралов от степе- ней х.) Соотношения (5.3.23) образуют систему линейных уравнений относительно неизвестных коэффициентов а,. При т = п матрица системы есть просто матрица Ван- дермонда, уже встречавшаяся в разделе 2.3. Если все точки х,- различны, то эта матри- ца невырождена, и, следовательно, при т = п коэффициенты а; определяются единст- венным образом. Если точки х, равноудалены друг от друга, то этот подход опять приводит к формулам Ньютона - Котеса. Предположим теперь, что мы не задаем точки х,- заранее, а также рассматриваем их в (5.3.23) как неизвестные. Тогда, если т = 2л + 1, соотношения (5.3.23) представ- ляют собой нелинейную систему 2л + 2 уравнений с 2л + 2 неизвестными а„, а,,..., ан и х„. х,, ..., х„. Несмотря на нелинейность, эта система имеет решение. Подставляя соответствующие значения а/ н X/ в (5.3.22), приходим к квадратурным формулам Гаусса. Например, в случае л = 1 и отрезка [с. 6] = [-1,1] формула Гаусса имеет вид г ( 1 \ I 1 \ f j(x)dx —= )+/( -=)- -1 \ х/3 / \х/3/ В общем случае абсциссы х/ этих квадратурных формул являются корнями опреде- ленных ортогональных полиномов. Основой популярности квадратурных формул Гаусса служит их высокий порядок точности. В основном тексте мы упоминали, что формулу Симпсона можно рассматривать как линейную комбинацию формул трапеции и средней точки. Беря подходящие ли- нейные комбинации формул трапеций при различных шагах сетки Л, можно также по- лучить квадратурные формулы высокого порядка. Такие формулы называют квадра- турами Ромберга. Вывод квадратур Ромберга основывается на том, что, как можно показать, аппроксимация интеграла по составной формуле трапеций Г(Л) допускает разложение Г(Л) = /(/) +С,//’ +С4Л* +... + C,mA2"' + O(//jmt2), (5.3.24) 166
где коэффициенты Q зависят только от функции / и отрезка интегрирования, но не зависят от h. Разложение (5.3.24) справедливо в предположении, что f имеет 2m + 2 производные. Определим теперь новую аппроксимацию интеграла формулой Т, (Л) = | [^(у) - Г(Л)] ' (5.3.25) Коэффициенты этой линейной комбинации выбраны таким образом, чтобы при вычис- лении с помощью (5.3.24) ошибки аппроксимации формулы (5.3.25) коэффициент при Л’ обращался в нуль. Следовательно, 7, (Л) = /(/) + С4(,)Л* +... + О(h2m+2), так что Тх аппроксимирует интеграл с четвертым порядком точности. Этот процесс можно продолжить, вводя новую аппроксимацию Т2 как линейную комбинацию Т, (й) и Tt (й/2), разложение которой по степеням й не будет содержать члена поряд- ка й4. В общем случае мы можем построить треугольный массив Г(й) Г(й/2) 7, (Л) 7(й/4) 7, (й/2) 7,(й) где 7к(Л/2>-*)= (4/7*_1(»Л/)-Г*_1(Л/2/-1)1/Г4/- 1|. Элементы i-го столбца этого массива сходятся к значению интеграла со скоростью порядка hil. В предположении же бесконечной дифференцируемости функции / на диагонали массива найдутся элементы, которые при й — О будут сходиться быстрее любой фиксированной степени й (если взять эти элементы достаточно далеко). Мы вообще не затронули несколько других важных вопросов, связанных с чис- ленным интегрированием: вычисление интегралов от функций с особенностями, интегралы по бесконечному промежутку, кратные интегралы, а также адаптивные процедуры, пытающиеся автоматически выбрать шаг в соответствии с поведением подынтегральной функции. Обсуждение всех этих вопросов, а также дальнейший материал по темам, освещенным в этом разделе, можно иайти в книгах [24,77]. УПРАЖНЕНИЯ 5.3 5.3.1. Выпишите явно квадратичный интерполяционный полином, значения которо- го совпадают с f в трех точках: а, Ь и (в + й) /2. Проинтегрируйте этот квадратичный полином отв до b и получите формулу Симпсона (5.3.4). 5.3.2. Покажите, что формула трапеций точно интегрирует любую линейную функ- цию, а формула Симпсона точно интегрирует любой кубический полином. (Указание: Разложите кубический полином относительно средней точки отрезка.) 5.3.3. Примените формулы прямоугольников, средней точки, трапеций и Симпсона для вычисления интеграла от функции / (х) = X* на отрезке [О, 1 ]. Сравните факти- ческие ошибки аппроксимации с оценками (5.3.7), (5.3.8), (5.3.10) и (5.3.11). 5.3.4. Исходя из оценки (5.3.19), определите, каким должен быть шаг й, чтобы при вычислений интеграла от функции /(х) = X* иа отрезке [0,1] по составной фор- муле трапеций ошибка не превосходила 10'4. Каким должен быть шаг при исполь- зовании составной формулы Симпсона? 5.3.5. Составьте программу вычисления по составной формуле трапеций и по составной формуле Симпсона интеграла от "произвольной” функции на отрезке [а, й] при произвольном разбиении этого отрезка. Проверьте вашу программу на функции /(х) = х* и отрезке [0.1 ]. Определите фактический шаг, при использовании которого ошибка составной формулу трапеций с равномерной сеткой оказывается меньше, чем 10’6. 167
5.4. Дискретные задачи, использующие сплайны Теперь мы вернемся к исходной задаче этой главы: для двухточечной краевой задачи (₽(*)«>’(*))' 0<х<1, (5.4.1) о(0) =о(1)= О, (5.4.2) требуется найти приближенное решение вида и(х)= £ (5.4.3) где ф1,..., <рп — заданные функции. Напомним, что описанный в разделе 5.1 метод коллокации сводил задачу (5.4.1)-(5.4.2) к решению системы линейных уравнений Ac=f, (5.4.4) где А — матрица с элементами вц=Р(хд +р'(хд ф'(х,) (х,) фДхД i,j = 1,.... п, (5.45) с - вектор неизвестных коэффициентов ct,..., с„, f — вектор с коорди- натами /(Х|)...../ (х„) их......, х„ — заданные точки отрезка [0, 1 ]. В разделе 5.1 в качестве базисных функций ф,- выбирались либо полиномы, либо тригонометрические функции. При этом мы видели, что в общем случае матрица коэффициентов А оказывалась заполненной, т.е. имела мало нулевых элементов и, тем самым, невыгодно отличалась от трех- диагональной матрицы коэффициентов, полученной в гл. 3 при использо- вании метода конечных разностей. В настоящем разделе мы будем исполь- зовать сплайн-функции, описанные в разделе 5.2, и покажем, что в простей- шем случае это нас снова приведет к трехдиагональной матрице коэф- фициентов. Так как в коэффициенты ati входят величины ^"(xf), необходимо, чтобы базисные функции имели вторую производную в узлах х(, ..., х„. Следовательно, линейные и квадратичные сплайны здесь оказываются недостаточными. Кубические же сплайны дважды дифференцируемы, и мы их первыми рассмотрим в качестве наших базисных функций. Нам надо будет выбрать базисные функции так, чтобы они были линейно неза- висимыми. Мы бы также хотели выбрать эти функции такими, чтобы ширина ленты матрицы коэффициентов А была как можно меньшей. Чтобы проиллюстрировать этот последний момент, давайте попытаемся сделать матрицу коэффициентов трехдиагональной. Иэ (5.4.5) видно, что если не накладывать на функции pnq никаких специальных ограничений, то этого можно добиться, если выбрать фу такими, что ^V/) = ^(x,)=sfj(xz) = O, |т-/|>1. (5.4.6) Этого, в свою очередь, можно добиться, если выбрать функции такими, чтобы они тождественно равнялись нулю вне отрезка [х{_2, х/+2] и чтобы выполнялись условия SPi(X«-2)=^(Xi-2)=^(^-2) = 0, <p'i (*i+2 ) = Ф/ (*i+2 ) = Й (*i+2 ) = О. 168
Вспомним теперь, что мы определили кубический сплайн условиями 5.2.8) и (5.2.9). Эти условия наряду с заданием значений функции в -злах х(,..., х„ дают 4л — 6 соотношений для 4л — 4 неизвестных коэфф- ициентов, определяющих единственный кубический сплайн. В разде- ie 5.2 мы использовали два дополнительных условия (5.2.13), которые >ыдел ял и естественный кубический сплайн. Однако этот естественный :убический сплайн не может удовлетворять условиям (5.4.6), если только >н не тождественно равен нулю. Если же не накладывать дополнительные -словия (5.2.13), то действительно можно построить кубический сплайн, 'дрвлетворяюший условиям (5.4.6). Можем выписать этот сплайн явно: —-(хх/_2)3, 4л 1 3 7 + ~(х-х'-«) + 4 4л 3 , 3 + —(х-*i-i) - —; (*-x/-i) > 4й2 4й3 1 3 7 + “(х'*» -х) + 4 4Л 3 , 3 + (*i+i -X)2 - -и(Х/+1 -х)3, 4h2 4й 1 -*) . 4й О, X/_j < х < xf, X/ < X < Х/+1, Х/+1 < X < Х1+2, при остальных х. (5.4.8) -ты здесь предполагаем, что узлы х(,..., х„ находятся на равном расстоя- нии h друг от друга. Можно непосредственно убедиться (см., упражне- тие 5.4.1), что функция (5.4.8) является кубическим сплайном, имеющим значения В,(Х/)=1. Bf(xi±i)=l/4 I равным нулю в других узлах. Кроме того, этот сплайн удовлетворяет словиям (5.4.6) и (5.4.7) (упражнение 5.4.1). Такую сплайн-функцию она изображена на рис. 5.4) называют кубическим базисным сплайном (ли, для краткости, кубическим В-сплайном. Такое название обусловлено _ем, что любой кубический сплайн на отрезке [в, Ь] может быть представ- ши как линейная комбинация Я-сплайнов. Более точно, имеет место сле- дующая теорема, которую мы приводим без доказательства. Теорема 5.4.1. Пусть С(х) — кубический сплайн для равноудален- ‘ых узлов X] < ... < х„. Тогда существуют константы Оо, а(, ..., ап+| акие, что С(х)=”£1а/В/(х). (5.4.9) 1~О 169
Обратите внимание, что используемые в (5.4.9) функции Во, Bt, В„ и Bn+i требуют введения вспомогательных точек сетки х.2, x_i,x0 ихл+1, Хц+2 » -*и+3- Теперь вернемся к краевой задаче (5.4.1), (5.4.2). По-прежнему предпо- лагаем, что узловые точки равноудалены и что х0 = 0,x„+t = 1. Мы бы хоте- ли, чтобы базисными функциями , <рп были В-сплайны Вх...., Вп. Но хотя В2, ..., В„_ । удовлетворяют нулевым граничным условиям, сплайны Bi и В„ не удовлетворяют этим условиям. Поэтому в качестве базисных функций берем Л (*) = Bi (х), I = 2.л - 1, (5 4 <Pi(x) = 4ZJI(x)~ В0(х). 1р„(х)=4В„(х)-Вя + , (х). Используя определение (5.4.8), легко проверить, что ^i(O) =^п(1) =0. Рис. 5.4. Кубический В-сплайн Более того, ясно, что любая линейная комбинация (5.4.3) является куби- ческим сплайном для узлов х0, х(, ..., хи+1 и удовлетворяет условиям u(0) =и(1) =0. Нам теперь нужно определить коэффициенты (5.4.5), а для этого нам потребуется вычислить значения В1гВ'{ и В? в узловых точках. Это легко делается (упражнение 5.4.2), и полученные результаты мы свели в табл. 5.1. Отметим, что согласно определению В{ все значения в узловых точках, которые не указаны в табл. 5.1, равны нулю. Отсюда, в частности, следует, что все коэффициенты ац в (5.4.5) равны нулю, за исключением случаев, когда |i -/| <1 и, возможно, i= 1 или i = n. При вычислении ненулевых коэффициентов в« будем пользоваться обозначениями p,=p(xf), р\ = = p'(xt) H4i = q(х,). Тогда, согласно (5.4.5) и табл. 5.1,имеем au = PiBi(xi)+p'iB'i(xi)+qlBi(Xi)= -3ptlh2 + <?,•. i = 2,-.. ,n - 1. «U+l =PiBi+1 (xt)+PiBi+i (Xii + qiBi+t (x,) = = 3pil(2h2) + 3pH(4h) + qtH, i - 1,..., n - 2, (5.4.11) fli,i-1 = PiB"_i (x,) +piB’i_ j (xf) + qiBt_i (xf) = = 3Pil(2h2 ) - 3p 'i/(4h) + q{/4, i= 3,... ,n. При вычислении остальных коэффициентов мы используем функции и ipn из (5.4.10) и получаем. вп =-27р,/(2Л2) + Зр'1/(4Л)+ 159i/4, а21 = Ьр2 !h2 - Зр?/й + q2, а„п = -21p„/(2h2)- 3p'nl(4h) + 15«„/4. (5 412) ви-1,я=6р„_1/й2 +3p'„!h 170
'аблица 5.1 В, 1/4 1 1/4 В'- 3/<2Л2) -3/Л’ 3/(2Л’) В} 3/(4Л) О -3/(4Л) координаты вектора правой части f системы (5.4.4) суть просто/(xi),... •, f(xn)- Таким образом, коэффициенты с(, ..., сп линейной комби- :ации (5.4.3) определяются из системы (5.4.4) с трехдиагональной матри- теи коэффициентов А, элементы которой находятся по формулам (5.4.11) : (5.4.12). Заметим, что в частном случае, когда р(х) = 1 и q (х) = О (т.е. уравнение «.4.1) есть поосто u"(x) -f (х) ), матрица коэффициентов А принимает вид 9 -1 -1 2 -1 -1 2 -4 -1 9 . I, за исключением множителя —3/(2А2)- и элементов первой и последней трок и первого и последнего столбцов, совпадает с матрицей коэффициен- та, полученной при использовании метода конечных разностей в раэ- 1еле 3.2. Можно показать, что если решение и уравнения (5.4.1) достаточно падкое, то описанный метод имеет ошибку дискретизации порядка Л2, е. того же порядка, что и метод конечных разностей раздела 3.2, исполь- сующий центральные разности. Больший порядок точности можно полу- •ить, используя сплайны более высокой степени. Так, например, с помощью плайнов пятой степени, т.е. функций, которые четыре раза непрерывно дифференцируемы и на каждом отрезке (xf, х/+1] являются полиномами 1ятой степени, можно получить четвертый порядок точности. Обратимся теперь к методу Галеркина. Мы по-прежнему будем стре- шться аппроксимировать решение задачи (5.4.1)—(5.4.2) линейной комби- (ацией вида (5.43), где коэффициенты Ci,..., сп будут теперь определять- я на основании критерия Галеркина, рассмотренного в разделе 5.1. Это (риводит нас к решению системы (5.4.4), где согласно (5.1.17) и (511.18) 1 1 = -f Pfx)*i(x)q>j(x)dx + f q(x)<pi(x)<pj(x)dx, i,j= 1,...,л, 0 0 (5.4.13) i fi = f f(x)<pt(x)dx, о (5.4.14) В качестве базисных функций мы снова будем использовать кусочные юлиномы. Давайте сначала как простейшую возможность рассмотрим 171
кусочно-линейные функции. Предполагая, как и раньше, что точки сетки 0 = хо, х...... х„, xn+1 = 1 находятся на одинаковом расстоянии h друг от друга, мы в качестве базисных функций (г = 1, л) возьмем функции (x-Xi_i)lh, -(x-xl+i)lh, О SPf(*) = X,_j < X < xf, X/< x< X/+1, при остальных x. (5.4.15) Вид этих конкретных кусочно-линейных функций, называемых функция- Рис. 5.5. Функция-крышка ми-крышками или линейными В-сплайнами, показан на рис. 5.5. Интуитив- но ясно, и это легко показать (упражнение 5.4.4), что любая кусочно-линей- ная функция, определенная на узлах х0, xt, ..., хл+] и обращающаяся в нуль в Хо и х„+1, может быть представлена как линейная комбинация функций It, . . . ,SP„. Мы теперь хотим использовать базисные функции (5.4.15) в методе Галеркина. На первый взгляд кажется, что это будет связано с трудностя- ми, поскольку в выражения (5.4.13) для ац входят производные кото- рые в точкахxt_\,xtinх/+1 несуществуют.Заметим,однако,что<p't — это просто кусочно-постоянная функция: л(*) = 1/Л, -1/Л, О Х,--1 < х< xf, х, < х< х/+1, при остальных х. (5.4.16) Эта функция имеет разрывы в точках xf_t, xt и х/+1,но это не влияет на результат интегрирования. Интегрирование в (5.4.13) можно проводить отдельно по каждому отрезку разбиения, получая п хк+1 ац= 2 f l-P(x)^(x)sP/(x) + «(x)sP,(x)^(x)] dx. (5.4.17) fc=° xk По определению функций <pt произведения <pt<pj и *Pi*Pf тождественно равны нулю, за исключением случая i — 1 < / < i + 1. Следовательно, в^- = 0, если |i—/|>1. (5.4.18) Для вычисления остальных коэффициентов ац мы сначала введем обозна- чения А = f P(x)dx, Qi= f ^(x)(x-x,_I)2dx, xi-i xi+i xi (5.4.19) Ris f <j(x)(x-Xi+t)2dx, Sf= f q(x)(x-xJ_1)(x-xj)dx, xi *i-i 172
4 заметим, что Л'/+1 1 xi 1 f P(x)f'i(x)>p'i(x)dx= f p(x)lp't(x)lp,i(x)dx=—Pi, xt Л A */+l 1 *i+l 1 f ₽(*)¥>/(*)Л+i (x)dx= - — F/+I, f q(x)lp,(x)lpi(x)dx = — Rt, xt h2 * Xf h* xi 1 xi 1 f « (x)<Pi(x) >Pi (x) dx = — Qj, f q (x) ! (x) (x)dx = - — Sf xi-i h xt-i Л Дедователыю, согласно (5.4.17), ан = -(Pi +Л+1 - Qi-Ri)lh2, i = 1,..., п, ai,i+i = (A+j — ^/+1)/Л2, i=l,...,n — 1, (5.4.20) “i-t-1 * (Pi- St)lh2, i=2,..., n. координаты вектора правой части системы (5.4.4) вычисляются по оормуле 1 xi fi =~ f f(x)(х -x{^i)dx + Л xt_t 1 X.+1 +— j f(x)(xi+l — x)dx, i=l,...,n. (5.4.21) Л Xj "аким образом, коэффициенты ct, .. .,c„ разложения (5.4.3) определяют- я из линейной системы (5.4.4) с трехдиагональной матрицей коэффициен- тов А, элементы которой задаются формулами (5.4.20), и вектором правой 'асти f, координаты которого задаются формулой (5.4.21). Отметим, что в частном случае, когда р(х) = 1 и q(x) = 0, все Q,, Rt и Ji равны нулю, аР,- =h. Следовательно, ан = -2/h, aiJ+l = 1 /Л, eu_i = 1/Л, 4 матоииа коэффициентов А есть просто 2-1 -1 2 -1 2 -I • -1 2_ •а исключением множителя Л-1, это в точности та же матрица, которая юзникала в гл. 3 при конечно-разностной аппроксимации уравнения =/• В предположении достаточной гладкости решения уравнения (5.4.1) ложно показать, что метод Галеркина с кусочно-линейными базисными ункциями (5.4.15) имеет второй порядок точности, т.е. ошибка дискре- мзации равна О(й2). Используя кубические сплайны, можно увеличить юрядок точности на два, т.е. сделать ошибку дискретизации равной О (Л4). 173
Мы закончим этот раздел примером применения метода коллокацит к решению краевой задачи и"(х) - Зи(х) = х1 + 10[и(х)]3, OCxCl, u(0)= v(l) = 0, (5.4.22 уже использовавшейся в разделе 4.4. Сначала мы рассмотрим это уравнение без нелинейного члена 10 и3, т.ь мы рассмотрим линейное уравнение ц"(х) — 3 ц(х) = х2, 0<,х< 1, i>(0) = v(l) = 0, (5.4.23 являющееся частным случаем (5.4.1) при р(х) = 1, <?(х) = — 3 и/(х) = х2 В качестве базисных функций в (5.4.3) мы выберем кубичен кие сплайны (5.4.10) с узлами x{ = ih (/=1, ..., п, й = 1/(и + 1)). Этт. сплайны определяются через ^-сплайны (5.4.8). Тогда, вычисляя по фог мулам (5.4.11) и (5.4.12) элементы ац матрицы коэффициентов Л сист» мы (5.4.4), получим ” 54+45Й2 — 6+Зй2 j -24 + 12Л2 12 + 12Л2 —6+Зй2 А =------- 4й2 , , 12 + 12Й2 -24+12Й2 —6 + Зй2 54+45Й2 Таким образом, в случае линейной задачи (5.4.23) нам бы пришлось решат систему линейных уравнений с матрицей коэффициентов (5.4.24) е /= (/(X,),... ,/(хя)) = й2(12,22,32,..., л2). (5.4.25 В случае нелинейной задачи (5.4.22) мы должны добавить к систем^ А с = f вектор нелинейных членов 10{[ S с7^(Х|)]3, [ S c ty(x2)]3,...,[ S с.л(хя)]3}. (5.4.26' /=1 ' f = i ' ' j=i ' ’ Значения </>7-(х() определяются формулами (5.4.10) и из табл. 5.1 кат V>1(xI)=4e1(x1)-B0(r1)=15/4, \ ^(xi)=L « = 2,...,п-1, 'Pnixn)~ 4Вя(хя) — Вп+1(х„) = 15/4, </>1(х2) = 4В1(Х2)-В0(Х2) = 1, 1/4, т=3.....п, <ft+i(*l)=l/4. *Рп (хп-1) ~ (хя _ j ) — вп+1 (хя_ 1) = 1 и ^/(хт) = 0в остальных случаях. Подставляя эти значения ^7-(xf) в (5.4.26, приходим к системе уравнений -Лс+/+Я(с) = Г(с)=0, (5.4.27 174
де (15с1 + с2)3 (4ci + 4с2 + с3)3 ю («-2 +4с3 +с4)3 Я(с) = — 64 q (G>-3 +4с„_2 + cn-i) (сп-2 +4с„_1 +4с„)3 _ (Сп— 1 "* 15 сп) 1 Ли f определены в (5.4.24) и (5.4.25). Систему (5.4.27) мы будем решать методом Ньютона. Матрица Якоби .-той системы есть F'(c) = — А + Н'(с), где две первые и две последние троки Я’(с) без множителя 15/32 имеют вид 15(15ci + с2)2 (15с2 + с2)2 О О .... О 4(4cj +4с2 + с3)2 4(4ci +4с2 +с3)2 (4сi +4с2 +с3)2 О ... О О ... О (с„_2 +4с„_! +4с„)2 4(с„_2 +4с„_! + 4с„)2 4(с„-2 +4cn_! +4с„)2 О ...О (cn_i + 15си)2 15(с„_ 1 + 15си)2, ; остальные строки (/ = 3, ..., п — 2), также без множителя 15/32, имеют )ИД О ... О (<•,-_! +4С/ +с,+1)2 4(с1_1 +4с,- +с,-+1)2 (c,_i +4с/+с1+1)2 0 ... О. )тметим, что матрицы Я'(с) и —А являются трехдиагональными и диаго- галыю доминирующими по столбцам. Поэтому возникающие при приме- нении метода Ньютона линейные системы F'(ck)ck+i =F'(ck)ck -F(ck) южно решать, используя алгоритм гауссова исключения без перестановок. В табл. 5.2 приведены результаты расчетов при h = 0,01 (и = 99). Видно, то вычисленное решение совпадает с точностью до нескольких единиц юследнего показанного в таблице разряда с решением, которое было юлучено в гл. 3 по методу конечных разностей (см. табл. 43). Таблица 5.2 Решение уравнении (5.4.22) по методу коллокации с помощью кубических сплай- нов (й = 0,01) X и(х) X "Ы 1 Л и(л) 0,1 -0,0059 0,4 -0,0229 0,7 -0,0307 0,2 -0,0116 0,5 -0,0278 0,8 -0,0268 0,3 -0,0176 0,6 -0,0306 0.9 -0,0172 175
Сравним теперь три рассмотренных нами метода решения двухточечных краевых задач: метод конечных разностей, метод коллокации и метод Галеркина. Метод конечных разностей идейно прост, легко реализуем и, как было показано в гл. 3, при использовании центральных разностей дает второй порядок точности. Метод коллокации с кубическими сплайна- ми несколько более труден для реализации, но все же его можно считать относительно простым. В методе же Галеркина приходится вычислять интегралы (5.4.19) и (5.4.21), что в общем случае требует использования схем численного интегрирования или систем символьных вычислений. Во всех трех случаях система линейных уравнений, к которой сводится реше- ние задачи, имеет трехдиагональную матрицу коэффициентов (при указан- ных выше системах базисных функций). Для всех трех случаев имеются варианты с более высокой точностью, которые, естественно, оказываются более сложными. Пожалуй, правильно будет сказать, что для обыкновен- ных дифференциальных уравнений простота конечно-разностных методов делает их в большинстве случаев предпочтительными. Действительная мощь метода Галеркина становится более очевидной в случае уравнений в част- ных производных. Дополнительные замечания и ссылки 5.4 Для дальнейшего изучения тематики этого раздела можно рекомендовать книги [16,59]. В них также имеется доказательство теоремы 5.4.1. Подробное рассмотрение метода Галеркина можно найти также в книге [76]. При использовании метода коллокации и метода Галеркина за счет специального выбора узловых точек х,, ... ,х„ можно добиться значительного увеличения порядка точности этих методов. УПРАЖНЕНИЯ 5.4 5Л.1. Покажите, что функция, определенная формулой (5.4.8), является кубичес- ким сплайном и удовлетворяет условиям (5.4.6) и (5.4.7). 5.4.2. Покажите, что значения функций В(,В'г и В'- в точках х,-_р х{, х(-+1 такие, как указано в табл. 5.1. 5.4.3. Рассмотрите двухточечную краевую задачу (1 + х’ ) и" + 2хv' + v = хг, и(0) = = 0, и(1) = 0. а) Пусть h = 1/4. Вычислите коэффициенты ау по формулам (5.4.11) и (5.4.12) и выпишите полную систему линейных уравнений (5.4.4). Проверьте, будет ли матрица коэффициентов симметричной и диагонально доминирующей. Решите систему и представьте приближенное решение в форме (5.4.3) с базисными функ- циями, задаваемыми формулами (5.4.10). б) Повторите задание пункта а для метода Галеркина с базисными функциями (5.4.15). 5.4.4. Пусть/(х) - кусочно-линейная функция с узлами Xj = ih (f = 0,1.и+1, й = (и + 1) ’*) .обращающаяся в нульв х0 и х„+1. Покажите, что существуют константы и а,,..., ап такие, что f (х) = S а^Дх), где ^определены в (5.4.15). 1=1 5.4.5. Проведя намеченные в тексте вычисления, найдите решение краевой задачи (5.4.22) методом коллокации и проверьте результаты, приведенные в табл. 5.2. Про- делайте эти вычисления также при й = 0,1 и й = 0,02. Какова, по вашему мнению, ошибка дискретизации полученного решения? Выполните это задание снова, используя метод Галеркина с кусочно-линейными базисными функциями.
Глава 6 П ВАЖНЫХ ЧИСЕЛ: ВЫЧИСЛЕНИЕ СОБСТВЕННЫХ ЗНАЧЕНИЙ 6.1. Примеры задач на собственные значения и необходимые математические сведения В этой главе мы остановимся на вопросах численного решения задач на собственные значения. Такие задачи часто возникают в физике, технике, химии, экономике, демографии и других областях. В этом разделе мы рас- смотрим несколько примеров таких задач, классифицируем различные типы задач на собственные значения и приведем некоторые математичес- кие сведения, которые дополняют результаты, данные в приложении 3. Под стандартной матричной проблемой собственных значений мы пони- маем задачу отыскания комплексных (вещественных или невещественных) чисел X», Х2,..., Хл и соответствующих ненулевых векторовх....,хл, удовлетворяющих уравнению Лх = Хх, (6.1.1) где А — заданная комплексная (вещественная или невещественная) мат- рица размера п X п. Как сказано в приложении 3, решения Xj,..., Хл урав- нения (6.1.1) являются корнями характеристического уравнения det (А — - X/) = О. Левая часть этого уравнения есть полином степени п по X, и, следовательно, характеристическое уравнение имеет ровно п корней с уче- том их кратности. Если собственное значение X/найдено, то соответствую- щий собственный вектор можно, в принципе, определить как решение однородной системы уравнений (Л-Х,/)х=б. (6.1.2) Подчеркнем, что если даже матрица А вещественна, ее собственные значе- ния (все или некоторые), а следовательно, и собственные векторы, могут быть невещественными. Приведенная математическая схема — составить характеристический полином, найти его корни и решить однородную систему (6.1.2) — за исключением самых тривиальных случаев непригодна в качестве вычис- лительной процедуры для решения практических задач. Основная цель этой главы состоит в изложении других ’’жизнеспособных” численных методов. Как первый пример возникновения задачи на собственные значения рас- смотрим систему п обыкновенных дифференциальных уравнений dy ~ = Ау, (6.1.3) dt где Л - заданная постоянная матрица размера п X п. Будем искать решение (6.13) в виде у(0 = е*'х, 12. Дж. Ортега (6.1.4) 177
где х — некоторый ненулевой постоянный вектор, а А - некоторый пара- метр. Чтобы вектор-функция (6.1.4) удовлетворяла системе (6.1.3), должно выполняться соотношение dy — = XeXrx = A(eXtx) dt или, так как eKt всегда отлично от нуля и х =# О, то Ах = Ах. Таким об- разом, (6.1.4) будет решением (6.1.3) в том и только том случае, если А — собственное значение, ах- соответствующий собственный вектор матрицы А. Важный класс матриц образуют такие матрицы, которые имеют л линейно независимых собственных векторов (определение линейной независимости смотрите в теореме А. 3.1 приложения 3). Пусть матрица Л принадлежит этому классу и пусть Ai, ..., А„ и Xi, ..., хп — собственные значения и соответствующие собственные векторы этой матрицы. Тогда функции Ji(O = еХ' ‘xt, уг(!) = ех’ ‘х2,.., ,j„(r) = ex"fx„ (6.1.5) образуют полный набор линейно независимых решений дифференциаль- ного уравнения (6.1.3), и любое решение (6.13) может быть представлено при соответствующем выборе постоянных q ,..., ся в виде y(t)= S <7Л(0 = S c,-ex'rxf. (6.1.6) i=l i=l Таким образом, общее решение уравнения (6.1.3) может быть найдено в результате решения проблемы собственных значений для матрицы А. В случае, когда матрица А не имеет п линейно независимых собственных векторов, может быть получено сходное, но более сложное представление решения. Мы теперь обсудим более подробно свойства матрицы обладать п линей- но независимыми собственными векторами. Как сказано в приложении 3, преобразование подобия для матрицы А имеет вид РАР"Х, где Р — произ- вольная невырожденная матрица. Преобразование подобия возникает нз замены переменных: рассмотрим систему уравнений Ах = b и сделаем за- мену переменных у = Рх, с = РЬ, где Р — невырожденная матрица. В новых переменных система уравнений примет вид АР~1 у = Р~хс или, после ум- ножения на Р, РАР-'у = с. Таким образом, матрица коэффициентов сис- темы в новых переменных есть матрица РАР~', полученная преобразова- нием подобия из матрицы А. Важным свойством преобразования подобия является то, что оно сох- раняет собственные значения, т.е. матрицы А и РАР~Х имеют^одни и те же собственные значения. Это легко видно из рассмотрения характеристичес- кого полинома и того факта, что определитель произведения матриц равен произведению определителей. Действительно, det (Л - A/) = det(PP_,)det(4 - А/) = = detPdet(H - AZ) det Р’1 =det(P4P-’ - А/), откуда видно, что характеристические полиномы, а, следовательно, и собственные значения матриц А и РАР~Х совпадают. Однако собственные векторы при преобразовании подобия изменяются. Действительно, из 178
равенства РАР~'у = или AP~ly = ХР-1 у, видно, что собственный вектор у матрицы РАР"1 связан с собственным вектором х матрицы Л соотношением P~ly =xwmy = Рх. Существенным является вопрос, к насколько ’’простому” виду можно привести матрицу А с помощью преобразования подобия. Основным в этом отношении является следующий результат, который возвращает нас к линейной независимости собственных векторов. Теорема 6.1.1. Матрица А подобна диагональной матрице в том и только том случае, если она имеет п линейно независимых собственных векторов. Эта теорема имеет простое и наглядное доказательство. Пусть xt, . . . ..., хп — п линейно независимых собственных векторов матрицы А, соот- ветствующих собственным значениям Xj, ..., Х„,и пусть Р — матрица, по столбцам которой стоят х1, ..., хп. Матрица Р будет невырожденной, так как ее столбцы линейно независимы. Используя для каждого столбца Р основное определение Лх;- = Х(х/., имеем АР=Л(х,,х2,... ,х„) = (XjXi,... Х„х„)=PD, (6.1.7) где©- диагональная матрица: 1 D = - Так как (6.1.7) эквивалентно соотношению Л = PDP~l, мы видим, что матрица Л подобна диагональной матрице, у которой на диагонали стоят собственные значения А. Обратно, если матрица Л подобна диагональной марице, то из (6.1.7) следует, что столбцы матрицы подобия Р являются собственными векторами Л и что в силу невырожденности Р они линейно независимы. Ниже приводятся два важных частных случая предыдущей теоремы. Теорема 6.1.2. Если все собственные значения матрицы А различны, то она подобна диагональной матрице. Теорема 6Л.З.ЕслиА —вещественная симметричная матрица (т.е. А = = Л7), го она подобна диагональной матрице, причем матрица подобия может быть взята ортогональной (т.е. РРТ = Г). Не будем здесь доказывать эти результаты, а только отметим, что сим- метричные матрицы чрезвычайно важны для приложений и их собственные значения обладают многими замечательными свойствами. В частности, собственные значения вещественной симметричной матрицы всегда вещест- венны, и если при этом матрица положительно определена (т.е. хтАх > О для всех ненулевых векторов х), то ее собственные значения положительны. Из теоремы 6.1.2 следует, что если матрица Л не обладает п линейно независимыми собственными векторами, то она обязательно имеет кратные собственные значения. (Обратное, однако, неверно: матрица может иметь кратные собственные значения и все же обладать п линейно независимыми собственными векторами; таким примером может служить единичная матрица.) 12* 179
Матрица 1 1 О 1 (6.1.8) дает простой пример матрицы, которая не имеет двух линейно независи- мых собственных векторов (см. упражнение 6.1.4) и не является подобной диагональной матрице. В общем случае с помощью преобразования подобия матрица может быть приведена к следующей наиболее близкой к диаго- нальной форме: X, «! О . . . О о О Xj 5 2 • О Хл_1 Sn-i _ о . . . о х„ Здесь X; — собственные значения А, a 8f равны либо 1, либо О; предполага- ется, что если 6,- отлично от нуля, то X,- и Х| + । равны. Можно показать, что матрица А имеет п - q линейно независимых собственных векторов, где q — число ненулевых 8,-. Таким образом, матрица J может быть раз- бита на клетки: (6-1.9) где р - число линейно независимых собственных векторов, и каждая клет- ка J,- есть матрица вида Xf 1 с одинаковыми собственными значениями и единицами над главной диа- гональю. Матрицу (6.1.9) называют канонической жордановой формой матрицы А. Отметим, что если А имеет л линейно независимых собственных векторов, то р - п, каждая клетка имеет размер 1 X 1 и матрица J стано- вится диагональной. Для многих вычислительных целей оказывается очень желательным иметь дело с ортогональными или унитарными матрицами. (Комплексная матрица U называется унитарной, если она удовлетворяет соотношению U*U = I, где U* — матрица, сопряженная к U, т.е. матрица, получающаяся иэ U заменой элементов на комплексно-сопряженные и последующим транспонированием, I — единичная матрица. Вещественная унитарная мат- рица является ортогональной.) Ниже мы формулируем без доказательства два основных результата о преобразованиях с унитарными матрицами. 180
Теорема Шура. Для любой матрицы А размера п X п сущест- вует 'унитарная матрица U такая, что матрица UAU* является треу- гольной. Сингулярное разложение. Для любой матрицы А размера п X п существуют унитарные матрицы Uu V такие, что матрица UAV явля- ется диагональной. В случае теоремы Шура матрица UAU* является результатом преобра- зования подобия, и, следовательно, на диагонали этой треугольной матрицы стоят собственные значения матрицы А. В случае сингулярного разложения матрица UA V уже не будет подобна Л, за исключением специального случая, когда U = И*, и диагональные элементы этой диагональной матрицы не обязательно будут собственными значениями матрицы А. Оказывается, что числа на диагонали являются квадратными корнями из собствен- ных значений матрицы А ТА. (Если А вещественна, то матрица А ТА всегда является симметричной и положительно полуопределенной,т.е.хгЛ тАх> О для всех вещественных векторов х, и, следовательно, все собственные значения А ТА вещественны и неотрицательны.) В дальнейшем мы не будем рассматривать зти числа, а только отметим, что они называются сингуляр- ными значениями матрицы А и играют важную роль во многих статисти- ческих и вычислительных задачах. Мы теперь перейдем к дальнейшим примерам задач на собственные значения. Эти задачи тоже связаны с дифференциальными уравнениями, но возникают иным образом, чем в приведенном ранее примере. Как мы увидим в разделе 7.1, задача о колебании струны в некоторых простых случаях сводится к обыкновенному дифференциальному уравнению у”(х) = Ху(х), у(0) = О, у(1) = 0. (6.1.10) Задача здесь состоит в отыскании таких значений скалярного параметра X, при которых уравнение (6.1.10) имеет ненулевые решения, удовлетворяю- щие заданным нулевым граничным условиям. Эти значения также называ- ются собственными значениями, а соответствующие решения — собствен- ными функциями. Эта особенно простая задача может быть решена явно. Как легко проверить непосредственной подстановкой в (6.1.10), здесь имеется бесконечное множество собственных значений и соответствующих собственных функций, определяемых формулами X* = -й2тг2, у^(х) = sin km, k = 1,2,... (6.1.11) Предположим теперь, что в уравнение (6.1.10) переду добавлен мно- житель, зависящий от х, т.е. /'(*) = ХС(х)у(х), у(0) = 0, у(1) = 0, (6.1.12) где С(х) - заданная положительная функция. В общем случае для этой за- дачи уже нельзя найти явное выражение для собственных значений и соб- ственных функций, но их можно аппроксимировать численно с помощью следующей процедуры. Точно так же, как при решении краевых задач в гл. 3, мы можем ввести на отрезке [0, 1] дискретную сетку xf = - ih (i = 0, 1, ..., п + 1), h = 1/(л + 1), и заменить вторую производную в (6.1.12) соответствующим разностным отношением. В результате 181
получаем дискретную систему уравнений 0-1 + 1 - 2j>,+>’/_ 0/Л2 = АС,-.у1( /=1,...,л, (6.1.13) где Ct = С(х,), у о = уп +1 = О и у,- есть приближение к у(х/). Уравнения (6.1.13) представляют матричную проблему собственных зна- чений. Если ввести матрицы (6.1.14) то (6.1.13) можно переписать в матрично-векторной форме как Ау = ХВу. (6.1.15) Это пример так называемой обобщенной проблемы собственных значений, в которой матрица В в правой части уравнения не является единичной. Конечно, если матрица В невырождена, то умножением слева на В~' урав- нение (6.1.15) можно преобразовать к стандартной проблеме собственных значений. В большинстве случаев, однако, преобразования такого типа оказываются нежелательными. Кроме того, так как матрицыЛ и В являются разреженными, т.е. содер- жат мало ненулевых элементов, (6.1.15) дает пример проблемы собствен- ных значений для разреженных матриц. Давайте теперь вернемся к системе обыкновенных дифференциальных уравнений (6.1.3). Важной характеристикой этой системы является ответ на вопрос, все ли ее решения асимптотически устойчивы, т.е. стремятся ли все ее решения к нулю при стремлении t к бесконечности. Предположим опять, что матрица А имеет п линейно независимых собственных векторов. Тогда любое решение может быть представлено в виде (6-1.6) и, следова- тельно, каждое решение будет стремиться к нулю при t -*•«» в том и только том случае, когда стремятся к нулю все решения (6.1.5). Так как векторы х, не зависят от t, это будет тогда и только тогда, если каждая функция ex'f будет стремиться к нулю при t -*°°. Для вещественных X, это экви- валентно условиям X,- < 0, а для комплексных X,- - условиям Re (X/) <0 (здесь Re(Xf) — вещественная часть X/). Таким образом, все решения (6.1.3) устойчивы в том и только том случае, если Re(X,)<0, (6.1.16) Во многих ситуациях оказывается достаточным знать, устойчивы ли все решения системы, и вовсе не требуется находить какие-либо конкретные решения. В таких случаях достаточно вычислить собственные значения с такой точностью, чтобы можно было проверить, выполняются ли условия (6.1.16). Мы вскоре вернемся к этому вопросу. В противоположность дифференциальным уравнениям, в ряде дисциплин возникают аналогичные задачи определения асимптотической устойчивости решений разностных уравнений. Мы опишем одну такую задачу из области 182
демографии, относящуюся к прогнозу численности населения. Зная распре деление населения по возрастам в настоящий момент, что можно сказать о юведении этого распределения в будущем? В нашей конкретной модели ,1Ы сознательно делаем целый ряд допущений и упрощений,- но она, тем ие .юнее, является достаточно характерной для математических моделей щнамики популяции. В этой демографической модели время считается дискретным и раз- бивается на единичные Периоды, скажем, пять лет каждый, мужчины игно- >ируются, .а женщины считаются разделенными на возрастные группы, гоичем интервал возрастов в каждой группе равен той же единице времени. 1усть число женщин в возрастной группе i (i = 1,..., п) в некото- рый начальный момент времени г = О и пусть pfk>— число женщин в воз- астной группе i через к единиц времени. Тогда вектор р(*> = (й<*)...р«>) тудет представлять распределение женщин по возрастам (группа и, стар- шая группа, будет включать всех женщин старше определенного возраста). Пусть далее bt nd, —соответственно норма рождаемости девочек и нор- де смертности для возрастной группы i. Эти параметры можно аппрокси- мировать, исходя из данных переписи. Считая эти нормы постоянными, выясним, как будет изменяться популяция с течением времени. Число новорожденных девочек к моменту к + 1 будет равняться сумме юждений девочек в каждой возрастной группе за период к, т.е. р(* + 1) = X bjp^X аналогично, число женщин в группе i к моменту к + 1 будет p<k + 1) =(1 »“2,...,л —1, .е. равно числу женщин из группы i - 1 к моменту к, которые не умерли а период к. Для случая i = п требуется особое уравнение, так как в эту оуппу попадают прожившие период к женщины из групп п — 1 и п. Таким образом, Р(* + 1) = (1 -d„_l)p^21 +(1 -djp™. Для представления этих соотношений очень удобными оказываются мат- ричные обозначения. Если ввести матрицу bi !>г . - . bn_i Ь„ 1-djO ... О О О’ 1 — d2 . . . О О О 1 -dn-i 1 — d„ (6.1.17) о все и уравнений можно записать в виде р(* + 1)=Лр(к). (6.1.18) Предположим теперь, что демограф интересуется поведением р^ с величением к. Будем снова считать, что матрица А имеет п линейно неза- 183
висимых собственных векторов xlt ... ,хп, соответствующих 'собственным значениям Xj, ..., Х„. Так как векторы xz линейно независимы, то любой вектор можно представить как линейную комбинацию этих собственных векторов. В частности, при некоторых значениях ct, ..., сп имеет место Р(О)=С!Х1 +...+с„х„. (6.1.19) Тогда, так как Лх,- = Х,х/, мы имеем р(,)=Лр<0) = С1Х1х1 + ... + с„Хях„, p(2)=4p(,) = CiX12Xi + ... + с„Х2 х„, (6.1.20) р<*)=Лр(*-1) = с1Х1*Х1 + ... + с„Х*х„ . Иэ представления (6.1.20) ужеможно получить определенную качествен- ную ин^юрмацию о поведении популяции. Пустьр=р(Л) = max I X, | - 1=1.........................................................п спектральный радиус матрицы А. Ясно, что если р< 1, то численность по- пуляции будет стремиться к нулю при стремлении к к бесконечности. В то же время, если р > 1, то популяция будет неограниченно расти. Если это единственная информация, которую мы хотели бы получить, то нам только необходимо вычислить собственные значения с такой точностью, которая позволяет установить, будет ли р < 1 или р > 1. Мы можем суммировать предыдущие теоретико-матричные результаты в виде следующей важной теоремы, которая окажется, полезной в гл. 8 при изучении итерационных методов. Мы только наметили доказательство этой теоремы в случае, когда матрица А имеет и линейно независимых собственных векторов, но она справедлива и в общем случае. Теорема 6.1.4. Если спектральный радиус р(А) матрицы А удовлет- воряет условию р(А) < 1, то любая последовательность векторов (х(*>) такая, что х(* + 1)=Лх(*), * = 0,1,..., (6.1.21) сходится к нулю, т.е. х^ ->0 при к -»<». Обратно, если р(А) > 1, то су- ществует по крайней мере одна последовательность векторов {х^} .удов- летворяющая (6.1.21),для которой ||х^ || -►«*» при к^-°°. С помощью так называемых теорем локализации иногда удается очень просто получить грубые оценки расположения собственных значений. Мы сейчас рассмотрим самый знаменитый из таких результатов, теорему Г ерш горин а. Пусть А = (ац ) — вещественная или комплексная матрица размера rt X п и пусть п rt = Е |ef/|, /=1,...,и, / = 1 / * I т.е. rt равно сумме абсолютных величин внедиагональных элементов i-й строки матрицы А. Определим теперь на комплексной плоскости круги с центрами в atl и радиусами г (•. Л, = {z: |z-ew| < п}, i=l,...,n. Тогда имеет место следующее утверждение. 184
Теорема 6.1.5 (теорема Гершгорина). Все собственные значения матрицы А лежат в объединении кругов At,..., Л„. Как простой пример использования теоремы Гершгорина рассмотрим матрицу -2 4 1 2 2 -10 J круги Гершгорина которой показаны на рис. 6.1. Мы сразу можем заклю- чить, что все собственные значения матрицы А имеют отрицательные Рис. 6.1. Круги Гершгорина на комплексной плоскости вещественные части. Следовательно, если бы матрица А была матрицей коэффициентов системы дифференциальных уравнений (6.1.3), то все ре шения этой системы были бы асимптотически устойчивы. Точно так же мы можем сразу заключить, что все собственные значения матрицы А по абсолютной величине меньше 1, так что для любого /><0) векторы , определяемые соотношением р(*> = Л=1,2,..., стремятся к нулю при к . Теорема Гершгорина доказывается очень просто. Пусть X — какое-либо собственное значение матрицы А и х — соответствующий собственный вектор. Тогда по определению п (K-att)xt = Е OijXj, i=l.........п. / = i Пусть, далее, Хк — наибольшая по абсолютной величине координата векто- ра х. Тогда " I*/| " I х - Ukk I < S I Okf I ---- < s I Okf I, у = 1 I-К* I /= 1 j*к к так что X лежит в круге с центром в а к к • 185
внсимых собственных векторов Xj,..., хп, соответствующих 'собственным значениям Xj, ..., Х„. Так как векторы xz линейно независимы, то любой вектор можно представить как линейную комбинацию этих собственных векторов. В частности, при некоторых значениях сх, ..., сп имеет место p(0) = CjXi+... + с„х„. (6.1.19) Тогда, так как Лх, = Х,х/, мы имеем р(,)=Лр<0) = С1Х1х1 + ... + спХ„х„, Р(2) = Лр(1) = ci Xi’xi +... + с„Х2 х„, (6.1.20) р(*)=Лр(*-1) = с1Х1*Х1 + ... + с„Х*х„. Из представления (6.1.20) уже можно получить определенную качествен- ную ин^юрмацию о поведении популяции. Пустьр=р(А) = max I X, | - 1=1.........................................................п спектральный радиус матрицы А. Ясно, что если р< 1, то численность по- пуляции будет стремиться к нулю при стремлении к к бесконечности. В то же время, если р > 1, то популяция будет неограниченно расти. Если зто единственная информация, которую мы хотели бы получить, то нам только необходимо вычислить собственные значения с такой точностью, которая позволяет установить, будет ли р < 1 или р > 1. Мы можем суммировать предыдущие теоретико-матричные результаты в виде следующей важной теоремы, которая окажется, полезной в гл. 8 при изучении итерационных методов. Мы только наметили доказательство этой теоремы в случае, когда матрица А имеет и линейно независимых собственных векторов, но она справедлива и в общем случае. Теорема 6.1.4. Если спектральный радиус Р(А) матрицы А удовлет- воряет условию р(А) < 1, то любая последовательность векторов (х(*>) такая, что х(*+1)=Лх(*), * = 0,1,..., (6.1.21) сходится к нулю, т.е. х^ ->0 при к -»<». Обратно, если р(А) > 1, то су- ществует по крайней мере одна последовательность векторов {х^} .удов- летворяющая (6.1.21),для которой ||х^ || -►«*» при к->°°. С помощью так называемых теорем локализации иногда удается очень просто получить грубые оценки расположения собственных значений. Мы сейчас рассмотрим самый знаменитый из таких результатов, теорему Гершгорина. Пусть А = (д,; ) — вещественная или комплексная матрица размера rt X п и пусть п ri = S |А#|, I = / = 1 / * I т.е. rt равно сумме абсолютных величин внедиагональных элементов i-й строки матрицы А. Определим теперь на комплексной плоскости круги с центрами в ац и радиусами rt -. A, ={z: Iz-anl < г,}. i=l,...,n. Тогда имеет место следующее утверждение. 184
Теорема 6.1.5 (теорема Гершгорина). Все собственные значения матрицы А лежат в объединении кругов Л],..., Лп. Как простой пример использования теоремы Гершгорина рассмотрим матрицу 4 2 2 -10 J круги Гершгорина которой показаны на рис. 6.1. Мы сразу можем заклю- чить, что все собственные значения матрицы А имеют отрицательные Рис. 6.1. Круги Гершгорина на комплексной плоскости вещественные части. Следовательно, если бы матрица А была матрицей коэффициентов системы дифференциальных уравнений (6.1.3), то все ре шения этой системы были бы асимптотически устойчивы. Точно так же мы можем сразу заключить, что все собственные значения матрицы А по абсолютной величине меньше 1, так что для любого векторы р^, определяемые соотношением р(*> = Ap<k~l\ А = 1,2,..., стремятся к нулю при к -*•«*». Теорема Гершгорина доказывается очень просто. Пусть X — какое-либо собственное значение матрицы А и х - соответствующий собственный вектор. Тогда по определению п (Х-арУх,- Ъ ацхь i=l.........п. / = 1 / * I Пусть, далее, Хк — наибольшая по абсолютной величине координата векто- ра х. Тогда п X - Ukk 1 < S 1 akj 1 |Х/ 1 п < 2 1 akj |, i = I 1 хк I / = 1 /* * /* * так что X лежит в круге с центром в а кк • 185
Другое важное применение теорема Гершгорина находит при анализе изменения собственных значений матрицы, обусловленного изменением ее элементов. Пусть А — заданная матрица размера я X п с собственными зна- чениями Xi, .... Хп и пусть Е — матрица, элементы которой в некотором смысле малы по сравнению с элементами матрицы А. Например, элемента- ми Е могут быть ошибки округления, допускаемые при вводе матрицы А в память ЭВМ. Пусть ......рп — собственные значения матрицы А + Е. Что тогда можно сказать о величинах | X/ — Д/1 ? Мы сейчас приведем один относительно простой результат для случая, когда матрица А имеет я ли- нейно независимых собственных векторов. Напомним (см. приложение 3), что под нормой матрицы с индексом 00 мы понимаем просто максимум из сумм абсолютных величин элементов каждой строки. Теорема 6.1.6. Предположим, что А = PDP~', где D - диагональная матрица из собственных значений А, и пусть d = \\Р~1ЕР || . Тогда каждое собственное значение матрицы А + Е удалено от некоторого собственного значения матрицы А не более чем на d. Эта теорема является простым следствием теоремы Гершгорина. Поло- жим С = Р~* (А + Е)Р. Матрица С имеет те же собственные значения р 1, ..., р п, что и А + Е. Пусть В = Р~1 ЕР. Тоща С = D + В, и диагональные элементы С суть X/ +&» (i = 1,.... и). Следовательно, по теореме Гершго- рина собственные значения ,..., д „ лежат в объединении кругов {z: |z —Xj-ii/l < X /= » /* i так что для любого д* найдется i такое, что I Рк - X,- - Ъц | < S I Ъц |, / = » / * i ИЛИ 1д*-Х,| < 2 |Ь/У | <d, /= » что и требовалось доказать. Подчеркнем, что величина d не обязана быть малой даже при малости || Е || ; это еще зависит от матрицы Р. В общем случае чем хуже обуслов- лена матрица Р (в смысле гл. 3), тем хуже обусловлены собственные значе- ния А, т.е. тем большее изменение собственных значений могут вызвать малые изменения элементов А. Ниже приводится простой иллюстративный пример. Пусть Г 1 1 1 Г 1 1 I I А + Е = I I о 1 + ю-10 Г I io-10 1 + io-10 Матрица А имеет собственные значения 1 и 1 + 10"’°, а собственные значе- 186
ния А + Е приблизительно равны 1 ± 10-s. Таким образом, изменение одного элемента матрицы А на 10"10 приводит к в 10s раз большему изме- нению собственных значений. Это вызвано тем, что матрица Р, столбцами которой являются собственные векторы А, очень плохо обусловлена. Легко проверить, что Г 1 1 1 Г 1 -1О10 1 Р = ’ Р L о ю-10 J I о io’0 Г Следовательно, матрица Р~ХЕР из теоремы 6.1.6 есть и, таким образом, d = \\Р~ХЕР || ^ =2. Обратите внимание, что фактическое изменение собственных значений намного меньше этой оценки. Интересным и важным фактом является то, что собственные значения симметричной матрицы всегда хорошо обусловлены. Это утверждение можно рассматривать как интерпретацию следующей теоремы, которую мы приводим без доказательства. Теорема 6.1.7. Пусть А и В - вещественные симметричные матрицы размера пХпс собственными значениями Х(......Хи и щ ,..., р„ соответ- ственно. Тогда для каждого р, найдется такое X t, что |X,-P/| < || А - В ||2. Отметим, что в этой теореме используется евклидова норма матрицы (см. приложение 3), так что этот результат не следует непосредственно из теоремы 6.1.6. В этом разделе мы привели несколько примеров задач на собственные значения и сообщили ряд относящихся к этой проблеме математических результатов. В остальной части этой главы мы познакомимся с основами различных методов вычисления собственных значений и собственных векторов. Дополнительные замечания и ссылки 6.1 Дальнейшее обсуждение использования собственных значений при решении обык- новенных дифференциальных уравнений можно найти в большинстве элементарных учебников по дифференциальным уравнениям. Математическому изучению динамики популяций посвящена обширная литература, большая часть которой не имеет отноше- ния к собственным знаиениям. Обзорный материал по этой тематике имеется в книгах [29,98]. Подробное изложение теоретических результатов по проблеме собственных значе- ний в форме, наиболее подходящей для рассмотрения вопросов численного анализа, можно найти в книге [84] (см. также [56,78,91]). Основная теорема 6.1.4 фактически справедлива, когда степени матрицы А -стре- мятся к нулю. Формулу (6.1.21) можно переписать в виде Отсюда ясно, что х -» 0 при к -» ~ для любого х тогда и только тогда, когда Ак -► 0 при к -» -». Сходимость степеней матрицы А можно, в принципе, исследовать с по- 187
мощью канонической жордановой формы. Действительно, если А = PJP~*, то Ак = PJkP~1, и Ак -* 0 при к -» о» в том и только том случае, если Jk -»0 при к . Если матрица J диагональна, то исследование тривиально. В противном случае необ- ходимо проанализировать поведение степеней жордановых клеток. Легко пока- зать, что Отсюда видно, что эти степени стремятся к нулю тогда и только тогда, когда IXI < 1. УПРАЖНЕНИЯ 6.1 6.1.1. Составьте характеристическое уравнение для матрицы г г —1 Л = L -1 2 т.е. вычислите [2-Х -1 -1 2-Х Найдите собственные значения А как корни этого полинома и затем вычислите соот- ветствующие собственные векторы, решив однородные уравнения (6.1.2). 6.1.2. Выразите решение задачи Коши [1 1 I через собственные значения и собственные векторы, найденные в упражнении 6.1.1. 6.1.3. Пусть Определите, будут ли решения системы у' = Ау асимптотически устойчивы. 6.1.4. Найдите собственный вектор матрицы (6.1.8) и покажите, что она не имеет других линейно независимых собственных векторов. 6.1.5. Рассмотрите задачу о популяции в случае, когда нормы рождаемости и смерт- ности зависят от времени, т.е. замените матрицу (6.1.17) матрицей л(о = Ю l-tf,(O мп ••• 0 МП 0 0 l-d„_i(r) 1-М0_ Выведите выражение, которое будет заменять в этом случае (6.1.18). 188
6.1.6. Пусть 2 0,1 0,1 0,1 1 o.l 0,1 0,1 1.01 Найдите круги Гершгорина для матрицы А и изобразите их. 6.1.7. Используя теорему Гершгорина, докажите, что симметричная строго диаго- нально доминирующая матрица с положительными диагональными элементами яв- ляется положительно определенной. 6.1.8. С помощью непосредственной подстановки и использования тригонометриче- ских тождеств покажите, что вещественная симметричная матрица размера и X л b а b b а Ь а имеет собственные значения Л* = а + 1Ь а»[Ля/(л + 1) ] (к = 1.и), которым соот- ветствуют собственные векторы х^ = {$1п[Ля/(и +1)], sin[2Arw/(n +1)], ... ..., sin|wArn/(n+ 1) 1} {к = 1, ..., и). 6.2. Проблема собственных значений для симметричных матриц Лучшие из имеющихся в настоящее время методов вычисления собствен- ных значений неразреженных, матриц начинаются с приведения заданной мат- рицы к более простой форме. В этом разделе мы рассмотрим основные методы для вещественных симметричных матриц, первый шаг которых со- стоит в приведении матрицы с помощью ортогональных преобразований подобия к трехдиагональной матрице, имеющей те же самые собственные значения. Второй шаг состоит в вычислении собственных значений этой трехдиагональной матрицы. В заключение, если это необходимо, вычис- ляются собственные векторы. Пусть А - вещественная симметричная матрица размера п X п. Мы по- строим п - 2 ортогональные матрицы Pi, ...,Рп-2 и по формулам Ai+i = Р/А ,Pj, i = I,..., я - 2, (6.2.1) получим такую последовательность матриц At = A, А2,...,А„_1,что мат- рица Л„_1 окажется трехдиагональной. Так как каждая матрица Р/ орто- гональна, все матрицы At, .... Лп_1 будут подобными и, следовательно, будут иметь одни и те же собственные значения. Кроме того, матрицы А{ сохранят симметричность, которой обладает A t. Мы теперь сосредоточимся на построении матрицы Pi. Наша цель — выбрать Р] так, чтобы матрица А2 имела нули в первой строке и первом столбце, за исключением, быть может, позиций на трех главных диагоналях, 189
т.е. мы хотим, чтобы матрица А2 имела форму — * 0 ... о“1 (6.2.2 О * *_ где звездочкой помечены элементы, которые могут быть отличны от нуля Этого можно добиться, подбирая матрицу Pi в виде 1—2h>i —2h’1w2 ... —2wtw„ Pi=I - 2и»и»г = —2h’2h’i , (6.2.3 -2wnwi 1-2и£_ где вектор и» удовлетворяет условию И’гн’= II wll2 = 1. Как видно из еле дующей выкладки: =(f ~ 2wwT)(I — 2wwT)=I — 4wwT + 4wwTwwT-I, такая матрица всегда является ортогональной. Применяя теперь преобразо- вание подобия Pi APt', получаем" А2 = PiAPi = (/ - 2wwT) A (I - 2wwT) = = A — 2wwTA — 2AwwT + 4wwTAwwT. Предположим, что первая координата вектора и» равна нулю. Тогда матри- ца wwTбудет иметь нулевыми первую строку и первый столбец, а у матри цы А и»wтбудет нулевой, первый столбец. Следовательно, если мы обознг чим первый столбец матрицы А через а, то первый столбец А 2 будет равеь просто а минус первый столбец 2н’И’т4: а — 2wwTa = «11 a2i - 2w2wTa ani - 2wnwTa Мы хотим выбрать вектор w так, чтобы все координаты вектора а—2 ww"«. кроме, быть может, двух первых, обратились в нуль. Этого можно добить ся, положив wT=u(0,a2i -s, а31,...,ап1), " - 1/2 s = ±( S аД) , д = [ 2s(s - ц21)] / = 2 (6.2.4 где знак s должен быть взят совпадающим со знаком —a2i 190
Давайте убедимся, что так выбранный вектор и» отвечает нашим цепям. Во-первых, проверим, что и» Tw = 1. Действительно, wTw = n2[(a2i - s)2 + X Дд] = /= з = Д2(д2 1 - 2 а2 ! s + s2 + S2 - Д2 1 ) = 1. Далее, 1 wTa = fl[(д2! - s)a2 j + X Дд ] = д(№ ~a2ts) = так что 2(д21-х)д д21 -2м’2н>'д = д21---------= s 2д и - 2ддц a,i -2wjWTa = ац--------—= 0, i = 3,4,...,n. Таким образом, первый столбец А 2 имеет нужную форму, и, так как мат- рица А 2 симметрична, первая строка А2 также имеет нужную форму. Итак, матрица А2 имеет структуру (6.2.2), причем элемент с индексами (1,1) равен д 11, а элементы с индексами (2,1) и (1,2) равны s. Чтобы завершить приведение к трехдиагональной форме, мы просто за- метим, что следующий шаг полностью аналогичен только что выполнен- ному. Положим Р2 = /- lw2w2, где w2 - вектор с нулевыми i ;рвыми двумя координатами. Тогда, как легко видеть, преобразование Р2А2Р2 не влияет на первую строку н пер- вый столбец А2, а изменяет только подматрицу, состоящую из последних л - 1 строк и столбцов А2. Следовательно, элементы w2 могут быть опре- делены аналогично координатам вектора н>, и результирующая матрица А 3 будет иметь форму ♦ * о О * ♦ * о - о о ♦ ♦*♦... ♦ о * 0 0 ♦ Проделав еще л—4 таких преобразований с использованием векторов Wf (i = 3,..., п — 2), имеющих нули в первых i позициях, мы закончим приве- 191
дение к трехдиагональной форме: (6.2.5) Матрицы I — 2wwT называются матрицами Хаусхолдера или преобразова- ниями Хаусхолдера, и вся только что описанная процедура известна как метод Хаусхолдера приведения курехдиагонааьной форме. Наша следующая задача заключается в вычислении собственных значений полученной трехдиагональной матрицы. Это можно сделать несколькими способами, и в следующем разделе мы изложим метод, основанный на QR -алгоритме. В этом разделе мы опишем классический метод последова- тельностей Штурма. Мы теперь будем предполагать, что все внедиагональные элементы bt,.... bn_ j отличны от нуля. Это не приводит к какой-либо потере общно- сти, так как если некоторое 6/ • 0, то характеристический полином три- виально разлагается в произведение двух полиномов, каждый из которых можно рассматривать отдельно. Определим следующие полиномы: Ро(Х)=1, р,(Х) = в!-X, , (6.2.6) Pi(X) = (flj- X)p,_1(X)-bf2_iP/-2(X), i = 2.п, где at — диагональные элементы, а Ь( — внедиагональные элементы матри- цы А !. Ясно, что pi - полином степени i, причем р„ есть характеристи- ческий полином матрицы А п- 1. Действительно, например, при п = 3, используя разложение по минорам, имеем = (а3— X)det [Л1^Х bi bl а3 —X — b2 det О ь3 - (д3—Х)р2(Х) — t>2Pi(X). Верно и более общее утверждение: Pt является характеристическим поли- номом подматрицы, состоящей из первых i строк и столбцов матри- цы Ап- г- Поскольку каждая из этих подматриц симметрична, все полино- мы р/ имеют только вещественные нули. Мы теперь покажем, что полиномы pi обладают следующим свойством: если р/(Хс) = О, то Pf+i(Xo)pf_i(Xo)<0. (6.2.7) Это свойство говорит о том, что если Х^ — нуль некоторого полинома ptv то 192
это значение не является нулем ни полинома p,-_i, ни полинома Pf+i, причем Р/_1 и p/+i имеют в точке Хо разные знаки. Если, например, pt (Хо) = 0. то Pi(Хо)ро(Хо) = — Ь?Ро(Хо) = —bi < 0. В общем случае утверждение (6.2.7) доказывается по индукции. Пусть рл+i (Хо) = °- Тогда по предположению индукции рк (Хо) #= 0, и так как Р*+г(Хо) = ~ь£+1р*г( Хо), мы получаем Рк(.Хо)Р*+2( Хо) = — bk+iPk( Хо) < 0. Полиномы (6,2.6) образуют так называемую последовательность Штурма, а свойство (6.2,7) известно как свойство последовательности Штурма. Из (6.2,7) следует важное свойство перемежаемости нулей полиномов Pi, которое мы проиллюстрируем на примере п = 3, Пусть X t < Х2 < Х3, Pi С д2 и »>i - нули полиномов Рз, р2 и Pi соответственно. Во-первых, заметим, что непосредственно из определения (6.2.6) имеем рДХ) > 0 при X .1 = 1,...,п. (6.2.8) Отсюда, так как р2(Х) - квадратичный полином, следует, что р2(Х) > 0 при |Х | -» +°о. Кроме того, в силу (6,2.7) имеем р2 (у,) < 0, так что Pi < vt < Pi • Проведем аналогичные рассуждения относительно полино- ма р3. Так как р, (д,) > 0, а р, (д2) < 0, то снова в силу (6.2.7) имеем Рис. 6.2. Свойство перемежае- мости нулей Рз(М1) < 0 и р3(д2) > 0. Отсюда, так как р3 — кубический полином и Рз ( X ) >0 при X —с», заключаем, что полином р3 должен иметь нуль на каждом из интервалов (— «>, д,), (дь д2) и (д2, +<»). Таким образом, мы приходим к свойству перемежаемости нулей Pi <Vi < д2, X, < < Х2 < д2 < Хэ. (6.2.9) Полиномы pi, pj и Рз изображены на рис. 6.2. Из свойства перемежаемо- сти нулей следует, что все нули полинома рп (т.е. собственные значе- ния Л n_j) различны. Этот факт есть следствие предположения о неравен- стве нулю внедиагональных элементов bt. Мы теперь можем использовать свойство перемежаемости нулей как основу численного алгоритма, аппроксимации собственных значений. Для произвольного X определим функцию с(Х) как число совпадений знаков 14. Дж. Ортега 193
у следующих друг за другом членов последовательности 1, Р1(Х), Р2(Х), -.-,Р„(Х), причем, если некоторое Р/ ( X) = 0, то в качестве знака этого члена будем брать знак й-i (X). Предположим, например, что и = 3, Pt ( X ) = 2 — X, Рг(Х) = (2-Х)2 - 1, Рэ(Х) = (2 - X) р2 ( X ) — р, ( X ). Вычисляя по- следовательность Штурма при X = 0, получаем значения {+1, +2, +2, +3}, т.е. мы имеем три совпадения знаков последовательных членов, так что с (0) = 3. Аналогично, с (2) = 2, а с (5) = 0, Оказывается, что функция с ( X ) обладает замечательным свойством, которое непосредственно следует из свойства перемежаемости нулей. Теорема 6.2.1. Значение функции с(Х) равно числу нулей полино- ма рп, больших или равных X. Этот результат можно использовать как основу для построения-числен- ного метода нахождения приближенных значений нулей полинома рп. Бу- дем считать, что нули упорядочены в порядке убывания: Xj > Х2 >... > Х„. Пусть [/, и] — отрезок, в котором содержатся все собственные значения. Такой отрезок легко определить следующим образом. Как указывается в приложении 3, любая норма матрицы дает оценку сверху абсолютных величин всех собственных значений. В частности, |\ |< IMn-i li- ft' = 1, ... , л), и мы можем положить I = —1| An_ill« и и = || Вычислим с(Х) в средней точке 71 отрезка [/, и]. Значение c(7i) дает нам число нулей \ на отрезке [71, и]. Предположим, что мы хотим найти зна- чение третьего по величине нуля Х3. Если c(7t) > 3, то мы знаем, что Х3 G. G [71» м] > в противном случае Х3 G [/, у, ]. Предположим, что Х3 G [71( и], возьмем в качестве у2 среднюю точку отрезка [yi, и] н вычислим значе- ние с(у2). И снова, если с(у2) > 3, то мы знаем, что Х3 G [у2, и]; в про- тивном случае Х3 G [71 > 7г ] • Мы можем продолжать эту процедуру, запо- миная отрезок, в котором должен лежать корень Х3, и вычисляя следую- щее значение функции с(Х) в средней точке этого отрезка. После к делений мы получаем отрезок длиной 2~* (и - I), содержащий нужный нам нуль. Продолжая процесс деления, мы можем сделать этот отрезок сколь угод- но малым. Обратите внимание, что только что изложенный метод очень близок к методу половинного деления, рассмотренному в разделе 4.2. Однако функ- ция с(Х) дает информацию о всех нулях, которую можно использовать для значительного сокращения затрат машинного времени. Предположим, например, что в предыдущем абзаце c(7i) = 7. Тогда мы знаем, что все нули Х|, . . . , Х7 лежат на отрезке [71, и], и можем использовать вычисля- емые затем значения с (7,) для локализации расположения сразу несколь- ких нулей,' а не какого-то одного конкретного нуля. Теперь перейдем к вопросу о вычислении собственных векторов мат- рицы А. Предположим, что мы уже нашли приближение Хк к собственному значению Хк и хотим определить соответствующий собственный вектор X Первым шагом является вычисление соответствующего собственного век- тора трехдиагональной матрицы А„_t. Если бы Хк совпадало с точным соб- ственным значением Хк, то собственный вектор был бы нетривиальным ре- 194
щением однородной системы уравнений (Л„_, ЛкГ)х = 0. (6.2.10) Если же Хк отлично от Хк, то система (6.2.10), вообще говоря, не имеет нетривиального решения. Мы, однако, не будем пытаться найти нетривиаль- ное решение (6.2.10), а возьмем в качестве приближенного собственного вектора решение системы (А>_1-V)x = d, (6.2.11) где вектор правой части d будет выбираться определенным образом. Чтобы выяснить, при каких условиях зто решение будет хорошо аппрок- симировать собственный вектор, сначала напомним, что при нашем предпо- ложении о том, что все Ь, / 0 в (6.2.5), все собственные значения матри- цы Ап^х различны, и в силу теорем 6.1.1 и 6.1.2 она имеет п линейно неза- висимых собственных векторов*). Обозначим зти соответствующие соб- ственным значениям Xt, . . . , Х„ векторы как vx,..., v„. Тогда мы можем разложить d по собственным векторам: rf=7iV! + ...+7„v„. Заметим теперь, что матрица Ап-1 — Xk7 имеет собственные значения \ — Хк (i = 1,. . ., л) и соответствующие собственные векторы Vj, ..., v„, а матрица (4„_х — Хк7)-1 имеет собственные значения (\ — Хк)-1 и те же собственные векторы vt, . . . , v„. (Эти утверждения в более общем виде сформулированы в упражнении 6.2.1.) Следовательно, мы можем написать х = (Ап_1 - Xk7)’* d = S 7/(Лп_1 - Хк7)_1у,= I = 1 (6.2.12) _ А У! Ук " 7/ " -----7Г VZ = --~л~ vJt + " -----Х~ vf- 1 = 1 \ — xk Xk Xk J Z * x« x* А A Предположим теперь, что Xk достаточно близко к Xk, скажем, | Хк — Хк |« == 10-6, и что Хк не слишком близко ни к какому другому собственному значению Xf. Тогда при условии, что коэффициент ук не слишком мал, в выражении (6.2.12) будет доминировать член 7k(Xk — Xk)-1 vk. Таким образом, мы видим, что решение системы (6.2.11) можно использовать в качестве аппроксимации искомого собственного вектора. Подчеркнем, что нас интересует только направление вектора vk, и мы можем нормиро- вать его на любую величину. Два фактора влияют на точность полученной аппроксимации. Во-первых, если \к очень близко к другому собственному значению, скажем к Хк+1, то разность Xk+1 — Хк тоже будет малой, и первый член в (6.2.12) уже не будет доминирующим. В этом случае окажется, что мы аппроксимируем некоторую линейную комбинацию векторов vk и vk+1. Близость собствен- ных значений, являясь свойством, внутренне присущим данной конкретной *) Это гарантируется также и симметричностью матрицы Л n_ f. Однако последую- щие рассуждения остаются справедливыми и для несимметричных матриц. 13* 195
Так как Ро(Х) = 1, то значение с(Х), равное числу совпадений знаков соседних членов последовательности р0 ДО . Pi ДО> • - • > Рп ДО > есть просто число неотрицательных членов последовательности пДО, • • , гп(К). Для Л3 и X = 0 мы имеем г, (0) = 120, г2 (0) = 157,2 - (—90,86)2/120 = 88,42, г3(0) = 124,0 - (67,59)2/88,42 = 72,34, гА (0) = 78,84 - (-46,26)2 /72,34 = 49,25. Так как все Т/(0) неотрицательны, то с(0) = 4, и все собственные значе- ния А3 лежат на отрезке [0, 315,7]. Теперь возьмем X = 157,8 — среднюю точку нового отрезка — и вычислим последовательность значений rf (157,8) (i = 1, 2, 3, 4). Это дает с(157,8) = 1, так что одно собственное значение матрицы А3 находится на отрезке [157,8,315,7], а остальные — на отрезке [0, 157,8]. Если мы теперь сосредоточимся на вычислении макси- мального собственного значения Xt, то получим следующую последователь- ность шагов: Х = 236,7, с(Х)=1, Х= 276,2, с(Х) = 0, Х = 256,5, с(Х) = 0, Х = 246,6, с(Х)=1, X, (= [236,7, 315,7], X, € [236,7, 276,2], X, е [236,7,- 256,5], Xj ё [246,5, 256,5], Можем продолжать зти вычисления сколь угодно долго, получая все меньший и меньший отрезок, на котором содержится Xt. Потребуется еще около двадцати таких шагов, чтобы получить приближение к Xt с точ- ностью до восьми знаков. Для вычисления остальных собственных значений мы должны вернуться к отрезку [0, 157,8], который, как мы видели, содержит три младших собственных значения, и повторить ту же самую поцедуру. В заключение мы рассмотрим вычисление собственного вектора, соот- ветствующего максимальному собственному значению. Пу^ть найденное приближение к максимальному собственному значению есть Xt=255,99998. Так как точное значение равно 256, то наше приближение верно до двух единиц последнего разряда. Применяя гауссово исключение к систе- ме (А з — X! 7)х=d, мы получаем верхнюю треугольную матрицу "-136,0 -90,86 0 0 61,59 -132,0 -46,27 -46,26 -177,2 0,9298 • 10-s Воспользуемся рассмотренной выше стратегией неявного задания век- тора d, так чтобы правая часть преобразованной треугольной системы была вектором z, все координаты которого равны единице. Решая далее систему Ux=z и обозначая решение через х, получаем хт = 10s(4,884, -7310, -4,119,1,075). 198
Затем снова решаем систему (А3 — Х,7) х=х, где в правой части стоит только что найденный приближенный собственный вектор. Это дает хт = 10*°(5,250, -7,862, -4,430,1,157), и после выполнения преобразований (6.2.13) мы получаем соответствую- щий собственный вектор матрицы ут = 10* °(5,250,5,250,5,250, -5,250), который после деления на 5,250 • 10*0 совпадает с точным собственным вектором. Остальные собственные векторы, соответствующие Х2, Х3 и Х4, могут быть вычислены аналогичным образом. Теперь сделаем ряд общих замечаний относительно погрешностей ме- тодов этого раздела. Преобразования, которые выполняются при приведе- нии матрицы к трехдиагональной форме, численно очень устойчивы, и ошибки округления не представляют здесь серьезной проблемы. При вы- числении собственных значений ошибки округления могут повлиять на результаты только в том случае, если знак некоторого pf (X) будет опре- делен неверно, так что значение функции с(Х) будет ошибочным. Это, по существу, та же самая проблема, с которой мы встречались в разде- ле 4.2 при рассмотрении метода половинного деления. В общем случае такие ошибки будут влиять на собственные значения только тогда, когда требуется очень высокая точность. Более всего подвержено влиянию оши- бок определение собственных векторов, и особенно тогда, когда матрица имеет несколько очень близких собственных значений. В последнем слу- чае нельзя рассчитывать на точное нахождение отдельных собственных векторов, а можно только пытаться правильно выделить собственное под- пространство, соответствующее этой группе собственных значений. За исключением этих возможных трудностей при определении некото- рых собственных векторов, описанные методы оказываются вполне удов- летворительными и проявляют на практике весьма малую чувствитель- ность к ошибкам округления. Кроме того, в сипу симметричности матри- цы собственные значения являются хорошо обусловленными. В следующем разделе мы будем рассматривать задачу вычисления собственных значений для несимметричных матриц. В этом случае возможная плохая обуслов- ленность собственных значений представляет серьезную проблему. Дополнительные замечания и ссылки 6.2 Идея вычисления собственных значений симметричной матрицы с помощью перво- начального приведения матрицы к трехдиагональному виду была предложена в на- чале 1950-х годов Гивенсом, который использовал элементарные матрицы вращения, обнуляющие по одному внедиагональному элементу. Впоследствии Хаусхолдер за- метил, что число арифметических операций можно сократить примерно вдвое, если использовать ортогональные матрицы вида (6.2.3). Гивенс также разработал идею использования классических последовательностей Штурма для вычисления собст- венных значений трехдиагональной матрицы. Огромный вклад в понимание пове- дения этих методов при расчетах на ЭВМ внес Уилкинсон; подробное обсуждение этих методов, включая анализ ошибок округления, можно найти в его классичес- кой книге [84]. Изложение с более теоретических позиций имеется в книге {91], а обзор последних результатов содержится в книге [56]. Превосходные программы, реализующие методы Хаусхолдера и метод половин- ного деления, а также излагаемый в следующем разделе (?Я-алгоритм, имеются в пакете Eispack (см. [9,73]). 1»
Ранее уже упоминалось, что если матрица В невырождена, то обобщенная проб- лема собственных значений Ах - КВх может быть сведена к стандартной проблеме В1 Ах= Кх. Однако даже если матрицы А и В симметричны, произведение В'А не обязано быть симметричным. Если матрица В является, кроме того, положитель- но определенной, то можно предложить другой вариант сведения, основанный на разложении Холецкого В -LL‘. Тогда с помощью замены переменных у = LTx обобщенная проблема сводится к стандартной L ~'А (L "’) ту = \у с симметричной матрицей коэффициентов. Такое сведение часто оказывается удобным способом решения задачи, особенно если разложение В легко осуществляется. В качестве аль- тернативы мы в дополнительных замечаниях к следующему разделу упоминаем QZ -алгоритм, который непосредственно применим к обобщенной проблеме. УПРАЖНЕНИЯ 6.2 6.2.1. Пусть В — невырожденная матрица с собственными значениями Л...... ..., Хи и соответствующими собственными - векторами vv п: а) покажите, что матрица В~' имеет собственные значения X/’,..., Х^’ и собственные векторы v,.....v„; б) покажите, что матрица В - д1, где д - скалярная величина, имеет собственные значения X, - щ ..., Хи - д и собственные векторы v,,... ,v„. 6.2.2. По методу Хаусхолдера приведите к трехдиагоиальной форме матрицу Г 2 1 1 2 1 1 2. 6.2.3. Составьте программу, приводящую произвольную вещественную симметрич- ную матрицу размера и X Л к трехдиагональной форме по методу Хаусхолдера. т т 6-2.4. Пусть Р = I - дпю , где ж - вектор, такой, что w н» = 1. Покажите, что матрица Р будет ортогональной в том и только том случае, если д = 2. 6-2.5. Для матрицы Г 2 -1 О В= -1 2 -1 0-1 2 выпишите полиномы Pf из (6.2.6) и убедитесь, что они обладают свойствами (6.2.7) - (6.2.9). 6.2.6. Используя карманный калькулятор, с помощью последовательности Штурма определите приближенные собственные значения матрицы из упражнения 6.2.5. Про- должайте вычисления до тех пор, пока все три собственных значения ие окажутся заключенными в интервалы, длина которых меньше 0,01. 6.2.7. Для матрицы иэ упражнения 6.2.5 найдите приближенные собственные векто- ры, которые соответствуют приближенным собственным значениям, вычисленным в упражнении 6.2.6. 6.3. QR -алгоритм Теперь перейдем к проблеме вычисления собственных значений для несимметричных матриц. Это намного более трудная-задача, чем в случае симметричных матриц, и хорошие методы ее решения оказываются зна- чительно сложнее методов, изложенных в предыдущем разделе. Еще более существенным является то, что собственные значения несимметричной мат- рицы могут быть очень плохо обусловленными. Покажем это на простом 200
Ясно, что матрица А имеет «-кратное нулевое собственное значение, а соб- ственные значения матрицы В удовлетворяют характеристическому урав- нению X" — е =0, так что |Х/1 = !е|,/я, /=1,...,и. - (6.3.2) Предположим, например, что л =100 и е = 1О-100. Тогда I X, I =10“’, т.е. изменение одного элемента матрицы вызвало в 1099 раз большее изме- нение собственных значений. Отметим, что это тот же самый пример, кото- рый мы использовали в разделе 4.2 для демонстрации возможной плохой обусловленности корней полинома, только переформулированный как задача на собственные значения. Эта возможность плохой обусловленности собственных значений не поз- воляет рассчитывать, что найдется такой метод, который будет точно вычислять собственные значения для всех несимметричных матриц. Если задана матрица Л, то в очень хорошем случае можно надеяться, что метод будет давать достаточно точные собственные значения для матриц вида А + Е, где элементы матрицы Е в каком-то смысле малы. Если все же вы- численные собственные значения будут заметно отличаться от точных, то это объясняется плохой обусловленностью этих собственных значений. Теперь рассмотрим два тесно связанных между собой метода — LR- и QR-алгоритмы. Пусть нам задана матрица А. С помощью алгоритма'гаус- сова исключения разложим ее в произведение A =LR, (6.3.3) где L — нижняя треугольная матрица с единицами на главной диагонали, a R — верхняя треугольная матрица, Отметим, что мы здесь предполагаем возможность представления матрицы А в виде произведения верхней и нижней треугольных матриц; как мы видели в гл. 3, это имеет место не всегда. Введем теперь новую матрицу A t, изменив порядок множителей L и R, т.е. Ai = RL. (6.3.4) Так как L является нижней треугольной матрицей с единицами на глав- ной диагонали, то она невырождена, и мы можем написать A =LR -LQiL^L'1 =LAtL~1. (6.3.5) Отсюда видно, что А и A i подобны и, следовательно, имеют одинаковые собственные значения. (См. упражнение 6.3.1, где сформулирован более общий результат.) Предположим, далее, что матрицу At можно разложить в произведение нижней треугольной матрицы L t и верхней треугольной матрицы Ri. Вве- дем новую матрицу Л 2, поменяв порядок сомножителей: At =LiRi, А^ (6.3.6) 201
И снова матрица Аг подобна'Л]. Мы можем продолжить этот процесс факторизации и перестановки сомножителей, получая последовательность матриц Ak^LkRk, Ак+\~&кЬк> к =1,2,... (6.3.7) Все матрицы Ак подобны и, следовательно, имеют те же .собственные зна- чения, что и исходная матрица А. Имеет место следующая теорема, дока- зательство которой выходит за рамки настоящей книги. Теорема 6.3.1. Предположим следующее-. 1) может быть выполнен LR-алгоритм (6.3.7); 2) все собственные значения XХ„ различны по абсолютной величине и I X, I > ... > | Л„ | ; 3) если А = PDP~X , где D — диагональная матрица из собственных значений матрицы А, то матрицы Р и Р~1 допускают L Ц-разложение. Тогда матрицы Ак в (6.3.7) сходятся к треугольной матрице (6.3.8) где звездочкой обозначены элементы, в общем случае отличные от нуля. Обратите внимание, что условие 2) исключает не только кратные собст- венные значения, ио в случае, если матрица А вещественная, то и невещест- венные собственные значения. Два других предположения тоже весьма огра- ничительны и трудны для проверки. Хотя некоторые из этих ограничений можно обойти, мы, вместо этого, сейчас обратимся к другому методу, близкому к изложенному. Основная идея ДО-алгоритма та же, что и в 7.7?-алгоритме, но в нем используется разложение в произведение ортогональной матрицы и верх- ней треугольной матрицы: исходя из матрицы Ао =А и осуществляя по- очередно факторизацию и перестановку сомножителей, мы получаем пос- ледовательность матриц Ak = QkRk, Ak+i -RkQk. (6.3.9) Л = 0,1,... , где каждая из матриц Qk является ортогональной. (Мы предполагаем, что матрица А вещественна; в случае невещественной матрицы А матрицы Qk были бы унитарными.) Мы сейчас покажем, что СЛ-разложение очень легко осуществляется с помощью преобразования Хаусхолдера, описанного в предыдущем раз- деле. Пусть вектор H>t выбран так, что *>Т = Ц(ац-з.а21,...,ап1), s = ( S а^)*/2, (6.3.101 7=1 ' р =[2s(s-aii)J-1/2. 202
Тогда, как легко проверить (упражнение 6.3.3), - s * ... * О • ... • Л(2, = (7-2и>,»у1г)Л = (6.3.11) - О ♦ ... ♦ где,- как обычно, звездочкой обозначены элементы, в общем случае от- личные от нуля. Выберем далее вектор и>2 так, что г Л - Л л ч Л Л Л/2 =д(0,а22 -S, а32...ап2), s=±( X aj2) д= [25(Г-а22)] 1/2, где крышечкой помечены элементы матрицы А ^2\ Тогда лежащие ниже главной диагонали элементы двух первых столбцов матрицы (7 — 2и>2и»^)Л^2^ обратятся в нуль- Продолжая этот процесс с помощью векторов wt, имеющих нули в первых i — 1 позициях, получим (/- 2w„.2 и>^_,).. .(7- 2w2w2r)(7- 2и>1и>1г)Л =Л, где R — верхняя треугольная матрица. Если теперь положить С = (7-2wIwIr)(7-2и>2Н>2Т)...(7 -2 (6.3.12) (6.3.13) то (6.3.12) можно переписать как QTA=R. Так как каждая матрица 7 — 2wjwJ ортогональна, то и их произведение Q также будет ортого- нальной матрицей (см. упражнение 6.34). Следовательно, Q~l -QT, и (6.3.12) эквивалентно соотношению A = QR, '6.3.14) которое и представляет собой QR-разложение матрицы А. Подчеркнем, что это разложение может быть осуществлено, всегда, без каких-либо ог- раничений на матрицу А. Кроме того, указанный алгоритм разложения численно устойчив, и при его выполнении не может возникнуть никаких серьезных проблем, связанных с ошибками округления. Мы снова без доказательства приводим теорему о QR-алгоритме, ана- логичную теореме 6.3.1. Т е.о р е м а 6.3.2. Пусть выполнены условия 2“и 3 теоремы 6.3.1. Тогда генерируемые QR-алгоритмом (63.9) матрицы Ак сходятся к верхней треугольной матрице вида (6.3.8). При этом лежащие ниже главной диаго- нали элементы матриц A k сходятся к нулю с линейной скоростью, определяемой отношением собственных значений матрицы А, а именно Эта теорема является теоретическим обоснованием QR-алгоритма. Однако как в формулировке теоремы, так и в схеме алгоритма имеется ряд ограничений, которые снижают практическую ценность метода. Мы сейчас рассмотрим эти ограничения и обсудим способы, которые позво- ляют их обойти, по крайней мере частично. 203
Обратимся сначала к условию 2 теоремы 6.3.1, которое требует, чтобы все собственные значения матрицы А были различны по абсолютной вели- чине. В случае вещественной матрицы это исключает не только кратные собственные значения, но и пары комплексно-сопряженных собственных значений. Однако иа самом деле ситуация не настолько плоха. Если мат- рица А вещественна, то все множители Qk и К* также будут вещественны, и матрицы А к, разумеется, не смогут сходиться к треугольной матрице с невещественными собственными значениями. Тем не менее оказывается (и это самое большее, на что мы вообще могли надеяться), что Ак ’’сходят- ся” к почти треугольной форме, структура которой иллюстрируется мат- рицей *8 * Х9 Мы здесь предположили, что матрица имеет три вещественных собственных значения Х3, Х8, Х9 с различными абсолютными величинами и три.пары комплексно-сопряженных собственных значений также с различными абсолютными величинами. Эти пары собственных значений определяются тремя 2 X 2-матрицами, которые показаны в виде блоков иа главной диаго- нали. На самом деле элементы соответствующих 2 X 2-матриц последо- вательности Ак могут не сходиться, однако собственные значения этих матриц будут сходиться к собственным значениям А. Таким образом, в рассматриваемом случае вычисление комплексных собственных зна- чений вещественных матриц ие представляет проблемы. СК-алгоритм в том виде, как он описан выше, является очень неэф- фективным. Мы сейчас рассмотрим две важных модификации, которые необходимо внести в алгоритм, чтобы его можно было использовать на практике. Первая проблема связана с тем, что разложение (6.3.14) тре- бует О (и3) операций, так что каждый шаг процесса выполняется слиш- ком медленно. Мы можем обойти эту трудность, если предварительно преобразуем матрицу А к форме, которая позволяет проводить это раз- ложение за меньшее время. На самом деле нам бы хотелось сначала при- вести матрицу к трехдиагональной форме, как это делалось в предыдущем разделе, а затем к полученной трехдиагональной матрице применить опи- саннный QR-алгоритм. К сожалению, хотя такое приведение к трехдиаго- нальной форме и возможно, в случае несимметричной матрицы оно может оказаться численно неустойчивым. Самое большее, чего мы можем достичь с гарантией численной устойчивости, это привести матрицу к виду flll а12 ••• яш а21 О Л = (6.3.16) О an,n —1 апп 204
"акие матрицы, у которых ниже главной диагонали имеется только одна «нулевая диагональ, непосредственно примыкающая к главной, называют- я матрицами Хессенберга. Исходная матрица А может быть эффективно (пиведена к форме Хессенберга с помощью описанных в предыдущем раз- деле преобразований Хаусхолдера. Действительно, если определить векторы й (/ = 1....и — 2) точно так же, как в разделе 6.2, и выполнить преобра- зования подобия (6.2.1) с ортогональными матрицами Р, =/— 2w(w[, о в результате мы получим матрицу вида (6.3.16). В упражнении 6.3.6 [редлагается доказать это утверждение. Теперь будем считать, что матрица А приведена к форме Хессенберга, : рассмотрим вопрос о применении к ней QR-алгоритма. Прежде всего •тметим, что в этом случае разложение (6.3.14) осуществляется особенно тросто. Это можно было бы сделать, как и раньше, с помощью преобразо- ваний Хаусхолдера, но несколько лучше воспользоваться операциями, известными как преобразования Гивенса, или плоские вращения. Эти пеоапии задаются ортогональными матрицами вида 1 1 1 sin 0 cos О -cos 0 sin О 1 (6.3.17) 1 _ э первый синус стоит в позиции с индексами (/, /). шожая теперь матрицу Хессенберга (6.3.16) слева на матрицу враще- дя Г], у которой синусы и косинусы расположены в левом верхнем, ’глу, получим sin fl cos О -cos fl sin fl Ящ а2П an,n — l ann ai i sin 0 + a21 cos 0 . . . -a21 cosfl + a21 sin fl . . . Я32 aln an fl +a2n cosfl -ain cosfl +a2„ sin fl a3n 205
Если выбрать угол 0 из условия -Я1 j cosfl + а21 sinO =0, или в =arctg(aII/a21), то элемент- (2,1) произведения обратится в нуль. Таким обра- зом, в результате умножения на последовательность матриц плоских вращений Pt с соответствующими значениями углов все поддиагональные элементы матрицы Хессенберга последовательно обратятся в нуль. Итак, мы приходим к разложению А = QR, где Q1- Рп_ j ... Ру, и, следова- тельно, Q = P? .. -Pn-i- Это разложение может быть получено за О(л2) операций, что следует считать достаточно эффективным. Приведение матрицы А к форме Хессенберга не имело бы смысла, если бы эту процедуру пришлось выполнять после каждого шага алгоритма. К счатью, это не так. Действительно, отличные от нуля внедиагональные элементы матриц Р, находятся только в позициях (/ +1, i) и (/,/ + 1). Отсюда легко следует (упражнение 6.3.7), что матрица Q сама является матрицей Хессенберга. Далее, так как R — верхняя треугольная матрица, произведение RQ также является матрицей Хессенберга. Таким образом, если исходная матрица приведена к форме Хессенберга, то и все матрицы Ак, генерируемые QR-алгоритмом, будут автоматически сохранять зту форму. Даже при первоначальном приведении к форме Хессенберга и вытекаю- щей отсюда экономии при построении матриц А к алгоритм может оказать- ся неэффективным из-за медленной сходимости к нулю элементов, находя- щихся под диагональю. Скорость сходимости определяется выражением (6.3.15), из которого видно, что если два собственных значения, скажем, X, и Л/+1, близки, то внедиагональный элемент с индексами (/ +1,/) бу- дет стремиться к нулю очень медленно. Попытаемся ослабить эту проблему сходимости следующим образом. Предположим, что Х„ является хорошим приближением к Х„, и рассмот- рим матрицу-Л = А — Х„/, собственные значения которой равны X । - Х,„... . -., Х„ — Х„. Если теперь применить QR-алгоритм к Л, то внедиагональные элементы последней строки матриц Л к будут стремиться к нулю как сте- пени отношений (ХП-ХП)/(Х,- — Х„), а не как степени Х„/Х,- (/ =1,... .. -, и — 1). Наиболее медленно из них сходится элемент в позиции (я, и-1), причем для матрицы А скорость сходимости определяется отношением (Х„ — Х„)/ (Х„_, - Х„), а для исходной матрицы Л — отношением Х„/Х„_1 • Если, например, Х„ = 0,99, Х„_ ] = 1,1 и Х„ = 1,0, то \nl^n-1 = 0,9, а I Х„ - - Х„ | /| X,!-! — Х„ I = 0,1, так что элемент (л,и— 1) матрицы со сдвину- тыми собственными значениями сходится к нулю примерно в 20 раз быст- рее. л Хорошее приближение Х„, которое следовало бы использовать в качестве параметра сдвига, нам обычно неизвестно. Однако в ходе £>/?-алгоритма элементы матриц Л* будут сходиться к Х„, так что мы можем их использовать как параметры сдвигов, т.е., сделав к шагов, мы можем на шаге А: + 1 выполнить QR-разложение матрицы Л* =Л* -а^/. В то же время можно выполнять преобразование сдвига на каждом шаге QR-алго- ритма, используя в качестве параметра элемент (п, п) текущей матрицы. ?06
Так как при каждом сдвиге собственные значения исходной матрицы из- меняются на величину параметра сдвига, то необходимо следить за накопле- нием этих величин. Фактически, именно сумма сдвигов сходится к соб- ственному значению Х„. Критерием сходимости служит достаточная ма- лость элементов последней строки. Когда зта малость будет достигнута, можно отбросить последнюю строку и последний столбец матрицы и пе- рейти к определению собственного значения Хп_!, исходя из полученной подматрицы размера (я— 1) X (я— 1). Отметим, что собственные зна- чения згой подматрицы, а следовательно, и исходной матрицы, были изме- нены на суммарную величину всех сдвигов (которая служила приближе- нием к Х„), так что после вычисления собственных значений подматрицы к ним следует добавить эту величину. Можно действовать-и иначе, возвра- щая сдвиг обратно после каждого шага 0/?-алгоритма (это,правда, в не- сколько другом контексте, демонстрируется формулами (6.3.18)). Тогда все матрицы Ак будут иметь те же самые собственные значения. Предыдущее обсуждение основывалось на предположении веществен- ности как матрицы А, так и ее минимального собственного значения. Пред- положим теперь что А по-прежнему вещественна, ио что собственное значе- ние Х„ невещественно. Тогда использование в качестве параметров сдвига величин , которые остаются вещественными, не представляется осо- бенно удачным, поскольку при этом не может аппроксимироваться чисто мнимая часть Х„. Вспомним, однако, что собственные значения расположен- ных в правом нижнем углу 2 X 2-подматриц матриц А к, генерируемых QR- алгоритмом без сдвигов, сходятся к паре собственных значений Х„ и Х„_ t = = XПоэтому вполне естественно использовать собственные значения этих 2 X 2-подматриц в качестве параметров сдвига. Рассмотрим первый шаг такого алгоритма в. применении к матрице A i. Пусть к, и к2=к х — соб- ственные значения 2 X 2-подматрицы, составляющей правый нижний угол матрицы Л]. Используя схему с возвратом сдвигов, получаем формулы Ai -kiJ-QiRt, А2 ~R\Qi + kt/, Л2 ~ k2I= Q2R2, A3 ~R2Q2 + k2I. (6.3.18) Так как kx ик2 невещественны, то матрицы A lf A 2,Qi,Q2,Ri иЛ2 будут, вообще говоря, невещественными. Отсюда следует, что эти шаги 0/?-алго- ритма необходимо выполнять в комплексной арифметике. Интересно,од- нако, что матрица А3 оказывается вещественной (см. упражнение 6.3.10). Хотя мы здесь не будем вдаваться в детали, тем не менее имеется возмож- ность осуществлять переход от A i к Л 3 в полностью вещественной арифме- тике. Эта процедура называется (^-алгоритмом с двойным сдвигом. Стратегию двойного сдвига с использованием собственных значений правой нижней 2 X 2-подматрицы можно рекомендовать и в случае вещест- венных собственных значений. При таком выборе сдвигов, как и при сдвиге на элемент (л, и), скорость сходимости обычно оказывается по крайней мере квадратичной. После того как собственные значения найдены, остается вычислить соб- ственные векторы. Это может быть сделано по аналогии с предыдущим разделом, но используя в данном случае матрицу Хессенберга. Действи- тельно, пусть Л — матрица Хессенберга, полученная из исходной матрицы Л, 207
и Л — приближенное собственное значение. Решим теперь систему линейных уравнений (A-M)x=d, (6.3.19) где вектор правой части d выбран некоторым подходящим образом. Ус- ловия, при которых решение (6.3.19) будет приемлемым приближением к собственному вектору, можно получить, как и в предыдущем разделе, разлагая d по собственным векторам матрицы А. Вычислив вектор х, мы еще должны преобразовать его в собственный вектор самой матрицы А. Если А = РАРТ, то, как и в предыдущем разделе, вектор у=Ртх будет, приближенным собственным вектором матрицы Л. Мы теперь кратко просуммируем основные моменты обсуждения QR- алгоритма. Чтобы метод был эффективен, нужно сначала привести ис- ходную матрицу к форме Хессенберга и затем применить к полученной матрице основной QR-алгоритм, включающий сдвиги. Собственные зна- чения определяются последовательно одно за другим (или по два — в слу- чае комплексно-сопряженной пары), причем для нахождения следующих собственных значений итерируется матрица меньшего размера. При надле- жащей реализации QR-алгоритм является в настоящее время лучшим универсальным методом для несимметричных матриц, которые целиком умещаются в оперативной памяти ЭВМ. Мы здесь ие имели возможности остановиться на всех деталях, необходимых для такой реализации, а огра- ничились только изложением основных моментов алгоритма. В дополни- тельных замечаниях к этому разделу приведены ссылки на литературу для дальнейшего чтения. QR-алгоритм составляет также привлекательную альтернативу методу последовательностей Штурма в случае симметричных трехдиагональных матриц, особенно если требуется найти все собственные значения. Для трехдиагональных матриц алгоритм значительно упрощается, а так как симметричные матрицы имеют только вещественные собственные значения, то использование сдвигов не приводит к возникновению невещественных чисел. Кроме того, в симметричном случае скорость сходимости обычно оказывается выше. Дополнительные замечения и ссылки 6.3 /.Я-алгоритм был предложен Рутисхаузером в 1958 г. ДО-алгоритм был опубли- кован независимо Френсисом [90] и Кублановской [34]. Впоследствии Уилкинсон продолжил разработку и анализ этих алгоритмов; исключительно ботатый материал, включающий доказательство теорем 6.3.1 и 6.3.2, содержится в его книге [84]. Даль- нейшее обсуждение -алгоритма есть в [78]; в этой книге, в частности, рассматри- вается версия с неявными сдвигами, а также связь ^/{-алгоритма с излагаемыми в следующем разделе степенным методом, методом обратных степеней и методом от- ношений Рэлея. По-видимому, наилучший имеющийся в настоящее время набор прог- рамм содержится в пакете Eispack (см. [9,73]). Вариантом £Я-алгоритма для симметричных положительно определенных матриц является LL ^-алгоритм, использующий разложение Холецкого. Основная схема ал- горитма состоит в разложении А = А, в произведение L j L вычислении Л, = L fz.,, разложении А 2 в произведение L г L и тд. 208
Существует интересная связь между LLT- н ДО-алгоритмами. Если А/ и Я,-(/ = 1, 2,...) - матрицы, генерируемые соответственно LL1- н QR-алгоритмами, то Л*+1 = = ^2*+1- Распространение ДО-алгоритма на обобщенную проблему собственных значений было сделано Моулером и Стьюартом [48] (см. также [87]). Этот метод известен как QZ.-алгоритм. Аналогичное распространение I-R-алгоритма - L2-алгоритм - принадлежит Кауфману [27]. УПРАЖНЕНИЯ 6.3 6.3.1. Пусть В и С - матрицы размера п X л. Покажите, что матрицы ВС и СВ по- добны *). 6.3.2. Покажите, что матрица ‘•I:: не допускает L/(-разложения, и, следовательно, к ней не применим /./(-алгоритм. Покажите, что хотя матрица имеет /./(-разложение, матрица А, в (6.3.4) такого разложения не имеет, и, следо- вательно, в этом случае нельзя использовать / /(-алгоритм. 6.3.3. Проверьте, что если вектор и>, определен как в (6.3.10), то матрица А в (6.3.11) действительно имеет указанную там форму. 6.3.4. Покажите, что если А и В - вещественные ортогональные матрицы разме- ра п X п, то матрица АВ также является ортогональной. После этого покажите, что если каждый нз векторов удовлетворяет условию wjivy = 1, то матрица в (6.3.13) ортогональна. 6.3.5. Выполните С/(-разложение матрицы 2 -1 I 3 1 -1 2 6.3.6. Проделав подробные выкладки, убедитесь, что ортогональные преобразова- ния подобия Р{- /- где векторы wt определены как в разделе 6.2, приводят несимметричную матрицу А к форме Хессенберга (6.3.16). 6.3.7. Покажите, что если единственные отличные от нуля внедиагональные элемен- ты матрицы Р( находятся в позициях (/+ 1, /) и (/, /+ 1),то произведениеР, .. -Pn-i является матрицей Хессенберга. 6.3.8. Покажите, что если Q - матрица Хессенберга, a R - верхняя треугольная, то произведение RQ есть матрица Хессенберга. 6.3.9. Пусть А - ленточная матрица. Покажите, что как //(-алгоритм, так и QR- алгоритм сохраняют ширину ленты матрицы А. _ 6.3.10. Пусть А, - вещественная матрица, а к, икг=кЛ - комплексные постоян- ные. Покажите,что матрица А э, определенная в (6.3.18), вещественна. 6.4. Методы для больших разреженных матриц Метод Хаусхолдера и (//^-алгоритм, описанные в предыдущем разделе, имеют первостепенное значение, если матрица А помещается в оперативной памяти, не является сильно разреженной, разве что ленточной, и требуется *) Приведите контрпример. - Примеч. ред. 14. Дж. Ортега 209
найти все или много собственных значений. Напротив, в случае очень боль- ших разреженных матриц, для которых нужно определить только несколь- ко собственных значений,, указанные методы не оказываются особенно полезными. Проблемы такого рода часто возникают как в уравнениях с частными производными, так и в других областях. Вот характерный пример такой задачи: имеется матрица размера 5000X5000, в каждой строке которой содержится порядка десяти отличных от нуля элементов, и требу- ется найти только несколько, может быть, четыре или пять, собственных значений. Для такой задачи, предыдущие методы совершенно не подходят. Классическим методом, который иногда оказывается полезным для больших разреженных систем, хотя также страдает серьезными недостат- ками, является степенной метод. Предположим, что собственные значения Xi,..., Х„ матрицы Л вещественны и удовлетворяют условию |Х1|>|Х2|>...>|Х„|. (6.4.1) При заданном векторе х0 рассмотрим последовательность xk+i=Axk, * = 0.1,... (6.4.2) Анализ поведения последовательности векторов (хк} можно провести точно так же, как в случае демографической задачи из раздела 6.1. Предпо- ложим для простоты, что матрица А имеет п линейно независимых собствен- ных векторов V,,..., v„, соответствующих собственным значениям Xi,... ..., Х„. Разложим х0 по этим собственным векторам: *0 = CiVi +. . + c„v„. Пусть Ci #= 0, тогда, как и в (6.1.20), хк =CiXfV, + с2Х2 v2 +... + c„X*v„ = и в силу (6.4.1) все множители (Х//ХО* (i = 2,.... и) стремятся к нулю при * -*оо. Следовательно, Xrfcjrfc-+C1V1 при *-»«», (6.4.4) откуда видно, что векторы хк стремятся по направлению к собственному вектору V!. Модули же векторов хк будут при этом либо стремиться к нулю, если IX, | < 1, либо неограниченно расти, если |Х,| > 1. Поэтому векторы хк нуждаются в нормировке, и процедура нормировки даст нам также приближения к собственному значению Xf. Существует много способов выбора нормирующих множителей. Одна из удобных модификаций алгоритма (6.4.2) определяется формулами хк ~ А хк _ j, *—1,2,..., Хк = хк/ок, к =1,2,..., (6.4.5) где ок — максимальная по модулю координата вектора хк. В этом случае можно показать, что Ок-*\г и xfc-»cv1 при *->о». (6-4.6) 210
Последнее соотношение говорит, что последовательность {л>) сходится к некоторому вектору, пропорциональному собственному вектору v,. Осйовным достоинством степенного метода является то, что векторы хк получаются только с помощью умножения матрицы на вектор (плюс неко- торая работа по вычислению нормирующих множителей); никаких преоб- разований самой матрицы А при этом не требуется. Главный недостаток этого метода заключатеся в том, что он может сходиться очень медленно. Из (6.4.3) видно, что скорость сходимости в первую очередь определяется отношением X2/Xj. Если это отношение по модулю близко к 1, что ха- рактерно для многих практических задач, то сходимость будет медлен- ной. Можно попытаться обойти эту трудность с помощью сдвигов, как это было сделано в СЯ-алгоритме. Если применить степенной метод к матрице А - о! с собственными значениями X] - о, ..., Х„- о, то Ско- рость сходимости будет определяться отношением |Х2 -o|/|Xi - а| при условии, конечно, что Xi — о останется максимальным по модулю собст- венным значением. В предположении вещественности всех X, можно по- казать, что минимум этого отношения достигается при о= (Х2 +Хи)/2. Но даже при этом оптимальном выборе, который было бы трудно осущест- вить на практике, сходимость может все же оказаться мучительно медлен- ной. Пусть, например, матрица размера 1000 X 1000 имеет собственные значения 1000, 999, .... 1. Тогда оптимальное значение этого отношения после сдвига на о равно 0,998, что несущественно лучше значения 0,999, которое было до сдвига. Степенной метод имеет и другие недостатки. Если имеется несколько собственных значений с максимальным модулем, например |Х]| = |Х2| > > IXз | > | Х„ | (а так всегда бывает в случае вещественной матрицы с доми- нирующей парой комплексно-сопряженных собственных значений), то последовательность (6.4.5) вообще ие сходится. Существует несколько способов обойти эту трудность, но в случае невещественных собственных значений ускорение сходимости с помощью сдвигов оказывается еще менее удовлетворительным. Другая проблема связана с вычислением последующих собственных значений. После того как мы нашли приближен- ное собственное знаечение Xf, нам надо каким-то образом блокировать это значение, так как иначе итерации будут опять сходиться к Х2, а не к Х2. Для этого имеется несколько способов, но мы здесь не будем их рассматривать. Многие недостатки степенного метода можно в известной мере преодо- леть с помощью метода обратных степеней (его также называют методом обратных итераций), но за счет новых трудностей. Этот метод лежал в основе вычисления собственных векторов трехдиагональных матриц и матриц Хессенберга в двух предыдущих разделах, когда мы предпо- лагали, что приближенное собственное значение уже известно. Рассмотрим последовательность векторов {хк}, члены которой опре- деляются как решевдя систем линейных уравнений (А-о!)хк^хк_1, Х=1,2,... (6.4.7) Это просто степенной метод для матрицы (А — о/)~*. Если по-прежнему матрица А имеет собственные значения Xf, ..., Х„и соответствующие собственные векторы vIt ..., v„, то матрица (А — оГ)~* будет иметь 14* 211
собственные значения (Х/-а)~' и собственные векторы vz. При этом генерируемая (6.4.7) последовательность {*&} будет удовлетворять соотношению (6.4.3) с заменой X/ на (Xz - а)~*: Если условие (6.4.1) выполняется и о является достаточно хорошим приближением к Х(, то векторы хк будут опять сходиться по направле- нию к собственному вектору Vi- Скорость сходимости при этом опре- деляется отношением (Xi — о)/(Х2 — о), и, в противоположность степен- ному методу, чем лучше а аппроксимирует Х(, тем меньше будет это отношение. Если о — хорошее приближение к Х(, то каждый шаг метода обратных итераций значительно улучшает аппроксимацию собственного вектора. Однако здесь еще остается проблема получения приближения к самому собственному значению, и мы сейчас опишем один из способов, который иногда оказывается полезным. Мы здесь ограничимся рассмотрением симметричных матриц, замечая при этом, что большие разреженные матрицы, возникающие при решении практических задач (и особенно задач, описываемых дифференциальными уравнениями), часто оказыва- ются симметричными. Для данного вектора v составим отношение vTAv а= —, (6.4.9) v v называемое отношением Рэлея. Если v — хорошее приближение к собст- венному вектору vt матрицы А, то а будет хорошим приближением к собственному значению Х(. Чтобы стало ясно, почему это так, давайте опять разложим v по собственным векторам: V = 7iV! + v„, и предположим, что векторы vz нормированы так, что v/vz =1 (z = 1,. . . ..., и). Поскольку A vt = Xzvz, (6.4.9) можно переписать в виде (7iVi + ... +7„v„)r(7IXIvI + ...+7и\Ли) а= ---------------------------------------= 7? + ---+7я = (Xi7? +. .. + Хи7л)(7? +- -+7») 1 = (6.4.10) Предположение о том, что v является хорошим приближением к V] по направлению, означает малость коэффициентов у/ (z = 2, .... л) по срав- нению с 71. Но тогда выражения в квадратных скобках в (6.4.10) будут близки к 1, и, следовательно, а можно использовать в качестве прибли- 212
жения к Хь причем чем меньше отношения 7//71, тем лучше будет полу- ченное приближение. Мы теперь можем рассмотреть комбинированный метод, использующий обратные итерации и отношения Рэлея. При заданном начальном векторе х0 каждый шаг метода состоит в получении из отношения Рэлея нового приближения ак к искомому собственному:значению и последующем вы- полнении обратной итерации, дающей новое приближение к собственному вектору: x*Axfc ок =-------, Л = 0,1................................. (6.4.11а) xjxfc (А -ак/)хк+1 = хк, Л = 0,1.... (6.4.116) Если эта процедура сходится, то скорость сходимости оказывается очень высокой. Действительно, можно показать, что имеет место кубическая сходимость последовательности { ак ) к простому собственному значению. Однако применение этого метода связано с рядом трудностей. Во-первых, необходимо иметь начальное приближение х0, которое достаточно хорошо аппроксимирует по направлению собственный вектор vb В противном случае нельзя гарантировать сходимость последовательностей {ofc} и{х^} соответственно к X, и vt. Один из способов получения приемлемого приближения х0 состоит в использовании нескольких шагов степенного метода, после чего можно переключиться на итерации (6.4.11). Другим недостатком метода (6.4.11) является то, что на каждом шаге приходится решать линейную, систему (6.4.116). В случае большой раз- реженной матрицы коэффициентов это само по себе представляет огром- ную проблему, которую мы будем рассматривать в гл. 8. В этом разделе мы кратко обсудили два классических метода отыска- ния собственных значений и собственных векторов больших разреженных матриц. И хотя оба эти метода при определенных обстоятельствах оказы- ваются полезными, ни один из них нельзя рекомендовать в качестве универсального алгоритма. Существуют более новые и более сложные методы, изложение которых выходит за рамки настоящей книги. Однако можно сказать, что пока еще не разработан удовлетворительный алгоритм вычисления собственных значений и собственных векторов больших разреженных матриц общего вида. Дополнительные замечания и ссылки 6.4 Исключительно богатая информация о более глубоких вопросах, относящихся к материалу .как этого, 1ак и других разделов настоящей главы, имеется в книгах [78,84] (см. также [6,20,56]). Хотя в этом разделе мы ограничились анализом алгоритмов для случая матриц с и линейно независимыми собственными векторами, такой анализ можно распространить на произвольные матрицы. Полное исследование степенного метода и метода обратных итераций дано в книге [84]. Анализ метода отношений Рэлея приводится в работе [28]. Изложение двух выглядящих многообещающими методов - метода Ланцоща и метода подпространств - имеется в книге [56]. 213
УПРАЖНЕНИЯ 6.4 6.4.1. Матрица [211 1 2 J имеет собственные значения 1 и 3, которым соответствуют собственные векторы (1, -1) и (1, 1). Выполните для этой матрицы несколько шагов степенного метода (6.4.5), начиная с вектора х^ = (1, 0). Продолжите итерации до тех пор, пока ие станет ясно, какова скорость сходимости. 6.4.2. Составьте программу для степенного метода (6.4.5). Проверьте ее на матри- це из предыдущего упражнения и на матрице (6.2.14). 6.4.3. Пусть А - матрица из упражнения 6.4.1. Примените степенной метод к мат- рице со сдвигом А — (1/2) / и проанализируйте увеличение скорости сходимости. 6.4.4. Пусть {х*} - последовательность векторов, порождаемая формулой (6.4.2). Предполагая выполненным условие (6.4.1), покажите, что для любой вектор- ной нормы II Xfc+] I /1 Xfcl -»|Х,| при к -»«>. 6.4.5. Примените метод обратных итераций (6.4.7) с параметрами сдвига о= 2; 2,5; 2,9 к матрице из упражнения 6.4.1. Рассмотрите скорость, сходимости к собст- венному вектору, соответствующему собственному значению 3. Для каждого значе- ния параметра сдвига проанилизируйте скорость сходимости с помощью формулы (6.4.8)., 6.4.6. Для матрицы А из упражнения 6.4.1 выполните несколько итераций (6.4.11), начиная с вектора xj = (1, 0). Сравните ваши результаты с результатами, полученными в упражнении 6.4.1.
Глава 7 ПРОСТРАНСТВО И ВРЕМЯ 7.1. Уравнения в частных производных В предыдущих главах мы рассматривали обыкновенные дифферен- циальные уравнения, т.е. уравнения с одной независимой переменной. Эта независимая переменная была либо временем, как в случае задачи о траек- тории или модели хищник — жертва гл. 2, либо пространственной перемен? ной, как в задаче из гл. 3. Мы теперь перейдем к изучению вопросов численного решения дифференциальных уравнений с двумя и более неза- висимыми переменными — дифференциальных уравнений в частных производных. В этой главе двумя независимыми переменными будут время и одна пространственная переменная, а в следующей главе мы обсудим задачи с более чем одной пространственной переменной. В качестве примеров мы будем рассматривать уравнения U,=CUXA, = сихх, (7.1.1) (7.1.2) известные как соответственно уравнение теплопроводности (или уравне- ние диффузии) и волновое уравнение. Уравнение теплопроводности (7.1.1) является прототипом параболического уравнения, а уравнение (7.1.2) служит классическим примером гиперболического уравнения. Третий стандартный тип уравнений в частных производных составляют эллиптические уравнения. Простейший пример этого типа дает уравнение Лапласа (или уравнение потенциала) ихх + иуу О- с которым мы будем иметь дело в гл. 8. (7.1.3) Дх D Рис. 7.1 Мы сначала кратко покажем, как уравнение (7.1.1) возникает в качест- ве математической модели распространения тепла. Давайте рассмотрим тонкий стержень, вытянутый вдоль оси х, как показано на рис. 7.1. Мы предполагаем, что стержень полностью теплоизолирован, за исключением, может быть, концов, и поток тепла может распространяться только в направлении оси х. Пусть ы(т, х) — температура стержня (в кельвинах) в точке х в момент времени t и а — площадь поперечного сечения стержня. Из элементарной физики известно, что количество тепла, которое проте- 215
кает в единицу времени через сечение, перпендикулярное оси стержня, есть — каих, где к > 0 — коэффициент теплопроводности. Таким образом, если градиент температуры их в данном сечении отрицателен, т.е. темпера- тура слева выше, чем справа, то в полном соответствии с интуитивными представлениями тепло через зто сечение будет течь слева направо. Следо- вательно, если мы рассмотрим элемент стержня длины Дх, то в единицу времени в этот элемент через сечение х втекает количество тепла, равное (—каих)\х, и вытекает через сечение х+Дх количество тепла, равное (— каих}\х+дх, т.е. количество тепла в элементе изменяется на (-каих)|х - (-fceMIx+A*. (7.1.4) С другой стороны, из элементарной физики также известно, что коли- чество тепла, которым обладает элемент, пропорционально массе элемента и его температуре; более точно, оно равно sti&xpu, где s — удельная теплоемкость материала, а р — его плотность (масса в единице объема). Следовательно, производная по времени от количества тепла в элементе равна (7.1.4), т.е. sabxput = (каих)\х+Лх - (каих)\х. Переходя здесь к пределу при Дх->0, получаем ut= — (kux)x. (7.1.5) sp Если к не зависит отх, то зто уравнение сводится к (7.1.1), где с = к/ (sp). Следовательно, производная от температуры по времени в таком тонком стержне пропорциональна второй производной от температуры по прост- ранственной переменной. Как и в случае обыкновенных дифференциальных уравнений, для выделения решения уравнения в частных производных необходимо задать некоторые начальные и (или) граничные условия. Давайте посмотрим, какие условия мы можем наложить на решение уравнения теплопровод- ности в задаче о стержне. Пусть в начальный момент времени t = О нам известно распределение g (х) температуры в стержне; мы здесь считаем, что длина стержня равна 1, причем его левый конец находится в точке х=0. Предположим также, что концы стержня поддерживаются при постоянной температуре, т.е. u(t, 0) = о, u(r,l) = 0, (7.1.6) где а и Р — заданные константы. Соотношения (7.1.6) являются гранич- ными условиями по пространственной переменной х. В качестве началь- ного условия мы используем заданное начальное распределение тем- пературы u(O,x)=g(x), 0<х<1. (7.1.7) Таким образом, приходим к следующей физической формулировке задачи. Имеется стержень, концы которого поддерживаются при фик- сированных температурах а и 0. Считая начальное распределение темпе- ратуры вдоль стержня известным, требуется найти температуру любой точки стержня х в произвольный момент времени t > 0. Математической 216
моделью этой проблемы служит дифференциальное уравнение в частных производных ut-cuxx, c = k/(sp), 0<х<1, (7.1.8) с граничными условиями (7.1.6) и начальным условием (7.1.7). Некоторые вариации этой постановки задачи можно моделировать, изменяя граничные условия или само уравнение. Если, например, правый конец стержня будет, подобно его боковой поверхности, абсолютно Рис. 7.2. Колеблющаяся струна изолирован, то через этот конец тепло теряться не будет, поток обратится в нуль и граничные условия (7.1.6) примут вид и(1,0) = в, ux(/;i)=O. (7.1.9) Другой вариант постановки связан с отказом от молчаливого предполо- жения об однородности стержня. Если, например, стержень сделан из сплава, состав которого является медленно изменяющейся функцией х, то плотность, теплопроводность и теплоемкость стержня тоже, вообще говоря, будут функциями от х Следовательно, задача теперь будет опи- сываться уравнением (7.1.5), где р=р(х), s=s(x) и к = к(х). Это уже уравнение не с постоянными, а с переменными коэффициентами. Идя еще дальше, можно учесть, что в общем случае коэффициент теплопро- водности зависит не только от материала, но и от температуры. Во многих задачах эта зависимость настолько слаба, что ею можно пренебречь. Но бывают ситуации, когда этого сделать нельзя, т.е. приходится считать, что к = к (и), и уравнение (7.1.5) становится нелинейным. Отметим, что уравнение теплопроводности служит математической моделью и для целого ряда других физических явлений, как, например, диффузия газа. Давайте теперь обратимся к волновому уравнению (7.1.2): utt =сихх. Это уравнение, а также его обобщения, моделирует широкий круг вопро- сов, связанных с распространением волн, например, задачи акустики. Мы сейчас кратко обсудим одну классическую задачу, которая модели- руется этим уравнением, — задачу о колебании струны (это может быть, например, скрипичная струна). Рассмотрим упругую струну, которая натянута вдоль оси хи закрепле- на в точках х = 0 и x-L (рис. 7.2). Если струну оттянуть и отпустить, то она начнет колебаться, как показано на рисунке. Будем считать струну ’’идеальной”, т.е. предположим, что струна абсо- лютно гибкая и что натяжение Т постоянно по длине струны, не зависит от г и велико по сравнению с весом струны. Обозначим отклонение стру- ны в точке х в момент г через u(t, х) и будем предполагать, что изучаемые нами отклонения и малы по сравнению с длиной струны L. Кроме того, предположим, что в любой точке тангенс угла наклона изогнутой струны много меньше единицы и что горизонтальное смещение точек струны 217
пренебрежимо мало по сравнению с вертикальным (вертикальное смеще- ние иногда называют поперечным). Мы также предполагаем, что струна колеблется в одной плоскости. На основании второго закона Ньютона — сила равна произведению массы на ускорение — можно с помощью довольно элементарных рас- суждений показать, что отклонение струны удовлетворяет уравнению ^tt = cuxx, с=Т/т, (7.1.10) где т — удельная масса материала (масса единицы длины). Чтобы пол- ностью сформулировать задачу, мы еще должны задать необходимые начальные и граничные условия. Так как концы струны закреплены в точках х = 0 и х=L, граничные условия имеют вид u(f, 0)=0, и(г,£)=0. (7.1.11) В качестве начальных условий мы должны задать начальное отклонение и начальную скорость точек струны; в данном случае и(0,х)=Л*), ut(0,x) = 0. (7.1.12) Таким образом, дифференциальное уравнение (7.1.10), граничные условия (7.1.11) и начальные условия (7.1.12) полностью определяют математическую модель задачи. Цель этой книги, разумеется, состоит в изучении методов численного решения задач. Тем не менее здесь уместно напомнить один классический способ получения аналитического представления решений уравнений (7.1.1) и (7.1.2) с помощью рядов Фурье. Хотя соответствующая техни- ка применима только при весьма ограничительных предположениях, уравнение теплопроводности и волновое уравнение вместе с рассмотрен- ными нами типами начальных и граничных условий позволяют ее исполь- зовать. Мы имеем в виду метод разделения переменных, к весьма крат- кому описанию которого мы сейчас переходим. Предположим, что решение уравнения (7.1.1) может быть представле- но в виде u(t,x) = v(r)w(x), (7.1.13) т.е. в виде произведения функции, которая зависит только от г, на функ- цию, зависящую только от х; отсюда происходит термин разделение переменных. Подставляя (7.1.13) в (7.1.1), мы получаем v’(t) w (х) = cv(t)w"(x), (7.1.14) или, считая, что значения ии w отличны от нуля, v'(r) w"(x) -77=с-7Т- (7.1.15) и (Г) w(x) Так как левая часть (7.1.15) есть функция только от г, а правая часть — функция только от х, заключаем, что обе части должны равняться неко- торой константе, скажем р. Тогда и'(г) = д n(0, cw"(x) = pw(x). (7.1.16) Общее решение первого уравнения (7.1.16) имеет вид u(r)=Cie**f, (7.1.17) 218
где ct — произвольная постоянная. Второе же уравнение (7.1.16) есть просто задача на собственные значения, обсужденная нами в разделе 6.1. Рассмотренная там задача (см. (6.1.10) и (6.1.11)) имела собственные функции и»(х)= sinfcTrx, 0<х< 1, Л=1,2,..., (7.1.18) и собственные значения —Л2 я2. С учетом константы с соответствующие значения ц определяются выражением ц = —ск2и2, it =1,2,... (7.1.19) Таким образом, если константа д задана по формуле (7.1.19), то функ- ция w вида (7.1.18) является решением уравнения cw" = цш. Отметим, что это решение может обращаться в нуль в некоторых точках отрезка [0, 1], и в этих точках правая часть (7.1.15) не будет определена. Однако равенство (7.1.15) служит для нас только наводящим соображением. Важно, чтобы функции v и w удовлетворяли соотношению (7.1.14), а при выполнении (7.1.16) зто имеет место. Таким образом, и это легко проверить непосредственной подстановкой, любая функция вида u(t,x)= e~ckl,,it sink-nx, (7.1.20) где к — положительное целое, удовлетворяет уравнению (7.1.1). Хотя функция (7.1.20) удовлетворяет дифференциальному уравне- нию, она не обязана удовлетворять заданным начальным и граничным условиям. Давайте рассмотрим частный случай граничных условий (7.1.6) вида u(f, 0) = 0, u(t, 1) = 0, (7.1.21) и предположим, что начальное условие может быть представлено в виде конечного тригонометрического полинома п u(0,x) = Е ак sin к их. (7.1.22) к = 1 Тогда легко убедиться, что функция u(t,x) = S afce-cfc,,r7sinJtffX (7.1.23) к = 1 является решением (7.1.1) (любая линейная комбинация решений (7.1.1) снова является решением (7.1.1)) и, кроме того, удовлетворяет гранич- ным условиям (7.1.21) и начальному условию (7.1.22). Выписанное решение (7.1.23) основано на конечном разложении (7.1.22), но из теории рядов Фурье известно, что очень широкий класс функций, а следовательно, и начальных условий, может быть представлен в виде бесконечного разложения К(х)~ S afcsinfc;TX, (7.1.24) fc = i где t ак = ?f g(z)sin(k7rz)dz. о 219
В этом случае, по аналогии с (7.1.23), решение может быть представлено в виде бесконечного ряда u(t,x) = S аке ск* sin к их, (7.1.25) к = 1 котя строго доказать этот факт уже не так просто, как для (7.1.23). Метод разделения переменных можно применить и к волновому урав- нению, и мы ограничимся тем, что приведем соответствующий (7.1.25) результат для уравнения (7.1.10) с граничными условиями (7.1.11) и тачальными условиями (7.1.12). Если предположить, что первое началь- ное условие (7.1.12) допускает разложение в ряд ~ / кпх \ /(х) = S a^sinl-------), (7.1.26) fc.= i \ L / о с учетом второго начального условия (7.1.12) искомое решение пред- :тавимо в виде u(t,x) = S afcsini—-x)cos(— \fct ). (7.1.27) к = i \ L / XL / хли (7.1.26) является конечной суммой, то, как и в случае (7.1.22), тот результат легко проверяется непосредственно, без каких-либо техни- еских трудностей. Хотя в некоторых специальных случаях приведенные разложения в яды можно использовать для получения численных результатов, мы не отели бы создать впечатление, что эти разложения должны служить осно- ой для построения численных методов. Такие представления скорее называются полезными для получения качественной информации о введении решения дифференциального уравнения. Например, из (7.1.23) сно видно, что, так как с > 0, u(t, х) ->0 при t и к тому же выводу южно прийти из бесконечного разложения (7.1.25). Мы воспользуемся гой информацией в следующем разделе при обсуждении конечно-разност- ых методов. С другой стороны, мы видим, что решение (7.1.27) не со- ержит множителей, обеспечивающих экспоненциальное затухание по ремени, и, более того, u(r, х) вообще не стремится к нулю при t ->«>. 'тсюда следует, что волновое уравнение не может служить законченной математической моделью реальной колеблющейся струны. И действи- ями), мы пренебрегли силами трения, которые приводят к постепенному нуханию колебаний. Дополнительные замечания и ссылки 7.1 Метод разделения переменных в сочетании с рядами Фурье представляет собой гассический аппарат решения простых дифференциальных уравнений, который шагается в большинстве учебников по уравнениям в частных производных. Такие юбники обычно содержат дополнительные примеры и выводы соответствующих >авнений (см., например, [4,17,58]). Для более глубокого изучения можно ре- >мендовать [8, 26, 35]. При моделировании физических явлений с помощью уравнений в частных проиэ- дных во многих, если не в большинстве случаев, используется не одно отдельное авненне, а система таких уравнений. Классификация уравнений на эллиптические, Ю
гиперболические и параболические может быть распространена и на случай систем уравнений, однако под эту замечательную классификацию подпадает сравнительно мало систем, моделирующих реальные физические ситуации. УПРАЖНЕНИЯ 7.1 7.1.1. Покажите, что функция (7.1.20) удовлетворяет уравнению (7.1.1) при любом целом к. Затем убедитесь, что (7.1.23) является решением (7.1.1), удовлет- воряющим граничным условиям (7.1.21) и начальному условию (7.1.22). 7.1.2. а) Покажите, что функция (7.1.28) является решением волнового уравнения (7.1.2) с граничными условиями «(г, 0) - п = 0, U(t, JD) = 0 и начальными условиями «f(0, х) = 0, «(0, х) = 2 ак sin(fcrrx/L). fc= I б) Составьте программу, которая будет выводить на графический терминал частное решение и(х, Г) = sin(irx) cos(wr) таким образом, чтобы было ясно видно, как колеблется струна. Проделайте то же самое для более сложных решений, вклю- чающих два и три члена (7.1.28). 7.2. Явные методы и проблема устойчивости В этом разделе мы начинаем изучение конечно-разностных методов реше- ния уравнений в частных производных и, в частности, уравнений из преды- дущего раздела. Сначала мы рассмотрим уравнение теплопроводности ut=cuxx, 0<х<1, т>0, (7.2.1) с начальным условием u(0,x)=g(x), 0<х<1, (7.2.2) и граничными условиями и(Г, 0) = a, u(t, 1) = 0, t > 0. (7.2.3) Введем иа плоскости (х, г) сетку с шагами Дх и Д(, как это показано на рис. 7.3. В основе простейшего конечно-разностного.метода Для уравне- ние. 7.3. Сетка на плоскости ния (7.2.1) лежит замена второй производной в правой части (7.2.1) центральной разностью по х и замена ut разностью вперед по t. Тогда мы можем получать приближенное решение, двигаясь шаг за шагом вперед по времени. Более точно, если обозначить значение приближенного решения 221
Рис. 7.4. Конечно-разностное решение уравнения ut - ихх при Xj -jAx и tm - те Дг через и™, то конечно-разностным аналогом (7.2.1) является уравнение — ит с Л L = , (и™ -2и™+ и™ J, Дг (Дх)2 ' + I f или (7.2.4) ит + 1 =и™. + + j= 1,...,Л, (7.2.5) где ц = c&tHjix)2. Граничные условия (7.2.3) определяют значения (7.2.6) Ко” = а, к j = 0, те = 0,1,... , а из начального условия (7.2.2) мы имеем t^=g(Xf\ /=1,...,л. Теперь ввдно, что формулы (7.2.5) дают нам правило, позволяющее нахо- дить приближенное решение шаг за шагом по времени: сначала мы опреде- ляем все значения ы*(/ = 1,... , л), затем все значения и2(/ = 1.п) и т.д. На рис. 7.4 изображено полученное таким способом решение при с= 1, g(x) = sinTrx, а = 0 = О, Дх = 0,1 и Дг = 0,005. Какова же точность вычисленного по формулам (7.25) приближенного решения? Хотя строгий ответ на этот вопрос представляет сложную пробле- му, выходящую за рамки книги, мы попытаемся получить некоторое представление о точности, рассмотрев два аспекта анализа ошибок. Пусть u(f, х) — точное решение уравнения (7.2.1) с начальным условием (7.2.2) и граничными условиями (7.2.3). Если подставить это точное решение в разностное уравнение (7.2.4), то оно удовлетворится не полностью, а с некоторой погрешностью, называемой локальной ошибкой 222
дискретизации (или локальной ошибкой усечения). Таким образом, локальная ошибка дискретизации в точке (г, х) есть u(t + Дг, x) — u(t, х) е =------------------- — Дг ------- [н(Г, х + Дх) — 2н(г, х) + u(t, х - Дх)]. (7.2.7) (Дх)2 Отметим, что локальная ошибка дискретизации введена точно так же, как в случае обыкновенных дифференциальных уравнений, и обладает аналогич- ными свойствами. Предположим, например, что нам известны значения точного решения u(t, х) при некотором t и всех хе [0, 1] _и мы хотим использовать (7.2.4) для получения приближенного решения в момент t + Дг. Если обозначить зто приближенное решение через u(t + Дг, х) ,то по определению u(t + Дг, х) — u(t, х) с О ------------------------------ [н(г, х + Дх) — 2н(г, х) + u(t, х - Дх)]. Дг (Дх)2 Вычитая зто равенство из (7.2.7), мы получаем u(t + Дг, х) — u(t + Дг, х) = еДг. (7.2.8) Таким образом, ошибка, допускаемая на одном шаге по времени по раз- ностной схеме (7.2.4), равна локальной ошибке дискретизации, умножен- ной на Дг. Величину е в (7.2.7) легко оценить через ДГ и Дх. Действительно, если рассмотреть и как функцию только от t, считая х фиксированным, то из разложения Тейлора u(t + ДГ, х) - u(t, х) + ut{t, x)At + О [(ДГ)2] мы имеем u(t + Дг, х) — и(Г, х) ----------f= ut(t, х) +O(At). At Действуя совершенно аналогично тому, как мы поступали при выводе (3.2.8), можно получить u(t, х + Дх) — 2u(t, х) + u(t, х — Дх) —---------’ *’ = uxx(t, х) + О [(Дх)2 ]. (Дх)2 Если теперь подставить два последних выражения в (7.2.7) и восполь- зоваться тем, что ut = сихх (так как и — точное решение дифференциально- го уравнения), то мы получим е = О(Д Г) + О [(Дх)2 ]. (7.2.9) Тот факт, что в выражение для локальной ошибки дискретизации At входит в первой степени, а Дх — во второй степени, обычно формулируют в виде утверждения, что конечно-разностный метод (7.2.4) имеет первый порядок точности по времени и второй порядок точности по пространственной переменной. 223
Было бы очень соблазнительно заключить из (7.2.8) и (7.2.9), что ошиб- ка дискретизации приближенного решения и полученного по формулам (7.2.5), стремится к нулю при стремлении к нулю Дг и Дх. К сожалению, такой вывод будет не обоснован, поскольку (7.2.8) дает нам ошибку приближенного решения только для одного шага по времени. Доказатель- ство того, что ошибка дискретизации стремится к нулю на всем отрезке [О, Г], достаточно сложное и в общем случае требует дополнительных данных о характере стремления к нулю Дг и Дх. Соотношение типа (7.2.9), или, в более общем случае, утверждение о том, что при Дт->0 и Дх->(Г шкальная ошибка дискретизации стремится к нулю, является по существу необходимым условием стремления к нулю глобальной ошибки дискрети- гации и называется условием согласованности разностной схемы. То, что из югласованности разностного метода не обязательно следует сходимость триближенного решения к точному, связано с проблемой устойчивости >азностных схем. Некоторые аспекты этой проблемы мы сейчас обсудим га примере разностной схемы (7.23). В предыдущем разделе мы с помощью метода разделения переменных [ рядов Фурье нашли решение дифференциального уравнения ut = cuxx. Действуя совершенно аналогично, мы можем получить точное решение >азиостного уравнения (7.2.5), удовлетворяющее граничным и начальным словиям "°- ..... (7.2.10) и® — задано, j = 1,..., и. [редположим, что решение и™ может быть представлено в виде = ’ /=1,...,и, ш = 0,1,... (7.2.11) та формула дает пример разделения переменных для разностных уравне- ий. Подставляя (7.2.11) в (7.2.5) и группируя члены, получаем , ,=1........ Wj ак как в этом равенстве левая часть не зависит от /, а правая — от т, то 5е части должны равняться некоторой константе, скажем —X. Таким зразом, i>m + i =-Xnvm, т=0,1,..., (7.2.12) wi+1 -2w/ + wj_1 =-Xwj, (7.2.13) ;e из граничных условий (7.2.10) имеем w0 = wn + j =0. Уравнения (7.2.13) •едставляют собой задачу на собственные значения для трехдиагональной ггрицы 2 -1 2 2 -1 -1 2 (7.2.14)
(чтобы матрица имела именно такой вид, мы взяли константу X со знаком ’’минус”)- В разделе 33 мы показали (см. (3.5.26)), что эта матрица имеет собственные значения Х*=2 —2cos—— , Л = 1....и, (7.2.15) п +1 и соответствующие собственные векторы wk = [sin(£nAx), sin(2£nAx), - - • ,ф1(лЛяДх)], к = 1,..., п, где Дх = 1/(л + 1). Таким образом, при каждом X = X* значения wj = sin (/Ля Дх), / = 0,1.п + 1, (7.2.16) удовлетворяют (7.2.13). В то же время очевидно, что (7.2.12) при лю- бом X имеет решение vm = (1 -Хд)ти0, те = 0,1,..., так что соотношения umw; = (l—Х*д)тып(/ЛяДх), те = 0,1... / = 0,1..и + 1, при каждом к определяют решение (7.2.5). Как и в случае дифференциаль- ных уравнений, линейная комбинация этих решений также является реше- нием. Следовательно, и!” = S я*(1-Хлд)т8т(/ЛяДх), к = 1 (7.2.17) те = 0,1,..., / = 0,1,..., и + 1, есть решение (7.2.5) при любых значениях констант ак. Если ак вычислить . по формулам ак = S ^(х/)8ш(Ля/Дх), Л = !,...,и, (7.2.18) i = 1 то решение и™ будет удовлетворять начальному условию Uf=g(x,), /=1.....и. (7.2.19) Давайте теперь посмотрим на представление (7,2.17) с другой стороны. Как мы видели в предыдущем разделе, уравнение ut = сихх с граничными условиями u(t, 0) = u(r, 1) = 0 является математической моделью задачи о распределении температуры в тонком изолированном стержне, концы которого поддерживаются при нулевой температуре. Так как источники тепла отсутствуют, то мы ожидаем, что температура всех точек стержня будет стремиться к нулю, т.е. что и (t, х) -+0 при t ->«>. Как уже упомина- лось в предыдущем разделе, к этому выводу можно прийти чисто математи- ческим путем, если рассмотреть представление решения в виде разложений (7.1.23) или,(7.1,25) и учесть, что все экспоненциальные множители стремятся к нулю. 15. Дж. Ортега 225
Таблица 7.1. Неусгой<апое поведение Г/Х 0,1 0,2 0,3 0,4 0 0,31 0,59 0,81 0,95 0,04 0,19 0,36 0,49 0,57 0,08 0,11 0,22 0,29 0,35 0,12 0,07 0,13 0,18 0,21 0,16 0,04 0,08 0,11 0,13 0,20 0,026 0,05 0,07 0,08 0,24 0,016 0,03 0,04 0,05 0,28 0,009 0,02 0,02 0,03 0,32 0,006 0,01 0,01 0,02 0,36 0,004 0,005 0,04 -0,14 0,40 -0,007 0,12 -0,77 3,20 0,44 0,537 -3,97 18,7 -62,0 Г/х 0,5 0,6 0,7 0,8 0,9 0 1,0 0,95 0,81 0,59 0,31 0,04 0,61 0,58 0,49 0,36 0,19 0,08 0,37 0,35 0,29 0,22 0,11 0,12 0,23 0,21 0,18 0,13 0,07 0,16 0,14 0,13 0,11 0,08 0,04 0,20 0,08 0,08 0,07 0,05 0,03 0,24 0,05 0,05 0,04 0,03 0,01 0,28 0,03 0,02 0,03 0,004 0,02 0,32 -0,01 0,09 -0,13 0,20 -0,13 0,36 0,53 -1,22 2,09 -2,43 1,70 0,40 -9,13 19,0 -29,3 32,2 -21,6 0,44 152,9 —286,9 409 -428 279 Поэтому естественно потребовать, чтобы и конечно-разностные аппро- ксимации Ку" стремились к нулю при Из (7.2.17) видно, что при произвольных начальных условиях это будет иметь место в том и только том случае, если | 1 - дХ* | < 1, к = 1,..., и. (7.2.20) Так как д и все Х& положительны, (7.2.20) будет выполняться в том и только том случае, если —(1 — дХ&) <1, к = 1,...,и, или если . 2 Л яи \ /. я X д < min — = 11 —cos-------J = (1 + cos-------I . (7.2.21) к Xfc X и+1/ \ и + 1/ 226
я ell +cos---- \ Л+ 1. ДГ < (Дх)2 Мы здесь использовали то, что наибольшим из является Х„. Так как д = с,ДГ/(Дх)2,из (7.2.21) получаем (7.2.22) Условие (7.2.22) дает ограничение на соотношение шагов Дг и Дх. Если зто условие не будет выполнено, то в общем случае полученное по разностной схеме (7.2.5) приближенное решение uj" будет расходиться при т -*• °° и, как легко видеть, будет все хуже и хуже аппроксимировать стремящееся к нулю решение дифференциального уравнения. В табл. 7.1 приведены дан- ные, которые демонстрируют возникновение неустойчивости на примере той же самой задачи, которая представлена на рис. 7.4, но при шагах Дх = 0,1 и Дг = 0,04, при которых условие (7.2,22) не выполняется. Обра- тите внимание иа то, что неустойчивость начинает проявляться при t = 0,32 и затем стремительно нарастает. Мы можем заменить (7.2.22) несколько более сильным условием Дг < (Дх)2/(2с), (7.2.23) из которого (7.2.22) всегда следует. Условие (7.2.23) называют условием устойчивости разностной схемы (7.2.5). Мы пришли к этому условию, рас- смотрев поведение uj” при m -*• «> при фиксированных Дг и Дх. Но это условие относится также и к вопросу о стремлении к нулю ошибки дискре- тизации при стремлении к нулю Дг и Дх. На самом деле, хотя доказатель- ство этого факта выходит за рамки настоящей книги, можно показать, что если Дг и Дх будут стремиться к нулю так, что будет выполняться (7.2.2.3), то соответствующие приближенные решения будут сходиться к точному. Это — частный случай более общего принципа, известного как теорема эквивалентности Лакса, который для весьма широкого класса дифференциальных уравнений и согласованных разностных схем утверж- дает, что глобальная ошибка дискретизации будет стремиться к нулю в том и только том случае, если используемый разностный метод устойчив. При уменьшении шага по пространству Дх условие (7.2.23) налагает все более жесткие ограничения на величину шага по времени (см. табл. 7.2, Таблица 7.2 Максимум шагов по времени для заданного Дх и с = 1 Дх д t Дх дг Дх дг 0,1 0,5 • IO*’ 0.01 0,5 10-* 0,001 0,5 • 10-‘ где с = 1). Это может привести к тому, что нам придется двигаться по вре- мени со значительно меньшим шагом, чем зто обусловлено зависимостью от времени решения самого дифференциального уравнения. Хотя проведен- ный нами анализ был ограничен простейшим дифференциальным уравие нием и простейшей разностной схемой, требование малости шага по време ни представляет собой общую проблему, возникающую при решении пара- 227 15*
болических и подобных им уравнений с помощью явных конечно-разност- ных методов. Это же требование является основным побудительным моти- вом для использования так называемых неявных методов, которые будут рассматриваться в следующем разделе. Мы теперь перейдем к гиперболическим уравнениям и рассмотрим вол- новое уравнение = сихх, 0 < х < 1, 0, (7.2.24) с начальными и граничными условиями u(0,x)=/(x), uf(0,x)=£(x), u(t,0) = а, u(r,l) = 0. (7.2.25) Как мы видели в предыдущем разделе, задача (7.2.24)—(7.2.25) является математической моделью колеблющейся струны. Вероятно, самой простой разностной схемой для (7.2.24) будет "I + 1 ~ т . т-1 К. — Z и, Т Ц1 с (Дг)2 (Дх)2("/+1-2Ы/ (72’26) Чтобы выписать эту схему, мы для аппроксимации ихх и ип воспользова- лись той же обычной формулой центральных разностей, которую мы использовали для аппроксимации ихх в (7.2.4). Обратите внимание на то, что схема (7.2,26) связывает теперь значения на трех уровнях времени, и чтобы перейти на уровень т + 1, необходимо знать как и™ , так и»™ -1. Хотя, в противоположность методу (7.2.5) для уравнения щ - Одсх/нам приходится выделять дополнительную память для хранения uj” ~1, все зто является естественным следствием того, что дифференциальное уравнение содержит вторую производную по времени. Чтобы приступить к вычисле- ниям, нам необходимо задать значения ни}, которые можно получить из начальных условий (7.2.25): «/° = /(хД «/* = /(х/) + Д^(х/), / = 1, -, п. (7.2.27) Вторая формула здесь возникла в результате аппроксимации начального ус- ловия uf(0, х) = g(x) разностным отношением [и(ДГ, х) — к(0, х)]/ДТ = = £(х). Из граничных условий мы имеем u™ = а, и™+1 = р, т = 0,1,... (7.2.28) Таким образом, значения приближенного решения на (m + 1) -м временном слое можно найти по формуле Ui ~2UI ~Uf +ll(Uf+i-2uf +ul_1), (7.2.29) где д = с(Дт)2 /(Дх)2. Легко показать, что локальная ошибка дискретизации схемы (7.2,26) есть О [ (Дг)2 + (Дх)2], т.е. эта разностная схема имеет второй порядок точности как по пространственной переменной, так и по времени (упраж- нение 7.2.4). Для анализа устойчивости мы можем опять воспользоваться 228
методом разделения переменных, предполагая, что значения а и Р в гранич- ных условиях равны нулю. Пусть и™ = vmWf. Подставляя зто представле- ние в (7.2.26), получаем ^m+i ~ 2 vm + vm_j — — X(xvm, т — 1,2,..., (7.2.30) wt+1 -Iwj + Wj-! - -Xw/, j = (7.2.31) Уравнения (7.2.31) совпадают с (7.2.13), так что их решения определяются выражениями (7.2.15)—(7.2.16). Уравнения (7.2.30) внешне имеют ту же форму, что и (7.2.31), но, по существу, представляют собой разностный аналог задачи Коши, где значения и0 и считаются заданными. В разде- ле 2.5 мы показали (см. (2.5.11)—(2.5.14)), что решение (7,2,30) записы- вается в виде »т = 71 чГ + 7гчТ, т = 0,1,..., где ч± — корни характеристического уравнения г? + (Хд —2)ч+1=0, т.е, Ч± = -|(2-Хд ± \/х2д2 — 4Хд), а коэффициенты у{ можно определить по заданным начальным условиям у о и и 1. Таким образом, решение (7.2.26) может быть представлено в виде nj" = S «*<7*1 Я* + + 7к 2ri™ )«т(/ХттДх), (7.2.32) к = 1 ’ ’ ’ где индекс к указывает, что соответствующие у и ч вычисляются при X = Х&. Чтобы значения к” оставались ограниченными при произволь- ных а к и любых начальных условиях, необходимо и достаточно, чтобы I rik ± I < 1. Как легко проверить, если Х*д - 4 < 0, (7.2.33) то 1± I= 1. а если Х*д — 4>0, то чЛ < —1. Следовательно, (7.2.33) является необходимым и достаточным условием устойчивости. Так как соб- ственные значения Xк заключены в интервале 0 < Хк < 4, то для выполне- ния (7.2.33) достаточно, чтобы д < 1, или Дг < Дх/V? (7.2.34) Это условие является, по существу, и необходимым. Дело в том, что Х„ -* 4 при и-хЮ'Так что любое, бол ее слабое, чем (7.2.34), условие приведет при достаточно больших и к нарушению условия (7.2,33). Условие устойчиво- сти (7.2.34) налагает на Дг гораздо менее жесткие ограничения, чем усло- вие (7.2.23) в случае уравнения теплопроводности. Действительно, из (7.2.34) видно, что Дг следует уменьшать пропорционально Дх, а не квад- рату Дх, как в случае (7.2.23), Хотя мы в этом разделе имели дело только с простыми уравнениями, те же самые принципы построения конечно-разностных методов применимы и к более общим задачам, включающим как одно уравнение, так и системы 229
уравнений. Во всех этих случаях необходимо помнить о возможности воз- никновения неустойчивости, хотя такой простой анализ, который был про- веден в этом разделе, для большинства случаев окажется невозможен. Дополнительные замечания и ссылки 7.2 Мы только слегка затронули конечно-разностные методы для параболических и гиперболических уравнений. В частности, мы рассмотрели только методы первого и второго порядков точности, хотя имеется множество методов более высокого поряд- ка. Более существенно то, что мы ограничились явными методами, а большинство эффективных методов для параболических уравнений являются неявными. Неявные методы будут изложены в следующем разделе. Обсуждение большого круга различ- ных методов можно найти в книгах [46, 89, 107]. В работах [26, 65] разбираются многие методы и проводится строгий анализ ошибки дискретизации и критериев устойчивости. На метод разделения переменных, приводящий к (7.2.17), можно взглянуть и с теоретико-матричных позиций. В матричной записи разностный метод (7.2.5) имеет вид m+1 _ m . m _ , и = и - цАи , m-U, 1,...,. где Л-матрица (7.2.14), а ит - вектор с координатами и™ ;..., и”. Матрица Н = = I - д А имеет собственные значения 1 - ц kk и собственные векторы Wfe, где X* и v>k есть соответственно собственные значения и собственные векторы матрицы А. Следовательно, если и и* = £ «kAvk k = l есть разложение и® по собственным векторам матрицы А, то ит = Нит~1 = ... = Нти* = S ak(l-MX*)mwk, k = 1 что совпадает с (7.2.17). УПРАЖНЕНИЯ 7.2 7,2.1. Примените разностный метод (7.2.5) для аппроксимации решения уравнения иг = ихх с граничными условиями u(t, 0) = 0, и(Г, 1) = 1 и начальным условием u(0, х) = sin(nx) + х. Используйте разные значения At и Ахи проанализируйте получающиеся решения. При каких соотношениях At и Ах ваше приближенное решение оказывается устойчивым? 7,2,2. Непосредственной подстановкой убедитесь, что (7.2.17) является реше- нием (7.2,5). Проверьте также, что если коэффициенты ак вычислены по форму- лам (7.2.18), то удовлетворяется условие (7.2.19). 7,2.3. Повторите вычисления и убедитесь в верности данных, приведенных в табл. 7.1. 7.2.4. Используйте примененный в этом разделе к уравнению теплопроводности подход для доказательства того, что метод (7.2,26) для волнового уравнения имеет второй порядок точности как по времени, так и по пространству. 7.2.5. Составьте программу для решения волнового уравнения (7.2.24) с началь- ными и граничными условиями (7.2.25) по разностной схеме (7.2.26). Используйте вашу программу для случая с = 1, У(х) = sin(rx) и различных значений АГ и Ах. Убедитесь, в частности, что при выполнении (7.2.34) счет идет устойчиво. 230
7,3. Неявные методы Рассмотренный в предыдущем разделе конечно-разностный метод (7.2.5) взывается явным, потому что значения uj"+1 на следующем временном лое вычисляются по явным формулам через значения на предыдущем слое. J противоположность этому давайте рассмотрим для уравнения тепло- проводности ut - сихх, 0<х<1, t > 0, (7.3.1) взностную схему =...................................... <7Л2) 1о форме зта схема подобна (7.2.4), но здесь имеется существенное отли- че, заключающееся в том, что значения и/ в правой части теперь вычис- шются на (т + 1)-м временном слое, а не на т-м слое. Если нам, зная зна- тения к” (/ = 1,..., л), нужно вычислить uj"+1 (; = 1.и),то обнару- жим, что значения всех переменных и/ в правой части (7.3.2) нам неизвест- 1ы. Следовательно, мы должны рассматривать (7.3.2) как систему уравие- мй, определяющую значения uj"+1 (/ = 1,.... л). В этом и состоит одно из сновных различий между явными и неявными методами: в явных методах 4ы имеем явные формулы, такие как (7.2,5), позволяющие выразить через значения и/ в предыдущие моменты времени, а в неявных мето- дах для перехода на следующий временной слой нам приходится решать систему уравнений. Давайте проанализируем систему (7.3.2) более детально. Если, как > предыдущем разделе, положить д = сДт/(Дх)2, то (7.3.2) можно пере- гисать как (1+2д)иу”+1 -Д(М/Т11+«9-7 ) = «/"*. /=1 п> ли. в матрично-векторной форме, 1+2д -Д -д 1+2д —д -д 1 + 2д. (7.3.3) (7.3.4) 231
При выводе (7.3.4) мы использовали те же самые граничные условия u(t,O) = a, u(t,l) = 0, (7.3.5) к к л что и в предыдущем разделе, так что, как и раньше, и„ = а и ип+1 = р при к = 0, 1, ...; эти значения вошли в правые части первого и последнего урав- нений (7.3.4). Начальное условие мы считаем заданным в виде и(О,х) = /(х), 0 < х < 1, (7.3.0) так что =f(xj), j = 1,.... п. Неявный метод (7.3.4) заключается теперь в определении uj"+l по и™ с помощью решения на каждом шаге по времени системы линейных уравне- ний (7.3.4). Матрица системы (7.3.4) трехдиагональна и, так как с > О, а следовательно, и д > О, является диагонально доминирующей (см. раз- дел 3.2). Как мы видели в разделе 3.4, такую систему уравнений можно эффективно решить методом гауссова исключения без какого-либо упоря- дочивания. В данном конкретном случае мы можем вычислить множите- ли L и U только один раз и использовать их на всех последующих шагах, но в задачах более общего вида это может оказаться невозможным. Хотя система (7.3.4) может быть решена достаточно эффективно, этот метод требует больших затрат на один шаг по времени, чем явный метод (7.2.5). Однако в. качестве компенсации за эти дополнительные затраты мы получаем существенный выигрыш в устойчивости метода, что во многих случаях позволяет нам использовать значительно больший шаг по времени, чем в явном методе, и тем самым сильно сократить необходимое машинное время. Мы сейчас кратко наметим схему анализа устойчивости неявного метода, следуя образцу предыдущего раздела. Предположим, как и раньше, что а = 0 = 0. Тогда разложению (7.2.17) соответствует представление = £ ^7“ sin (Ля/Дх). (7.3.7) к = 1 Если ук = р + 2д^1 + cos • Л (7.3.8) то (7.3.7) тождественно удовлетворяет разностным уравнениям (7.3.3) при любых значениях коэффициентов ак. Если вычислить а к по формулам ак = 2 / (х,) sin (Лтг/Дх), (7.3.9) i = I то значения и? будут удовлетворять начальным условиям. Доказательство этих утверждений вынесено в упражнение 7.3.2. Давайте теперь вспомним, что при обсуждении в предыдущем разделе мы пришли к выводу, что приближенное решение будет отражать поведение решения дифференциального уравнения только в том случае, если и'" -* 0 при т Из (7.3.7) видно, что в общем случае это будет 232
иметь место тогда и только тогда, когда 17*! < 1, Л=1,...,л. (7.3.10) Но, так как ц >0, из (7.3.8) мы получаем 0 < 7* < 1, Л=1,...,л, (7.3.11) так что (7.3.10) действительно выполняется. Наиболее существенным является то, что (7.3.11) выполняется при любом ц > 0. Так как ц= сЫКДх)2, отсюда следует, что (7.3.11) выполняется при любом соотношении Дг и Дх. В таком случае говорят, что метод является безусловно устойчивым, понимая под этим устойчивость метода при лю- бом отношении Дт к Дх. Тот факт, что метод (7.3.4) безусловно устойчив, отнюдь не означает, что мы будем получать хорошее приближенное решение при любом выбо- ре Дт и Дх. Как и всегда, они должны быть достаточно малыми, чтобы обеспечить малость ошибки дискретизации. Можно показать (см. упражне- ние 7.3.3), что метод (7.3.4), как и соответствующий явный метод (7.2.5), имеет первый порядок точности по времени и второй порядок точности по пространственной переменной, т. е. ошибку дискретизации можно предста- вить в виде «(Дт, Дх) = О[(Дт) + (Дх)2]. Допустим, что е(ДГ, Дх) « С! Дг+с2(Дх)2. Тогда для соизмеримости вкладов в полную ошибку от дискретизации по времени и Дискретизации по пространству мы должны потребовать, чтобы ДГ «= сз(Дх)2. Последнее соотношение напоминает условие устойчивости (7.2.23) для яв- ного метода (7.2.5). Таким образом, мы видим, что хотя условие устойчи- вости нашего неявного метода не накладывает никаких ограничений на со- отношение шагов Дт и Дх, требования к точности могут привести к возник- новению подобных ограничений. Потенциально лучшим в этом отношении оказывается известный метод Кранка - Николсона, который, по существу, является-усреднением явного (7.2.4) и неявного (7.3.2) методов. Действительно, если взять среднее правых частей (7.2.4) и (7.3.2), то мы получим т + 1 . т_ _Э»т+1 +»ж+1 4-.,"» Т.,"' 4..,"» т М/ 7 ~ ЭГЛуТЗ 1 7+1 7 7-1 +М/-1Л * ' (7.3.12) Если теперь положить д = сДТ/(2(Дх)2), то при записи (7.3.12) в мат- рично-векторной форме левая часть будет идентична (7.3.4), а правая часть примет вид дм™ -(2д— 1)иГ +2да, ди™1-(2д-1)и;™+ди™1> / = 2,...,л-1, (7.3.13) 2дР-(2д-1)и™+ди™_1. 233
Следовательно, метод (7.3.12) опять сводится к решению на каждом шаге по времени трехдиагональной системы уравнений. Матрица коэффициентов этой линейной системы совпадает с матрицей системы (7.3.4), а вектор правых частей, который задается формулами (7.3.13), определяется чуть более сложно, чем в (7.3.4), так что метод (7.3.12) требует на каждом шаге по времени несколько большего объема вычислений. Преимущество мето- да (7.3,12) заключается, однако, в том, что он не только является безуслов- но устойчивым, как и (7.3.4), но и имеет второй порядок точности как по пространственной переменной, так и по времени. Доказательство этих т+1 • • • • ... т • • • • ... у-1 J J-1 J J+1 J-1 J J+1 а б в Рис. 7.5. Шаблоны для различных методов: а) явный метод (7.2.5); G) неявный ме- тод (7.3.4) ; в) метод Кранка - Николсона утверждений предлагается провести в упражнении 7.3.5. Указанные свойст- ва сделали этот метод одним из наиболее часто используемых методов решения параболических уравнений. Различные разностные методы, такие, как (7.2.5), (7.3.4) и (7.3.12), удобно запоминать с помощью ’’шаблонов”, изоТбраженных на рис. 7.5. Эти шаблоны показывают, какие точки сетки участвуют в данной разностной схеме. Использование неявных методов стало обычной практикой при числен- ном решении параболических уравнений в частных производных. Дело в том, что выигрыш, связанный с хорошей устойчивостью неявных схем, значительно перевешивает ту дополнительную работу, которая необ- ходима при осуществлении шага по времени. Большинство фактически используемых методов имеет более сложную структуру, чем схема Кранка - Николсона, но принципы остаются теми же. Однако для. задач с несколькими пространственными переменными непосредственное пере- несение на их решение методов этого раздела оказывается неудовлетвори- тельным. Здесь приходится использовать специальную технику, речь о которой пойдет в разделе 8.2. Аналогичным образом можно построить неявные методы и для гипербо- лических уравнений, таких, как волновое уравнение из предыдущего разде- ла. Однако, как мы видели на примере волнового уравнения, требования устойчивости в этом случае обычно не накладывают на явные схемы жестких ограничений на размер шага по времени. Вследствие этого неявные методы для гиперболических уравнений используются на практике доволь- но редко, и мы не будем на них останавливаться. Дополнительные замечания и ссылки 7.3 Ссылки, указанные в разделе 7.2, относятся и к неявным методам. В частности, в книге [64, с. 189—191] представлен в виде шаблонов целый ряд конечно-разностных методов для параболических уравнений. 234
УПРАЖНЕНИЯ 7.3 7,3.1. Составьте программу, реализующую метод (7.3.4), и используйте ее для ре- шения задачи из упражнения 7.2.1. Задавайте разные значения Дг и Дх и проверьте на практике устойчивость метода. Проанализируйте ваши результаты в сравнении с ре- зультатами упражнения 7.2.1, включая относительную простоту и эффективность реализации этих двух методов, 7.3.2. Следуя схеме предыдущего раздела, проверьте, что (7.3.7) удовлетво- ряет (7.3,3). 7.3.3. Следуя схеме анализа, использованной в предыдущем разделе, убедитесь, что локальная ошибка дискретизации удовлетворяет соотношению (7.2.9). 7.3.4. Измените вашу программу из упражнения 7.3.1 так, чтобы она вышсляла вектор правой части по формулам (7.3.13) и реализовывала тем самым метод Кранка - Николсона. Проанализируйте ваши результаты и сравните этот метод с (7.3.4). - 7.3.5. Покажите, что решение разностных уравнений метода Кранка - Николсона (7.3,12) при граничных условиях с а = fi = 0 имеет вид (7,3.7), где у* = (1-д Xfc) / (-1+ + ц Xfc). Здесь Хк = 2 - 2cos[fc»r/(n+1)|, ц = сдг/(2(дх)а).'Докажите, что метод является безусловно устойчивым. Покажите также, что этот метод имеет второй поря- док точности как по пространству, так и по времени. 7.3.6. Метод Дюфорта - Франкела для уравнения теплопроводности имеет вид iZ”+1 - = [ДГ-с/(Дх)а- mJ”+1 - и™-1 Покажите, что этот метод безусловно устойчив. Представьте его в виде явной формулы *). 7.4. Полудискретные методы Мы теперь рассмотрим другой подход, который использует проекцион- ные принципы, изложенные в гл. 5, и заменяет дифференциальное уравне- ние в частных производных аппроксимирующей системой обыкновенных дифференциальных уравнений. В принципе, этот подход можно применять к уравнениям как параболического, так и гиперболического типа. Мы сна- чала проиллюстрируем его на примере уравнения теплопроводности ut = cuXx< 0<х<1, Г>0, (7.4.1) с начальными и граничными условиями w(O,x)=/(x), w(r,O) = O, u(t, 1) = 0. (7.4.2) Пусть, как и в разделе 5.1, функции <pt (х), .,.,у>„(х) составляют набор базисных функций, удовлетворяющих граничным условиям задачи, т.е. Йк(О) = О, Фк(1) = 0, к=1.....п. (7.4.3) Мы будем искать приближенное решение и уравнения (7.4.1) в виде и u(r, х) = S а/(Г)у>/(х), (7.4.4) i = 1 где функции а/(г) подлежат определению. Подчеркнем, что это тот же са- мый подход, что и в гл. 5, с тем лишь исключением, что мы теперь *) Покажите, что при Дх-» О и Дг -»0, так что дг/дх-» О, эта схема согласована с исходным дифференциальным уравнением. - Примеч. ред. 235
’’позволяем” коэффициентам а, линейной комбинации базисных функций зависеть от t, что соответствует природе рассматриваемой задачи. Чтобы определить неизвестные коэффициенты а/, можно воспользовать- ся любым из критериев раздела 5.1. Сначала мы рассмотрим метод колло- кации. Пусть 0 < х> < ... < хп < 1 — узлы сетки (не обязательно равно- мерной) по переменной х. Потребуем, чтобы приближенное решение (7.4.4) удовлетворяло в этих точках дифференциальному уравнению. Так как ut(t,x) = Е а/(г)фДх), ихх = Е «/(Оф/'ОО, i = 1 i = i это означает, что мы требуем выполнения соотношений Е af(t)>pt(xf) = c Е аДО¥>"(*/), / =(7.4.5) i = 1 /= 1 Если ввести матрицы размера п X п A = {4>j{xl)\ B = c(rf(xl)) (7.4.6) и векторы с л координатами «(О = («1(0. -> «и(0), а'(0 = («К*). «л(0). то (7.4.5) можно переписать как Л«'(0 = (7.4.7) или, если предположить, что А невырождена, и положить С = А"1 В, — как л'(г) = Са(Г). (7.4.8) Уравнение (7.4.8) представляет собой систему л обыкновенных диффе- ренциальных уравнений относительно функций а{. Чтобы решить зту си- стему, мы должны еще задать для нее начальные условия. Если потребовать, чтобы приближенное решение и удовлетворяло начальному условию (7.4.2) в точках X],..., х„, то получим Е a/(0)(/?/(x/)=/(xJ), /=1,...,л. i = 1 или А а(0) = f, (7.4.9) где f = (/(Xj)...../(х„)). Согласно нашему предположению матрица А «вырождена, так что а(0) = A~lf. (7.4.10) Итак, мы свели задачу к решению системы обыкновенных дифферен- циальных уравнений (7.4.8) с начальным условием (7-.4.10). Если бы мы иогли решить эту систему точно, то функция и, определенная в (7.4.4), тала бы нам приближенное решение исходной задачи. Такие методы назы- >36
вают полу дискретными, потому что мы с помощью базисных функций </>/ и точек сетки х{ провели дискретизацию только по пространству, а время оставили как непрерывную переменную. На практике, однако, система дифференциальных уравнений (7.4.8) должна решаться численно, а это связано с введением дискретизации по времени, так что термин ’’полу- дискретные” является несколько* условным. Тем не менее с идейной точки зрения введение дискретизации только по пространственным переменным и сведение тем самым исходной задачи к системе обыкновенныхдифферен- циальных уравнений оказывается полезным. Давайте используем для численного интегрирования системы (7.4.8) простой метод Эйлера, рассмотренный в гл. 2. Если взять точки — на равном расстоянии друг от друга с шагом Д?, то метод Эйлера примет вид а**1 = а* + ДгСа*. 4 = 0,1,..., (7.4.11) где через ак обозначено приближенное решение в момент На практике обычно не используют схему (7.4.11), так как это требует вычисления мат- рицы С = А"1 В, а работают непосредственно с дифференциальным уравне- нием (7.4.7) и соответствующим методом Эйлера Aak+1 = Аак + AtBak, 4 = 0,1,... (7.4.12) Это означает, что на каждом шаге по времени будет решаться система ли- нейных уравнений (7.4.12) с матрицей коэффициентов А. В этом случае L {/-разложение матрицы А достаточно выполнить только один раз, запом- нить множители L и l/и использовать их на всех последующих шагах. В принципе, возникающую задачу Коши, для обыкновенных дифферен- циальных уравнений можно решать и любым из методов более высокого порядка, описанных в гл. 2. В упражнении 7.4.2 предлагается выписать соответствующие формулы для некоторых из этих методов в случае (7.4.8). Однако уравнения (7.4.8) обычно оказываются довольно ’’жест- кими” в смысле гл. 2, и при использовании явных методов их приходится интегрировать с весьма малым шагом. В силу этого может оказаться более выгодным использование таких методов, как метод трапеций. В примене- нии к (7.4.7) метод трапеций (2.5.38) имеет вид а*+1=а* + ~ (А~'Вак+1+А~'Вак), откуда, умножая слева на матрицу А и собирая вместе коэффициенты при а*+1 и лк, получаем Л (7.4.13) Для реализации этого метода необходимо на каждом шаге решать ли- нейную систему, аналогичную (7.4.12), но с матрицей коэффициентов А, за- мененной на А — (Д//2)В. Если эта последняя матрица является невырож- денной, то мы, в принципе, можем действовать точно так же, как и раньше, т.е. Юдин раз вычислить множители L и U и использовать их при решении 237
систем (7.4.13) на последующих шагах. Если вычитание из А матрицы не приведет к существенному осложнению реализации £(/-разло- жения, то затраты при счете по методу (7.4.13) не будут намного больши- ми, чем в методе Эйлера. Однако, как мы видели в гл. 2, метод трапеций имеет второй порядок точности и позволяет использовать для жестких уравнений более крупный шаг по времени. Следовательно, этот метод больше подходит для данной задачи. Тот же самый подход можно применить и к гиперболическим уравне- ниям. Мы сейчас покажем это на примере волнового уравнения utt = cuxx, 0<х<1, г>0, (7.4.14) с начальными и граничными условиями н(0,х)=/(х), Hf(0,x)=g(x), u(t, 0) = 0, u(t, 1) = 0. (7.4.15) Гиперболические уравнения, такие, как (7.4.14), обычно сводят к систе- ме уравнений, в которую входят только первые производные по времени. Это совершенно аналогично ситуации с обыкновенными дифференциаль- ными уравнениями. Напомним, что в гл. 2 мы сводили уравнения более высокого порядка к системам обыкновенных дифференциальных урав- нений первого порядка. В случае (7.4.14) мы осуществим это сведение, введя функцию v (Z,x) такую, что ut=avx, vt=aux, (7.4.16) где a = \fc. Если функции и и v являются решением системы (7.4.16) и обладают достаточной гладкостью, то, дифференцируя первое из урав- нений (7.4.16) по t, а второе — по х, мы получаем utt -OVxt — avrx — O^UXX — CUXX, т.е. и — решение (7.4.14). При этом начальные и граничные условия (7.4.15) принимают вид 1 * н(О,х)=/(х), и(О,х) = — J g(s)ds, а о м(Г, 0) = 0, u(z,l)=O. (7.4.17) Пусть теперь <pi (х).....„(х) и Vх! (х),..., ф„(х) — два набора базис- ных функций, удовлетворяющих условиям Л(О) = Л(1)=ФХО)-ФИ1) = О, 1=1_________п. (7.4.18); Мы будем искать приближенные решения и к v системы (7.4.16) в виде и(х, 0= Е а,(г)^(х), и(х, 0=2 ДДОФ/ЗД. (7.4.19) »= 1 »= 1 Если мы потребуем, чтобы эти приближенные решения удовлетворяли уравнениям (7.4.16) в точкахXj....х„, то придем к соотношениям Е a/(0w(*/) = а Е ft(f) ф^Д /= 1,.... и, /=1 i=l П П (7.4.20) 2 Дг(ОФ/£/) = а I а&У(>\(хЛ, f = 1.......л, »-1 /=1 238
представляющим собой связанную систему обыкновенных дифференциаль- ных уравнений относительно неизвестных функций а,,..., о„ и ..., р„. Как и раньше, из (7.4.17) получаем начальные условия 2 а,(О)^(х/)=/(х/), f=l л 1 2 Л(0)Ф/(х/) =— f g(s)ds, j=l...........П. *=1 a о Мы здесь опять предполагаем, что матрицы (Ф/(х/)) и (^/(х/)) являются невырожденными. Таким образом, полудискретный метод для волнового уравнения (7.4.14) полностью аналогичен соответствующему методу для уравнения теплопроводности с единственным исключением, что система обыкновенных дифференциальных уравнений теперь содержит вдвое боль- ше неизвестных функций. В двух приведенных примерах мы при дискретизации по пространствен- ной переменной основывались на принципе коллокации, хотя могли бы воспользоваться также и рассмотренным в гл. 5 методм Галеркина. Для дискретизации можно использовать и конечно-разностную аппрок- симацию, которую сейчас кратко обсудим на примере уравнения тепло- проводности (7.4.1). Если и — точное решение (7.4.1), то в узловых точ- ках Xj,... ,хп должны выполняться приближенные соотношения (Дх)2 [п(Г, х/+1) - 2и(Г, х,) + w(r, х,_!)] - (7.4.21) Это ведет к следующей процедуре. Мы хотим найти л функций (0> • • • ..., vn (т) таких, что v,(t) ^>u(t, xf), i = l..л. Приближенные соотношения (7.4.21) наводят на мысль, что эти функции можно попытаться найти как решение системы обыкновенных диф- ференциальных уравнений v'i(О = 77 ki+1 (0 - 2w/(r) + !>/_ 1 (Г)]. / = 1,..., и, й2 (7.4.22) в которой в соответствии с граничными условиями (7.4.2) функции и0 и у„+1 считаются тождественно равными нулю. Кроме того, из начального условия (7.4.2) мы имеем «/(0)=/(х,), i = 1,.... л. (7.4.23) Система (7.4.22) удобно записывается в матричной форме как v'(f)=77^ Av(t)’ (7.4.24) (Дх)2 где теперь А — просто трехдиагональная матрица (7.2.14). Если мы при- меним к этой системе метод Эйлера, то получим m+i = vm-------Ауо т = 0,1,... (Дх)2 239
В покоординатной форме мы приходим к формулам сДг „т + 1 т + ------(VT+1~2.VT +«7-1), 1 = 1, • • • ,П, 1 * (Дх)® 1 1 ’ т =0,1,..., представляющим собой просто явный метод (7.2.5). Аналогично этому неявный метод (73.2) получается при применении к (7.4.24) обратного метода Эйлера, а метод Кранка — Николсона (73.12) возникает в резуль- тате применения к (7.4.24) метода трапеций (2.538). Описанную процедуру, приводящую к системе обыкновеных диффе- ренциальных уравнений (7.4.24), иногда называют методом прямых, и потенциально этот метод имеет очень широкую область применения. Дополнительные замечания и ссылки 7.4 Вопросы, связанные с использованием полудискретных методов, являются предметом активного исследования, и пока еще нельзя окончательно сказать, сколь велика эффективность этих методов по сравнению с другими. Дальнейшее обсуж- дение этих вопросов можно найти в книге [47]. Наиболее универсальное математическое обеспечение численного решения диф- ференциальных уравнений в частных производных, включающих зависимость от вре- мени, основывается на методе прямых (см. [42*]). Преимущество этого подхода заключается в возможности использовать отличное математическое обеспечение, разработанное для решения обыкновенных дифференциальных уравнений [96]. Опи- сание основанных на методе прямых различных пакетов математического обеспече- ния для решения дифференциальных уравнений в частных производных общего вида имеется в работах [43,45,72,104]. УПРАЖНЕНИЯ 7.4 74.1. а) Выпишите явно систему уравнений (7.4.7) для базисных функций <Рк(х) = - sin(fcwx), k = 1,... , я, считая, что узловые точки х,.«„находятся неодинаковом расстоянии друг от друга. Составьте программу, реализующую метод Эйлера(7.4.12) при я = 10 и Д/ = 0,1. Просчитайте по этой программе 20 шагов по времени, задавая различные начальные условия; б) проделайте то же самое, используя в качестве <рк квадратичные сплайны, рассмотренные в разделе 5.2. 7.4.2. Для системы (7.4.8) выпишите в явном виде формулы методов Рунге—Кутта и Адамса — Башфорта второго и четвертого порядков. 74.3. Составьте программу, реализующую метод трапеций (7.4.13) для задач из упражнения 7.4.1. 744. Проделайте снова упражнение 7.4.1 для уравнений (7.4.20), возникающих из водного уравнения. Считайте, что в пункте а) все и являются тригонометри- ческими функциями, а в пункте б) - квадратичными сплайнами.
Глава 8 ПРОКЛЯТИЕ РАЗМЕРНОСТИ 8.1. Задачи с двумя и тремя пространственными переменными В предыдущей главе мы рассматривали уравнения в частных производ- ных с двумя независимыми переменными: временем и одной пространст- венной переменной. Поскольку физические процессы происходят в трех- мерном мире, математические модели лишь с одной пространственной пе- ременной связаны с существенным упрощением реальной физической ситуации. Правда, зги модели часто оказываются достаточными для таких физических явлений,* которые обладают различными симметриями или в которых изменения по двум из трех измерений происходят настолько медленно, что ими можно пренебречь. Однако крупномасштабные задачи научного программирования сейчас все в большей степени включают более детальный анализ проблем, в которых интерес представляют все три прост- ранственных направления или по крайней мере два из них. В зтой главе мы будем иметь дело с задачами, которые описываются уравнениями с несколькими пространственными переменными, однако для простоты изложения мы ограничим любые детальные рассмотрения двумерным случаем. В предыдущей главе мы вывели уравнение теплопроводности (8.1.1) как математическую модель изменения температуры в длинном тонком стержне. Давайте теперь рассмотрим ту же самую задачу для трехмерно- го куба, изображенного на рис. 8.1. Вывод уравнения (8.1.1) непосредственно распространяется на случай трех измерений, и при этом в уравнении появляются частные производные по всем трем переменным х,укг. Таким образом, обобщение (8.1.1) на случай трех пространственных переменных имеет вид Uf — c(Uxx +Uyy +Mzz)> (8.1.2) где по-прежнему константа с есть отношение коэффициента теплопровод- ности к произведению удельной теплоемкости на плотность. (Предпола- гается, что эти величины являются постоянными, т.е. не зависят от време- ни и пространственных переменных.) Уравнение (8.1.2) моделирует температуру и как функцию времени и точек внутри тела. Для завершенности модели мы, как обычно, должны задать начальные и граничные условия. Задание граничных условий проще всего продемонстрировать на соответствующем двумерном случае: = с{ихх +Uyy). (8.1.3) Уравнение (8.13) можно рассматривать как математическую модель 16. Дж. Ортега 241
изменения температуры в тонкой плоской пластинке. Мы будем считать, что эта пластинка представляет собой единичный квадрат, показанный на рис. 8.2. Простейшим видом граничных условий является задание температуры на всех четырех сторонах пластинки: u(t,x,y)=g(x,y) на сторонах пластинки, (8.1.4) где g — заданная функция. В качестве другой возможности можно, напри- мер, предположить, что одна из сторон, скажем х= 0, абсолютно иэолиро- Рис. 8.1. Трехмерный куб Рис. 8.2. Плоская тонкая пластинка вана. Тогда поток тёпла через эту сторону равен нулю, что приводит к граничному условию «х 0. 0,у) = О, О <>’ < 1, (8.1.5) которое может сочетаться с заданием условий (8 Л .4) на других сторонах. Граничные условия вида (8.1.5) обычно называют условиями Неймана, а вида (8.1.4) — условиями Дирихле. Возможны также различные комби- нации таких условий, включая задание отличного от нуля потока тепла через границу. В трехмерном случае граничные условия задаются совершен- но аналогично. Кроме граничных условий, мы должны также указать распределение температуры в некоторый начальный момент времени, кото- рому у нас соответствует t = 0. Для (8.1.3) начальное условие имеет вид u(P,x,y)=f(x.y). <8.1.6) Из физических соображений ясно, что, каково бы ни было начальное распределение температуры (8.1.6), при заданных граничных условиях вида (8.1.4) и (или) (8.1.5) со временем должно установиться некоторое окончательное стационарное распределение, которое определяется только этими граничными условиями. Во многих случаях основной интерес пред- ставляет определение именно этого стационарного состояния. Так как ста- ционарное решение не зависит от времени, то оно должно удовлетворять уравнению(8.1.3), где щ = 0, т.е. должно удовлетворять уравнению Лапласа ихх + иуу =0» (8.1.7) которое, как упоминалось в предыдущей главе, является примером эллип- тического уравнения. Если бы нас в задаче о распределении температуры ин- тересовало только стационарное решение, то мы, в принципе, могли бы действовать двумя способами - либо решать уравнение (8.1.3) относитель- 242
но и как функции времени до выхода на стационарный режим, либо не- посредственно искать стационарное решение из уравнения (8.1.7). Уравнение Лапласа является математической моделью и для множества других физических явлений. Так, в частности, его иногда называют урав- нением потенциала, потому что потенциал электростатического поля </> удовлетворяет уравнению 'Рхх + 'Ру у + *Pzz —0, (8.1.8) представляющему собой трехмерное уравнение Лапласа. Этому же уравне- нию удовлетворяет потенциал магнитного поля в магнитостатике и потен- циал поля гравитации в теории гравитации Ньютона. Мы сейчас дадим краткий вывод уравнения (8.1.8) для случая гравита- ционного потенциала. Напомним, что согласно закону всемирного тяготе- ния сила притяжения между двумя точечными массами m и mi с коорди- натами (x,y,z) и (х^у^г,) описывается вектором gmm, F-—r—(x-Xi,y-yi,z-Zi), (8.1.9) г где g — гравитационная постоянная, а г — евклидово расстояние между точками расположения масс*). Как легко проверить (упражнение 8.1.1), вектор F является градиентом потенциала -gmnii <р(х, у, z) = ----, (8.1.10) Г т.е. F=(fPx,<Py. Pz)- (8.1.11) Давайте рассмотрим более> общий случай, когда имеется несколько то- чечных масс т\......тп с координатами (xt,yt,zt). Если здесь ввести потенциал как « Ш; <p(x,y,z)=g Z , (8.1.12) '=» ri где г, = [(х - х,)2 + (>• - У,)2 + (г - г,-)2] V2, (8.1.13) то вектор силы, которая действует на единичную массу, расположенную в точке (x,y,z), будет также задаваться выражением (8.1.11). Во многих си- туациях, однако, предположение о точечности масс оказывается недостаточ- но реалистичным и приходится вместо (8.1.12) использовать интегральную формулировку. Пусть p(x,y,z) задает плотность вещества в некотором объеме V как функцию координат. Тогда, по аналогии с (8.1.12), можно определить потенциал в точке (х, у, z) как р(х,у, z)dxdydz У>(х. У, z) = g fff------------- , (8.L14) V Г *) Вектор (8.1.9) равен силе, действующей со стороны массы т на массу ш,.- Примеч. пер. 16* 243
где r = r(x,y, z;x, у, z) = [(x -x)2 + (y-y)2+ (z - z)2] */2 . И снова гравитационная сила в точке (x,y,z), обусловленная описываемым функцией р распределением масс, будет определяться выражением (8.1.11). Дифференцируя (8’.1.14), получаем р(Х, у, Z)(X - X) а.л.л <Рх = -gfff--------j------dxdydz V г3 и аналогично для и <рг. Вычисляя теперь вторые частные производные, находим Л Л Л Г 3(х-х)2 1 1 л л л 'Рхх = g fff Р(х, у, Z) --J--- - — dxdydz v L г г J и аналогичные выражения для <руу и <pzz. Складывая теперь выражения для вторых производных,.получаем 'Рхх Ру у + PzZ ~ О, т.е. потенциал удовлетворяет уравнению Лапласа (8.1.8). Уравнение Лапласа является простейшим примером эллиптического уравнения. В общем случае уравнение аихх +2buxy+cuyy + dux +еиу +fu =g, (8.1.15) где все коэффициенты а, Ь,... могут быть функциями х и у, называется эллиптическим, если [*(*.>’Я2 <«(*. J'W. >’) (8.1.16) при всех х и у из рассматриваемой области; зто уравнение называется ги- перболическим, если Ь2 >ас, и параболическим, если b2 = ас. Важный част- ный случай (8.1.15) представляет уравнение (п(х, у)“х)х + (с(*. >’>y).v = О, (8.1.17) которое при дифференцируемости и положительности коэффициентов а нс является эллиптическим. В следующих разделах мы рассмотрим методы, которые применимы к общим уравнениям эллиптического типа, заданным на областях довольно произвольного вида. Однако, чтобы не загромождать изложение, мы в ос- новном ограничим детальное обсуждение случаем двумерного уравнения Лапласа и квадратной области. Дополнительные замечания и ссылки 8.1 Теория эллиптических уравнений в частных производных, а также вывод конкрет- ных уравнений' вместе с дополнительными примерами имеются в той же литературе, которая была указана в дополнительных замечаниях к разделу 7.1. Во многих важных приложениях возникают уравнения эллиптического типа, имею- щие более высокий порядок. Так, например, бигармоническое уравнение ихххх + 2иххуу + иуууу = О моделирует распределение напряжений в теории упругости. Очень интересные, важные н сложные задачи связаны с уравнениями смешанного типа, в которых в одной части рассматриваемой области выполняется неравенство 244
(8-1.16), а в другой части - противоположное неравенство, т.е. в одной части области уравнение является эллиптическим, а в другой - гиперболическим. Такие задачи воз- никают, например, при изучении околозвукового воздушного потока, когда в одной части области (эллиптическая часть) поток является дозвуковым, а в другой части (гиперболическая часть) -сверхзвуковым. В этой задаче уравнение для функции, играющей роль потенциала, имеет вид (я’ — ФхУ'РхХ — <Ру <Рху + (°5 — 'РуУ'Руу ~ О- Здесь а - скорость звука, которая может быть функцией от* и у, а >рх н <ру представ- ляют собой составляющие скорости потока в направлениях осей х и у. Это уравнение при я’ > vx + >p*v является эллиптическим, при я2 = <рх+ </>}• — параболическим н при я 2 < >Рх + <Ру ~ гиперболическим. УПРАЖНЕНИЯ 8.1 8-1-1- Покажите, что вектор F в (8.1.9) является градиентом функции <р нз (8-1-10), т.е. что вектор F имеет координаты (<рх, <py,<pz)- 8.2. Дискретизация двумерных задач Мы теперь переходим к изучению методов численного решения эллип- тических уравнений. В гл. 3 и 5 была рассмотрена двухточечная краевая задача u"+au' + bu=f, и(0) = а, ы(1) = 0. (8.2.1) Уравнение (8-2-1) можно считать эллиптическим с одной независимой пере- менной, и нам хотелось бы перенести разработанные для этого уравнения конечно-разностные методы на случай двух независимых переменных. Мы сначала рассмотрим конечно-разностный метод для уравнения Пуас сона uXx+»yy=f- (8.2.2) Если стоящая в правой части функция f тождественно равна нулю, то это уравнение переходит в уравнение Лапласа. В качестве области мы возьмем единичный квадрат 0<х,у<1 на плоскости (х,у) и предположим, что на его границе заданы условия Дирихле, т.е. и (х, у)=g(x, у), (х, у) на границе, (8.2.3) где g - заданная функция. Введем на единичном квадрате равномерную сетку с шагом h как по горизонтали, так и по вертикали (рис. 8.3). Возьмем теперь произвольную точку сетки (х,у) и аппроксимируем значения производных ихх и иуу в этой точке с помощью обычных цент- ральных разностей: “**(*> J’)s*-"7 [u(x+/i,y)-2u(x.y) + u(x-/i,y)], (8.2.4а) /г иуу(х, [u(*,y + *)-2u(x,y) + w(x,y-/i)]. (8.2.46) Если мы подставим эти. выражения в дифференциальное уравнение (8.2.2), то получим приближенное равенство и(х + Л, у) + и(х - Л, у) + и(х, у + й) + + и (5, у - й) - 4и (х, у) « /17(5, у). (8.2.5) 245
Точное решение и уравнения (8.2.2) должно удовлетворять (8.2.5) в каж- дом узле сетки, лежащем внутри области. Внутренние узлы сетки задаются как (*i, У/) = (М. jh), i,j=\,..., N, (8.2.6) где (N+ 1)й =1. Мы потребуем, чтобы приближения иц к значениям ре- шения w(x/,J7) точно удовлетворяли равенствам (8.2.5) в N2 внутрен- них узлах сетки, т.е. чтобы м<+1 j + ui-1,/ + ut.j+1 + ui.j-1 -4м-7 = h*fib = (8.2.7) Мы получили систему из N2 линейных уравнений относительно (TV+ 2)2 (0,0) (0,1) (1,0) • ••••• TV+1 N+2 2N 12 * N Рис. 8.3. Сетка на единичном квадрате Рис. 8.4. Упорядочивание узлов сетки переменных Щ]. Заметим, однако, что переменные (j =0,... ...,7V+1) и uto>ut,N+i = 0,___________,N+ 1), соответствующие точкам сетки, лежащим на сторонах-квадрата, определяются из граничных усло- вий (8.2.3): «о/ = g(0, >’/). UN+1,/ = *(1, У/), i = 0, 1,..., N + 1, (8.2.8) “/о -g(xit 0), U/,w+i =g(x„ 1), i = 0,1,...,N + 1. Следовательно, (8.2.7) — зто линейная система уравнений относительно N2 неизвестных utj (/, / = 1,... ,7V), представляющих собой приближенные значения решения дифференциального уравнения (8.2.2) во внутренних узлах сетки (х/,у,). Таким образом, с вычислительной точки зрения зада- ча свелась к нахождению решения этой линейной системы. Отметим еще, что система (8.2.7) является естественным распространением на случай двух переменных х и у разностных уравнений, полученных в гл. 3 для ’’одномерного уравнения Пуассона” u"=f. Напомним, что зти уравнения имели вид ui+! - 2ut + uf_ 1 = h2fi, i = 1.....TV. Давайте рассмотрим систему линейных уравнений (8.2.7) более под- робно. Полезно переписать эту систему в векторно-матричной форме. С этой целью мы пронумеруем внутренние узлы сетки способом, указан- ным на рис. 8.4; этот способ иногда называют лексикографическим упо- рядочиванием. В соответствии с этим упорядочиванием мы объединяем неизвестные иц в вектор (“11.....UN1,U12, • • • ,UN2’ • • >uin, • • • >UNN) (8.2.9) 246
I в том же порядке выписываем уравнения (8.2.7), поменяв предвари- тельно знаки и перенеся известные из граничных условий члены в правую четь. В результате мы приходим к следующей матричной записи системы: 4-1 о • -1 4-10 0-10....... . . . -1 О......................... -1 4 -1 -1 0 о О о о X О О -1 4 О О О О . о о -1 -1 -1 0-. -1 -1 -1 0-1 0 . О О 4 О о О 4 О “11 «11 ’ “01 +“1» “го ~ ^*/11 uN-l,\ UN\ “12 “1 2 UN-1,O~ «N+1,1 + uN0 ~ h2fN.l (8.2.10) структура этих уравнений достаточно очевидна. Так, в частности, каждое равнение, которое соответствует внутренней точке, не примыкающей к ианице, содержит только неизвестные (и значение /), а .уравнения для «утренних узлов, примыкающих к границе, содержат в правой части ю крайней мере одно значение “//, которое задается граничными условия- ш. Хотя структура уравнений и видна из (8.2.10), такая запись довольно ромоздка. Значительно удобнее представить систему (8.2.10) в блочной оорме, т.е. записать матрицу Л в виде -Л ip Ярр "це элементы Ац саьш являются матрицами. Матрица коэффициентов -истемы (8.2.10) естественным образом представится в таком виде, если шести трехдиагональную 7VX TV-матрицу 247
и обозначить через In единичную матрицу порядка N. Действительно, тогд: матрица системы (8.2.10) размера N* XN2 есть просто блочная трехдиаг<- нальная матрица Tn -In -In Tn Tn -In -In Tn - Если мы, кроме того, введем векторы u, = (uIид,,)т, fi = (fti,...,fNi)T, »=1............ЛГ, Л1 = (“oi +м1о,мао.....un-i,o>un,o +Mw+i,i)r> bi = (иоь 0,.... 0, uN+1 ,/)г, i- 2,... ,N - 1, ^7V = (u0W +ul,N+l*U2'N+l.....UN-1.N+1,UN.N+1 +UN+1.n)T> то систему (8.2.10) можно записать в компактной блочной тпехлиагонал*- уравнений. Если N сравнительно невелико, скажем N= 100, то мы получаеь систему с № = 10* неизвестными и Матрицей коэффициентов размер,. 10000 X 10000. В то же время, каково бы ни было N, в каждой строк: этой матрицы имеется не более пяти отличных от нуля элементов. Следо- вательно, при больших N матрица становится очень слабо заполненной. Те кие матрицы обычно называются большими разреженными матрицами и они возникают не только при численном решении дифференциальны: уравнений в частных производных, но и в целом ряде других задач. Именно эта разреженность позволяет современным ЭВМ решать таки? большие системы уравнений с относительной легкостью. Напомним, чти как мы видели в гл. 3, для решения линейной системы размера п X п по м? тоду гауссова исключения требуется порядка п3 арифметических опер? ций. Следовательно, если бы линейная система размера 104 X 104 был- ’’плотной”, т.е. содержала мало нулевых элементов, то для ее решения м«г тодом гауссова исключения потребовалось бы порядка 10*2 операций Даже при использовании самых быстрых современных ЭВМ, обладающи: скоростью около 10* операций в секунду, для решения такой системь. понадобится несколько часов машинного времени. Тем не менее в этой гл- ве мы покажем, что учет специальной структуры и разреженности систеь вида (8.2.11) позволяет решать такие системы сравнительно быстро' к легко, несмотря на их большой размер. 248
Мы закончим этот раздел применением дискретизации, использованной нами-для уравнения Пуассона, к уравнению теплопроводности (8.1.3) с двумя пространственными переменными =с(ихх +иуу). (8.2.12) Для простоты изложения мы по-прежнему предполагаем, что областью изменения х и у является единичный квадрат, показанный на рис. 8.3, и что на сторонах этого квадрата заданы условия Дирихле (8.2.3). Мы также предполагаем, что задано начальное условие н(0,х, >•)=f(x, у). (8.2.13) По аналогии с методом (7.2.5) для случая одной пространственной пе- ременной мы можем легко построить явный разностный метод для урав- нения (8.2.12)-: u'” + i =и'” + (и™ + и'". , +ит, . + и™ . — 4и™ ), Ч Ч /,2 V 1.1+1 М-1 i+l,/ 1-1./ И " т=0,1,..., /,/ = 1...N. (8.2.14) Здесь и™ — приближенное решение в точке (/,/ ) пространственной сетки в момент времени m&t, а и™+1 — приближенное решение на следующем временном слое. Члены в круглых скобках, стоящие в правой части (8.2.14), в точности соответствуют дискретизации (8.2.7) при /// = О. Разностный метод (8.2.14) обладает теми же свойствами, что и его одномерный аналог (7.2.5): он легко реализуем и имеет первый порядок точности по времени и второй порядок точности по пространственным переменным. Этот метод приводит к аналогичному условию устойчивости Дг<й2/(4с), (8.2.15) и, следовательно, мы здесь сталкиваемся с той же самой проблемой: при малости й приходится двигаться с очень маленькими шагами по вре- мени. Можно попытаться обойти это ограничение на шаг по времени точно так же, как мы делали это в разеделе 7.3, т.е. используя неявные методы. Так, напримеп, неявный метод (7.3.2) здесь принимает вид с At “”+i +иГ/-1 и является безусловно устойчивым. Однако реализация этого метода тре- бует решения на каждом шаге по времени системы линейных уравнений Л2 т =-----ый, <?Д/ 1 /,/= 1,... ,7V. (8.2.17) Эта система имеет ту же форму, что и система (8.2.7) для уравнения Пуас- сона, с единственным отличием, состоящим в изменении коэффициента при . Действительно, левые части уравнений (8.2.17) в точности такие 249
же, как у конечно-разностных уравнении, аппроксимирующих уравнение Гельмгольца и** + иуу - си = 0, где о—заданная неотрицательная функция от х и у. Входящий в,это дифференциальное уравнение член — ои приводит к появлению в левой части разностных уравнений (8.2.7) члена —№оциц, где ац = a(xt, у^). Если взять о - то мы получим левую часть (82.17) (с противоположным знаком). В случае одной пространственной переменной использование неявного метода типа (7.3.2) не приводит к большим вычислительным трудностям, поскольку решение трехдиагональных систем уравнений находится доста- точно быстро. Однако каждый шаг по времени в (8.2.17) требует решения задачи типа двумерного уравнения Пуассона. Это представляет более слож- ную вычислительную проблему, методы решения которой будут рассмот- рены в двух последующих разделах. Метод Кранка — Николсона (7.3.12) тоже легко переносится на уравнение (8.2.12) (см. упражнение 8’2.3), но и он страдает тем же самым недостатком: на каждом шаге по време- ни приходится решать уравнение типа Пуассона. Мы сейчас, однако, рас- смотрим другой класс методов, где основным этапом вычислений снежа является решение трехдиагональных систем уравнений. Мы имеем в виду неявные методы переменных направлений. Вероятно, самым простым из этих методов является метод Писмэна - Рэчфорда: m+l/2 m . 1 С At m + 112 . m + l/2 Z п -2utf +«/,/+!+«,•./_ 1-2utf ), (8.2.18а) m m + l/2 , 1 cAt . m + 1 , m + 1 =uv +7 7г - “2«y +m/+1,/ + ~^utf )• (8.2.186) Его можно рассматривать как двухшаговый метод, где первый шаг — (8.2.18а) - состоит е вычислении промежуточных величин u^+l^2 (i,j = = 1,..., Лг). Значения интерпретируются как приближенные значе- ния решения в промежуточный момент времени (m -I-1/2) Дт; поскольку здесь шаг по времени равен Д</2, в правой части (8.2.18а) появляется мно- житель 1/2. Вычисления в (8.2.18а) связаны с решением для / = 1......N трехдиагональных систем уравнений \ m + l/2 m + l/2 m + l/2 z m . m m (2+a)Uf/- ~ui+lJ =(a — 2) Uy + Uf/+i + U,/_,. 1=1......N, (8.2.19) где « = 2Л2/(сД/), т.е. при каждом фиксированном / мы из трехдиагональ- ной системы (8.2.19) находим значения и”+1/2 (г» 1,..., IV). Матрица коэффициентов каждой из этих систем есть просто al + А, где А — трех- диагональная матрица (7.2.14). Таким образом, матрица al +А является строго диагонально доминирующей, и, следовательно, эти системы эффек- тивно решаются методом гауссова исключения беэ перестановок. 250
_ m+1/2 После того как промежуточные величины utj найдены, окончатель- ные значения и™+1 получаются из (8.2.186) решением при i = 1.......N трехдиагональных систем . т+1 т + 1 т+1 (2 +а)Ыу - Hi /+i - = z . т + 1/2 . т+1/2 , .. /о-> = (a-2)af/ + «/♦!,/ +u/-i,/ • (8.2.20) Матрицы коэффициентов этих систем также равны а/ + А. Таким образом, один шаг по времени требует решения 2N трехдиаго- нальных систем с N неизвестными. Можно .показать, что этот метод без- условно устойчив. Происхождение термина переменные направления объясняется тем, что мы в некотором смысле сначала с помощью (8.2.18а) аппроксимируем решение в направлении оси х, а затем, с помощью (8.2.186),в направлении оси у. Имеется множество вариантов метода Писмэна — Рэчфорда, в кото- рых применяется та же основная идея перемены направлений. Этот класс методов является одним из наиболее широко используемых при решении уравнений параболического типа. Эта же идея применяется и для построе- ния итерационных методов решения эллиптических уравнений, которые будут рассматриваться в разделе 8.4. Дополнительные замечания и ссылки 8.2 Мы в этом разделе ограничились обсуждением двумерного уравнения Пуассона-в квадратной области и соответствующего уравнения теплопроводности. Однако задачи, которые возникают на практике, обычно значительно отклоняются от этих идеальных условий: область может не быть квадратом; уравнение может содержать переменные коэффициенты или вообще быть нелинейным; на одной части границы могут задавать- ся условия Дирихле, а на другой - условия Неймана; задача может описываться не одним уравнением, а связанной системой уравнений в частных производных н может содержать три н более независимых переменных. Изложенные в этом разделе общие принципы построения разностных схем при этом не изменятся, но каждый нз пере- деленных факторов может вызвать дополнительные трудности. Одной из классических книг, посвященных конечно-разностным методам решения уравнений эллиптического типа, является книга [89] (см. также [70], где рассмат- риваются задачи гидродинамики и [107]). Обсуждение н анализ методов переменных направлений, а также родственных им методов, таких, как метод дробных, шагов, имеется в целом ряде книг (см. например, [7,64]. В последние несколько лет все более важную роль в решении уравнений эллипти- ческого н параболического типов играют метод конечный элементов н другие проек- ционные методы. Хотя разработка математических основ метода конечных элементов восходит к 1940-м годам, превращение его в жизнеспособную выделительную проце- дуру, особенно для задач структурного анализа, было осуществлено в 1950-х и )960-х годах, главным образом инженерами. С тех пор были получены более глубокие н ши- рокие математические результаты и была продемонстрирована применимость метода конечных элементов к эллиптическим н параболическим уравнениям общего вида. Одним нз главных достоинств метода является то, что он довольно успешно справля- ется с криволинейными границами. Для ознакомления с методом конечных элементов мы отсылаем читателя к книгам [47, 76]. УПРАЖНЕНИЯ 8.2 8.2. 1. Пусть функция и нужное число раз непрерывно дифференцируема. Разложите функцию и в ряд Тейлора в окрестности точки (х, у\ и покажите, что разностные аппроксимации (8.2.4)нмеютвторой порядокточюсти,т.е. uXJt(x,y)- 251
- (l/Л1) [u(x+Л, у) - 2u(x,j’)+ “(х - Л, у)] = О(Л’), и то же самое для аппрокси- мации Uyy. 8.2. 2. Выпишите в явномвиде уравнения (8.2.7), (8.2.10) и (8.2.11) для слу- чая ^ = 3. 8.23. Выпишите формулы метода Кранка - Николсона для уравнения (8.2.12). 8.3. Прямые методы для больших разреженных систем В разделе 8.2 мы пришли к системе линейных уравнений (8.2.10), ко- торую в матричной форме можно, как обычно, записать в виде Ах = Ь. При этом матрица А состоит в основном из нулей — в каждой строке и в каждом столбце имеется не более пяти ненулевых элементов. Кроме того, эти отличные от нуля элементы расположены регулярно — вее они находят- ся на пяти диагоналях. Если организовать вычисления так, чтобы не хранить нулевые элементы и выполнять операции только с ненулевыми элементами, то можно добиться значительной экономии памяти и времени счета. С этой точки зрения для нас будет разреженной такая матрица (или система), ко- торая позволяет с выгодой использовать наличие нулевых элементов — как их количество, так и расположение. В этом и следующем разделах мы бу- дем заниматься методами решения разреженных линейных систем. Существует два основных подхода к решению разреженных систем ли- нейных уравнений. Первый подход состоит в применении метода гауссова исключения, избегая при этом использования и запоминания-если не всех, то большинства нулевых элементов. Под методом гауссова исключения мы здесь понимаем как треугольную факторизацию, так и алгоритм Холецко- го. Важными моментами здесь являются порядок исключения неизвестных и структура данных, используемая для хранения информации об элементах матрицы. Этот метод рассматривается в настоящем разделе. Второй подход к решению разреженных линейных систем заключается в использовании итерационных методов. Главными здесь являются вопросы сходимости и скорости сходимости. Этот подход обсуждается в разделе 8.4. Как мы показали в гл. 3 и снова напомнили в разделе 8.2, для решения общей линейной системы уравнений размеряй X п требуется О(я3) арифме- тических операций и О(л2) ячеек памяти. Следовательно, вариант гауссова исключения для разреженных систем должен преследовать две основ- ные цели. 1. Уменьшить необходимое число операций эа счет невыполнения опере- ний с нулями. 2. Сократить требования к памяти за счет^хранения только отличных от нуля элементов и информации об их расположении. Именно этим вопросам будет посвящена остальная часть этого раздела. Давайте сначала рассмотрим матрицу системы (8.2.10), которая соот- ветствует лексикографическому упорядочиванию, показанному на рис. 8.4. При N = 4 мы получаем ленточную матрицу, представленную на рис.. 8.5. Если мы выберем другое упорядочивание, то. изменится и вид соответ- ствующей матрицы. Если, например, пронумеровать узлы сетки так, как показано на рис. 8.6, то придем к матрице, представленной на рис. 8.7. Такое упорядочивание называют черно-белым из-за его аналогии с распело-' жением белых и черных полей на шахматной доске. Эта матрица имеет довольно необычную структуру: если ее рассматривать как блочную, 252
1 23456 7 8 9 Ю 11 12 13 И 15 16 14-1 -1 2-1 4-1 -1 3 -14-1 -1 4 -14 -1 5-1 4-1 -1 6-1 -14 -1 -1 7 -1 -14 -1 -1 8 -1-14 -1 9 -1 4-1 -1 10 -1 -1 4 -1 -1 11 -1 -1 4 -1 -1 12 -1 -1 4 -1 13 -1 4 -1 14 -1-14 -1 15 -1-14 -1 Рис. 8.5. Матричное представление для рис. 8.4 при N= 4 состоящую иэ четырех квадратных блоков, то диагональные блоки являют- ся диагональными матрицами, а все ненулевые элементы внедиагональных блоков равны — 1. Эти две матрицы, которые показаны на рис. 8.5 и 8.7, играют важную роль при анализе итерационных методов, рассматриваемых в разделе 8.4. Вид матрицы, возника ^щей при разностной аппроксимации дифферен- циального уравнения (8.2.2), зависит от нескольких факторов. Порядок матрицы п определяется значением h, задающим размер ячейки сетки. Расположение ненулевых элементов зависит от упорядочивания узлов сет- ки. Это видно, если сравнить рис. 8.5 и 8.7. Далее, выбор конкретной раз- ностной аппроксимации (см. формулы (8.2.4)) определяет как величины ненулевых элементов, так й степень разреженности матрицы. Если, напри- мер, вместо (8.2.4) воспользоваться разностной аппроксимацией (3.2.36), то изменятся значения ненулевых элементов и их количество (в одной строке матрицы может оказаться до девяти отличных от нуля элементов (упражнение 8.3.4) ). Давайте рассмотрим другую разреженную матрицу, которая обладает гораздо меньшей регулярностью, чем матрицы, показанные на рис. 8.5 и 8.7. Эта матрица возникает при изучении проблемы безопасности пассажиров в автомобиле. Объект, представленный в виде графа на рис. 8.8, является грубой моделью так называемого динамического манекена. Каждому спо- собу нумерации узлов (или вершин) графа- соответствует разреженная матрица, структура которой определяемся следующим образом: если узел i связан ребром с узлом •/, то элемента# отличен от нуля. Матрица динами- 253
015 Ч 07 Б 016 Ч 08 Б 05 013 об 014 Б Ч Б Ч 011 оЗ 012 04 Ч Б Ч Б 01 о9 о2 010 Б Ч Б Ч Рис. 8.6. Сетка при черно-белом упорядочивании для N = 4 1 2 3 4 5 6 7 8 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 10 11 12 13 14 15 10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -I -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 10 -1 -1 И -1 -1 -1 12 -1 -1 -1 -1 13 -1 -1 -1 -1 14 -1 -1 -1 15 -1 -1 16 -1 -1 -1 Рис. 8.7. Матричное представление для рис. 8-6 ческого манекена при нумерации узлов, показанной на рис. 8.8, представле- на на рис. 8.9. Мы сейчас не будем интересоваться величинами ненулевых элементов, а только их расположением. Основным моментом, осложняющим применение метода гауссова исклю- чения к разреженным матрицам, является то, что элементы, которые перво- начально равнялись нулю, в ходе алгоритма могут стать отличными от нуля Такие вновь возникающие элементы называют заполняющими элементами или просто заполнителями. То, как появляются заполнители, легко видно из анализа процесса исключения. Рассмотрим основной шаг гауссова исклю- чения (см. (33.11)): <*+1 zein aU -Фц ~ aik akf ) 1акк • (8-3-О 254
На к-м шаге исключения элемент ’ по формуле (8.3.1) преобразуется (к+1) _ (к) _ (k) (k) в Оц . Если a(j = О, а элементы а1к и ак/- отличны от нуля, то на к-м шаге в позиции (/, /) появится заполнитель.. Давайте посмотрим, как происходит заполнение при применении алго- ритма гауссова исключения к матрице на рис. 8.9, которая соответствует первоначальной нумерации узлов динамического манекена. Первым подле- жит исключению элемент в позиции (2,1)- Чтобы сделать этот элемент Рис. 8.8. Динамический манекен равным нулю, мы вычитаем из второй строки первую, умноженную на под- ходящий множитель. Это соответствует использованию формулы (8.3.1) при к = 1, i- 2 и / = 2,..., п. Заполнение будет происходить в тех случа- ях, когда а£-) = 0, а а!р¥=О. Это имеет место при /=5и /=8. Следо- ' (2) (2) вательно, на первом шаге гауссова исключения элементы а25 и а28 станут отличными от нуля. На рис. 8.10 это отмечено единицами в пози- циях (2,5) и (2,8). То ж, самое произойдет с элементами (5,2) и (8,2) при исключении элементов (5,1) и (8.1). На втором шаге гауссова алго- ритма исключение элементов второго столбца приведет к появлению новых ненулевых элементов в третьей строке и третьем столбце. Все заполняющие элементы, которые возникают в процессе исключения, отмечены на рис. 8.10. Число т на рис. 8.10 указывает, что элемент в соответствующей позиции возник на шаге т алгоритма исключения. Отметим, что на шагах 4, 7, 10, 12, 13 и 14 никакого заполнения не происходило. Из рис. 8.10 видно, что исходная матрица имела 48 ненулевых элементов, а в ходе исключения до- бавилось 46 заполняющих элементов, так что полное число ненулевых элементов стало равным 94, т.е. почти удвоилось. Соответственно возраста- ют и требования к памяти. Вопрос о количестве дополнительных арифме- тических операций будет рассмотрен позднее. Сравните эти числа со 196 — числом элементов в заполненной матрице размера 14X14. Обратимся теперь к ’’разреженным вариантам гауссова исключения”. Ключевой вопрос состоит в том, можно ли проводить исключение в дру- гом порядке так, чтобы возникало как можно меньше заполняющих эле- ментов. Так как исключение элементов в другой последовательности эквивалентно перестановке строк и столбцов исходной матрицы, то ’’раз- реженные варианты” будут связаны с соответствующим переупорядочива- 255
123456789» 11 12 13 И 1 X X X X 2 X X X XX 3 X X X XX 4 XX 5 X XXX б XXX 7 XX 8 X X XX 9 XXX 10 XX И X X XXX 12 XX 13 X X XXX и XX Рис. 8.9. Матричное представление для рис. 8.8. 1 23456789 10 11 1213 14 1 X X X X 2 X X X 1 1 XX 3 ХХХ2 2 XX 4 X X 3 3 3 3 5Х123ХХ X 3 3 6 X X X 5 5 5 7 X X 6 6 6 8Х123Х56ХХ 3 3 9 X X X 8 8 10 X X 9 9 11 ХХ3356389ХХХ 12 X X 11 13 XX3356389XUXX 14 XX Рис. 8.10. Матричное представление для рис. 8.8 после гауссова исключения. Чис- ло т в позиции (i, /) указывает, что иа шаге т алгоритма исключения в этой позиции возник ненулевой элемент
нием строк и столбцов исходной матрицы. Чтобы продемонстрировать, к чему это может привести, давайте пронумеруем узлы динамического манекена так, как показано на рис. 8.11. Соответствующая матрица приве- дена на рис. 8.12. Если мы теперь применим к этой матрице алгоритм гаус- сова исключения, то получим заполнение, показанное на рис. 8.13. Матрица на рис. 8.12 имеет те же 48 ненулевых элементов, что и на рис. 8.9, но рас- полагаются они иначе, а это приводит к другому заполнению. Действитель- но, иэ рис. 8.13. видно, что в последнем случае возникают только 28 запол- няющих элементов, а не 46, как при первоначальном упорядочивании. Следовательно, необходимая память для хранения факторизованной формы переупорядоченной матрицы будет значительно меньше, чем для фактори- зованной формы исходной матрицы. Выше мы видели, что порядок, в котором исключаются элементы, влия- ет на степень заполнения матрицы. Отсюда следует, что объем памяти для хранения элементов матрицы и количество арифметических операций при исключении сильно зависят от выбора конкретного упорядочивания. При этом естественно возникают два следующих вопроса: 1. Какое упорядочивание неизвестных приводит к минимальному запол- нению? 2. При каком упорядочивании неизвестных требуется минимальное чис- ло арифметических операций? Упорядочивание, которое дает минимальное заполнение, и упорядочива- ние с минимумом операций не обязательно совпадают. Интуитивно это ясно и из того, что элемент, который возникает на ранней стадии исключения, обычно приводит к большему числу операций, чем элемент, возникающий позже. Установление упорядочивания, которое минимизирует заполнение или число операций, является задачей, решение которой требует исключи- тельно много машинного времени. Поэтому на практике обычно не стре- мятся найти оптимальный алгоритм, а используют некоторые стандартные алгоритмы упорядочивания, которые работают сравнительно быстро и дают ’’хорошие” результаты. Качество алгоритмов определяется довольно субъективно на основе анализа их работы на ряде тестовых примеров. Упорядочивание, продемонстрированное на рис. 8.11—8.13, основано на идее получения матрицы с минимальной шириной ленты (вспомните опре- деление из гл. 3). Другим алгоритмом упорядочивания, который мы при- 17. Дж. Ортега 257
123456789» И 12 13 И 1 X X 2 X X X X X 3 X X X X X 4 X X X X X 5 X X X X X 6 X X XX 7 XX 8 XX 9 X XXX 10 X X X X 11 XXX 12 XXX 13 XX И XX Рис. 8.12. Матричное представление для рис. 8.11 1 23 4567 89» И 12 13 И 1 X X 2 X X X X X 3 X X X X X 4 X X X X 3 X 5 ХХХХ34Х в ХЗЗХ45ХХ 7 X 4 4 X 5 6 6 8 X 5 5 X б в 9 X б 6 X X X Ю Х66ХХ9Х 11 X 9 X Ю X 12 X Ю X И X 13 X 11 X 12 И X 12 X Рис. 8.13. Матричное представление для рис. 8.11 после исключения меним к модели динамического манекена, является так называемый алго- ритм минимальной степени. Если вернуться к исходной нумерации узлов, показанной на рис. 8.8 и 8.9, то алгоритм минимальной степени начинает работу с выбора строки с минимальным числом ненулевых элементов (или узла с минимальным числом непосредственных соседей) и меняет местами первые строку и столбец с этой строкой и столбцом с тем же но- 258
мером*). Затем выполняется первый шаг алгоритма исключения. После этого весь процесс повторяется, но уже с преобразованной подматрицей. Число ненулевых элементов в строке дает оценку сверху для числа запол- няющих элементов, которые могут возникнуть на данном этапе гауссова исключения. Таким образом, алгоритм минимальной степени пытается осуществить локальную минимизацию заполнения. На рис. 8.14 и 8.15 показано применение алгоритма минимальной степени к модели динами- ческого манекена. Хотя это и не является характерным, упорядочивание по алгоритму минимальной степени для данной конкретной матрицы при- водит к полному отсутствию заполнения. В табл. 8.1 приведены требования к памяти при различных алгоритмах упорядочивания. Рис. 8.14. Упорядочивание узлов динамического манекена по алгоритму минимальной степени Давайте теперь сравним различные упорядочивания по числу мультипли- кативных операций при реализации алгоритма гауссова исключения. В табл. 8.2 указано число умножений, необходимое для выполнения гауссо- ва исключения- при различных упорядочиваниях. Число сложений прибли- зительно такое же, как и число умножений. Из этой таблицы видно, что, как и память, количество арифметических операций сильно зависит от способа упорядочивания. Приведенные данные показывают, что на рассматриваемой задаче алго- ритм минимальной степени значительно превосходит другие алгоритмы упорядочивания. Отсюда, однако, отнюдь не следует, что этот алгоритм целесообразно использовать во всех случаях. Сравнительная эффективность различных алгоритмов упорядочивания зависит от конкретной задачи. Мож- но привести примеры, когда алгоритм минимальной степени будет уступать другим способам упорядочивания. Поэтому, прежде чем остановиться на определенном алгоритме, необходимо провести тестирование на достаточ- но большом наборе матриц, структура которых соответствует интересую- щей нас задаче. Мы до сих пор не учитывали различия между симметричными и несим- метричными разреженными матрицами, не обсуждали схемы их хранения и вопрос о выборе главных элементов, обеспечивающем численную устой- *) В системах общего типа нумерация строк (т.е. уравнений) не имеет отношения к нумерации столбцов (т.е. неизвестных). Поэтому выбор строки, с помощью которой производится исключение, еще ие стесняет выбор столбца для дополнительной опта мизации. - Примеч. ред. 17* 259
Таблица 8.1 Требования, к памяти при различном упорядочивании узлов в модели динамическо- го манекена (и = 14); «ело ненулевых элементов в исходной матрице равно 48 Количество заполнителей Всего ненулевых элементов Гауссово исключение без учета разреженности 196 Гауссово исключение с учетом разреженности: первоначальное упорядо- «швание 46 94 лентоадое упорядочи- вание 28 76 алгоритм минимальной степени 0 48 чивость. Простейшим и наиболее изученным является случай симметричной матрицы, не требующей перестановки строк для устойчивости гауссова исключения. Примеры таких матриц дают симметричные положительно определенные или диагонально .доминирующие матрицы, которые возни- кают при применении метода конечных элементов и конечно-разностных аппроксимаций. В этом случае можно использовать метод Холецкого или симметричные варианты гауссова исключения, представляющие собой мо- дификации рассмотренных в гл. 3 алгоритмов для заполненных матриц. Для таких задач имеется несколько простых алгоритмов упорядочивания, 1 23456 7 8 9 Ю 11 12 13 14 1 X X 2 XX 3 X X X 4 XX 5 XX X 6 X X 7 X X 8 X XXX 9 X XXX 10 X X X X 11 X X X X X 12 X X X X X 13 X X X X X 14 X X X X X Рис. 8.15. Матричное представление для рис. 8.14 260
Таблица 8.2 Число мультипликативных операций при различном упорядочивании узлов в моде- ли лаиамического манекена (и = 14); число ненулевых элементов в исходной мат- рице равно 48 Факторизация Решение Гауссово исключение без учета изреженности 546 210 Гауссово исключение с учетом разреженности: - первоначальное упорядочивание 138 108 ленточное упорядочивание 117 84 алгоритм минимальной степени 39 62 :оторые стремятся получить Малую ширину ленты- Часто используется и алгоритм минимальной степени. Более сложные алгоритмы упоминаются 1 дополнительных замечаниях к этому разделу. Обычный метод хранения •азреженных матриц основывается на том, что слева от диагонали любой аполняющий элемент может возникнуть только правее первого ненулевЬго лемента строки, в которой зтот элемент появляется. Поэтому для хране- мя можно использовать одномерный массив, выделяя место для элементов трок от первого ненулевого элемента до диагонального элемента. При том дополнительно требуется п указателей, содержащих информацию о •азмещении диагональных элементов матрицы А. Схема хранения ясна 13 рис. 8.16. Другой класс практических задач составляют разреженные матрицы, сотррые не являются симметричными, но имеют симметричную структуру разреженности, т.е. такие, что ац^ац, но если ау = О, то и ац = 0. Такие латрицы часто возникают при расчете электрических сетей. На практике акие задачи обычно решают, игнорируя проблему численной устойчи- Симметричная а21 а22 в» а В* а4< °43 а** аЯ а55 аЮ ав4 а6в “« а21 а22 а» а4» а42 Я» -®44 аЯ a34^S5 Я*Э аМ Рис. 8.16. Пример схемы построчного хранения симметричной матрицы (1 3 4 8 11 15) 261
вости, даже если при этом не гарантируется точность результатов. Для упорядочивания часто используют алгоритм минимальной степени. Для несимметричных матриц общего вида часто используют алгоритм минимальной степени в комбинации с модификацией стратегии частич- ного упорядочивания при выборе главного элемента, называемой поро- говым упорядочиванием. При частичном упорядочивании в качестве глав- ного используется максимальный по модулю элемент столбца, а при пороговом упорядочивании разрешается проводить исключение с по- мощью любого элемента, который не слишком мал по сравнению с максимальным, скажем, составляет от него не менее 10—20%. При такой стратегии на роль главного обычно претендуют несколько элементов, н из них можно выбрать лучший с точки зрения разреженности. Этот ал- горитм является компромиссом между сохранением разреженности и контролем за потерей точности, связанной с ошибками округления. Ненулевые элементы несимметричной матрицы можно задавать, ука- зывая величину элемента вместе с номерами строки и столбца, т.е. ис- пользовать тройки чисел (ак, 1к,/кУ, где ак — величина элемента в позиции а к изменяется от 1 до числа ненулевых элементов. Это один из простейших способов представления данных, но далеко не лучший в смысле эффективности выполнения гауссова исключения. В современных пакетах математического обеспечения используются более сложные структуры хранения данных. Дополнительные замечания и ссылки 8.3 Об использовании прямых методов для решения разреженных линейных систем написаны буквально сотни статей. Это область, в которой в настоящее время ведутся очень активные исследования, так что материал этого раздела отнюдь не является ис- черпывающим. Авторы не рассчгтывают, что, прочтя этот раздел, «мтатель будет в состоянии составлять высококачественные программы решения разреженных линей- ных уравнений. Цель этого раздела - дать определенное представление об основных концепциях и приемах, используемых в этой области. Прямым алгоритмам решения разреженных систем посвящены книги [22,81,108]. Труды конференций по разреженным матрицам представлены в сборниках [2,15, 63,69,85].. Две первые работы по прямым методам для задач с разреженными матри цами — это работы [57,68]. Весьма полный обзор, включающий сравнительно недав- ние результаты, имеется в статье [ 13]. Предназначенная для исследований, связанных с обеспечением безопасности пасса- жиров, модель динамического манекена широко обсуждается в книге [ 108]. Для сим- метричных положительно определенных матриц, возникающих при использовании метода конечных элементов, разработано несколько специальных алгоритмов упоря- дочивания. К ним относятся профильные методы, методы параллельных и вложенных сечений, а также усовершенствованный алгоритм фактор-дерева. Обширная информа- ция об этих алгоритмах содержится в книге [22]. Для несимметричных матриц также имеются специальные алгоритмы, причем некоторые из них известны по именам их разработчиков - Марковица (Markowitz) и Тиини (Tinney). Несколько таких алгорит- мов рассмотрено в книге [108]. Относительно структур данных, используемых при работе с разреженными матри- цами, см. работы [13, 22,108]. Описание хорошо документированных и тщательно проверенных пакетов программ, реализующих прямые методы дли разреженных матриц, имеется в рабо- тах [14,21,106]. 262
УПРАЖНЕНИЯ 8.3 8.3.1. Выполните алгоритм гауссова исключения для матрицы на рис. 8.15 и убе- дитесь, что при упорядошвании узлов динамического манекена по алгоритму мини- мальной степени ие возникает никакого заполнения. 8.3.2. Рассмотрите исходную нумерацию узлои динамического манекена на рис. 8.8. Прежде всего обратите эту нумерацию, т.е. пусть узел 1 станет узлом 14, узел 2 - узлом 13 и т.д. Примените теперь алгоритм минимальной степени к динамическому манекену с так пронумерованными заново узлами (если возникает неоднозначность, используйте узел с меньшим исходным номером). Сравните переупорядоченную матрицу и ее заполнение со случаем матрицы на рис. 8.15. 8.3.3. Рассмотрите разреженный вариант алгоритма Холецкого (см. гл. 3) в при- менении к симметричным положительно определенным матрицам. Покажите, что заполнение при этом идентично заполнению при симметричном гауссовом исключении. 8.3.4. Рассмотрите краевую задачу (8.2.2)-(8.2.3). Для аппроксимации вторых производных воспользуйтесь формулами (3.2.36). Составьте матришое уравнение, аналогичное (8.2.10). Для точек сетки, которые примыкают к границе, придется ис- пользовать формулы (8.2.4). Выпишите матрицы, соответствующие лексикографи- ческому и черно-белому упорядочиваниям. 8.4. Итерационные методы Альтернативу к рассмотренным в предыдущем разделе методам гауссо- ва исключения составляют итерационные методы. Какому типу методов отдать предпочтение в конкретной ситуации, зависит от целого ряда обстоя- тельств, таких, как характеристики используемой ЭВМ, вид уравнений, требуемая точность решения и т.д. Тем не менее можно сказать, что при решении трехмерных эллиптических уравнений итерационные методы обычно оказываются эффективнее прямых, а для нелинейных уравнений использование итерационных методов является неизбежностью. Давайте рассмотрим линейную систему Ах = Ь, не делая на этот раз ни- каких предположений относительно А, за исключением того, что аи ¥= 0, i = 1,.... и, (8.4.1) т.е. диагональные элементы должны быть отличны от нуля. Вероятно, самой простой итерационной процедурой является метод Якоби. Пусть в качестве начального приближения к решению выбран векторх°. Определим следую- щее приближение по формулам Х/1) = — (Ь, - S aifx<° \ i=\,...,n. (8.4.2) aii 1*1 Полезно представить эти соотношения в матричной форме. Для этого положи»/ D = Я11 Й2 2 0 ’0 0 ац Опп а1п В=- Й2 1 0 . • • а2п 0 ап-1,п _ДИ1 . . . ап, п-1 0 (8.4.3) 263
ак что А = D - В. Тогда, как легко проверить, (8.4.2) можно переписать . виде № =Д“’(Л+£х°) i всю послед овательность итераций Якоби определить как х* + | = О~1(Ь+Вхк), к = 0,1,... (8-4.4) Близкий итерационный процесс можно получить, если учесть следующее юображение. После того как xj’^ вычислено по формуле (8.4.2), его (1) иожно использовать при вычислении х2 , и выглядит вполне естествен- ным использовать именно это значение, а ие первоначальное приближе- ние xf °). Если мы будем использовать новые значения сразу после их полу- нения, то придем к формулам Xj =------(b, - S ayXf- S ayx-0)), / = 1,..., n, (8.4.5) an j<i i>i определяющим первый шаг итераций Гаусса - Зейделя. Чтобы представить эти итерации в матричной форме, введем верхнюю и нижнюю треугольные матрицы Го в12 • • а\п О ... а2п О вп-1,я О (8.4.0) Если умножить н-е уравнение (8.4.5) налито, как легко убедиться, л урав- нений (8.4.5) можно переписать в виде Dxx - Lx* = b + Ux°. (8.4.7) Матрица D — L невырождена, поскольку она является нижней треугольной матрицей с отличными от нуля диагональными элементами. Следовательно, из (8.4.7) мы имеем х1 = (D — L)-1 (tZx° + b) и всю последовательность итераций Гаусса — Зейделя можно определить как x*+1 =(D-£)-1[t/x*+&], Л = 0,1,... (8.4.8) Запись итераций Якоби и Гаусса — Зейделя в виде (8.4.4) и (8.4.8) полезна для теоретических целей, но при фактически" вычислениях обычно исполь зуют покомпонентные формулы (8.4.2) и (8.4.5). Давайте рассмотрим применение этих итерационных методов к дискрет- ному аналогу уравнения Лапласа на квадрате. Простейшие разностные 264
уравнения (8.2.7) для этой задачи (при = 0) имеют вид w,+1,/ + иг- 1 ,/ + и>./+1 + ui,i-1 ~ 4ы'/ = °’ '• / = 1.N- (8.4.9) Неизвестными здесь являются uf/- (i,j = 1..........N), а значения остальных Uy считаются известными из граничных условий. При заданном начальном приближении п<0) один шаг по Якоби для уравнений (8.4.9) есть просто (>)_ 1 г (о) . (о) . (о) . (о) ч иЦ д (мг + 1,/ + ui~ 1,/ + ui,j +1 + 1>’ т.е. новое приближение по Якоби к решению в точке (i, j) есть среднее Старое Старое Старое Старое Новое Старое Старое 4+1J Новое a 4/-1 Рис. 8.17. Смещения в методах Якоби и 6) смещение Гаусса - Зейделя 6 Гаусса - Зейделя: а) смещение Якоби; предыдущих приближений в четырех соседних точках сетки (i ± 1, /), (/, / ± 1). По этой причине метод Якоби иногда называют методом одно- временных смещений. Обратите внимание, что в методе Якоби порядок, в котором обрабатываются уравнения, несуществен. В методе же Гаусса — Зейделя ситуация другая — каждому способу упорядочивания уравнений фактически соответствует свой итерационный процесс. Если мы упорядо- чим точки сетки слева направо и снизу вверх, как это было сделано в разде- ле 8.1, то шаг метода Гаусса—Зейделя будет определяться формулами 4* ’ - 7 («й./+«!.7_.+ «й,,+<7-1) > т.е. новое приближение в точке (/,/) снова будет средним значением приближений в четырех соседних узлах сетки, но- теперь используются два старых и два новых значения. Различие двух этих методов схематически показано на рис. 8.17. Мы теперь рассмотрим вопрос о сходимости итерационных методов. Как метод Якоби, так и метод Гаусса — Зейделя представляют собой частные случаи общего итерационного процесса xk*'=Hxk+d, к = 0,1,..., (8.4.10) где задание матрицы Н и вектора d определяет конкретный метод. Так, в методе Якоби Н = D~XB ed = D~xb, в то время как в методе Таусса — Зейделя Н = (D - £)-1 U к d = (D — L)~lb. Предположим теперь, что х* — точное решение системы Ах - Ь. Тогда в методе Якоби мы имеем (D-B)x*=b или дг* =D~'Bx* + D~lb, 265
i в методе Гаусса — Зейделя (D-L-U)x*=b или х* =(р-Ьу'их* +(£> -LY'b, ак что в обоих случаях x*=Hx*+d. (8.4.11) :сли теперь вычесть (8.4.11) из (8.4.10), то мы получим ек+1=Нек, к = 0,1,..., (8.4.12) де ек = хк - х* есть ошибка на Л-м шаге. Уравнение (8.4.12) представляет собой основное соотношение, опреде- (яющее поведение погрешности приближенного решения в итерационных методах вида (8.4.10). Мы уже анализировали это уравнение в другом кон- ексте в гл. 6 (см. теорему 6.1.4) и пришли к заключению, что векторы ек 1удут стремиться к нулю при Л-»00 в том и только том случае, если нейтральный радиус р(Я) матрицы Н меньше единицы. Мы переформули- >уем этот основной результат для итерационного метода (8.4.10). Теорема 8.4.1. Итерации (8.4.10) сходятся к решению х* при любом ачальном приближении х° в том и только .том случае, если р(Н) < 1. Теорема 8.4.1 не ограничивается методами Якоби и Гаусса - Зейделя. )на применима к любому итерационному процессу вида (8.4.10) при усло- ии, что вектор дг* удовлетворяет (8.4.11), и является основным теоре- ическим результатом для таких итерационных методов. Согласно этой еореме, чтобы исследовать сходимость конкретного итерационного мето- д, мы должны определить, меньше ли единицы спектральный радиус ите- ационной матрицы этого метода. В общем случае это очень сложная роблема, решение которой может потребовать вычисления всех собствен- ых значений итерационной матрицы. Однако для некоторых итерационных гетодов и для некоторых классов матриц удается сравнительно просто оказать, что критерий сходимости выполняется. Мы сейчас приведем не- колько таких примеров для методов Якоби и Гаусса — Зейделя. Теорема 8.4.2. Предположим, что матрица А строго диагонально Оо- шнирующая, т.е. |«й|> S |в,у|, i=l,...,n. (8.4.13) /*< огда итерации Якоби и итерации Гаусса - Зейделя сходятся к единствен- ому решению уравнения Ах = b при любом начальном приближении х°. Для метода Якоби эта теорема доказывается очень просто. Так как Н = D~lB, то из (8.4.13) сразу следует, что сумма абсолютных величин эле- ентов каждой строки Н меньше единицы, т.е. ||Я||«, < 1. Но тогда все эбственные значения матрицы Н по абсолютной величине меньше единицы можно воспользоваться теоремой 8.4.1. Для метода Гаусса - Зейделя оказательство несколько сложнее, и мы его здесь не приводим. Условие строгого диагонального доминирования является довольно граничительным, и ему, в частности, не удовлетворяет разностная схема 8.4.9) для уравнения Лапласа: в большинстве строк матрицы коэффициен- jb соответствующей системы имеется четыре внедиагональных элемента, э абсолютной величине равных 1, так что соотношения (8.4.13) как стро-
гие неравенства не выполняются. Тем не менее, если воспользоваться другой техникой (см. дополнительные замечания), то можно показать, что для разностных уравнений (8.4.9) оба рассматриваемых метода схо- дятся. Матрица коэффициентов уравнений (8.4.9),очевидно,является симмет- ричной (см.(8.2.10)), и, кроме того, можно показать, что она положитель- но определенная. На самом деле для многих, если не для большинства, дискретных аналогов эллиптических уравнений в частных производных матрица коэффициентов разностных уравнений будет симметричной и по- ложительно определенной. В таких случаях итерации Гаусса — Зейделя всег- да сходятся, однако для сходимости метода Якоби симметричность и поло- жительная определенность не являются достаточными. Следующую теорему мы приводим без доказательства. Теорема 8.4.3. Если матрица А является симметричной и положи- тельно определенной, то при любом начальном приближении х° итерации Гаусса - Зейделя сходятся к единственному решению уравнения Ах = Ь. Даже если методы Якоби и Гаусса — Зейделя сходятся, сходимость мо- жет оказаться настолько медленной, что сделает практическое использова- ние этих методов невозможным. Это замечание относится, в частности, к разностным аналогам эллиптических уравнений в частных производных. Так, например, асимптотически на каждой итерации по методу Гаусса — Зейделя для уравнений (8.4.9) при N= 44 ошибка умножается на множи- тель, примерно равный 0,95. Метод Якоби для этой задачи сходится прибли- зительно в два раза медленнее, причем с увеличением N скорость сходи- мости обоих методов уменьшается. В ряде случаев скорость сходимости метода Гаусса — Зейделя можно значительно увеличить. Давайте, исходя из текущего приближения хк, сначала вычислим х(- для данного i по итерации Гаусса - Зейделя а(* + 1)_ 1 / „ (fc+1) „ (*Д X) =—[bf - S в«х, - S а„х, 1, (8.4.14) аИ X К' i>i / а(к+1) а затем, используя значение X/ в качестве промежуточного, вычислим i-ю координату нового приближения по формуле х<*+1 > = х<*> + w (x<fc+1 > - х<*> ), (8.4.15) где со — параметр, введенный для увеличения скорости сходимости. Мы можем переписать (8.4.14) и (8.4.15) следующим образом. Подста- вим сначала (8.4.14) в (8.4.15).: х<*+,) = (1-со)х<*) + — (bi S ХлЛ (8.4.16) ан \ / < i j>i ' 1 / Отсюда, перегруппировав члены, получаем = (1 - со) ati х<*> - со Е aif xfk) + coftf. i > i 267
ели, как и раньше, воспользоваться представлением А = D - L - U, то эту вязь между компонентами нового приближения х{ и старого прибли- :ения х/*>, справедливую при i = 1,... ,п, можно записать в матричной юрме как Dxk+1 - coLxk+1 = (1 - w)Dxk + coUxk + cob. ак как матрица D — coL по-прежнему нижняя треугольная и по предполо- гению имеет отличные от нуля диагональные элементы, она является невы- эжденной, и мы получаем х*+1 = (£) _ [(1 - w)£ + cjt/] хк + со (D - coLy1 Ь. (8АЛ7) го соотношение определяет метод последовательной верхней релаксации. тметим, что, как и в случае метода Гаусса — Зейделя, при фактических счислениях обычно используют покомпонентные формулы (8.4.14) — (8.4.15). Если со = 1, то (8.4.17) есть просто обычный метод Гаусса —Зей1 шя. Мы ограничимся вещественными значениями параметра со. Тогда для юдимости метода последовательной верхней релаксации необходимо, обы выполнялось 0 < со < 2. Выбор со в этом диапазоне, вообще говоря, : гарантирует сходимости, но в том важном случае, когда матрица А сим- гтрична и положительно определена, имеет место следующее обобщаю- ее теорему 8.4.3 утверждение, которое мы также приводим без дрказа- льства. Теорема 8.4.4 (Островского — Рейча). Если матрицаЛ симмет- гчна и положительно определена, то при любом со 6 (0,2) и любом началь- 'м приближении х° итерации метода последовательной верхней релакса- и (8.4.17) сходятся к решению уравнения Ах = Ь. Разумеется, мы бы хотели выбрать параметр со так, чтобы максимизи- вать скорость итераций (8.4.17), Однако в общем случае это представ- ет очень трудную проблему, и мы здесь ограничимся только тем, что при- дем без доказательства некоторые относящиеся к этому вопросу резуль- гы. Для класса матриц, которые называют упорядоченными согласован- со свойством А *), разработана довольно полная теория, которая соот- сит скорость сходимости метода последовательной верхней релаксации скоростью сходимости метода Якоби и позволяет понять, как выбрать тимальное значение со. Мы не будем давать точное определение этого асса матриц, а только отметим, что в него попадает матрица (8.2.10) для авнений (8.4.9), а также многие другие матрицы коэффициентов раз- стных схем для эллиптических уравнений в частных производных. Фундаментальным результатом для этого класса матриц является связь жду собственными значениями X/ итерационной матрицы метода после- вательной верхней релаксации = (£> — coL)~l [(1 — со) D + cot/] собственными значениями итерационной матрицы метода Якоби : D~1 (L + U). Каждому нулевому собственному значению матрицы J крат- ки р соответствуют р собственных значений матрицы Нш, рав- ') Подробнее об этом классе матриц см. Форсайт, Вазов[89, п. 22.1].-Примеч. пер.
ных w— 1. Ненулевые собственные значения J для этого класса матриц образуют пары ± которым соответствуют собственные значения мат- рицы Hw, удовлетворяющие соотношению (X, + w — I)2 = X,- со2д2. (8.4.18) Это квадратное уравнение относительно Xf, которое определяет два зна- чения X; для каждого значения р2. В предположении, что все Д/ веществен- ны и по абсолютной величине меньше единицы, с помощью (8.4.18) мож- но получить оптимальное значение со, минимизирующее спектральный ра- Рис. 8.18. р (Hw) как функция от си диус p(Hw) матрицы Hw, который и определяет скорость сходимости метода. Если обозначить оптимальное значение со через со0, то оно выра- зится через спектральный радиус матрицы J как со0 = 2/(1 +V1 -Р2), Р = Р V) - (8.4.19) Значение со0 всегда заключено между 1 и 2. Соответствующее зна- чение р(Нш) есть р(ЯМо) = со0-1. (8.4.20) Кроме того, из (8.4.18) можно определить поведение p(Hw) как функции от со. Это поведение показано на рте. 8.18. Мы можем получить представление о возможном ускорении сходимости на примере уравнений (8.4.9). Собственные значения соответствующей ите- рационной матрицы Якоби вычисляются явно. При этом максимальное собственное значение определяется выражением p(J) = cos п h h = 1/(N +1), (8.4.21) где при больших TV приближенное равенство выполняется с высокой точ- ностью. Если мы подставим (8.4.21) в (8.4.19), то получим 2 ’ 1 — х/1 — cos2tt/i “о = -----------7; ; , р(Н^= ---------- . (8.4.22) 1 +v 1 -СО827ГЙ 1 +V1 +cos2?r/l Если теперь для иллюстрации взять N= 44, то р (J) « 0,9976, р (Н) «0,995, о>0«1,87, р (Я^ ) « 0,87. (8.4.23) Отсюда видно, что асимптотически на каждой итерации ошибка метода Яко- би умножается на множитель 0,9976, а метода Гаусса - Зейделя — на мно- житель 0,995, т.е. скорость сходимости метода Гаусса - Зейделя примерно 269
i два раза больше*). В методе же последовательной верхней релаксации эшибка умножается на 0,87, т.е. этот метод будет сходиться примерно । 30 раз быстрее метода Гаусса - Зейделя. Более того, с увеличением N улучшение сходимости будет все более заметным (см. упражнение 8.4.9). Из предыдущего ясно, что возможно очень сильное увеличение скорости :ходимости метода Гаусса - Зейделя. Однако здесь есть целый ряд слож- юстей. Во-первых, многие большие разреженные матрицы, которые возни- сают в практических задачах, не являются ’’упорядоченными согласован- ю со свойством А’’, и приведенные теоретические результаты к ним непри- менимы. Введение параметра со по-прежнему может привести к увеличе- ию скорости сходимости, но этого нельзя гарантировать заранее, и, кроме ого, за исключением метода проб и ошибок, здесь нет способа выбора хорошего значения со. Далее, даже если матрица коэффициентов ’’упорядо- ена согласованно со свойством А”, получение хорошего приближения к со0 может оказаться непростым делом. Действительно, нам удалось получить 1вные выражения (8.4.22) и вычислить значения (8.4.23) только благо- 1аря специальной структуре уравнений (8.4.9), которая позволила осущест- 1ить точное определение p(J). Так как в общем случае это сделать невоз- можно, то, чтобы воспользоваться формулой (8.4.19), необходимо пред- ,арительно оценить величину p(J), что само по себе является весьма слож- юй задачей. Таким образом, даже в тех случаях, когда применима преды- дущая теория, для определения подходящего значения со0 может оказаться геобходимым прибегнуть к методу проб и ошибок. Мы теперь вернемся к неявным методам переменных направлений, опи- анным в разделе 8.2. Там мы выписали для уравнения теплопроводности >азностные уравнения (см. (8.2.19) и (8.2.20)) (2 + «)«У'«(8.4.24) -«к; -«,7; «г.-у2. (8.4.25) де верхние индексы соответствовали различным моментам времени Одна- да мы можем интерпретировать соотношения (8.4.24J—(8.4.25) какитера- [ионный метод решения уравнения Лапласа, где верхние индексы указы- ают номер итерации. Пусть и - вектор (8.2.9), где неизвестные utj упоря- очены в соответствии с нумерацией узлов сетки слева направо и снизу верх. Тогда (8.4.24) можно переписать как (а/+Я)«"1 + ,/2 =(а/- V)um +b. (8.4.26) >десьН — матрица размераN2 X №: ~А А *1 Под скоростью сходимости линейного итерационного процесса (8.4.10) обычно онимают величину -1пр(Я), обратно пропорциональную числу итераций, необходи- ых для получения следующего верного знака (см. [89], п. 2L3) -Примеч.пер. 70
где Л — трехдиагональная матрица (7.2.14) с элементами 2 и —1; матри- ца V получается из Н перестановкой строк и столбцов, причем ее действие на вектор и приводит к вычислению разности по индексу /, как это указа- но в (8.4.24). В вектор b входят переменные м^из (8.4.24), значения-кото^ рых известны из граничных условий, и если мы имеем дело с уравнением Пуассона, то также значения/;;. Обратите внимание, что уравнение (а/+Я)« = (а/- V)u +b, или, после взаимного уничтожения членов alu в левой и правой частях, (H+V)u = b, точно совпадает с уравнением (8.2.10). Действительно, если матрицу коэф- фициентов в (8.2.10) обозначить через Л, то =Н + V, где матрица V име- ет отличными от нуля только главную диагональ, все элементы которой равны 2S и две параллельные диагонали с элементами —1 (см. (8.2.10)). Аналогичным образом (8.4.25) можно переписать в виде (al + F) ит+1 = (а/ - Я) ит+1 /2 + Ь. (8.4.27) Комбинация соотношений (8.4.26) и (8.4.27) представляет собой неявный метод переменных направлений Писмэна - Рэчфорда. Величина а, которая в случае уравнения теплопроводности была функцией от Дх и Дг, теперь играет роль положительного параметра, правильный выбор которого позво- ляет добиться увеличения скорости сходимости. Отметим, что хотя при реализации метода переменных направлении обычно используют запись трехдиагональных систем в виде (8.4.24) — (8.4.25), для теоретических рассмотрений матричное представление (8.4.26)-(8.4.27) оказывается удобнее. Если мы выразим и"1*1/2 из (8.4.26) и подставим в (8.4.27), то после умножения слева на (al + К)-1 получим um+i =Вит +d, т = 0,1,..., (8.4.28) где В = (al + F)’1 (а!- Я) (а!+Ну* (al- V), (8.4.29) d = (aZ+K)-‘ (al+ну1 b. В предположении, что а > 0, входящие в (8.4.29) обратные матрицы су- ществуют. Кроме того, при этом предположении можно показать, что спект- ральный радиус матрицы В меньше единицы, так что итерации (8.4.28) будут сходиться при любом начальном приближении и0. Скорость сходи- мости зависит от параметра а. На самом деле оказывается, что скорость сходимости может быть значительно увеличена, если использовать несколь- ко различных значений параметра at, . . . , ат, повторяя их циклически. При правильном выборе значений а, (описание того, как это делается, выходит за рамки настоящей книги) итерации Писмэна — Рэчфорда сходят- ся очень быстро. Метод Писмэна — Рэчфорда применим и к эллиптическим задачам более общего вида, чем мы здесь рассматривали. Для сходимости итераций (8.4.28) достаточно положительной определенности матриц Ни V и выполнения ус- 271
ловия а > О. Однако возможность выбора последовательности значений параметра, которая обеспечивает быструю сходимость, тесно связана с пред- положением о прямоугольной форме области и о том, что само уравнение имеет вид ихх + иуу + ow -О. Мы закончим этот раздел кратким описанием одного метода, играющего все более важную-роль, который по существу является прямым (т.е. реше- ние линейной системы находится за конечное число операций), но на прак- тике используется как итерационный. Мы имеем в виду метод сопряжен- ных градиентов. Мы сначала опишем сам метод, а затем обсудим идеи, на которых он основан. Предположим, что матрица А коэффициентов линейной системы явля- ется симметричной и положительно определенной, и пусть (х, у) = хту оз- начает евклидово скалярное произведение векторов х и у. Тогда алгоритм метода сопряженных градиентов можно сформулировать следующим об- разом. 1. а) Выбрать начальное приближение jfi; б) вычислить г 0 = b - Лх°; в) положить р° = г 0 и к = О. 2. а) Вычислить ак = (гк,рк)1(рк, Арк); б) вычислить х*+* =хк + акрк; в) вычислить 7 *+1 =гк -акАрк‘, г) проверить сходимость: || г *+,]| < е ? Если нет, то продолжить алгоритм. 3. а) Вычислить рк = (г *+1, Арк)[(рк, Арк); б) вычислитьpk+i = rk+1 -0крк; в) увеличить А: на 1 и вернуться к шагу 2.а) Мы теперь сделаем несколько замечаний по поводу этого метода. Во-пер- вых, этот метод наиболее естественно рассматривать как метод миними- Рис. 8.19. Минимизация квадратичной формы в направлении рк зации. Так как матрица А положительно определена, то квадратичная форма ^хтАх.-хтЬ (8.4.30) имеет минимум, и вектор х*, на котором этот минимум достигается, яв- ляется решением системы Ах = Ь. Если мы имеем текущее приближение х* и задающий направление вектор рк, то следующее приближение xfc+1 нахо- дится в результате минимизации квадратичной формы (8.4.30) вдол^ на- правления рк, исходящего из точки хк (рис. 8.19). Но это просто одномер- ная задача минимизации: Min - (хк + арк)т А(хк + арк) - (х* + арк)т Ь. (8.4.31) а 2 >72
Если раскрыть здесь скобки и сгруппировать члены при одинаковых сте- пенях а, то легко видеть, что квадратичная форма в (8.4.31) представляет собой квадратичный полином относительно а. Значение а, которое мини- мизирует этот полином, вычисляется по явной формуле, приведенной в шаге 2.а) алгоритма. Теперь мы должны вычислить вектор невязки rk+l = b - Лх*+1. Это можно было бы сделать непосредственно, но так как b -Axk+l = b - А (хк + акрк) = гк -акАрк, а вектор Арк нам уже известен, невязку можно определить, не формируя вектор . Далее мы проверяем условие сходимости, сравнивая ||r A+1II с некоторым заданным допуском е. (Отметим здесь, что в качестве усло- вия сходимости мы могли бы использовать и целый ряд других критериев.) Если условие сходимости не выполняется, то мы на шаге З.б) определяем новое направление pk+i и возвращаемся к шагу 2.а) для вычисления сле- дующего приближения. Центральной частью алгоритма является определение направлений рк. Эти направления должны удовлетворять условиям (р‘, Ар1) = 0, / ¥=/, i, j = 0,1,..., п - 1. (8.4.32) Действительно, так как (р*+1,Лр*) = (г*+1 - £крк, Apk) = (rk+1.Apk)-(ik(pk, Арк), мы видим, что значение (5к выбирается из условия (pfc+1, Лр*) = 0. Чтобы показать, что соотношение (8.4.32) выполняется и при других значениях i и /, необходимо проделать некоторые преобразования и воспользоваться методом индукции (см. упражнение 8.4.10). Направления |р*|, которые удовлетворяют (8.4.32), называют сопря- женными относительно матрицы А. Можно показать, что если соответст- вующие приближения xfc+1 вычисляются по формулам шагов 2.а) и 2.6) алгоритма, то не более чем за п таких шагов мы получим точное решение линейной системы Ах~ Ь. Именно благодаря этому свойству метод сопря- женных градиентов относится к прямым методам решения линейных си- стем. Имеются, однако, два обстоятельства, которые при практических расчетах не позволяют воспользоваться этим свойством. Во-первых, из-за ошибок округления полученное за п шагов приближенное решение может значительно отличаться от точного и нам придется продолжить выполнение алгоритма. С другой стороны, если мы заложим в алгоритм условие оста- новки через п шагов, то в случае очень больших матриц, скажем п = 10000, он не сможет выдержать конкуренции с другими итерационными методами, дающими приемлемое приближенное решение за значительно меньшее число итераций. Практическое использование метода соппяженных градиен- тов тем не менее показало, что во многих реальных задачах сходимость достигается гораздо быстрее, чем за п итераций, так что этот метод и его многочисленные варианты составляют привлекательную альтернативу дру- гим итерационным методам, описанным в настоящем разделе. В этом разделе мы познакомились с некоторыми простейшими итера- ционными методами решения больших разреженных систем линейных урав- 18. Дж. Ортега 273
1ений, особенно систем, которые возникают при применении разностных методов к эллиптическим уравнениям в частных производных. Имеется и хелый ряд других итерационных методов (некоторые из них упоминаются 1 дополнительных замечаниях), так что вопрос о том, какой метод исполь- ювать при решении данной конкретной задачи, обычно вызывает опреде- хенные затруднения. Кроме того, в последнее время выяснилось, что шисанные в предыдущем разделе прямые методы работают на больших эазреженных матрицах более эффективно, чем можно было предположить харанее. В настоящее время, по-видимому, можно сказать, что для двумер- ных эллиптических уравнений следует предпочесть прямые методы, а для. эешения трехмерных задач лучше воспользоваться итерационными методами. Дополнительные замечания и ссылки 8.4 Итерации Якоби и Гаусса - Зейделя являются классическими методами, восходя- цими к прошлому столетию. Метод последовательной верхней релаксации возник из юристических релаксационных методов, доведенных до высокой степени совершей- ива Саусвеллом и его сотрудниками во время второй мировой войны. Основы теории лого метода разработали в конце 1940-х годов Франкел и Янг. Подробное рассмотре- ше методов Якоби и Гаусса — Зейделя, метода последовательной верхней релаксации, хеявных методов переменных направлений, а также многочисленных разновидностей них методов имеется в книгах [7,89,109]. С помощью понятия неразложимой матрицы теорема 8.4.2 может быть обобщена таким образом, что она становится применимой к уравнениям вида (8.4.9). Матри- ia А называется разложимой, если существует такая матрица перестановок Г, что *) Т 1^1 ^31 РТАР = . 10 Ati 1 противном случае матрица называется неразложимой. Теорема 8.4.2 теперь обобщает- ;я следующим образом. Предположим, что матрица А является неразложимой и диа- гонально доминирующей, причем хотя бы одно из соотношений |«// | > "fy *1\ац I [i = 1,.... л) выполняется как строгое неравенство. Тогда система уравнений Ах = Ъ [мест единственное решение х* и как итерации Якоби, так и итерации Гаусса—Зейделя :ходятся к х* при любом начальном приближении х°. Можно показать, что матрица соэффициентов уравнений (8.4.9) неразложима и что к ней применима только что формулированная теорема. Метод сопряженных градиентов был разработан в начале 1950-х годов [95], причем । последние несколько лет интерес к этому методу как итерационному алгоритму ешения больших разреженных систем уравнений сильно возрос. Обсуждение сравни- ельно недавних результатов, относящихся к этому методу и его многочисленным >ариантам, имеется в работе [100]. Многие возникающие на практике эллиптические уравнения оказываются иелиней- ыми. Методы настоящего раздела в этом случае непосредственно неприменимы, )днако разработан целый ряд обобщений этих методов, которые можно использовать <ля нелинейных уравнений (см. [54]). В то же время если используются методы типа {ьютона, на каждом шаге приходится отыскивать приближенное решение большой хазреженной линейной системы, что может быть сделано с помощью итерационных методов этого раздела. •) Матрицы Л, и А3 предполагаются квадратными. - Примсч. пер. 74
УПРАЖНЕНИЯ 8.4 8.4.1. Примените метод Якоби и метод Гаусса - Зейделя к системе уравнений Ах = Ь, где 'з 1 11 [Г 2 3. Используйте в качестве начального приближения вектор х° = (1, 1, 1) и выполните такое количество шагов, чтобы стало ясно, как сходится итерационный процесс. 8.4.2. Составьте программы для методов Якоби и Гаусса-Зейделя. Проверьте их на задаче из упражнения 8.4.1. 8.4.3. Выпишите конкретные формулы итераций Якоби и Гаусса - Зейделя для уравнений (8.4.9) при N= 3. 8.4.4. Проведите детальное доказательство теоремы 8.4.1 в предположении, что мат- рица Н имеет п линейно независимых собственных векторов. 8.4.5. Рассмотрите эллиптическое уравнение ихх + uvy + си = 0, где значения и за- даны на сторонах квадрата. Выпишите разностные уравнения, аналогичные (8.4.9). Покажите, что если константа с отрицательна, то матрица коэффициентов полученных уравнений будет строго диагонально доминирующей. 8.4.6. Пусть А - вещественная симметричная положительно определенная матрица размера л X п. а) Покажите, что диагональные элементы матрицы А должны быть положительными; б) покажите, что если С - произвольная вещественная невырож- денная матрица'размера и х и, то матрица Ст АС также является симметричной положительно определенной. 8.4.7. Выполните несколько итераций метода последовательной верхней релаксации для задачи из упражнения 8.4.1. Используйте значения и = 0,6 и ш = 1,4 й сравните скорость сходимости со случаем итераций Гаусса - Зейделя. 8.4.8. Составьте программу, реализующую метод последовательной верхней релак- сации для уравнений (8.4.9). 8.4.9. Используйте формулы (8.4.21) и (8.4.22) для вычисления значений p(J ), #>(//,), и р(НЫг) для уравнений (8.4.9) при /V=99h W=999. 8.4.10. С помощью метода индукции докажите справедливость соотношений (8.4.32). В качестве предположения индукции считайте, что при / = 0..к - 1 выполняются Jt i к i равенства (р , Ар' ) = (г , г ' ) = 0. (В основном тексте мы показали, что (р1, Арл) =0; (г1, г°) = (г° -аоАр0, р„) = 0 по определению а 0.) Покажите затем, что (pfc+1, Api ) = (г *+1, г J ) = 0 при / = 0, 1, ..., к. (Указание-. сначала покажите справедливость второго соотношения.) Рассматривая численные методы решения дифференциальных уравнений, мы попытались осветить некоторые основные разделы элементарного чис- ленного анализа. Однако мы либо вообще не затронули, либо лишь кратко упомянули многие важные области, такие,как, например, оптимизация (т.е. минимизация или максимизация) функций п переменных, в том числе при наличии ограничений, решение интегральных и интегро-дифференциаль- ных уравнений, вопросы приближения функций, включая многие замеча- тельные разделы теории аппроксимации. Нельзя ие отметить, что при рас- смотрении методов решения уравнений в частных производных мы лишь скользнули по поверхности этой обширнейшей области. И все же мы надеемся, что сумели ознакомить читателя с основными методами числен- ного анализа и дать определенную подготовку, которая позволит перейти к более серьезному и глубокому изучению интересующих его вопросов. Мы также полагаем, что в этом ему помогут приведенные в книге библиогра- фические указания. 18* 275
ПРИЛОЖЕНИЯ 1. Необходимые сведения из анализа В этом приложении мы без доказательств приводим некоторые сведения з анализа, которые используются в основном тексте. Теорема о среднем (Лагранжа). Если функция f диффе- енцируема на отрезке [а, Л], то существует такая точка ij, лежащая ежду а и Ь, что fW-f(a)^f(K)(b-a), а < % < b. (А.1.1) Формула Тейлора. Если функция f имеет к непрерывных про- зводных на отрезке [о, h ], то для любых точек х и х0 из этого отрезка уществует такая точка %,лежащая между хи х0, что /(х)=/(хо)+/'(хо)(х-Хо) + 4/"(хо)(х-Хо)2 + ... 1 , (А.1.2) + (ГЛ)?7 (*’,)(*о)(х-*о)*-1 ♦у^амх-х,)* Отметим, что теорему о среднем можно рассматривать как частный слу- ай формулы Тейлора при k = 1, а = х0 и b = х. Правило дифференцирования сложной функции. ели функции fug дифференцируемы, то сложная функция И (х) =/(#(х)) 1кже является дифференцируемой, причем h'(x) = /'(g(x))g'(x). (А.1.3) Вторая теорема о среднем (из интегрального исчисления). ели функции и и v непрерывны на [а, b ], причем функция v не меняет чака на этом отрезке, то существует такая точка £ G [я, b.], что ь ь f u(x)v(x)dx = u(^)fu(x)dx. (А.1.4) а а Дальнейшие результаты относятся к функциям многих переменных, ко- эрые мы записываем либо в виде /(Xj..х„), либо как /(х), где х — ектор с координатами х1( ..., х„. Частная производная от f по перемен- ой X/ в точке х определяется как Э/ 1 --(х) = lim - [Дх,, ...,x,_i, х, + h. x,+ i,..., х„)-Дх)]. (А.1.5) Эх, й-оЛ .нелогично определяются частные производные более высокого порядка.
(A. 1.6) 1роизводная от функции f обычно вводится как вектор-строка /’00 = ~ (х))- xdxj дхп / Соответствующий транспонированный вектор иногда называют градиентом пункции f и обозначают как V /. Часто бывает удобным рассматривать V :ак векторный оператор частного дифференцирования : _ (Ъ Ъ\ V = \8Xj Эх„/ Символом Д обычно обозначают оператор У2, являющийся результатом калярного умножения оператора V на самого себя. Тогда , Э2/ Э2/ Эх? Ста сумма вторых частных производных играет важную роль при изучении дифференциальных уравнений в частных производных (см. гл. 7 и 8). Говорят, что функция f непрерывно дифференцируема в некоторой об- 1асти «-мерного пространства, если все первые частные производные от f уществуют и непрерывны в этой области. Для функций многих перемен- (ых теорема о среднем значении принимает следующий вид. Теорема о среднем для функций многих пере- менных. Если функция f непрерывно дифференцируема в некоторой •бласти п-мерного пространства и точки х и у таковы, что все точки вида tx + (1 -t)y, О < t < 1, принадлежат этой области, то существует такое значение Е, заключенное аежду 0 и 1, что (У)-Г(х) = /’(Ех + (1 -EWy-x). (А.1.7) Угметим, что эта теорема получается применением к функции (О =f(tx + (1 -t)y) 1оычной теоремы о среднем для функций одного переменного. Пусть функции являются функциями от п переменных. Обо- значим через F вектор-функцию с координатами ft, ...,fm - Естественным •бобщением понятия производной на случай некто p-функции служит 71 X /(-матрица F'(x') = (dfi(x)/dx,), (А. 1.8) •бычно называемая матрицей Якоби. Элемент (z, j ) этой магрицы равен зстной производной от i-й координаты F, взятой по /-й переменной. 1аппимео. пои m = п = 2 матрица Якоби имеет вид а/,(х) ЭЛ(х) ”(х) = dxi Э/2(х) ЭХ 2 Э/2(х) dxt йх2 277
)тметим, что в частном случае т = 1 вектор-функция F есть просто обыч- ая функция f=ft и матрица Якоби превращается в вектор-строку (А. 1.6). 2. Обыкновенные дифференциальные уравнения Пусть у - функция от одной переменной t. Обыкновенным дифферен- циальным уравнением для функции у называют соотношение вида /ф.у(Г), У\П,.... /">(0) = О, (А.2.1) де F — заданная функция от п + 2 переменных, а независимая перемен- яя t изменяется в некотором конечном или бесконечном интервале. Урав- ение (А.2.1) представляет собой наиболее общий вид обыкновенного диф- ференциального уравнения порядка п, где порядок уравнения определяется сак порядок старшей входящей в зто уравнение производной от неизвест- юй функции у. Обычно предполагается, что уравнение разрешимо относи- ельно старшей производной, так что его можно записать в виде у<я)(О = f(t,y(r),y'(r),-,y(n~l4t)). (А.2.2) гели функция f зависит линейно от функции у и ее производных, то урав- гение называется линейным и записывается в форме У(и)(0 = <Zo W + fl. (г)у(г) + - + ап_ 1 (Г)/"- *)(О, (А.2.3) де а о..1 - заданные функции. Уравнение (А.2.2) можно рассматривать и в случае, когда у и f являют- ся вектор-функциями; при этом мы получаем систему уравнений n-го по- эядка. Простейший случай здесь представляет система уравнений первого юрядка /(О“/(Г.ЯО). (А.2.4) где мы предполагаем, что у и f — векторы с и координатами yit ...,уп и ь В принципе, нам достаточно рассмотреть именно систему уравнений пер- вого порядка, поскольку одно уравнение n-го порядка сводится к систе- ме п уравнений первого порядка (и, следовательно, систему т уравне- ний л-го порядка можно свести к системе пт уравнений первого порядка). Осуществить такое сведение можно, например, следующим образом. Вве- дем новые переменные yi(t) = У('-1)(0, 1=1,..., И. (А.2.5) В этих переменных (А.2.2) принимает вид Уп = fit. yt. Уг..Ул-i), (А.2.6) где из (А.2.5) мы имеем У, = У/+1, i = 1, •••, я -1. (А.2.7) Уравнения (А.2.6)—(А.2.7) образуют систему уравнений первого порядка относительно неизвестных у>, ..., у„, причем координата yt есть просто неизвестная у из уравнения (А.2.2). 278
Очень важный частный случай системы (А.2.4) имеет место, когда вектор-функция f оказывается линейной по у. В этом случае (А.2.4) принимает вид y'(t) = A(t)y(r) + b(t), (А.2.8) где А — заданная матрица размера и X п, элементы которой являются функциями от t, а Ь — заданная вектор-функция от t. Если здесь А не зави- сит от t и b = 0, то мы приходим к линейной однородной системе с постоян- ными коэффициентами у' = Ay, (А.2.9) решение которой может быть, в принципе, получено явно в виде разложения у(0 = (l + At + ±A2t2 + ...^с, (А.2.10) где с — произвольный постоянный вектор с п координатами. Разложение в скобках есть экспоненциальная функция от At, так что' (А.2.10) можно записать в компактной форме как у(0 = еАгс. (А.2.11) Из представления (А.2.11) видно, что общее решение системы (А.2.9) зависит от и произвольных постоянных — и координат вектора с. Таким образом, чтобы выделить единственное решение системы (А.2.9), необходи- мо задать п дополнительных условий. Эти условия обычно формулируются в виде начальных или граничных условий. Так, например, решение (А.2.9), удовлетворяющее начальному условию у (0) = у0, имеет вид y(t) = еА *у0. Если уравнение имеет более сложную форму, то начальные условия уже не удается использовать таким простым образом. Более того, в общем случае непосредственно даже не очевидно, при каких условиях задача Коши y'(f) = f(t, y(t)), у(0) = у0, (А.2.12) имеет единственное решение. Основные теоремы, формулирующие эти условия, можно найти в любом учебнике по обыкновенным дифферен- циальным уравнениям. Если п дополнительных условий на решение заданы не в одной точке отрезка, а в нескольких, то мы приходим к краевым задачам. Простейшим примером краевой задачи является следующая. Рассмотрим одно уравнение второго порядка y"=f(J,y) (А.2.13) и предположим, что нам^надо найти решение у, которое в точках а и b принимает заданные значения у (в) = а, у(Ь) = 0, (А.2.14) где а и р — некоторые постоянные. В такой ситуации интерес обычно пред- ставляет решение на отрезке [а, д]. Уравнение (А.2.13) с граничными ус- ловиями (А.2.14) называется двухточечной краевой задачей. Центральным здесь снова является вопрос о существовании и единственности решения, который в данном случае значительно сложнее, чем для задачи Коши. 279
В (А.2.14) мы могли бы наложить условие не на функцию, а на ее пер вую производную, например, у'(а) = a, y(b) = Р. В более общем случае уравнения (А.2.2), которое имеет порядок и, мы должны задать п условий на функцию у и (или) ее производные до поряд- ка п - 1. В терминах системы первого порядка (А.2.4) мы должны за- дать р условий на значения компонент у >,..., уп в точке а и к— р условий в точке Ь. 3. Линейная алгебра и теория матриц В этом приложении мы приводим некоторые основные результаты, отно- сящиеся к линейной алгебре и теории матриц. Эти разделы математики являются важнейшим инструментом для многих областей научного про- граммирования. Пусть А = (ац) — вещественная матрица размера п X п. Обозначим транспонированную к А матрицу через Ат, обратную А~1 и определи- тель det А. Если матрица А~‘ существует, то говорят, что матрица А является невырожденной. Приводимая ниже теорема дает ряд других спосо- бов установления невырожденности матрицы. Теорема А.3.1. Эквивалентны следующие утверждения. 1. Матрица А является невырожденной. 2. det А ¥= 0. 3. Линейная система Ах= 0 имеет только тривиальное решение х= 0. 4. При любом векторе Ь линейная система Ах= b имеет единственное решение. 5. Столбцы (строки) матрицы А линейно независимы, т.е. из aiat + ... ... + а„в„ = 0, где а^, ...,ап — столбцы A, a ait ...,а„ - некоторые постоян- ные, следует, что все а, равны нулю. Последнее утверждение можно перефразировать следующим образом, ранг матрицы А равен п. В общем случае ранг определяется как число линейно независимых столбцов (или строк) матрицы. Вещественное или комплексное число X и вектор х #= 0 называются соответственно собственным значением и собственным вектором мат- рицы А, если Ах = Хх. (А.3.1) Из теоремы А.3.1 следует, что X является собственным значением в том и только том случае, если det (Л - X/) = 0. (А.3.2) Это соотношение называется характеристическим уравнением матрицы А, причем его левая часть является полиномом степени п по X. (Здесь через I, как обычно, обозначена единичная матрица.) Следовательно, матрица А имеет ровно п (не обязательно различных) собственных значений - кор- ней (А.3.2). Совокупность этих п собственных значений Хъ .... Х„ назы 260
вается спектром А, а величина р(А ) = max | Xf | 1 < I < п (А.3.3) называется спектральным радиусом матрицы А. Вычисление собственных значений является, вообще говоря, сложной задачей, но имеется один важный класс матриц, где они определяются с пер- вого взгляда. Мы имеем в виду верхние и нижние треугольные матрицы собственными значениями которых являются просто элементы главной диагонали. Важный частный случай треугольных частиц составляют диаго- нальные матрицы d, О D = О которые мы обычно записываем как D ~ diag Даже если элементы матрицы А вещественны, ее собственные значения могут быть невещественными. Однако если матрица вещественна и симметрична, т.е. А - Ат, то все ее собственные значения вещественны. Если, кроме того, матрица А является положительно определенной, т.е. хтАх> 0 при всех х 0, то все ее собственные значения положительны. Верно и обратное утверждение: если все собственные значения веществен- ной симметричной матрицы положительны, то эта матрица является поло- жительно определенной. Одной из наиболее важных операций в теории матриц является преобра- зование подобия. Две матрицы А к В размера и X и называются подобны- ми, если существует невырожденная матрица Р такая, что В = РАР~1. Важным свойством преобразования подобия является то, что оно сохраняет собственные значения. Теорема А.3.2. Если матрицы А и В подобны, то они имеют одина- ковые собственные значения. Евклидова длина вектора х определяется как (А.3.4^ Это частный случай векторной нормы, которая в общем случае определяет- ся как вещественная функция, обладающая следующими свойствами. 1. ||х|| > 0 для любого вектора х: ||х|| = 0 только в том случае, если х = 0. 2. || ах|| = I er I -11x11 для любого скаляра а. (А.3.5) 281
З..||х+у || < llxll + Ujll для любых векторов х и у. Свойство 3 известно как неравенство треугольника. Обладающую перечисленными свойствами евклидову длину (А.3.4) бычно называют евклидовой нормой или нормой /2. Другие широко спользуемые векторные нормы определяются выражениями 11*111 = Е |х,-|, llxll^ = max |х,-|. (А.3.6) 1=1 1 < 1 < л ервая из этих норм известна как норма /п а вторая — как норма lm се три нормы (А.3.4) и (А.3.6) принадлежат классу норм 1Р / и \Чр 11х||р = ( Е |xfn , (А.3.7) феделенных при любом вещественном р& [1,.оо)_ Нормаявляется сдельным случаем (А.3.7) при Другой важный класс норм образуют эллиптические нормы, опреде- юмые выражением ||х|| = (*7Ях)1/2, е В — некоторая заданная симметричная положительно определенная мат- ща; евклидова норма получается здесь как частный случай при В = I. Наглядное геометрическое представление об этих разнообразных нормах ет множество векторов единичной нормы, т.е. множество |х : ||х|| = 1}, зываемое единичной сферой. В случае векторов на плоскости эти множе- за для некоторых норм показаны на рис. А.3.1. Рис. А.3.1. Единичная сфепа в некоторых нормах Эллиптические нормы играют центральную роль в теории матриц. Это <зано с тем, что их можно ввести посредством скалярного произведения, омощью которого, в свою очередь, определяется понятие ортогонально- : векторов. Скалярным произведением двух векторов называется шяриая функция от двух векторных - переменных, которая обладает дующими свойствами (мы формулируем эти свойства только для веще- енных векторов). I. (х,х) > О для любого вектора х; (х,х) = 0 только в том случае, и х= 0. 2. (ах, у) = а(х, у) для любых векторов х и у и любого скаляра а. k (x,j) = (у, х) для любых векторов х и у. (А.3.8) к (х+г,, у) = (x,j) + (z, у) для любых векторов х,у и z.
Любое скалярное произведение позволяет определить норму как 11x11 = (х, х)1/2. Эллиптические нормы возникают при этом, если скалярное произведение вводится выражением (х,у)=хтВу. (А.3.9) Два отличных от нуля вектора х и у называются ортогональными (по отношению к заданному скалярному произведению), если (x,j) = 0. В случае евклидова скалярного произведения, которое определяется (А.3.9) при В = /, зто соответствует обычному интуитивному представлению об ортогональности векторов. Отличные от нуля ортогональные векторы являются линейно независимыми. О множестве из п ортогональных векто- ров говорят, что они образуют ортогональный базис. Если столбцы матрицы А ортогональны и имеют единичную евклидову длину, то матрица А является ортогональной. Ортогональные матрицы сохраняют длину вектора, т.е. ||Лх||2 = ||х||2. Говорят, что последовательность векторов |х^кМ сходится к векто- ру х,если || х* — х || -* 0 при к -* оо. Кажется вполне естественным предположить, что имеются последовательно- сти векторов, которые сходятся в одной норме и расходятся в другой. Как это ни удивительно, оказывается, что это не так. Теорема А.3.3. Эквивалентны следующие утверждения. 1. Последовательность |х^кИ сходится к х в некоторой норме. 2. Последовательность |х^Н сходится к хвлюбой норме. 3. Все координаты векторов последовательности {х I сходятся к соот- ветствующим координатам вектора х,т.е. х^ -+xf при к*я1,..., п. Следствием этого результата, иногда называемого теоремой об эквива- лентности норм, является тот факт, что когда мы говорим о сходимости последовательности векторов, то не обязательно указываем какую-либо конкретную норму. Любая векторная норма порождает соответствующую матричную норму II Ах || || Л || = max ——— . (А.3.10) *#о Их II Так определенная матричная норма удовлетворяет условиям (А.3.5) и, кроме того,обладает тем свойством, что IIА В || < ||Л Ц || В ||. Как и в случае векторов, сходимость последовательности матриц можно определить как поэлементную или, что эквивалентно, с помощью любой матричной нормы. Мы говорим, что А^ -*Л при Л-*<»,-если ||Лк — А ||-*0 при к -* оо. При этом из сходимости в некоторой норме следует сходимость в любой другой норме. Особенно важным примером последовательности матриц является после- довательность степеней заданной матрицы А: IЛ*} (к = I, 2, ... ). Основ- 283
той результат о сходимости такой последовательности выражается через спектральный радиус матрицы А. Теорема А.3.4. Последовательность IЛ I (к = I, 2,... ) сходится < нулевой матрице в том и только том случае, если р(А ) < 1. Геометрически матричная норма интерпретируется как максимальная щина вектора, полученного в результате применения преобразования А с векторам единичной сферы; для случая нормы / 2 зто проиллюстрирова- ю на рис. А.3.2. Рис. А.3.2. Норма/, Матричные нормы, соответствующие векторным нормам lt и , меют вид ПЛ Ih = max Е |о,у|, ||Л !!„ = max Е |a//l- (А.3.11) !</<ni=l 1 <(< и j= 1 'ти нормы очень легко вычисляются. Действительно, для их определения остаточно найти максимальную сумму абсолютных величин элементов толбцов или строк матрицы А. Евклидова норма матрицы выражается ерез спектральный радиус матрицы А ТА: || Л ||2 = [ р(ЛгЛ)]1/2, (А.3.12) вычисляется значительно сложнее. Если матрица А симметрична, то А.3.12) сводится к IIЛ ||2 = р(Л). (А.3.13) ычисление нормы при этом не становится проще, но зто выражение уже злее непосредственно связано с самой матрицей А. Из (А.3.10) следует, что если X — некоторое собственное значение матри- ы А и х — соответствующий собственный вектор, то I XIII х II = II Хаг || = || А х || < || А ||||х||, к что | X | < || А ||. Таким образом, любая норма матрицы А дает оценку терху для всех ее собственных значений. Отметим, однако, что в общем слу- ie, в отличие от (А.3.13), знак равенства в этой оценке не достигается.
СПИСОК ЛИТЕРАТУРЫ 1. А з и э (ред.) (Aziz A.). Numerical solutions of boundary value problems'in ordinary differential equations. - N.Y.: Academic Press,-1975. 2. Б а и ч, Роуз (ред.) (Bunch J., Rose D.). Sparse matrix computations. - N.Y.: Aca- demic Press, 1976. 3. Бейли, Шампайи, Уолтман (Bailey P., Shampine L., Waltman P.). Nonlinear two point boundary value problmes. - N.Y.: Academic Press, 1968. 4. Берг, Макгрегор(Berg P., McGregor J.). Elementary partial differential equa- tions. - Holden-Day, 1966. 5. Б p а у н (Brown W.). LATRAN user's manual. - Murray Hill: Bell Laboratories, 1973. 6. Бэйт, Уилсон (Bathe К. J., Wilson E.). Numerical methods in finite element analysis. - Englewood Giffs: Prentice-Hall, 1976. 7. Bap г a (Varga R.). Matrix iterative analysis. - Englewood Cliffs: Prentice-Hall, 1962. 8. Г.арабедяи (Garabedian P.). Partial differential equations. - N.Y.: Wiley, 1964. 9. Гарбо у, Бойль, Донгарра, Mo у. лер (Garbow В., Boyle J., Dongarra J., Moler C.). Matrix eigensystem routines-EISPACK guide extension. V. 51. - N.Y.: Springer-Verlag, 1977. 10. Г й л о й (Giloi W.). Interactive computer graphics: data structures, algorithms, langua- ges. Englewood Cliffs: Prentice-Hall, 1978. 11. Г и p (Gear C.W.). Numerical initial value problems in ordinary differential equations. - Englewood Cliffs: Prentice-Hall, 1971. 12. Даниэль, Мур (Daniel J., Moore R.). Computation and theory in ordinary diffe- rential equations. - San Francisco: Freeman, 1970. 13. Д а ф ф (Duff 1.). A survey of sparse matrix research. - Proceedings of the IEEE, 1977, 6, p. 500-535. 14. Дафф, Рейд (Duff I., Reid J.). Some design features of a sparse matrix code. - ACM Trans, on Math. Soft., 1979,5, p. 18-35. 15. Дафф, Стьюарт (ред.) (Duff I., Stewart G). Sparse matrix proceedings 1978. - Philadelphia: SIAM, 1979. 16. Де Byp(de Boor C.). A practical guide to splines. - N.Y.: Springer-Verlag, 1978. 17. Денис ме йер (Dennemeyer R.). Introduction to partial differential equations and boundary value problems. - N.Y.: McGraw-Hill, 1968. 18. Деннис, Mope (Dennis J., More J.). Quasi-newton methods, Motiviation and theory. - SIAM Review, 1977,19, p. 46-89. 19. Джеи кс(Jenks R.). The SCRATCHPAD language. - In: SIGPLAN Notices. N.Y.: ACM, 1974, p. 101-111. 20. Дженнингс (Jennings A.). Matrix computation for engineers and scientists. - N.Y.: John Wiley, 1977. 21. Джордж, Лю (George A., Liu J.). The design of a user interface for a sparse matrix package. - ACM Trans, on Math. Software, 1979,5, p. 139-162. 22. Д ж о p д ж А., Л ю Дж. Численное решение больших разреженных систем уравне- ний. - М.: Мир, 1984. 23. Донгарра, Банч, Моулер, Стьюарт (Dongarra J., Bunch J., Moler С., Stewart G.). LINPACK users guide. - Philadelphia: SIAM, 1979. 24. Дэвис, Рабинович (Davis P., Rabinowitz P.). Methods of numerical integra- tion. - N.Y,: Academic Press, 1975. 25. Изаксон, К e л л e p (Isaacson E., Keller H-)- Analysis of numerical methods.- N.Y.: Whiley., 1966. 285
26. Каррьер, Пирсон (Carrier G., Pearson C.). Partial differential, equations: theory and technique. - N.Y.: Academic Press, 1976. 27. Кауфман (Kaufman L.). The LZ-algorithm to solve the generalized eigenvalue problem. - SIAM J. on Numerical Analysis, 1974,11, p. 997—1024. 28. К a x а н, Парлетт (Kahan W., Parlett B.). On the convergence of a practical QR -algorithm. - In: Proceedings of the IFIP Congress, 1968, p. A25-A30. 29. К e й ф и u (Keyfitz N.). Introduction to the mathematics of population. - Mass: Addison-Wesley, 1968. 30. К e л л e p (Keller H.). Numerical methods for two-point boundary value oroblems. - N.Y.: Blaisdell (Gjnn), 1968. 31. Кел лер (Keller H.). Numerical solution of boundary value problems for ordinary differential equations: survey and some recent results on difference methods in numeri; cal solutions of boundary value problems for ordinary differential equations/Ed. A. Aziz. - N.Y.: Academic Press, 1975. 32. Коддингтон Э.А., Левинсон H. Теория обыкновенных дифференциаль- ных уравнений. - М.: ИЛ, 1958. 33. Ко у л (Cole J.). Perturbation methods in applied mathematics. - N.Y.: Blaisdell (Ginn), 1968. 34. Кублановская B.H. О некоторых алгорифмах для решения полной пробле- мы собственных значений. - ЖВМ и МФ, 1961,1, № 4, с. 555—570. 35. Курант Р., ГильбертД. Методы математической физики. Т. 1, 2. - М.-Л.: Гостехиздат, 1951. 36. Л а й д л е р (Laidler J.). The chemical kinetics of enzyme action. - L., N.Y.: Oxford Univ. Press (Clarendon), 1958. 37. Л а м б e p т (Lambert J.). Computational methods in ordinary differential equations. - N.Y.: Wfley, 1973. 38. Лапидус, Сейнфел ьд (LapiduS L., Seinfeld J.). Nimerical solution of ordinary differential equations. — N.Y.: Academic Press, 1971. 39. Лассаль, Лефшец(LaSalle J'., Lefschetz S.). Stability by Liapunov’s direct method. - N.Y.: Academic Press, 1961. 10. Л о т к a (Lotka A.). Elements of physical bio)ogy. - In: Elements of mathematical biology, N.Y.: Dover, 1956. И.Лукас, Реддиеи (Lucas T.R., Reddien G.). Some collocation methods for nonli- near boundary value problems. — SIAM J. on Numerical Analysis, 1972,9, p. 341-356. 12. Мадсен, Синковец(Madsen N.K., Sincovec R.F.). The numerical method of lines for the solution of nonlinear partial differential equations. - In: Computational methods in nonlinear mechanics/Eds. J.T. Oden et al. Austin: Texas Inst, for computa- tionals mechanics, 1974, p. 371-380. 13. Мадсен, Синковец (Madsen N.K., Sincovec R.F.). PDECOL: General colloca- tion software for partial differential equations. — ACM Trans. Math. Software, 1979, 5, p. 326-351. 14. M ей ep (Meyer G.). Initial value methods for boundary value problems: theory and application of invariant imbedding. - N.Y.: Academic Press, 1973. 15. Мелгард, Синковец(Melgaard D.K., Sincovec R.F.). Algorithms, PDETWO and PSETM for the solution of two dimensional nonlinear partial differential equations. - ACM Trans. Math. Software, 1981,7. 6. M и т ч e л л (Mitchell A.). Computational methods in partial differential equations. - N.Y.: Wiley, 1969. 7. M и т ч e л л Э., У э й т Р. Метод конечных элементов для уравнений с частными производными. - М.: Мир, 1981. 8. Моулер, Стьюарт (Moler С., Stewart G.). An algorithm for generalized matrix eigenvalue problems. - SIAM J. on Numerical Analysis, 1973,10, p. 241-256. 9. M ю p p e й (Murray J.). A simple method for obtaining approximate solutions for a large class of diffusion-kinetic enzyme problems, - Math. Biosciences, 1968, 2. 0. Ньюман, C iT p о у л (Newman W., Sproul R.). Ptinciples of interactive computer graphics. - N.Y.: McGraw-Hill, 1979. * 1. Оллгауэр, Георг (Allgower E., Georg K.). Simplical and continuation methods for approximating fixed points and solutions to systems of equations. - SIAM Review, 1980,22, p. 28-85. B6
52. Ортега (Ortega J.). Numerical analysis: a second course. — N.Y.: Academic Press, 1972. 53 Ортега(ред.) (Ortega J.). Scientific computing and computer science. — N.Y.: Aca- demic Press, 1976. 54. 0 p т e г а Дж., Рейиболдт В. Итерационные методы решения нелинейных систем уравнений со многими неизвестными. - М-: Мир, 1975. 55. Островский (Ostrowski A.). Solution of equations in euclidean and banach spaces. — N.Y.: Academic Press, 1973. 56. П a p л e т т Б. Симметричная проблема собственных значений. - М.: Мир, 1983. 57. Партер (Parter S.). The use of linear graphs in gauss elimination. - SIAM Review. 1961,3,p. 119-130. 58. Пауэрс (Powers D.). Boundary value problems. - N.Y.: Academic Press, 1972. 59. П p e н т e p (Prcnter P.). Splines and variational methods. - N.Y.: Wiley, 1975. 60. Расселл (Russell R.). A comparison of collocation and finite differences for two- point boundary value problems. - SIAM J.on Numerical Analysis, 1977,14, p. 19-39. 61. Расселл, HI а м п ай и (Russell R., Shampine L.). A collocation method for boun- dary value problems. — Numerische Math., 1972,19, p. 1-28. 62. Расселл, Шамп айн (Russel R., Shampine L.). Numerical methods for singular boundary value problems. - SIAM J. on Numerical Analysis, 1975, 12, p. 13—36. 63. Рей д (ред.) (Reid J.). Large sparse sets of linear equations. - L., N.Y.: Academic Press, 1971. 64. Ph xtмайер, Мортон (Richtmyer R., Morton K.). Difference methods for initial value problems. - N.Y.: Interscience-Wiley, 1967. 65. Робертс, Шипман (Roberts S., Shipman J.). Two-point boundary value prob- lems: shooting methods. - N.Y.: American Elsevier, 1972. 66. Роджерс, Адамс (Rogers D., Adams J.). Mathematicals elements for computer graphics. — N.Y.: McGraw-Hill, 1976. 67. Россер, Ньютон, Гросс (Rosser J., Newton R., Gross G.). The mathema- tical theory of rocket flight. - N.Y.: McGraw-Hill, 1974. 68. Роуз (Rose D.). A graph-theoretic study of the numerical solution of sparse positive deHnite systems of linear equations. — In: Graph Theory and Computing/Ed. R.Rcad., 1971,p. 183-217. 69. Роуз, Уиллогби (ред.) (Rose D., Willoughby R.). Sparse matrices and their applications. - N.Y.: Plenum Press, 1972. 70. P о у ч (Roache P.). Computational fluid dynamics. - Albuquerque: Hermosa Publi- shers, 1972. 71. P у би нов (Rubinow S.).. Introduction to mathematical biology. - N.Y.: Wiley- Intcrscience, 1975. 72. Синковец, Мадсен (Sincovec R., Madsen N.). Software for nonlinear par- tial differential equations. - ACM Trans. Math. Software, 1975, 1, p. 232-260. 73. С м и т и др. (Smith В. et al.). Matrix ejgensystem routines — E1SPACK guide. V. 6. Berlin: Springer-Verlag,1977. 74. Стеттер, Актас (Stetter H., Aktas Z.). A classification and survey of numerical methods for boundary value problems for ordinary differential equations. - Interna- tional J. for Numerical Methodsin Engineering, 1977,11,p. 771-796. 75. Страссеи (Strassen V.). Gaussian elimination is not optimal. Numerische Math., 1969,13, p. 354-356. 76. С т p e и г Г., Фикс Дж. Теория метода конечных элементов. - М.: Мир, 1977. 77. С т р о у д (Stroud A.). Approximate calculation of multiple integrals. - Englewood Cliffs: Prentice-Hall, 1971. 78. С т ь ю a p т (Stewart G.W.). Introduction to matrix computations. - N.Y.: Academic Press, 1973. 79. T о б e й и др. (Tobey R. et al.). PL/l-FORMAC symbolic mathematics interpreter. - In: IBM Program Information Department. N.Y.: Hawthorne, 1969. 80. Tpay 6 (Traub J.). Iterative methods for the solution of equations. - Englewood Cliffs: Prentice-Hall, 1964. 81. T ь ю a p с о H P. Разреженные матрицы. - M.: Мир, 1977. 82. У и л к и н с о н (Wilkinson J.). Rounding errors in algebraic processes; - Englewood Cliffs: Prentice-Hall, 1963. 287
83. Уилкинсон (Wilkinson J.). Error analysis of direct methods of matrix inversion. -- J. ACM, 1961,8, p. 281-330. 84. Уилкинсон Дж. Алгебраическая проблема собственных значений. - М.: Наука, 1970. 85. Уиллогби (ред.) (Willoghby R.). Sparse matrix proceedings. - In: RA 1 (-11707). IBM Thomas J. Watson Research Center. N.Y.: Yorktown Heights, 1969. 86. Уолкер, Г у рд, Др ay н и к (Walker В., Gurd J., Drawneek Е.). Interactive computer graphics. - Crane Russak, 1976. 87. У о p д (Ward R.). The combination shift £>Z-algorithm. - SIAM J. on Numerical Analysis, 1975,12, p. 835-853. 88. Ф о p с а й т Дж.Е., M о л e p К. Численное решение систем линейных алгебраичес- ких уравнений. - М.: Мир, 1969. 89. В а з о в В.Р., Форсайт Дж. Разностные методы решения дифференциальных уравнений в частных производных. - М.: ИЛ, 1963. 90. Ф р э н с и с (Francis J.G.F.). The -transformation. Р. 1, 11. - Computer J., 1961, 1962,4, р. 265-271, 332-345. 91. X а у с х о л д е р (Householder A.). The theory of matrices in numerical analysis. - Boston: Blaisdell (Ginn), 1964. 92. X e и p и ч и (Henrici P.). Discrete variable methods in ordinary differential equations. - N.Y.: Wiley, 1962. 93. X e p н (Hearn A.). REDUCE user’s manual. - Salt Lake City: University of Utah, 1973. 94. X e p н (Hearn A.). Scientific applications of symbolic computation. - In: Computer Science and Scientific Computing/Ed. J. Ortega. N.Y.: Academic Press, 1976. 95. Хестенс, Штифель (Hestenes M., Stiefel E.). Methods of conjugate gradients for solving linear systems. - J. of Research of the National Bureau of Standards, 1952, 49, p. 409-436. 96. X и н д м a p ш (Hindmarsh A.C.). GEAR: ordinaty differential equation system solver. - In: Lawrence Livermore Laboratory Rept. UCID-30001, rev. 2. Livermore, 1972. 97. X и p т, Кук (Hirt C., Cook J.). Perspective displays for 3-dimensional finite difference calculations. - Computers and Fluids, 1975,3, p. 293-304. 98. Хоппенштадт(Hoppensteadt F.). Mathematical theories of populations: demo- graphics, genetics and epidemics. Philadelphia: SIAM, 1975. 99. Ч а з e н (Chasen S.). Geometric principles and procedures for computer graphics. - Englewood Cliffs: Prentice-Hall, 1978. 100. Ч а и д p a (Chandra R.). Conjugate gradient methods for partial differential equations.- In: Dept, of Computer Science Research Rept. № 129. Yale University, 1978. ЮЕШампайн, А л л e н (Shampine L., Allen R.). Numerical computing: an introduc- tion. - Saunders, 1973. 102. Шампайн.Гир (Shampine L., Gear C.). A user's view of solving stiff ordinaty diffe- rential equations. - SIAM Review, 1979, 21, p. 1 -17. 103. Шам пай н, Уатте, Давен nop т (Shampine L., Watts Н., Davenport S.). Solving nonstiff ordinary differential equations - the state of the art/ - SIAM Review. 1976,18, p. 376-411. 104. Шиссер (Schiesser W.). DSS/2 introductory programming manual. Bethlehem: Lehigh University, 1976. 105. Ш у л ьц-(Schultz M.). Spline analysis. - Englewood Cliffs: Prentice-Hall, 1973. 106. Э й з e н шт ат, Турский, Шульц, Ш e p м а н (Eisenstat S., Gursky M., Schultz M.H., Sherman A.H.). Yale sparse matrix package 1: the symmetric codes. - In: Dept, of Computer Science Rept. 112. Yale University, 1977. 107. Эймс (Ames W.). Numerical methods for partial differential equations. - N.Y.: Acade- mic Press, 1977. 108. Эрисман, PeflA(Erisman A., Reid J.). Direct methods for sparse matrices,. - Ox fold: Oxford University Press, 1981. 109. Я н г (Young D.). Iterative solution of large linear systems. - N.Y.: Academic Press, 1971. ПО. Янг. Гpeгоp и (Young D., Gregory R.). A survey of nimerical mathematics, v. 1, II. - Reading: Addison-Wesley, 1972,1973. 111. The MACSYMA reference manual, v. 9. - Cambridge: M. 1. T., 1977. 288