Текст
                    ТШУП
РЕШЕНИЕ
ИНЖЕНЕРНЫХ
ЗАДАЧ
на ЭВМ


A PRACTICAL GUIDI¦ TO COMPUTER METIIODS FOR ENGINEERS Terry E. SHOUP University of Houston PRENTICE-HALL, INC., ENGLEWOOD CUFFS, N. J. 1979
ТШУП РЕШЕНИЕ ИНЖЕНЕРНЫХ ЗАДАЧ НА ЭВМ Практическое руководство Перевод с английского канд. техн. наук В. А. ХОХРЯКОВА под редакцией д-ра физ.-мат. наук В. Б. МИНОСЦЕВА Издательство «Мир» Москва 1982
32:Э7Э Ш96 У-№- 681.3 Шуп Т, Ш95 Решение инженерных задач на ЭВМ: Практическое руководство. Пер. с англ.—М.: Мир, 1982.— 238 с, ил. Книга американского автора, посвященная применению математических методов к решению различных задач на ЭВМ. Основное внимание уделено выбору оптимального алгоритма на основе имеющихся стандартных программ, составленных на языке Фортран. Подробно рассмотрены различные методы оптимизации, встречающиеся в инженерной практике проектирования. Для специалистов и студентов, использующих ЭВМ в практических расчетах. 20204-153 Ш М1 /01ч-82 153-82, ч. 1 1702070000 ББК. 32.97•¦> Редакция литературы по новой технике © 1979, PRENTICE-HALL, INC., ENGLEWOOD CLIFFS, N.J. © Перевод на русский язык, «Мир», 1982
Предисловие редактора перевода Развитие электронной вычислительной техники, создание алгоритмических языков программирования и обширного матема- математического обеспечения ЭВМ позволяет широко использовать ме- ¦юды вычислительной математики при решении различного рода прикладных задач в науке, технике, производстве. Однако ин- инженеру, не имеющему специального математического образова- образования, часто трудно разобраться в литературе по вычислительной математике и выбрать тот или иной метод решения стоящей перед ним математической задачи. Автор данной книги предпринял попытку создать руковод- руководство по практическому применению богатого арсенала методов вычислительной математики для инженеров, занимающихся рас- ченгай и конструкторской деятельностью, и это ему в значи- значительной степени удалось. В книге приводятся численные методы решения часто встречающихся в инженерной практике алгебраи- алгебраических, трансцендентных и дифференциальных уравнений, задач на собственные значения, задач оптимизации и обработки масси- массивов числовых данных. При рассмотрении практических примеров основное внимание уделяется выбору оптимального алгоритма решения с использованием программ, входящих в математическое обеспечение ЭВМ фирмы IBM. Третье издание сборника этих про- программ имеется в русском переводе [12*]. Особого внимания заслуживают гл. 6, 7, посвященные во- вопросам оптимизации, поскольку создание конструкций, обла- обладающих теми или иными оптимальными свойствами, в конечном итоге является главной задачей инженерного проектирования. Книга будет полезна читателям, знакомым с математикой в объеме общего курса технических вузов и владеющих програм- программированием на алгоритмическом языке Фортран. Необходимые для понимания ряда разделов вопросы теории матриц излагаются и гл. 2. В программу подготовки инженеров в вузах нашей страны входит курс «Вычислительная техника в инженерно-эко- инженерно-экономических расчетах». Данная книга может быть с успехом ис- использована и как учебное пособие по этому курсу. Она содержит достаточно примеров, а в конце каждой главы — набор специаль-
Предисловие редактора перевода но подготовленных задач для самостоятельного решения. Посо- Пособий подобного рода в отечественной литературе пока не имеется. При переводе и редактировании книги обозначения некоторых величин приведены в соответствие с принятыми в отечественной литературе, а также устранены замеченные опечатки и неточ- неточности. Поскольку на русский язык переведена лишь незначитель- незначительная часть цитируемой автором литературы, мы приводим краткий список изданных в СССР работ, посвященных вопросам, затрону- затронутым в книге. Ссылки на эту литературу отмечены звездочкой. В. Миносцев ЛИТЕРАТУРА 1*. Аоки М. Введение в методы оптимизации. Основы и приложения нели- нелинейного программирования. Пер. с англ.— М.: Наука, 1977. 2*. Бахвалов Н. С. Численные методы.— М.: Наука, 1978. 3*. Годунов С. К., Рябенький В. С, Разностные схемы.— М.: Наука, 1977. 4* Демидович Б. П., Марон И. А. Основы вычислительной математики.— М.: Наука, 1966. 5*. Калиткин Н. Н. Численные методы.— М.: Наука, 1978. 6*. Ортега Дж., Рейнболдт В., Итерационные методы решения нелинейных систем уравнений со многими неизвестными. Пер. с англ.— М.: Мир, 1975. 7*. Пшеничный Б. Н., Данилин Ю. М., Численные методы в экстремальных задачах.— М.: Наука, 1975. 8*. Самарский А. А. Введение в теорию разностных схем.— М.: Наука, 1971. 9* Стренг Г., Фикс Дж. Теория метода конечных элементов. Пер. с англ.— М.: Мир, 1977. 10* Тихонов А. Н., Самарский А. А. Уравнения математической физики.— М.: Наука, 1977. 11 *. Фадеев Д. К., Фадеева В. Н. Вычислительные методы линейной алгебры.— М.: Физматгиз, 1980. 12*. Сборник научных программ на Фортране. Пер. с англ.— М.: Статис- Статистика, 1974.
Моим родителям — Бетти и Дейлу Шуи посвящаю Предисловие Резкое уменьшение габаритов и стоимости современных ЭВМ при одновременном расширении их возможностей привело к широкому применению компьютеров в различных областях тех- техники. Вследствие возрастающей роли ЭВМ в решении практи- практических задач все большему числу инженеров в процессе про- проектирования приходится иметь дело с компьютером. Обычно инженер, составляющий программу для ЭВМ, старается по- построить ее из блоков имеющихся алгоритмов. Такой подход весьма целесообразен, так как экономит время и позволяет использовать навыки математиков и программистов. Хотя боль- большая часть инженеров и студентов технических специальностей хорошо владеет программированием, они, как правило, недо- недостаточно знакомы с особенностями и пределами применимости вычислительных методов. Цель данной книги — научить выби- выбирать из числа имеющихся алгоритмов оптимальный, наиболее подходящий для решения данной задачи. В отличие от большин- большинства учебников по численным методам эта книга написана инже- инженером специально для инженеров. Изложение каждого метода начинается с подробного описания основных алгоритмов. Это делается с помощью текста, рисунков, схем алгоритмов и приме- примеров. За разъяснением алгоритмов следует их сравнение и обсуж- обсуждение, чтобы яснее стали присущие им достоинства и недостатки и целесообразность их использования в том или ином случае. Везде, где это возможно, даются ссылки на имеющееся математическое обеспечение с рекомендациями по его практическому примене- применению. В книге использован опыт преподавания и исследовательской работы в Рутгерском и Хьюстонском университетах. Изложенные и пей материалы с успехом преподавались инженерам и студентам с различным уровнем подготовки и опытом работы. Материал в книге расположен в порядке нарастающей сложности; изучая ее, читатель постепенно приобретает знания, необходимые для понимания последующего материала. Уровень изложения рас- рассчитан на студентов старших курсов, аспирантов и инженеров. < Осуждаются проблемы, с которыми инженер чаще всего сталки-
Предисловие вается в работе. Для желающих углубить знания в той или иной области в конце каждой главы приводится литература. Автор хотел бы выразить благодарность всем, чьи советы помогли ему выработать структуру книги и форму изложения материала. Особо он хотел бы поблагодарить д-ра Р. Пейджа и д-ра Л. Витте за их поддержку и помощь, а также своих коллег по факультету д-ра Р. Баннеро и д-ра М. Миллера, делившихся с ним своими соображениями и знаниями. Автор благодарен С. Бас- су, Л. Биловичу, Дж. Херрера, Л. Санчесу, Р. Стронгу, Т. By и П. Янгу за просмотр рукописи. Неоценимую помощь оказали ему Р. Содхи, К- Сомкеарти и Т. Циммерман, которые разработали задачи, приведенные в конце глав. Хотелось бы наконец выразить благодарность моей семье за терпение и поддержку в те долгие часы, когда писалась эта книга. Терри Е. Шуи
лава 1 Введение 1.1. ЗАМЕЧАНИЯ О РЕШЕНИИ ЗАДАЧ С ПОМОЩЬЮ ЭВМ В деятельности инженера ничто, пожалуй, не вызывает такого удовлетворения, как успешное решение задач, возникающих в процессе проектирования. Действительно, между итерационными методами решения задач проектирования и природой творчества инженера много общего. Инженер всегда стремился ускорить и автоматизировать механические операции, чтобы высвободить время для творчества. Потому естественно его обращение к ЭВМ, позволяющим выполнять стандартные математические операции с исключительной быстротой и точностью. Однако новые возмож- возможности всегда связаны с дополнительной ответственностью — там, где появляются пути -резкого повышения производительности труда, при неумелом обращении с новой техникой могут быть допущены ошибки, снижающие ее эффективность. Многие труд- трудности, связанные с применением ЭВМ в работе инженера, обус- обусловлены не недостатками компьютера, а неумением правильно выбрать и применить алгоритм, пригодный для решения данной задачи. Потратив перед решением задачи несколько минут на выбор оптимального алгоритма, можно в дальнейшем сэкономить многие часы. Цель данной книги — научить правильно пользо- пользоваться ЭВМ при решении конкретных задач проектирования. Она должна помочь инженеру избежать разочарования и добиться наилучших результатов. В отличие от традиционных курсов вы- вычислительной математики в этой книге внимание сосредоточено на возможностях решения одной и той же задачи разными методами. Особое внимание уделяется анализу недостатков и преимуществ рассматриваемых алгоритмов. 1.2. РОЛЬ ЭВМ В ПРОЦЕССЕ ПРОЕКТИРОВАНИЯ Чтобы лучше понять, когда следует, а когда не следует при- прибегать к помощи ЭВМ, рассмотрим основные этапы процесса про- проектирования. В работе инженера, проектирующего новое изделие или техно- технологический процесс для удовлетворения нужд потребителей, ор-
Осознание потребности Разработка проекта Построение модели Изучение свойств модели Итерационный \ цикл } N. У Доработка проекта Передача проекта в производство Рис. 1.1. Процесс проектирования.
Введение 11 iанически сочетаются наука и искусство. Отличительная черта его работы в том, что он не просто изучает достижения науки и искусства, а стремится использовать их для нужд практики. Процесс инженерного творчества начинается обычно с осознания потребности в новом. изделии или технологическом процессе. Задача инженера — найти подходящее решение и предста- представить его в таком виде, чтобы можно было приступить к произ- производству. Этапы процесса проектирования показаны на рис. 1.1. Мы ви- видим, что проектирование начинается с тщательного изучения воз- возможных решений. Затем собирается информация, позволяющая построить модель разрабатываемого изделия или процесса, чтобы оценить и проверить правильность принятого решения. Необхо- Необходимость этого этапа обусловлена экономическими соображениями, так как практическая проверка решения почти всегда обходится очень дорого, отнимает много времени и требует слишком боль- больших материальных и энергетических затрат. Как правило, разра- разрабатывается математическая модель или используется сочетание простого прототипа и математической модели. Построив модель, приступают к изучению ее свойств, стремясь выяснить, в какой мере разрабатываемое изделие соответствует своему назначению. Обычно с первой попытки не удается найти удовлетворительное решение, однако приобретенный опыт позволяет наметить пути его совершенствования. Этапы построения модели и изучения ее свойств повторяются до тех пор, пока не появится уверенность, что найдено наилучшее возможное решение. Вслед за этим проект передаётся в производство. Затраты времени на разные этапы проектирования неоди- неодинаковы. Часто не удается разделить процесс на этапы, и два, а то и более этапов сливаются в одно целое. В целом для процесса проектирования весьма характерна итерационная цикличность, причем на некоторых этапах приходится выполнять большие объемы вычислений. Здесь при правильном использовании боль- большую помощь оказывает ЭВМ. Надо только следить, чтобы на ком- компьютер возлагались р'утинные, многократно повторяемые вычис- вычисления и не делалось-бы попыток решать с его помощью задач, требующих творческого осмысления абстрактных концепций. Таким образом, использование ЭВМ неэффективно на ранних стадиях проектирования, но может быть очень эффективным на ого более поздних стадиях. Это положение иллюстрируется табл. 1.1. Учитывая широкий диапазон приложений, указанных и этой таблице, не следует смотреть на ЭВМ как на вспомогатель- вспомогательное средство, используемое в процессе проектирования. Правиль- Правильней считать ее важнейшей составной частью методики проектиро- иания, применяемой в современной технике.
Таблица 1.1 Возможности применения ЭВМ при проектировании Этапы проектирования Творческая деятельность Автоматизация вычислений Осознание потребности Разработка проекта Построение модели Исследование свойств модели Доработка проекта ^ Передача проекта в производстве Возможности применения ЭВМ Применение ЭВМ желательно, но возможно лишь в немно- немногих случаях ЭВМ играет вспомогательную роль Используются специальные языки к пакеты прикладных программ Применение ЭВМ желательно; используются численные методы Применение ЭВМ желательно; применяются методы оптимизации Применение ЭВМ желательно; ЭВМ строит графики, управля- управляет производством
¦> Введение 13 1.3. ФАКТОРЫ, ПРИНИМАЕМЫЕ ВО ВНИМАНИЕ ПРИ ПОДГОТОВКЕ ПРОГРАММ ДЛЯ ЭВМ В процессе проектирования приходится выполнять самые разнообразные вычисления, характер и объем которых непрерывно поменяются. Некоторые из них весьма просты и могут быть выпол- выполнены без помощи ЭВМ. Другие сложны и без ЭЙМ невыполнимы. Гасчеты, при выполнении которых приходился прибегать к помощи ЭВМ, можно разделить на следующие категории: 1. Вычисления, аналогичные выполняемым вручную, но повторяющиеся многократно. 2. Вычисления слишком громоздкие, чтобы их можно было вы- выполнить вручную, так как при этом не будет обеспечена необхо- необходимая точность и потребуется слишком много времени. , 3. Подготовка графического представления данных, подготов- подготовка данных для производства и выпуска документации. 1.4. ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА ДЛЯ РЕШЕНИЯ ИНЖЕНЕРНЫХ ЗАДАЧ На рис. 1.2 указаны виды вычислительных устройств, приме- применяемых для решения задач в инженерной практике. В настоящее время происходят коренные изменения габаритов, стоимости, универсальности и эффективности всех видов вычислительной техники. Последние достижения в увеличении объема памяти и скоро- скорости считывания позволяют решать на современных ЭЦВМ чрез- чрезвычайно сложные и громоздкие инженерные задачи. Выявляет- Выявляется тенденция к разработке универсального математического обеспечения для крупных ЭЦВМ. Программы, написанные для одной ЭВМ, можно, как правило, приспособить для использова- использования и на других ЭВМ, обладающих аналогичными возможностями. Применяя терминалы с разделением времени, включенные в ли- линии телефонной связи, можно дать каждому инженеру возмож- возможность пользоваться большими ЭЦВМ. : Если нет необходимости в применении большой ЭЦВМ или если инженер не желает пользоваться компьютером совместно с другими пользователями, то он, по-видимому, предпочтет мини- ЭВМ, приспособленные для решения специальных задач. Послед- Последние работают почти так же, как большие ЭВМ, но обладают мень- меньшим объемом оперативной памяти и требуют от человека более активного участия в их работе, более глубокого вмешательства в процесс решения задачи. Если ЭЦВМ работает как составная часть инженерной систе- системы и постоянно выполняет одни и те же операции, то наибольшую эффективность обеспечивает применение микропроцессора. В этом
Пр&раммоуправ' 1 ляемые калькуляторы Микропроцессор Мини-ЭВМ Большие ЭЦВМ Малые 'габариты Специализированные задачи Низкая стоимость . Специатюеттематическое обеспечение , Ограниченный евод^еыеод большие габариты Разнообразные задачи Высокая стоимость . Универсальное математическое обеспечение Универсальный ввод-вывод Рис. 1.2. Спектр вычислительных устройств для решения прикладных задач.
Введение 15 i л у чае входной сигнал часто представляет собой последователь- последовательность дискретных значений характеристик управляемого процес- процесса, а на выходе формируются сигналы или импульсы, с помощью которых управляют работой других частей системы. Благодаря малой стоимости и большим возможностям микропроцессоры на- находят все более широкое применение во всех сферах жизни. Последние достижения в области программоуправляемых кар- карманных калькуляторов позволяют решать с помощью этого маленького волшебника задачи, превосходящие по сложности те, которые лишь несколько лет назад были доступны только боль- большим ЭЦВМ. В отличие от последних для специализированных компьютеров обычно применяются специальные алгоритмические языки. Программоуправляемые карманные калькуляторы очень удобны для решения задач с небольшим объемом входных и вы- выходных данных. В большинстве случаев числа, полученные в результате счета, поочередно высвечиваются на дисплее. Несмот- Несмотря на некоторые присущие им недостатки, доступность и удобство программоуправляемых карманных кулькуляторов делают их полезными помощниками каждого инженера. Их популярность растет с каждым днем. Выбор того или иного типа ЭВМ зависит от конкретных нужд инженера и от вычислительной сложности решаемой задачи. Нередко одна и та же задача может быть решена с помощью нескольких ЭВМ разных типов. В таких случаях выбор той или иной ЭВМ определяется стоимостью, наличием вспомогательного оборудования, а также личными симпатиями инженера. 1.5. ТИПЫ ЗАДАЧ, РЕШАЕМЫХ С ПОМОЩЬЮ ЭВМ Характер работы инженера определяет многократную повто- повторяемость решаемых им математических задач, в числе которых решение алгебраических и трансцендентных уравнений, решение задач на собственные значения, решение обыкновенных дифференциальных уравнений, решение дифференциальных уравнений в частных произ- производных, решение задач оптимизации, обработка массивов числовых данных. В книге рассматриваются все эти задачи, а также разъясня- разъясняются основные понятия и термины, связанные с методами их решения. Довольно часто вычислительные алгоритмы решения инженерных задач могут быть реализованы на различных вы- вычислительных устройствах. Там, где это возможно, используется имеющееся математическое обеспечение, причем упор делается па выбор оптимального метода решения задачи.
№ Глот 1 ___^ ЛИТЕРАТУРА 1. Furman Т. Т., The Use of Computers in Engineering Design, N. Y., Van Nostrand Reinhold, 1970. 2. Gibson J. E., Introduction to Engineering Desing, N. Y., Holt, Rinehart and Winston,. 1968. 3. Klingman E. E., Microprocessor Systems Design, Englewood Cliffs, N. J., Prentice-Hall, 1977. [Имеется перевод: Клингман Э. Проектирование мик- микропроцессорных систем.— М.: Мир, 1980.] 4. Misehke С. R., An Introduction to Computer-Aided Design, Englewood Cliffs, N. J., Prentice-Hall, 1968. 5. Smith J. M., Scientific Analysis on the Pocket Calculator, N. Y., Wiley, 1975. 6. Woodson Т. Т., Introduction to Engineering Design, N. Y., McGraw-Hill, 1966.
Глава 2 Численное решение алгебраических и трансцендентных уравнений 2.1. ВВЕДЕНИЕ Инженеру часто приходится решать алгебраические и транс- трансцендентные уравнения, что может представлять собой самостоя- самостоятельную задачу или являться составной частью более сложных задач. В обоих случаях практическая ценность численного метода Алгебраические а трансцендентные уравнения Одно уравнение Система уравнений Линейное (одно решение) Нелинейное Линейная (одно решение) Нелинейная (несколько реиюнщ}) Алгебраичес- Алгебраическое (п решении) Трансцендент- Трансцендентное (неопреде- (неопределенное число решений) Рис. 2.1. Классификация уравнений. в значительной мере определяется быстротой и эффективностью получения решения. Выбор подходящего алгоритма для решения уравнений зави- зависит от характера рассматриваемой задачи. Задачи, сводящиеся к решению алгебраических и трансцендентных уравнений, можно классифицировать по числу уравнений и в зависимости от предпо- предполагаемого характера и числа решений. На рис. 2.1 представлена схема классификации уравнений. Одно уравнение будем называть линейным, алгебраическим или трансцендентным в зависимости от того, имеет ли оно одно решение, п решений или неопределенное число решений. Систему уравнений будем называть линейной или
18 Глава 2 нелинейной в зависимости от математической природы входящих в нее уравнений. Решение линейного уравнения с одним неизвестным получа- получается достаточно просто и здесь не рассматривается. Цель данной главы — изложение различных методов решения уравнений, относящихся к остальным четырем типам. 2.2. КОРНИ НЕЛИНЕЙНОГО УРАВНЕНИЯ Обычно нелинейные уравнения делят на трансцендентные и алгебраические. Хотя они часто решаются одними и теми же ме- методами, в данной главе методы их решения рассматриваются по отдельности, так как решения алгебраических уравнений обла- обладают особыми свойствами. Этот раздел посвящен трасцендентным уравнениям; алгебраические уравнения рассматриваются в сле- следующем разделе. Нелинейные уравнения, содержащие тригонометрические функции или другие специальные функции, например \gx или ех, называются трансцендентными. Методы решения нелинейных уравнений такого типа делятся на прямые и итерационные. Первые позволяют найти решение непосредственно с помощью формул и всегда обеспечивают получение точного решения. Известным примером такого рода является формула корней квад- квадратного уравнения. В итерационных методах задается процедура решения в виде многократного применения некоторого алгоритма. Полученное решение всегда является приближенным, хотя может быть сколь угодно близким к точному. Итерационные методы наиболее удобны для реализации на ЭВМ и поэтому подробно рассматриваются в этой главе. В каждом из излагаемых методов считается, что решаемая задача состоит в отыскании действи- действительных корней (нулей) уравнения/(х) = 0. Хотя подобные урав- уравнения также могут иметь комплексные корни, способы их отыс- отыскания обычно рассматриваются только для алгебраических уравнений. Метод половинного деления Блок-схема алгоритма метода половинного деления представ- представлена на рис. 2.2. Он состоит из следующих операций. Сначала вычисляются значения функций в точках, расположенных через равные интервалы на оси х. Это делается до тех пор, пока не будут найдены два последовательных значения функции f(xn) и f(xn+i), имеющие противоположные знаки. (Напомним, если функция непрерывна, изменение знака указывает на существование корня.)
Алгебраические и трансцендентные уравнения 19 Вычисление функции через равные интервалы значениях до смены зна- знака при переходе от f(xn) Достаточно ли мала, величина Рис. 2.2. Блок-схема алгоритма метода половинного деления. Затем по формуле вычисляется среднее значение х в интервале значений [хп, xn+il и находится значение функции/(хср). Если знак/(л;Ср) совпадает со знаком f(xn), то в дальнейшем вместо f(xn) используется f(xcp). Если же /(*ср) имеет знак, противоположный знаку f(xn), т. е. ее знак совпадает со знаком /(xn+i), то на f(xcf) заменяется это значение функции. В результате интервал, в котором заключено
20 Глава 2 значение корня, сужается. Если /(хср) достаточно близко к нулю, процесс заканчивается х, в противном случае он продолжается. На рис. 2.3 эта процедура показана графически. Хотя метод поло- половинного деления не обладает высокой вычислительной эффектив- Рис. 2.3. Метод половинного деления. ностью, с увеличением числа итераций он обеспечивает получе- получение все более точного приближенного значения корня. После того как впервые найден интервал, в котором заключен корень, его ширина после N итераций убывает в 2N раза. Метод ложного положения 2 В основе этого метода лежит линейная интерполяция по двум значениям функции, имеющим противоположные знаки. При оты- отыскании корня этот метод нередко обеспечивает более быструю сходимость, чем предыдущий. Блок-схема алгоритма метода лож- ложного положения дана на рис. 2.4. Счет ведется следующим обра- образом. Сначала определяются значения функции в точках, располо- расположенных на оси х через равные интервалы. Это делается до тех пор, пока не будет найдена пара последовательных значений функции f(xn) и f(xn+i), имеющих противоположные знаки. 1 Чаще применяется оценка сходимости по абсолютной величине раз- разности двух последовательных приближений \хп+1—лг„| <е, хотя для каждого из приведенных в этой главе методов имеются свои оптимальные оценки точ- точности [2*, 4*, 5*].— Прим. ред. 2 Другое распространенное название — метод хорд.— Прим. ред.
Алгебраические и трансцендентные уравнения 21 Вычисление функции через равные интервалы значе - нип х до смены знака при переходе от -f(xn) к '\хпн) Вычисление ее и f(x*) Достаточно ли мала величина 4'(х Рис. 2.4. Блок-схема алгоритма метода ложного положения. Прямая, проведенная через эти две точки, пересекает ось х при значении у*—у f (Y 1 Это значение аргумента используется для определения значения функции /(**), которое сравнивается со значениями функций f(xn) и f(xn+1) и в дальнейшем используется вместо того из них, с которым оно совпадает по знаку. Если значение /(#*) недоста-
22 Глава 2 *-Х Рис. 2.5. Метод ложного положения. точно близко к нулю, то вся процедура повторяется до тех пор, пока не будет достигнута необходимая степень сходимости. На рис. 2.5 процесс решения показан графически. Метод Ньютона1 Метод последовательных приближений, разработанный Нью- Ньютоном, очень широко используется при построении итерацион- итерационных алгоритмов. Его популярность обусловлена тем, что в отли- отличие от двух предыдущих методов для определения интервала, в котором заключен корень, не требуется находить значения функ- функции с противоположными знаками. Вместо интерполяции по двум значениям функции в методе Ньютона осуществляется экстра- экстраполяция с помощью касательной к кривой в данной точке. На рис. 2.6 показана блок-схема алгоритма этого метода, в основе которого лежит разложение функции f(x) в ряд Тейлора f(xn + h) = f (xn)+hf (хп) +hjf" (хп) +.... Члены, содержащие h во второй и более высоких степенях, отбрасываются; используется соотношение xn+h—xn+i. Предпо- Предполагается, что переход от хп к xn+i приближает значение функции к нулю так, что f(xn+h)=O. Тогда *n+i = *«-7 (*Л)/Г Обо- Обозначение xn+i соответствует точке, в которой касательная к кри- кривой в точке хп пересекает ось х. Так как кривая f{x) отлична от 1 Другое распространенное название метода — метод касательных.— Прим. ред.
Алгебраические и трансцендентные уравнения 23 Выбор подходящего начального значения Вычисление Достаточно ли ж величина ffaj Рис. 2.6. Блок-схема алгоритма метода Ньютона. Рис. 2.7. Метод Ньютона.
24 Глаза 2 прямой, то значение функции /(хп+1) скорее всего не будет в точ- точности равно нулю. Поэтому вся процедура повторяется, причем вместо хп используется хп+1. Счет прекращается по достижении достаточно малого значения f(xn+1). На рис. 2.7 процесс решения уравнения методом Ньютона показан графически. Совершенно ясно, что быстрота сходимости в большой мере зависит от удач- удачного выбора исходной точки. Если в процессе итераций тангенс угла наклона касательной /' (х) обращается в нуль, то применение метода осложняется. Можно также показать, что в случае беско- бесконечно большого \" {х) метод также не будет достаточно эффектив- эффективным. Так как условие кратности корней имеет вид f(x) = f (x) = =0, то в этом случае метод Ньютона не обеспечивает сходимость. Отметим, что иногда используется другой способ контроля схо- сходимости, состоящий в сравнении хп и xn+i. Метод секущих Один из недостатков метода Ньютона состоит в том, что, поль- пользуясь им, приходится дифференцировать функцию }(к). Если нахождение производной затруднено, то можно воспользоваться некоторым приближением, которое и составляет основу метода секущих. Заменив производную f (x), используемую в методе Ньютона " П f (Xn) ' разностью последовательных значений функции, отнесенной к разности значений аргумента Г \Хп) у у > хп хп~1 получим следующую итерационную формулу: х =х И'я) Схема алгоритма для этого метода та же, что и для метода Нью- Ньютона (несколько иной вид имеет итерационная формула). В сущ- сущности в методе секущих для отыскания корня используется ком- комбинация интерполяции и экстраполяции. В своей интерполяцион- интерполяционной части этот метод эквивалентен методу ложного положения. Как и в случае метода Ньютона, счет заканчивается, когда последовательные значения х совпадают с некоторой приемлемой точностью или когда значение функции / (х) становится достаточно близким к нулю. В случае кратных корней при использовании метода секущих возникают те же трудности, что и при исполь- использовании метода Ньютона.
Алгебраические и трансцендентные уравнения 25 Выбор подходящего начального знйчения Вычисление Рис. 2.8. Блок-схема алгоритма метода простой итерации. Метод простой итерации Для применения этого метода уравнение f(x) =* 0 представ- представляется в следующем виде: Соответствующая итерационная формула имеет вид Блок-схема алгоритма метода представлена на рис. 2.8. Простота метода простой итерации делает его привлекательным* однако не следует забывать, что и этому^ методу присущи недостатки, так как он не всегда обеспечивает*сходимость. Поэтому для любой программы, в которой используется этот алгоритм, необходимо предусматривать контроль сходимости и прекращать счет, если сходимость не обеспечивается.
26 Глава 2 Пример 2.1 ^Ползун Заделка //// /SS Требуется определить величину критической силы для стержня, один конец которого защемлен, а другой может перемещаться в вертикальном направлении, как показано на рисунке. Критическая сила в этом случае определяется уравнением где Р -^ критическая сила, при которой стержень теряет устойчивость, EI —> изгибная жесткость стержня, L — его длина. Введем обозначение х= I/ — L, Тогда трансцендентное уравнение, которое предстоит решить, принимает вид х— igx— 0. Воспользуемся методом Ньютона. Чтобы выбрать начальное значение х, изоб- изобразим график зависимости tg x от х, из которого следует, что значение первого ненулевого корня уравнения заключено между я и Зя/2. Поэтому примем начальное значение х=4,5. Программа решения этой задачи имеет вид С С с с с с с с с с с с 1.00 р FW-X-TAHOQ-D ШоЪом Шотона. Счет прекращается при F Менее В,0Ш1и/1Ц если вдело итераций превышает за. Т.Щп, 25.Ю.77 Выбор начального змшя X « 4.5. ШШ6,100) FORHATAX,20('-'J> ШТЕ!6,101>
Алгебраические и трансцендентные уравнения 27 101 F0RHAH' ПЕШШ',2Х,' Г) URITEF,102> 102 FORHAK' NUMBER ',2t,' VALUE'» MRITEU,100> WRITEU,1O4) X Ж FORHATC START',5X,F1M> 90 I 1-1,30 С с Вычисление значения функции f = х - simxvcosw с Вычисление производной функции в точке X ВТ = I. - Ь/(С03(ХЖ2) X s X - F/DF UftITE(<5,103) I,X t IFtASSin.LE.0.00001) 60 TO 2 103 F0RHAT<1X,I5f5X,F]0.4) 2 HR1TED,1OO) STOP END Выдачу получаем в виде Номер Значение итерации К 0 4.5000 1 4.4936 Z 4.4?34 3 4.4?34 Таким образом, метод Ньютона обеспечивает очень быструю сходимость при начальном значении х = 4,5. Отметим, что при начальных значениях х = 4,0 или 5,0 сходимость не достигается. 2.3. ОПРЕДЕЛЕНИЕ КОРНЕЙ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ Уравнения, содержащие суммы целых степеней х, называются алгебраическими. Их общий вид Свойства алгебраических уравнений При отыскании корней алгебраических уравнений полезно имел? в виду некоторые их свойства: 1. Алгебраическое уравнение порядка п имеет п корней, которые могут быть действительными или комплексными. 2. Если все коэффициенты at действительные, то все комплек- комплексные корни образуют комплексно-сопряженные пары. 3. Число положительных действительных корней равно или меньше (на целое число) числа перемен знаков в последователь- последовательности коэффициентов а*. 4. Число отрицательных действительных корней равно или
28 Глава 2 меньше (на целое число) числа перемен знаков в последователь- последовательности коэффициентов а* при замене х на —х. Известны прямые методы отыскания корней алгебраических уравнений второй и третьей степеней, однако для уравнений более высоких степеней приходится использовать итерационные методы. В строго математическом смысле, найдя какой-либо корень алгеб- алгебраического уравнения х* итерационным методом, можно понизить порядок этого уравнения, разделив его на \х - х*\ и получив уравнение, порядка \п —1|. На первый взгляд такая возмож- возможность кажется привлекательной, однако пользоваться ею сле- следует с осторожностью, так как даже небольшая погрешность в значении первого найденного корня может привести к накопле- накоплению больших ошибок в значениях коэффициентов уравнения (п — 1)-й степени. Отметим, что эта процедура нередко позволяет угадать другие корни, если несколько первых корней уже изве- известны. Развитие изложенных выше методов Алгоритмы решенчя трансцендентных уравнений, описанные выше, можно использовать для нахождения действительных и комплексных корней алгебраических уравнений, если пользо- пользователь готов прибегнуть к арифметике комплексных чисел. По- Покажем это на следующем простом примере. Пример 2.2 Требуется найти корни алгебраического уравнения х* — х3 — Ах2 + Ux — 120 = 0. Воспользуемся методом Ньютона с применением арифметики комплексных чисел. Примем начальное значение x — i-\-ii. Тогда программа решения задачи имеет вид: С с Программа решения алгебраического с уравнения С F(X) =Х**4-Х**3-4.*Х**2+34,*Х-120=0 с с методом Ньютона. с Счет прекращается при F менее а.ооот или с если число итераций превышает зо. с С 7. Шуп 25.JQ.77 С С COMPLEX X,MF с Bbidop начального значения X = <4.,4.) WtITEU,100>
Алгебраические и трансцендентные уравнения 29 ft ъ с "С с 100 101 102 104 1 103. 2 F0RHATAX,35<-'-')) URITE<4,101) FORMATC ITERATION XfREAU JKIHA6)'! URITE(A,102) FORMATC NUMBER') URITE<4,100> И!ИТЕ14,1О4) X FORMAT!- .STf.ST'r5X,F10.5,5X,F10.5) JO 1 1=1,30 Вычисление значения функции F = X*M-X**3-4.+X**2+34.*X-120. Вычисление производной функции в точке X IF = 4.»Х««3-3.«Х«*2-8.*Х+34. X = X - F/DF URITE(t,103> M 7EST = SQRT(REAL(F)*»2+AIMAG(F)**2> IFfTEST.LE.O.O0001) GO TO 2 F0RMAT(IX,I5,5X,F10.5,5X,F10.5) URITED,10O) STOP END Выдачу получаем в виде Номер Цдействит. X (мнимая итерации часть) часть) 4.00000 4.00000 1 3.01187 3.0207О 2 2.1031? 2.29025 3 0.74130 1.88393 4 2.11373 3.58713 5 J.52897 2.95183 i 1.01802 2.05950 7 0.99751 3.01033 8 0.9W8 3.00005 9 1.00000 3.00000 10 1.00000 3.00000 Итерации сходятся к корню х = 1+3(. Так как заранее известно, что один из „ ..__._»...„.«»»»._.«.»...» остальных корней должен быть ком- Номер X (действия. Х(мнимаЯ плексно-сопряженным с найденным, то итерации часть) чисть) остается найти еще лишь два корня. .... » . „_... Значения этих корней можно получить, о 2.00000 2.00000 используя формулу корней квадратного j 0Л1293 Ь45022 уравнения, получаемого из исходного 2 '2.48064 1.81840 уравнения. Применяя затем метод ите- з 1.43350 0.83497 раций ко всему алгебраическому урав- 4 4.410S0 «-1.74305 нению, уточним значения корней. Воз- 5 3.388S0 -1.19750 можен и другой подход. Так, можно 4 2.72481 -0.52745 задать другое исходное значение х и 7 2.87133 0.12384 получить, как это часто бывает, дру- g 2.99991 -0.01506 гой корень. Например, задав исходное ? 2.99990 О.ООООО значение х = 2+2i, получим корень ^ 3.00000 •О.ООООО х = З+Ot. В этом случае выдача име- ц 3.00000 -0.00000 еТ ВИД .>.»»»*•.-»•»•¦..>•.-...»а»яшммпм»
30 Глаза 2 Известен целый ряд стандартных программ определения корней алгебриичес- ких уравнений, и инженер имеет возможность выбрать ту или иную n:i них. Таковой является, например, подпрограмма POLRT, входящая в пакет про- программ для научных исследований фирмы IBM. В ней метод Нмотопн исполь- используется для нахождения всех п корней алгебраического уравнения п-п пепсин. Программа для решения уравнения из данного примера с помощью подпро- подпрограммы POLRT имеет вид С с Программа решения алгебраического с уравненца с С FM=X**4-X**3-4.*X**2+34.*X-120=Q С с с помощью подпрограммы POLRT из пакета программ с для научных исследований фирмы ЗВМ. с Т.Шуп 25.10,77 с DINENS10N XC0FE>,C0FE),RQQTRf4),R0QTID) С с Задание коэффициентов XCOF(I) = -120. XC0F12) = 34. XC0FC) = -4. XC0FD> = -1. XC0FE) = 1. С с Определение корней CALL POLRT(XCOF,C0F,4,ROOTR,RO0TI,IER) С с Печать результатов ШШЕ<4,100> URITE1A.102) 102 FORHATdiX,'X(REAL) Х<Ш6>') URITE(&,100) URlTEF,101)<I,R00TR<I)TR00TKI)tI-1,4> 101 F0RMAT<lX,"I5,5X,F10.5t5X,F10.5> J00 FORHATOX,35 ('-')) UR1TEF,100) STOP END Выдачу получаем в виде Х(Эепсяшда. х (мнимая часть) часть) _ 1 3.00000 0, 2 -4.00000 0. 3 1.00000 -3.00000 4 1.00000 3.00000 Специальные методы вычисления комплексных корней Существует несколько специальных методов для отыскания комплексных корней. Все они почти всегда связаны с выделением из исходного алгебраического уравнения квадратичного множите-
Алгебраические и трансцендентные уравнения 31 ля x2+px+q. Широко применяемым методом этого типа является метод Лина. В его основе лежит представление алгебраического уравнения х" + а,,-!*"-1 + •.+ 0 в виде где hx + bo — линейный остаточный член, который мы стре- стремимся сделать равным нулю. Если это возможно, то исходное алгебраическое уравнение делится на квадратичный множитель без остатка. Предположив, что bi = b0 = 0, и сравнивая соот- соответствующие коэффициенты двух приведенных форм алгебраиче- алгебраического уравнения, получаем Алгоритм итерационной процедуры решения иллюстрируется рис. 2.9. Действует он следующим образом. Сначала задаются вероятные значения рад, которые вместе с заданными коэффи- коэффициентами at используются для вычисления bn_t. В свою очередь значение bn_t служит для вычисления Ь„.2ит. д. до тех пор, пока не будут найдены все коэффициенты, включая Ь2. Значения Ья, Ь2, «1 и ап позволяют найти из двух последних уравнений уточ- уточненные значения рад, которые обозначим через р* и q*. Если их отличие от р и q достаточно мало, счет прекращается. В про- противном случае вся процедура повторяется с использованием новых значений р и q. Как видим, процедура решения сводится к реше- решению двух уравнений с двумя неизвестными методом простой ите- итерации. Ниже в данной главе этот вопрос рассматривается подроб- подробнее. В другом методе, также основанном на использовании квад- квадратичного множителя х2 + рх + q и называемом методом Бэрстоу, для решения двух уравнений с двумя неизвестными используется метод Ньютона.
32 Глава 2 Выбор начальных значений puq 1 Вычисление Вычисление новых зна- значений р uqno значениям P,q,aQlav b3 и bz остаточно ли малы изменения Замена р нар* и q на а* Рис. 2.9. Блок-схема алгоритма метода Лина. 2.4. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ С этой задачей инженер, пожалуй, чаще всего сталкивается в своей практике. В общем случае система линейных уравнений имеет вид + + + ainxn = cit alx2 + • • • + аппхп = с„. Чтобы эта система имела единственное решение, входящие в нее п уравнений должны быть линейно независимыми. Необходимым и достаточным условием этого является условие неравенства ну-
Алгебраические и трансцендентные уравнения 33 лю определителя данной системы. Алгоритмы решения задач такого типа подразделяются на прямые и итерационные. Возмож- Возможность систематизировать прямые методы для этой задачи делает их весьма популярными. В этом разделе сначала излагаются прямые методы, а затем итерационные. Метод исключения Гаусса Наиболее распространенные прямые методы основаны на приведении системы уравнений к «треугольному» виду. При этом одно из уравнений содержит только одну неизвестную, а в каж- каждом следующем добавляется еще по одной неизвестной. При счете вручную приведение к треугольному виду достигается сложением- и вычитанием уравнений после умножения их на соответствую- соответствующие постоянные множители. Выполняя эту процедуру вручную, нетрудно ошибиться, однако она позволяет построить удобный алгоритм численного решения на ЭВМ. Одним из используемых для этого методов является метод Гаусса. Применяя его, сначала нормируют первое уравнение, деля его коэффициенты на Оц. Затем первое уравнение умножают на первые коэффициенты aiti всех других уравнений и последовательно вычитают из остальных уравнений. В результате первая переменная будет исключена из всех уравнений, кроме первого. На следующем этапе решения такая же процедура применяется костальным п— 1 уравнениям, В результате из оставшихся п—2 уравнений исключается вторая неизвестная. Всю процедуру повторяют до тех пор, пока после п шагов вся система не будет приведена к треугольному виду. Математически эту процедуру можно описать следующим обра- образом. На k-u шаге процесса исключения новые нормированные коэффициенты k-ro уравнения имеют вид . Як. I Ь а новые коэффициенты в следующих уравнениях будут иметь вид Выполняя эту процедуру, следует помнить, что коэффициенты нижестоящих уравнений aui меняются на каждом шаге. Напри- Например, коэффициенты bit ^ на следующем шаге превращаются в коэф- коэффициенты at,}. Проиллюстрируем применение описанной проце- процедуры на следующем простом примере. Пусть методом исключения Гаусса требуется решить систему 2 X» 2913
34 Глава 2 уравнений Xl ~Г Х2 ~Г Х3 Xi = #1 Х2 Х3 x + 2 + , — х4 = 7. Для удобства уравнения обозначим буквами и будем выписы- выписывать только коэффициенты при неизвестных и свободные члены уравнений. Тогда исходная система примет вид Ai 111—12 A, As A, 1 2 3 —1 1 1 Исключая члены, содержащие B1 = A1/l B2 = A2 — Bi В3 = А3 — 2В± .Bl = Ai-3Bi 1 0 0 0 ¦ После исключения членов с Bi с3=в3+cs * " «Л ^~~ & Л —Г" «t> 9 Исключение членов с Bi с2 ¦ ¦•¦- -: D3^C3/(-2) 1 0 0 0 1 —2 j —2 Хг 1 1 0 0 х3 дает 1' 0 0 1 1 а —1 1 2 1 2 —1 Xi, получим 1 —2 —3 — 1 имеем 1 1 —2 1 1 1 1 — 1 2 4 2 — 1 — 1 3 0 —1 — 1 —3/2 0 9 7 2 2 5 2 1 6 3 2 1 —3 D4 = Ct—D3 ,000 3/2 Дойдя до последнего ряда, получим 1 0 0 0 1 1 0 0 1 1 1 0 —1 —1 —3/2 1 2 1 —3 4
Алгебраические и трансцендентные уравнения 35 Возвращаясь к форме уравнений, получим Х\ ~г Х2 I Х% — Xt = 2, ' ¦ Хг ~г Х3 X4 = 1, #з о" -^4== "» Xt = 4, откуда, подставляя значение х4 в 3-е уравнение, х* — во 2-е И т. д., находим решение системы уравнений Xi = 1, х2 = 2, х3 = 3, х4 = 4. На этом примере хорошо видно, что желательно сделать пулевыми все элементы матрицы коэффициентов, стоящие вне главной диагонали. Последняя процедура называется приведе- приведением к диагональному виду и представляет собой усовершенство- усовершенствованную разновидность метода приведения к треугольному виду. Метод исключения Гаусса — Жордана Этот метод дает алгоритм приведения системы линейных урав- уравнений к диагональному виду. Единственным его формальным от- отличием от предыдущего метода является то, что при i > k под- подставляются i Ф k. Назовем k-й ряд ведущим рядом. В методе Гаусса преобразования затрагивали только уравнения, стоящие ниже ведущего ряда. В методе же Гаусса — Жордана преобра- преобразуются уравнения, стоящие и под ведущим рядом, и над ним. Чтобы показать, как это делается, решим предыдущую задачу методом Гаусса — Жордана. Исходный массив имеет вид Ai Л2 As Л4 Исключая члены, содержащие хи В1 = А1/1 111—12 Б2=Л2-Б, 0—2—2 2—2 В3 = А3 — 2В1 0—1—3 4 5 Bi = Ai-3B1 0—2—1 2 1 До сих пор процедура была такой же, как в случае метода Гаусса. После исключения х2 получаем С^В^С, 1 0 0 0 1 С2 = В2/(—2) 0 1 1—1 1 С3 = В3 + Сг 0 0—236 С4=-В4 + 2С2 0 0 10 3 . ' '. . ,t:' 2* 1 1 1 —1 2 3 Xi, 1 1 1 — 1 —1 2 j 1 2 — 1 , получаем 2 0 9 7
36Глава 2 Теперь хорошо с xs, найдем D D D D видны отличия от ^ = C±-@)D, 2 = С2 — D3 lg = C8/(— 2) 4 = С3 — Ds Наконец, исключив xt из всех получим Е Е Е 1 — D1 + @) ?4 2 = D2-(l/2)?4 з = А> + C/2) ?4 . = D.H3/21 метода 1 0 0 0 0 1 0 0 0 0 1 0 Гаусса 0 1/2 —3/2 3/2 . Исключив члены 1 4 —3 6 уравнений кроме последнего, 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 2 3 4 Совершенно очевидно, что этот метод облегчает получение реше- решения. Его недостатком является увеличение объема вычислений. Применение обоих описанных методов усложняется, если какой-либо из элементов ведущего ряда равен нулю. В последнем случае ведущий ряд нельзя нормировать. Однако изменив поря- порядок, в котором расположены уравнения системы, эту трудность можно обойти. Можно показать, что наибольшая точность дости- достигается тогда, когда ведущий элемент имеет наибольшее значение. Поэтому строку с нулевым или малым ведущим элементом надо заменить на ту из стоящих под ней строк, в которой в том же столб- столбце стоит элемент, имеющий наибольшее значение. В литературе встречаются и другие прямые методы приведе- приведения матриц к треугольному виду. Некоторые из них для систем специального вида имеют преимущества по сравнению с методом Гаусса. Хотя обычно прямые методы весьма эффективны, в случае больших матриц они уступают итерационным. Поэтому ниже описывается несколько итерационных методов решения систем линейных уравнений. Итерационные методы решения систем линейных уравнений Итерационные схемы решения систем линейных уравнений применяются к системам, предварительно приведенным к виду 1. О, • ¦ ¦ 4А, Л+ &i, о» *» = *». »-1*»-1+ • • • +6„, Л+ &„. !*!+&„, О- Применяемые для решения таких уравнений методы описаны в главе, посвященной дифференциальным уравнениям в частных
Алгебраические и трансцендентные уравнения 37 производных. Это методы Якоби, Гаусса — Зейделя х и последо- последовательной верхней релаксации, в основе которых лежит система- систематическое уточнение значений переменных, заданных в начале счета. В методе Якоби исходные значения переменных используются для вычисления новых значений хи х2,. . ., хп с помощью приве- приведенных выше уравнений. Процесс прекращается, когда все новые значения оказываются достаточно близкими к исходным. В про- противном случае новые значения используются вместо исходных. ЭтЛт процесс повторяют до тех пор, пока не будет достигнута схо- сходимость или станет ясно, что процесс расходится. В этом методе замена значений всех переменных производится одновременно (одновременное смещение). В методе Гаусса — Зейделя уточненное значение хх сразу же используется для вычисления хг. Затем по новым значениям л-, и хг вычисляют х3 и т. д. Это небольшое усовершенствование итерационной процедуры позволяет существенно увеличить бы- быстроту сходимости. В методе верхней релаксации новые значения каждой пере- переменной представляются в виде где х\п+1) — уточненное значение переменной по Гауссу — Зей- делю, aw — параметр релаксации, заключенный в интервале значений 1 ^ ю ^ 2. При w = 1 этот метод тождествен методу Гаусса — Зейделя. Скорость сходимости зависит от выбранной величины со. 2.5. РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ В отличие от систем линейных уравнений для систем нелиней- нелинейных уравнений не известны прямые методы решения, и поэтому всегда применяются итерационные методы. В наиболее общем случае систему нелинейных уравнений можно представить в виде f (x у у \ — О т. е. как п функций /г от п неизвестных х-г. Задача состоит в том, чтобы найти решение этой системы. В данном разделе мы рас- рассмотрим общепринятые методы решения и их ограничения. 1 В отечественной литературе эти методы чаще называются методом простой итерации и методом Зейделя соответственно.— Прим. ред.
38 Глава 2 Выбор начальных значений от,- Вычисление новых значений х* достаточно ли малы изменения Нет Замена всех значений xt на •г,* Рис. 2.10. Блок-схема алгоритма метода простой итерации для решения систем нелинейных уравнений. Простая итерация Метод простой итерации для решения нелинейных уравнений по существу является развитием метода простой итерации для одного уравнения. Он основан на допущении, что систему урав- уравнений можно привести к виду Xi == Si (Ху, Х2, Х3, ¦ • ¦ , Хп), Х% = §2 \Xi > Х2, Х3, . . ., Хп), хп — gn ,.., хп). Алгоритм решения представлен на рис. 2.10. Используя исходные значения *; из уравнений, последовательно вычисляют новые зна- значения к], при этом в каждом последующем i-м уравнении все переменные xj(j < i) заменяют на новые значения xj, вычислен-
Алгебраические и трансцендентные уравнения 39 ные по предыдущим уравнениям г. Значения х\ сравнивают с предыдущими значениями Xt и выясняют, достаточно ли мало различие между ними. Если каждая переменная изменилась лишь па допустимо малую величину, счет прекращается. Если же это изменение слишком велико, процесс повторяется, причем значе- значения х\ используются в качестве новых исходных значений неиз- неизвестных. Хотя этот метод прямо ведет к решению, у него есть свои не- недостатки. Например, если исходные значения переменных слиш- слишком сильно отличаются от истинного решения, то процесс не сой- сойдется. Область, в которой заданные исходные значения сходятся к решению, называется областью сходимости. Если исходные значения лежат за пределами этой области, то решение получить не удается. К сожалению, с увеличением числа уравнений и, сле- следовательно, числа переменных в нелинейной алгебраической системе область сходимости уменьшается и в случае очень боль- больших систем сходимость обеспечивается лишь при условии, что исходные значения переменных очень близки к истинному реше- решению. Хотя известны методы, позволяющие улучшить сходимость при решении подобных задач, ничто не может заменить здравого смысла и опыта инженера при выборе исходных значений пере- переменных. Метод Ньютона Это наиболее распространенный метод решения систем нели- нелинейных уравнений. Его популярность обусловлена тем, что по сравнению с методом простой итерации, он обеспечивает гораздо более быструю сходимость. В основе метода Ньютона лежит пред- представление всех п уравнений в виде рядов Тейлора: = f1{x1, ..., ха) + АХ1У± ... + AxnJJLjr Члены более высоких порядков, .. . -f- Ахп ^-ЬЧлены более высоких порядков. Если приращения переменных Axt таковы, что функция f} при- принимает значение, близкое к корню, то будем считать, что ле- левые части этих уравнений обращаются в нули. Таким образом, задача сводится к отысканию такой совокупности приращений Ах,, при которой достигается указанная цель. Отбросив члены 1 Эта разновидность метода простой итерации построена по аналогии с методом Зейделя, используемым для систем линейных уравнеинй,— Прим.
40 Г лат 2 Выбор начальных значений ocL Формирование матрицы частных производных и вектора-столбца правой части Решение системы линей- линейных уравнений относи- относительно ДЛГ; Нет ¦Замена всех значе- значений хс новыми зна- Рис. 2.11. Блок-схема алгоритма метода Ньютона для решения систем нелинейных уравнений. более высоких порядков, сведем задачу к решению системы линейных уравнений -/у дхп дхп -и в которой матрицу частных производных и вектор-столбец правой
Алгебраические и трансцендентные уравнения части можно оценить для любого приближенного решения. Най- Найденные значения Axt в дальнейшем используются как поправки к исходному приближенному решению . Хп Хп т* &Хп, Если все корректирующие приращения становятся достаточно малыми, счет прекращается. В противном случае новые значения х{ используются как приближенные значения корней, и процесс повторяется до тех пор, пока не будет найдено решение или станет ясно, что получить его не удастся. Схема соответствующего алго- алгоритма представлена на рис. 2.11. Следует внимательно проверять сходимость. Если значения корней значительно отличаются друг от друга, то условие Axt < 0,0001, где i = 1, 2,. . ., п, может оказаться слишком завышенным для корней Xt, имеющих большие значения. В таких случаях следует пользоваться норми- нормированными корректирующими приращениями ^<0,0001, где i=l, 2, ..., п. xi Хотя метод Ньютона имеет преимущества по сравнению с дру- другими итерационными методами, для него также существует проблема сходимости. Величина области сходимости, грубо гово- говоря, обратно пропорциональна степени сложности и числу урав- уравнений. Пример 2.3 Требуется решить следующую систему четырех уравнений с четырьмя неизвестными: xt + 2х, + х3 + 4х4 = 20,700, х\ + 2ххх<, -\-х\ =15,880, *4 = 21,218, = 7,900. Воспользуемся методом Ньютона. Для этого найдем сначала частные произ- нодные всех уравнений в начальной точке. Полученной матрицей частных производных будем пользоваться для вычисления поправочных коэффициен- коэффициентов к принятым начальным значениям Х[. Поправочные коэффициенты найдем, решив систему четырех линейных уравнений с четырьмя неизвестными. Ре- Решить рассматриваемую задачу можно с помощью приведенной ниже програм- программы для ЭВМ, в которой использована подпрограмма GELG, входящая в пакет программ для научных исследований фирмы IBM и используемая для решения систем линейных уравнений методом исключения Гаусса. Зададим начальные шачения переменных *1 = Ч — *з = xi — 1.0, с которых начнем итерационный процесс.
42 Глава 2 С с Программа решения системы 4- нелинейных с алгебраических уравнений с k неизвестными с методом Ньютона с использованием с подпрограммы gelg из пакета программ с для научных исследовании фирмы JBM. с с Т.Шуп 25.10.77 с DIMENSION XD),VD,4),GD) С с Задание, начальных значений TJO1 1=1,4 1 xm=i URITECA,101> 101 F0RHATAX,58(-'--')) URITEF.102) 102 ПШАГПХ, ITERATION',8Х/ХИ)',8Х,'ХB)',8Х/ХC)',8Х/Х<4)'> 1ШТШ,101) 1 = 0 URITED,IOO)li(X(II),II=1,4) ВО 2 1=1,50 с Задание массива частных производных VII,1) = 1.0 VA,2> = 2.0 VA,3) = 1.0 VU.4) = А.О VB,1) = ?.*Xi1> + 2.+XC2) VB,2) = 2.*XU> VB,3) - 0. VB,4) -" 3.*XD1**2 W< 3.1> = 3.*XA)**2 IM3.2) = 0.0 VI3.J) = 2.tXC) VC,4) = 1.0 VI4.1) = 0. VD,2! ¦= 3. VI4.3) = XD) VD,4) = ХШ С с Задание уравнений БA) = -1.4X!1)-2.*XB>-XC)-4.*XU>+20.70 0B) = -1.*ХA)**2-2.*ХA)*ХB)-ХD)**3+15.88 GC) = 21.213-ХA)**3-ХC)»*2-Х!4) БD) = -,3.*ХB) -ХC)*Х\4>+21.1 НО 3 J=1.4 3 IF(A»S(G(J)).OT.0.00001.) GO TO 4 БО ТО 6 4 CALL 0EL6IC.V,4,1,0.000001,IER) С С Замена значений х(\)новыми S0 5 К*1,4 5 Х(К> = Х(К) + Б(К) 2 1ШТЕ16,100I, (Х(П),П = 1,4) 100 F0RHATEX,I5,4BX,F10.5)> 4 URITED,101)' STOP ' END
Алгебраические и трансцендентные уравнения 43 В этой программе предусматривается прекращение счета, если остаточные члены становятся менее 0,00001 или если число итераций превышает 50. Выдачу по- получаем в виде Номер итерации 0 1 г 3 4 5 4 ? 8 ХA) 1.00000 2.75037 .34485 .47750 .54246 .23637 .2023? .20000 .20000 ХB) 1.00000 4.47430 ¦5.29712 3.84372 6.24338 5.72736 5.598,42 5.40000 5.60000 ХC) 1.00000 7.8957? 5.94935 4.34185 4.12036 4.34362 4.29949 4.3000О 4.30ОО0 ХD) 1.00000 0.17531 0.7028? 1.79830 0.63753 0.91632 1.00022 1.00000 1.00000 Метод возмущения параметров Этот метод представляет собой алгоритм, позволяющий с по- помощью итераций получить решение системы нелинейных уравне- уравнений. Его эффективность не зависит от «удачного» выбора началь- начального приближения. Суть этого метода состоит в следующем. Сна- Сначала наряду с системой уравнений fj{xt) - 0, где i = 1, 2,. . ., п, ] = 1, 2,. . ., п, рассмотрим другую систему gj(xt) = 0, где /=1,2,.. ., п, /= 1, 2, . . ., п, решение которой известно. Затем, «деформируя» уравнения gj = 0, превратим их в уравнения fj — О с помощью конечного числа N последовательных малых приращений параметров -|. где fe=l,2, ..., N. Решение xf1 исходной системы уравнений gf> (xt) можно исполь- использовать как исходные значения переменных для итерационного решения системы gf^Xt). Так как эта система мало отличается от предыдущей, весьма вероятно, что сходимость будет обес- обеспечена. В процессе счета решение х\к~г) используется как исходное для получения решения х^\ В конце счета, когда k становится равным N, решаемая система уравнений становится эквивалент- эквивалентной исходной системе. Так как для превращения системы урав- уравнений, решение которой известно, в решаемую систему может потребоваться большое число шагов A0 или даже 100), то приме-
44 Глава 2 нение этого метода может быть связано с большими затратами машинного времени. Однако положительную роль играет то об- обстоятельство, что при малой величине шагов сходимость на каж- каждом отдельном шаге может быть достигнута всего несколькими итерациями. Известно, что метод возмущения параметров особенно удобен для решения систем уравнений, встречающихся при синтезе механических систем. При этом исходную систему уравнений f?P(xd = 0 можно получить, используя любой механизм рас- рассматриваемого типа. 2.6. ВЫБОР МЕТОДА РЕШЕНИЯ СИСТЕМ УРАВНЕНИЙ Почти все известные пакеты математического обеспечения включают программы решения алгебраических и трансцендент- трансцендентных уравнений несколькими методами. Поэтому перечислить даже некоторые из них невозможно. Здесь мы выскажем лишь ряд общих соображений о целесообразности применения различ- различных алгоритмов в том или ином конкретном случае. Эти рекомен- рекомендации определяются типом решаемых уравнений. Трансцендентные уравнения При решении трансцендентных уравнений более эффективны методы Ньютона, простой итерации и секущих. К сожалению, они не всегда обеспечивают сходимость. С другой стороны, более медленно сходящиеся методы, такие, как метод половинного деления или метод ложного положения, гарантируют получение решения для любой непрерывной функции, если найден интервал, в котором она меняет свой знак. Корни алгебраических уравнений Среди итерационных методов нахождения корней алгебраиче- алгебраических уравнений порядка п есть такие, которые лучше других подходят для решения той или иной конкретной задачи. Ральс- тон и Уилф [7] для достижения наибольшей эффективности реко- рекомендуют пользоваться следующими правилами: Порядок Метод 3 6 85 < п Ньютона Секущих Другие специальные ме- методы
Алгебраические и трансцендентные уравнения 45 Системы линейных уравнений Произвольные системы линейных уравнений легче всего ре- решаются методами исключения с применением обращения матриц. Итерационные методы эффективны лишь в том случае, если матри- матрицы содержат много нулевых элементов. Системы нелинейных уравнений Для решения систем нелинейных уравнений лучше всего пользоваться методом Ньютона. Если точные значения частных производных найти не удается, можно пользоваться их прибли- приближенными значениями, найденными методом секущих. ЗАДАЧИ 2.1. Найти решения следующих трансцендентных уравнений: а) 0.25Х — sinX = 0, б) sinY — 1/K = O, в) lnZ—sinZ = 0, г) 4X—chX = 0, д) Г2 —schr = 0. 2.2. Найти хотя бы один действительный корень следующих алгебраических уравнений: a) б) в) г) хъ + х* + 2х2—х—2=0. 2.3. Найти все кории следующих алгебраических уравнений: а) х*+8х3+2х2+Зх+1=0, б) в) г) д) x«-f-2x4+ 3*2 + 5 = 0, е)
46 Глава 2 2.4. Показанный на рисунке кривошипно-шатунный механизм описывается уравнением /f1s;-cos(9/)-f-/Cssin(9,-)— Кз = & при 1=1, 2, 3, где fll=^, а,= Механизм должен удовлетворять следующим условиям: 1 1,0 20° 2 1,2 45° 3 2,0 60° Спроектировать устройство, отвечающее всем трем указанным выше условиям. Для этого записать трижды уравнение, описывающее работу механизма, и найти Ki- Какие значения аъ а%, а3 соответствуют искомому решению? 2.5. Найти решение следующей системы нелинейных уравнений: == 5, 2.6. Полином четвертого порядка f(x) = л^ - 12л:3 + 46 х2 - 60* + 25 при х — 1 имеет кратный корень. Попытаться найти этот корень несколькими методами, описанными в разд. 2.2. Удобный способ нахождения кратных корней в тех случаях, когда известно, df что они существуют, состоит в том, чтобы сначала решить уравнение -gj =0 (так как производная в точке, соответствующей кратному корню, равна нулю), а затем выяснить, не являются ли некоторые из этих корней корнями исходного уравнения f{x) = 0. Воспользуйтесь этим методом для нахождения корней данного полинома. 2.7. Определение корней характеристического уравнения позволяет выяснить, как влияет увеличение коэффициента усиления на относительную устойчивость управляющей системы. Так. как положительные действительные части корней характеристического уравнения системы соответствуют экспоненциальному развитию переходных процессов, то их следует избегать любой ценой. Для сие-
Алгебраические и трансцендентные уравнения 47 темы регулирования, показанной на рисунке v-Ч Е ?\ -. g в к D 1 4D + 1 1 3D + 1 С характеристическое уравнение имеет вид 12D3 + 7?>2 + D + К = О, 11айти и нанести на график корни D/ в плоскости комплексного переменного и зависимости от возрастающих значений /f. При каком значении коэффициента усиления К система теряет устойчивость? 2.8. Система уравнений имеет решение = 1, х2 = = 8 = 4, Xi - 3, Можно ли найти это решение методом итераций Ньютоиа? Что происходит в процессе решения? Имеется ли способ, позволяющий преодолеть встретившее- встретившееся затруднение? 2.9. Для приведенной ниже системы уравнений = 58, найти решение, задав в качестве исходных следующие значения переменных: Воспользоваться методом возмущения параметров, последовательно решая системы уравнений — х\ + Xlxb = 2 + 77Л710, 2.10. При химической реакции , где iV = l, 2, ..., 10. со.
48 Глава 2 процентное содержание X диссоциированного моля СО2 определяется уравне- уравнением (Р//С*-1)Хя+ЗХ-2=0, где Р — давление, выраженное в атмосферах, а К — константа равновесия *, зависящая от температуры. Найти X при К — 1,648 (что соответствует 2800К) 8 Р=1 атм. ЛИТЕРАТУРА 1. Freudenstein F., Roth В., Numerical Solution of Systems of Nonlinear Equations, J. of theAssoc. for Сотри. Mach., 10, No. 4, pp. 550—556 A963). 2 Grove W. E., Brief Numerical Methods, Englewood Cliffs, N. J., Prentice- Hall, 1966. 3. La Fara R. L., Computer Methods for Science and Engineering, Rochelle Park, N. J., Heyden, 1973. 4. McCalla T. R., Introduction to Numerical Methods and FORTRAN Program- Programming, N. Y., Wiley, 1967. 5. Pall G. A., Introduction to Scientific Computing, N. Y., Appleton-Century- Crofts, Educational Division, Meredith Co., 1971. 6. Ralston A., A First Course in Numerical Analysis, N. Y., McGraw-Hill, 1965. 7. Ralston A., Wilf H. S., Mathematical Methods for Digital Computers, N. Y., Wiley, 1967. 8. Salvadori M. G., Baron M. L., Numerical Methods in Engineering, Englewood Cliffs, N. J., Prentice-Hall, 1961. 9. Turner L. R., Solution of Nonlinear Systems, Annals Mew York Academy of Sciences, 86, pp. 817—827 (I960). 10. Williams P. W., Numerical Computation, N. Y., Barnes and Noble Import Division, Harper and Row, 1972. 1 Lewis В., von Elbe G., Heat Capacities and Dissociation Equilibria of Gases, J. Am. Chem. Soc. 57, p. 612 A935).
Глава 3 Решение задач на собственные значения 3.1. ВВЕДЕНИЕ Целый ряд инженерных задач сводится к рассмотрению систем уравнений, имеющих единственное решение лишь в том случае, если известно значение некоторого входящего в них параметра. Этот особый параметр называется характеристическим, или соб- собственным, значением системы. С задачами на собственные значе- значения инженер сталкивается в различных ситуациях. Так, для тензоров напряжений собственные значения определяют главные нормальные напряжения, а собственными векторами задаются направления, связанные с этими значениями. При динамическом анализе механических систем собственные значения соответст- соответствуют собственным частотам колебаний, а собственные векторы характеризуют моды этих колебаний. При расчете конструкций собственные значения позволяют определять критические на- нагрузки, превышение которых приводит к потере устойчивости. Выбор наиболее эффективного метода определения собствен- собственных значений или собственных векторов для данной инженерной задачи зависит от ряда факторов, таких, как тип уравнений, число искомых собственных значений и их характер. Алгоритмы решения задач на собственные значения делятся на две группы. Итерационные методы очень удобны и хорошо приспособлены для определения наименьшего и наибольшего собственных значений. Методы преобразований подобия несколько сложней, но зато позволяют определить все собственные значения и собственные векторы. В данной главе будут рассмотрены наиболее распространенные методы решения задач на собственные значения. Однако сначала приведем некоторые основные сведения из теории матричного и векторного исчислений, на которых базируются методы опреде- определения собственных значений х. 1 Более подробно с рассматриваемыми в этой главе методами можно оз- ознакомиться по книгам [2*, 4*, 5*, 11 *] из списка дополнительной литературы,— Прим. ред.
50 Глава 3 3.2. НЕКОТОРЫЕ ОСНОВНЫЕ СВЕДЕНИЯ, НЕОБХОДИМЫЕ ПРИ РЕШЕНИИ ЗАДАЧ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ В общем виде задача на собственные значения формулируется следующим образом: ЛХ = КХ, где А — матрица размерности пХп. Требуется найти п скаляр- скалярных значений X и собственные векторы X, соответствующие каждому из собственных значений. Хотя предполагается, что читатель знаком с основами мат- матричного исчисления и теории собственных значений, переходя к методам решения, напомним их основные положения. Основные определения матричного исчисления 1. Матрица А называется симметричной, если ац = ап, где г, /=1,2,.. ., п. Отсюда следует симметрия относительно диагонали akh, где k = 1, 2 п. Матрица 1 4 5 4 3 7 5 7 2 является примером симметричной. 2. Матрица А называется трехдиагональной, если все ее элементы, кроме элементов главной и примыкающих к ней диа- диагоналей, равны нулю. В общем случае трехдиагональная матри- матрица имеет вид • * * * * * * * * * * * • * Важность трехдиагональной формы обусловлена тем, что неко-
Задачи на собственные значения 51 торые методы преобразований подобия позволяют привести произвольную матрицу к этому частному виду. 3. Матрица А называется ортогональной, если АТА = Е, где А т — транспонированная матрица А, а Е — единичная матрица. Очевидно, матрица, обратная ортогональной, эквива- эквивалентна транспонированной. 4. Матрицы А я В называются подобными, если существует такая несингулярная матрица Р, что справедливо соотношение В = Р-^ Основные свойства собственных значений 1. Все п собственных значений симметричной матрицы раз- размерности пХп, состоящей из действительных чисел, действи- действительные. Это полезно помнить, так как матрицы, встречающиеся в инженерных расчетах, часто бывают симметричными. 2. Если собственные значения матрицы различны, то ее соб- собственные векторы ортогональны. Совокупность п линейно неза- независимых собственных векторов образует базис рассматривае- рассматриваемого пространства. Следовательно, для совокупности линейно независимых собственных векторов X', где i = 1,. . ., п, любой произвольный вектор в том же пространстве можно выра- выразить через собственные векторы. Таким образом, _2, 3. Если две матрицы подобны, то их собственные значения сов- совпадают. Из подобия матриц Л и В следует, что В = Р~гАР. Так как АХ = ЯХ, то />~1АХ = ЯР-1Х. Если принять X = Р\, то Р-^АРУ = Х\, a BY = К\. Таким образом, матрицы Л и В не только имеют одинаковые собственные значения, но и их собственные векторы связаны соот- соотношением X = PY.
52 Глава 3 4. Умножив собственный вектор матрицы на скаляр, получим собственный вектор той же матрицы. Обычно все собственные векторы нормируют, разделив каждый элемент собственного вектора либо на его наибольший элемент, либо на сумму квадра- квадратов всех других элементов. 3.3. ИТЕРАЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ Пожалуй, наиболее очевидным способом решения задачи на собственные значения является их определение из системы урав- уравнений (А — %Е)Х = О, которая имеет ненулевое решение лишь в случае, если det (Л — —КЕ) = 0. Раскрыв определитель, получим многочлен п-й степени относительно К, корни которого и будут собственными значениями матрицы. Для определения корней можно восполь- воспользоваться любым из методов, описанных в гл. 2. К сожалению, в задачах на собственные значения часто встречаются кратные корни. Так как итерационные методы, описанные в гл. 2, в этих случаях не гарантируют получение решения, то для определения собственных значений следует пользоваться другими итерацион- итерационными методами. Определение наибольшего собственного значения методом итераций На рис. 3.1 показана блок-схема простейшего итерационного метода отыскания наибольшего собственного значения системы ЛХ = XX. Процедура начинается с пробного нормированного вектора Х<0). Этот вектор умножается слева на матрицу Л, и результат приравнивается произведению постоянной (собственное значение) и нормированному вектору ХA). Если вектор ХA) совпадает с вектором Х@), то счет прекращается. В противном случае новый нормированный вектор используется в качестве исходного и вся процедура повторяется. Если процесс сходится, то постоян- постоянный множитель соответствует истинному наибольшему собст- собственному значению, а нормированный вектор — соответствую- соответствующему собственному вектору. Быстрота сходимости этого итера- итерационного процесса зависит от того, насколько удачно выбран начальный вектор. Если он близок к истинному собственному вектору, то итерации сходятся очень быстро. На быстроту схо- сходимости влияет также и отношение величин двух наибольших собственных значений. Если это отношение близко к единице, то сходимость оказывается медленной.
Задачи на собственные значения 53 Выбор нормированного собственного вектора ХЮ) Вычисление Рис. 3.1. Блок-сх,ема алгоритма итерационного метода решения задач на собственные значения. остаточно т!^~ Да мола разность J> »I Стоп Пример 3.1 30-Ю6 Па 10-Ю6 Па Исследуем трехосное напряженное состояние элемента тела, представлен- представленного на рисунке. Матрица напряжений для него имеет вид [10 5 61 5 20 4 [ 6 4 30 J ¦ 10е Н/м2. Рели исходить из того, что разрушение произойдет при максимальном напря- напряжении, то необходимо зиать величину наибольшего главного напряжения,
54 Глава 3 которое соответствует наибольшему собственному значению матрицы напря- напряжений. Для нахождения этого напряжения воспользуемся методом итераций. Ниже приведена программа для ЭВМ, с помощью которой итерационная про- процедура осуществляется до тех пор, пока разность между собственными значе- значениями, вычисленными в последовательных итерациях, не станет менее 0,01%. В программе использованы две подпрограммы — GMPRD из пакета программ для научных исследований фирмы IBM, служащая для перемножения матриц, и NORML, нормирующая собственные векторы по наибольшему элементу. С с Программа определения собственных значений с Программа позволяет определить наибольшее главное с нопряжение (собственное значение) для данного с трехосного напряженного состояния. с Применяется метод итераций. Счет прекращается, с . когда изменение собственного значения становится с .менее 0,01 процента или чиспоитераций с превышает 50. с Т.Шуп 10.10.77 с DIMENSION SC,3),XC),RC) S(!,l) = 10.Е06 S(l,2) = 5.E06 SB,l) = S(l,2) SA,3) = 6.E06 SC,l) = S A,3) S!2,2> = 20.E06 SS2.3) = I.EOS SC,2) = SB,3) SC,3) = 30.E0A X(l) = 1. : XB) = O.O XC) = 0.0 XOLD =0.0 ' I = 0 URITE!6,IOO) URITED,101) URITE.F,IO2) URITE46,100) URITE(i,104) I,XA),XB),XC) DO 1 1=1,50 CALL GHPRH (S, X, R, 3, 3, I) 00 2 J=1,3 2 X(J) *= R(J) CALL NORML(XLftM,X) URITEC6,!03) I.XLftH,XA),XB),XC) IF(ABS((XOLB-X.LAM)/XLflN;.LE.0.0001) GO TO 3 1 XOLD - XLAN 3 URITEF,1O0) 100 F0RHAT(IX,54('-')) 101 FORMAT<2X,'ITERATION',3X,'EIGENVALUE',IIX,'EIGENVECTOR') 102 F0RHAT<3X,'NUMBER',6X,'(N/H**2>',5X,'X<1)',6X,'X<2>',6X,'XC)') 103 FORMAT(IX,I5,7X,EI2.5,3F10.5) 104 F0l?HAT(lX,I5,m,3F!0.5) STOP END
Задачи на собственные значения 55 С С с .с с с с с с SUBROUTINE NORML(XL.X) DIMENSION ХC) Подпрограмма NORML Эта подпрограмма нахоаит наибольший из трех ¦элементов собственного вектора и нормирует собственный вектор поэтому наибольшему элементу. Т. Шуп 1010.77 FINB THE LARGEST ELEHENT XBIG = X(!> IF(XB).BT.XBIG)XBIG=/B) IF<X<3).GT.XBIG)XBIG=XC) Нормирование no xbis X(U = XA)/XBIG X<2> = XB)/XBIG xC) = xC)/xbig XL = XBIG RETURN END Выдачу получаем в виде Номер итерации "Шствённоё значение <Н/Н**2) Собственный вектор ХШ ХB) ХC) 0 1 2 3 4 S 4 7 8 9 10 11 12 13 14 О.ЮОООЕ 0.26000Е 0.36392Е 0.34813Е О.34253Е 0.34000Е 0.33870Е О.'ЗЗвООЕ 0.33760Е 0.33738Е 0.33724Е 0.3371?Е 0.33714Е- 0.337I2E 0В 0В 08 08 08 08 08 08 08 08 08 08 0В 08 1.00000 1.00000 0.41923 0.42697 0.37583 0.35781 0.34984 0.34580 0.34362 0,34240 0.34171 0.34132 0.34110 .0.34093 0.340?) 0. 0.50000 0.Ш23 0.5&278 0.49954 0.46331 0.44280 0.43121 0.42466 0.42094 0.41884 0.41765 0.41697 0.41658 0.41636 ). 3.6000» 1.00009I 1.00000 .00000 .00000 .00000 .00000 .00000 .00000 .00000 1.00009 .00000 .00000 .00000 Отметим, что для достижения требуемой точности потребовалось 14 итераций.
56 Глаза 3 Определение наименьшего собственного значения методом итераций В некоторых случаях целесообразно искать наименьшее, а не наибольшее собственное значение. Это можно сделать, предвари- предварительно умножив исходную систему на матрицу, обратную Л: Если обе части этого соотношения умножим на 1/к, то получим Ясно, что это уже иная задача на собственное значение, для кото- которой оно равно Ш, а рассматриваемой матрицей является Л. Максимум 1М. достигается при наименьшем Я. Таким образом, описанная выше итерационная процедура может быть использо- использована для определения наименьшего собственного значения новой системы. Определение промежуточных собственных значений методом итераций Найдя наибольшее собственное значение, можно определить следующее за ним по величине, заменив исходную матрицу мат- матрицей, содержащей лишь оставшиеся собственные значения. Используем для этого метод, называемый методом исчерпывания. Для исходной симметричной матрицы Л с известным наиболь- наибольшим собственным значением %% и собственным вектором X! мож- можно воспользоваться принципом ортогональности собственных векторов, т. е. записать XjXj = О при [ф\ и XjXj = 1 при i = /. Если образовать новую матрицу Л* в соответствии с формулой то ее собственные значения и собственные векторы будут связаны соотношением A*Xt = ltXi. Из приведенного выше выражения для матрицы Л* следует, что Здесь при i = 1 свойство ортогональности позволяет привести правую часть к виду АХг — ^Xj.
Задачи на собственные значения 57 Но по определению собственных значений матрицы А это выра- выражение должно равняться нулю. Следовательно, собственное значение Ki матрицы А * равно нулю, а все другие ее собственные значения совпадают с собственными значениями матрицы А. Таким образом, матрица А* имеет собственные значения О, %3, Х3 кп и соответствующие собственные векторы X*, X2>. . . .. ., Хв. В результате выполненных преобразований наибольшее собственное значение Xt было изъято, и теперь, чтобы найти сле- следующее наибольшее собственное значение Х2, можно применить к матрице А* обычный итерационный метод. Определив Х2 и Х2, повторим весь процесс, используя новую матрицу А**, получен- полученную с помощью Л*, А2 и Х2. Хотя на первый взглядхажется, что утот процесс должен быстро привести к цели, он имеет сущест- существенные недостатки. При выполнении каждого шага погрешности в определении собственных векторов будут сказываться на точ- точности определения следующего собственного вектора и вызы- вызывать накопление ошибок. Поэтому описанный метод вряд ли применим для нахождения более чем трех собственных значений, начиная с наибольшего или наименьшего. Если требуется полу- получить большее число собственных значений, следует пользоваться методами преобразования подобия. 3.4. ОПРЕДЕЛЕНИЕ СОБСТВЕННЫХ ЗНАЧЕНИЙ МЕТОДАМИ ПРЕОБРАЗОВАНИЙ ПОДОБИЯ Метод преобразований подобия применяется с целью получить из исходной матрицы новую с теми же собственными значениями, но более простого вида. Очевидно, самым лучшим упрощением было бы приведение матрицы к чисто диагональному виду, так как в этом случае собственные значения просто соответствовали бы элементам матрицы, стоящим на главной диагонали. К сожале- сожалению, большая часть методов преобразования не позволяет этого сделать, и приходится довольствоваться приведением матрицы к трехдиагональной форме. Метод Якоби1 Метод Якоби позволяет привести матрицу к диагональному виду, последовательно исключая все элементы, стоящие вне глав- главной диагонали. К сожалению, приведение к строго диагональному виду требует бесконечно большого числа шагов, так как образо- образование нового нулевого элемента на месте одного из элементов матрицы часто ведет к появлению ненулевого элемента там, где 1 Этот метод и описанный далее метод Гивенса называют методами враще- вращений.— Прим. ред.
58 Глава 3 ранее был нуль. На практике метод Якоби рассматривают как итерационную процедуру, которая в принципе позволяет доста- достаточно близко подойти к диагональной форме, чтобы это преобра- преобразование можно было считать законченным. В случае симметрич- симметричной матрицы А действительных чисел преобразование выполня- выполняется с помощью ортогональных матриц, полученных в результате вращений в действительной плоскости. Вычисления осуществ- осуществляются следующим образом. Из исходной матрицы А образуют матрицу Ах = PiAPf. При этом ортогональная матрица Pi выбирается так, чтобы в матрице Ах появился нулевой элемент, стоящий вне главной диагонали. Затем из Ах с помощью второй преобразующей матрицы Р2 образуют новую матрицу Л2. При этом Р2 выбирают так, чтобы в А 2 появился еще один нулевой вне- диагональный элемент. Эту процедуру продолжают, стремясь, чтобы на каждом шаге в нуль обращался наибольший внедиаго- нальный элемент. Преобразующая матрица для осуществления указанной операции на каждом шаге конструируется следующим образом. Если элемент ам матрицы Лт_х имеет максимальную величину, то Рт соответствует ^** = ^« = cose, при — 0 при Матрица Ат будет отличаться от матрицы Ат_х только строками и столбцами с номерами k и /. Чтобы элемент ag!) был равен ну- нулю, значение Э выбирается так, чтобы cos 9 .... sinG . . . 1 1 1 1 1 1 -sin e . . . . cose •. . .
Задачи на собственные значения 59 Значения 0 заключены в интервале Следовательно, ортогональная матрица Рт будет иметь вид Пример 3.2 Пусть требуется найти значения всех главных напряжений для напряженного состояния, показанного на рисунке примера 3.1. Для этого необходимо найти псе собственные значения матрицы напряжений. Такая потребность возникает, если конструктор вместо теории разрушения при максимальном нормальном напряжении намерен пользоваться какой-либо другой теорией разрушения. Чтобы найти все собственные значения, обратимся к методу преобразований Якоби, для реализации которого воспользуемся подпрограммой EIGEN из пакета программ для научных исследований фирмы IBM, предназначенной для симметричных матриц. Так как матрица симметрична, то она содержит лишь шесть различных элементов. Для экономии памяти подпрограмма EIGEN использует матрицу 3X3 в компактной форме, при которой требуется только шесть ячеек памяти. Программа для решения данной задачи имеет вид с Программа определения всех главных напряжении с трехосной матрицы напряжений. с В программе использована подпрограмма EIGEN из с пакета программ для научных исследований фирмы IBM с Т.шуп 1U.77 с DIMENSION SF),R<?> С с Задание матрицы в компактной форме SA) = 10.Е06 SB) = 5.E04 SC) = 20.Е04 SD) = 4.E06 SE) - 4.EO6 S<6) = 30.EO6 с Определение всех собственных значений методом Якоби CALL EIGEN(S,R,3,0) с Печать собственных значений ШТЕF,100> ШТЕ<6,101) SA),SC),SD) 100 FORHATUX/THE EIGENVALUES ARE') 101 F0R«ATAX,E15.8) STOP END Выдачу получаем в виде Собственные значения равны 0.33?091??Е 08 0.19149061E 08 О.7М17603Е О?
60 Глава 3 Метод Гивенса для симметричных матриц Метод Гивенса основан на преобразовании подобия, аналогич- аналогичном применяемому в методе Якоби. Однако в этом случае алго- алгоритм построен таким образом, что вновь образованные нулевые элементы при всех последующих преобразованиях сохраняются. Поэтому метод Гивенса требует выполнения конечного числа преобразований и по сравнению с методом Якоби связан с мень- меньшими затратами машинного времени. Его единственный недоста- недостаток состоит в том, что симметричная матрица приводится не к диагональному, а к трехдиагональному виду. Ниже будет пока- показано, что такая форма матрицы может быть весьма полезной и оправдывает усилия, затраченные на ее получение. В случае матрицы размерности пхп метод Гивенса требует п — 2 основных шагов, на каждом из которых выполняется ряд преобразований, число которых зависит от числа нулей, кото- которое хотят получить в данном столбце или строке. На k-м шаге обращают в нули элементы, стоящие вне трех диагоналей й-й строки и й-го столбца, сохраняя в то же время нулевые элементы, полученные на предыдущих шагах. Таким образом, перед нача- началом ?-го шага преобразованная матрица является трехдиа- гональной, если ограничиться рассмотрением ее первых k — 1 строк и столбцов. По мере преобразований симметричная матри- матрица размерности 5x5 приобретает следующие формы: исходная матрица, после первого основного шага, состоящего из трех преобразо- преобразований,
Задачи на собственные значения 61 после второго основного шага, состоящего из двух преобразо- преобразований, после третьего основного шага, состоящего из одного преобра- преобразования. Теперь матрица име- имеет трехдиагональный вид. На каждом основном шаге изменяются лишь те элементы мат- матрицы пц, которые расположены в ее правой нижней (заштрихо- (заштрихованной) части. Таким образом на k-м шаге преобразуется только матрица порядка (п — k + 1), занимающая правый нижний угол исходной матрицы. Ясно, что на каждой следующей стадии вы- выполняется меньшее число преобразований, чем на предыдущей. Всего для приведения матрицы к трехдиагональному виду тре- требуется выполнить (п2 — Зп + 2)/2 преобразований. Наш опыт применения метода Гивенса показывает, что можно при выполнении одного шага преобразований обратить в нуль сразу все элементы целой строки и столбца, стоящие вне трех диагоналей матрицы. Метод, позволяющий выполнить такое преобразование, предложил Хаусхолдер х. Метод Хаусхолдера для симметричных матриц Метод Хаусхолдера позволяет привести матрицу к трехдиа- трехдиагональному виду, выполнив почти вдвое меньше вычислений по сравнению с другими методами. Это обусловлено тем, что при его применении становятся нулевыми сразу все элементы строк и столбцов, стоящие вне трех диагоналей матрицы. Метод Хаусхол- Хаусхолдера позволяет получить требуемый результат быстрее, чем метод Гивенса, так как связан с выполнением меньшего числа, хотя и более сложных преобразований. Это его свойство особенно ярко проявляется применительно к большим матрицам. Хотя в методе Хаусхолдера вместо плоских вращений используются эрмитовы В отечественной литературе метод отображений.—Прим. ред.
62 Глава 3 ортогональные преобразования матриц, трехдиагональная форма матрицы, которую получают этим методом, имеет те же собствен- собственные значения, что и трехдиагональная матрица, получаемая методом Гивенса. При использовании метода Хаусхолдера на п — 2 основных шагах выполняются следующие преобразования: л .__ р а рт ь ^=i \ 2 ... Yi 2 где Ло = А. Каждая преобразующая матрица имеет вид где Здесь Е — ПРИ i = 2К\ п, k, ft+i Г п 1/2 В этих уравнениях берется знак, соответствующий элементу ah, h+l. Это позволяет сделать значение uh+1, h максимальным. Отметим, что методами Гивенса и Хаусхолдера можно пользо- пользоваться и в случае несимметричных матриц, приводя их, правда, не к трехдиагональному, а другому частному виду треугольной матрицы * * о о о о * * * о о о * * * * о о ***** о ******* ****** известной как матрица Гессенберга. 3.5. ОПРЕДЕЛЕНИЕ СОБСТВЕННЫХ ЗНАЧЕНИЙ СИММЕТРИЧНОЙ ТРЕХДИАГОНАЛЬНОЙ МАТРИЦЫ Приведя симметричную матрицу к трехдиагональному виду методом Гивенса или Хаусхолдера, необходимо найти ее собст- собственные значения. Чтобы ясней были достоинства трехдиагональ-
Задачи на собственные значения 63 ной формы, сформулируем задачу о собственных значениях в виде det (А— Щ = О, где А — симметричная трехдиагональная матрица. Развернув выражение в скобках, получим - \ = 0. Произвольный определитель порядка п можно выразить через п миноров порядка я— 1, каждый из которых в свою очередь выражается через п — 1 миноров порядка п — 2. Удобство трех- диагональной формы в том, что на каждом шаге все миноры, кроме двух, оказываются равными нулю. В результате исходный определитель представляется последовательностью полиномов /m(b)=@m—Wm-iM—ЬУт-.(Ь). ПрИНЯВ /, (Ь) = 1 И Д(Ь) = —a-i — X при г=2, . . ., п, получим совокупность полиномов, известную как последовательность Штурма и обладающую тем свойством, что корни полинома fj(K) располагаются между корнями полинома fj+1(K). Поэтому для ^(Х) = щ — К можно утверждать, что значение К = а* заключено между корнями полинома /а (К) — (аг — X) (а% — К) — Ь\. Это облегчает итера- итерационное определение корней полинома, так как если известны границы интервалов, в которых лежат значения корней полино- полинома, то их можно найти методом половинного деления. Так после- последовательно находят корни всех полиномов, и последний из них /„ (К) дает все искомые п собственные значения. Эту процедуру можно проиллюстрировать графически (см. рис. на стр. 64). Последовательность Штурма обладает еще и таким свойством: для любого значения Ь, при котором fn(b) Ф 0, число собствен- собственных значений матрицы Л, больших Ь, равно числу изменений знака последовательности 1, -ПФ),
64 Глава 3 Корень Многочлена f; (л) Корни Корни многочлена fJX) ai -•- I i i i Корт многочлена ?_/л) I Корни многочлена fn (к) Если целое число, равное числу изменений знака, обозначить че- через V(b), то число собственных значений в интервале действи- действительных чисел [Ь, с] будет равно V(b)~ V(c). 3.6. ДРУГИЕ МЕТОДЫ ВЫЧИСЛЕНИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ В этом разделе мы рассмотрим два метода определения собст- собственных значений, имеющие большое практическое значение. Оба разработаны в последние 20 лет и наиболее эффективны в тех случаях, когда требуется найти все собственные значения про- произвольной матрицы действительных или комплексных чисел. В обоих используются преобразования, позволяющие получить последовательность подобных матриц, сходящуюся к матрице блочной треугольной формы: 1 * + — 1 Х2 1 1 0 1 * * 1 1Х31 L__J • * * • * • * • * * * • 4 > * * * * • * * * *
Задачи на собственные значения 65 где блоки Хт представляют собой матрицы размерности 2x2, расположенные на главной диагонали. Собственные значения блоков Хт являются в то же время собственными значениями исходной матрицы размерности пХп. Такая форма удобна, так как детерминант второго порядка блоков Хт позволяет опреде- определять комплексные собственные значения, не вводя комплексных элементов в окончательную матрицу. Если все собственные зна- значения исходной матрицы действительные, то в окончательном виде она будет треугольной, причем собственные значения будут расположены на диагонали. Метод LR Этот метод первоначально был разработан Рутисхаузером в 1958 г. Метод основан на представлении матрицы А в виде про- произведения А = LR, где L — левая треугольная матрица с единичными диагональ- диагональными элементами, a R — правая треугольная. Применяя преоб- преобразование подобия L"ML, видим, что Аг = L-%AL= L-1 (LR)L = RL. Следовательно, И Ат — Hm — i'-'Tn—i' Этот процесс повторяется до тех пор, пока L8 не превратится в единичную матрицу Е, a Rs не приобретет квазидиагональную форму. Хотя этот метод очень удобен, он не всегда устойчив. Поэтому предпочтение часто отдают другому методу. Метод QR Метод QR предложен Фрэнсисом х в 1961 г. Соответствующий ему алгоритм определяется соотношением где Qm — ортогональная матрица, a Rm — верхняя треугольная матрица. При использовании метода последовательно получаем В пределе последовательность матриц А стремится к квазидиа- квазидиагональной форме. Этот метод сложнее предыдущего и требует больших затрат машинного времени. Однако его устойчивость, 1 В СССР независимо в том же году В. Н. Кублановской.— Прим. ред. 3 № 2913
66 Глава 3 # обусловленная использованием ортогональных преобразующих матриц, обеспечила ему прочную репутацию лучшего метода решения задач самой общей формы. Пример 3.3 Пусть требуется найти все собственные значения произвольной матрицы размерности 6X6 г2,3 4,3 5,6 3,2 1,4 2,2-1 1.4 2,4 5,7 8,4 3,4 5,2 2.5 6,5 4,2 7,1 4,7 9,3 3,8 5,7 2,9 1,6 2,5 7,9 2,4 5,4 3,7 6,2 3,9 1,8 Л,8 1,7 3,9 4,6 5,7 5,9J Сделаем это в два приема, приведя сначала матрицу с помощью преобразова- преобразования подобия к виду Гессенберга, затем с помощью разновидности метода QR найдем собственные значения. В приведенной ниже программе использованы две подпрограммы из пакета программ для научных исследований фирмы IBM. Подпрограмма HSBG преобразует матрицу размерности 6Х 6 к форме Гессен- Гессенберга, а подпрограмма ATEIG позволяет найтн собственные значения. С с Программа определения всех собственных с значений произвольной матрицы размерности с 6x6. Используются подпрограммы hsbg и ateig с из пакета программ для научных исследований с фирмы IBM. Т. Шуп 30.Ю.77 С DIMENSION AD,A),RRD),RID),IANAU> READE,lO0)((A(I,J),J=1,6),I=1,6) UR1TEF,1O4) 101 F0RHAT(///1Xf'THE ORIGINAL MATRIX IS AS FOLLOWS'} URITE(&,103> 103 F0RHATAX,65('-'>) URITEU,101M<A(I,J>,J=1,A),I=1,6> URITE(A,103> 101 F0RHATFAX,F10.5)) 100 F0RHATUF10.5) CALL HSB6F,A,A) URITE(?,105> 105 FORMAT(///1X,'TH? HATRIX IN HESSENBUR6 FORM IS') URITEC6,103) URITEC6,101)((A(XfJ)tJ«1r6),lstf6> URITEF,103) CALL ATEIG(A,A,RR,RI,IANA,&> URITEF,106) 106 F0RHATI///1X/THE EIGENVALUES ARE AS FOLLOUS') 107 FORMAT AX, 23 ('-'),/,4X /REAL', 12Xt'IHAG',/, 231'-')) URITEF,102)(RR(I URITE(A,108) 108 FORHATdX^SC-')) 102 F0RMATBBX,F10.5)) STOP END
Задачи на собственные значения 67 Выдачу получаем в виде Исходная матрица имеет вид г, t 2 3 г, \, ,30000 .40000 .50000 .80000 .40000 .80000 4 2 6 5 5 1 .30000 .40000 .30000 .70000 .40000 .70000 5.60000 5.70000 4.20000 • 2.70000 3.70000. 3.9000О Матрица в форме Гессенберга -1. -о. 0. 0. 0. 0. 13162 73823 3. 0. 1. 0. 0. 0. 20402 07468 13783 -0.05631 0.48742 -2.63803 3.35891 0. 0. 3.20000 8.40000 7.10000 1.60000 6.20000 4.60000 3.88246 6.97388 10.18618 7.50550 13.3627? 0. Собственные значения Действит. 25.52757 '-5.63130 0.88433 0.88433 -0.68247 -0.68247 Мним. 0. 0. 3.44453 -3.44455 1.56596 -1.56596 1 3 ¦4 2 3 5, 1. 5. 7. 7. 10. 5. .40000 .40000 .70000 .50000 .70000 .70000 40000 37635 15297 09754 58947 70000 2 5 9 7 1 5 2. 10, 17. 13. и. 5. .20000 .20000 .30000 .90000 .80000 .90000 20000 .36283 06242 ,92154 78421 9ОО0О 3.7. ВЫБОР АЛГОРИТМА РЕШЕНИЯ ЗАДАЧ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ Выбор подходящего алгоритма для решения той или иной за- задачи на собственные значения определяется типом собственных значений, типом матрицы и числом искомых собственных зна- значений. Чем сложнее задача, тем меньше число алгоритмов, из которых можно выбирать. Таблица 3.1 позволяет облегчить этот выбор. Обычно пакеты математического обеспечения ЭВМ со- содержат подпрограммы, в которых используются все эти алгорит- алгоритмы или некоторые из них. Одним из эффективных способов ис- использования имеющегося математического обеспечения является одновременное применение двух подпрограмм, позволяющее совместить их лучшие качества. Например, имея матрицу общего вида, можно методом Хаусхолдера свести ее к виду Гессенберга, а затем с помощью алгоритма QR найти собственные значения. При этом будут использованы как быстрота, обеспечиваемая ме- методом Хаусхолдера, так и универсальность алгоритма QR.
Глава 3 Таблица 3.1 Выбор алгоритма решения задачи на собственные значения Опреде- Определитель (итера- (итерация) Итера- Итерация (итера- (итерация) Рекомендуется для отыскания собствен- собственных значений Примечание Матриц общего вида Собст- Собственные значе- значения То же Метод Якоби (преоб- разова- разование) Симмет- Симметричных матриц Собст- Собственные значе- значения н собст- собственные векто- векторы (Диаго- наль- нальная форма матри- матрицы Требует нахождения кор- корней полинома общего вида Обеспечивает наилучшую точность для наиболь- наибольшего и наименьшего собственных значений Теоретически требует бесконечного числа шагов Метод Гивенса (преоб- разова- разование) То же Несим- метрич- метричных матриц Грехди- 1гональ- льная форма матри- матрицы |Форма- Гессен- берга Требует знания корней простого полинома Требует применения до- дополнительного метода Метод X аусхол- дера (преоб- разова- разование) Симмет- Симметричных матриц Трехдиа- гоиаль- ная форма матри- матрицы Требует знания корней простого полинома
Задачи на собственные значения 69 Продолжение таблицы 3.1 ) [звание алгоритма Метод Хаусхол- дера (пре- образо- образование) Метод LR (пре- образо- образование) Метод QR (преоб- разова- разование) Применя- Применяется для Несим- метрич- метричных матриц Матриц общего вида То же Результат Форма Гессен- берга Квази- диагона- льная форма матри- матрицы То же Рекомендуется для отыскания собствен- собственных значений наиболь- наибольшего или наимень- наименьшего всех <6 * * * to Л X * * Примечание Требует применения дополнительного метода Бывает неустойчив Лучший метод, облада- обладающий наибольшей общностью ЗАДАЧИ 3.1. Трехосный тензор напряжений можно представить в виде Для определения собственных значений этой матрицы привести ее определи- определитель к виду кубического полинома. При Sx Sxx = 3010в Н/м2, = 40-106 Н/ма, =20-106 Н/м2, гху = 6 • 106 Н/м2, t^ = 7-106 Н/м2, txz = 5-106 Н/м2 найти главные напряжения. Для отыскания корней полинома воспользоваться одним из методов, описанных в гл. 2. 3.2. Найти собственные векторы, соответствующие собственным значе- значениям — главным напряжениям, полученным при решении предыдущей задачи. 3.3. При каких условиях метод Ньютона оказывается непригодным для отыскания собственных значений в задаче 3.1? 3.4. Методом итераций найти наибольшее н наименьшее собственные зна- значения матрицы
70 Глава 3 3.5. Для произвольного трехмерного твердого тела можно ввести три момента инерции относительно трех взаимно перпендикулярных осей и три смешанных момента инерции относительно трех координатных плоскостей. Известно, что для несимметричного тела при фиксированном начале координат существует единственная ориентация координатных осей, при которой смешан- смешанные моменты инерции обращаются в нуль. Такое оси называются главными осями инерции, а соответствующие моменты инерции — главными моментами инерции, среди которых есть наибольший, наименьший и имеющий промежу- промежуточное значение. Для матрицы моментов инерции [4,3 2,4 2,4 3, U.9 2, найти три главных момента инерции. Какова матрица вращений Q, позволяю- позволяющая найти главные оси инерции? 3.6. В приведенной ниже матрице все элементы, кроме А C, 4), постоян- постоянные величины 2,4 1,91 5,2 2,7 2,7 5,lJ г9 4 3 6 ,1 ,2 ,2 ,1 3 5 1 4 ,0 ,3 ,7 ,9 2,6 4,7 9,4 3,5 4 1 о- 6 X 6 2_ Найти все собственные значения этой матрицы при Х=0,9; 1,0 и 1,1. Можно лн на основании полученных результатов сказать, насколько сильно 10%-ное изменение величины одного из элементов матрицы повлияет на величины ее собственных значений? 3.7. Заменив в предыдущей задаче элемент А C, 4) на 1,0 и полагая эле- элемент А C, 3) равным 8,46; 9,40 и 10,34, ответить на вопрос, к изменению каких элементов более чувствительны собственные значения этой матрицы — диаго- диагональных или внедиагональных? 3.8. Баржа предназначена для перевозки через озеро Эри сцепки из шести железнодорожных вагонов. Буксир тянет ее за носовую часть, как показано на рисунке^ Значения масс вагонов и коэффициентов жесткости соединительных элементов указаны под рисунком. Существует опасение, что в сцепке вагонов при волнении на озере могут возникнуть резонансные продольные колебания. Вычислить шесть собственных частот данной механической системы и сравнить их с частотой волны, равной 1 рад/с. Собственные частоты связаны с собствен- собственными значениями динамической матрицы D соотношением Динамическая матрица образуется из матриц жесткости [К] и масс [М] [D]=[K\-4M]. ¦Wir о о м,. -WV- о о о о о о a = 5-105 Н/м, b = /je = Ad = fee = fe/=M05 Н/м, j = 8-104 кг, 2 = УИ4 = 3-10* кг, 3 = УИ5==4-104 кг, в = 2.10* кг,
Задачи на собственные значения 71 3.9. Консольный брус длиной 10 м, имеющий изгибную жесткость EI = = 104 Н/м2 и погонную массу 10 кг/м, аппроксимируется двумя точечными массами по 50 кг каждая, расположенными в центре и на свободном конце бруса. 50 кг 50 кг 5м —fcl- ¦ 5м —»-| Требуется найти две основные частоты колебаний бруса. Это можно сделать, зная собственные значения Я/ динамической матрицы [D] = [F][M] и имея в виду, что \М] — диагональная матрица, на диагонали которой стоят массы точек; [F] — матрица изгиба, в которой элементы t'-й строки представляют собой от- отклонения точки / под действием единичной силы, приложенной в точке i. Осевая сила отсутствует. Деформациями сдвига можно пренебречь. 3.10. Решить предыдущую задачу, аппроксимируя распределение масс не двумя сосредоточенными массами, а пятью, расположенными через равные интервалы. ЛИТЕРАТУРА 1. Arden В. W., Astill К. N., Numerical Algorithms: Origins and Applications, Reading, Mass., Addison-Wesley, 1970. 2. Bathe K. J., Wilson E. L., Solution Methods for Eigenvalue Problems in Structural Mechanics, Intl. J. Num. Engr. No. 6, pp. 213—226 A973). 3. Березин И. С, Жидков Н. П. Методы вычислений.— М.: Наука, 1966. 4. Qastines N., Linear Numerical Analysis, N. Y., Academic Press, 1970. 5. Gupta K. K., Recent Advances in Numerical Analysis of Structural Eigen- Eigenvalue Problems. Theory and Practice in Finite Element Structural Analysis, ed. by Y. Yamada, P. H. Gallagher, Proc. of Tokyo Seminar on Finite Ele- Element Analysis, pp. 233—245, 1973. 6. Pilkey W., Pilkey В., eds., Shock and Vibration Computer Programs, Reviews and Summaries, The Shock and Vibration, Information Center. U. S. Department of Defense, 1975. 7. Ralston A., A First Course in Numerical Analysis, N. Y., McGraw-Hill, 1965. 8. Wilkinson J. H., The Algebraic Eigenvalue Problem, London, Oxford Uni- University Press, 1965. [Имеется перевод: Уилкинсон Дж. Алгебраическая проблема собственных значений.— М.: Наука, 1970.] 9. William P. W., Numerical Computation, N. Y., Harper and Row, 1972.
Глава 4 Решение обыкновенных дифференциальных уравнений 4.1. ВВЕДЕНИЕ Дифференциальными называются уравнения, содержащие од- одну или несколько производных. Инженеру очень часто приходится сталкиваться с ними при разработке новых изделий или техно- технологических процессов, так как большая часть законов физики формулируется именно в виде дифференциальных уравнений. В сущности любая задача проектирования, связанная с расчетом потоков энергии или движения тел, в конечном счете сводится к решению дифференциальных уравнений. К сожалению, лишь очень немногие из них удается решить без помощи вычислитель- вычислительных машин. Поэтому численные методы решения дифференци- дифференциальных уравнений играют такую важную роль в практике ин- инженерных расчетов. В зависимости от числа независимых переменных и, следова- следовательно, типа входящих в них производных дифференциальные уравнения делятся на две существенно различные категории: обыкновенные, содержащие одну независимую переменную и производные по ней, и уравнения в частных производных, со- содержащие несколько независимых переменных и производные по ним, которые называются частными. В этой главе рассматри- рассматриваются методы решения обыкновенных дифференциальных урав- уравнений. Решению дифференциальных уравнений в частных про- производных посвящена следующая глава. Предполагается, что читатель в основном знаком с теорией дифференциальных уравнений. Тем, кто в этом не уверен, мы ре- рекомендуем предварительно с ней познакомиться. 4.2. ЗАДАЧА КОШИ И КРАЕВАЯ ЗАДАЧА Чтобы решить обыкновенное дифференциальное уравнение, необходимо знать значения зависимой переменной и (или) ее производных при некоторых значениях независимой переменной. Если эти дополнительные условия задаются при одном значении независимой переменной, то такая задача называется задачей с начальными условиями, или задачей Коши. Если же условия задаются при двух или более значениях независимой перемен- переменной, то задача называется краевой. В задаче Коши дополнитель-
Обыкновенные дифференциальные уравнения 73 Ше условия называют начальными, а в краевой задаче — гра- граничными. Часто в задаче Коши в роли независимой переменной Выступает время. Примером может служить задача о свободных колебаниях тела, подвешенного на пружине. Движение такого тела описывается дифференциальным уравнением, в котором независимой переменной является время t. Если дополнительные условия заданы в виде значений перемещения и скорости при /=0, то имеем задачу Коши. Для той же механической системы можно сформулировать и краевую задачу. В этом случае одно из условий должно состоять в задании перемещения по истечении некоторого промежутка времени. В краевых задачах в качестве независимой переменной часто выступает длина. Известным примером такого рода является дифференциальное уравнение, описывающее деформацию упругого стержня. В этом случае граничные условия обычно задаются на обоих концах стержня. Хотя обе указанные задачи рассматриваются в одной главе, при их решении применяются существенно разные методы и вычи- вычислительные алгоритмы. Изложение начнем с задачи Коши. Задача Коши Задачу Коши можно сформулировать следующим образом. Пусть дано дифференциальное уравнение и начальное условие у(хо)=уо. Требуется найти функцию у(х), удовлетворяющую как указанному уравнению, так и начальному условию. Обычно численное решение этой задачи получают, вы- вычисляя сначала значение производной, а затем задавая малое приращение х и переходя к новой точке Xi=xo+h. Положение новой точки определяется по наклону кривой, вычисленному с помощью дифференциального уравнения. Таким образом гра- график численного решения представляет собой последовательность коротких прямолинейных отрезков, которыми аппроксимируется истинная кривая y=f{x). Сам численный метод определяет по- порядок действий при переходе от данной точки кривой к следую- следующей. Поскольку численное решение задачи Коши широко применя- применяется в различных областях науки и техники, то оно в течение многих лет было объектом пристального внимания и число разра- разработанных для него методов очень велико. Остановимся здесь на следующих двух группах методов решения задачи Коши. 1. Одношаговые методы, в которых для нахождения следую- следующей точки на кривой y=f(x) требуется информация лишь об од-
74 Глава 4 ном предыдущем шаге. Одношаговыми являются метод Эйлера и методы Рунге— Кутта. 2. Методы прогноза и коррекции (многошаговые), в которых для отыскания следующей точки кривой y—f{x) требуется ин- информация более чем об одной из предыдущих точек. Чтобы полу- получить достаточно точное численное значение, часто прибегают к итерации. К числу таких методов относятся методы Милна, Адам- са — Башфорта и Хемминга. Погрешности Прежде чем перейти к обсуждению конкретных методов чис- численного решения дифференциальных уравнений, остановимся на источниках погрешностей, связанных с численной аппрокси- аппроксимацией. Таких источников три: 1. Погрешность округления обусловлена ограничениями на представление чисел в используемой ЭВМ, так как для любой из них число значащих цифр, запоминаемых и используемых в вычислениях, ограниченно. 2. Погрешность усечения связана с тем, что для аппроксима- аппроксимации функции вместо бесконечных рядов часто используется лишь несколько первых их членов. Это обычный для численных методов прием, являющийся источником погрешностей, целиком обусловленных применяемым методом и не зависящих от харак- характеристик самой ЭВМ. 3. Погрешность распространения явЛяется результатом на- накопления погрешностей, появившихся ha предыдущих этапах счета. Так как ни один приближенный Метод не может дать со- совершенно точных результатов, то любая возникшая в ходе вы- вычислений погрешность сохраняется и на последующих стадиях счета. Указанные три источника погрешностей являются при- причиной наблюдаемых ошибок двух типов: {.Локальная ошибка—сумма погрешностей, вносимых в вычислительный процесс на каждом шаге вычислений. 2. Глобальная ошибка — разность между вычисленным и точ- точным значением величины на каждом этапе реализации численно- численного алгоритма, определяющая суммарную погрешность, накопив- накопившуюся с момента начала вычислений. 4.3. ДЦНОШАГОВЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ КОШИ Одношаговые методы предназначены для решения дифферен- дифференциальных уравнений первого порядка вида У'=1(х, У),
Обыкновенные дифференциальные уравнения 75 где y'=dyldx, при начальном условии у(хо)=Уо. С помощью этих методов вычисляют последовательные значения у, соответству- соответствующие дискретным значениям независимой переменной х. Метод Эйлера Это простейший метод решения задачи Коши, позволяющий интегрировать дифференциальные уравнения первого порядка. Его точность невелика, и поэтому на практике им пользуются Точное решение ч Рис. 4.1. Метод Эйлера. сравнительно редко. Однако на основе этого метода легче понять алгоритм других, более эффективных методов. Метод Эйлера основан на разложении у в ряд Тейлора в ок- окрестности х0: y(Xo+h)=y(xo)+hy'(Xo)+±hy(xo)+. . . . Если h мало, то члены, содержащие h во второй или более высо- высоких степенях, являются малыми более высоких порядков и ими можно пренебречь. Тогда y(Xo+h)=y(xo)+hy' (х0). у'(х0) находим из дифференциального уравнения, подставив в него начальное условие. Таким образом можно получить при- приближенное значение зависимой переменной при малом смещении h от начальной точки. Этот процесс можно продолжить, используя
76 Глава 4 соотношение yn+i=yn+hf{xa, у„), п=\, 2, .... и делая сколь угодно много шагов. Графически метод Эйлера показан на рис. 4.1. Ошибка метода имеет порядок /г2, так как члены, содержащие h во второй и более высоких степенях, от- отбрасываются. Модифицированный метод Эйлера Хотя тангенс угла наклона касательной к истинной кривой в исходной точке известен и равен у'(х0), он изменяется в соответ- соответствии с изменением независимой переменной. Поэтому в точке Xo+h наклон касательной уже не таков, каким он был в точке х„. Следовательно, при сохранении начального наклона каса- касательной на всем интервале h в результаты вычислений вносится У »- Уп1 г- наклон = f(xn, уп) ь см h 2 - точное уг решение •Уп + 1 Уточнение ' У*п+1 Рис. 4.2. Модифицированный метод Эйлера. погрешность. Точность метода Эйлера можно существенно по- повысить, улучшив аппроксимацию производной. Это можно сде- сделать, например, используя среднее значение производной в на- начале и конце интервала. В модифицированном методе Эйлера сна- сначала вычисляется значение функции в следующей точке по ме- методу Эйлера: #?« = &+А/(*„, У„), которое используется для вычисления приближенного значения производной в конце интервала f(xn+1, y*n+i)- Вычислив среднее
Обыкновенные дифференциальные уравнения 7? между этим значением производной и ее значением в начале ин- интервала, найдем более точное значение yn+i\ Этот прием иллюстрируется на рис. 4.2. Принцип, на котором ос- основан модифицированный метод Эйлера, можно пояснить и иначе. Для этого вернемся к разложению функции в ряд Тейлора y(xo + h) = y (х0) + hy' (*,) +1 h*y" (х0) + ... . Кажется очевидным, что, сохранив член с /г2 и отбросив члены более высоких порядков, можно повысить точность. Однако чтобы сохранить член с /г2, надо знать вторую производную у"(х0). Ее можно аппроксимировать конечной разностью: Подставив это выражение в ряд Тейлора с отброшенными чле- членами второго порядка, найдем y(xo + h) = y (x0) + ±h[y' (x что совпадает с ранее полученным выражением *. Этот метод является методом второго порядка, так как в нем используется член ряда Тейлора, содержащий №. Ошибка на каж- каждом шаге при использовании этого метода, имеет порядок h3. За повышение точности приходится расплачиваться дополнитель- дополнительными затратами машинного времени, необходимыми для вычис- вычисления у*п+1. Более высокая точность может быть достигнута, если пользователь готов потратить дополнительное машинное время на лучшую аппроксимацию производной путем сохранения большего числа членов ряда Тейлора. Эта же идея лежит в основе методов Руиге — Кутта. Методы Рунге — Кутта Чтобы удержать в ряде Тейлора член п-то порядка, необхо- необходимо каким-то образом вычислить я-ю производную зависи- зависимой переменной. При использовании модифицированного метода Эйлера для получения второй производной в конечно-раз- конечно-разностной форме достаточно было знать наклоны кривой иа кон- 1 При условии, что точное значение производной у'(х +ft) заменено при- приближенным / (х„+1,уп+т)- Оценки показывают, что ошибка при этой замене имеет порядок ft3.— Прим. ред.
78 Глава 4 цах рассматриваемого интервала х. Чтобы вычислить третью про- производную в конечно-разностном виде, необходимо иметь значе- значения второй производной по меньшей мере в двух точках. Для этого необходимо дополнительно определить наклон кривой в некоторой промежуточной точке интервала h, т. е. между хп и хп+1. Очевидно, чем выше порядок вычисляемой производной, тем больше дополнительных вычислений потребуется внутри интервала. Метод Рунге — Кутта дает набор формул для расчета координат внутренних точек, требуемых для реализации этой идеи. Так как существует несколько способов расположения внутренних точек и выбора относительных весов для найденных производных, то метод Рунге — Кутта в сущности объединяет целое семейство методов решения дифференциальных уравнений первого порядка. Наиболее распространенным из них является метод, при котором удерживаются все члены, включая /г4. Это метод четвертого порядка точности, для которого ошибка на шаге имеет порядок №. Расчеты при использовании этого классическо- классического метода производятся по формуле где Ко = hf (*„, уп), К, = hf [xn + i- A, ft, + -§•*.). *. = */(*„ +А, Уп Метод Эйлера и его модификация по сути дела являются мето- методами Рунге — Кутта первого и второго порядка соответственно. По сравнению с ними метод Рунге — Кутта имеет важное преиму- преимущество, так как обеспечивает более высокую точность, которая с лихвой оправдывает дополнительное увеличение объема вычисле- вычислений. Более высокая точность метода Рунге— Кутта часто поз- позволяет увеличить шаг интегрирования h. Допустимая погреш- погрешность на шаге определяет его максимальную величину. Чтобы обеспечить высокую эффективность вычислительного процесса, величину h следует выбирать именно из соображений максималь- максимальной допустимой ошибки на шаге. Такой выбор часто осуществля- осуществляется автоматически и включается как составная часть в алгоритм, построенный по методу Рунге — Кутта. Относительную точность одношаговых методов продемон- продемонстрируем на следующем примере. * См. сноску на стр. 77.— Прим. ред.
Обыкновенные дифференциальные уравнения 79 Пример 4.1 Пусть требуется решить уравнение при начальном условии </@)= 1, лдющ о и ft=0, 1. Это — линейное урав- уравнение, имеющее следующее точное решение: у = 1,5егх —х2 — х — 0,5, которое поможет нам сравнить относительную точность, обеспечиваемую разными методами. Результаты расчета представлены в приведенной ниже таблице, из которой хорошо видны преимущества метода Рунге — Кутта по сравнению с обычным и модифицированным методами Эйлера. хп 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 Метод Эйлера 1,0000 1,2000 1,4420 1,7384 2,1041 2,5569 3,1183 3,8139 4,6747 5,7376 7,0472 Модифицированный метод Эйлера 1,0000 1,2210 1,4923 1,8284 2,2466 2,7680 3,4176 4,2257 5,2288 6,4704 8,0032 Метод Руиге — Кутта 1,0000 1,2221 1,4977 1,8432 2,2783 2,8274 3,5201 4,3927 5.4894 6,8643 8,5834 Точное решение 1,0000 1,2221 1,4977 1,8432 2,2783 2,8274 3,5202 4,3928 5,4895 6,8645 8,5836 Методы Рунге — Кутта для системы дифференциальных уравнений Любую из формул Рунге — Кутта можно использовать для решения систем дифференциальных уравнений и, следовательно, для решения дифференциальных уравнений более высоких поряд- порядков, так как любое дифференциальное уравнение я-го порядка можно свести к п дифференциальным уравнениям первого поряд- порядка. Например, в дифференциальном уравнении второго порядка d2t/ ( dv\ dx% s V ' " dxj можно принять z=dy/dx. Тогда dz/dx=d2y/dx'i и получаем два уравнения первого порядка: dx , z), f = , z),
80 Глава 4 где f(x, у, z)-=z. Задача Коши в этом случае содержит два на- начальных условия У(Хо)=Уо И 2(Х0) = 2о. Формулы Рунге — Кутта для рассматриваемого случая имеют вид где д_ _ t a L_ Здесь n, yn, гп), xn,yn, гп), x + h У + ^ s, zn + L3), Общая характеристика одношаговых методов Всем одношаговым методам присущи определенные общие чер- черты: 1. Чтобы получить информацию в новой точке, надо иметь данные лишь в одной предыдущей точке. Это свойство можно наз- назвать «самостартованнем» *. 2. В основе всех одношаговых методов лежит разложение функции в ряд Тейлора, в котором сохраняются члены, содержа- содержащие h в степени до k включительно. Целое число k называется порядком метода. Погрешность на шаге имеет порядок k+l. 3. Все одношаговые методы не требуют действительного вы- вычисления производных — вычисляется лишь сама функция, однако могут потребоваться ее значения в нескольких промежу- промежуточных точках. Это влечет за собой, конечно, дополнительные затраты времени и усилий. 4. Свойство «самостартования» позволяет легко менять вели- величину шага h. 1 В оригинале self-starting behavior.— Прим. ред.
Обыкновенные дифференциальные уравнения 81 Пример 4.2 S//////////////////S//////S/ С задачами об ударе и колебаниях часто приходится сталкиваться в аэро- аэрокосмической промышленности и на транспорте, где имеются многочисленные источники возбуждения колебаний. Устранение ударных и вибрационных нагрузок имеет исключительно большое значение для обеспечения нормальной работы приборов и систем управления и создания комфортных условий для ^кипажа. Обычно для защиты от чрезмерных вибраций в конструкцию тран- транспортного средства вводят упругие опоры, снабженные устройствами, обеспе- обеспечивающими некоторое демпфирование колебаний. Такие опоры резко уменьшают частоты собственных колебаний конструкции, обеспечивая их существенное отличие от частот возмущающих силовых факторов. Такое реше- решение эффективно как средство защиты от стационарных колебаний, однако в случае ударных нагрузок податливость опор может привести к недопустимо большим смещениям. Известно, что от этого недостатка свободны системы подвески, в которых используются пружины с симметричной нелинейной характеристикой *, жест- жесткость которых прогрессивно увеличивается при больших отклонениях от «ра- «рабочей точки». Устройство, показанное на рисунке, состоит из массы т, связан- связанной с жесткой стенкой через пружину постоянной жесткости k, демпфер с коэф- коэффициентом демпфирования с и пружиной с нелинейной характеристикой, создающей восстанавливающую силу, равную произведению постоянной k* на смещение в третьей степени. Такая «кубическая» пружина имеет симметрич- симметричную нелинейную характеристику, обеспечивающую защиту от ударных и вибрационных нагрузок. Так как движение рассматриваемой системы описывается нелинейным дифференциальным уравнением тс традиционные «точные» методы не позволяют найти зависимость смещения х от времени. Поэтому для решения указанного уравнения придется прибегнуть к численному методу. Пусть параметры системы имеют следующие значения: /г = 2;0 Н/см; fe* = 2,0 Н/см3; с = 0,15 Н-с/см; т=1,0кг, а начальные условия заданы в виде *@) = 10 см, дг(О)=О. Подготовим и реализуем на ЭВМ программу для моделирования движения рассматриваемой механической системы в интервале времени 0 <: t <: 1 с. Чтобы решить эту задачу одношаговым численным методом, необходимо свести дифференциальное уравнение второго порядка к двум дифференциаль- 1 Tobias J. A., Design of Small Isolator Units for the Suppression of Low-Frequency Vibration, Journal of Mechanical Engineering Science, vol. 1, No. 3, pp. 280—292 A959).
82 ¦ Глава 4 ным уравнениям первого порядка. В результате получим С ¦ k k* з 2 т т т Чтобы в выдаче длина выражалась в сантиметрах, изменим размерность массы. Тогда т= 0,01 Н-с2/см. В написанной на языке Фортран программе для решения этой задачи используется метод Рунге — Кутта и подпрограмма RKGS, входящая в пакет программ для научных исследований фирмы IBM [16]. Подпрограмма RKGS содержит обращения к двум внешним подпрограммам: FCT, предназначенной для решения двух дифференциальных уравнений первого порядка, и OUTP, обеспечивающей выдачу на печать решения дифференциального уравнения при промежуточных значениях времени. В подпрограмму RKGS вводятся предельные допустимые значения погрешностей. Если это сделано, то в даль- дальнейшем на протяжении всего счета шаг интегрирования автоматически изме- изменяется путем деления пополам или удвоения его исходного значения. Обратив- Обратившись к выдаче рассматриваемой программы, можно проследить за тем, как изменяется шаг по времени в процессе вычислений, С с Программа численного решения задачи о колебаниях с системы, содержащей пружину с нелинейной характе- с риапикой, массу и демпфер. с э гг ?.Шу„ 23.8.77 с EXTERNAL FCT,OUTP DIHENSION PC5), XB), ШТС2), AUX<8,2) с Начальное значение независимой переменной Pit) =0. с конечное значение независимой переменной РС2) = 1.0 с с Величина шага РСЗ) = 0.02 с Верхняя граница погрешностей Р(<) = 0.001 с с Веса погрешностей (в сумме равны 1) XDOT(l) = 0.3 XD0K2) а 0.3 с с Начальные мочения с -ХA) = 10.0 Х(.2> = 0.0
Обыкновенные дифференциальные уравнения 83 I Печать заголовка страницы WRITE D,100) 100 FORMAT AH1,/,34!'-'>,/,1X,'TIME(SEC)',?X,'X(CM)',2)f. *'X"(CH/SEC)V,36('-'>) CALL RK6S(P, X, XDOT, 2, IHLF, FCT, QUTP, Л1Д) URITEF,tOi) 101 FORMAT ШС-')) STOP END SUBROUTINE FCTIT, X, XDOT) DIHENSIDN XB), XD0T<2) ХИ = 0.01 С = 0.15 XK = 2.0 XKS = 0.2 XD0TC1) = XB) ХП0ТB) = -C*XD0TC1)/XM-XK*XA)/XH-XKS*XA>**3/XH RETURN END SUBROUTINE OUTP(T, X, XDOT, IHLF, NDIK, P) JIKENSION PE), XB), TA>, XD0TI2) WRITE (ё,100> ТО), ХAГ, XB) J00 FORHAT CBX,FI0,5)) RETURH » ENS Выдача имеет вид Время, с 9. «.00250 0,00500 0.00750 0.01000 0.01250 0.01500 0.01750 0.02000 0.02250 0.02500 0.02750 0.03000 0.03250 0.03500 0.03750 0.04000 0.04500 0.05000 0.05500 0.04000 0.06500 0.07000 0.0750» 0.08000 0.08500 е.о?ш Х,см 10.0000» 9.93232, ?.?3515 ?.42О45 9,00345 8.50137 7.93200 7.312<1 6.65898 5.98491 5.30187 4.61905 3.94349 3.28033 2.63314 2.00424 1.3949? 0.2377? -0.83702 -1.829*5 -2.73839 -3.55794 -4.27900 -4.88931 -5.37558 -5.72418 -3.93384 X', см/с 0. -53.63445 -103.30084 -147.4424? -185.0030? -215.475М -238.86480 -255.59608 -264.38511 -272,1118? -273.709О0 -272.07729 -268.0297? -262.26127 -255.33710 -247.69558 -239.65844 -223.19034 -204.7501? -190.24708 -173.0748? -154.4298? -133.5795? -110.09365 -84.02055 -55.97074 -27.04928
84 Глава 4 0.07500 е. юооо «.10500 0.11000 0.11300 0.12300 0.12S00 0.13000 0.13500 0.14000 0.14500 15000 15500 0.16000 0.17000 0.18000 0.17000 0.2000,0 0.21000 0.22000 0.23000 0.24000 0.250*0 0.26000 0.27000 0.28000 0.29000 0.30000 0-31000 0.32000 0.34000 0.36000 0.38000 0.40000 О.42000 О.44000 0.46000 0.48000 0.50000 0.52000 O.S4000 0.56000 0.58000 0.60000 0.62000 0.64000 0.66000 0.68000 0.70000 0.72000 0.74000 0.74000 0.78000 0.80000 О.8200О 0.84000 0.86000 0.8В000 0.90000 0.72000 0.74000 0.76000 0.78000 1.00000 -5.77788 -3.72511 -5.72945 -5.43018 -5.04951 -4.61011 -4.13303 -3.63640 -3.13484 -2.63945 -2.15В15 -1.67629 -1.25720 -0.84278 -0.07090 0.55777 1.10562 1.55374 1.70J49 2.13638 2.31592 2.38670 2.37869 2.30273 2.17253 2.00109 1.80161 1.58567 1.36298 1.14131 0.72304 0.36060 0.06689 -0.15532 -0.30723 -0.40181 -0.44236 -0.44145 -O.407BS -0.3578? -0.29448 -0.22712 -0 .'16153 -0.10182 -0.0505? -0.00716 0.02216 0.043В4 0.05670 0.06266 0.06262 0.05829 0.05108 0.04224 0.03278 0.02352 0.01505 0.00774 0.00177 -0.00274 -0.00570 -0.00784 -0.0ОВ74 -0.0ОВ81 1.22851 27.41301 50.20470 68.75991 82.74876 92.3089? 97.9190? 100.24597 100.00972 77.88706 94.45665 90.17825 85.37456 80.34567 70.01650 57.77153 4?.76552 37.87560 30.09752 20.5292? К.39368 2.9В67? -4.3J720 -10.5353? -15.31771 -18.75349 -29.9500? -22.07721 -22.33086 -21.90480 -19.68125 -16.45756 -12.89064 -9.35702 -4.09170 •3.24308 -0.89790 0.90124 2.17024 2.95410 3.32438 3.36460 3.159В2 2.78943 2.32283 1.81760 1.31847 0.85816 0.4581? 0.13039 -0.12141 -0.27961 -0.41104 -0.46534 -0.47360 -0.4471? -0.37692 -0.33242 -0.26182 -0.19153 -0.12631 -0.06932 -0.02234 О.ОМОО
Обыкновенные дифференциальные уравнения 85 0,4 0,6 Время,с Из приведенного графика зависимости смещения от времени видно, что частота колебаний системы зависит от амплитуды. Именно так обычно и ведут себя нелинейные системы, содержащие пружины, жесткость которых при сжатии увеличивается. 4.4. МЕТОДЫ ПРОГНОЗА И КОРРЕКЦИИ В этих методах для вычисления положения новой точки ис- используется информация о нескольких ранее полученных точках. Для этого применяются две формулы, называемые соответственно формулами прогноза и коррекции. Схемы алгоритмов для всех таких методов примерно одинаковы, а сами методы отличаются лишь формулами. На рис. 4.3 представлена схема алгоритма метода прогноза и коррекции для решения дифференциального уравнения вида У'(хL(х,у). Так как в рассматриваемых методах используется информация о нескольких ранее полученных точках, то в отличие от одноша- говых методов они не обладают свойством «самостартования». Поэтому, прежде чем применять метод прогноза и коррекции, приходится вычислять исходные данные с помощью какого-либо одношагового метода. Часто для этого прибегают к методу Рун-
Использование одношаго^ вого метода для получения ¦ начальных данных Применение формулы прогноза для получения Использование дифференциаль- дифференциального уравнения для вычиспеиця v(oy=f(x ,vm) 5 = 0 Применение формулы коррекции для получения Ул+7 Использование дифферен - циальногоуравнения для ., вычисления Уги-1 'l^/j+J • Уп*1 ) ^^достаточт ч^ <w7o мало изменение j> Использование у?',} дпя вычисления у^, Переход к следующему шагу П"П+1 Чет j = j + 1 Рис. 4.3. Метод прогноза и коррекции.
Обыкновенные дифференциальные уравнения 87 ге — Кутта. Вычисления производят следующим образом. Сна- Сначала по формуле прогноза и исходным значениям переменных определяют значение y^li- Верхний индекс @) означает, что прогнозируемое значение является одним из последовательности значений yn+i, располагающихся в порядке возрастания точно- точности. По прогнозируемому значению г/^ с помощью приведенного выше дифференциального уравнения находят производную „@)' __ f /у ,,@) \ Уп+1— / \хп + 1> Уп+1) у которая затем подставляется в формулу коррекции для вычисле- вычисления уточненного значения y$i?- В свою очередь г/,(Д.1) использу- используется для получения более точного значения производной с по- помощью дифференциального уравнения Уп+1 —/ \хп + 1> Уп+1 Если это значение производной недостаточно близко к предыду- предыдущему, то оно вводится в формулу коррекции и итерационный про- процесс продолжается. Если же производная изменяется в допусти- допустимых пределах, то значение y(j+iy используется для вычисления окончательного значения уп+г, которое и выдается На печать. После этого процесс повторяется — делается следующий шаг, на котором вычисляется уп+2- Обычно при выводе формул прогноза и коррекции решение уравнения рассматривают как процесс приближенного интегри- интегрирования, а сами формулы получают с помощью конечно-разност- конечно-разностных методов. Если дифференциальное уравнение y'=f(x,y) проинтегри- проинтегрировано в интервале значений от хп до xn+k, то результат примет вид n+k (хп+д — у(хп)= J f(x,y)dx. Этот интеграл нельзя вычислить непосредственно, так как за- зависимость у(х) заранее неизвестна. Приближенное значение интеграла можно найти с помощью одного из конечно-разност- конечно-разностных методов. Выбор метода и будет определять метод решения дифференциальных уравнений. На этапе прогноза можно исполь- использовать любую формулу численного интегрирования, если в нее не входит предварительное значение у' ()
88 Глава 4 Метод Милна В этом методе на этапе прогноза используется формула Мил- Милна [12] а на этапе коррекции — формула Симпсона Последние члены в обеих формулах в действительности в итера- итерационном процессе не используются и служат лишь для оценки ошибки усечения. Метод Милна относят к методам четвертого порядка точности, так как в нем отбрасываются члены, содержа- содержащие h в пятой и более высоких степенях. Может возникнуть во- вопрос, зачем вообще нужна коррекция, если прогноз имеет чет- четвертый порядок точности. Ответ на этот вопрос дает оценка от- относительной величины членов, выражающих погрешность. В дан- данном случае погрешность усечения при коррекции в 28 раз меньше и поэтому представляет большой интерес. Вообще итерационные формулы гораздо более точны, чем формулы прогноза, и поэтому их использование оправданно, Хотя и связано с дополнительными трудностями. Несмотря на то что формула Милна содержит меньший числовой коэффициент A/90) перед отбрасываемым чле- членом, ее используют реже, чем другие (с большими отбрасывае- отбрасываемыми членами), так как ей присуща неустойчивость. Э^го озна- означает, что погрешность распространения может расти экспонен- экспоненциально, причем этот вывод справедлив для всех формул кор- коррекции, основанных на правиле Симпсона. Метод Адамса — Башфорта Этот метод также- имеет четвертый порядок точности [121. Используемая в нем формула прогноза получена интегрированием обратной интерполяционной формулы Ньютона и имеет вид На этапе коррекции используется формула УУ+н(9У19У5У' + У)+ Расчеты по методу Адамса — Башфорта выполняются так же, как и по методу Милна, однако в отличие от последнего ошибка, внесенная на каком-либо шаге, не имеет тенденции к экспонен- экспоненциальному росту.
^ Обыкновенные дифференциальные уравнения 89 Можно предположить, что поскольку величина отбрасывае- отбрасываемого члена известна, то ее можно использовать для уточнения скорректированного значения зависимой переменной. Однако, как правильно отмечает Ральстон [25], это было бы равноценно ис- использованию системы более высокого порядка точности. Так как внесение поправок в корректирующий член может отрицательно сказаться на устойчивости счета, то для повышения точности счета следует прибегать к методам более высоких порядков точ- точности. Метод Хэмминга В методе Хэмминга используются следующие формулы: прогноза «JS» = Уп -в + j h Bу'п - уп-х + 2у'п-2), уточнения прогноза — 119 коррекции у№(9у y)+h ( Это устойчивый метод четвертого порядка точности, в основе которого лежат следующие формулы прогноза: 4 и коррекции ft,+i = Т [9«/п - Уп -2 + ЗЛ (у'п+1 + 2у'п -iaU)] ~ hy». Особенностью метода Хэмминга является то, что он позволяет оценивать погрешности, вносимые на стадиях прогноза и коррек- коррекции и устранять их. Благодаря простоте и устойчивости этот метод является одним из наиболее распространенных методов прогноза и коррекции. Краткая характеристика методов прогноза и коррекции По сравнению с одношаговыми методами методы прогноза и коррекции имеют ряд особенностей: 1. Для реализации методов прогноза и коррекции необхо-
90 Глава 4 димо иметь информацию о нескольких предыдущих точках: дру- другими словами, они не относятся к числу «самостартующих» ме- методов. Для получения исходной информации приходится прибе- прибегать к какому-либо одношаговому методу. Если в процессе реше- решения дифференциальных уравнений методом прогноза и коррек- коррекции изменяется шаг, то обычно приходится временно переходить на одношаговый метод. 2. Поскольку для методов прогноза и коррекции требуются данные о предыдущих точках, то соответственно предъявляются и повышенные требования к объему и памяти ЭЦВМ. 3. Одношаговые методы и методы прогноза и коррекции обес- обеспечивают примерно одинаковую точность результатов. Однако вторые.в отличие от первых позволяют легко оценить погреш- погрешность на шаге. По этой причине, пользуясь одношаговыми мето- методами, величину шага h обычно выбирают несколько меньше, чем это, строго говоря, необходимо, и поэтому методы прогноза и коррекции оказываются более эффективными. 4. Применяя метод Рунге — Кутта четвертого порядка точ- точности, на каждом шаге приходится вычислять четыре значения функции, в то время как для обеспечения сходимости метода прогноза и коррекции того же порядка точности часто достаточ- достаточно двух значений функции. Поэтому методы прогноза и коррек- коррекции требуют почти вдвое меньше машинного времени, чем методы Рунге — Кутта сравнимой точности. Это обстоятельство может оказывать сильное влияние на выбор алгоритма, так как стои- стоимость машинного времени может быть весьма высокой. 4.5. ВЫБОР ШАГА Одним из важных практических вопросов, которые встают пе- перед инженером, составляющим программы решения дифферен- дифференциальных уравнений, является выбор подходящей величины шага. Если шаг слишком мал, то расчет потребует неоправданно много машинного времени, а число ошибок на отдельных шагах, складывающихся в суммарную ошибку, будет весьма велико. Если же, наоборот, шаг выбран слишком большим, то значитель- значительной будет локальная погрешность, обусловленная усечением ря- рядов, и накопившаяся суммарная ошибка будет также недопусти- недопустимо большой. Обычно, выбирая величину шага, стремятся, чтобы локальная ошибка на шаге была меньше некоторой заданной допустимой ве- величины. Вообще говоря, если порядок точности метода п, то ло- локальная ошибка определяется выражением Chn+1,
Обыкновенные дифференциальные уравнения 91 где С — некоторая постоянная, а Л — шаг. Если используется один из методов прогноза и коррекции, то ошибка на шаге часто определяется величиной последнего члена в формуле коррекции (см., например, раздел, посвященный методу Милна). При использовании же метода Рунге — Кутта локальную ошибку не удается выразить в столь явной форме. Один из способов оценки этой ошибки основан на экстраполяции Ричардсона [27], о которой речь пойдет в следующих разделах. Если для вычисления значения искомой функции yj+i в точке Xj+i используется шаг Л, то разность между истинным и вычисленным значениями равна Если уменьшим шаг вдвое и вычислим у]+1 в точке Xj+u то полу- получим Вычитая это выражение из предыдущего, найдем ,.* ,, —run+i г (h\n+1 — Chn+l (\ О к>п+1'\ У/+1—У/+1 —и" — \2 ) — *¦— ' '* Отсюда можно найти локальную погрешность * Недостатком этого метода является то, что значение yj+i при- приходится вычислять дважды. Так как, для того чтобы вычис- вычислить y*j+i в точке Xj+i, приходится делать два шага, каждый из которых равен половине исходного, объем вычислений увеличи- увеличивается более чем вдвое. Тем не менее эта процедура часто вклю- включается в вычислительный алгоритм для автоматического изме- изменения шага в процессе вычислений и часто используется в мето- методах Рунге — Кутта. Если же ошибка на шаге при данной его величине слишком велика, то ее можно уменьшить, используя при вычислениях член более высокого порядка. Это, конечно, лег- легче сделать в случае методов прогноза и коррекции. Главные достоинства методов Рунге — Кутта — простота на- начала счета и возможность быстрого изменения величины шага в процессе вычислений. С другой стороны, главным достоинством методов прогноза и коррекции является простота оценки ошибки на шаге. Раньше считалось, что эти достоинства нельзя совме- 1 Приводимая формула для оценки локальной погрешности в литературе по разностным методам обычно называется первой формулой Рунге.— Прим. ред.
92 Глава 4 стить в одном алгоритме. Однако в настоящее вре\л разработаны высокоэффективные алгоритмы, позволяющие использовать пре- преимущества обеих групп вычислительных методов. Такие гиб- гибридные методы могут быть весьма полезны при решении инже- инженерных задач. В качестве примера у Гиа [8] описан метод, обе- обеспечивающий автоматическое управление как величиной шага, так и числом членов в формулах прогноза и коррекции. 4.6. «ЖЕСТКИЕ» ЗАДАЧИ Некоторые обыкновенные дифференциальные уравнения не ре- решаются ни одним из рассмотренных выше методов. Чтобы понять, почему это так, необходимо четко представлять структуру реше- решения дифференциального уравнения. Постоянная времени диф- дифференциального уравнения первого порядка — это промежуток времени, по истечении которого величина нестационарной части решения убывает в е~1 раз. В общем случае дифференциальное уравнение n-порядка имеет п постоянных времени. Если любые две из них сильно отличаются по величине или если одна из постоянных времени достаточно мала по сравнению с интервалом времени, для которого отыскивается решение, то задача назы- называется «жесткой» и ее практически невозможно решить обыч- обычными методами. В таких случаях шаг должен быть достаточно мал, чтобы можно было учитывать изменение наиболее быстро изменяющихся членов уравнения даже после того, как их вклад станет практически незаметным. Если не удается сохранить до- достаточно малую величину шага, то решение становится неустой- неустойчивым. Хотя трудности, связанные с обеспечением устойчивости решения «жестких» задач обычными методами, можно временно обойти, уменьшив величину шага, такой подход имеет два не- недостатка. Во-первых, если величина шага очень мала по сравне- сравнению с интервалом, для которого отыскивается решение, то для получения решения потребуется очень много времени. Во-вто- Во-вторых, накапливающиеся в процессе длительных вычислений по- погрешности округления и усечения могут привести к получению бессмысленного результата. Так как с «жесткими» задачами мы сталкиваемся при решении важных задач управления, расчета электрических сетей, хими- химических реакций и пр., то в последнее время много внимания уде- уделяется разработке эффективных методов решения таких задач. Обсуждение этих методов выходит за рамки данной книги, и за- заинтересованным читателям рекомендуется обратиться к работам Гиа [7], а также Халла и Уотта [13].
Обыкновенные дифференциальные уравнения 93 4.7. МЕТОДЫ РЕШЕНИЯ КРАЕВЫХ ЗАДАЧ Как отмечалось выше, задача, заключающаяся в решении обыкновенного дифференциального уравнения при дополнитель- дополнительных условиях, поставленных при нескольких значениях незави- независимой переменной, называется краевой. Для простоты изложение будем вести на примере обыкновен- обыкновенного дифференциального уравнения второго порядка при граничных условиях у(а) = А, у(Ь)=В. Уравнения более высоких порядков можно решать теми же ме- методами, которые разобьем на следующие две группы: 1. Методы, основанные на замене решения краевой задачи решением нескольких задач Коши. 2. Методы, в которых используется конечно-разностная фор- форма дифференциального уравнения. Методы «стрельбы» Если обыкновенное дифференциальное уравнение второго порядка является линейным, т. е. имеет вид У"ЧгШ+ШУ+Ш при дополнительных условиях у (а) =А и у{Ь)=В, то краевую задачу можно свести к задаче Коши с помощью начальных условий у(а)—А и «/'(a)=«i. Найдя решениеух (л;), можно поставить другие граничные условия у{а)=А и у'(а)=а2 и получить второе решение Уг(х). Если */i(&)=Pi, а У20)—$2, причем Pi=^p2, то решение У (*) = ft=fr К* -Р.) Уг (х) + <k-B) у2 (х)] удовлетворяет обоим начальным граничным условиям. Если решается нелинейное обыкновенное дифференциальное Уравнение, то решение краевой задачи можно свести к решению нескольких задач Коши, последовательно вводя в начальные
94 Глава 4 условия значения а: у(а)=А и у'(а)=а и стремясь найти решение, удовлетворяющее условию у{Ь)=В. При этом большую помощь может оказать интерполяция, позволя- позволяющая построить упорядоченную последовательность а и свести к минимуму объем вычислений. К сожалению, этот метод мало- малоэффективен, и мы не можем его рекомендовать для замены более совершенных методов, описанных в литературе. Конечно-разностные методы Достоинство конечно-разностных методов в том, что они поз- позволяют свести решение краевой задачи к решению системы ал- алгебраических уравнений. При решении двухточечной краевой задачи у"Ч(х,у,у') при у(а)=А и у(Ь)=В интервал la, b] можно разделить на п равных частей: Xi=xo+ih, t=l, 2, . . ., п, где х~в'==а,' хп=Ь, a h= . В точках xt, называемых узлами, стре- стремятся получить значения решения yt. Зная координаты узлов и пользуясь конечно-разностными выражениями для производных У' (*/) = 5й(&+1—&-i). У" (*/) = т^ tit+1 - 2У1 + Ус -1). можно представить дифференциальное уравнение в виде разност- разностного уравнения. (Отметим, что существуют различные фор- формы конечно-разностных выражений для производных. Вопрос о разностных выражениях подробнее рассматривается в следующей главе.) Если записать это разностное уравнение для t=l, 2, ... . . ., п при двух краевых условиях, то задача сводится к решению системы п—1 алгебраических уравнений с п—1 неизвестными уг. Если исходное дифференциальное уравнение линейное, то за- задача будет состоять в решении системы линейных алгебраических уравнений. Если же исходное дифференциальное уравнение не- нелинейное, задача сводится к решению системы нелинейных ал- алгебраических или трансцендентных уравнений. Хотя методы ре- решения таких линейных и нелинейных уравнений известны, при- привести решение краевой задачи методом конечных разностей к
Обыкновенные дифференциальные уравнения 95 виду стандартной программы для ЭЦВМ трудно, так как форму- формулировка каждой задачи зависит от вида рассматриваемого диффе- дифференциального уравнения. Пример 4.3 Пусть требуется решить дифференциальное уравнение у"=2х+3у при условиях у@)=0, уA)=1 и шаге ft=0,2. В разностной форме это уравнение имеет вид q-q4 (У! +1—2У> + У! -1) = 2xi + 3У1- Пользуясь этой формулой и граничными условиями, .можно выписать следую- следующую систему четырех линейных уравнений с четырьмя неизвестными: -2,12^ + ^ = 0,016, s = —0,064, —2,12i/4+//3=—0,936. В приведенной ниже таблице решение этой системы уравнений сравниваетси с точным решением 5 sh VTx 2 ^ 3 sh тЛя 3 ' X 0,0 0,2 0,4 0,6 0,8 1,0 у численное решение 0,0 0,0827 0,1912 0,3548 0,6088 1,0000 точное решение 0,0 0,0818 0,1897 0,3529 0,6073 1,0000 4.8. ВЫБОР АЛГОРИТМА РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИИ Сформулировать общие правила выбора наилучшего метода ре- решения того или иного обыкновенного дифференциального уравне- уравнения невозможно. Однако можно рекомендовать руководство- руководствоваться при этом следующими соображениями: 1. Рассмотрение типа задачи. Если это задача Коши, то можно воспользоваться одной из готовых подпрограмм, позволяющих получить решение. Если же это краевая задача, то, возможно, придется составлять собственную программу.
96 Глава 4 2. Оценка степени сложности дифференциального уравнения. Если задача Коши очень сложна и вычисление f(x, у) связано с большими трудностями, то обычно предпочтение отдают одному из методов прогноза и коррекции, так как они требуют вычисле- вычисления лишь двух значений f(x, у) на шаге вместо четырех, как в методах Рунге — Кутта. Если же вычисление f(x, у) не вызывает затруднений, то более удобным часто оказывается один из ме- методов Рунге —• Кутта. 3. Оценка времени, требуемого для решения задачи. Если в первую очередь приходится учитывать стоимость машинного времени, то лучшим будет метод прогноза и коррекции. Если же определяющим является время подготовки задачи к счету, то следует воспользоваться методом Рунге — Кутта. 4. Оценка требуемой точности решения. Вообще говоря, чем выше порядок точности метода, тем более точным будет полу- полученный результат. Это утверждение справедливо лишь до неко- некоторой степени, так как конечно-разностные аналоги производ- производных по мере повышения порядка аппроксимации ведут себя все хуже и хуже х. Поэтому погрешность метода при переходе от пятого порядка к более высоким порядкам точности (что к тому же связано и с дополнительными громоздкими вычислениями) практически не убывает. Поскольку обычно достигается некото- некоторый компромисс между объемом и точностью вычислений, то следует уделять внимание как выбору порядка точности метода, так и выбору величины шага. Поэтому большое распространение получили алгоритмы, в которых автоматически изменяется шаг интегрирования или порядок точности применяемого метода. 5. Учет имеющегося опыта. Предшествующие успехи или неудачи в применении того или иного алгоритма для решения кон- конкретной инженерной задачи могут предоставить ценный материал для суждения о целесообразности выбора подходящей программы. Это особенно важно в случае «жестких» систем дифференциальных уравнений, так как обычно неизвестно, является ли система жест- жесткой, до тех пор пока пользователь не убедится на практике в неэффективной работе алгоритма. 4.9. ПАКЕТЫ ПРОГРАММ ДЛЯ МОДЕЛИРОВАНИЯ ИНЖЕНЕРНЫХ СИСТЕМ Почти все существующие пакеты программ содержат по мень- меньшей мере одну подпрограмму, позволяющую решать обыкновен- обыкновенные дифференциальные уравнения и задачу Коши. Перечислять их 1Это вызвано необходимостью включения для повышения порядка точ- точности аппроксимации производных дополнительных интерполяционных узлов, что в свою очередь ведет к повышению степени аппроксимирующих полиномов, которые, как правило, с увеличением степени приобретают все более сложный немонотонный характер.— Прим. ред.
Обыкновенные дифференциальные уравнения 97 вряд ли целесообразно, так как почти во всех случаях исполь- используется либо метод Рунге — Кутта, либо метод прогноза и коррек- коррекции. Поскольку при решении инженерных задач весьма часто вста- встает вопрос о моделировании технических систем, то уже давно был разработан целый ряд программ, специально предназначен- предназначенных для моделирования. Эти программы делят на непрерывные и дискретные в зависимости от характера задач, для которых они предназначены, т. е. в зависимости от того, имеют ли они смысл в области непрерывного изменения параметров или лишь при их дискретных значениях. Примерами первых могут слу- служить задачи о колебаниях. Ко вторым относятся задачи об инвен- инвентаризации, транспортных потоках, поведении покупателей и т. п. Так как дискретные системы описываются переменными, изме- изменяющимися случайным образом, то их называют стохастически- стохастическими. Напротив, непрерывным системам присуща полная опреде- определенность данных на входе и выходе, и поэтому они называются детермированными. В табл. 4.1 приведены характеристики не- некоторых хорошо известных пакетов программ, предназначенных для моделирования. Таблица 4.1 Программы моделирования для ЭЦВМ Наименование CSMP CSSL DYSAC GASP GPSS MIDAS MIMIC PACTOLUS SL-1 Непрерывная или дискретная н н н н-д д н н н н Место разработки Фирма IBM Фирма обработки данных Унивзрситет шт. Висконсин U. S. Steel Corp- Corporation Фирма IBM База ВВС Райт- Паттерсон То же Фирма IBM Фирма «Ксерокс» Источник [29] [30] [15] [24] [Н] [23] [28] [21 [33] Первые программы моделирования непрерывных систем пред- представляли собой специальные пакеты программ, которые позво- позволяли программировать работу ЭЦВМ и управлять ею в соответ- соответствии с блок-схемой алгоритма, как если бы это была аналоговая ЭВМ. Поэтому эти программы часто называли программами для дискретно-аналогового моделирования. Позднее появились про- программы моделирования, обладающие большей общностью и ско- 4 № 2913
98 Глава 4 рее напоминающие специализированные алгоритмические язы- языки. Они обеспечивают большую гибкость при постановке и ре- решении задач моделирования. Интегрирование в таких програм- программах осуществляется методами Рунге — Кутта или прогноза и коррекции. Интерес к разработке и использованию программ моделирования в последние годы сильно возрос, и теперь инже- инженер имеет возможность использовать в своей работе высокоэффек- высокоэффективные пакеты программ моделирования, большим достоинством которых является экономия времени, которое иначе пришлось бы тратить на разработку программ моделирования сложных ин- инженерных задач. Описание программ моделирования выходит за рамки данной книги. Для заинтересованных читателей в конце главы приведен список литературы. ЗАДАЧИ 4.1. Материальная точка массой т закреплена на конце тонкого однород- однородного стержня и может совершать свободные колебания (см. рис.). Подготовить программу, которая моделировала бы движение этой системы, и выполнить расчет для полного цикла колебаний. При этом рекомендуется пользоваться следующим уравнением движения и дополнительными условиями: e-f-f-sin9 = 0, 0@) = л/4, 9@)= 0, g = 9,8 м/с2, L = 0,10 м. Если угол отклонения 9 мал, то дифференциальное уравнение можно линеари- линеаризовать, приняв sin 9=9. Сравнить полученные результаты с результатами для линейного случая. / / S 4.2. Решить задачу 4.1 методом прогноза и коррекции. Результаты реше- решения сравнить с результатами, полученными методом Рунге — Кутта. 4.3. Тело, показанное на рисунке, движется по плоской поверхности с трением, обусловливающим демпфирование колебаний. Его масса т=4,5 кг, жесткость пружины ?=175 Н/м, коэффициент трения /=0,3. Рассчитать движение тела в интервале времени 0-<f<2 с при начальных условиях: *@) = 7,5см, *@)=0.
Обыкновенные дифференциальные уравнения 99 Результаты представить графически. Расчет выполнить методом Рунге — Кутта, а также методом прогноза и коррекции. Какой из них требует меньше машинного времени? Почему? 4.4. С целью выяснить, нельзя ли усовершенствовать механизм, связы- связывающий клавиши пианино с молоточками, было выполнено исследование этого механизма. Оледжски 1 предложил следующую нелинейную модель: —Q,5(xl— Х2)Ч3 В этих дифференциальных уравнениях х1 — смещение клавиши вниз, х% —< смещение молоточка вперед, F — направленная вниз сила, действующая на клавишу. Входящие в указанные уравнения постоянные имеют следующие значения: /% = 0,074 кг, ао = 0,406 кг, Ьо= 18,3 кг/м, ku0= 1,16-10* Н/м, ^2,0 = 0,525-10» н/м2, ^з,о=1,ЫО6 Н/м2, 0 < F < 80 Н. Подготовить программу для ЭЦВМ, которая моделировала бы движение этой системы при F=80 Н в интервале времени 0 <: t <. 30 мс. 4.5. Систему отопления жилого помещения можно описать следующим дифференциальным уравнением: <?вх—<?вых = 250сGусК, гДе Qbx — подвод тепла от нагревателя, Дж/с; <2ВЫХ — потери тепла в окру- окружающую среду, Дж/с; Тс — температура во внутренних помещениях дома, СС; t — время, с. Такие отопительные системы часто оборудуют термостатами, которые включают и выключают нагреватель в зависимости от величины разности за- заданной температуры Tj и действительной температуры в помещении Тс. Пусть суточные потери тепла при температуре окружающей среды 0°С составляют 1 Oledzki A., Dynamics of Piano Mechanisms, Mech. and Mach. The- Theory, 7, pp. 373—385 A972). 4*
100 Глава 4 а регулятор работает в соответствии с графиком ¦вх зо. ооадж/с -<Td-Tc) Написать программу для моделирования отопительной системы при Та = = 22°С, предполагая, что начальная температура в помещении Тс = 10°С. Какова частота предельного цикла для рассматриваемой системы? 4.6. Решить следующую краевую задачу: уф)=О, уA)=1,0 при шаге ft=0,2. Решить ту же задачу при шаге ft=O,l. Отличаются ли полу- полученные результаты? Если да, то почему? 4.7. В задаче о маятнике D.1) требуется получить 9=я/4 при t~l,0 с. Каким для этого должен быть угол 9 при ?=0, если 9 @)=0? 4.8. Дифференциальное уравнение изгибной линии бруска с постоянным поперечным сечением имеет вид v М (х) PL2 / 1 х Кривизна=- v — ' При начальных условиях t/@)==0, y'@)=0 и L=1,0m, PL?/EI= 2,0 составить программу для расчета изгибной линии брус- бруска у(х), пользуясь а) точным выражением для кривизны Кривизнам ¦ У ; » A+/ K/2 б) приближенным выражением для кривизны Кривизна =у". Сравнить полученные результаты. Насколько хорошо приближенное выраже- выражение для кривизны аппроксимирует ее точное выражение? У ВТ 4.9. Для механизма пианино, описанного в задаче 4.4, требуется выпол- выполнить условие ж1==8 ым при t=45 мс. Какова должна быть при этом сила удара F? 4.10. Для механизма, описанного в задаче 4.3, в отсутствие демпфирования найти и представить графически зависимость частоты свободных колебаний Wf от начального смещения Xj в интервале значений 0<:х0<30 см при условиях ) = х0 и
Обыкновенные дифференциальные уравнения 101 ЛИТЕРАТУРА 1. Bennett A. W., Introduction to Computer Simulation, N. Y., West Publ. Co., 1974. 2. Brennan R. D., Sano H., Pactolus: A Digital Analog Simulator Program for IBM 1620. Proc. Fall Joint Computer Conf., pp. 299—312 A964). 3. Ceshino F., Kuntzmann J., Numerical Solution of Initial-Value Problems, Englewobd Cliffs, N. J., Prentice-Hall, 1966. 4. Dahlquist G., Bjorck A., Numerical Methods, Englewood Cliffs, N. J., Prentice-Hall, 1974. 5. Dorn W. S., McCracken D. D., Numerical Methods with FORTRAN IV Case Studies, N. Y., Wiley, 1972. 6. Forsythe G. E., Malcolm M. A., Moler С. В., Computer Methods for Mathe- Mathematical Computations, Englewood Cliffs, N. J., Prentice-Hall. [Имеется перевод: Форсайт Дж., Малькольм М., Моулер К. Машинные методы математических вычислений.— М.: Мир, 1980.] 7. Gear С. W., Numerical Initial Value Problems in Ordinary Differential Equations, Englewood Cliffs, N. J., Prentice-Hall, 1971. 8. Gear С W., Hybrid Methods for Initial-Value Problems in Ordinary Diffe- Differential Equations, /. SIAM Numer. Anal., Ser. B, No. 2, pp. 69—86 A964). 9. Gear C. W., Watanabe D. S., Stability and Convergence of Variable Order Multistep Methods, SIAM J. Numer. Anal., No. 11, pp. 1044—1058 A974). 10. Gear С W., Tu K. W., The Effect of Variable Mesh Size on the Stability of Multistep Methods, SIAM J. Numer. Anal., No. 11, pp. 1025—1043 A974). 11. GreenbergS., GPSS-Primer, N. Y., Wiley Interscience, 1972. 12. Grove W. E., Brief Numerical Methods, Englewood Cliffs, N. J., Prentice- Hall, 1966. 13. Hall G., Watt J. M., Modern Numerical Methods for Ordinary Differential Equations, Oxford, England, Clarendon Press, 1976. 14. Hamming R. W., Stable Predictor-Corrector Methods for Ordinary Differen- Differential Equations, /. Assoc. Comput. Mach. No. 6, pp. 37—47 A959). 15. Hurley J. R., SkilesJ. J., DYSAC: A Digitally Simulated Analog Compu- Computer, Proc. Spring Joint Computer Conf., pp. 69—82, 1963. 16. IBM System/360 Scientific Subroutine Package (SSP). 360A-CM-03X Ver- Version 3, 6th ed. March, 1970. 17. Jennings W., First Course in Numerical Methods, N. Y., MacMillan, 1964. 18. Kochenburger R. J., Computer Simulation of Dynamic Systems, Englewood Cliffs, N. J., Prentice-Hall, 1972. 19. Lapidus L., Seinfeld J. H., Numerical Solution of Ordinary Differential Equations, N. Y., Academic Press, 1971. 20. Markowitz H. M., Hausner В., Kerr H. W., SIMSCRIPT: A Simulation Programming Language, Englewood Cliffs, N. J., Prentice-Hall, 1963. 21. McCalla T. R., Introduction to Numerical Methods and FORTRAN Program- Programming, N. Y., Wiley, 1967. 22. Pall G. A., Introduction to Scientific Computing, N. Y., Appleton-Century- Crofts Educational Division, Meredith Corp., 1971. 23. Peterson H. E., SansomF. J., Harnett R. Т., Warshawsky L. M., MIDAS: How It Works and How It's Worked, Proc. Fall Joint Computer Conf., pp. 313—324, 1964. 24. Pritsker А. В., Hurst N. R., GASP IV: A Combined Continuous-Discrete FORTRAN Based Simulation Language, Simulation, No. 21, pp. 67—75 A975). 25. Ralston A., A First Course in Numerical Analysis, N. Y., McGraw-Hill, 1964. 26. Ralston A., Wilf H. S., Mathematical Methods for Digital Computers, N. Y., Wiley, 1967. 27. Richardson L. F., Gaunt J. A., The Deferred Approach to the Limit, Trans. Roy. Soc. London, 226A, p. 300 A927).
102 Глава 4 28. Sansom F. J., MIMIC Programming Manual, Tech. Rept. SEG-TR-67-31, Wright-Patterson Air Force Base, Ohio, 1967. 29. Speckhart F. H., Green W. L., A Guide to Using CSMP — the Continuous System Modeling Program, Englewood Cliffs, N. J., Prentice-Hall, 1976. 30. The SCI Simulation Software Committee, The SCI Continuous System Simulation Language (CSSL), Simulation, Dec, pp. 281—303 A967). 31. Tiechroew D., Lubin F. W., Truitt T. D., Discussion of Computer Simulation Techniques and Comparison of Languages, Simulation, No. 9, pp. 181—190 A967). 32. Williams P. W., Numerical Computation, N. Y., Barnes and Noble, 1972. 33. Xerox SL-1 Simulation Language, Reference Manual 90—16—76B, Xerox Data Systems, Feb., 1972.
Глам 5 Решение дифференциальных уравнений в частных производных 5.1. ВВЕДЕНИЕ Инженеру очень часто приходится сталкиваться с задачами, в которых искомая величина зависит от нескольких переменных. В этом случае решаемые уравнения содержат частные производ- производные и называются дифференциальными уравнениями в частных производных. К сожалению, очень многие из таких уравнений не имеют ана- аналитического решения, и чтобы решить их, приходится прибегать к численным методам. Если для решения обыкновенных диффе- дифференциальных уравнений существует множество различных ме- методов, то для решения дифференциальных уравнений в частных производных приходится выбирать лишь между методами ко- конечных разностей и конечных элементов. В данной главе вопрос о численном интегрировании дифференциальных уравнений в частных производных рассматривается с точки зрения примене- применения этих методов для решения различных технических задач. Дается также классификация часто встречающихся дифферен- дифференциальных уравнений в частных производных и указываются ра- рациональные пути их численного решения. 5.2. ТИПЫ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ Дифференциальные уравнения в частных производных клас- классифицируют либо в зависимости от их математической природы — эллиптические, параболические и т. п.,— либо в зависимости от физического смысла решаемых с их помощью задач — уравне- уравнение диффузии, волновое уравнение и т. п. Чтобы пользоваться математической литературой и литературой по прикладным дис- дисциплинам, инженер должен быть знаком с обеими этими класси- классификациями. С математической точки зрения дифференциальные уравнения второго порядка в частных производных с двумя независимыми переменными
104 Глава 5 _ классифицируются в зависимости от характера функций А, В и С. Эти функции зависят от переменных хну. Если В2—4ЛС<Х>, уравнение называется эллиптическим, если В2—4 АС=0 — па- параболическим, а если В2—4 ДОО — гиперболическим. Зави- Зависимость функций А, В и С от х и у усложняет ситуацию, так как делает возможным изменение типа уравнения при переходе из одной части рассматриваемой области в другую. Дополнительными условиями для дифференциальных урав- уравнений второго порядка в частных производных могут служить граничные или начальные условия, а также комбинация тех и других. Эллиптические уравнения описывают установившиеся (стационарные) процессы; задача ставится в замкнутой области, и в каждой точке границы этой области задаются граничные ус- условия. Параболическими и гиперболическими уравнениями опи- описываются эволюционные процессы (процессы «распространения»). В таких задачах на одной части границы ставятся граничные ус- условия, на другой — начальные; возможны также открытые об- области, в которые «распространяется решение» 1. В инженерной практике чаще всего встречаются уравнения в частных производных, приведенные в табл. 5.1, где Д — опе- оператор Лапласа. В случае одной независимой переменной х В случае двух независимых переменных х и у ' дх2 + ду2 • Оператор Д2 называется бигармоническим оператором и в случае двух независимых переменных имеет вид ' ~ а** ^ дх2 ду2 + ду* ' 5.3. ЧИСЛЕННОЕ РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ МЕТОДОМ КОНЕЧНЫХ РАЗНОСТЕЙ В основе решения уравнений в частных производных методом конечных разностей лежит конечно-разностная аппроксимация производных, которая во многом напоминает описанную в пре- предыдущей главе, посвященной обыкновенным дифференциальным уравнениям. Аппроксимация осуществляется в три этапа 1 Более подробно затронутые вопросы теории уравнений математической физики рассмотрены, например, в книге [10*].— Прим. ред.
Таблица 5.1 Известные типы дифференциальных уравнений в частных производных Ур авнеиие Лапласа Пуассона Диффузии Волновое Бигармоническое Математическая ({ирма Д/ = 0 Д/=— k A;~ft2 dt '~ с2 dt* Vf = F(x, у) Примеры задач, в которых встречается уравнение Установившееся течение жидкости. Стационарные тепловые поля Теплопередача с внутренними источниками тепла Нестацнонарная теплопроводность Распространение звуковых волн Деформация пластин
106 Глава 5 (рис. 5.1). Сначала в области решения вводят равномерную сет- сетку «узловых точек», соответствующую характеру задачи и гра- граничным условиям. Затем решаемое уравнение в частных производ- производных записывают в наиболее удобной системе координат и, пред- представляя производные в конечно-разностной форме, приводят его к виду разностного уравнения. Полученное разностное уравне- уравнение используют в дальнейшем для описания функциональной Построение в области решения сетки, содержащей п узловых точек. Конфигурация сетки должна соответ- соответствовать характеру задачи и гранич- граничным условиям. Использование дифференциального урав- уравнения в частных производных Зля полу- получения разностного выражения, описытю- щего функциональные связи между соседними узлами сетки. Решение полученной системы п уравне- уравнений с п неизвестными с целью полу- получения приближенного решения в узлах сетки. Рис. 5.1. Этапы численного решения дифференциальных уравнений в частных производных методом конечных разностей. связи между соседними узлами сетки. Разностное уравнение запи- записывают для всех узлов сетки и получают в результате систему п уравнений с п неизвестными. На последнем этапе полученную систему п уравнений с п неизвестными решают одним из числен- численных методов. На первый взгляд эта процедура, состоящая из трех этапов, может показаться простой и прямо ведущей к реше- решению, однако на самом деле это не так — широкое разнообразие типов и размеров сеток, видов уравнений в частных производ- производных, возможных конечно-разностных аппроксимаций этих урав- уравнений и методов решения получаемых систем уравнений делают задачу численного решения уравнений в частных производных исключительно многогранным и интересным исследованием. Рассмотрим теперь все три этапа решения.
Дифференциальные уравнения в частных производных 107 5.4. СЕТКИ, ПРИМЕНЯЕМЫЕ ПРИ ПРЕДСТАВЛЕНИИ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ В КОНЕЧНО-РАЗНОСТНОЙ ФОРМЕ Все ранее приведенные уравнения в частных производных были записаны в декартовой системе координат, однако иногда бывает удобнее пользоваться другими системами координат, об- обладающими специальными геометрическими свойствами и учи- Рис. 5.2. Виды сеток, наиболее часто используемых при численном решении дифференциальных уравнений в частных производных. а—прямоугольная, б—полярная, в—треугольная, г—скошенная. Рис. 5.3. Пример задачи с границей сложной конфигурации.
108 Глава 5 тывающими физические особенности рассматриваемой задачи. Чаще всего в инженерной практике применяются декартова, цилиндрическая и сферическая системы координат. В работе Муна и Спенсера [8] перечисляются 40 специальных систем коор- координат, которые могут быть использованы при решении техниче- технических задач. На рис. 5.2 показаны сетки, которые наиболее часто используют при решении уравнений в частных производных — прямоугольная, полярная, треугольная и скошенная. Наиболее употребляемая из них — прямоугольная сетка. Нередко при- приходится иметь дело с областями неправильной формы, подобны- подобными показанной на рис. 5.3. Хотя границы такой области нельзя точно задать с помощью какой-либо одной из указанных выше сеток, существуют специальные методы, с помощью которых мож- можно так модифицировать стандартные сетки, что они позволят описать границу сложной конфигурации. Применительно к эволюционным процессам сетку можно представить себе как по- последовательность узлов, простирающуюся в открытую область, насколько это необходимо для решения данной задачи. 5.5. ПРЕДСТАВЛЕНИЕ ЧАСТНЫХ ПРОИЗВОДНЫХ В КОНЕЧНО-РАЗНОСТНОМ ВИДЕ Разложение в ряд Тейлора функции двух независимых пере- переменных / (х, у) позволяет представить частную производную в виде д[ ^ f(xi+h,yj) — f(x;—h,yj) дх ^ 2ft У У; + /7 к J 1 ! h Рис. 5.4. Двумерная сетка.
Дифференциальные уравнения в частных производных 109 i, i i, i 34f. Эх4 i[( I.J ilia JL Зу4 ~ h4 1"* Рис. 5.5. Вычислительные шаблоны для наиболее часто встречающихся производных. где h — малое приращение х относительно его значения в точке i. В приведенном выше выражении отброшены члены порядка /i2, а само оно называется центрально-разностной формулой, так как симметрично относительно исходной точки (xiy yt). Такое конечно- разностное представление удобно рассматривать как относя- относящееся к трем соседним узлам двумерной сетки с шагом h (рис.5.4), где индекс / присвоен независимой переменной у, a i относится к х. Для удобства обозначение f(xi+h, yj) заменим на ft+ij- Пользуясь этим обозначением и разложением в ряд Тейлора, получим выражения для частных производных, с которыми ча-
ПОГлава 5 сто приходится V , дх - V , ду " а2/ , ду2 " иметь дело на практике: 2Л //, / + i — fi.j-i 2Л ft2 ' /1./+1 —2/,-, /+/,-, /-1 дхду 4/i2 Здесь f,, m — значения функции в узлах, расположенных в ок- окрестности центральной точки, которой соответствует fit j. Ин- Информацию о коэффициентах при fit j и / 1л т в конечно-разностных выражениях очень удобно представлять с помощью вычисли- вычислительных шаблонов, являющихся диаграммами, показывающими, какой вклад вносят узлы сетки в рассматриваемую производную. На рис. 5.5 представлены вычислительные шаблоны для некото- некоторых часто встречающихся производных. Из этих элементов строятся более сложные вычислительные шаблоны для дифферен- дифференциальных уравнений. Сложение производных осуществляется суперпозицией соответствующих вычислительных шаблонов. Этим методом «собраны» вычислительные шаблоны для А/ и А2/ (рис. 5.6). Все приведенные вычислительные шаблоны имеют по- погрешность порядка h2. Следует отметить, что мбжно построить и более точные (имеющие меньшую погрешность) вычислительные шаблоны, если пользователь готов включить в рассмотрение до- дополнительные узлы. В основе всех построенных до сих пор вы- вычислительных шаблонов лежит центрально-разностная аппрок- аппроксимация. Иногда, чтобы свести к минимуму распространение ошибок, пользуются левыми или правыми разностями. Вычис- Вычислительными шаблонами следует пользоваться с осторожностью, так как построенное с их помощью разностное уравнение, ап- аппроксимирующее дифференциальное уравнение в частных про- производных, при счете может оказаться неустойчивым. Разност- Разностная схема считается неустойчивой, если погрешность, каково бы ни было ее происхождение, с течением времени не убывает. Трудности, связанные с неустойчивостью разностных схем, осо- особенно часто возникают в эволюционных задачах 1. 1 Читателю, желающему подробнее познакомиться с понятием устойчивос- устойчивости разностных схем, можно рекомендовать книги [3*, 8*].— Прим. ред.
Дифференциальные уравнения а частных производных 111 Рис. 5.6. Вычислительные шаблоны. Границы неправильной конфигурации Как указывалось выше, вычислительные шаблоны для дан- данного дифференциального уравнения в частных производных можно видоизменить так, чтобы учесть неправильную форму гра- границ рассматриваемой области. Для этого, записывая производ- производные в центрально-разностной форме, следует учесть вклад узлов, лежащих на границе области. В качестве примера рассмотрим вы-
112 Глава 5 а Риг. 5.7. Границы неправильной формы. числительный шаблон уравнения Лапласа в области, ограничен- ограниченной произвольной кривой (рис. 5.7, а). В этом случае а<1 и Ь<,1. Вторые частные производные для узлов, лежащих на гра-
Дифференциальные уравнения в частных производных 113 нице области, можно записать в виде fa—ft,/ ftj—fi-i,/ d2f dxi " 3*f . dy2 " ah 0,5 fb-fl.i 0,5 h (ah + h) fl,j—ft,/-i h (bh + h) Сложив эти две производные, получим А/. После ряда преобра- преобразований найдем -1-1 i fa I h , f'-f-1 a+bf Соответствующий вычислительный шаблон представлен на рис. 5.7, б. При а=Ь=\ получаем обычный вычислительный шаблон для уравнения Лапласа. Хотя выше речь шла об урав- уравнении Лапласа, тот же метод применим для любого уравнения в частных производных, которое можно представить в форме вы- вычислительного шаблона. 5.6. ИТЕРАЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ Применив вычислительный шаблон к каждому из п узлов сет- сетки, получим систему п уравнений, которая может быть линейной, если исходное дифференциальное уравнение имеет соответствую- соответствующую структуру. В этом случае придется решать систему уравне- уравнений вида [Матрица 1 Г Неизвестные значения 1 _ ГВектор-1 коэффициентов] [в узлах (вектор-столбец)] ~~ [столбец] • Обычно матрица коэффициентов оказывается «разреженной» (со- (содержит много нулевых элементов), так как в большей части вы- вычислительных схем используется лишь несколько соседних узлов, а не все узлы сетки. Методы решения таких систем уравнений делятся на прямые и итерационные. Прямые методы позволяют получить точ-ное решение, выполнив конечное число операций. Примером прямого метода может служить правило Крамера для решения системы совместных линейных алгебраических урав- уравнений. Обычно для больших систем уравнений прямые методы неэффективны, так как при их применении требуется выполне- выполнение огромного объема вычислений и очень большой объем па- памяти ЭЦВМ. Поэтому чаще пользуются итерационными методами.
114 Глава 5 Сущность итерационных методов заключается в многократном повторении одного и того же простого алгоритма, который дает результат, постепенно приближающийся к точному решению. Итерации начинаются с задания начального приближенного решения. Затем начальные значения переменных в узлах сетки последовательно изменяются, пока не достигается заданная точ- точность решения. Быстрота сходимости итерационного метода силь- сильно зависит от степени точности начальной аппроксимации. По- Поэтому интуиция инженера может оказать большое влияние на эффективность вычислительного процесса. Итерационные методы подразделяются на два широких класса — точечные и блочные. В первом случае алгоритм исполь- используется для модификации приближенного решения в одном узле сетки, покрывающей область решения. Во втором случае реше- решение модифицируется сразу в группе узлов сетки. Ниже приво- приводятся примеры часто применяемых точечных итерационных ме тодов. Метод одновременных смещений Этот метод известен также как метод итераций Якоби [1] и является самым простым из итерационных методов. Однако пользуются им редко, так как он обладает медленной сходи- сходимостью. Мы рассмотрим этот метод лишь потому, что он позво- позволяет лучше понять алгоритм других итерационных методов. Метод одновременных смещений состоит в выполнении следую- следующих операций. От узла к узлу с помощью вычислительного шаблона производится расчет новых значений переменных по старым, пока не будут получены новые значения во всех узлах. Затем производится одновременная замена значений переменных во всех узлах сетки. Поскольку новые значения искомого реше- решения вводятся одновременно во всех узлах сетки, порядок, в ко- котором производятся вычисления, не имеет значения. Счет закан- заканчивается, когда изменение значений переменных во всех узлах сетки становится меньше некоторой заранее заданной величины. Любой итерационный метод требует задания начального прибли- приближенного решения, которое может быть получено любым разум- разумным способом. Часто для получения приближенных значений переменных в узлах сетки пользуются линейной интерполяцией. Очевидно, чем ближе исходное приближение к решению, тем меньше итераций необходимо для его получения. Чтобы проил- проиллюстрировать метод одновременных смещений, рассмотрим сле- следующую задачу.
Дифференциальные уравнения в частных производных 115 Пример 5.1 Пусть требуется найти стационарное распределение температуры в квад- квадратной пластине, для которой заданы следующие граничные условия: х = 0, Г = 0, *=1,0, Г=Ю0, 0=0, Г =100*, у =1,0, Т = 100х9: Распределение температуры в подобных случаях описывается уравнением Лапласа с двумя независимыми переменными Чтобы поставить задачу, введем на пластине двумерную сетку с расстоянием между узлами /i=0,25. Сетка содержит 25 узлов, в 16 из которых температура известна согласно граничным условиям. Расположение узлов показано на ри- рисунке. Внутренние узлы обозначены цифрами. Задача состоит в определении температуры во всех 9 внутренних узлах сетки. Т=0,0 Т=0,0 Т=0,0 Т=0,0 У=1,0 6,25 i Г 7) i Q— —с J 7= 25,0 (^ Q —Q Ту Л- ¦-W0xz 56,25 (j Г) ( (б) Q "} i » Т=100 • Т=10О ! Т=100 Т=100 Т=100 25. 50 Т=1О0.Г 75 Новое значение температуры в узле 71,-, у можно найти с помощью вычи- вычислительного шаблона Начальные значения температуры в узлах сетки зададим с помощью линейиой интерполяции. Истинные значения Т в узлах будем искать методом итераций.
116 a a- a. a о x c a. с к s x о 2 jjj i н н" нГ н п н н Номер итерации l=gsssliSKasiisssissssss3Ssssss «МОФООООООО ——-—— —н —- о_-мет1мэтт"т«т«т «mm mm mm mm m m m :o mm m mm о Я—WrtT)'t0<DNMC5O'-lNC0tl0t0lsMfflO —iMM^lOtONMUJO к
Дифференциальные уравнения в частных производных 117 Результаты, полученные после 30 итераций, представлены в табл. 5.2. Посколь- Поскольку в данном случае число узлов невелико, задачу можно решить и прямым методом. Результаты этого решения для сравнения приведены в табл. 5.2. Получав удовлетворительное решение, можно с помощью линейной интерполя- интерполяции найти значения температуры в пространстве между узлами. Метод последовательных смещений Одна из причин, по которой метод одновременных смещений обладает такой медленной сходимостью, состоит в том, что уточ- уточненные значения переменных не используются, пока они не найдены для всех узлов сетки, т. е. до тех пор, пока не заменена вся сетка значений. В методе последовательных смещений [1], который называют также методом итераций Либмана,уточненные значения переменных используются сразу после получения. Так, уточненное значение переменной в узле / сразу же исполь- используется для вычисления нового значения в узле 2 и т. д. Очевидно, при использовании этого метода ход решения задачи зависит от того, в каком порядке обходятся узлы сетки. Так как в методе последовательных смещений новые данные используются сразу после их получения, то для него характерна более быстрая сходимость, чем для метода одновременных смещений. Резуль- Результаты решения примера 5.1 методом последовательных смещений представлены в табл. 5.3. Сравнивания табл. 5.2 и 5.3, легко убедиться, что метод последовательных смещений по сравнению с предыдущим обеспечивает более быструю сходимость, позволяя получить решение с той же точностью при меньшем числе ите- итераций. Метод последовательной верхней релаксации Методы релаксации можно использовать для решения систем линейных уравнений. Основу этих методов составляет последо- последовательное уменьшение невязок во всех узлах сетки. (Невязкой называется разность между значением переменной в узле и ее истинным значением.) Первым исследовал методы релаксации применительно к дифференциальным уравнениям в частных про- производных Саусвелл [14]. Он обнаружил, что нередко бывает полезно изменить значение переменной в узле на большую вели- величину, чем это необходимо для обращения данной невязки в нуль. В методе верхней релаксации используется линейная экстрапо- экстраполяция по результатам двух последовательных смещений. С этой точки зрения метод последовательной верхней релаксации можно рассматривать как развитие метода последовательных смещений, о котором говорилось выше. Если текущее значение переменной в узле равно T^ff1', а метод последовательных смещений дает
Результаты решения примера 5.1 методом последовательных смещений Таблица 5.3 ¦ Номер итерации Начало 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 20,313 21,094 21,777 22,382 22,851 23,161 23,326 23,409 23,451 23,472 23,483 23,488 23,491 23,492 23,493 23,493 23,493 43,750 44,727 45,715 46,602 47,216 47,545 47,712 47,796 47,837 47,858 47,869 47,874 47,877 47,878 47,879 47,879 47,879 Т, 70,313 71,338 72,180 72,826 73,158 73,325 73,409 73,451 73,472 73,483 73,488 73,491 73,492 73,493 73,493 73,493 73,493 ——————.—-_ Г, 15,625 17,383 18,811 19,801 20,429 20,759 20,926 21,010 21,052 21,073 21,083 21,088 21,091 21,092 21,093 21,093 21,094 — 37,500 39,746 41,846 43,188 43,860 44,196 44,363 44,447 44,489- 44,510 44,521 44,526 44,529 44,530 44,531 44,531 44,531 Т. 65,625 68,005 69,701 70,416 70,757 70,926 71,010 71,052 71,073 71,083 71,088 71,091 71,092 71,093 71,093 71,094 71,094 Т, 10,983 13,721 14,978 15,675 16,014 16,183 16,266 16,308 16,329 16,340 16,345 16,348 16,349 16,350 16,350 16,350 16,350 Т. 31,250 34,851 36,650 37,378 37,721 37,890 37,974 38,016 38,037 38,048 38,053 38,055 38,057 38,057 38,058 38,058 38,058 Т. 60,938 64,777 65,650 66,011 66,182 66,266 66,308 66,329 66,340 66,345 66,348 66,349 66,350 66,350 66,350 66,350 66,350 Точное решение B3,493) D7,879) G3,493) B1,094) D4,531) G1,094) A6;350) C8,058) F6,350)
Таблица 5.4 Результаты решения примера 5.1 методом последовательной верхней релаксации при « - Номер итерации Начало 1 2 3 4 5 6 7 S 9 . _ 20,313 21,250 22,075 22,804 23,298 23,505 23,490 23,494 23,494 23,493 43, 44, 46, 47, 47 47 47 47 47 47 750 969 230 315 840 878 880 880 880 879 Гз 70,313 71,616 72,673 73,400 73,478 73,495 73,494 73,493 73,493 73,493 "~ т< 15,625 17,781 19,502 20,549 21,044 21,094 21,094 21,094 21,094 21,094 — ¦ —_ т 37 40 43 44 44 44 44 44 44 44 S 500 ,387 ,059 ,311 ,503 ,534 ,533 ,532 ,531 ,531 Т 65 68 70 71 71 71 71 71 71 71 • ,625 757 ,799 ,019 ,090 ,096 ,094 ,094 ,094 ,004 т, 10,938 14,397 15,636 16,237 16,335 16,353 16,351 16,351 16,350 16,350 31 35 37 37 38 38 38 38 38 38 Т. 250 967 ,747 ,980 ,055 ,061 ,058 ,058 ,058 ,058 т. 60,938 66,105 66,218 66,331 66,352 66,352 66,350 66,350 66,350 66,350 — . Точное решение B3,493) D7,879) G3,493) B1,094) D4,531) A6,350) C8,058) F6,350)
120 Глава 5 f)-, то в действительности будет использовано значение где индексы /, / определяют положение узла в вычислительной сетке, k — номер итерации, а со — параметр релаксации, причем /^со^Г2. Скорость сходимости определяется величиной со. При со=1 получаем обычный метод последовательных смещений. В принципе можно найти оптимальное значение со, однако этот вопрос выходит за рамки данной книги. Читателям, интересую- интересующимся этим вопросом, рекомендуем обратиться к работе Эймса [1]. В качестве простой альтернативы можно рекомендо- рекомендовать выбор любого значения со в интервале 1^со^2 с последую- последующим исследованием его влияния на сходимость численного решения. В табл. 5.4 представлены результаты решения примера 5.1 методом последовательной верхней релаксации при ш=1,2. Сравнивая их с результатами, представленными в табл. 5.2 и 5.3, нетрудно убедиться, что этот метод имеет существенные преимущества по сравнению с предыдущими. Хотя в данном разделе в качестве примера рассмотрена двумерная задача, ите- итерационные методы могут быть с неменьшим успехом применены для решения задач с большим числом измерений. Теми же мето- методами можно решать и трехмерные задачи, пользуясь при этом трехмерным вычислительным шаблоном. Перейдем теперь к решению дифференциальных уравнений в частных производных, описывающих эволюционные процессы. 5.7. ПАРАБОЛИЧЕСКИЕ УРАВНЕНИЯ В ЧАСТНЫХ ПРОИЗВОДНЫХ Чтобы проиллюстрировать применение метода конечных раз- разностей для решения параболических дифференциальных уравне- уравнений, начнем с простой задачи. Пример 5.2 Стержень длиной L с постоянным по длине сечением погружен в изоли- изолирующий материал так, что с окружающей средой взаимодействует только его левый торец (см. рис.). В начальный момент времени весь стержень имеет рав- равновесную температуру Т=0, а его левый торец скачком приобретает темпера- температуру Т—100°С Требуется определить, как будет изменяться по времени тем- температура в точках стержня, расположенных на разных расстояниях от егс левого торца. Зависимость температуры от времени и положения по длине стержня опи- описывается следующим уравнением в частных производных: 2 дЧ дТ
Дифференциальные уравнения в частных производных 121 Ъон 100 с Время шшшшшшшштщ I ..,.,.,...;,,.;.,.;.;,,,.,.,.;.,,,;.,.;..........,,..;,,.,.;.,..,.,.,.,,,..,,Г :::8:::::::::;:::::::::::::;;::$:::::::::::::::::::::;:::;:::::::-:::::::::::::::::::' ^:;X;:|:;:;:;:;:;:;:;:;:jKx:v:;:>v:|:;:;:;:::;:;:-:-:;:-:-:':v:v:v:->: где 0<x<L, t>0, a2 — коэффициент температуропроводности стержня, зависящий от его теплопроводности, удельной теплоемкости и плотности. Граничные условия: Т@, г) = Т0+ = 100, ОТ (L, t) дх - = 0. Начальное условие Т(х, 0)=Т0=0. Общность численного решения можно повысить, если привести переменные к безразмерному виду 7-.L 7-— Г Г~Г° Л- — - j б — Г 2 * Т1 71 * Тогда исходное уравнение будет иметь вид (черточки сверху у переменных опущены) д2Т дТ дх2 dt Изменится форма граничных условий Т @, t) = l, —\ ' ==0 и начального условия Т(х, 0)=0. Представив частные производные в разностном виде, получим д2Т дТ „ T{+i,j-2T дх2 dt ~ h2 Здесь производная по х заменена центрально-разностной, а производная по t— правой разностной производной. Отметим, что вычислительная сетка в данном случае не обязательно должна состоять из квадратных ячеек, так как h может и не быть равным k. Приняв r=klh2, получим для Г,-, y + i = 0. Это коиечио-раэиостное выражение справедливо для всех внутренних узлов и позволяет явным образом выразить температуру в момент времени t-}-k через температуру в момент времени /. Такая постановка задачи позволяет обойтись без системы совместных уравнений и, следовательно, не требует при- применения итерационных методов. Полученное решение будет содержать погреш-
122 Глава 5 нести порядка Л2 и k2, поскольку таковы порядки членов, отброшенных при конечно-разностной аппроксимации. В результате рассмотрения данной задачи может создаться впечатление, что величину шага для переменных можно выби- выбирать независимым образом. К сожалению, это не так. В предыдущей главе указывалось, что решения некоторых разностных уравнений могут сильно отклоняться от точного решения, и в этой связи было введено понятие устой- устойчивости. Полученные решеиия дифференциальных уравнений в частных про- производных могут быть расходящимися или колеблющимися. Применительно к рассматриваемой задаче устойчивость решения можно проверить, меняя величину г. При г<Л,Ь решение устойчиво, но может обна- обнаруживать некоторые колебания. Математическое исследование этого факта читатель найдет в работе Сальвадори и Бэрона [13] 1. Хотя при г=0,5 и наблюдаются некоторые колебания решения, удобно выбрать это значение, поскольку тогда рекуррентное соотношение приобретает вид Ясно, что если расстояние между узлами по горизонтали уже выбрано, то расстояние между ними по вертикали не может быть произвольным. Так, если ft=0,2, а /•=0,5, то 4=0,02. На рисунке показана сетка, соответствующая этим параметрам. i i -0,28 , 0,26 i 0,24 i 0,22 . 0,20 i 0,18 I 0,16 ( 0,14 ( 0,12 ( 0,10 ( 0,02 ( 0,06 ^ 0,04 ( 0,02 < 0,00 i 1,0 1,0 1,0 • Фиктивные "V узлы ! 4 1,0 1,0 J.o 1,0 -—k 1.0 I Ф °.5 10.Q I °.° I °.° I o.o lo.o Так как граничное условие и начальное условие в начале координат терпят разрыв, то температуре здесь приписывается значение Т = 0,5 — среднее между двумя возможными значениями. Обычно именно так поступают при ре- решении подобных задач. Нулевой наклон касательной в правой части стержня моделируется введением при х=1,2 линии фиктивных узлов, температура в 1 Соблюдение этого условия устойчивости требует применения очень ма- малых шагов по времени, поэтому для решения уравнения теплопроводности яв- явные схемы практически не используются. Подробнее с вопросом исследования разностных схем можно ознакомиться также по книгам [3*, 5*, 8*].— Прим. ред.
Таблица 5.5 Безразмерные температуры Время 0,00 0,02 0,04 0,06 0,08 0,10 0,12 0,14 0,16 0,18 0,20 i 0 1 1 1 1 1 1 1 1 1 1 Ч ,5000 ,0000 ,0000 ,0000 ,0000 ,0000 ,0000 ,0000 ,0000 ,0000 ,0000 X, 0,0000 0,2500 0,5000 0,5625 0,6250 0,6563 0,6875 0,7070 0,7266 0,7412 0,7559 0 0 0 0 0 0 0 0 0 0 0 * 0000 оооо ,1250 ,2500 ,3125 ,3750 ,4141 ,4531 ,4824 ,5117 ,5361 0 0 0 0 0 0 0 0 0 0 0 X, 0000 0000 ,0000 ,0625 ,1250 ,1719 ,2188 ,2578 ,2969 ,3311 ,3652 х, 0,0000 0,0000 0,0000 0,0000 0,0313 0,0625 0,1016 0,1406 0,1797 0,2188 0,2554 0,0000 0,0000 0,0000 0,0000 0,0000 0,0313 0,0625 0,1016 0,1406 0,1797 0,2188 х. 0,0000 0,0000 0,0000 0,0000 0,0313 0,0625 0,1016 0,1406 0,1797 0,2183 0,2554
124 Глава 5 которых равна температурев узлах при х=0,8. С помощью этой сетки и рекур- рекуррентной формулы можно получить решение для любого момента времени. Результаты решения рассматриваемой задачи приведены в табл. 5.5. 5.8. ГИПЕРБОЛИЧЕСКИЕ УРАВНЕНИЯ В ЧАСТНЫХ ПРОИЗВОДНЫХ Вероятно, наиболее часто встречающимся в инженерной практике видом гиперболического уравнения в частных произ- производных является волновое уравнение, которое описывает раз- различные виды колебаний — колебания струны или мембраны, распространение звуковых волн в жидкости и т. п. В общем виде это уравнение записывается следующим образом: Г2 АР — " Г Ь Г ~ dt2 ' где С — постоянная. В случае свободных поперечных колебаний струны С2 = Т/р, где Т — натяжение струны, ар — ее линейная плотность. С по- помощью метода, аналогичного описанному в предыдущем разделе, выписанное выше дифференциальное уравнение в частных про- производных для колеблющейся струны можно привести к сле- следующему безразмерному виду: Чтобы полностью поставить задачу, это уравнение необходимо дополнить двумя граничными и двумя начальными условиями. Перейдя к конечно-разностной форме с центральными разнос- разностями, получим Fi + i.j—IFi, j-\-Fi-i,j __ Fi,j+i — %F{, j + Fi. j-i h? — p • Если ввести r=klh, то выражение для F!t/+i примет вид Как и в случае параболического уравнения, это выражение до- допускает смещение вперед по времени, не прибегая к итерациям. Однако в отличие от предыдущего последнее рекуррентное соот- соотношение позволяет получить значение F при /=(,-+t лишь при условии, что значения F известны как при t=tj, так и при t= = tt-i. Соотношение сторон сетки определяется величиной г, которая является также мерой устойчивости получаемого реше- решения. В книге Сальвадори и Верона [13] отмечается, что при г>\
Дифференциальные уравнения в частных производных 125 конечно-разностная аппроксимация неустойчива, при г=1 ус- устойчива и конечно-разностное решение совпадает с точным, а при г<1 решение, хотя и устойчиво, однако точность его при уменьшении г убывает \ Выбор значения /•= 1 удобен еще и тем, что при этом упрощается рекуррентное соотношение, при- принимающее вид Пользуясь этой формулой, а также граничными и начальными условиями, можно получить решение подобно тому, как это было сделано в предыдущем разделе. 5.9. ЧИСЛЕННОЕ РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИИ В ЧАСТНЫХ ПРОИЗВОДНЫХ МЕТОДОМ КОНЕЧНЫХ ЭЛЕМЕНТОВ Метод конечных элементов для описания сплошных сред впервые был применен в середине 50-х годов XX столетия и с тех пор завоевал известность исключительно полезного инже- инженерного метода, Он широко применяется в гидродинамике, тео- теории поля, при расчете сложных напряженных состояний и в дру- других областях. О распространенности метода конечных элементов можно судить, например, по работе Норри и де Ври [9], в кото- которой приведено более 7 тыс. ссылок, содержащих указания на его применение в различных областях науки и техники. Хотя метод конечных элементов применяется для решения тех же за- задач, что и метод конечных разностей, основаны они на разных идеях. В методе конечных разностей проводится разностная аппроксимация производных, входящих в дифференциальные уравнения. Математическая основа метода конечных элемен- элементов — вариационное исчисление. Дифференциальное уравнение, описывающее задачу, и соответствующие граничные условия используются для постановки вариационной задачи, которая затем решается непосредственно. С этой точки зрения метод конечных элементов представляет собой неявное применение ме- метода Ритца на отдельных отрезках. В методе конечных элементов физическая задача заменяется кусочно-гладкой моделью. В этом смысле метод конечных элементов позволяет инженеру исполь- использовать свое интуитивное понимание задачи. Чтобы изложить метод конечных элементов во всех подробностях, пришлось бы написать специальный учебник. Здесь мы ограничимся изложе- изложением лишь основ этого метода, практическое значение которого трудно переоценить. Более подробное описание метода конечных элементов можно найти в работах Кука [2] и Зенкевича и Чен- 1 См. также [3*, 5*, 8*].— Прим. ред.
126 Глава 5 Разделение тела на элементы Выбор схемы интерполяции переме- перемещений внутри элементов Определение зависимости между напряжением и деформацией в узлах га [16], указанных в конце главы 1. Что- Чтобы было понятней, о чем идет речь, рассмотрим метод конечных элементов на примере исследования напряжен- напряженного состояния тела, хотя это можно было бы сделать и на других приме- примерах. Основные этапы применения мето- метода конечных элементов указаны на рис. 5.8. Первый этап состоит в разде- разделении тела на малые элементы простой формы, соприкасающиеся в точках, ко- которые называются узлами. Разделение на элементы можно выполнить множе- множеством разных способов, так как выбор размеров, формы и ориентации элемен- элементов целиком определяется представле- представлениями инженера о том, как проще ре- решить данную задачу. Элементы плос- плоского тела имеют обычно треугольную или четырехугольную форму, а элементы трехмерных тел — форму тетраэдров или гексаэдров. Те участки тела, для кото- которых из физических соображений требу- требуется получить более детальную инфор- информацию, разбиваются на большее число мелких элементов. Если физические свойства тела изменяются в точке или вдоль линии, то можно изменять фор- форму, размеры или ориентацию элемен- элементов на этом участке тела. На рис. 5.9 показано разбиение равномерно нагру- нагруженной квадратной пластинки с эллип- эллиптическим отверстием в центре на 26 тре- треугольных конечных элементов. Так как пластинка имеет две оси симметрии, то рассматривается только одна ее чет- четверть. Следует обратить внимание на Рис 5 8 Этапы чис- уменьшение размеров элементов вблизи ленного решения задач ме- эллиптического отверстия. Это позво- тодом конечных элементов, ляет получить более подробную ин- информацию о тех участках пластин- пластинки, на которых велики градиенты напряжений. Как видно из рис. 5.9, обычно нумеруют и элементы, и узлы, так как это х Можно рекомендовать книгу [9*] где, в частности, проводится сравнение метода конечных элементов и метода конечных разностей.— Прим. ред. Вывод уравнений для системы в целом Решение системы линейных уравнений Вычисление значений других величин
Дифференциальные уравнения в частных производных 127 а 16 17 21 ч 15 i >—— \ 8 \ 24 g \ 23 \ \ —-\ / / 10 / 7 /\~" / \ ч / 6 \ V \ 4~^^\ 3 J / / *?14 и —— 5 > 2 Д 22 ^--^ 12 / 4 3 ^ iU X \\ \ 21 \ \ . \ / 13 Л / 25 V / /\ / \ / 20 13 \ * \ , \ / у / 46 ¦ И 2 \ \ 17 11 / 26 \ \ / / 18 \ J9 20 7777777 77/77/7 Рис. 5.9. Пример разбиения на конечные элементы равномерно нагружен- нагруженной квадратной пластинки с эллиптическим отверстием. облегчает ввод исходных данных в программу счета методом конечных элементов. Равномерное нагружение в данном случае моделируется приложением сосредоточенных сил в узлах 21, 20 и 19. Следующий этап применения метода конечных элементов со- состоит в выборе какой-либо простой схемы интерполяции, позво- позволяющей выразить перемещение в любой точке внутри элемента через его значения в узлах. Обычно перемещение задается
128 Глава 5 каким-нибудь простым полиномом. В пределах каждого эле- элемента для интерполяции значений перемещения используются полиномы с коэффициентами, определяемыми в процессе ре- решения. На следующем этапе выписываются зависимости между на- напряжениями и деформациями в узлах всех элементов. На этой стадии с большой пользой может быть использована концепция матрицы коэффициентов влияния. Зная соотношения между напряжениями и деформациями элементов, можно построить такие же соотношения для системы в целом. При этом деформа- деформации соприкасающихся элементов должны быть равны, а силы, действующие в узлах, должны составлять в сумме внешнюю силу, приложенную в той же точке. В результате получается система линейных уравнений вида К! МН*Ь где [К.] — известная матрица жесткости системы, \d\ — вектор перемещений системы, a {R} — вектор нагрузки. Полученная система уравнений содержит довольно много нулевых элементов, так как не каждый узел принадлежит каждому элементу. В слу- случае произвольной деформации каждый из т узлов может иметь п независимых перемещений (например, по х и у в плоском слу- случае). Поэтому матрица жесткости будет иметь размерность птХпт, а векторы деформации и силы — размерность пт. Некоторые значения перемещений непосредственно определяются граничными условиями. Например, для пластины, показанной на рис. 5.9, б, в узлах 5, 6, 15 и 16 равно нулю горизонтальное перемещение, а в узлах 1, 10, 11 и 20 — вертикальное. Извест- Известные значения перемещений можно исключить из системы урав- уравнений и тем самым понизить ее порядок. Можно поступить и иначе, приняв один-из диагональных элементов матрицы жест- жесткости равным какой-либо большой величине, намного превы- превышающей значения других элементов. Этот прием имеет важное преимущество, позволяя сохранить исходную форму системы уравнений, и часто используется при формировании пакетов программ, разработанных на основе метода конечных элементов. Поскольку в данном случае получается «разреженная» система уравнений, для ее решения удобно пользоваться методом после- последовательной верхней релаксации. В результате получают зна- значения перемещений для всех узлов. Получив распределение перемещений, можно с помощью обычных уравнений теории упругости найти распределение напряжений и деформаций. Из сказанного следует, что матричные методы позволяют лучше организовать подготовку программы и решение задачи. Именно поэтому в большей части учебников, в которых изла- излагается метод конечных элементов, изложение начинается с основ
Дифференциальные уравнения в частных производных 129 матричного исчисления. Универсальность метода конечных эле- элементов позволила разработать на его основе программы для ЭВМ, позволяющие решать самые разнообразные задачи. 5.10. ОБЩИЕ РЕКОМЕНДАЦИИ ПО РЕШЕНИЮ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ Поскольку каждому уравнению в частных производных при- присущи свои особенности, а граничные условия делают каждую задачу непохожей на другие, то практически невозможно сфор- сформулировать общие рекомендации, которые были бы полезны при решении таких уравнений. Однако во всех случаях полезно иметь в виду следующие правила: 1. Сначала следует выяснить, какова должна быть точность искомого решения. Если она высока, то для решения данного дифференциального уравнения может потребоваться весьма мел- мелкая сетка или разбиение тела на очень малые элементы. Следует иметь в виду, что конечно-разностные методы, рассмотренные в данной главе, дают погрешность порядка № 1. 2. Затем надо внимательно изучить форму области, в которой отыскивается решение. Очень часто наличие симметрии позво- позволяет уменьшить число узлов сетки в 2, а то и 4 раза. В резуль- результате будет сэкономлено машинное время и потребуется меньший объем памяти. 3. Следует тщательно выбирать начальные значения перемен- переменных. При использовании итерационных методов скорость сходи- сходимости прямо зависит от близости исходных данных к решению. Если хорошее исходное приближение задать не удается, то мо- может оказаться полезным разделить решение задачи на два или более этапов. На первом этапе с помощью весьма грубой сетки или разбиения на очень крупные элементы получают хорошее исходное приближение, а затем уже ищут точное решение на гораздо более мелкой сетке или разбивая тело на мелкие эле- элементы. 4. Следует выбрать метод, более всего подходящий для реше- решения данной задачи. При этом всегда встает вопрос, какой метод выбрать — конечных разностей или конечных элементов? Ответ зависит от того, какая задача решается и какая ЭВМ для этого используется. Помочь в этом деле может табл. 5.6, в которой сравниваются основные характеристики указанных двух мето- методов. 1 Для явной разностной схемы решения уравнения теплопроводности, рас- рассмотренной в этой главе, это утверждение справедливо при k=O(h2).— Прим. ред. 5 № 2913
130 Глава 5 Таблица 5.6 Сравнение характеристик методов конечных разностей и конечных элементов Метод конечных элементов Метод конечных разностей Приближенный метод решения задач, описываемых дифференциальными уравнениями Приближенный метод решения дифференциальных уравнений Включает решение больших «разре- «разреженных» систем уравнений Включает решение больших «раз- «разреженных» систем уравнений Постановка может быть достаточно сложной, с многочисленными вво- вводами и выдачами Постановка довольно проста, со- содержит мало вводов и выдач Весьма велик выбор типов, форм и размеров элементов Обычно требуются правильные сет- сетки. Трудно выбрать экономич- экономичную сетку Структура близка к действительной физической задаче Обычно структура не имеет ниче- ничего общею с физической задачей Позволяет решать задачи с неодно- неоднородным и анизотропным распреде- распределением параметров Плохо приспособлен для решения задач с неоднородным и анизо- анизотропным распределением пара- параметров Позволяет создать универсальные программы, которых довольно мно- Для решения каждой задачи со- составляется своя программа Требует достаточно высокой квали- квалификации и опыта Чтобы получить решение, доста- достаточно описать задачу дифферен- дифференциальным уравнением Каждое решение применимо лишь для конкретной задачи — решения не допускают обобщения Каждое решение применимо лишь для конкретной задачи—реше- задачи—решения не допускают обобщения Представление граничных условий не вызывает затруднений Представление граничных усло- условий связано с трудностями
Дифференциальные уравнения в частных производных 131 ЗАДАЧИ 5.1. Уравнение Лапласа для трех независимых переменных в прямоуголь- прямоугольной системе координат записывается в виде Как выглядит его вычислительный шаблон? 5.2. Какие изменения надо внести в вычислительный шаблон для бигар- монического оператора, чтобы учесть неправильный характер границы, пока- показанной на рисунке? о A*,O 5.3. Поперечная деформация ы тонкой пластинки, нагруженной давле- давлением р, определяется уравнением A2w=p/D, где изгибная жесткость D Et3 12A— v2) * Здесь Е — модуль упругости, t — толщина пластинки, v — коэффициент Пуас- Пуассона. Пластинка, защемленная по краям, как показано на рисунке, изготов- изготовлена из стального (?=210 ГПа, v=0,3) листа толщиной ^=0,005 м и равно- равномерно нагружена давлением р= 100 Па. Подготовить программу и с ее помощью рассчитать прогиб пластинки. 5*
132 Глава 5 1,ом 1,0 м 0,5м 1 0,5М 5.4. Поперечная деформация мембраны w описывается иначе, чем деформа- деформация пластинки, так как в ней отсутствуют изгибные и сдвиговые напряжения, и определяется уравнением d2w . d2w — р ЭХ2 "Т" Qy2 ~~ ' где р — давление, Т — напряжение, отнесенное к единице длины. При отно- относительно малых деформациях напряжение в мембране можно считать постоян- постоянным. При Т= 107 Н/м и р= 104 Па подготовить программу для расчета прогиба мембраны, представленной на рисунке к задаче 5.3. 5.5. Две трубы, по которым течет жидкость с температурой 90°С, заклю- заключены в короб квадратного сечения, изготовленный из изоляционного материала. Температура на поверхности короба 30°С. Пренебрегая контактной теплопро- теплопроводностью, найти и построить изотермы, соответствующие Г=40, 50, 60, 70 и 80°С. т 5СМ 5СМ 5СМ jL 20 см Трубка диаметром Sea 5.6. Уравнение Навье — Стокса, описывающее установившееся течение вязкой жидкости в трубе произвольного поперечного сеченин, имеет вид &2w d2w _ 1 dp_ Их2 *~ду*~~\И1г ' где w — скорость жидкости (на стенках трубы равна нулю), fi — коэффициент вязкости, dpldz — производная давления по длине трубы. Приняв dp/dz= = —5000 Па/м и |i= 1,5-10-4Н-с/м2, подготовить программу для расчета рас- распределения скоростей в поперечном сечении трубы, показанном на рисунке.
Дифференциальные уравнения в частных производных 133 Юса* 10 ем т 5СМ 1 5.7. Решить еще раз пример 5.2, считая, что правый торец стержня, имеющего постоянное поперечное сечение, соприкасается с термостатом, температура которого 0°С. Сколько времени понадобится, чтобы в стальном стержне длиной 10 см установилось постоянное распределение температуры? 5.8. Продольные колебания бруска описываются волновым уравнением д2и _ р д*к дхг ~ Е dt2 ' в котором и — продольное перемещение, Ё — модуль упругости, ар — плот- плотность материала бруска. Брус имеет длину L и защемлен по концам. Захватив брус в центре, его деформируют так, что продольное перемещение становится равным ищ. Затем брус освобождают из состояния покой. Подготовить програм- программу для расчета деформации бруса. Чтобы численное решение обладало большей общностью, часто полагают При этом волновое уравнение приобретает вид dhi _ дЧ д~х2 ~ дТг 6iS. 0 квадратной Пластинке со стороной 10 см проделано отверстие диа- диаметром 1 см. Пластинка растягивается равномерно распределенной нагрузкой 10 кПа. Определить, в каком Месте пластинки напряжение Достигает макси- максимума. Воспользоваться для этого методом конечных элементов й кйКвй-либо О ' .11 , -4 — ... . ^»
134 Глава 5 общей программой расчета, в которой используется этот метод. Каков коэф- коэффициент концентрации напряжений в пластинке? 5.10. Где будет располагаться точка максимума напряжений в пластинке (см. задачу 5.9), если подвергнуть ее не растяжению, как в задаче 5.9, а изги- изгибу? Каков при этом коэффициент концентрации напряжений? ]0кМ> (растяжение) 10 кПа (сжатие) Шипа (сжатий ЛИТЕРАТУРА 1. Ames W. F., Numerical Methods for Partial Differential Equations, N. Y. Barnes and Noble, 1969. 2. Cook R. D., Concepts and Applications of Finite Element Analysis, N. Y., Wiley, 1974. 3. Greenspan D., Introduction to Partial Differential Equations, N. Y., McGraw-Hill, 1961. 4. Killer H. В., On Some Iterative Methods for Solving Elliptic Difference Equations, Quarterly of Applied Mathematics 16, No. 10 A958). 5. Ketter R. L., Prawel S. P., Modern Methods of Engineering Computation, N. Y., McGraw-Hill, 1969. 6. Liebmann H., Dieangenaherte Ermittlung Harmonischer Funktionen und konformer abbildung, Sitzber. Math. Physik, Kl. Bayer. Akad. Wiss. p. 385 A918). 7. Machine Desigh. A Basic Course in Numerical Methods and FORTRAN Programming, Reprinted from Machine Design, October 26, 1967 — June 20, 1968. 8. Moon P., Spencer D. E., Field Theory for Engineers, N. Y., Van Nostrand, 1971. 9. Norrie D., de Vries G., Finite Element Bibliography, N. Y., Plenum Press, 1976. 10. Pall G. A., Introduction to Scientific Computing, N. Y., Appleton-Century- Crofts, 1971. 11. Pilkey W., Saczalski K., Schaeffer H., Structural Mechanics Computer Programs—Surveys, Assessments and Evailability, University of Virginia Press, Charlottesville, 1974. 12. Ralston A., Wilf H. S., Mathematical Methods for Digital Computers, N. Y., Wiley, 1967. 13. Salvadori M. G., Baron M. L., Numerical Methods in Engineering, Englewood Cliffs, N. J., Prentice-Hall, 1961. 14. Southwell R. V., Relaxation Methods in Theoretical Physics, London, Oxford University Press, 1946. 15. Young D. M., Trans, of Am. Math. Soc. No. 16, p. 209 A968). 16. Zienkiewicz O. C, Cheung Y. K-, The Finite Element Method in Structural and Continuum Mechanics, N. Y., McGraw-Hill, 1967. [Имеется перевод: Зенкевич О. К., Ченг И. К. Метод конечных элементов в теории сооруже- сооружений и в механике сплошных сред.— М.: Недра, 1974.]
Глава 6 Оптимизация. Часть I 6.1. ВВЕДЕНИЕ Методы оптимизации позволяют выбрать наилучший вариант конструкции из всех возможных вариантов. В последние годы этим методам уделялось большое внимание, и в результате был разработан целый ряд высокоэффективных алгоритмов, позво- позволяющих найти оптимальный вариант конструкции при помощи ЭЦВМ. В данной главе излагаются основы теории оптимизации, рассматриваются принципы, лежащие в основе построения алго- алгоритмов оптимальных решений, описываются наиболее известные алгоритмы, анализируются их достоинства и недостатки. 6.2. ОСНОВЫ ТЕОРИИ ОПТИМИЗАЦИИ Термином «оптимизация» в литературе обозначают процесс или последовательность операций, позволяющих получить уточ- уточненное решение. Хотя конечной целью оптимизации является отыскание наилучшего, или «оптимального», решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. Поэтому под оптимизацией понимают скорее стремление к совершенству, которое, возможно, и не будет достигнуто. Рассматривая некоторую произвольную систему, описывае- описываемую т уравнениями с я неизвестными, можно выделить три ос- основных типа задач. Если т=п, задачу называют алгебраической. Такая задача обычно имеет одно решение 1. Если т>п, то задача переопределена и, как правило, не имеет реше- решения. Наконец, при т<л задача недоопределена и имеет бесконечно много решений. В практике проектирования чаще всего приходится иметь дело с задачами третьего типа. При этом инженеру помогает интуиция, позволяющая сформулировать ус- условия для выбора оптимального варианта. Очевидно, что изде- изделие или технологический процесс, выгодно отличающееся от аналогичных изделий и процессов, будет пользоваться на рынке 1 Это справедливо лишь для задач, описываемых линейными уравнения- уравнениями.— Прим. ред.
136 Глава 6 большим спросом. В этом и состоит смысл поиска оптимальных решений. Прежде чем приступить к обсуждению вопросов оптимиза- оптимизации, введем ряд определений. Проектные параметры 1 Этим термином обозначают независимые переменные пара- параметры, которые полностью и однозначно определяют решаемую задачу проектирования. Проектные параметры—неизвестные величины, значения которых вычисляются в процессе оптими- оптимизации. В> качестве проектных параметров могут служить, любые основные или производные величины, служащие, для количест- количественного описания системы. Так, это могут быть неизвестные зна- значения длины, массы, времени, температуры. Число проектных параметров характеризует степень сложности данной задачи проектирования. Обычно число проектных параметров обозна- обозначают через п, а сами проектные параметры через х, с соответст- соответствующими индексами. Таким образом п проектных параметров данной задачи будем обозначать через Х\, Х2, Хз, . . ., Хп. Целевая функция Это — выражение, значение, которого инженер стремится сделать максимальным или минимальным. Целевая функция 2 позволяет количественно сравнить два альтернативных решения. С математической точки зрения целевая функция описывает не- некоторую (л+1)-мерную поверхность. Ее значение определяется проектными параметрами М=М{хи х%, . . ., хп). Примерами целевой функции, часто встречающимися в инженер- инженерной практике, являются стоимость, вес, прочность, габариты, КПД. Если имеется только один проектный параметр, то целе- целевую функцию можно представить кривой на плоскости (рис. 6.1). Если проектных параметров два, то целевая функция будет изоб- изображаться поверхностью в пространстве трех- измерений (рис. 6.2). При трех и более проектных параметрах поверхности, задавае- 1 В оригинале — design variables. В оптимизационных задачах, связан- связанных с экономикой, решение принято называть планом, а переменные — пара- параметрами плана. В данной книге, посвященной инженерным задачам проекти- проектирования, кажется более подходящим термин «проектные параметры.».— Прим,. ред. 2 Другое, менее распространенное название — критерий качества.— Прим.. ред.
Оптимизация. Часть I 137 Продолжитёльн&ст эксШлцштцш (гфоектнш параметр) Рис. 8.1. Одномерная целевая функция. Ряс, 6.2. Двумерная целевая функция.
138 Глава 6 мые целевой функцией, называются гиперповерхностями и не поддаются изображению обычными средствами. Топологические свойства поверхности целевой функции играют большую роль в процессе оптимизации, так как от них зависит выбор наиболее эффективного алгоритма. Целевая функция в ряде случаев может принимать самые не- неожиданные формы. Например, ее не всегда удается выразить в замкнутой математической форме, в других случаях она может представлять собой кусочно-гладкую функцию. Для задания целевой функции иногда может потребоваться таблица техниче- технических данных (например, таблица состояния водяного пара) или может понадобиться провести эксперимент. В ряде случаев проектные параметры принимают только целые значения. При- Примером может служить число зубьев в зубчатой передаче или число болтов во фланце. Иногда проектные параметры имеют только два значения —• да или нет. Качественные параметры, такие как удовлетворение, которое испытывает приобретший из- изделие покупатель, надежность, эстетичность, трудно учитывать в процессе оптимизации, так как их практически невозможно охарактеризовать количественно. Однако в каком бы виде ни была представлена целевая функция, она должна быть одно- однозначной функцией проектных параметров. В ряде задач оптимизации требуется введение более одной целевой функции. Иногда одна из них может оказаться несов- несовместимой с другой. Примером служит проектирование самоле- самолетов, когда одновременно требуется обеспечить максимальную прочность, минимальный вес и минимальную стоимость. В та- таких случаях конструктор должен ввести систему приоритетов и поставить в соответствие каждой целевой функции некоторый безразмерный множитель. В результате появляется «функция компромисса», позволяющая в процессе оптимизации пользо- пользоваться одной составной целевой функцией. Поиск минимума и максимума Одни алгоритмы оптимизации приспособлены для поиска максимума, другие — для поиска минимума. Однако независимо от типа решаемой задачи на экстремум можно пользоваться од- одним и. тем же алгоритмом, так как задачу минимизации можно легко превратить в задачу на поиск максимума, поменяв знак целевой функции на обратный. Этот прием иллюстрируется рис. 6.3. Пространство проектирования Так называется область, определяемая всеми п проектными параметрами. Пространство проектирования не столь велико, как может показаться, поскольку оно обычно ограничено рядом
Оптимизация. Часть I 139 У Минимум 1 I Максимум Рис. 6.3. Изменением знака целевой функции на противоположный задача на максимум превращается в задачу на минимум. условий, связанных с физической сущностью задачи. Ограниче- Ограничения могут быть столь сильными, что задача не будет иметь ни одного удовлетворительного решения. Ограничения делятся на две группы: ограничения — равенства и ограничения — нера- неравенства. Ограничения — равенства Ограничения — равенства — это зависимость между проект- проектными параметрами, которые должны учитываться при отыска- отыскании решения. Они отражают законы природы, экономики, права, господствующие вкусы и наличие необходимых материалов. Число ограничений — равенств может быть любым. Они имеют вид Сх (хх, х2, • • •, хп) = и, С2 (xlt х2, ..., хп) = О, Cj (*lt x2, ..., х„) = 0. Если какое-либо из этих соотношений можно разрешить относи- относительно одного из проектных параметров, то это позволяет исклю- исключить данный параметр из процесса оптимизации. Тем самым уменьшается число измерений пространства проектирования и упрощается решение задачи.
140 Ограничения — неравенства Это особый вид ограничений, выражаемых неравенствами. В общем случае их может быть сколь угодно много, причем все они имеют вид «1 < гх (хи х2, ..., xj < Zt Ч < rk (xlt хг, ..., хп) < Zk. Следует отметить, что очень часто в связи с ограничениями оп- оптимальное значение целевой функции достигается не там, где ее поверхность имеет нулевой градиент. Нередко лучшее реше- решение соответствует одной из границ области проектирования. Локальный оптимум Так называется точка пространства проектирования, в ко- которой целевая функция имеет наибольшее значение по сравне- сравнению с ее значениями во всех других точках ее ближайшей ак- Mtx\ Локальные вптмут- Рис. 6.4. Произвольная целевая функция может иметь несколько локаль- локальных оптимумов. рестности \ На рис. 6.4 показана одномерная целевая функция, имеющая два локальных оптимума. Часто пространство проекти- проектирования содержит много локальных оптимумов и следует соблю- соблюдать осторожность, чтобы не принять первый из них за опти- оптимальное решение задачи. 1 Считается, что оптимальное решение соответствует максимуму целевой функции, этому условию соответствует вся принятая в дальнейшем терминоло- терминология.— Прим. ред.
Оптимизация. Часть I 141 Глобальный оптимум Глобальный оптимум — это оптимальное решение для всего пространства проектирования. Оно лучше всех других решений, соответствующих локальным оптимумам, и именно его ищет конструктор. Возможен случай нескольких равных глобальных оптимумов, расположенных в разных частях пространства проектирования. Как ставится задача оптимизации, лучше всего показать на примере. Пример 6.1 Пусть требуется спроектировать прямоугольный контейнер объемом 1 м3, предназначенный для перевозки неупакованного волокна. Желательно, чтобы на изготовление таких контейнеров затрачивалось как можно меньше материала (при условии постоянства толщины стенок это означает, что площадь поверх- поверхности должна быть минимальной), так как при этом он будет дешевле. Чтобы контейнер удобно было брать автопогрузчиком, его ширина должна быть не менее 1,5 м. Сформулируем эту задачу в виде, удобном для применения алгоритма оптимизации. Проектные параметры: хъ х2, х3. Целевая функция (которую требуется минимизировать) — площадь боковой поверхности контейнера: A=2(x1x2+xix3+x1x3), м2. Ограничение — равенство: Объем = х1х2х3= 1 м3. Ограничение — неравенство: Внимательный конструктор заметит, что ограничение — равенство благодаря своей простоте позволяет уменьшить размерность задачи. Действительно, если х3= 1/хгх2, то ха можно исключить из проектных параметров. Формулируя вновь задачу, имеем: Проектные параметры xlt x2. Целевая функция: Х1 Х2
142 Глава 6 Ограничение — равенство: нет. Ограничение — неравенство: х{^\,Ъ м. После того как задача сформулирована стандартным способом, ее можно решать любым методом. Если воспользоваться обычным определением миниму- минимума и принять дА ^ дА Q дхг ~~ дх2 ' то будет получен результат: xi=x%=x?f= 1 м. Однако при таком решении не удовлетворено ограничение — неравенство и, следовательно, оно неприемлемо. Этот пример служит иллюстрацией важного обстоятельства, связанного с опти- оптимизацией и состоящего в том, что в связи с введением дополнительных условий оптимальное решение может соответствовать точке, в которой локальный градиент не равен нулю. Чтобы полностью решить эту задачу, придется воспользоваться методами, изложенными в следующей главе. 6.3. МЕТОДЫ ОДНОМЕРНОГО ПОИСКА Поиск экстремума можно сравнить с поиском в озере самого глубокого места. При каждом замере лотом получается новая ин- информация. Если в последующем замере глубина оказалась _Начальный интервал_ неопределенности I Проектный параметр Рис. 6.5. Интервал неопределенности. больше, чем в предыдущем, то полученная информация полезна. Напротив, если в последующем замере получена меньшая глу- глубина, чем в предыдущем, то результат не дает полезной инфор- информации и затраченные на его получение усилия были напрасными. Разрабатывая методы поиска, стремятся найти экстремум как можно быстрей, сделав как можно меньше бесполезных попы- попыток. В данном разделе рассматриваются методы одномерного поиска максимума целевой функции. При этом будем предпола- предполагать, что исследуемые целевые функции являются «унимодаль- «унимодальными», т. е. имеют в рассматриваемом интервале только один
Оптимизация. Часть I 143 пик. В этом случае, вычисляя последовательно целевую функ- функцию при возрастающих значениях проектного параметра, мы получаем все большие ее значения, пока не достигнем пика. Суженный интервал неопределенности ' i Проектный параметр Рис. 6.6. Сужение интервала неопределенности путем вычисления двух значений целевой функции. Пройдя пиковое значение, при каждом следующем значении проектного параметра будем получать меньшее значение целевой функции. В действительности такое ограничение на характер поверхности, задаваемой целевой функцией является не столь жестким, как может показаться, так как многие задачи, с кото- которыми инженер сталкивается в своей практике, оказываются «уни- «унимодальными». Задачу одномерной оптимизации можно поставить следую- следующим образом. Значения проектного параметра х должны быть заключены в интервале а^х^Ь. Приступая к решению задачи, мы ничего не знаем о целевой функции, кроме того что она уни- унимодальна. Интервал значений х, в котором заключен оптимум, будем называть «интервалом неопределенности». В начале про- процесса оптимизации этот интервал имеет длину Ь—а (рис. 6.5). Вычислив значения целевой функции Мг и Мг при значениях хг и х2 в указанном интервале, сузим интервал неопределен- неопределенности (рис. 6.6). Существует несколько способов систематиче- систематического сужения интервала, которые излагаются ниже. Общий поиск Очевидно, наиболее естественным способом сужения интер- интервала неопределенности для одномерной унимодальной функции является деление его на несколько равных частей с последую- последующим вычислением значений целевой функции в узлах получен-
144 Глава 6 ной сетки (рис. 6.7). В результате интервал неопределенности сужается до двух шагов сетки. Обычно говорят о дроблении ин- интервала неопределенности, которое характеризуется коэффици- коэффициентом /. Разделив интервал неопределенности на N частей, по- получим N-\-\ узел, и тогда f 2 Чтобы получить значение /=0,01, потребуется вычислить целе- целевую функцию в 199 точках, а при /=0,001 УУ=1999. Ясно, что эффективность этого метода при уменьшении интервала неопре- неопределенности быстро падает. Сам собой напрашивается другой Суженный интервал Неопределенности ¦г, Рис. 6.7. Метод общего поиска. Ь Проектный параметр путь: чтобы получить /=0,01, вычислить сначала функцию в 19 точках и получить /=0,1, а затем, вычислив еще 19 значе- значений функции на сокращенном интервале неопределенности, по- получить /=0,01, сделав при этом всего 38, а не 199 вычислений. Таким образом, при некоторой изобретательности эффектив- эффективность поиска можно резко повысить. Деление интервала пополам Пользуясь тем же приемом, но вычисляя значения функции в подынтервалах неодинаковое число раз, можно дополнительно повысить эффективность поиска. Вычисляя N значений функции на i последовательно сужаемых интервалах, получим для коэф- коэффициента дробления интервала неопределенности f=(
Оптимизация. Часть I 145 При таком методе поиска целевую функцию приходится вычис- вычислять J раз, причем J=Ni. Весьма заманчиво найти оптималь- оптимальное значение N, при котором J при заданном / минимально. 6,0 12 3 4 Число вычислений N Рис. 6.8. Определение оптимального числа вычислений целевой функции при применении метода деления интервала пополам. С помощью соотношения i=JIN и выражения для интервала неопределенности можно найти /: J = _N_\n(\lf) ¦Q. Суженный интервал неопределенности 1 2 з Проектный параметр Рис. 6.9. Первый шаг при применении метода деления интервала пополам. Если нанести значения /Лп-т-на график (рис. 6.8), оказывается, что минимум расположен где-то вблизи N=3. Так как функция всегда вычисляется целое число раз, то в качестве оптимального примем значение N=3. При этом на каждом интервале /=0,5.
146 Глава 6 Поскольку интервал неопределенности делится каждый раз надвое, то метод и получил название метода деления интервала пополам. На рис. 6.9 показано, как три первых вычисленных зна- значения функции позволяют сузить интервал неопределенности вдвое. Замечаем далее, что значение целевой функции в середине нового интервала уже известно. Поэтому для завершения поиска на следующем этапе потребуется вычислить только два (вместо трех) значения целевой функции. Это преимущество рассматри- рассматриваемого метода сохраняется и в дальнейшем. В общем случае коэффициент дробления интервала неопределенности при ЛГ^З составляет * !_ / ЛГ-1 ' Метод дихотомии Выше предполагалось, что значения целевой функции вы- вычисляются при постоянном приращении проектного параметра. Если снять это ограничение, то эффективность поиска можно по- повысить. Как уже отмечалось, вычисление целевой функции в двух I I а Проектный параметр Рис. 6.10. Обозначения, используемые в методе дихотомии. точках интервала неопределенности позволяет его сузить. Мож- Можно таким образом выбрать эти точки, что интервал неопределен- неопределенности будет минимальным. На рис. 6.10 показаны обозначения, используемые в этой схеме. Если значение целевой функции при Хх больше, чеод при х2, то новый интервал неопределенности равен Zi=2ri+22. В противном случае он определяется выраже- выражением Z2=22+23. Задача состоит в том, чтобы одновременно ми-
Оптимизация. Часть I 147 нимизировать Zy и Z2, удовлетворив условиям г^>0, 22>0, 23>0. Из равенства можно исключить 22. Тогда Z—23=min, Z—z1=m\n. Так как величина Z задана, то правые части этих уравнений бу- будут тем меньше, чем больше г± и zs. Следовательно, оптимум со- соответствует условию 2i=23=0,5Z. Но тогда z2=0, что противоречит условию 22>0. Пусть 22 имеет некоторое очень малое значение е. Тогда из Zi и 23 вычтем по е/2. В результате после вычисления первой пары I I I Интервал Iнеопределенности I Проектный параметр Рис. 6.11. Метод дихотомии. значений целевой функции при близких значениях х интервал неопределенности сузится, как показано на рис. 6.11, и коэф- коэффициент дробления будет равен /= т + Т • В пределе, при e-vO, /-*-V2. В дальнейшем при использовании метода дихотомии выполняются те же операции, что и при ис- использовании метода деления интервала пополам. Отметим, однако, что для достижения одинаковых сужений интервала неопределенности метод дихотомии требует вычисления целевой функции в точках на одну меньше.
148 Глава 6 Метод золотого сечения Из каждых трех значений целевой функции, вычисленных в интервале неопределенности, в дальнейшем используются только два, а третье не дает дополнительной информации и в дальнейшем не используется. В методе золотого сечения целевая функция вычисляется в точках интервала неопределенности, расположенных таким образом, чтобы каждое вычисленное зна- значение целевой функции давало новую полезную информацию. I I -*2" ' a & b Проектный параметр Рис. 6.12. Обозначения, используемые в методе золотого сечения. Сущность этого метода состоит в следующем. Интервал неопре- неопределенности делится на две неравные части так, что отношение длины большого отрезка к длине всего интервала равно отноше- отношению длины меньшего отрезка к длине большего отрезка. На рис. 6.12 показан интервал неопределенности Z, состоящий из отрезков 2i и 22, отношение длин которых определяется правилом золотого сечения Zl Z2 Кроме того, z1+z2=Z. Из первого уравнения следует zl—Zz2. Подставляя сюда значение Z из второго уравнения и деля обе части на z\, получаем / \ в Решая это квадратное уравнение, находим для положительного корня значение ig. = -l+>/ =0618| На рис. 6.13 показано деление интервала неопределенности в этом отношении и нанесены соответствующие значения целевой
Оптимизация. Часть I 149 функции, которые позволяют уменьшить интервал неопределен- неопределенности в 1/0,618 раза. На этой стадии еще не видны преимущества метода золотого сечения по сравнению с методом дихотомии, однако они явно проявляются при дальнейшем делении интерва- интервала, так как оказывается, что одно из значений целевой функции, которое требуется вычислить на следующем шаге, уже известно. Новыйинтервал I w j Проектный параметр Рис. 6.13. Метод золотого сечения. Поэтому, чтобы уменьшить неопределенность, еще в 1/0,618 раза, потребуется дополнительно вычислить только одно значение це- целевой функции в точке, определяемой правилом золотого сече- сечения. При я>2 эффективность метода золотого сечения выше, чем у метода дихотомии, так как при каждом последующем вы- вычислении целевой функции интервал неопределенности сокра- сокращается в 1/0,618 раза. После вычисления N значений целевой функции коэффициент дробления интервала неопределенности составляет / = 0,618"-!. Метод золотого сечения позволяет подметить интересную законо- закономерность: наибольшее сокращение последующих интервалов неопределенности достигается при вычислении целевой функции в точках, равноудаленных от его центра. Если поступать таким образом и каждый раз, вычисляя целевую функцию, сокращать интервал неопределенности, то будут справедливы следующие соотношения: \<J<N, где Zj—длина интервала неопределенности после вычисления /-го значения целевой функции. Отметим, что помимо метода
150 Глава 6 золотого сечения существуют и другие методы поиска, основан- основанные на вычислении.целевой функции в точках, расположенных симметрично относительно центра интервала неопределенности. Для этих точек справедливы те же соотношения. Метод Фибоначчи Хотя метод золотого сечения и обладает высокой эффектив- эффективностью, ясно, что он не является оптимальным при заданном числе вычислений целевой функции. Если конструктору заранее известно, что он сможет использовать лишь два значения целе- целевой функции, то он, конечно, предпочтет метод дихотомии, кото- который позволяет уменьшить интервал неопределенности сразу вдвое, а не в 1/0,618 раза, как метод золотого сечения. Если есть возможность в процессе поиска оптимума изменять расположе- расположение точек, в которых вычисляются значения целевой функции, то можно соединить преимущества симметричного расположе- расположения точек, о которых говорилось выше, с преимуществами ме- метода дихотомии и построить оптимальный алгоритм поиска. Пусть Zn — длина интервала неопределенности после N-to шага. Условие симметрии имеет вид Zj.^Zj.i + Zj, \<J<N, а условие вычисления последнего значения целевой функции на полученном методом дихотомии интервале б записывается в виде ZJV_1=2ZJV_e. Из этих двух соотношений, возвращаясь назад, можно найти требуемую величину любого промежуточного интервала неопре- неопределенности и тем самым найти точки, в которых вычисляется целевая функция. Например, v-i= 5ZN— 2e и ZA,_4 = 8ZA,—3e. Общее выражение для произвольного интервала неопределен- неопределенности имеет вид где коэффициенты Fу называются числами Фибоначчи и опреде- определяются следующим образом: _2 при /( = 2,3, .... В табл. 6.1 приведены некоторые числа Фибоначчи. В общем слу- случае величину последнего интервала неопределенности можно
Оптимизация. Часть I 151 выразить в виде :e. В пределе при е-МЗ нижняя граница определяется величиной наименьшего интервала неопределенности, которую можно по- получить при заданном числе вычислений целевой функции. Таблица 6.1 Числа Фибоначчи К 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 Применяя метод Фибоначчи, прежде всего решают, сколько значений целевой функции N может быть использовано. Затем, зная величину интервала неопределенности, выбирают распре- распределение этих значений N в нем. Так как Z1=Z0—l, то сначала вычисляют целевую функцию в точках, расположенных на рас- расстояниях Z2 от противоположных концов исходного интервала. В этом случае где е — наименьшее приращение х, при котором значения целе- целевой функции отличимы друг от друга. На следующем шаге вы- выбирают величину смещений Z3 относительно Z8. В дальнейшем
152 Глава 6 сохраняют подходящее значение интервала и повторяют процесс до тех пор, пока не будет вычислено N-e значение целевой функ- функции. 6.4, СРАВНЕНИЕ МЕТОДОВ ОДНОМЕРНОГО ПОИСКА Наилучшими критериями сравнения пяти методов поиска, описанных Выше, являются их эффективность и универсальность. Под эффективностью алгоритма обычно понимают число вычис- вычислений функции, необходимое для достижения требуемого суже- сужения интервала неопределенности. Из табл. 6.2 следует, что луч- лучшим в этом отношении является метод Фибоначчи, а худшим — метод общего поиска. Конструктор иной раз неохотно прибегает к методу Фибоначчи, так как при его применении требуется за- заранее задать число вычислений значений функции. Однако он может воспользоваться методом золотого сечения. Как правило, оказывается, что методы Фибоначчи и золотого сечения, обла- обладающие высокой эффективностью, наиболее подходят для ре- решения одномерных унимодальных задач оптимизации. Универсальность алгоритма означает, что его можно легко применить для решения самых разнообразных задач. В этом от- отношении метод Фибоначчи, видимо, уступает другим, так как требует отдельного вычисления положения точек, в которых будут определяться значения целевой функции на каждом но- новом шаге. Этим приходится расплачиваться за повышение эф- эффективности метода. С точки зрения универсальности малоэф- малоэффективный метод общего поиска имеет по крайней мере одно преимущество — его можно с успехом применять и для неуни- неунимодальных функций, если они достаточно гладкие. Нередко за- заранее не известно, является ли рассматриваемая целевая функ- функция унимодальной. В Таких случаях следует воспользоваться несколькими разными алгоритмами и посмотреть, дают ли они все один и тот же оптимум. Отсюда следует важный вывод, ко- который следует иметь в виду, решая задачи оптимизации: не су- существует универсального алгоритма, который позволял бы ре- решать любые задачи. Решая сложные задачи оптимизации, сле- следует пользобаться разными методами, так как это позволяет увеличить долю удачных решений. 6.5. ИМЕЮЩИЕСЯ ПРОГРАММЫ ОДНОМЕРНОГО ПОИСКА НА ЯЗЫКЕ ФОРТРАН На практике конструктор может и не составлять собственных программ оптимизации для одномерного поиска, а воспользо- воспользоваться уже имеющимся математическим обеспечением. Время и усилия, затраченные на использование готовой проверенной
Таблице 6.2 Сравнение методов одномгрного поиска по значениям коэффициента дрзбленчя интервала неопределенности /1 Число вычислений целевой функции N 1 2 3 4 5 6 7 8 9 10 11 12 J3 14 15 1.6 17 18 19 20 Общий понс:^ 1,0 0,667 0,500 0,400 0,333 0,286 0,250 0,222 0,200 0,182 0,167 0,154 0,143 0,133 0,125 0,118 0,111 0,105 0,100 0,095 Деление интервала пополам 1,0 — 0,500 — 0,250 — 0,125 — 0,0625 — 0,0312 — 0,0156 — 0,00781 — 0,00391 — 0,00195 — Метод дихотомил 1,0 0,500 — .0,250 — .0,125 — 0,0625 — 0,0312 0,0156 0,00781 0,00391 — 0,00195 — 0,000976 Метод золотого сечения 1,0 0,618 0,382 0,236 0,146 0,090 0,056 0,0345 0,0213 0,0132 0,00813 0,00502 0,00311 0,00192 0,00119 0,000733 0,000453 0,000280 0,000173 0,000107 Метод Фибоначчи 1,0 0,500 0,333 0,200 0,125 0,077 0,048 0,0294 0,0182 0,0112 0,00694 0,00429 0,00265 0,00164 0,00101 0,000626 0,000387 0,000239 0,000148 0,0000913 > Все величины округлены до трех значащих цифр.
154 Глава 6 программы на языке Фортран, обычно оправдываются. В табл 6.3. приведены основные характеристики имеющихся программ Таблица 6.3 Разработанные программы одномерной оптимизации на языке Фортран Наименование программы СОМВ1 GOLD1 ZXFIB Разработчик С. Р. Мишке [5], Университет шт. Ай- Айова То же Международная мате- матико-статигтиче- ская библиотека [7] Применяемый метод Общего поиска Золотого сечения Фибоначчи Особенности и ограничения /Ss 0,001 — — решения задач одномерной оптимизации, написанных на языке Фортран. Дополнительные сведения можно найти в работах, указанных в конце глави. Пример 6.2 В современных погрузочных машинах часто применяется ползунково- кривошипнын механизм с возвратно-поступательно движущимся ползуном, являющимся частью гидравлического или пневматического цилиндра, при помощи которого отклоняется стрела. Такой механизм показан на рисунке. Его проектирование включает выбор оптимальных геометрических характери- характеристик, обеопечивающих надежную работу механизма при любом положении его частей. Тяк как силовой цилиндр является самым дорогим элементом подъем- подъемного механизма, то выбор оптимума в этой части проекта означает, что надо минимизировать пиковое усилие в цилиндре во всем диапазоне движения. Оче- Очевидно, при этом снизится и стоимость машины в целом. Выберем исходные данные для проектирования показанного на рисунке механизма, фиксировав точки крепления гидравлического цилиндра при велн-
Оптимизация. Часть I 155 чнне поднимаемого груза W=1500 кг, длине стрелы L=3 м н следующих ограничениях на амплитуду движений: = 80°, Smax=l,8M. Задача состоит в том, чтобы спроектировать механизм, который мог бы занимать указанные начальное и конечное положения, развивая при этом минимальное пиковое усилие Т в цилиндре в диапазоне значений фтт-^Ф^ <Фтах- (Отметим, что задача минимизации максимального значения некоторой величины на заданном ннтервале часто встречается в инженерной практике и называется задачей на «минимакс».) Проектными параметрами показанного на рисунке механизма являются независимые геометрические величины а, Ь и р. Связь между линейными гео- геометрическими параметрами и углами можно найти по теореме косинусов где K1=2ab, а /С2=я2+&2- Так как вес поднимаемого груза W и длина стрелы L известны заранее, то из условия равновесия можно найти усилие в цилиндре Т: ab sin Теперь можно сформулировать задачу в стандартном виде: Проектные параметры: а, Ь, р. Целевая функция (минимум которой требуется найти): /3=0+7 Ограничения — равенства: COS (р + фтш)-ЛГ2 = ~ С помощью этих ограничений можно исключить два проектных параметра нз трех. Сделаем это следующим образом. Если параметр Р известен, то нз выписанных выше равенств найдем с2 . с2 COS )—COS
156 Глава 6 Так как К\=2аЬ, а К^—а%-\-Ьг, то а и Ь можно выразить в виде Таким образом, остается только один проектный параметр р. Значение Т(щ>)тах в интервале от <pmtn до фтах можно найти одним из методов одномерного поиска. Для этого потребуется отдельный поиск помимо поиска оптимальной конст- конструкции. Поскольку в данном случае функция Т(ф) является, по-видимому, мультимодальной, то для поиска ее оптимума будет правильней воспользо- воспользоваться методом общего поиска, хотя для отыскания оптимального решения за- задачи в целом можно обратиться и к другому методу. Следует также отметить, что важно ограничить множество возможных значений Р так, чтобы функция Г(ф) в процессе вычислений не обращалась в бесконечность, так как это соз- создаст дополнительные трудности. Такая ситуация будет складываться каждый раз, когда зт(Р+ф)=0. Чтобы избежать этого, потребуем О < Р+ф < я, где фтт<ф<фтах- Отсюда следует, что параметр |3 должен быть заключен в интервале -~ фтах < Р < Я—фт-ш. Перейдем теперь к программе решения этой задачи, составленной на языке Фортран. В ней используются две подпрограммы оптимизаций, разработанные Мишке [5]. Они модифицированы таким образом, чтобы наименования под- подпрограммы для целевой функции можно было использовать как операторы обращения в списке аргументов подпрограмм оптимизации. Подпрограмма COMB осуществляет общий поиск максимального значения Т иа множестве возможных перемещений. Эта подпрограмма позволяет найти максимальное значение Т даже в том случае, если функция Г(<р) не является унимодальной. Чтобы достаточно быстро сузить интервал неопределенности до 0,01 начального, объединены две подпрограммы такого рода. В подпрограмме GOLD для общего контроля процесса оптимизации используется метод золотого сечения. С с Основная программа с Программа позволяет спроектировать подъемный механизм1 с со стрелой, обеспечив минимум пикаво&о дсилия с в. гидравлическом цилиндре Т. Щуп 30,8.7? с С EXTERNAL miTI.KERm соймой SB),PHI{2;,AlB,BETfl.l/.L,KfiK2 REAL L,K1,K2 PI = З.Н15Ш С с Задание значений параметров l = з.о " SU) = 1.9 РНКП =» -РТ/9. РНП2) = 4.*р:/9. с с Задание верхнего и нижнего Пределов бэта ВШИ = -1.0+РНИ2) втмах = p
с Оптимизация по бэт CALL G0LDA,BTMIN,BTNAX,0.<lt ,ТШ,Ш5Т,ВЗ,В4,JS,hERIIlJ С С Печать результатов CALL MER1TKB8EST,TNAX) URITE(и,J 04) URITE(i,105)A,B,8ETA,TMAX 105 F0ftMAT(lX,'THE fINAL ANSUERS ARE ',/.1X,J3( '-"Ijff I IX,'A = '.F10.4,' IT,/, « 1X/B = ',F10,4,' N',/, i IX,'BETA = ',F10H,' RAD',/, ! 1X/TMAX = ',F10.V KC'J U 104 F0RMATAX,23('-')) С С Анализ полученного механизма URITEF,1O7) 10? RANGE = (РНК2!-РН1(Ш/50. 10 2 1=1,51 PH = РНП1) + RANGE*CI-1) T = L*U*C0S(PH)«SGRT(K2-KI*C0S(BETA*PH))/(A*B*SIN(BET(;+PH}» 2 ШТЕ(«,106)РН,Т IDi F0Rf1ATB<2X,F10.4!J WRITEF,104) STOP END с Подпрограмма merit f с Эта подпрограмма позволяет определить значение ТМАК с при условии задания параметров механизма и соотеетш- с вующего выбора бэта- с т:%/7 J0.5.77 с с SUBROUTINE HERITHBET,THAX) EXTERNAL MERIT2 COMNON SB),PHIB),A,B,B?TA',U,L,K1,K2 SEAL K!,K2 SINENSION ПB000),B4B000) SETA = BET К! = (SA)**2-SB)**2)/(C0S(BETA+PHK2))-C0S(tETA+PHIt!))) K2 = K1*C0S(BETA+PHIB))*SB)**2 В = SQRT((K2+S0RT(K2**2-KI**2))/2.) ft = KHO.S/B CALL C0MB@,PHI(l),PHlB),O.1,T«AX,B2,B3,B4,B5,B«,J5,HERIT2} CALL COHB@,BS,B«10.1,TMAX,B2,B3,B4,BS,B«,J5,HERIT2) С Для нахождения muhumi/mbiuk знак целевойфункциименяется на обратит ТМАХ = -|.О*ТНАХ RETURK END С с Подпрограмма merit 2 с Зта подпрограммапозволяетопредепитьусцлиЁ в цилиндре при С заданном положении стрелы. с Т.Шуп 30,8.77 с с .. - SUBROUTINE HERIT2(PH,T) COMMON SB),PHIB),A,B,BETA,U,L,Kf,K2 REAL L,K1,K2 T = L*U*CDS(PH)*S0RT(K2-KI*CQS(BETA*PH))/[A*B*SIN(BETA»PH)> RETURN
158 Глава 6 Ниже приводится часть выдачи Окончательный результат А = 0 В в I BETA = 1 ТПАХ = -7965 phi, pad -0.3491 -0.3142 -0.2793 -0.2443 -0.2094 -0.1745 -0.1396 -0.1047 -0.0698 -0.034? -0.0000 0.034? О.0698 «.1047 0.1396 0.1745 О.2094 0.2443 0.2793 0.3142 0.3491 0.3840 0.4)89 0.4538 «.4887 С.5234 С.5585 0.5934 «.6283 0.4632 0.6781 0.7339 0.767? «.802? 0.8378 «.8727 С.?07< 1 В.9425 J.9774 1.0123 1.0472 i.e?2i Л17» .151? .1863 .2217 .2564 .2915 1.3265 1.3614 1.3?43 .5850 .26V1 .2231 .8453 Нагру 7426 7452 7482 7514 7547 7582 7617 7652 7687 7721 7754 7784 7816 7844 7870 7893 7?14 7931 7?45 7956 ??43 7965 7?64 7957 7944 7930 7908 7880 7846 7805 7757 7702 7438 75«. И К RAD KG /зкцк .0494 .796? .43?» .287? .7314 .2217 .2642 .4100 .247? .3??! .5122 .257? 3263 422? 2657 .5826 1084 .5836 7503 3517 1287 8185 1522 8515 6274 1725 177? 2904 1484 357J 484? 0692 5878 471В 7485,0851 7393. 72911 7177. 7051. <5»10. «754. 715? 5418 7137 1352 6U7 845? 45ВЛШ2 «390. ?178. 5942. 5679. 53М> 5058. 4489. 4271. 37??. 7331 3427 3797 709S 541* 2445 1012 9438 7783 тттт
Оптимизация. Часть 1 159 6.6. ЗАКЛЮЧЕНИЕ Хотя задача одномерной оптимизации является частью более общей задачи многомерной оптимизации, она так часто встре- встречается в процессе конструирования и обладает столь ярко вы- выраженной спецификой, что мы сочли целесообразным рассмот- рассмотреть ее отдельно. В следующей главе рассматриваются более сложные методы многомерного поиска оптимальных решений. ЗАДАЧИ 6.1. Спроектировать контейнер нового типа в форме кругового конуса без дна объемом 1 м3 (см. рис.). Каковы должны быть геометрические характе- характеристики контейнера, чтобы его боковая поверхность была минимальной? ку. 6.2. Решить задачу 6.1 для случая, когда контейнер имеет круглую крыш- 6.3. Решить пример 6.1 для случая, когда Х!=1,5 м. 6.4. Предложено построить отель из цельнолитых бетонных комнат-мо- комнат-модулей. В изготовленных прямоугольных модулях заранее делается электропро- электропроводка. Поскольку данное изделие предполагается выпускать серийно, очень Потолочный светильник важио обеспечить минимальную стоимость материалов. Требуется так проло- проложить провода от настенного выключателя до места крепления светильника на потолке, чтобы их длина была минимальной. Дополнительное условие состоит в том, чтобы провода располагались либо в стене, либо в потолке. Выбрать вариант прокладки проводов в зависимости от величины у+ и определить необходимую для этого общую номинальную длину проводов.
160 Глава 6 6.5. Прямоугольный дорожный указатель размерами w и h изготовлен из металлического листа постоянной толщины. Площадь поля, содержащего изо- изображение, должна составлять 1,5 м2. По нижней стороне указатель имеет поле 20 см, по трем остальным 10 см (см. рис.) Найти значения w и h, при которых для изготовления указателя потребуется минимальное количество листового материала. -г 20сМ 6.6. Как изменится ответ предыдущей задачи, еел» ввести дополнительное условие I,4<gffi>-«g2 м? 0.7. Определить максимальную дальность D и угол возвышения 6 для пушки, показанной на рисунке, если начальная скорость снаряда уо=800 м/с, а его масса от=50 кг. Стрельба ведется на плоской равнине (y@)=yKVHe4H). Сопротивление воздуха выражается в виде F^=Cv2, где С=0,015 Н-с2/м. 6.8. При каких условиях задача оптимизации не имеет решения? Приве- Приведите примеры таких задач. 6.9. Расход жидкости при установившемся истечении через кольцевой зазор между двумя концентрическими трубками круглого сечения- (жидкость несжимаемая, полностью развитое ламинарное течение) определяется форму- формулой ( г2— г
Оптимизация. Часть I 161 где К— постоянная, зависящая от падения давления на единице длины, плот- плотности и вязкости жидкости. Найти значения г\ и г0, при которых расход жидко- жидкости через поперечное сечение площадью 10 см* максимален при дополнитель- дополнительном условии 2 см<г,-<го<1О см. Поток '///////////Л 6.10. Одним из эффективных способов нахождения корня полинома общего вида является метод минимизации целевой функции, стремящейся к нулю при х, стремящемся к значению искомого корня. Проверить эффектив- эффективность этого метода на примере уравнения хъ + 21х* + 1 58л;3 + 502х2 + 609л; + 245 = 0. ЛИТЕРАТУРА 1. Converse А. О., Optimization, N. Y., Holt, Rinehart and Winston, 1970. 2. Fox R. L., Optimization Methods for Engineering Design, Reading Mass. Addison-Wesley, 1971. 3. Ketter R. L., Prawel S. P., Modern Methods of Engineering Computation, N. Y., McGraw-Hill, 1969. 4. Kuester J. L., Mize J. H., Optimization Techniques with FORTRAN, N. Y., McGraw-Hill, 1973. 5. Mischke С R., An Introduction to Computer-Aided Design, Englewood Cliffs, N. J., Prentice-Hall, 1968. 6. Zahradnik R. L., Theory and Techniques of Optimization for Practicing Engineers, N. Y., Barnes and Noble, 1971. 7. International Mathematical and Statistical Library (IMSL) IMSL Library 1, ed. 5, Houston, Texas, 1975. 2913
Глава 7 Оптимизация. Часть II 7.1. МЕТОДЫ МНОГОМЕРНОГО ПОИСКА На первый взгляд может показаться, что различие между ме- методами многомерного и одномерного поиска состоит лишь в том, что первые требуют большего объема вычислений и что в прин- принципе методы, пригодные для функций одной переменной, можно применять и для функций многих переменных. Однако это не так, поскольку многомерное пространство качественно отли- отличается от одномерного. Прежде всего с увеличением числа изме- измерений уменьшается вероятность унимодальности целевой функ- функции. Кроме того, множество элементов, образующих многомер- многомерное пространство, гораздо мощнее множества элементов одно- одномерного пространства. Объем вычислений, необходимых для сужения интервала неопределенности в многомерном прост- пространстве, является степенной функцией, показатель которой ра- равен размерности пространства. Так, если в случае одномерного пространства для достижения /=0,1 требуется вычислить 19 зна- значений целевой функции, то в случае двумерного пространства это число составляет 361, трехмерного—6859, четырехмерного — 130 321, а пятимерного — 2 476 099! Поскольку при выборе опти- оптимальной конструкции нередко приходится иметь дело с пятью и более переменными, серьезность трудностей, обусловленных многомерностью, становится очевидной. По традиции методы оптимизации в многомерном прост- пространстве делятся на две большие группы — прямые и косвенные. Прямые методы основаны на сравнении вычисляемых значений целевой функции в различных точках, а косвенные — на ис- использовании необходимых и достаточных условий математиче- математического определения максимума и минимума функции. Стратегия прямых методов — постепенное приближение к оптимуму; при использовании косвенных методов стремятся найти решение, не исследуя неоптимальные точки. В данной главе представлены наиболее распространенные алгоритмы, применяемые для ре- решения многомерных задач оптимизации, сравниваются некото- некоторые написанные на языке Фортран программы их реализации и даются общие указания по выбору алгоритма для решения той или иной задачи *. *Для более подробного ознакомления с алгоритмами решения многомер-
Оптимизация. Часть II 163 7.2. МЕТОД ПОКООРДИНАТНОГО ПОДЪЕМА1 Логическим развитием рассмотренной выше методики одно- одномерного поиска было бы последовательное изменение каждого проектного параметра до тех пор, пока не будет достигнут мак- максимум целевой функции. По завершении этой процедуры для всех переменных можно вернуться к первой и посмотреть, нельзя ли еще более усовершенствовать решение. Этот метод, называемый методом покоординатного подъема, не всегда по- позволяет найти оптимальное решение. На рис. 7.1, а показана двумерная целевая функция, подходящая для решения задачи этим методом. Ее особенность состоит в том, что линии уровня близки по форме к окружностям или эллипсам, оси которых па- параллельны осям координат. Если же эти оси наклонены к осям координат (рис. 7.1, б), то эффективность алгоритма снижается, так как для нахождения оптимума приходится вычислять го- гораздо больше значений целевой функции. Метод покоординатного подъема совершенно неприменим, если линии уровня имеют точки излома (рис. 7.1, вJ. Поскольку линии уровня такого типа весьма часто встречаются в инженерной практике, то прежде, чем вос- воспользоваться указанным методом, следует убедиться, что реша- решаемая задача не имеет подобного недостатка. Несмотря на это, ме- метод покоординатного подъема часто используют на первой ста- стадии решения задачи, применяя затем более сложные методы. К достоинствам метода покоординатного подъема следует от- отнести возможность использования простых алгоритмов одно- одномерного поиска, таких, как метод золотого сечения. иых задач оптимизации рекомендуются книги [1*, 6*, 7*]. В частности, в кни- книге Аоки [1 *] деление на группы методов оптимизации осуществлено в соответст- соответствии с порядком производных, а не в зависимости от участия или неучастия в расчете неоптимальных точек. Таких групп имеется три: 1. Прямые методы (методы поиска, часто называемые также методами нулево- нулевого порядка), в которых используются только значения функции. К этой группе в частности относятся описанные в данной книге методы Хука — Дживса, Ро- зенброка, симплекс-метод. 2. Методы первого порядка, в которых использу- используются первые производные. К ним относятся, например, градиентные методы. 3. Методы, в которых используются вторые производные. К этим методам отно- относится, например, метод Дэвидоиа — Флетчера — Пауэлла.— Прим. ред. 1 В оригинале — sectioning method. Обычно в задачах оптимизации при- принято определять минимум целевой функции, и соответствующий метод в этом случае называется методом покоординатного спуска.— Прим. ред. 2 В задачах минимизации подобный тип рельефа целевой функции назы- называется овражным.— Прим. ред. 6*
Линия излома Рис. 7.1. Метод покоординатного подъема.
Оптимизация. Часть II 165 7.3. МЕТОД ИСКЛЮЧЕНИЯ ОБЛАСТЕЙ Зная из предыдущей главы, насколько эффективно методы одномерного поиска позволяют сокращать интервал неопределен- неопределенности (одномерный или двумерный), можно попытаться применить ту же методику и к многомерному пространству. Один из наиболее очевидных методов исключения областей называется методом Перспективная область Бесперспектив- Бесперспективнаяюлаайь Рис. 7.2. Метод исключения областей (касательной к линии уровня) в случае выпуклых линий уровня. касательной к линии уровня, так как в нем используются каса- касательные к линиям уровня целевой функции. Продемонстрируем этот метод на примере двумерной целевой функции, линии уровня которой показаны на рис. 7.2. Пусть произвольно выбранная точка пространства проектирования лежит на линии уровня, проходящей несколько ниже пика, соответствующего оптималь- оптимальному решению. Проведем через эту точку касательную к линии уровня. Сделать это нетрудно, так как касательная должна ле- лежать в плоскости линии уровня и быть перпендикулярной ло- локальному градиенту поверхности целевой функции. Если целе- целевая функция достаточно гладкая и унимодальная, то касатель- касательная к линии уровня разделит пространство проектирования на две части, в одной из которых вероятность нахождения оптимума велика, а в другой мала. Пользуясь этим приемом в нескольких удачно выбранных точках, для которых известны значения це- целевой функции, можно существенно сузить область поиска. Однако осуществление этого алгоритма связано с некоторыми трудностями. Если линии уровня вогнутые, а не выпуклые, то может оказаться исключенной область, содержащая экстремум (рис. 7.3). Кроме того, оставшаяся после нескольких исключений
166 Глава 7 область неопределенности может иметь конфигурацию, мало пригодную для применения других алгоритмов. Одним из методов исключения является метод сеточного поиска, разработанный Мишке [15] и дающий неплохие резуль- результаты. В этом случае суженная область неопределенности представ- представляет собой гиперкуб — многомерный аналог квадрата или куба,— размеры которого можно определить заранее. Благодаря этому метод Мишке является одним из немногих методов многомерного поиска, эффективность которого поддается измерению. Чтобы Исключенная площадь Рис. 7.3. Метод исключения областей (касательной к линии уровня) в слу- случае вогнутых линий уровня. лучше понять сущность этого метода, рассмотрим его для слу- случая пространства проектирования, определяемого двумя пере- переменными. Исходную область неопределенности в зависимости от размерности пространства отобразим на единичный квадрат, куб или гиперкуб. Это позволит вести поиск в нормированной области со стороной, равной единице. В гиперкубе построим сетку, образованную попарно симметричными взаимно ортого- ортогональными плоскостями, параллельными координатным направ- направлениям, вдоль которых изменяются проектные параметры. Эти плоскости пересекаются по прямым, которые в свою очередь пересекаются в точках, называемых в дальнейшем узлами (рис. 7.4). Вычислим значения целевой функции в узлах и в центре куба. В случае М проектных параметров получим 2М+1 значений целевой функции, из которых выберем наибольшее. Примем соответствующий узел за центр гиперкуба меньших размеров и продолжим исследование. Процесс продолжается до тех пор, пока не будет достигнута требуемая степень сужения интервала неопределенности. Если в области допустимых значе-
Оптимизация. Часть II 167 ний обозначить степень сужения вдоль какой-либо оси коорди- координат через г, то линейное сужение для 6-мерного гиперкуба будет равно f=rb, а число вычисленных значений целевой функции Мишке рекомендует [15] выбирать г в интервале значений Рис. 7.4. Сеточный метод поиска. 2/3<Xl. Он отмечает также, что в случае трех и более пере- переменных большую эффективность обеспечивают не кубические, а звездообразные области. 7.4. МЕТОД СЛУЧАЙНОГО ПОИСКА Выше в этой главе говорилось о громоздкости вычислений в случае многомерного пространства на примере числа значений целевой функции, которые необходимо вычислить, чтобы, поль- пользуясь методом сеток, получить /=0,1, и было показано, что это число растет как степенная функция, показатель степени которой равен размерности пространства. Оригинальный подход, позво- позволяющий обойти эту трудность, предложен Бруксом [1] и основан на случайном поиске. Пусть пространство проектирования пред- представляет собой куб или гиперкуб со стороной, равной единице, и-разделено на кубические ячейки путем деления на 10 равных частей каждой стороны куба, соответствующей одному из про- проектных параметров. При N=2 число ячеек равно 100, при Ы=Ъ оно равно 1000; в общем случае при N измерений число ячеек равно 10-^. Вероятность того, что выбранная наугад ячейка вой-
168 Глава 7 дет в число 10% наиболее перспективных ячеек, равна 0,1, так как при N=\ нас будет интересовать одна ячейка из 10, при N=2— одна из десяти лучших при общем количестве ячеек 100 и т. д. Вероятность того, что мы пропустим одну из 10% наиболее перспективных ячеек, составит 0,9. Если случайным образом выбрать две ячейки, то вероятность пропуска будет 0,9\ т. е. 0,81. Вообще вероятность нахождения по крайней мере одной ячейки из наиболее перспективных, доля которых равна f, после N попыток составит В табл. 7.1 указано, сколько ячеек надо выбрать случайным образом, чтобы обеспечить заданную вероятность при заданной доле наиболее перспективных ячеек. Из нее видно, что при слу- случайной выборке 44 ячеек вероятность достижения /=0,1 соста- составит 99%. Это очень неплохо, если вспомнить, что для 100%-ного обеспечения целевую функцию в случае пяти переменных при- пришлось бы вычислить 2 476 099 раз. Таблица 7.1 1 0,1 0,05 0,01 • 0,005 Вероятность * 0,80 16 32 161 322 0,90 22 25 230 460 0,95 29 59 299 598 0,99 44 90 459 919 Метод случайного поиска имеет два преимущества. Во-пер- Во-первых, он пригоден для любой целевой функции независимо от того, является она унимодальной или нет. Во-вторых, вероят- вероятность успеха при попытках не зависит от размерности рассмат- рассматриваемого пространства. Хотя этот метод не позволяет непо- непосредственно найти оптимальное решение, он создает подходящие предпосылки для применения в дальнейшем других методов поиска. Поэтому его часто применяют в сочетании с одним или несколькими методами других типов. 7.5. ГРАДИЕНТНЫЕ МЕТОДЫ Во многих алгоритмах многомерной оптимизации так или иначе используется информация о градиентах. Проиллюстри- Проиллюстрируем это положение следующим простым примером. Представим себе, что альпинисту завязали глаза и сказали, что он должен добраться до вершины «унимодальной» горы. Даже ничего не
Оптимизация. Часть II 169 видя, он может это сделать, если все время будет двигаться вверх. Хотя любая ведущая вверх тропа в конечном счете при- приведет его к вершине, кратчайшей из них будет самая крутая, если, правда, альпинист не натолкнется на вертикальный обрыв, который придется обходить. (Математическим эквивалентом об- обрыва на поверхности, образуемой целевой функцией, являются те ее места, где поставлены условные ограничения.) Предположим пока, что задача оптимизации не содержит ограничений. Позднее мы включим их в схему поиска. Метод оптимизации, в основу которого положена идея движения по самой крутой тропе, на- называется методом наискорейшего подъема или наискорейшего спуска. Вектор градиента перпендикулярен линии уровня и указывает направление к новой точке в пространстве проектиро- проектирования. Отметим, что градиентный метод в отличие от метода ка- касательной к линии уровня можно использовать применительно к любой унимодальной функции, а не только тех, у которых это свойство явно выражено. Чтобы лучше понять идею градиентных методов, подробнее остановимся на свойствах градиентов. Рассмотрим систему неза- независимых единичных векторов еь е2, е3, . . ., ejv, направленных вдоль осей координат хг, хи х3, . . ., xN, являющихся в то же время проектными параметрами. Вектор градиента произвольной целевой функции F (хи х2, х3, . . ., xN) имеет вид dF , dF , dF dXi * дх2 2 ' dxN Л> где частные производные вычисляются в рассматриваемой точке. Этот вектор направлен вверх, в направлении подъема; обратный ему вектор указывает направление спуска. Единичный вектор градиента часто представляют в виде к^Ч-у2е2 -fi\,es + .. где dF Иногда характер целевой функции бывает достаточно хорошо известен, чтобы можно было вычислить компоненты вектора градиента путем непосредственного дифференцирования. Если таким способом частные производные получить не удается, то можно найти их приближенные значения в непосредственной окрестности рассматриваемой точки: dF _ F (хг,хг, . .
170 Глава 7 ^_ Здесь Д— небольшое смещение в направлении xt. Эту формулу часто называют «приближением секущей». Полученную инфор- информацию о направлении градиента можно использовать различным образом для построения алгоритма поиска. Ступенчатый наискорейший подъем Ряд методов поиска основан на смещении на постоянный шаг в направлении градиента с последующим вычислением целевой функции. Если ее величина оказывается больше предыдущей, вычисляется градиент в новой точке, и вся процедура повторя- повторяется, причем часто при этом шаг увеличивают. Если же величина целевой функции не изменяется или убывает, то шаг смещения от предыдущей точки уменьшают и повторяют всю процедуру вычислений. Так поступают до тех пор, пока дальнейшее умень- уменьшение шага уже не приводит к улучшению результата. Наискорейший подъем с использованием одномерного поиска В некоторых методах поиска информация о градиенте исполь- используется для ведения одномерного поиска в направлении наиско- наискорейшего подъема или спуска, причем используется соотношение /, иов где S — новый одномерный параметр, значения которого от- считываются в направлении градиента. Получив одномерный оптимум в направлении данного градиента, находят новый гра- градиент и повторяют процесс до тех пор, пока последующие вы- вычисления позволяют улучшать полученный результат. Главное достоинство этого метода состоит в том, что параметр S можно использовать в качестве независимой переменной для поиска по методу Фибоначчи, и это обеспечивает высокую эффективность метода. Другое важное преимущество рассматриваемых мето- методов состоит в том, что они позволяют уходить от седловых точек поверхности, описываемой целевой функцией (рис. 7.5). Отметим, однако, что, как видно из рисунка, для мультимодаль- ных функций градиентные методы позволяют найти лишь ло- локальный оптимум. Поэтому, если характер поверхности недоста- недостаточно хорошо известен, следует испробовать несколько исходных точек и убедиться, что во всех случаях получается одно и то же оптимальное решение. Другой причиной, снижающей эффектив- эффективность градиентных методов, являются изломы линий уровня це- целевой функции. Так как такие точки соответствуют разрыву в наклоне линий контура, то здесь возможны ошибки в опре- определении направления дальнейшего поиска. Поэтому поиск мо-
Оптимизация. Часть II 171 жет замедлиться и идти зигзагами поперек линии излома, а время, необходимое для получения решения, будет столь ве- велико, что счет придется прекратить. В действительности боль- большинство исследуемых поверхностей имеет одну или более линий излома, которые нередко проходят через точку оптимума. По- Поэтому, наткнувшись на линию излома, следует в дальнейшем Рис. 7.5. Бимодальная целевая функция. двигаться вдоль нее. Для реализации этой идеи разработан ряд остроумных алгоритмов. Ниже рассмотрим некоторые из них, а также другие «безградиентные» методы, хорошо приспособлен- приспособленные для поиска оптимумов функций с разрывными производ- производными. 7.6. МЕТОД ФЛЕТЧЕРА —РИВСА1 Этот метод [10] позволяет найти минимум нелинейной целевой функции многих переменных вида M=F(xu х„ . . ., xN) при отсутствии ограничений. Метод основан на применении частных производных целевой функции по независимым пере- переменным и предназначен для исследования унимодальных функ- функций. С его помощью можно исследовать и мультимодальные функ- функции, однако в этом случае следует брать несколько исходных то- точек и проверять, одинаково ли во всех случаях решение. Схема алгоритма метода Флетчера — Ривса представлена на рис. 7.6. Выполняется он следующим образом. Сначала выбирается под- 1 Относится к группе методов сопряженных градиентов.— Прим. ред.
172 Глава 7 Выбор начальной точки Определение направления градиента в точке Одномерный поиск в направ- направлении градиента с целью on- ределения„наилучшегв"знаце- ляется ли найденное,.наилуч^^ Да шее" значение оптималь; ным для данной и* Выполнен ли поисквовсех N+i направо лениях ? Определение сопряженного градиента в новой лучшей точке Рис. 7.6. Блок-схема алгоритма метода Флетчера — Ривса. ходящая начальная точка пространства проектирования и путем вычисления компонент вектора градиента . _ idF/dxA «*) . . ~ 1/2 определяется направление наискорейшего спуска. Индекс k= 1 соответствует исходной точке. Затем в направлении наискорей- наискорейшего спуска ведется одномерный поиск по формуле 1=1. 2, .... N, где S — смещение в направлении вектора градиента. Найдя ми- минимум в этом направлении, определяют направления новых еди-
Оптимизация. Часть II 173 ничных векторов, которые несколько отличаются от направле- направления нового вектора градиента и представляют собой линейные комбинации вектора градиента на данном шаге и вектора гра- градиента, полученного на предыдущем шаге. Новые компоненты единичных векторов выражаются в виде где Индекс k указывает на последовательность вычислений в про- процессе итераций. Новые направления называются «сопряжен- «сопряженными» и соответствуют текущей локальной квадратичной аппрок- аппроксимации функции. Затем по новому направлению проводят одно- одномерный поиск и, найдя минимум, проверяют, достигнута ли тре- требуемая степень сходимости. Если проверка показывает, что это так, то счет прекращается. В противном случае определяют новые сопряженные направления, k увеличивают на единицу и продолжают процесс до тех пор, пока не будет обеспечена сходи- сходимость или пока поиск не будет проведен по всем N-\-\ направле- направлениям. Закончив цикл поиска по N-\-\ направлениям, начинают новый цикл, в котором опять используется направление наиско- наискорейшего спуска. Достоинство этого алгоритма состоит в том, что он позволяет использовать преимущества градиентных методов, проявляющиеся при исследовании целевой функции с разрыв- разрывными производными. Так как iV-fl направлений поиска вто- второй совокупности отличаются от направлений единичных век- векторов градиента, то поиск не «зависает на изломе», а идет вдоль линии, соединяющей точки изломов линии уровня, которая, как правило, проходит через точку оптимума. Вообще можно ут- утверждать, что методы, основанные на определении новых на- направлений поиска на основе накопленных данных о локальном поведении функции, по самой своей природе более эффективны, чем методы, в которых направление поиска задается заранее. Именно поэтому метод Флетчера — Ривса обладает большими преимуществами по сравнению с методами наискорейшего спуска .или подъема. Его недостаток состоит в том, что, будучи сложнее указанных методов, он требует разработки более сложных про- программ.
174 Глава 7 Пример 7.1 U-L, 1 Для хранения авиационного горючего требуется спроектировать бак нового типа, компоновка которого показана на рисунке. Бак должен представ- представлять собой тело вращения, изготовленное из трех кусков металлического листа. Готовый бак имеет вид цилиндра с коническими передним и задним днищами. Изготавливается он методом сварки трех листовых заготовок. Объем бака должен составлять 1 м3. С целью достижения минимальных веса и стоимости требуется изготовить бак из минимального количества материала. Каковы должны быть значения Llt L2 и D, чтобы выполнялось это требование? Задачу будем решать, исходя из требования обеспечения минимума боко- боковой поверхности бака А = LxnD + 2 [я (D/2) K( Одни из трех проектных параметров Li, L2 и D можно исключить, восполь- воспользовавшись формулой объема бака K=jiDs[(Z.2 6)+ (Li/4)]= I м3, откуда я (La/6) + (Li/4) - Это позволяет сформулировать задачу в стандартной форме: Проектные параметры: Ьъ L2. Целевая функция, минимум которой требуется найти У Поскольку условие задачи не содержит ограничений, то весьма вероятно, что оптимальное решение соответствует точке поверхности целевой функции, в которой локальный градиент равен нулю. Так как для вычисления частных производных целевой функции и получения решения в этой точке могут потре- потребоваться громоздкие выкладки, а поверхность, описываемая целевой функцией, не содержит изломов (обусловленных ограничениями), то для решения вос- воспользуемся одним из градиентных методов поиска, а именно методом Флетче- ра — Ривса [10]. Перейдем теперь к описанию составленной на языке Фортран программы осуществления этого алгоритма, в которой используется подпро- подпрограмма FMCG, входящая в пакет программ для научных исследований фирмы IBM [13]. Входящая в подпрограмму FMCG подпрограмма FUNCT для целевой функции должна вырабатывать не только ординату этой функции в данной точке, но и определять локальный градиент. Чтобы не вычислять частные производные, градиент в подпрограмме FUNCT определяется приближенно путем задания малых конечных приращений проектных параметров при одно- одновременном вычислении изменения величины целевой функции. Так как при поиске оптимального решения без дополнительных ограниче- ограничений один или оба проектных параметра могут принять отрицательные значе- значения, то в подпрограмме для целевой функции используются их абсолютные значения. В противном случае можно прийти к ошибочному выводу, что су- существует решение лучше оптимального. Подпрограмма FMCG требует введения приближенного исходного значения оптимального решения и выбора исход- исходных значений проектных параметров, определяющих точку начала поиска.
Оптимизация. Часть II 1 75 Поскольку известно, что наибольший объем при заданной площади поверхно- поверхности тела имеет шар, то за нижнюю границу искомой площади боковой поверх- поверхности бака примем площадь поверхности шара объемом 1 м3, которая равна /4=4,84 м2, а в программу поиска оптимального решения введем величину EST=5. Исходные значения проектных параметров выберем произвольным образом, приняв Z,!=l,0 м и Z,2=1,5 м. с Основная программа с Зтпрограмма проектирования симметричного цилиндра- с чвского бака с коническими днищами. Объем !м3, а пла- с щадь его боковой поверхности должно быть с минимальной. с Т.шуп 3.9.77 с EXTERNAL FUKCT REAL LB) DIMENSION GC2), KD) PI » 3.1415924 с Ориентировочное минимальное значение птщаЫ ESI ¦ 5.0 с с с С Задание начальных значена! ш) ¦ т. LI2) ¦ «.5 С Минимизация площади методом Флетчера-Рика с CALL ЩС! 1FUNCT, 2, L, f, В, EST, EPS, 4@, IER, H) с Вычисление диаметра D ' SOUTH./(PI*UB)/i. t L(l)/4.))) с с Печать результант UKITE D,l»5) IER, F, LID, LID, D Itt FDRHAT III,23('--),/,IK,'THE FIIMI ANCNEftG MCVil*. I 'IER •',!!>,/,П,'тЧ •'¦P1},5,' »»!',/,IX, t 'l(l) •',f\t.i,' H',/,IX,'LIS) ш',цо.5,- «', » /,1X, '1 >',П1,1,' ltV|IXi"l'-'l' END . с Подпрограмма funct с Эта подпрограмм noieo/жт найти площадь поверхности с * бака и & градиент при заданных размерах бака. с Градиетщтоктшруажя конечными с приращешяю. с Т%л д.9.77 SUBROUTINE FUHCT IN, I, A«E«, OR»») REAL LI2), GRftB B1, LI, L2 «(LI, L2, PI) " SORT (PI/IAISIL2)/i. • «HSILD/4.I}l I (ASSILT) i S0«Tll./D. • f1 « IA0S(L2)/i, t A>S(L1)/4il] l> L2 «2)) t П • 3.1415724 t AREA • «(LID, LI2), PI) С t . Вычисление градиентов XIL • Ld >«o.m X1« • Lll)M.»»l ГЦ) • (*<XIL,L<2),PI)-»l»1ll,lC2>,PI)>AX1L-mi • Ll2)U.!ff XZS • H2J»1.001 GRADB> RETURK («I
176 Глава 7 Выдача программы для ЭВМ имеет вид: Окончательный ответ: IER=0 Площадь Л = 5,01921 м2 Lx = 0,53479 м L2 = 0,53454 м D= 1,19531 м IER=0 означает, что сходимость достигнута. 7.7. МЕТОД ДЭВИДОНА — ФЛЕТЧЕРА—ПАУЭЛЛА1 Метод Дэвидона — Флетчера — Пауэлла [9] представляет собой алгоритм оптимизации, приспособленный для отыскания безусловного минимума целевой функции, зависящей от несколь- нескольких переменных и имеющей вид M = F(xv Хг, . . ., XN). Необходимы частные производные целевой функции по незави^ симым переменным. Поскольку в основе метода лежит допуще- допущение об унимодальности целевой функции, в тех случаях, когда есть основания предполагать, что она не является таковой, сле- следует брать несколько исходных точек. На рис. 7.7 представлена схема алгоритма метода Дэвидона — Флетчера — Пауэлла. Ал- Алгоритм выполняется следующим образом. Сначала в пространстве проектирования выбирают подходящую начальную точку. Затем, вычисляя составляющие вектора градиента V и (dF \ '*' i — 1 2 определяют направление поиска. Здесь k — номер итерации, а Hj, } — элементы симметричной положительно определенной матрицы размерности NxN. В процессе итераций эта матрица превращается в матрицу, обратную матрице Гессе, элементами 1 Называется также методом переменной метрики и относится к группе ме- методов сопряженных направлений.— Прим. ред.
Оптимизация. Часть II 177 Выбор начальной точки Определение направления градиента в точке Одномерный поиск в иаправ лении градиента с целью определения „наилучшей точки ответ- /пвуешлина ноя „наилучшая" точка тимол за Определение сопряженного направления Рис. 7.7. Блок-схема алгоритма метода Дэвидона — Флетчера — Пауэлла. которой являются вторые частные производные целевой функ- функции. Поскольку обычно матрица заранее неизвестна, то в ка- качестве начальной можно воспользоваться любой симметричной положительно определенной матрицей. Как правило, берут простейшую из них — единичную матрицу. В этом случае поиск начинается вдоль линии наискорейшего спуска. Одно- Одномерный поиск ведется вдоль исходного направления в соот- соответствии с соотношением */. нов ==*,-. ci + SVi, 1=1,2, ...,N, где S — величина шага в направлении поиска. Найдя одномер- одномерный оптимум, проверяют результат на сходимость и, если она Достигнута, поиск прекращают. В противном случае для даль- дальнейшего поиска выбирают новое направление, причем исполь- используют прежнее соотношение и новую матрицу Я, определяемую формулой ~~ //<* + !) _ //<*> _|_ Д1к) № 2913
178 Глава 7 Элементы матриц Alft) и В(*\ имеющих размерность NxN, вычисляются по формулам где верхним индексом tf обозначены транспонированные мат- матрицы, а АхШ) и AG(ft) — соответственно векторы-столбцы раз- разностей значений xt и градиентов в двух точках. Векторы-столбцы определяются выражениями Дл;<*> =?<*+» — Xм, 5* дх В соответствии с правилами матричного исчисления числители выражений для Alft) и B(ft) представляют собой матрицы раз- размерности NxN, a знаменатели являются скалярами. Определив новое направление поиска, проводят одномерный поиск и про- продолжают итерационный процесс. При выполнении описываемого алгоритма поиск после первой попытки ведется в тех направле- направлениях, в которых целевая функция в ближайшей окрестности имеет значения, приближающиеся к оптимальному. Лишь в редких случаях эти направления совпадают с направлением градиента. Поэтому данный алгоритм часто называют методом «отклоненного» градиента. Указанное свойство метода Дэви- дона — Флетчера — Пауэлла позволяет обходить трудности, связанные с разрывами производных в пространстве проекти- проектирования. Широко распространено мнение, что этот метод явля- является наиболее эффективным из всех градиентных методов. В от- отличие от метода Флетчера — Ривса он дает полную информацию о кривизне поверхности целевой функции в точке минимума, однако при этом требуется больший объем памяти и большее время счета для обработки матрицы Н. 7.8. МЕТОД КОНФИГУРАЦИЙ ХУКА—ДЖИВСА Этот метод [12] облегчает поиск и не требует вычисления производных. Поиск ведется вдоль линий разрыва производных в предположении, что смещения в пространстве проектирования, оказавшиеся удачными на ранней стадии поиска, могут при- привести к успеху и на его более поздних стадиях. Метод Хука — Дживса предназначен для отыскания минимума унимодальной функции многих переменных M=F(xit Xi xN)
Оптимизация. Часть II 179 Выборбазоваи точки прос- пространства проектирования и величины шага. Вычисление значения Функции Исследование (рис. 7.9) Уменьшение шага Нет' очнено "Ли значение функ- функции по сравнению с ' зовоп точкой! остаточно ли ^-^ Да мало изменение целе- оп функции % Задание новой базовой точки Сдвиг схемы Исследование (рис 7.9) Уточнено ли значение функции ? Поиск от лучшей предыдущей точки Рис, 7.8. Блок-схема алгоритма метода конфигураций Хука — Дживса. 7*
180 Глава 7 при отсутствии ограничений. На рис. 7.8 представлена схема алгоритма этого метода. Выполняется он следующим обра- образом. Сначала выбирается исходная базовая точка пространства проектирования и величины шагов, которые будут использованы при исследовании функции. Затем в соответствии со схемой рис. 7.9 проводится исследование с заданными приращениями в направлениях, соответствующих всем независимым перемен- переменным. Там, где получено уточненное значение функции, помещают новую временную базовую точку. Закончив этап исследования, выбирают новую базовую точку и производят «сдвиг схемы». Эта операция заключается в экстраполяции вдоль линии, сое- соединяющей новую и прежнюю базовые точки. Расстояние сдвига за новую базовую точку несколько превышает расстояние между двумя прежними базовыми точками. Математически экстрапо- экстраполяция определяется формулой xf+1) +сс где x'jfj1' — новая временная базовая точка, или «точка ро- роста», i — переменный индекс, k — порядковый номер стадии поиска, а а — коэффициент усиления, который больше или равен единице. Затем исследуют окрестность новой временной базовой точки, чтобы выяснить, не содержит ли она точку, при- приняв которую за следующую базовую можно приблизиться к оптимальному решению. Этот поиск также ведется по схеме, показанной на рис. 7.9. Если найденная временная точка роста или одна из соседних с ней точек имеет преимущество перед другими, то вся процедура повторяется с использованием ее в качестве базовой. Благодаря введению коэффициента.усиления, каждое последующее исследование окрестности точки осуществ- осуществляется на все большем и большем удалении от исходной точки до тех пор, пока в процессе поиска не окажется пройденным пик или линия разрыва производной. В этом случае возвра- возвращаются к предыдущей «лучшей базовой точке», сужают область исследования и повторяют весь процесс снова. Если последо- последовательно уменьшаемый шаг оказывается меньше некоторой заранее заданной величины и при этом отсутствует заметное изменение значения целевой функции, поиск прекращается. После нескольких изменений направления поиска метод Хука — Дживса обеспечивает совпадение распределения рас- расчетных точек с линией разрыва производных. Обычно после завершения выбора схемы поиска сдвиг на каждом следующем шаге увеличивается, пока не превысит величину исходного шага в 10 или даже в 100 раз. Поэтому в случае, когда сдвиг оказывается неудачным, единственный способ продолжить по- поиск — вернуться к наиболее удачной из базовых точек и начать все сначала. Тот факт, что данный алгоритм обладает свойством
Оптимизация. Часть II 181 Вход Дискретное увеличение координаты Мискретное уменьшение координаты Новые значения коорди- координат и функции .сохраняются Изменение координат Даны ли приращения всем переменным ? Переход к следующей переменной Выход Рис. 7.9. Метод исследования, применяемый в алгоритме Хука — Джиъса.
182 Глава 7 «ускоряться», способствует повышению его общей эффективно- эффективности. Другое достоинство метода Хука — Дживса — возможность получения с его помощью приближенного решения, качество которого непрерывно повышается на всех стадиях численного решения. Особенно явно преимущества подобных методов про- проявляются при отыскании экстремумов на гиперповерхностях, содержащих глубокие узкие впадины, т. е. в тех случаях, когда градиентные методы неэффективны. 7.9. МЕТОД КОНФИГУРАЦИЙ РОЗЕНБРОКА Метод конфигураций Розенброка [17] основан на поиске минимума вдоль линий разрыва производных и часто оказыва- оказывается эффективным, когда другие методы не позволяют получить решение. Его нередко называют «методом вращения осей коор- координат», поскольку исследование в окрестности выбранной точки ведется именно таким способом. В отличие от предыдущих методов, в которых исходным переменным сообщают независи- независимые приращения, в методе Розенброка система координат по- поворачивается так, чтобы одна из осей была направлена вдоль линии разрыва производных, положение которой определяется в результате предварительного исследования. Остальные оси образуют с ней ортогональную систему координат. Метод Ро- Розенброка основан на предположении об унимодальности целевой функции и предназначен для отыскания минимума функции многих переменных вида M=F(xu x2, . . ., xN) при отсутствии ограничений. На рис. 7.10 показана схема алго- алгоритма, используемого в этом методе. Выполняется он следующим образом. Сначала выбирают начальную точку, задают начальные величины шагов 5, (t=l, 2, . . ., N) и вычисляют целевую функ- функцию. Затем каждой переменной xt сообщают приращение St в направлении, параллельном соответствующей оси координат в пространстве проектирования, и вновь вычисляют целевую функцию F. Если ее новое значение оказывается меньше преды- предыдущего, то сдвиг считается удачным и следующий шаг увели- увеличивается в соответствии с формулой S»=aSlf где а>1. Если же новое значение F оказывается больше преды- предыдущего, то сдвиг считается неудачным и следующий шаг опре- определяется по формуле
Оптимизация. Часть II 183 Выбор базовой течки, величин шагов и вычис- вычисление целевой функции Увеличение значения xi в лучшей точке на вели - чину S-L точненоли ^^ Нет значение функции ? Увеличение шага Уменьшение шага елонь ли приращения ¦ по всем коорВина- там ? Вращение осей и выбор новых величин шагов иот Нет Рис. 7.10. Блок-схема алгоритма метода конфигураций Розенброка.
184 Глава 7 где р<1. Осуществив сдвиг по всем переменным, проверяют сходимость и, если она достигнута, поиск прекращают. В про- противном случае вводят дополнительную проверку, чтобы выяс- выяснить, были ли сделаны хотя бы один успешный и один безус- безуспешный сдвиг в каждом направлении. Если такого сочетания сдвигов не было, вся процедура повторяется, начиная с первой переменной. Если же подобное сочетание обнаружено для каж- каждого направления, оси поворачивают так, чтобы исходное на- направление поиска совпало с наиболее перспективным из ранее рассмотренных направлений. Затем выбирают новые значения шагов и продолжают поиск по всем переменным, пользуясь новой системой координат. В отличие от других, данный алго- алгоритм нацелен на отыскание оптимальной точки в каждом на- направлении, а не просто на фиксированный сдвиг по всем на- направлениям. Величина шага в процессе поиска непрерывно изменяется в зависимости от конфигурации рельефа поверх- поверхности. Сочетание вращения вектора, направленного вдоль ли- линии разрыва производных, с регулированием масштаба делает метод Розенброка исключительно эффективным при решении сложных задач оптимизации. 7.10. СИМПЛЕКС-МЕТОД Изложение этого метода начнем с пояснения того, что такое симплекс. Симплексом называется Af-мерная замкнутая гео- геометрическая фигура, ребра которой представляют собой прямые линии, пересекающиеся в УУ+1 вершине. В двумерном случае это треугольник, в трехмерном — тетраэдр. Схемы поиска с использованием симплексов основаны на слежении за измене- изменением значений целевой функции в их вершинах. Главным в этих схемах является процесс отражения — нахождение вер- вершины нового симплекса, расположенной симметрично относи- относительно плоскости, проходящей через одну из сторон исходного симплекса. Выбор направления поиска вершины нового сим- симплекса определяется положением той вершины исходного сим- симплекса, в которой целевая функция имеет наихудшее значение (рис. 7.11). Новая точка называется «дополнением» наихудшей точки. Если в только что полученной вершине нового симплекса значение целевой функции оказывается худшим, то алгоритм предусматривает возврат в исходную точку — вершину преж- прежнего симплекса. Затем осуществляется переход к той вершине прежнего симплекса, в которой целевая функция имеет следую- следующее по величине значение, и отыскивается точка, являющаяся ее дополнением. Такой алгоритм обеспечивает систематическое смещение центра симплекса в направлении экстремума целевой функции.
Оптимизация. Часть I! 185 Известен и более сложный метод — метод Нелдера — Мида [16], в котором помимо поиска вершин новых симплексов про- производится сжатие или растяжение их ребер. Этот алгоритм ^.о Новая ^,-*~" I точка Новый I симплекс I I "узел с наихудшим значением целевой функции х, Рис. 7.11. Симплекс-метод в двумерном пространстве. обладает большей общностью и обеспечивает локальное пре- преобразование пространства проектирования, при котором до- достигается минимум унимодальной функции вида M=F(xt, x2, . . ., xN). Схема алгоритма метода Нелдера — Мида представлена на рис. 7.12. Выполняется он следующим образом. Сначала в про- пространстве проектирования вводят исходный симплекс и вычис- вычисляют значения целевой функции в его вершинах. Из полученных значений выбирают наихудшее РхуЛт и наилучшее ЯлуЧш. Затем определяют положение центра симплекса Р, исключая наихудшую точку. Отраженную точку Р* находят по формуле где а — положительная постоянная, называемая коэффициен- коэффициентом отражения. Если точке Р* соответствует лучшее из найден- найденных значений целевой функции, то следующую точку опреде- определяют по выражению где 7 — заранее выбранная постоянная, называемая коэффици- коэффициентом расширения (всегда больше единицы). Если значение целевой функции в точке Р** лучше ее значений во всех преды- предыдущих точках, то его используют вместо прежнего наилучшего
186 Глава 7 Начало \ Выбор начальной точки и на- чального симппекса. Опреде- Определение центра симплекса, наличшеп, наихудшей и от- раженной точек На отраженная точка аилучшей 1 Вычисление точки расширения Замена наипучшей точки точкой расширения Замена наихудшей точки отраженной точной Вычисление точки сжатия Замена наилучшей точки отраженной точкой Нет меет точка сжатияпре- мущества передний- Иет Достигну/пали схо- сходимость 1 Замена наихудшей точки точкой сжатия ± Сдвиг всех точек наполо- наполовину расстояния до наи- наилучшей точки Рис. 7.12. Блок-схема алгоритма метода Нелдера — Мида. значения в точке Рлучш и после проверки сходимости процесс повторяется. Если же Р** не лучше Р*, то Рлучш заменяют на Р* и продолжают поиск. Если ранее найденная точка Р* не лучше Ря„чш, то Рхудш заменяют либо прежней точкой Рхудш, либо точкой Р*, причем выбирают ту из них, в которой целевая функция имеет лучшее значение. После того как выбор сделан, по формуле определяют положение точки сжатия, причем р — коэффициент сжатия, значение которого заключено между нулем и единицей. Если точка Р** оказывается более удачной, чем Рхудш, то в дальнейшем ею заменяют РхуДш. В противном случае прежде, чем продолжить итерации, все Pt заменяют на новые: р . it ст~Г "луч Г I, НОВ О
Оптимизация. Часть II 187 Описанный алгоритм обладает достаточной гибкостью, по- позволяющей учитывать локальные топологические свойства по- поверхности, описанной целевой функцией. Симплексы вытяги- вытягиваются в направлении наклона плоскостей, их оси поворачива- поворачиваются при встрече с впадиной на поверхности целевой функции, вблизи экстремума они сжимаются. В целом метод симплексов можно охарактеризовать как весьма эффективный и удобный для выполнения на ЭВМ. 7.11. МЕТОД ШТРАФНЫХ ФУНКЦИЙ Почти все методы оптимизации, описанные выше, предназна- предназначены для отыскания абсолютных экстремумов. Многие из них обладают высокой эффективностью и существенно облегчают выбор оптимальной конструкции. Однако в инженерной прак- практике часто встречаются задачи, содержащие условия вида /=1, 2, .... J, для решения которых целесообразно использовать рассмотрен- рассмотренные выше методы. С этой целью вводят штрафную функцию и образуют новую составную целевую функцию где F{xt) — рассматриваемая ограниченная функция, M(xt) — составная неограниченная функция, а ц>Ю](хг)] — штрафная функция, учитывающая ограничения, заданные неравенствами. Как видим, новая целевая функция образуется сложением целевой функции рассматриваемой задачи и штрафной функции. В качестве примера штрафной функции рассмотрим функцию ц>(хг), которая равна нулю во всех точках пространства про- проектирования, удовлетворяющих условиям Gj(Xi)^0, и стре- стремится к бесконечности в тех точках, в которых эти условия не удовлетворяются. Если все условия удовлетворяются, то функ- функции М (xt) и F (хг) имеют очевидно один и тот же минимум. Если же хотя бы одно условие не удовлетворяется, то целевая функ- функция приобретает бесконечно большие значения, весьма далекие от минимального значения F(x}). Тем самым на каждую кон- конструкцию, не удовлетворяющую поставленным условиям, «на- «налагается штраф». Введение штрафной функции, о которой говорилось выше, связано с некоторыми трудностями, которые, как указывает ряд исследователей [2, 3, 6—8], можно преодолеть, если искать минимум, последовательно вводя несколько штрафных функций. При этом решение одной задачи на безусловный минимум за- заменяется отысканием решений ряда задач, причем каждое еле-
188 Глава 7 дующее решение все ближе к полному решению задачи. В ме- методе Фиакко — Маккормика [6—8] используется штрафная функция вида ф[0/(*/)] ='А1 (*/)• р=1,2, .... где гр — штрафной параметр, а индексом р обозначены последо- последовательные значения штрафного параметра, соответствующие порядковому номеру рассматриваемой задачи. В результате неограниченная целевая функция принимает вид j M(rp, Xi)=F(Xi) + rpJ^ о~Ь)' P=l>2'---* В соответствии со свойством обратной функции функция М будет стремиться к бесконечности на границе, соответствующей поставленному условию. Решение в этом случае получается следующим образом. Сначала в пространстве проектирования выбирают какую-либо подходящую точку. Затем с помощью выбранного метода находят оптимум, соответствующий задан- заданному начальному значению гх. Поскольку исходная точка рас- расположена в области существования решения, то и найденный оптимум тоже будет находиться в этой области. Никакая тра- траектория наискорейшего спуска, выходящая из точки пространства проектирования, не может пересечь границу, заданную допол- дополнительным условием. Найдя минимум, используют его как исходную точку для новой целевой функции с меньшим значе- значением гр. Процедуру оптимизации повторяют, используя убы- убывающие значения гр: r1>r2>rs>ri. . .>0. По мере того как гр стремится к нулю, решение оптимизацион- оптимизационной задачи на абсолютный минимум стремится к решению задачи на условный минимум. Изон [4] использовал две простые штрафные функции где 1 при Gj (x,-) < О, О при Gj(x
Оптимизация. Часть И 189 Мишке [15] предложил функцию вида где в случае нарушения условий Ь=\, а в случае их выпол- выполнения Ь=0; ХЛуд — вектор, соответствующий конструкции, удовлетворяющей поставленным условиям. Входящая в эту целевую функцию штрафная функция представляет собой глад- гладкую унимодальную функцию, описывающую гиперповерхность, вершина которой соответствует нулевому значению целевой функции и расположена в известной точке Хи . Поверхность, описываемая штрафной функцией, препятствует выходу траек- траекторий поиска из пространства проектирования. Пример 7.2 "tfe 2г Вал, передающий крутящий момент, проектируется для одного из устройств аэрокосмической системы. Его длина 10 см, максимальный крутящий момент Т=50 Н-м. Поскольку очень важно, чтобы вес каждой детали был минималь- минимальным, требуется выбрать такую конструкцию вала, при которой он будет обла- обладать необходимой прочностью при наименьшем возможном весе. Чтобы удов- удовлетворить этому требованию, используют материал, обладающий исключитель- исключительно высокой удельной прочностью ¦— сплав титана, алюминия, молибдена и ванадия lTi8AHMolV. Сплав имеет следующие свойства: плотность р=437 кг/м3, модуль упругости ?=121 ГПа, предел прочности на сдвиг S=0,414 ГПа. По практическим соображениям, обусловленным функциональными особен- особенностями устройства, максимальное значение радиуса г не должно превышать 2 см, а, согласно технологическим требованиям, толщина стенки вала t должна быть не менее 1 мм. Определить радиус и толщину стеики вала оптимальной конструкции при коэффициенте запаса JV= 1,5. Рассматриваемый вал может разрушиться либо под действием сдвиговых напряжений, либо в результате потери устойчивости при кручении. Сдвиговое напряжение, создаваемое крутящим моментом, определяется по формуле <г т
190 Глава 7 Чтобы вал не разрушился под действием сдвиговых напряжений, должно удовлетворяться условие Т 9 1 ^- а = N ' а чтобы он не потерял устойчивость при кручении — условие . кр где SSiKV— критическое напряжение сдвига при кручении. В книге Роарка 1 приводятся следующие формулы: при А ±y* при к> 7,72 Таким образом, можно сформулировать задачу в следующей стандартной фор- форме: Проектные параметры rut. Целевая функция, минимум которой требуется найти, W=2nrtLp, Ограничения-неравенства Т S по сдвиговым напряжениям п^ТЩ ^ "w* • Т S й ^ '?'кр по устойчивости при кручении 2nr2t по величинам геометрических параметров 0,001 м<<«:г«:0,02 м. Для решения задачи воспользуемся подпрограммой SEEK.1 из пакета программ OPTISEP [18], в которой используется метод Хука — Дживса. Целевая функ- функция определяется подпрограммой UREAL, а штрафная функция автоматичес- автоматически вводится подпрограммой SEEK1, если нарушается какое-либо условие. Подпрограмма CONST определяет все пять условий, заданных неравенствами, требуя, чтобы пять значений РН1A) при удовлетворении условий были поло- положительными. В качестве начальных для поиска оптимального решения была задана пара значений г=0,019 м, ^=0,017 м, удовлетворяющих всем услови- условиям. Подпрограмма ANSWER выводит на печать окончательные значения про- проектных параметров и целевой функции, а также принятые ограничения. 1 RoarkR. J., Formulas for Stress and Strain, N. Y., McGraw, 1965, p. 359,
Оптимизация. Часть II 191 с с с G С С С с с с с с с с с с п L> с с с •С с с с г* с. Программа оптимального проектирования юла,- передающего крутящиймомен/кдляустройстеа аэротсмичЁсш системы-минимального веса, т.шуп Ш.9.77 DIMENSION XB),PHIE},PSni},RHAXB),RHIMB!,XSTRTB), REAL I ' RMAX(I) * 0.02 RMINU) = 0.001 RHAX'B) = 0.02 RMIN<2) = O.OOt Задание начальных значений XSTRTUJ = 0.019 XSTRTB! = 0.01? Оптимизация методам прямого поиска Хут-Дживса CALL SEEKK2, RHAX, RHIN, 5, 0, 0.01, 0.01, XSTRT, 2, S 100, 300, 0, 1, X, UEIGHT, PHI, PSI, UQRK1, J H0RK2, tlORKJ, HQRK4> Запись результатов CALL ANSUEff (UEIGHT, X, PHI, PSI,. 2, 5, 0). STOP END Подпрограмма UREAL Вычислят вес валалоего. размерам • Т.Шуп W.9.TT SUBROUTINE UREAL -(X, WEIGHT) DIMENSION X(l) REAL L RHO = 437. L = O.'I R « XA) T = X<2) PI = 3.1415?2< HEIGHT = 2. + PI * R * T * L « RHO RETURN END
192 Глава 7 С с' Подпрограмма CONST с Определяет ограничения на конструкцию, выраженные с неравенствами. с Т.Шуп 14,9.77 с с ¦SUBROUTINE CONST (X,NCOKS, PHI) CtfiENSION XA), PHIU) REAL L С E = 1.21E11 SSYP = 4.14E8 FS = 1.5 TOR = 50. L = 0.1 R = XA) T = X<2> PI = 3.141592S С с Вычисление ограничения по напряжению сдвига РНК1) = SSVP / FS —fOR /<2. *PI*R*R*T> с с Вменение ограничения по патере устойчивости при сдвиге SSCR =E*T*t/(L*L)*<3. ¦ SORT ( 3.4 + 0.24 * ( L J JSDRT ( T ¦ R ) ) ** 3 ) ) IF (L/R .GT. 7.72*SBRT(R/T)) SSCR = 0.272*E*(T/R)**I.5 РНП2) = SSCR / FS - TOR / ( 2. ¦ PI * R * R * T ) С с Вычисление геометрических ограничений РНПЗ) = 0.02 - R РНИ4) = Т - 0.001 РНН5) = R - Т с RETURN END Ниже приводится часть выдачи, которую печатает программа. В полученном решении ни одно из принятых ограничений не нарушено, хотя значения неко- некоторых из них весьма близки к нулю. Это говорит, по-видимому, о том, что оптимальное решение соответствует границе пространства проектирования, Найденное оптимальное решение HIN1MUH U = О.20О104О2Е 01 Огр ан ичен и я- нер авенства Х( нства РНК РНК РНК. РНК РНН 1) = 2) = 1) = 2) = 3) = 4) = 3> = O.38074213E-0Z 0.1У900010Е-02 0.14В73139Е Ов 0.80149512Е 10 0.1619257УЕ-01 0.99000101Е-03 0.18t74202E-02
Оптимизация. Часть II 193 7.12. МЕТОДЫ КОСВЕННОЙ ОПТИМИЗАЦИИ Рассмотрение методов поиска экстремумов функций многих переменных нельзя считать полным без обсуждения методов расчета стационарных точек. Необходимым условием существования максимума, минимума или седловой точки функции многих переменных является ра- равенство нулю всех ее первых производных по независимым переменным. Иными словами, стационарная точка целевой функции M—F(Xi, x2, . . ., xN) удовлетворяет условиям дх1 ' дх2 ' ' dxjv Чтобы выяснить, является ли эта точка минимумом, максимумом или седлом, приходится исследовать вторые производные функ- функции. Для этого удобно воспользоваться матрицей Гессе d2F dx% Необходимым и достаточным условием локального минимума является положительная определенность этой матрицы. Это означает, что все собственные значения матрицы должны быть положительными. Локальному максимуму соответствует отри- отрицательно определенная матрица Гессе, для которой все соб- собственные значения отрицательны. Последовательность действий при поиске оптимума показана на рис. 7.13. Сначала находят все N первых частных производ- производных и приравнивают их нулю. Полученную систему уравнений решают относительно всех возможных комбинаций проектных параметров, удовлетворяющих входящим в нее уравнениям. Если уравнения линейные, то задача решается непосредственно, так как в этом случае она имеет одно решение. Если же урав- уравнения нелинейные, как это обычно бывает, то система может иметь несколько решений. Найдя все решения, отбрасывают те из них, которые не соответствуют экстремумам. Для этого во всех найденных точках вычисляют вторые производные. Полу- Получив окончательную группу решений, выбирают из нее то, кото- которому соответствует наилучшее значение целевой функции. Это решение и является оптимальным. Хотя изложенный выше метод с математической точки зре- зрения представляется непосредственно ведущим к решению, в
194 Глава 7 действительности он непрактичен, так как оптимальное решение очень часто соответствует границе пространства проектирования, а не одной из стационарных точек. Кроме того, этот метод тре- требует вычисления собственных значений матриц и решения си- систем нелинейных алгебраических уравнений. Решение системы N урав- уравнений с N неизвестными dF/дх^О, H2,.,.,n Проверка.матрицы Гессе для каждого решения От брас ывание решений не обладающих экстре- экстремальными свойствами Выбор наилучшего из оставшихся решений Рис. 7.13. Метод косвенной оптимизации Интересной разновидностью метода стационарных точек является метод множителей Лагранжа, при использовании которого в процессе поиска оптимального решения стремятся, удовлетворить равенства Qj (xi> X2> • ¦ • > xn) — О* Чтобы получить решение, вводят новую целевую функцию, являющуюся линейной комбинацией прежней целевой функции и левых частей выписанных выше уравнений, умноженных на постоянные множители: М (х„ Я,у) = F (*.) +Х& + 12Q2 + ... +KjQj. %j называются множителями Лагранжа и рассматриваются как дополнительные неизвестные, определяемые в процессе решения. В результате система уравнений для определения стационарных точек оказывается состоящей из J-\-N уравнений с J-\-N не-
Оптимизация. Часть II 195 известными Если все уравнения Qk=0 (&=1, 2, . . ., J) удовлетворены, то члены с множителями kj обращаются в нуль и поиск оптимума функции М оказывается эквивалентным поиску оптимума функ- функции F. Следует отметить, что те из уравнений, служащих для нахождения стационарных точек, которые получаются приравниванием нулю частных производных новой целевой функции по неизвестным множителям Лагранжа, эквивалентны исходным уравнениям, выражающим ограничения: дМ дМп _ 7.13. РЕКОМЕНДАЦИИ ПО ВЫБОРУ АЛГОРИТМОВ ОПТИМИЗАЦИИ ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ Каждой сложной задаче проектирования присущи свои спе- специфические особенности, затрудняющие применение традици- традиционных алгоритмов оптимизации. Хотя нет ни одного универ- универсального метода, позволяющего успешно решать все задачи, некоторые методы лучше приспособлены для решения задач определенных типов. Тщательный выбор подходящего алго- алгоритма часто позволяет сэкономить и машинное время и усилия, затрачиваемые инженером на решение задачи. Выбирая алго- алгоритм, следует учитывать следующие рекомендации (расположены в произвольном порядке). 1. Проанализировать особенности поверхности, описыва- описываемой целевой функцией. Если известны топологические свойства, исследуемой поверхности, это может помочь правильно выбрать подходящий алгоритм. Так, если поверхность имеет гладкие складки, не рекомендуется применять методы покоординатного подъема или градиентные методы. Если же складки явно выра- выражены, то градиентным методам следует предпочесть методы кон- конфигураций. Для поверхностей с глубокими впадинами метод симплексов или метод Розенброка часто оказываются более эффективными, чем метод Хука — Дживса. Если есть основание считать поверхность мультимодальной, то правильней будет вы- выбрать в пространстве проектирования несколько начальных точек и убедиться, что во всех случаях получается одно и то же ре- решение. При обнаружении нескольких локальных оптимумов конструкцию следует разрабатывать с учетом лучшего из них. К сожалению, даже самый тщательный выбор начальных точек не гарантирует нахождение всех локальных оптимумов. 2. Изучить характер проектных параметров. Хотя, как пра-
196 Глава 7 вило, большинство параметров, с которыми имеет дело инженер, могут принимать любые значения, некоторые параметры имеют лишь дискретные или целые значения. Примерами могут служить диаметры труб, число зубьев шестерен или число болтов во фланце. В таких случаях можно пользоваться обычными алго- алгоритмами, не обращая внимания на эти особенности переменных. Найдя оптимальное решение, следует округлить значения пере- переменных до целых значений. При этом приходится проверять значения целевой функции при округлении значения перемен- переменной до ближайшего большего или меньшего целого значения. Если задача очень сложна, такой подход, возможно, не позволит получить наилучшее решение. В этом случае придется прибег- прибегнуть к методам, специально приспособленным для решения таких задач. Их описание можно найти в литературе по во- вопросам оптимизации. К сожалению, они не гарантируют, что полученное решение будет лучше решения, полученного в ре- результате округления. 3. Выяснить, сколько времени потребуется для решения задачи. Время, необходимое для решения задачи оптимизации с помощью данного алгоритма, суммируется из времени подго- подготовки задачи и времени счета на ЭЦВМ. Составление дополни- дополнительных подпрограмм (например, при введении штрафной функ- функции) повышает стоимость использования алгоритма. Нередко, выбирая тот или иной алгоритм, приходится идти на компромисс, решая вопрос, следует ли затратить дополнительное время на подготовку решения задачи «быстрым» методом или правильней воспользоваться не столь быстрым, но зато более простым ме- методом. Этот вопрос следует решать каждый раз особо, так как стоимость времени программирования и машинного времени . зависит от того, где выполняется работа. 4. Проанализировать особенности алгоритма. Анализ струк- структуры алгоритма часто позволяет решить вопрос о его пригодности для решения той или иной конкретной задачи. Не рекомендуется использовать методы, требующие нахождения частных произ- производных в аналитическом виде, так как для многих целевых функций это невозможно сделать (примером могут служить зависимости, полученные экспериментально). Кроме того, если структура производных, полученных аналитически, очень слож- сложна, то само дифференцирование, может резко увеличить стои- стоимость подготовки задачи и вероятность ошибок со стороны про- программиста. Методы, включающие изменение масштабов, как правило, обладают большей эффективностью и гибкостью. От- Отметим, что более гибкие программы для ЭВМ обычно не отли- отличаются большими размерами или временем счета. Так как всегда желательно испробовать для решения данной задачи несколько разных алгоритмов, то заслуживает внимания «пакетный» под-
Оптимизация. Часть II 197 ход, позволяющий переходить с одного алгоритма на другой путем замены в основной программе обращения к подпрограмме. Тем самым исключается необходимость составления новой прог- программы, экономится время и сокращаются затраты труде. 7.14. ПРОГРАММЫ ДЛЯ ОТЫСКАНИЯ ОПТИМУМОВ ФУНКЦИЙ МНОГИХ ПЕРЕМЕННЫХ, СОСТАВЛЕННЫЕ НА ЯЗЫКЕ ФОРТРАН Таблица 7.2 Программы для отыскания оптимумов функций многих переменных, составленные на языке Фортран Наименование ADRANS CLIMB DAVID DFMCG DFMFP FMIND GRAD4 GRID4 MEMGRD NMSERS PATSH RANDOM SEEK1 SEE КЗ SIMPLX Работа [18] [19] [18] [13] [13] [14] [15] [15] [18] [19] [20] [18] [18] [18] [18] Используемый метод Локального случайного поиска, на завершаю щей стадии — метод конфигураций Розенброка Дэвидона—Флетчера — Пауэлла Флетчера — Ривса Дэвидона —Флетчера — Пауэлла Хука—Дживса Нанскорейщего спуска Поиска на прямоуголь- прямоугольной н звездообразно? сетках Развитие метода Дэвндо- на — Флетчера — Пауэл- Пауэлла Нелдера— Мида Модифицированный ме- метод Хука—Дживса Случайного поиска с со- сокращением исследуемой области Хука —Дживса, на за- завершающей стадии — случайного поиска Хука—Дживса Симплекс-метод Особенности Содержит штрафную функцию Касательные аппрок- аппроксимируются секу- секущими Производные и штраф- штрафную функцию вво- вводит пользователь То же Штрафную функцию задает пользователь То же » » Шаг выбирается в за- зависимости от резуль- результатов, полученных на предыдущем шаге Штрафную функцию задает пользователь Шаг пропорционален значениям перемен- переменных. Для увеличения шага вводится спе- специальный множитель Содержит штрафную функцию — —
198 Глава 7 Известно множество превосходных программ, составленных на языке Фортран и предназначенных для отыскания оптимумов функций многих переменных; постоянно появляются новые программы такого рода. Невозможно перечислить их все, так как при этом неизбежно окажется пропущенной чья-то любимая программа. Чтобы избежать этой опасности, мы отобрали 15 про- программ и свели их в табл. 7.2. При этом мы руководствовались следующими критериями: 1. Доступность программы. 2. Ее хорошая документированность. 3. Наличие опыта использования программы. 4. Разнообразие используемых в программе методов и на- наличие в ней по крайней мере одного «пакета» подпрограмм. Аналогичная группа программ на языке Фортран, многие из которых вошли в табл. 7.2, была недавно предметом срав- сравнительного исследования, выполненного Изоном [4, 5], который использовал несколько программ для решения 10 разных задач средней сложности. Качество программы оценивалось ее общ- общностью, эффективностью, а также стоимостью подготовки и использования. Хотя при интерпретации результатов Изона следует соблюдать осторожность, необходимо отметить его выводы о положительных качествах программы PATSH и о целесообразности использования «пакета» программ OPTISEP [18]. ЗАДАЧИ 7.1. Емкость отстойника для жидких отходов должна составлять 40 000 л. Изготовляется отстойник из железобетона толщиной 10 см. Определить геомет- геометрические параметры отстойника, при которых на его изготовление пойдет минимальное количество бетона. т 7.2. Решить задачу 7.1 для случая, когда отстойник имеет крышку. 7.3. Изготовитель контейнеров проектирует открытый контейнер из листового материала, раскрой которого показан на рисунке. Заготовка выре- вырезается из листа, сгибается по пунктирным линиям и сваривается четырьмя швами. Каковы должны быть размеры контейнера наибольшего объема, если площадь его дна не должна превышать 1 м2 и ни одни из линейных размеров а, Ь и с не должен быть больше другого более чем в 3 раза?
Оптимизация- Часть II 199 7.4. Часто требуется найти прямую, наилучшим образом^аппроксимирую- щую совокупность экспериментальных точек, как показано на рисунке. Уравнение такой прямой у=тх-\-Ь. Суммарная ошибка в случае k точек определяется выражением k SUM=>] (d?)//«. Составить программу для ЭЦВМ, которая позволяла бы находить минимум SUM и оптимальные значения т и Ь при /=1, /=2 и /=4. Экспериментальные точки имеют следующие координаты: i 1 2 3 4 5 1,0 1,5 2,8 2,7 4,3 1,0 2,8 2.5 4,0 3,0 7.5. Аппроксимируя в задаче 7.4 экспериментальные точки квадратичной параболой у=^хг-\-а2х-\-а3, найти оптимальные значения ах, а2 и а3 для тех же трех случаев. 7.6. Решить пример 6.1 из предыдущей главы, пользуясь двумя разными методами оптимизации. 7.7. Выбрать геометрические! параметры кривошипно-шатунного меха- механизма, показанного на рисунке, так чтобы достигнуть наилучшей аппроксима-
200 Глава 7 ции (с наименьшей ошибкой) с помощью функции XTpe6=l4-cos2e прн Действительная зависимость *(8) выражается соотношением Ошибку можно выразить в виде 90е Дополнительные условия имеют вид 7.8. Передаточное отношение зубчатой передачи, показанной на рисунке, связывающее угловую скорость последней шестерни с угловой скоростью пер- первой (', зависит от числа зубьев Nj каждой шестерни: Требуется спроектировать зубчатую передачу, для которой i было бы как можно ближе к 1/10л. По практическим соображенням число зубьев Njдолжно быть заключено в интервале значений 20<:Л/у«:10О (/=1, 2, . . ., 6). Выбрать наилучшую возможную конструкцию, найдя значения N,-, A ih 7,9. Сравнительно простая с математической точки зрения целевая функ- функция Розенброка
Оптимизация. Часть 11 описывает поверхность с впадиной (показана на рисунке). Мтимальное значение целевой функции соответствует точке с координатами A; 1). Если взять начальную точку во втором квадранте, то не всегда удается обеспечить сходимость. Выбрав исходную точку с координатами (—!; 1), попытаться решить эту задачу оптимизации: а) методом покоординатного спуска, Щ гра- градиентным методом н в) методом конфигураций. -2,0 7.10. По стальной трубе внешним диаметром 8,9 см и внутренним дна* метром 7,8 см (коэффициент теплопроводности ?=43,27 Вт/(м-К)) подается нагретая жидкость при температуре 148°С. Труба имеет два слоя изоляции. Коэффициент теплопроводности внутреннего слоя изоляции ?=0,2 Вт/(м-К), внешнего — fe = 0,5 Вт/(м-К). Коэффициент теплоотдачи нд внутренней по- поверхности трубы 230 Вт/(ма-К), а иа внешней поверхности изоляции 23 Вт/ (мг-К). Максимальная допустимая температура внешней поверхности изоля- изоляции 38ЧС, температура окружающего воздуха 27*0. Требуется так спроектиро- спроектировать изоляцию трубы, чтобы ее стоимость была минимальной. Максимальный допустимый внешний радиус 12 см, стоимость материала внутреннего слоя изоляции 35 долл./м3, а материала внешнего слоя 100 долл./м8. Теплообменом между слоями изоляции можно пренебречь. Внешняя изоляция Внутренняя изоляция Стальная mpyifa
202 Глава 7 ЛИТЕРАТУРА 1. Brooks S. H., A Discussion of Random Methods for Seeking Maxima, Opera- Operations Research, 6, March, pp. 244—251 A958). 2. Carroll C. W., An Operations Research Approach to the Economic Optimi- Optimization of Kraft Pulping Process, Doctoral Dissertation, The Institute of Paper Chemistry, Appleton, Wise, 1959. 3. Carroll C. W., The Created Response Surface Technique for Optimizing Nonlinear Restrained Systems, Operations Research, 9, pp. 169—184 A961). 4. Eason E. D., Fenton R. G., A Comparison of Numerical Optimization Methods for Engineering Dezign, ASME Paper 73-DET-17, 1974. 5. Eason E. D., Fenton R. G., Testing and Evaluation of Numerical Methods for Design Optimization, UTME-TP 7204, University of Toronto, Sept., 1972. 6. Fiacco A. V., McCormick G. P., Computational Algorithm for the Sequ- Sequential Unconstrained Minimization Technique for Nonlinear Programming, Management Science, No. 10, pp. 601—617 A964). 7. Fiacco A. V., McCormick G. P., Nonlinear Sequential Unconstrained Mini- Minimization Techniques, N. Y., Wiley, 1968. [Имеется перевод: Фиакко А., Мак-Кормик Дж. Нелинейное программирование: Методы последователь- последовательной безусловной минимизации.— М.: Мир, 1972.] 8. Fiacco A. V., McCormick G. P., The Sequential Unconstrained Minimization Technique for Nonlinear Programming. A Primal Dual Method, Management Science, No. 10, pp. 360—366 A964). 9. Fletcher R., Powell M. J. D., A Rapidly Convergent Descent Method for Minimization, Computer J., No. 6, pp. 163—168 A963). 10. Fletcher R., Reeves С. М., Function Minimization by Conjugate Gradients, Computer J., No. 7. pp. 149—154 A964). 11. Fletcher R., ed., Optimization, Academic Press, N. Y., 1969. 12. Hooke R., Jeeves T. A., Direct Search Solution of Numerical and Statistical Problems, /. Assoc. Сотр. Mach., No. 8, pp. 212—229 A961). 13. IBM System/360 Scientific Subroutine Package (SSP) 360A-CM-03X, Ver- Version 3, 6th ed., March, 1970. 14. MIT Information Processing Center, Applications Program Series AP-78 (APD-46), Cambridge, Mass. 15. Mischke C. R., An Introduction to Computer-Aided Design, Englewood Cliffs, N. J., Prentice-Hall, 1968. 16. Nelder J. A., Mead R., A Simplex Method for Function Minimization, Com- Computer J., No. 7, pp. 308—313A964). 17. Rosenbrock H. H., An Automatic Method for Finding the Greatest or Least Value of a Function, Computer J., No. 3, pp. 175—184 A960). 18. Siddall J. N.. «OPTISEP» Designer's Optimization Subroutines (ME/71/ DSN/REP1), Faculty of Engineering, McMaster University, Hamilton, On- Ontario, Canada, 1971. 19. WATLIB, University of Toronto Computer Center, Toronto, Ontario, Canada. 20. Whitney D. E., Joint Mechanical and Civil Engineering Computing Facility, MIT, Cambridge, Mass. 21. Wilde D. J., Beightler С S., Foundations of Optimization, Englewood Cliffs, N. J., Prentice-Hall, 1967.
Глава 8 Методы обработки числовых данных 8.1. ВВЕДЕНИЕ Инженеру обычно приходится иметь дело с большими мас- массивами чисел, поэтому методы обработки числовых данных имеют для него особое значение. Часто ключом к правильному пониманию многих задач служит продуманное представление исходных данных. Напротив, неудачное представление исход- исходных данных бывает причиной путаницы и ошибок в решении задачи. Особое значение в работе инженера имеют следующие виды обработки массивов чисел, которые рассматриваются в данной главе: 1. Интерполяция. 2. Аппроксимация кривых. 3. Численное дифференцирование. 4. Численное интегрирование. 8.2. ИНТЕРПОЛЯЦИЯ Данные, с которыми приходится иметь дело инженеру, часто представляются в виде таблиц. Это может быть связано либо с тем, что данные были получены экспериментально и лишь для некоторых дискретных значений аргумента, либо с тем, что объем таблиц ограничен и в них можно привести лишь не- некоторые данные. Сущность интерполяции состоит в отыскании значения функции в некоторой промежуточной точке. Простейшим видом интерполяции является линейная интер- интерполяция, в основе которой лежит аппроксимация кривой на участке между точками (xh, yh) и (xh+u yh+i) прямой, прохо- проходящей через те же точки (рис. 8.1). Уравнение прямой можно представить в виде у — Ук _ Vk + i — Ук i — Хк или в виде Ук (*—*fe+i) — t Таким образом, зная два табличных значения yh и f/ft+i, соот- соответствующих xh и Xk+i, с помощью указанных формул можно
204 Глава 8 найти значение функции у при любом значении х в интервале [xk, xh+1]. Обычно полагают, что, используя большее число соседних точек и аппроксимируя истинную кривую более слож- сложной линией, можно уточнить полученный результат. В этом разделе излагаются методы нахождения единственного много- многочлена п-й степени Рп(х), аппроксимирующего функцию f(x) Ук+i Рис. 8.1. Линейная интерполяция. кривой, проходящей через все ft+1 заданные в таблице точки (xt, yi), где t=0, 1, ...,«. В этом случае говорят, что много- многочлен удовлетворяет условиям Pn(Xi)=yi при t=0, 1, ..., п. Методы отыскания такого многочлена делятся на три группы: методы Лагранжа, разностные методы и итерационные методы. Интерполяция по Лагранжу При этой интерполяции задается п+1 табличное значение (х(, yt), где i=0, 1, . . ., п. Предполагается, что точки (xit yt) при- принадлежат кривой y—f(x) в интервале хо^.х^.хп. Интерполяци- Интерполяционный многочлен для этого метода имеет вид Р Iy\^=ii h (v\ \ и h ty\ \ f 11 h tv\ где все bj (x) — многочлены степени п, коэффициенты которых можно найти с помощью ft+1 уравнений Pn(xt)=yi, где »=0, 1 п.
Методы обработки числовых данных 205 В результате получим систему уравнений У А (*„) + г/А (*0) + ...+ ynbn (хв) = г/„, Уо^о (хп) + г/А (хп) + . .. + упЬп (дс„) = уп. Если значения bj (xt) выбраны так, что /1 при i = /, °jWt>-\ 0 при 1Ф], то выписанные выше уравнения будут удовлетворены. Это ус- условие означает, что любой многочлен Ъ}(х) равен нулю при каждом хь кроме х}. Следовательно, в общем случае многочлен bj(x) имеет вид bj{x) = Cj(х—х0)(x—xj. ..{x—Xj^)(х—ху+1)...(х—хп). Так как bj(Xj)=l, то коэффициент Cj определяется выражением Наконец, для искомого многочлена получаем C—JCq) (х—х1)...(х—х/_1)(х—х/+1)...(х—х„) Введя обозначения LJ(x) = {x—x0)(x — x1) ... (х — */_!)(* — х/+1) ... (х—хп), можем записать полученный многочлен в более компактном виде Метод разделенных разностей Существует множество разностных методов интерполяции, однако наиболее распространен метод Ньютона для интерполи- интерполирования вперед, известный также как метод Ньютона — Гре- Грегори. Интерполяционный многочлен для этого метода имеет вид Р„ (X) =С0 + СХ (X — Ха) +С2 (Х — Хо) (Х — Х,) + ... ... +сп(х — х0)(х—х1) ... (x—xa_i). Коэффициенты Cj находятся из уравнений Рп(х)=уи t = 0, 1,. . ., п,
206 Глава 8 позволяющих записать систему с0 = Уо, г — Хо) (Х2 —X1)=t/i са+... +сп(хп—х0)(х„ — х1) ... (хп—х„_1) = уп. Это линейная система уравнений с треугольной матрицей, и определение с ее помощью значений Cj не вызывает затруднений, однако существует и еще более простой способ определения Cj, основанный на применении правых конечных разностей *. Если значения х заданы через равные промежутки xi+1—Xi=h, то в общем случае Xi=xo-{-ih, где г = 1, 2, . . ., п. Последнее выражение позволяет привести решаемые уравнения к виду г/о = с0, у, = с0 + cjh + c2ih [(г - 1) h] + ... + с, (t!) A', откуда для коэффициентов получаем _ У1—со __ ух—Уо _ Аур Cl h h — h ¦ Здесь Аг/о называется первой правой разностью. Продолжая вычисления, находим где Д2г/0 — вторая правая разность, представляющая собой разность разностей. Коэффициент Cj можно представить в виде CJ- 1 В оригинале — forward finite differences. При переводе было принято название «правые разности» в соответствии с терминологией, используемой в отечественной литературе в настоящее время для разностных производных [8*].—Прим. ред.
Таблица 8.1 Правые разности xi 4 4 «i Уо Ух Уг Уз У\ Уь ЬУг=У1 + 1-У1 ДУо АИ Д(/2 д% Д2и Д2г/2 А2г/з Д»;/^ = &'yi+1-&'yi &3Уо Д3м Д4Уо Д4М • Д5#о •
208 Глава 8 В общем случае разности более высоких порядков для функции i/—f(x) B интервале хо^х^хп определяются выражением Часто их сводят в таблицы, подобные табл. 8.1, где разности порядка п выражены через разности порядка п—1. Продемон- Продемонстрируем применение метода интерполяции Ньютона на сле- следующем примере. Пример 8.1 Пу;ть имеется следующая таблица данных: *,-, град 10 20 30 40 50 60 «1 0,17365 0,34202 0,50000 0,64279 0,76604 0,86603 (Таблица значений функции i/=sm x.) Требуется найти у при х=23° методом разделенных разностей. С помощью исходных данных составим таблицу разностей. х-, град 10 20 30 40 50 60 0, 0, 0, 0, 0, 0, »i 17365 34202 50000 64279 76604 86603 0,16837 0,15798 0,14279 0,12325 0,09999 — д — 0, — 0 — 0 —0 01039 01519 01954 02326 д —0 —о, —0, 00480 00435 00372 0 0 А4г/,. — ,00045 ,00063 0,00018 — За х0 можно принять любое х;, например х=20°. Необходимые разности стоят на диагонали, идущей от ха вниз. Число используемых разностей выс- высших порядков может быть любым, но чем оно больше, тем выше точность. Одно из достоинств рассматриваемого метода состоит в том, что он позволяет уточнять результат, используя дополнительные разности, причем нет необхо- необходимости начинать вычисления сначала. Поэтому в случае, если неизвестно, сколько членов следует взять, их число можно увеличивать до тех пор, пока
Методы обработки числовых данных 209 их вклад не станет пренебрежимо малым. В данном случае А=10°. Используя только первую разность, найдем у B3) = у + ML B3-*о) = 0,34202 = ^g213 = 0,38 741. Введя дополнительно вторую разность, получим у B3) = 0,3894I -f-^p- B3-A-) B3— хх) =0,39100. Наконец, с помощью третьей разности найдем у B3) =0,39100-f-^r B3—х) B3—*i) B3— х2) =0,39074. Совершенно очевидно, что это значение у очень, близко к точному, равному 0,39073. Используя другие разности, получим другие интерполяци- интерполяционные схемы, например метод Ньютона для интерполяции назад, методы Гаусса для интерполяции вперед и назад. Итерационные методы интерполяции Эти методы основаны на повторном применении простой интерполяционной схемы. Наиболее известным из них является излагаемый ниже метод Эйткена, сущность которого в повтор- повторном применении линейной интерполяции. Выше было показано, что линейная интерполяция между точками (хй, г/о) и (xt, yi) осуществляется по формуле У а (*) = jriix7 {У о ixc —х)— у{ (X,, —х)], с помощью которой, задав значение xif можно составить таблицу функций уц(х), где i=l, 2, . . ., п. Пользуясь этими функциями, с помощью линейной интерполяции у* М = JJ=xT bin (x) (xt —х) —уц (х) (х? -х)] получим новое семейство соотношений. Простой подстановкой можно показать, что выражения для Ущ(х) представляют собой многочлены второй степени, описывающие кривые, проходящие через точки (х0, у0), {хи уг) и {xlt yt). Получив многочлены yi2 с помощью линейной интерполяции и используя функции yi%{x), можно записать выражение для многочлена третьей степени (х) [ описывающего кривые, проходящие через точки (х0, у0), (хи уг), (хз, г/г) и (xit yt). Продолжая этот процесс, будем получать зна- 8 JA2813
210 Глава 8 чения Уи(х), которые будут стремиться к значению f{x). Хотя в принципе этот метод позволяет вводить многочлены степени л>3, обычно этого не делают, стремясь избежать роста оши- ошибок. Следует, однако, отметить, что метод Эйткена не тре- требует, чтобы используемые для интерполяции значения функции были расположены через равные интервалы. Применим метод Эйткена к примеру 8.1. Пример 8.2 Пусть требуется решить пример 8.1 методом Эйткена. Ниже приведена таблица результатов, полученных путем многократного применения линейной интерполяции при х=23°. Видно, что по мере выполнения вычислений зна- значения у B3°) стремятся к истинному значению, равному 0,39073. 1 0 I 2 3 4 5 10° 20° 30° 40° 50° 60° «i 0,17365 0,34202 0,50000 0,64279 0,76604 0,86603 0,39253 0,38578 0,37694 0,36618 0,35367 0 0 0 0 «I, ,39051 ,39019 ,38990 ,38962 0 0 0 ,39073 ,39072 ,39072 Обратная интерполяция Это алгоритм, с помощью которого находят значение аргу- аргумента х, соответствующее заданному значению функции у, ко- которое лежит между двумя его значениями, приведенными в таблице. Чтобы применить изложенные выше методы, нужно видоизменить таблицу, поменяв в ней местами х и у. Единствен- Единственный недостаток этого приема в том, что теперь значения аргу- аргумента не будут расположены через равные интервалы, что ис- исключает использование методов, для которых шаг аргумента должен быть обязательно постоянным. 8.3. АППРОКСИМАЦИЯ КРИВЫХ Существует два основных подхода к аппроксимации таблич- табличных данных кривыми. При одном из них требуют, чтобы ап- аппроксимирующая кривая (возможно, кусочно-гладкая) прохо- проходила через все точки, заданные таблицей. Это удается сделать с помощью методов интерполяции, рассмотренных выше. При другом подходе данные аппроксимируют простой функцией, применимой во всем диапазоне табличных данных, но не обяза-
Методы обработки числовых данных 211 тельно проходящей через все точки. Такой подход называется подгонкой кривой, которую стремятся провести так, чтобы ее отклонения от табличных данных были минимальными. Обычно стремятся свести к минимуму сумму квадратов разностей между значениями функции, определяемыми выбранной кривой и таблицей. Такой метод подгонки называется методом наимень- наименьших квадратов. Метод наименьших квадратов Пусть в таблице задана ft+1 точка (х0, уй), (хи уг), .: ., (хп, уп) и требуется найти аппроксимирующую кривую g(x) в диа- диапазоне хо^х^хп. В этом случае погрешность в каждой таблич- табличной точке будет равна е,- = g(xt) — У;- Тогда сумма квадратов погрешностей определяется выражением Обычно функцию g(x) выбирают в виде линейной комбинации подходящих функций g (х) = c^gi (х) + c2g2 (х)+...+ ckgk (х). Условие минимума Е определяется уравнениями дЕ _ дЕ _ dci дс2 Поскольку дЕ „ = — = 0. дск to (х,) + с.?2 у i то это условие эквивалентно системе уравнений !г = 2? lc^i (х,) + • • • +ckgk(xi)-yi]g1 (Xl) = Ц = 2 ? [clgl (*,) + ... + Ckgk (х,)-У1] gh (х{) = 0. Эти k уравнений, очевидно, можно представить в виде 2Jgf 2 Si (Xt) ё* (X,) •¦¦lei (X;)gk (Х(У i*
212 Глава 8 Так как элементы матрицы в левой части и вектора-столбца в правой определяются табличными данными, то выписанная си- система k линейных уравнений с k неизвестными может быть ре- решена. Можно выбрать любую функцию g(x), лишь бы она была линейной относительно своих коэффициентов. Фактический выбор функции должен осуществляться с учетом специфики табличных данных, под которой понимается их периодичность, экспоненциальный или логарифмический характер, свойства симметрии и наличие асимптотики. Иногда таблицу разбивают на несколько частей и подбирают отдельную аппроксимирующую кривую для каждой части, однако это надо делать осмотрительно. Такой подход оправдан в тех случаях, когда есть основания полагать, что аппроксими- аппроксимируемые данные соответствуют разным физическим состояниям системы. Примерами могут служить переходы конструкции от устойчивого состояния к неустойчивому, переходы от дозвукового течения к сверхзвуковому или от ламинарного к турбулентному. Пользуясь приближенной формулой, не следует выходить за пределы интервала, в котором она справедлива. Ортогональные полиномы Если при построении аппроксимирующей функции в каче- качестве gi (x) используются ортогональные полиномы, для которых 2gj(xi)gk(Xi)=0 при ]ф{, то матрица выписанной в предыдущем разделе системы урав- уравнений будет диагональной, а выражения для коэффициентов с,- упростятся: Sg/(t)yt[2 g)[xt). Это очень облегчает задачу, и именно поэтому во многих стан- стандартных программах подгонки кривых используются ортого- ортогональные полиномы. Сплайны Сплайны лишь недавно стали использовать в вычислитель- вычислительной математике. Однако в машиностроительном черчении они фактически применяются уже давно, так как сплайн — это не что иное, как гибкая линейка, которую деформируют так, чтобы по ней можно было провести кривую через заданные точки (xh yt). Будучи деформирована таким образом, линейка приобретает форму, при которой запасенная в ней упругая энергия минимальна. Используя теорию изгиба бруса при
Методы обработки числовых данных 213 Ут-1 - У| - Уо -_ Рис. 8.2. Сплайны. малых деформациях, можно строго показать, что сплайн — это группа сопряженных кубических многочленов, в местах сопря- сопряжения которых первая и вторая производные непрерывны. Такие функции называют кубическими сплайнами. Чтобы по- построить кубический сплайн, необходимо задать коэффициенты, которые единственным образом определяют кубический много- многочлен в промежутке между данными точками. Например, в случае, представленном на рис. 8.2, необходимо задать все кубические функции <7i(*)> q2(x), . . ., qm(x). В наиболее общем случае эти многочлены имеют вид где kji — постоянные, определяемые указанными выше усло- условиями.
214 Глава 8 Первые 2т условий требуют, чтобы сплайны соприкасались в заданных точках. Эти условия имеют вид Qi(Xi)=yi, i = l, .... /я, 4i+i(Xi)=yi, ;=0, . . ., т— 1. ; Следующие 2т—2 условий требуют, чтобы в местах соприкос- соприкосновения сплайнов были равны первые и вторые производные. Ям (*,•) = Я'( (*<), »= 1. • • •. tn — \, i = \ т — \. Чтобы система алгебраических уравнений имела решение, не- необходимо, чтобы число уравнений точно равнялось числу неиз- неизвестных. На данном этапе мы имеем Am неизвестных и Am—2 уравнений. Следовательно, мы должны найти еще два уравне- уравнения. Обычно используют уравнения ql (дс0) = 0нй (хт) = 0. Полученный таким способом сплайн называют «естественным кубическим сплайном». Найдя коэффициенты сплайна, можно использовать эту кусочно-гладкую полиномиальную функцию для представления данных при интерполяции, подгонке кривой или поверхности. На первый взгляд может показаться, что определение коэф- коэффициентов сводится к решению Am уравнений с Am неизвест- неизвестными. Однако, специально выбрав вид кубических многочленов, можно значительно упростить задачу. Если отдельные кубиче- кубические уравнения имеют вид Я! (х) = tyi + tyt.i + Ax, [(*,_, -dt) Ф - (k, -d,) i=l, ..., m, где Axi = xl—xi.i, t= X~?~1 ' T=l—t, то каждое из уравнений qt (x) содержит только два постоянных неизвестных коэффициента. После того как первое уравнение qt (x) записано, с каждым следующим уравнением добавляется только один новый неизвестный коэффициент. При этом при х= ~Xi_t t=0, t=\, а при x=xt t=0, t—\. Следовательно, при таком выборе кубических многочленов автоматически удовле- удовлетворяются все условия, кроме условий, налагаемых на вторые производные. Последние выражаются для внутренних точек
Методы обработки числовых данных 215 соотношениями i + 2k{ (Axi + Axi+1)+ki+1Ax{ = = 3(diAxl+1+d!+1Axi), а для двух внешних — соотношениями = Mi и A. Таким образом, решаемая система уравнений является ли- линейной, а ее матрица — трехдиагональной: 2 1 О О Ах3 2(Ах2 + Ах3) Ах2 О 1 J u '"J d1Ax2 2i d2Ax3 -j- d3Ax2 U dm J В этой системе уравнений число определяемых коэффициентов равно числу заданных точек. Поэтому решение оказывается не более сложным, чем в случае аппроксимации пг+1 точек много- многочленом /и-й степени. Часто оказывается, что кубический сплайн аппроксимирует функцию лучше, чем многочлен степени т. Следует отметить, что существуют и другие сплайны, получа- получающиеся при других условиях на концах или использовании многочленов более высоких степеней. 8.4. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ Иногда требуется определить приближенную производную функции, заданной таблицей. Соответствующие формулы можно получить с помощью ряда Тейлора или дифференцируя интер- интерполяционные выражения, приведенные в разд. 8.2. Численное дифференцирование табличных функций может дать совершенно бессмысленные результаты, поэтому его следует по возможности избегать. Чтобы лучше понять причины подобных затруднений, рассмотрим два их потенциальных источника. Первая трудность возникает при использовании табличных данных, полученных экспериментальным путем. В любом эксперименте регистриру- регистрируемая полезная информация сопровождается более или менее сильным шумом. Результаты измерений истинного сигнала (рис. 8.3, й) содержат шумовую компоненту (рис. 8.3, б). Если его про-
216 Глава 8 Время Г Врет Время ВремЯ Рис. 8.3. Численное дифференцирование и интегрирование. дифференцировать, то погрешность резко возрастет (рис. 8.3, в). Наоборот, при интегрировании сигнала, содержащего шум, погрешность убывает (рие. 8.3, г). Этот пример показывает, что численное интегрирование — процесс, гораздо более устойчивый^ чем численное дифференцгировадае. I Вторая трудность, встречающаяся ори численном диффе* ренцировании, иллюстрируется на рнс. 8.4. Даже в случав! когда интерполяционный многочлен хорошо аппроксимирует табличную функцию, его производные высших порядков могут не иметь ничего общего с производными аппроксимируемой функции. Это хорошо видно из рис. 8.4 при сравнении наклона и кривизны двух кривых.
Методы обработки числовых данных 217 Рис. 8.4. Одна из трудностей, встречающихся при использовании интер- интерполяционных многочленов для численного дифференцирования. Покажем на простом примере, как можно получить формулы численного дифференцирования, исходя из формул интерпо- интерполяции по Лагранжу. Пусть аппроксимирующий многочлен вто- второй степени Р {х)=С0+Сг (х—Хо)+С2 (х—х„) (x—Xi) выбран так, что соответствующая кривая проходит через точки &>» Уо), (хи уд и (х2, у2). Пользуясь изложенной выше мето- методикой, можно определить значения входящих 6 него постоянных: Продифференцировав многочлен Р(х), получим Р' {х)=С1+С2 Bх~хо—х1). При х=х0, принимая во внимание, что х0—хг=—h, найдем 2h • Полученная величина называется приближением второго по- порядка для производной в точке х=х0. Во всех случаях, когда приходится пользоваться производ- производной, полученной путем численного дифференцирования, следует оценивать порядок величины ошибки аппроксимации. Для Этого используют разложение функции в ряд Тейлора: Приняв х=х0, a t=h (т. е. шагу таблицы), получаем f{x<)-\-h)=yi.
Таблица 8.2 Аппроксимация производных правыми разностями S3 So Производная Уо Уо Уо" По двум точкам 7Г^1~ Уо)-{-2^) По трем точкам +[туо ) ^т(У2—2у1 + Уо) — - ( Ajfe") По четырем точкам ^B(/з-9г/2+ 18^-11г/о)— ^5" (Уз—Зу2 + Зу!—Уо) — f 3 и IV\ -{Thya j По пяти точкам +48yi-25y0) + (jy^ -— A1^-56 + 114Й - -104{/f + 35yo) + (|-ft3j/ovj 2йГ(-%4 + 14(/з-24у2 + Примечание. В скобках за формулами указаны погрешности.
Таблица 8.3 Аппроксимация производных центральными разностями Производная Уо Уо' Уо" По трем точкам к<*->-*-&<") 1 /Л« 1 12Ла 1 По пяти точкам "' + (¦&*) -(т.:) 1 1 1 По семи точкам Примечание. В скобках за формулами указаны погрешности.
Таблица 8.4 Аппроксимация производных левыми разностями Производная <Л> У» Уо По двум точкам -f[(Vo—y-i)+{jyl) По трем точкам 2^C^0—fy-i+y-i) + + {-Tv* ) ¦jr(yo—2y-i+y-2)+ По четырем точкам 3"д A1^-18г/_1+9у_г-2(/_3)+ ¦дГ B^0—5y-i +4у-2—У -з) + р- (Уо—Зг/-1 + 3</_2—у-з)+ По пяти точкам щB5у„-48у_1-+36!/_а- -16y_3+3y_4) + (-^-!/j) 2^-Ey-18</_1 + 24y_2- Примечание. В скобках за формулами указаны погрешности.
Методы обработки числовых данных 221 Следовательно, ^ D* (yo)+^D3(уо)+ .... Аналогичным образом, при e=2h имеем уг = у, + 2hD (у0) + 2h*D* (г/0 + i- h°D3 (y0) Если из этих двух уравнений исключим вторую производную D2(yo), умножив первое из них на 4, а второе на —1 и затем сложив оба, то получим В(уо)= У1~У1~ Уо Н—f-. 2h Это приближение второго порядка для первой производной отличается от полученного ранее членом -о№уо", который и определяет величину ошибки. Аналогичным образом можно получить производные более высоких порядков для форм с правыми, центральными и левыми разностями. Полученные при этом формулы для интерполяцион- интерполяционных многочленов разных типов сведены в табл. 8.2—8.4. 8.5. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ Инженеру часто приходится вычислять значения определен- определенного интеграла численными методами. Это бывает в тех случаях, когда либо не удается выразить интеграл в замкнутой форме, либо она настолько сложна, что проще воспользоваться числен- численным интегрированием. Как было показано выше (рис. 8.3), численное интегрирование представляет собой устойчивый про- процесс. В противоположность численному дифференцированию оно уменьшает влияние погрешностей в исходных данных на окончательный результат. В основе численного интегрирования лежит приближенное вычисление площади под кривой, описыва- описываемой подынтегральной функцией. В общем виде задача форму- формулируется как нахождение значения Методы численного интегрирования классифицируются в зависимости от того, заданы ли значения аргумента через рав- равные интервалы или нет. Так, метод Ньютона — Котеса требует, чтобы значения х были заданы с постоянным шагом, а метод Гаусса не налагает такого ограничения. Перейдем к рассмотрению этих двух методов.
222 Глава 8 Метод Ньютона—Котеса Простейшая из формул Ньютона — Котеса получается при интегрировании методом трапеций, сущность которого состав- составляет линейная аппроксимация подынтегральной функции. Со- Соседние точки (xt, yt) и (xt+i, tji+i), заданные таблицей в интер- интервале а^х^Ь, соединяются прямыми. Если хо=а, а хп=Ь, то интеграл будет представлять собой сумму площадей п трапеций высотой h каждая \ Выразив определенный интеграл через заданные в таблице значения функции, получим ь 1 = J / {х) dx = -1 h [yo+2yi + 2у2+...+ 2yn_i + уп]. а На рис. 8.5 метод трапеций показан графически. Совершенно очевидно, что чем меньше интервал, через который задаются значения функции, тем с большей точностью будет вычислен определенный интеграл. Естественно напрашивается мысль, что можно повысить точность результата, заменив линейную аппроксимацию аппрок- аппроксимацией кривыми более высокого порядка, например парабо- параболами. Правда, чтобы провести параболу, необходимо иметь три точки вместо двух. Аппроксимируя подынтегральную функцию параболами, получим другую формулу, известную как правило Симпсона: В этой формуле число интервалов четное. Для численного интегрирования можно применять также аппроксимирующие многочлены более высоких порядков. Под- Подробно этот вопрос рассмотрен Ральстоном [9] ?. Формула имеет следующий общий вид: ь п $ f (х) dx = Coh X u>tft + СХА*+Vе*' 00, i=o где п — число полос, на которое разбивается площадь под подынтегральной кривой, k — степень используемых многочле- многочленов, х* — некоторая точка в интервале [а, b], /(ft) (х*) — зна- 1 В пренебрежении величинами выше второго порядка.— Прим. ред. 2 См. также работу [4*].— Прим. ред.
Методы обработки числовых данных 223 чение k-ц производной функции f(x) в точке х*, a h — шаг за- заданных значений функции. Значения коэффициентов Со, С* и wt приведены в табл. 8.5. В каждой строке этой таблицы пред- представлен цикл k полос, включающий &+1 узловых точек, необ- необходимых для получения многочлена k-i& степени. Чтобы исполь- а . Ь х Рис. 8.5. Интегрирование методом трапеций. зовать эти данные для задачи более чем с одним циклом (на- (например, k=2, n—G), коэффициенты надо сложить друг с другом так, чтобы последние значения весов перекрывались. Сумма 1 1 4 4 wz 1 1 2 4 4 1 1 2 щ 4 4 1 1 Тогда получим Это выражение согласуется с полученными выше. Последний
Таблица 8.5 Коэффициенты в формулах Ньютона—Котеса к 1 2 3 4 5 6 7 8 Со 1 2 1 3 оо| со 2 45 5 288 1 140 7 17280 4 14175 1 1 1 7 19 41 751 989 1 4 3 32 75 216 3577 5888 1 3 12 50 27 1323 —928 w3 1 32 50 272 2989 10946 7 75 27 2989 —4540 19 216 1323 10946 w. 41 3577 —928 w, 751 5888 989 с, 1 12 1 90 —3/80 —8/945 —275/12096 —9/1400 —8183/518400 —2368/467775
Методы обработки числовых данных 225 член в формуле Ньютона — Котеса указывает на порядок величины ошибки, обусловленный ап- аппроксимацией. Очевидно, что при уменьшении Л величина Л*+» убывает еще быстрее. Однако следует иметь в виду, что ошибка зависит также от /<*>(**). Есть функции, для которых произ- производные высоких порядков приобретают очень большие значения. Для них не удается уменьшить ошибку путем увеличения k. Метод Гаусса При использовании метода Ньютона — Котеса значения функции должны задаваться с постоянным шагам по оси х. Если снять это ограничение, то шаг, с которым задаются зна- значения функции, можно выбрать так, чтобы ошибка аппрокси- аппроксимации была как можно меньше. В этом и состоит сущность метода Гаусса. В формуле i=0 wt и х{ рассматриваются как неизвестные, которые требуется определить. Общее число неизвестных равно 2(я+1). Чтобы определить все коэффициенты многочлена степени 2я+1, надо иметь 2я+2 условий. Поэтому будем аппроксимировать инте- интеграл многочленом степени 2п+1 и потребуем, чтобы ошибка была нулевой для всех многочленов той же или меньшей степени. В результате получим 2я+2 уравнений с 2я+2 неизвестными, которые в общем случае будут линейными относительно wt и нелинейными относительно xt. Если интегрирование произво- производится в интервале [—1, 1], то значения х-г будут представлять собой /г+1 корень полинома Лежандра рп+1(х)=0. Определив значения xt, можно определить значения Wi из линейной системы уравнений. Проиллюстрируем сказанное на примере, когда п—1. Чтобы условие удовлетворялось для всех многочленов степени 2/t-H и менее при f(x)=\, х, х'1. или х3, указанное равенство должно быть
226 Глава 8 точным. Этот вывод позволяет записать следующие уравнения: 1 - J dx = 2, WoXo + щхг = J xdx = 0, -1 1 — J x* i ixl= I x3dx = -I образующие систему четырех уравнений о четырьмя неизвест- неизвестными, которую можно решить, хотя она и нелинейная. Чтобы обойти трудности, связанные с нелинейностью, можно восполь- воспользоваться полиномом Лежандра р2(х)=—1+Зх\ корни которого Xt=—j/3/З и х2=У~3/3. С помощью этих зна- значений х и любых двух уравнений, записанных выше, получим Wo=Wi=l. Следовательно, интеграл можно представить в виде Ограничение на величину интервала Е—1, 1] не такое сильное, как может показаться. Благодаря замене переменной интеграл с произвольными пределами приводится к виду Отметим, что если общий интервал интегрирования разбивается на равные подынтервалы, на каждом из них можно использовать формулу Гаусса, а значение интеграла для всего интервала оп- определить суммированием соответствующих значений, получен- полученных для подынтервалов.
Методы обработки числовых данных 227 ЗАДАЧИ 8.1. В приведенной ниже тарировочной таблице для термопары даны показания вольтметра при изменении температуры с постоянным шагом: Т°, F мВ 0 — 0,670 20 —0,254 40 0,171 60 0,609 80 1,057 100 1,517 С помощью интерполяции по Лагранжу найти показания вольтметра при Т== 8.2. Решить задачу 8.1 методом разделенных разностей. 8.3. Решить задачу 8.1 с помощью кубических сплайнов. 8.4. Рассмотрение точного уравнения Эйлера — Бернулли для больших деформаций бруса приводит к эллиптическим интегралам. Эллиптический интеграл первого рода х записывается в виде F (k, ф) = f yi — ft2sin2 0dQ, где Составить на языке Фортран подпрограмму ELLIP(XK, PHI) для вычисления этого эллиптического интеграла при заданных значениях аргументов. Точность проверить путем сравнения с табличным значением F@,5; я/6)=0,52942863. 8.5. Инженеру часто приходится сталкиваться с интегралом Сиверта *, который связан с функцией ошибки и интегралом бесселевых функций и имеет вид : S(x, в) = Составить на языке Фортран подпрограмму SIEV (X, ТНЕТА) для вычисления интеграла Сиверта по правилу Симпсона. Для проверки точности воспользо- воспользоваться табличным значением 5A,0; я/3)=0,307694. 8.6. Нередко исходную информацию инженер может получить только в графическом виде. Чтобы пользоваться этой информацией в процессе проекти- проектирования с помощью ЭВМ, ее необходимо аппроксимировать аналитической зависимостью. В случае, показанном на рисунке, кривая зависимости безраз- безразмерной величины нагрузки от безразмерной деформации при сс=90° несиммет- 1 Abramowitz M., Stegun I. A., Handbook os Mathematical Functions, National Bureau of Standards, Applied Mathematics Series 55, U. S. Government Printing Office, Washington, D. C, 1964.
228 Глава 8 рична. Определить по этой кривой значения PLVEI, соответствующие Ц7/1=-0,1; -0,2; -0,3; -0,4; -0,5; -0,6; -0,7; -0,8. С помощью метода наименьших квадратов аппроксимировать эти точки много- многочленами степеней 3, S и 7. Какая аппроксимация лучше? Почему? 8.7. Найти приближенные значения первой производной для точек, определенных по кривой в предыдущей задаче. Полученные результаты срав- сравнить с производными многочленов, найденных методом наименьших квадратов. 8.8. Определить по кривой, соответствующей а=0 в задаче 8.6, значения Р1?1Е1 в интервале —0,5<:WL<:l и аппроксимировать полученные данные кубическим сплайном. Площадь под кривой определить численным интегриро- интегрированием. 8.9. В таблице, заимствованной из работы Мартина х, приведены средние значения роста лиц мужского пола в возрасте от 4 до 17 лет. Для аппрокси- аппроксимации этих данных Берталаифи 2 предложил формулу 1 Martin W. E., Basic Body Measurements of School Age Children, U.S. Dept. of Health, Education and Welfare, Office of Education, Washington, D. C, June 1953. 2 von Bertalanffy L., Quantitative Laws in Metabolism and Growth, Quarter- Quarterly Review of Biology, 32, pp, 217—231 A957),
Методы обработки числовых данных 229 где а, Ь и k — постоянные величины, которые требуется определить. Найти наилучшие значения этих постоянных методом наименьших квадратов. Возраст, годы 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Рост, см 103,9 111,5 117,1 122,4 128,0 133,1 137,9 142,8 147,9 153,7 160,0 166,0 170,9 173,2 8.10. По данным задачи 8.9 найти и представить графически скорость роста лиц мужского пола. В каком возрасте она максимальна? ЛИТЕРАТУРА 1. Abramowitz M., Stegun I. A., eds., Handbook of Mathematical Functions with Formulas, Graphs and Mathematical Tables, Washington, D. C, 1964. [Имеется перевод: Абрамович М., Стиган И. Справочник по специальным функциям.— М.: Наука, 1979.) 2. Ahlberg H. J., Nilson E. N., Walsh J. L., The Theory of Splines and Their Application, N. Y., Academic Press, 1967. [Имеется перевод: Алберг Дж., Нильсон Э., Уолш Дж. Теория сплайнов и ее приложения.— М.: Мир, 1972.] 3. Bickley W. G., Formulae for Numerical Differentiation, Mathematical Ga- Gazette, 25, pp. 19—27 A941). 4. Grove W. E., Brief Numerical Methods, Englewood Cliffs, N. J., Prentice- Hall, 1966. 5. Ketter R. L., Prawel S. P., Jr. Modern Methods of Engineering Computation, N. Y., McGraw-Hill, 1969. 6. LaFara R. L., Computer Methods for Science and Engineering, Rochelle Park, N. J., Hayden, 1973. 7. McCalla T. R., Introduction to Numerical Methods and FORTRAN Program- Programming, N. Y., Wiley, 1967. 8. Pall G. A., Introduction to Scientific Computing, N. Y., Meredith, 1971 9. Ralston A., A First Course in Numerical Analysts, N. Y., McGraw-Hill, 1965" 10. Williams P. W., Numerical Computation, N. Y., Harper and Row, 1972'
Приложение РЕКОМЕНДАЦИИ ПО СОСТАВЛЕНИЮ ПРОГРАММ ДЛЯ ЭЦВМ При составлении программы для ЭЦВМ следует иметь в виду следующее: 1. Программы и подпрограммы должны содержать достаточно подробные комментарии. В комментарии к началу программы следует указать: а) назначение программы; б) входные и выходные данные и их единицы измерения; в) используемый метод, пределы его применимости и особые требования; г) необходимые дополнительные данные о методе решения задачи; д) имя автора; е) дату составления программы. 2. Выдача должна быть достаточно подробно прокомментиро- прокомментирована, чтобы в ней можно было разобраться, не обращаясь к самой программе. В комментарии к выдаче следует: а) дать общий заголовок, поясняющий ее содержание; б) перечислить входные данные, указав их единицы измере- измерения; в) указать порядок расположения выходных данных и их единицы измерения. 3. Следует стремиться разместить выдачу на листах форматом 216x279 мм, так как это облегчает хранение результатов счета. 4. Подпрограммы и программы должны предусматривать конт- контроль качества вводимой информации и вывод на печать ре- результатов диагностики ошибок. 5. В качестве тестов в программу следует включать известные решения, позволяющие проверить работу ее частей. Их следует хранить вместе с текстом программы, так как это облегчает проверку при внесении в программу изменений.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Адамса—Башфорта метод 88 Аппроксимация кривых 210 — производных 218—220 Блочная треугольная форма матрицы 64 Берстоу метод 31 Возмущения параметров метод 43 Вычислительные шаблоны 109, 111 Гаусса—Жордана метод исключения 35 — Зейделя метод 37 — метод 225 — — исключения 33 Гессенберга матрица 62 Гивенса метод 60 Гиперболические уравнения в част- частных производных 124 Гиперповерхность 138 Глобальный оптимум 141 Градиентные методы 168 Деление интервала пополам 144 Дифференциальные уравнения в ча- частных производных 103 Дихотомии метод 146 Дэвидона — Флзтчера — Паузлла ме- метод 176 «Жесткие» задачи 92 Золотого сечения метод 148 Интегрирование методом трапеций 223 — численное 22! Интервал неопределенности 142 Интерполяционный многочлен 204 Интерполяция 203 — обратная 210 — по Лагранжу 204 Исключения областей метод 165 Итерационные методы 18, 36 — — интерполяции 209 Конечных элементов метод 125 Конфигураций метод Хука — Лжив- са 178 Корни алгебраических уравнений 27 Косвенной оптимизации методы 193 Коши задача (задача с начальными условиями) 72, 73 Краевые задачи 72, 93 Лагранжа метод множителей 194 Либмана метод итераций 117 Линейная интерполяция 203 Ложного положения метод 20 Локальный оптимум 140 Максимума поиск 138 Метод наименьших квадратов 211 Милна метод 88 Минимума поиск 138 Многомерного поиска методы 162 Моделирование инженерных систем 96 Мультимодальные функции 171 Наискорейший подъем 170 Нелинейные уравнения 18, 37 Ньютона — Грегори метод 205 — Котеса метод 221 — метод 22, 39 для интерполирования вперед 205 Общий поиск 143 Ограничения — неравенства 140 — равенства 139 Одновременное смещение 37, 114 Одномерного поиска методы 142 Одношаговые методы 74 Оптимизация 135, 162 Параболические уравнения в частных производных ?20 Погрешности 74 Покоординатного подъема метод 163 Половинного деления метод 18
232 Предметный указатель Последовательная верхняя релакса- релаксация 37, 117 Последовательные смещения 37, 117 Правые разности 207 Прогноза и коррекции методы 74, 85 Проектирование 9 Проектные параметры 136 Простой итерации метод 25 Пространство проектирования 138 Прямые методы оптимизации 162, 163 Разделенных разностей метод 205 Релаксации параметр 37 Розенброка конфигураций метод 182 Рунге — Кутта методы 77 Сетки 107 Секущих метод 24 Сеточного поиска метод 166 Симплекс-метод 184 Системы линейных уравнений 32, 45 — нелинейных уравнений 45 Случайного поиска метод 167 Собственное значение наибольшее 52 наименьшее 56 промежуточное 56 Собственные Значения, задачи 50 итерационный метод определе- определения 52 методы преобразования подо- подобия 57 Сплайны 212 Трансцендентные уравнения 18 Трехдиагональная матрица 50 Узловые точки 106, 126 Унимодальная функция 142 Фиакко — Маккормика метод 188 Фибоначчи метод 150 — числа 151 Флетчера — Ривса метод 171 Хаусхолдера метод 61 Хука — Дживса метод конфигураций 178 Хэмминга метод 89 Целевая функция 136 Частные производные 108 Численное дифференцирование 215 Штрафкых функций метод 187 Штурма последовательность 63 Эйлера метод 75 модифицированный 76 Эйткена метод 210 Якоби метод 57 — — итераций 114 LR-метор. 65 QR-метор, 65
ОГЛАВЛЕНИЕ Предисловие редактора перевода . 5 Предисловие , , . 7 Глава I. Введение 9 1.1. Замечания о решении задач, с помощью, ЭВМ 9 1.2. Роль ЭВМ в процессе проектирования 9 1.3. Факторы, принимаемые во, внимание при подготовке программ дла ЭВМ 13 1.4. Вычислительная техлииа для решения инженерных задач . . 13 1.5. Типы задач, решаемых с помощью ЭВМ 15 Литература » » . . « 16 Глава 2. Численное решение алгебраических и трансцендентных урав- уравнении . . . . 17 2.1. Введение 17 2.2. Корни нелинейного уравнения 18 2.3. Определение корней алгебраических уравнений 27 2.4. Решение систем линейных уравнений . 32 2.5. Решение систем нелинейных уравнений 37 2.6. Выбор метода решения систем уравнений 44 Задачи, 45 Литература . . , . 48 Глава 3. Решение задач на собственные значения 49 3.1. Введение 49 3.2. Некоторые основные сведения, необходимые прн решении за- задач на собственные значения 50 3.3. Итерационные методы решения . ............. 52 3.4. Определение собственных значений методами преобразований подобия 57 3.5. Определение собственных значений симметричной трехдиаго- нальной матрицы , 62 3.6. Другие методы вычисления собственных значений- ..... 64 3.7. Выбор алгоритма решения задач на собственные значения . , 67 Задачи 69 Литература 71 Глава 4. Решение обыкновенных дифференциальных уравнений ... 72 4.1. Введение 72 4.2. Задача Коши и краевая задача 72 4.3. Одношаговые методы решения задачи Кощи 74 4.4. Методы прогноза и коррекции 85 4.5. Выбор шага 90
234 Оглавление 4.6. Жесткие задачи 92 4.7. Методы решения краевых задач 93 4.8. Выбор алгоритма решения обыкновенных дифференциальных уравнений 95 4.9. Пакеты программ для моделирования инженерных систем . . 96 Задачи 98 Литература 101 Глава 5. Решение дифференциальных уравнений в частных производ- производных 103 5.1. Введение 103 5.2. Типы дифференциальных уравнений в частных производных 103 5.3. Численное решение дифференциальных уравнений в частных производных методом конечных разностей 104 5.4. Сетки, применяемые прн представлении дифференциальных уравнений в частных производных в конечно-разностной форме 107 5.5. Представление частных производных в конечно-разностном виде 108 5.6. Итерационные методы решения 113 5.7. Параболические уравнения в частных производных 120 5.8. Гиперболические уравнения в частных производных .... 124 5.9. Численное решение дифференциальных уравнений в частных производных методом конечных элементов 125 5.10. Общие рекомендации по решению дифференциальных уравне- уравнений в частных производных 129 Задачи . . . , 131 Литература . . , „ • 134 Глава 6. Оптимизация. Часть I 135 6.1. Введение . . . 135 6.2. Основы теории оптимизации 135 6.3. Методы одномерного поиска , 142 6.4. Сравнение методов одномерного поиска 152 6.5. Имеющиеся программы одномерного поиска на языке Фортран 152 6.6. Заключение 159 Задачи 159 Литература 161 Глава 7. Оптимизация. Часть 1Г 162 7.1. Методы многомерного поиска 162 7.2. Метод покоординатного подъема 163 7.3. Метод исключения областей 165 7.4. Метод случайного поиска 167 7.5. Градиентные методы 168 7.6. Метод Флетчера — Ривса 171 7.7. Метод Дэвидона — Флетчера — Пауэлла 176 7.8. Метод конфигураций Хука—Дживса 178 7.9. Метод конфигураций Розенброка 182 7.10. Симплекс-метод 184 7.11. Метод штрафных функций . . . „ 187 7.12. Методы косвенной оптимизации 193 7.13. Рекомендации по выбору алгоритмов оптимизации функций многих переменных 195 7.14. Программы для отыскания оптимумов функций многих пере- переменных, составленные на языке Фортран 197 Задачи 198 Литература 202
Оглавление 235 Глава 8. Методы обработки числовых данных 203 8.1. Введение 203 8.2. Интерполяция • 203 8.3. Аппроксимация кривых 210 8.4. Численное дифференцирование 215 8.5. Численное интегрирование 221 Задачи 226 Литература ' 229 Приложение. Рекомендации по составлению программ для ЭЦВМ . . 230 Предметный указатель 231
УВАЖАЕМЫЙ ЧИТАТЕЛЬ! Ваши замечания о содержании книги, ее оформлении, качестве пере- перевода и другие просим присылать по адресу: 129820, Москва, И-110, ГСП( 1-й Рижский пер.* д. 2, издательство «Мир».
Терри Е. Шуп РЕШЕНИЕ ИНЖЕНЕРНЫХ ЗАДАЧ НА ЭВМ Старший научный редактор О. Н. Вишнякова Младший научный редактор Л. С. Сысоева Художник В. Ш. Харламов Художественный редактор Л. Е. Безрученков Технический редактор И. М. Кренделева Корректор Н. А. Гиря ИБ № 2723 Сдано в набор 25.05.81. Подписано к печати 19.11.31. Формат 60Х901/,,. Бумага типографская № 1. Гарнитура латинская. Печать высокая. Объем 7,50 бум. л. Усл. печ. л. 15,00. Усл. кр. отт. 15,35. Уч.-изд. л. 12,19. Изд. Mb 20/1387. Тираж 40 000 экз. Зака» № 2913. Цена 95 коп. ИЗДАТЕЛЬСТВО «МИР», Москва, 1-й Рижский пер., 2 Ордена Октябрьской Революции н ордена Трудового Красного Знамени Первая Образцовая типография имени А. А. Жданова Союзполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли. Москва, М-54, Валовая, 2 8
В издательстве «Мир» в 1981 году вышли книги Ф. Шински Управление процессами по критерию экономии энергии Пер. с англ.—М.: Мир, 24,18 л., 3 р. 50 к. В книге американского автора проанализировано влияние качества управления технологическими процессами на потребле- потребление энергии, необходимой для их осуществления. Показаны воз- возможные пути экономии энергетических ресурсов путем создания систем автоматического регулирования, функционирующих по критерию минимального расходования энергии в технологическом процессе. На базе такого подхода строятся системы контроля, регули- регулирования и защиты технологических процессов подачи и сжигания топлива, управления паровыми турбинами, котлами, компрессора- компрессорами, холодильным и массообменным оборудованием, процессами сушки, дистилляции и др. Для специалистов по автоматизации производственных про- процессов, проектировщиков систем автоматического регулирования, операторов технологических установок, студентов и аспирантов соответствующих втузов.
Я- Дитрих Проектирование и конструирование: Системный подход Пер. с польск.—М.: Мир, 26,68 л., 2 р. 10 коп. В книге известного польского ученого излагается методоло- методология инженерного творчества, дается цельное представление о ме- методах, задачах и средствах проектирования и конструирования в свете современных требований. Для проектировщиков, конструкторов, системотехников и эко- экономистов, а также для преподавателей и студентов втузов.
WV & Luc scan group Г. Элион, X. Влион Волоконная оптика в системах связи Пер. с англ.—М.: Мир, 13,25 л., 1 р. 70 к. В книге американских авторов рассматриваются элементы и си- системы волоконно-оптической свизи, ее экономика и важнейшие применения. Предназначена для инженеров, конструкторов и научных работников, занимающихся созданием систем связи, а также для студентов старших курсов соответствующих специальностей.