Text
                    

Л. И. ТУРЧАК ОСНОВЫ ЧИСЛЕННЫХ МЕТОДОВ Под редакцией В. В. ЩЕННИКОВА Допущено Министерством высшего и среднего специального образования СССР в качестве учебного пособия для студентов высших учебных заведений W1 МОСКВА «НАУКА» ГЛАВНАЯ РЕДАКЦИЯ ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ 1987
ББК 22.19 Т89 УДК 519.6(075.8) Турчак Л: И. Основы численных методов: Учеб, пособие.— М.: Наука. Гл. ред. физ.-мат. лит., 1987.—320 с. Содержит основные сведения о численных методах, необхо- димые для первоначального знакомства с предметом. Излагаются основы численных методов для систем линейных и нелинейных уравнений, а также дифференциальных и интегральных уравне- ний. Имеется много задач, примеров и блок-схем для облегчения понимания логической структуры рассматриваемых методов и их использования в расчетах на ЭВМ. Для студентов вузов. Табл. 20. Ил. 72. Библиогр. 56 назв. Рецензенты: кафедра вычислительной математики Московского физико-тех- нического института, кафедра общей и прикладной математики Завода-втуза пр.ч Московском автомобильном заводе им. II. А. Лихачева, доктор физико-математических паук В, 11. Шидловский Т 1702070000—022 053 (02)-87 65-86 Издательство «Паука». Главная редакция физико-математической литературы, 1987
ОГЛАВЛЕНИЕ Предисловие ...................................... 6 Введение...................................... * 9 1. Этапы решения задачи на ЭВМ (9), 2. Математиче- ские модели (11). 3. Численные методы (13). Глава 1. Точность вычислительного эксперимента 14 § 1. Приближенные числа...........................14 1. Числа с плавающей точкой (14). 2. Понятие погреш- ности (15). 3. Действия над приближенными числами (16). § 2. Погрешности вычислений.......................19 1. Источники погрешностей (19). 2. Уменьшение по- грешностей (21). 3. О решении квадратного уравнения (23). § 3. Устойчивость. Корректность. Сходимость .... 25 1. Устойчивость (25). 2. Корректность (27). 3. Неустой- чивость методов (27). 4. Понятие сходимости (28). Упражнения .............. 29 Глава 2. Аппроксимация функции....................31 § 1. Понятие о приближении функции ....... 31 1. Постановка задачи (31). 2. Точечная аппроксимация (32). 3. Равномерное приближение (34). § 2. Использование рядов..........................36 1. Элементарные функции (36). 2. Многочлены Чебыше- ва (39). 3. Вычисление многочленов (45). 4. Рациональ- ные приближения (45). § 3. Интерполирование............................’49 1. Линейная и квадратичная интерполяции (49). 2. Сплай- ны (51). 3. Многочлен Лаграпжа (53). 4. Многочлен Ньютона (55). 5. Точность интерполяции (60). 6. О дру- гих формулах интерполяции (62). 7. Функции двух пе- ременных (62). § 4. Подбор эмпирических формул...................64 1. Характер опытпых данных (64). 2. Эмпирические формулы (65). 3. Определение параметров эмпирической зависимости (68). 4. Метод наименьших квадратов (71). • 5. Локальное сглаживание данных (74). Упражнения............................................76 Глава 3. Дифференцирование п интегрирование ... 78 § 1. Численное дифференцирование......................78 1. Аппроксимация производных (78). 2. Погрешность численного дифференцирования (79). 3. Использование интерполяционных формул (81). 4. Метод неопределен- ных коэффициентов (86). 5. Улучшение аппроксимации (87). 6. Частные производные (89). Г
4 ОГЛАВЛЕНИЕ § 2. Численное интегрирование « 92 1. Вводные замечания (92). 2. Методы прямоугольни- ков и трапеций (95). 3. Метод Симпсона (99). 4. Исполь- зование сплайнов (102). 5. Адаптивные алгоритмы (104). 6. О других методах. Особые случаи (106). 7. Кратные интегралы (109). 8. Метод Монте-Карло (111). Упражнения . ..................................... ИЗ Глава 4. Системы линейных уравнений................114 § 1. Основные понятия..............................114 1. Линейные системы (114). 2. О методах решения ли- нейных систем (117). 3. Другие задачи линейной алгеб- ры (119). § 2. Прямые методы ............................. . 121 1. Вводные замечания (121). 2. Метод Гаусса (122). 3. Определитель и обратная матрица (129). 4. Метод прогонки (130). 5. О других прямых методах (133). § 3. Итерационные методы.......................... 133 1. Уточнение решения (133). 2. Метод Гаусса — Зейделя (136). § 4. Задачи на собственные значения ....... 140 1. Основные понятия (140). 2. Метод вращений (145). 3. Трехдиагональные матрицы (149). 4. Частичная проб- лема собственных значений (152). Упражнения 154 Глава 5. Нелинейные уравнения ....... 155 § 1. Уравнения с одним неизвестным . . . ' . . . . 155 1. Вводные замечания (155). 2. Метод деления отрезка пополам (156). 3. Метод хорд (158). 4. Метод Ньютона (159). 5. Метод простой итерации (161). § 2. О решении алгебраических уравнений............161 1. Действительные корни (161). 2. Комплексные корни (163). § 3. Системы уравнений . .......................164 1. Вводные замечания (164). 2. Метод простой итерации (164). 3. Метод Ньютона (165). Упражнения.........................................168 Глава 6. Методы оптимизации.......................,169 § 1. Основные понятия .... 169 1. Определения (169). 2. Задачи оптимизации (170). 3. Пример постановки задачи (171). § 2. Одномерная оптимизация........................172 1. Задачи па экстремум (172). 2. Методы поиска (174). 3. Метод золотого сечения (176). § 3. Многомерные задачи оптимизации ...... 181 1. Минимум функции нескольких переменных (181). 2. Метод покоординатного спуска (182). 3. Метод гради- ентного спуска (184). § 4. Задачи с ограничениями.................... , 186 1. Метод штрафных функции (186). 2. Линейное про- граммирование (189). 3. Геометрический метод (193). 4. Симплекс-метод (195). 5. Задача о ресурсах (200). Упражнения .............. 203
ОГЛАВЛЕНИЕ 5 Глава 7. Обыкновенные дифференциальные уравнения 205 § 1. Основные понятия................г . . • . 205 1. Постановка задач (205). 2. О методах решения (208). 3. Разностные методы (209). § 2. Задача Коши . ........... 213 1. Общие сведения (213). 2. Одношаговые методы (215). 3. Многошаговые методы (222). 4. Повышение точности результатов (225). § 3. Краевые задачи.................... . . . 227 1. Предварительные замечания (227). 2. Метод стрельбы (229) . 3. Методы конечных разностей (232). . г Упражнения , » . . ......... • 237 Глава 8. Уравнения с частными производными , , . 238 § 1. Элемент^ теории разностных схем ...... 238 1. Вводные замечания (238). 2. О построении разност- ных схем (241). 3. Сходимость. Аппроксимация. Устой- чивость (245). § 2. Уравнения первого порядка............... 251 1. Линейное уравнение переноса (251). 2. Квазилиней- ное уравнение. Разрывные решения (260). 3. Консер- вативные схемы (267). 4. Системы уравнений. Характе- ристики (269). § 3. Уравнения второго порядка . ....... 272 1. Волновое уравнение (272). 2. Уравнение теплопро- водности (277). 3. Понятие о схемах расщепления (283). 4. Уравнение Лапласа (286). Упражнения ........................................ 291 Глава 9. Интегральные уравнения ....... 292 § 1. Постановка задач.................................292 1. Вводные замечания (292). 2. Виды интегральных урав- нений (293). § 2. Методы решения ................................ 295 1. Методы последовательных приближений (295). 2. Чис- ленные методы (297). § 3. Сингулярные уравнения.......................... 300 1. Сингулярные интегралы (300). 2. Численное решение сингулярных интегральных уравнений (305). Список литературы.....................................309 Предметный указатель..................................312
ПРЕДИСЛОВИЕ Внедрение ЭВМ во все сферы человеческой деятель- ности требует от специалистов разного профиля овладения навыками использования вычислительной ‘техники. По- вышается уровень подготовки студентов вузов, которые уже с первых курсов приобщаются к использованию ЭВМ и простейших численных методов, не говоря уже о том, что при выполнении курсовых и дипломных ра- бот применение вычислительных машин становится нор- мой в подавляющем большинстве вузов. Вычислительная техника используется сейчас не толь- ко в инженерных и экономических пауках, но и в таких традиционно нематематических специальностях, как ме- дицина, лингвистика, психология и др. В связи с этим можно констатировать, что применение ЭВМ приобрело массовый характер. Возникла многочисленная категория специалистов — пользователей ЭВМ, для которых необхо- дима литература по дисциплинам, непосредственно свя- занным с применением вычислительной техники. Основной такой дисциплиной является вычислитель- ная математика. Опа изучает методы построения и ис- следования численных методов решения математических задач, которые моделируют различные процессы. Численные методы разрабатывают и исследуют, как правило, высококвалифицированные специалисты-матема- тики. Что касается подавляющей части студентов немате- матических специальностей и инженерно-технических ра- ботников, то для них главной задачей является понима- ние основных идей методов, особенностей и областей их применения. Следует также иметь в виду, что указанная категория читателей не обладает достаточными математи- ческими знаниями для подробного исследования числен- ных методов. К тому же в этом пет особой необходимо- сти специалисту-пематематику, использующему числен- ные методы как готовый инструмент в своей практиче- ской работе. В предлагаемом учебном пособии в сжатом виде приводятся основные необходимые сведения о численных
ПРЕДИСЛОВИЕ 7 методах решения различных прпкладных~задач. Изложе- ние проводится на доступном для студентов втуза уров- не. При необходимости напоминаются основные сведения из курса высшей математики. Для многих рассматривае- мых методов приводятся блок-схемы, а также примеры решения задач, способствующие лучшему пониманию ма- териала. Книга паппсапа с учетом особенностей приме- нения численных методов при решении задач с' исполь- зованием ЭВМ. Поскольку данное учебное пособие не ориентировано на студентов конкретной специальности, то приведенные в нем задачи носят общпй характер. Большой выбор ин- тересных задач содержится в книгах прикладного харак- тера, включенных в список литературы. Они, в частно- сти, могут быть использованы при выполнении курсовых и дипломных работ, а также в научно-исследовательской работе студентов. В список литературы включены также некоторые пособия по численным методам, которые автор использовал в работе над книгой. Читатель может найти в них более подробные сведения по интересующим его разделам курса. Разумеется, это далеко не полный перечень литературы по численным методам и их приложениям. При изложении материала сказался стиль чтения кур- сов лекций для студентов нематематических специально- стей втузов и слушателей факультета повышения квали- фикации. Книга будет полезна студентам и специалистам при первоначальном знакомстве с предметом. Она может служить краткий! справочным пособием, которые студен- ты могут использовать при выполнении расчетных за- даний. Книга содержит девять глав. В гл. 1 излагаются ос- новные понятия, связанные с погрешностями вычисле- ний. Рассматриваются источники погрешностей при рас- четах на ЭВМ. Глава 2 посвящена различным способам аппроксима- ции (приближения) функций. При рассмотрении интер- полирования дано понятие сплайнов, которые получили широкое распространение в вычислительной практике. Выписаны некоторые формулы, которые могут быть по- лезными при самостоятельной работе. Вопросы численного дифференцирования и численно- го интегрирования изложены в гл. 3. Здесь же приведены выражения для аппроксимаций производных, которые могут быть использованы при построении разностных
8 ПРЕДИСЛОВИЕ схем для решения дифференциальных уравнений. Среди методов численного интегрирования упомянуто использо- вание сплайнов. Приведено также понятие адаптивных алгоритмов, которые сейчас широко используются и при решении других задач. Глава 4 содержит основные сведения по численному решению задач линейной алгебры. При первоначальном знакомстве можно опустить § 4, в котором излагаются некоторые задачи' на собственные значения, поскольку эта тема носит специальный характер. j В гл. 5 изложены основные методы решения нелиней- ных уравнений (алгебраических и трансцендентных) и их систем. Глава 6, посвященная методам решения задач опти- мизации, содержит также элементы линейного програм- мирования. Методы решения задач Коши и краевых задач для обыкновенных дифференциальных уравнений излагают- ся в гл. 7. В гл. 8 излагаются численные методы решения урав- нений с частными производными и приводятся некоторые элементы теории разностных схем. Глава 9, посвященная интегральным уравнениям, но- сит ознакомительный характер, и при первом чтении мо- жет быть опущена. Вместе с тем следует отметить, что решение интегральных уравнений, в том числе и сингу- лярных, необходимо во многих областях науки (механи- ке, физике и др.). Автор искренне признателен академику О. М. Бело- церковскому за ценные замечания по рукописи. Полезные предложения по улучшению содержания высказали 3. С. Волк, И. К. Лифанов, В. Б. Миносцев, Г. П. Тиня- ков и другие товарищи, прочитавшие рукопись или от- дельные ее части. Большую помощь в работе над книгой оказал В. В. Щепников. Всем им автор выражает свою глубокую благодарность.
ВВЕДЕНИЕ 1. Этапы решения задачи на ЭВМ. Наиболее эффек- тивное применение вычислительная техника нашла при проведении трудоемких расчетов в научных исследовани- ях. Действительно, современные ЭВМ за 1 мс выполняют такой объем вычислений, на который человеку понадо- бится целый день. При решении задачи на ЭВМ основная роль все-таки принадлежит человеку. Машина лишь выполняет его за- дания по разработанной программе. Роль человека и ма- шины легко уяснить, если процесс решения задачи раз- бпть на перечисленные здесь этапы. Постановка задачи. Этот этап заключается в содержательной (физической) постановке задачи и опре- делении конечных целей решения. Построение математической модели (ма- тематическая формулировка задачи). Модель должна правильно (адекватно) описывать основные законы физи- ческого процесса. Построение или выбор математической модели из существующих требует глубокого понимания проблемы и знания соответствующих разделов матема- тики. Разработка численного метода. Поскольку ЭВМ может выполнять лишь простейшие операции, она «не понимает» постановки задачи, даже в математиче- ской формулировке. Для ее решения должен быть най- ден численный метод, позволяющий свести задачу к не- которому вычислительному алгоритму. Разработкой чис- ленных методов занимаются специалисты в области вычислительной математики. Специалисту-прикладнику для решения задачи, как правило, необходимо из имею- щегося арсенала методов выбрать тот, который наиболее пригоден в данном конкретном случае. Разработка алгоритма и построение блок-схемы. Процесс решения задачи (вычислитель- ный процесс) записывается в виде последовательности элементарных арифметических и логических операций, приводящей к конечному результату и называемой алго-
40 ВВЕДЕНИЙ ритмом решения задачи. Алгоритм можно изобразить в виде блок-схемы. Программирование. Алгоритм решения задачи записывается на понятном машине языке в виде точно определенной последовательности операций — программы для ЭВМ. Составление программы (программирование) обычно производится с помощью некоторого промежуточ- ного (алгоритмического) языка, а ее трансляция (пере- вод па язык ЭВМ) осуществляется самой вычислительной системой. Отладка программы. Составленная программа содержит разного рода ошибки, неточности, описки. От- ладка программы па машине включает контроль про- граммы, диагностику (поиск и определение содержания) ошибок, их исправление. Программа испытывается на ре- шении контрольных (тестовых) задач для получения уверенности в достоверности результатов. Проведение расчетов. На этом этапе готовятся исходные данные для расчетов и проводится счет по от- лаженной программе. При этом для уменьшения ручно- го труда по обработке результатов можно широко исполь- зовать удобные формы выдачи результатов, например распечатку таблиц, построение графиков. Анализ результатов. Результаты расчетов тща- тельно анализируются, оформляется научно-техническая документация. Следует отметить еще один важный момент в процес- се решения задачи с помощью ЭВМ. Это — экономич- ность выбранного способа решения задачи, численного метода, модели ЭВМ. В частности, если задача допускает простое аналитическое решение или измерение, то вряд ли целесообразно привлекать вычисления па ЭВМ. Ино- гда решение задачи производят с помощью большого вычислительного комплекса, хотя это можно было осу- ществить с использованием мпип-ЭВМ пли даже микро- калькулятора. Пе умаляя значения физического эксперимента, пуж- по все-таки отметить неуклонно возрастающую долю вычислений на ЭВМ в общем объеме решения научно- технических задач. В связи с этим наряду с увеличением парка вычислительных машин и повышением их «интел- лектуальных» возможностей возрастает интерес к мате- матическому моделированию и разработке численных методов.
ВВЕДЕНИЕ И 2. Математические модели. Основное требование, предъявляемое к математической модели,— адекватность рассматриваемому явлению, т. е. она должна достаточно точно (в рамках допустимых погрешностей) отражать характерные черты явления. Вместе с тем она должна обладать сравнительной простотой и доступностью ис- следования. Приведем примеры некоторых математических моде- лей, оказавших огромное влияние на развитие различных отраслей науки и техники. При построении математиче- ских моделей получают некоторые математические соот- ношения (как правило, уравнения). При м е р. Пусть в начальный момент времени t — О тело, находящееся на высоте /г0, начинает двигаться вер- тикально вниз с начальной скоростью v0. Требуется най- ти закон движения тела, т. е. построить математическую модель, которая позволила бы математически описать данную задачу и определить параметры движения в лю- бой момент времени. Прежде чем строить указанную модель, нужно при- нять некоторые допущения, если они не заданы. В част- ности, предположим, что данное тело обладает средней плотностью, значительно превышающей плотность возду- ха, а его форма близка к шару. В этом случае можно пренебречь сопротивлением воздуха и рассматривать сво- бодное падение тела с учетом ускорения g. Соответствую- щие соотношения для высоты h и скорости v в любой момент времеци t хорошо известны из школьного курса физики. Они имеют вид 2 — vot — ^-г v^v0 + gt. (0.1) Эти формулы являются искомой математической мо- делью свободного падения тела. Область применения дан- ной модели ограничена случаями, в которых можно пре- небречь сопротивлением воздуха. Во многих задачах о движении тел в атмосфере пла- неты модель (0.1) не может быть использована, посколь- ку при ее применении мы получили бы неверный резуль- тат. К таким задачам относятся движение капли, вход в атмосферу тел малой плотности, спуск на парашюте и др. Здесь необходимо построить более точную математиче- скую модель, учитывающую сопротивление воздуха. Если обозначить через F(t) силу сопротивления, действующую
12 ВВЕДЕНИЕ (0.3^, на тело массой т, то его движение можно описать с по- - мощью уравнений • du -г1 dh /[х с\\ mdi~ms-F’£=~’\ (°-2) К этой системе уравнений необходимо добавить началь- ные условия при t = 0: v = v0, h — hot Соотношения (0.2) и (0.3) являются математической моделью для задачи движения тела в атмосфере. Суще- ствуют и другие, более сложные модели подобных задач (например, о движении планера и т. п.). Заметим также, что модель (0.1) легко получается из (0.2) при F — 0. Известно большое число математических моделей раз- личных процессов или явлений. Укажем некоторые из них, широко используемые в механике. Модель абсолют- но твердого тела позволила получить уравнения движе- ния тел в динамике полета. Модель идеального газа при- вела к системе уравнений Эйлера, описывающей невязкие потоки газов. В гидродинамике широко известна модель на основе уравнений Навье — Стокса, в кинетической теории газов — уравнения Больцмана и т. д. В механике деформируемого твердого тела известны математические модели, описывающие различные среды (упругую, упру- го-пластичную и др.). Имеются математические модели и для описания за- дач экономики, социологии, медицины, лингвистики и др. Адекватность и сравнительная простота модели не ис- черпывают предъявляемых к ней требований. Обратим еще внимание на необходимость правильной оценки об- ласти применимости математической модели. Например, модель свободно падающего тела, в которой пренебрега- ют сопротивлением, воздуха, весьма эффективна для твер- дых тел с большой средней плотностью и формой поверх- ности, близкой к сферической. Вместе с тем. в ряде дру- гих случаев (движения капельки жидкости, парашютного устройства и др.) для решения задачи уже недостаточно известных из курса физики простейших формул. Здесь необходимы более сложные математические модели, учи- тывающие сопротивление воздуха и другие факторы. Отметим, что успех решения задачи в значительной степени определяется выбором математической модели; здесь в первую очередь нужны глубокие знания в той
ВВЕДЕНИЕ 13 области, к которой принадлежит поставленная задача. Кроме того, необходимы знания соответствующих разде- лов математики и возможностей ЭВМ. 3. Численные методы. С помощью математического моделирования решение научно-технической задачи сво- дится к решению математической задачи, являющейся ее моделью. Для решения математических задач использу- ются следующие основные группы методов: графические, аналитические и численные. Графические методы позволяют в ряде случаев оце- нить порядок искомой величины. Основная идея этих методов состоит в том, что решение находится путем гео- метрических построений. Например, для нахождения корней уравнения f(x) — O строится график функции у = ](х), точки, пересечения которого с осью абсцисс и будут искомыми корнями. При использовании аналитических методов решение задачи удается выразить с помощью формул. В частно- сти, если математическая задача состоит в решении про- стейших алгебраических или трансцендентных уравне- ний, дифференциальных уравнений и т. п., то использо- вание известных из курса математики приемов сразу приводит к цели. К сожалению, на практике это слишком редкие случаи. Основным инструментом для решения сложных мате- матических задач в настоящее время являются числен- ные методы, позволяющие свести решение задачи к вы- полнению конечного числа арифметических действий над числами; при этом результаты получаются в виде число- вых значений. Многие численные методы разработаны давно, однако при вычислениях вручную они могли ис- пользоваться лишь для решения не слишком трудоемких задач. С появлением ЭВМ начался период бурного развития численных методов и их внедрения в практику. Только вычислительной машине под силу выполнить за сравни- тельно короткое время объем вычислений в миллионы, миллиарды и более операций, необходимых для решения многих современных задач. При счете вручную человеку не хватило бы и жизни для решения одной такой задачи. Численный метод наряду с возможностью получения результата за приемлемое время должен обладать и еще одним важным качеством — не вносить в вычислитель- ный процесс значительных погрешностей.
ГЛАВА 1 ТОЧНОСТЬ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА § 1. Приближенные числа 1. Числа с плавающей точкой. ЭВМ обрабатывают числа, которые записаны в формах с фиксированной точ- кой и плавающей точкой *). Десятичные числа с фиксированной точкой — это привычная нам форма записи чисел: 5, —10, 175.12, 0.0093 и т. п.; здесь вместо десятичной запятой ставится точка. Как известно, множество целых чисел бесконечно. Однако ЭВМ из-за ограниченности ее разрядной - сетки может оперировать лишь с некоторым конечным подмно- жеством этого множества. Так, во многих моделях ЭВМ диапазон представляемых целых чисел даже в режиме с удвоенной точностью находится примерно в интервале от —2 • 109 до 2 • 109. При решении научно-технических задач в основном используются действительные (вещественные) числа. Для их представления почти во всех машинах использу- ется форма с плавающей точкой. Десятичное число D в этой форме записи имеет вид D — ±ш • 10", где m ап — соответственно мантисса числа и его порядок. Например, число —273.9 можно записать в виде: —2739 • 10-1, —2.739 • 102, —0.2739 • 103. Последняя запись — норма- лизованная форма числа с плавающей точкой. Таким об- разом, если представить мантиссу числа в виде m — = O.didz... dk, то при dt =/= 0 получим нормализованную форму числа с плавающей точкой. В дальнейшем, говоря о числах с плавающей точкой, будем иметь в виду имен- но эту форму. Все сказанное выше распространяется и на числа, за- писанные в других системах счисления. Число N в систе- ме счисления с основанием а можно представить в виде ?) Термины «фиксированная точка» и «плавающая точка» ши- роко используются в операционных системах ЭВМ. Понятия «фиксированная запятая» и «плавающая запятая» утратили силу (примените.!!. ?Р. ;.
§ 1. ПРИБЛИЖЕННЫЕ ЧИСЛА 1э Д' = iO.tfjfl,... ah ап. Из этой записи следует, что под- множество действительных чисел, с которым оперирует конкретная ЭВМ, не является бесконечным: оно конечно п определяется разрядностью к, а также границами по- рядка «!, п2 (пл^п^п2). Можно показать, что это под- множество содержит 2(с: — 1) (п2— nt 4* 1)ссЛ—1 4- 1 чисел. Границы порядка /г,, п2 определяют ограниченность действительных чисел по величине, а размерность к — дискретность распределения их на отрезке числовой оси. Например, в случае десятичных чисел при четырехраз- рядном представлении все значения, находящиеся в ‘ин- тервале между числами 0.2851 и 0.2852, представляются числом 0.2851 (при отбрасывании остальных разрядов без округления). Разность между двумя соседними зна- чениями равна единице последнего разряда. Числа, мень- шие этой разности, воспринимаются как машинный пуль. Таким образом, ЭВМ оперируют с приближенными значениями действительных чисел. Мерой точности при- ближенных чисел является погрешность. 2. Понятие погрешности. Различают два вида погреш- ностей — абсолютную и относительную. Абсолютная по- грешность некоторого числа равна разности между его истинным значением и приближенным значением, полу- ченным в результате вычисления или измерения. Отно- сительная погрешность — это отношение абсолютной по- грешности к прпближеппому значению числа. Таким образом, если а — приближенное значение чис- ла х, то выражения для абсолютной и относительной по- грешностей запишутся соответственно в виде Дх — х — а, бх = Ах/а. К сожалению, истинное значение величины х обычно неизвестно. Поэтому приведенные выражения для по- грешностей практически пе могут быть использованы. Имеется лишь приближенное значение а, и нужно найти его предельную погрешность Аа, являющуюся верхней оценкой модуля абсолютной погрешности, т. е. |Да4 С Аа. В дальнейшем значение Да принимается в качестве аб- солютной погрешности приближенного числа а. В этом случае истинное значение х находится в интервале (а — Да, а 4* Да). Для приближенного числа, полученного в результате округления, абсолютная погрешность Да принимается равно!! половине единицы последнего разряда числа. На-
16 ГЛ. 1, ТОЧНОСТЬ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА пример, значение а — 0.734 могло быть получено округа лением чисел 0.73441, 0.73353 и др. При этом I Arrl 0.0005, и полагаем Д« = 0.0005. Приведем примеры оценки абсолютной погрешности при некоторых значениях приближенной- величины с: а 51.7 -0.0031 16 16.00 La 0.05 0.00005 0.5 0.005/ При вычислениях па ЭВМ округления, как правило, не производятся, а цифры, выходящие-за разрядную сет- ку машины, отбрасываются. В этом случае максимально возможная погрешность результата выполнения операции в два раза больше по сравнению со случаем округления. Предельное значение относительной погрешности —- отношение предельной абсолютной погрешности к абсо- лютной величине приближенного числа: ба = Да/|а|. Например, б(—2.3) — 0.05/2.3 ~ 0.022 (2.2%). Заметим, что погрешность округляется всегда в сторону увеличе- ния. В данном случае б(—2.3) ~ 0.03. Приведенные оценки погрешностей приближенных чисел справедливы, если в записи этих чисел все знача- щие цифры верные. Напомним, что значащими цифрами считаются все цифры данного числа начиная с первой ненулевой цифры. Например, в числе 0.037 две значащие цифры: 3 и 7, а в числе 14.80 все четыре цифры знача- щие. Кроме того, при изменении формы записи числа (например, при записи в форме с плавающей точкой) .число значащих цифр не должно меняться, т. е. нужно соблюдать равносильность преобразований. Например, записи 7500 = 0.7500 • 104 и 0.110 • 102 = 11.0 равносиль- ные, а записи 7500 = 0.75 • 104 и 0.110 • 102 = 11 неравно* сильные. 3. Действия над приближенными числами. Сформули- руем правила оценки предельных погрешностей при вы- полнении операций над приближенными числами. При сложении или вычитании чисел их абсолютные погрешности складываются. Относительная погрешность суммы заключена между наибольшим и наименьшим значениями относительных погрешностей слагаемых; на практике принимается наибольшее значение.
g 1, ПРИБЛИЖЕННЫЕ ЧИСЛА 17 При умножении или делении чисел друг на друга их относительные погрешности складываются. При возведе- нии в степень приближенного числа его относительная погрешность умножается на показатель степени. Для случая Двух приближенных чисел а и Ъ эти пра- вила можно записать в виде формул: Д (а ± Ъ) — Аа 4- kb, д(а • &) = б« + дЪ, (1-1) д(а/Ъ) = да + db, d(ak) — kda. Пример 1. Найти относительную погрешность функ- ции /а+Ь Используя формулы (1.1), получаем ду = [6 (а + Ь) + Збх + б (1 — х)] = 1 Да + 2 _| а -р b | Д (1) 4- Дя |1-х| j Полученная оценка относительной погрешности содержит в знаменателе выражение И —х!. Ясно, что при х«1 можем получить очень большую погрешность. В связи с этим рассмотрим подробнее случай вычитания близких чисел. Запишем выражение для относительной погрешности разности двух чисел в виде 4 ' | а — b | \а — b | При а & Ъ эта погрешность может быть сколь угодно большой. Пример 2. Пусть а = 2520, b — 2518. В этом случае имеем абсолютные погрешности исходных данных Да =» = Д6 = 0.5 и относительные погрешности да & db *=> = 0.5/2518 « 0.0002 (0.02%). Относительная погрешность разности равна б (а - b) = °'5f °'5 = 0.5 (50%). Следовательно, при малых погрешностях в исходных данных мы получили весьма неточный результат. Не- 2 Л. И. Турчаи
18 ГЛ. 1. ТОЧНОСТЬ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА трудно подсчитать, что даже при случайных изменениях а и b на единицу в последних разрядах их разность мо- жет принимать значения 0, 1, 2, 3, 4. Поэтому при орга- низации вычислительных алгоритмов следует избегать вычитания близких чисел; при возможности алгоритм пужпо видоизменить во избежание потери точности на некотором этапе вычислений. / Из рассмотренных правил следует, что прц сложении или вычитании приближенных чисел желательно, чтобы эти числа обладали одинаковыми абсолютными погреш- ностями, т. е. одинаковым числом разрядов после деся- тичной точки. Например, 38.723 + 4.9 = 43.6; 425.4 — — 0.047 = 425.4. Учет отброшенных разрядов не повысит точность результатов. При умножении и делении прибли- женных чисел количество значащих цифр выравнивается по наименьшему из них. Наряду с приведенными выше оценками погрешно- стей при выполнении некоторых операций над прибли- женными числами можно записать аналогичные оценки и для вычисления функций, аргументами которых являют- ся приближенные числа. Однако более полным оказыва- ется общее правило, основанное на вычислении прираще- ния (погрешности) функции при заданных приращениях (погрешностях) аргументов. Рассмотрим функцию одной переменной y = f(x). Пусть а — приближенное значение аргумента х, Аа — его абсолютная погрешность. Абсолютную погрешность функции можно считать ее приращением, которое можно заменить дифференциалом: Ду ~ dy. Тогда для оценки абсолютной погрешности получим выражение Ду = = |/'(а) I А«. Аналогичное выражение можно записать для функ- ции нескольких аргументов. Например, оценка абсолют- ной погрешности функции п = /(ж, у, z), приближенные значения аргументов которой соответственно а, Ь, с, име- ет вид Ак = IА (+ Ь, с) | Аа + | fy (a, b, с) | АЬ -}-1 f'z (а, Ь, с) | Дс. (1-2) Здесь Аа, АЬ, Ас — абсолютные погрешности аргументов. Относительная погрешность находится по формуле би = -... (1.3) I / («, Ъ, с) | ' ’
§ 2. ПОГРЕШНОСТИ ВЫЧИСЛЕНИЙ 19 Полученные соотношения можно использовать для вывода оценки погрешности произвольной функции (та- ким способом легко получить выражения (1-1)). Напри- мер, при с = а—b по формуле (1.2) получаем Ас — = | <?а | Да + | ДЬ == Да + Д6. § 2. Погрешности вычислений 1. Источники погрешностей. На некоторых этапах ре- шения задачи на ЭВМ могут возникать погрешности, ис- кажающие результаты вычислений. Оценка степени дос- товерности получаемых результатов является важнейшим вопросом при организации вычислительных работ. Это особенно важно при отсутствии опытных или других дан- ных для сравнения, которое могло бы в некоторой степе- ни показать надежность используемого численного мето- да п достоверность получаемых результатов. Рассмотрим источники погрешностей на отдельных этапах решения задачи. Математическая модель, приня- тая для описания данного процесса или явления, может внести существенные погрешности, если в ней не учтены какие-либо важные черты рассматриваемой задачи. В частности, математическая модель может прекрасно работать в одних условиях и быть совершенно неприем- лемой в других; поэтому важно правильно учитывать об- ласть ее применимости. Исходные данные задачи часто являются основным источником погрешностей. Это так называемые неустра- нимые погрешности, поскольку они не могут быть умень- шены вычислителем ни до начала решения задачи, ни в процессе ее решения. Проведенный ранее анализ оценки погрешностей при выполнении арифметических операций показывает, что следует стремиться к тому, чтобы все исходные данные были примерно одинаковой точности. Сильное уточнение одних исходных данных при наличии больших погрешностей в других, как правило, не при- водит к повышению точности результатов. Численный метод также является источником погреш- ностей. Это связано, например, с заменой интеграла сум- мой, усечением рядов при вычислениях значений функ- ций, интерполированием табличных данных и т. п. Как правило, погрешность численного метода регулируема, т. е. опа может быть уменьшена до любого разумного значения путем изменения некоторого параметра (цанрп- 2*
20 ГЛ. 1. ТОЧНОСТЬ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА мер, шага интегрирования, числа членов усеченного ряда и т. п.). Погрешность метода обычно стараются довести до величины, в несколько раз меньшей погрешности ис- ходных данных. Дальнейшее снижение погрешности не приведет к повышению точности результатов, а лишь увеличит стоимость расчетов из-за необоснованного уве- личения объема вычислений. Подробнее погрешности ме- тодов будем рассматривать при анализе «Конкретных чис- ленных методов. ( При вычислениях с помощью ЭВМ неизбежны по- грешности округлений, связанные с ограниченностью разрядной сетки машины. Обычно после выполнения опе- рации производится не округление результата, а простое отбрасывание- лишних разрядов с целью экономии ма- шинного времени. Правда, в современных машинах пре- дусмотрена свобода выбора программистом способа ок- ругления; соответствующими средствами располагают и некоторые алгоритмические языки (например, кобол, ПЛ-1). Максимальная относительная погрешность при округ- лении есть бтах — 0.5о?-\ где а — основание системы счисления, к — количество разрядов мантиссы числа. При простом отбрасывании лишних разрядов эта погрешность увеличивается вдвое. В современных машинах с памятью, измеряемой в байтах, принята шестнадцатеричная система счисления, и любое число с плавающей точкой содержит шесть знача- щих цифр. Следовательно, а = 16, к = 6, максимальная погрешность округления 6тах = 0.5 • 16“5 ® 0.5 • 10-8, Несмотря на то что при решении больших задач вы- полняются миллиарды операций, это вовсе не означает механического умножения погрешности при одном округ- лении на число операций, так как при отдельных дейст- виях погрешности могут компенсировать друг друга (на- пример, при сложении чисел разных знаков). Вместе с тем иногда погрешности округлений в сочетании с плохо организованным алгоритмом могут сильно исказить ре- зультаты. В дальнейшем мы такие случаи рассмотрим. Перевод чисел из одной системы счисления в другую также может быть источником погрешности из-за того, что основание одной системы счисления не является степенью основания другой (например, 10 и 2), Это мо- жет привести к тому, что в новой системе счисления чис- ло становится иррациональным.
§ 2. ПОГРЕШНОСТИ ВЫЧИСЛЕНИЙ 2j Например, число 0.1 при переводе в двоичную систе- му счисления примет вид 0.1 =0.000 1100 1100... Может оказаться, что с шагом 0.1 нужно при вычислениях прой- ти отрезок [0, 1] от х = 1 до х = 0; десять шагов не да- дут точного значения х = 0. 2. Уменьшение погрешностей. При рассмотрении по- грешностей результатов арифметических операций отме- чалось, что вычитание близких чисел приводит к увели- чению относительной погрешности; поэтому в алгоритмах следует избегать подобных ситуаций. Рассмотрим также некоторые другие случаи, когда можно избежать потери точности правильной организацией вычислений. Пусть требуется найти сумму пяти четырехразрядных чисел: S = 0.2764 + 0.3944 + 1.475 + 26.46 + 1364. Скла- дывая все эти числа, а затем округляя полученный ре- зультат до четырех значащих цифр, получаем S = 1393. Однако при вычислении на машине округление происхо- дит после каждого сложения. Предполагая условно сетку четырехразрядной, проследим вычисление на машине суммы чисел от наименьшего к наибольшему, т. е. в по- рядке их записи: 0.2764 + 0.3944 = 0.6708, 0.6708 + + 1.475 = 2.156, 2.156 + 26.46 = 28.62, 28.62 + 1364 = = 1393; получили Si = 1393, т. е. верный результат. Из- меним теперь порядок вычислений и начнем складывать числа последовательно от последнего к первому: 1364 + + 26.46 = 1390, 1390 + 1.475 = 1391, 1391 + 0.3944 = = 1391, 1391 +0.2764 = 1391; здесь окончательный ре- зультат S2 — 1391, он менее точный. Анализ процесса вычислений показывает, что потеря точности здесь происходит из-за того, что прибавления к большому числу малых чисел не происходит, поскольку они выходят за рамки разрядной сетки (а + Ъ = а при а > Ъ). Этих малых чисел может быть очень много, но на результат они все равно не' повлияют, поскольку при- бавляются по одному. Здесь необходимо придерживаться правила, в соответствии с которым сложение чисел нуж- но проводить по мере их возрастания. В машинной ариф- метике из-за погрешности округления существен порядок выполнения операций, и известные из алгебры законы коммутативности (и дистрибутивности) здесь не всегда выполняются. При решении задачи на ЭВМ нужно использовать подобного рода «маленькие хитрости» для улучшения алгоритма и снижения погрешностей результатов.
22 гл. 1. ТОЧНОСТЬ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА Например, при вычислении на ЭВМ значения (а + х)2 величина х может оказаться такой, что результатом сложения а + х получится а (при х < а); в этом случае может помочь замена (а + х)2 = а,2 + 2ах + х2. Рассмотрим еще один важный пример — использова- ние рядов для вычисления значений функций. Запишем, например, разложение функции sin х по степеням ар- гумента: . х3 X5 X7 S1H X = X — - 7[ + • • • По признаку Лейбница остаток сходящегося знакочере- дующегося ряда, т. е. погрешность суммы конечного чис- ла членов, не превышает значения первого из отброшен- ных членов (по абсолютной величине). Вычислим значение функции sin х при х — 0.5236 (30°). Члены ряда, меньшие 10~4, не будем учитывать. Вычисления проведем с четырьмя верными знаками. По- лучим sin 0.5236 « 0.5236 — 0.2393 10~* + 0.3281 • 10~3 = 0.500. Это отличный результат в рамках принятой точности. Зная из курса высшей математики, что это разложение синуса справедливо при любом, значении аргумента (—со <х<^°°), используем его для вычисления функции при х — 6.807 (390°). Опуская вычисления, получаем sin 6.807 ~ 0.5493. Относительная погрешность составля- ет здесь около 10% (вместо ожидаемого значения 0.01% по признаку Лейбница). Это объясняется погрешностями округлений и способом суммирования ряда (слева напра- во, без учета величины членов). Не всегда помогает и повышенная точность вычисле- ний. В частности, для данного ряда при х — 25.66 (1470° = 4 • 360° + 30°) даже при учете членов ряда до 10 s и вычислениях с восемью значащими цифрами в ре- зультате аналогичных вычислений (суммирование слева направо) получается результат, пе имеющий смысла: sin 25.66 ~ 24. В программах, использующих степенные ряды для вычисления значений функций, могут быть приняты раз- личные меры по предотвращению подобной потери точно- сти. Так, для тригонометрических функций можно ис- пользовать формулы приведения, благодаря чему аргу- мент будет находиться на отрезке [0, 1]. При вычислении
§ 2. ГГОГРЕШПОСТП ВЫЧИСЛЕНИЙ 23 эксполенты аргумент х можно разбить на сумму целой и дробной частей (ех = еп+а = е"е") и использовать разло- жение в ряд только для е", а е" вычислять умножением. Таким образом, при организации вычислений можно свое- временно распознать подобные «подводные камни», ког- да возможна потеря точности, и попытаться затем испра- вить положение. г 3. О решении квадратного уравнения. Мы убедились в том, что при численном решении задач па ЭВМ вычис- лителя ожидают всякие «ловушки», которые могут при- вести к заметной потере точности результатов пли даже к прекращению счета. Хорошей иллюстрацией к этому является анализ алгоритма решения такой простой зада- чи, как решение квадратного уравнения ах2 + Ьх + с == 0. Его корни определяются соотношениями Из анализа этих формул видно, что здесь имеется ряд особенностей вычислительного характера, которые необ- ходимо иметь в виду при составлении алгоритма. Рассмотрим простейший случай: а — 0. Здесь урав- нение становится линейным, и его единственный ко- рень есть х = —db, если b 0. При а = b = 0 и с ¥= 0 уравнение пе имеет решения, а в случае а = b = с = 0 его решением будет любое число. Заметим, что в машин- ной арифметике редко получаются точно пулевые значе- ния. Поэтому коэффициенты можно сравнивать не с ну- лем, а с некоторой малой величиной е. Это в свою оче- редь порождает ряд ситуаций, зависящих от соотношения между коэффициентами. Далее необходимо предусмотреть разветвление алго- ритма в зависимости от знака дискриминанта D:D>0 — корпи действительные (см. (1.4)); D = 0 — корни равные: хА = х2 — —Ы(2а); D < 0 — корни комплексные: 2 — — П± И, где 7? — —Ь/(2а), I = У—-D/(2а). Менее очевидным вопросом является возможность по- явления погрешностей в зависимости от соотношения между коэффициентами уравнения. Рассмотрим один из важнейших случаев, когда коэффициент b значительно превышает по абсолютной величине остальные. При этом Ьг 4ас и возникает опасность вычитания близких чисел вычислителе одного из выражений (1.4) из-за того, что У2)«1Ы.
24 ГЛ. 1. ТОЧНОСТЬ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА Положение можно исправить разными способами. На- пример, при Ь > 0 формулу для х2 можно преобразовать следующим образом: \/Р-Ъ Д/Р + Ъ _ 2с *2~ 2а b + 1/P При Ъ < 0 аналогичным способом можно записать фор- мулу для Х[. Более универсальным способом является использова- ние значения sign b («знак величины Ь»): . t / 1, t>°. sign Ь = ь<0> Тогда один из корней может быть вычислен по формуле а?! = — (b + sign b • l/D)/(2a), (1.5) Выражение для вычисления значения второго корня можно получить следующим путем. Представим квадрат- ное уравнение в виде ах2 + Ьх + с — а(х — х{) (х — х2) = = ах2 — ax(xt + х2) + ах^. Приравнивая свободные члены, получаем а^с/^), (1-6) На рис. 1 представлен один из вариантов блок-схемы алгоритма решения квадратного уравнения с учетом рас- смотренных здесь особенностей. При D > 0 значения корней вычисляются по формулам (1.5), (1.6). Заметим, что в приведенном на блок-схеме алгоритме предусмот- рены еще не все случаи возможных вычислительных за- труднений, которые могут встретиться при решении квад- ратных уравнений. Можно привести некоторые примеры, когда реализа- ция этого алгоритма на ЭВМ невозможна. Примеры. 1. а = IO’40, Ъ-----3 • IO'40, с ~ 2 • КГ40. При вычислении произведений Ъ2 и 4сс получается машинный нуль, т. е. D 0; решение пойдет по ветви равных корней: х^ — х2 —1.5. Точные значения корней, как нетрудно видеть, равны ад = 1, х2 — 2, 2. а = Ю40, Ъ = -3 • 1040, с = 2 • 104°,
§ 3. УСТОЙЧИВОСТЬ. КОРРЕКТНОСТЬ. СХОДИМОСТЬ 25 Этот вариант аналогичен предыдущему случаю с той лишь разницей, что вместо получения машинного нуля произойдет переполнение и прерывание счета. 3. а = IO"40, b = 1О40, с = —1040. Это трудный для реализации на ЭВМ случай. В прак- тических расчетах встречаются уравнения с малым коэф- фициентом при х2. В этом случае Ъ2 > 4ас, но при вы- числении Ъ2 произойдет переполнение. Простейшим вы- ходом из этого положения может быть сведение к случаю а — 0 с обязательной проверкой других коэффициентов. Рис. 1. Блок-схема решения квадратного уравнения Таким образом, анализ даже такой задачи, как реше- ние квадратного уравнения, показывает, что использова- ние численного алгоритма может быть сопряжено с неко- торыми трудностями. § 3. Устойчивость. Корректность. Сходимость 1. Устойчивость. Рассмотрим погрешности исходных данных. Поскольку это так называемые неустранимые погрешности и вычислитель не может с ними бороться, то нужно хотя бы иметь представление об их влиянии на точность окончательных результатов. Конечно, мы вира-
26 ГЛ. 1. ТОЧНОСТЬ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА ве надеяться на то, что погрешность результатов имеет порядок погрешности исходных данных. Всегда ли это так? К сожалению, пет. Некоторые задачи весьма чувст- вительны к неточностям в исходных данных. Эта чувст- вительность характеризуется так называемой устойчи- востью. Пусть в результате решения задачи по исходному значению величины х находится значение искомой вели- чины у. Если исходная величина имеет абсолютную по- грешность Дж, то решение имеет погрешность Ду. Задача называется устойчивой по исходному параметру ж, если решение у непрерывно от него зависит, т. е. малое при- ращение исходной величины Дж приводит к малому при- ращению искомой величины Ду. Другими словами, малые погрешности в исходной величине приводят к малым по- грешностям в результате расчетов. Отсутствие устойчивости означает, что даже незначи- тельные погрешности в исходных данных приводят к большим погрешностям в решении или вовсе к неверно- му результату. О подобных неустойчивых задачах также говорят, что они чувствительны к погрешностям исход- ных* данных. Примером такой задачи является отыскание действи- тельных корней многочленов вида (ж — а)п — е, 0 < е « 1. Изменение правой части па величину порядка е приво- дит к погрешности корней порядка е,/и. Интересной иллюстрацией неустойчивой задачи явля- ется так называемый пример Уилкинсона. Рассматрива- ется многочлен Р(ж) = (ж- 1)(ж- 2)...(ж — 20) —ж20 — 210ж,9+ ... Очевидно, что корнями этого многочлена являются Ж, 1, Ж3 2, • • ., Жго 20. Предположим, что один из коэффициентов многочлена вычислен с некоторой малой погрешностью. Например, коэффициент —210 при ж19 увеличим иа2-23 (около 10~7). В результате вычислений даже с точностью до 11 знача- щих цифр получим существенно другие значения корней. Приведем для наглядности эти значения, округленные до трех знаков: xt — 1.00, ж9 = 8.92, ж3 = 2.00, ж10. и = 10.1 ± 0.044/,
§ 3. УСТОЙЧИВОСТЬ. КОРРЕКТНОСТЬ, сходимость ‘27 х3 = 3.00, х4 = 4.00, хь — 5.00, х6 — С.00, х7 — 7.00, х& = 8.01, •Т12,1з = 11.8 ± 1.65г, ЯП. is = 14.0 ± 2.52i, и = 16.7 ± 2.81г, £18.1» = 19.5 ± 1.94г, .т20 = 20.8. Таким образом, изменение коэффициента —210 при х19 иа — 210 + 10-7 привело к тому, что половина корней стали комплексными.’Причина такого явления — неустой- чивость самой задачи; вычисления выполнялись очень точно (11 разрядов), а погрешности округлений не мог- ли привести к таким последствиям. 2. Корректность. Задача называется поставленной корректно, если для любых значений исходных данных из некоторого класса ее решение существует, единствен- но и устойчиво по исходным данным. Рассмотренные выше примеры неустойчивых задач являются некорректно поставлейными. Применять для решения таких задач численные методы, как правило, нецелесообразно, поскольку возникающие в расчетах по- грешности округлений будут сильно возрастать в ходе вычислений, что приведет к значительному искажению результатов. Вместе с тем отметим, что в настоящее время разви- ты методы решения некоторых некорректных задач. Это в основном так называемые методы регуляризации. Они основываются па замене исходной задачи корректно по- ставленной задачей. Последняя содержит некоторый па- раметр, при стремлении которого к нулю решение этой задачи переходит в решение исходной задачи. 3. Неустойчивость методов. Иногда прп решении кор- ректно поставленной задачи может оказаться неустойчи- вым метод ее решения. Такие случаи имели место в § 2. В частности, по этой причине при вычислении синуса большого аргумента был получен результат, не имеющий смысла. Рассмотрим еще один пример неустойчивого алгорит- ма. Построим численный метод вычисления интеграла 1 In = J xneA~idxi г? = 1, 2, ... о
28 ГЛ. 1. ТОЧНОСТЬ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА Интегрируя по частям, находим 1 1 хех 1dx = хех 1 Х-1 , 1 е dx = —, е 0 0 1 1 I2 = J x2ex~1dx = .т2е’г-1 [J — 2 J xex~ldx = 1 - 2/1? 0 0 1 1 In = J xnex~1dx = хпех~г |о ~ - п J xn~1ex~1dx =1 — nZn-i« 0 0 Пользуясь полученным рекуррентным соотношением, вычисляем Л = 0.367879, Ц = 0.127120, 12 = 0.263242, /7 = 0.110160, 13 = 0.207274, 78 == 0.118720, Ц = 0.170904, д = 0.145480, /9 = -0.0684800. Значение интеграла Ц не может быть отрицательным, поскольку подынтегральная функция ^9ех-1 на всем от- резке интегрирования [0, 1] неотрицательна. Исследуем источник погрешности. Видим, что округление в Ц дает погрешность, равную примерно лишь 4.4 • 10~7. Однако на каждом этапе эта погрешность умножается на число, модуль которого больше единицы (—2, —3, ..., —9), что в итоге дает 9!. Это и приводит к результату, не имеюще- му смысла. Здесь снова причиной накопления погрешно- стей является алгоритм решения задачи, который ока- зался неустойчивым. Численный алгоритм (метод) называется корректным в случае существования и единственности численного ре- шения при любых значениях исходных данных, а также в случае устойчивости этого решения относительно по- грешностей исходных данных. 4. Понятие сходимости. При анализе точности вычис- лительного процесса одним из важнейших критериев яв- ляется сходимость численного метода. Опа означает бли- зость получаемого численного решения задачи к истинно- му решению. Строгие определения разных оценок близо- сти могут быть даны лишь с привлечением аппарата
УПРАЖНЕНИЯ 29 функционального анализа. Здесь мы ограничимся неко- торыми понятиями сходимости, необходимыми для пони- мания последующего материала. Рассмотрим понятие сходимости итерационного про- цесса. Этот процесс состоит в том, что для решения неко- торой задачи и нахождения искомого значения определя- емого параметра (например, корня нелинейного уравне- ния) строится метод последовательных приближений. В результате многократного повторения этого процесса (или итераций) получаем последовательность значений х1} х2, ..., хп, ... Говорят, что эта последовательность сходится к точному решению х — а, если при неограни- ченном возрастании числа итераций предел этой последо- вательности существует и равен п: Iimzn = n.B этом слу- п->оо чае имеем сходящийся численный метод. Другой подход к понятию сходимости используется в методах дискретизации. Эти методы заключаются в заме- не задачи с непрерывными параметрами на задачу, в ко- торой значения функций вычисляются в фиксированных точках. Это относится, в частности, к численному интег- рированию, решению дифференциальных уравнений и т. п. Здесь под сходимостью метода понимается стремле- ние значений решения дискретной модели задачи к соот- ветствующим значениям решения исходной задачи при стремлении к пулю параметра дискретизации (например, шага интегрирования). При рассмотрении сходимости важными понятиями являются ее вид, порядок и другие характеристики. С об- щей точки зрения эти понятия рассматривать нецелесо- образно; к ним будем обращаться при изучении числен- ных методов. Таким образом, для получения решения задачи с не- обходимой точностью ее постановка должна быть кор- ректной, а используемый численный метод должен обла- дать устойчивостью и сходимостью. Упражнения 1. Представить числа 175.4, —3.169, —0.00874 в нормализован- ном виде. 2. Записать в форме с фиксированной точкой числа 0.312-10’, —0.70-101, 0.465-10*2. 3. Указать максимально возможные абсолютные и относитель- ные погрешности приближенных чисел 27, —14,0, 0,00173, 0.745-Ю*4, -0.245 -10*, —0.8960-102.
ГЛ. 1. ТОЧНОСТЬ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА 4. Оцепить погрешности величин х, у, заданных соотноше- ниями о8 ~\/Ь р а — b f а *^7+7’ +~’ при п ~ 32, Ъ « 17, с ж 3.7. 5. Паптп относительные погрешности при вычислении опреде- лителей , 10.19 — 0.271 7 17.5 10.4 I О, — I , = 1 |1.4 2.3 I’ 2 10.4 6.18| 6. Каковы относительные погрешности объема шара и площа- ди поверхности сферы, если их радиус известен с точностью до 10% ?
ГЛАВА 2 АППРОКСИМАЦИЯ ФУНКЦИЙ § 1. Понятие о приближении функций 1. Постановка задачи. Пусть величина у является функцией аргумента х. Это означает, что любому значе- нию х из области определения поставлено в соответствие значение у. Вместе с тем на практике часто неизвестна явная связь между у и х, т. е. невозможно записать эту связь в виде некоторой зависимости у — f{x). В некото- рых случаях даже при известной зависимости у = / {х) она настолько громоздка (например, содержит трудно вычисляемые выражения, сложные интегралы и т. и.), что ее использование в практических расчетах затрудни- тельно. Наиболее распространенным и практически важным случаем, когда вид связи между параметрами х и у не- известен, является задание этой связи в виде некоторой таблицы {.Xi, yt}. Эго означает, что дискретному множест- ву значений аргумента {xj поставлено в соответствие множество значений функции (pj (г — 0, 1, ..., п). Эти значения — либо результаты расчетов, либо эксперимен- тальные данные. На практике нам могут понадобиться значения величины у и в других точках, отличных от уз- лов Xi. Однако получить эти значения можно лишь путем очень сложных расчетов или проведением дорогостоящих экспериментов. Таким образом, с точки зрения экономии времени и средств мы приходим к необходимости использования имеющихся табличных данных для приближенного вы- числения искомого параметра у при любом значении (из некоторой области) определяющего параметра х, посколь- ку точная связь у = f{x) неизвестна. Этой цели п служит задача о приближении {аппро- ксимации) функций: данную функцию f{x) требуется приближенно заменить {аппроксимировать) некоторой функцией ц>{х)' так, чтобы отклонение (в некотором смысле) ф(ж) от /(ж) в заданной области было наимень- шим. Функция ц>{х) при этом называется аппроксими- рующей.
32 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ Для практики весьма важен случай аппроксимации функции многочленом ф(ж) = с0 + atx + а2х2 + ... + атхт. (2.1)' В дальнейшем будем рассматривать лишь такого рода аппроксимацию. При этом коэффициенты а} будут подби- раться так, чтобы достичь наименьшего отклонения мно- гочлена от данной функции. Что касается самого понятия «малое отклонение», то оно будет уточнено в дальпей- 'шем — при рассмотрении конкретных способов аппро- ксимации. Если приближение строится па заданном дискретном множестве точек {xt}, то аппроксимация называется то- чечной. К ней относятся интерполирование, среднеквад- ратичное приближение и др. При построении приближе- ния на непрерывном множестве точек (например, на от- резке [с, &]) аппроксимация называется непрерывной (или интегральной). 2. Точечная аппроксимация. Одним из основных ти- пов точечной аппроксимации является интерполирование. Оно состоит в следующем: для данной функции y = строим многочлен (2.1), принимающий в заданных точ- ках Xj те же значения у{, что и функция f(x), т. е. <P(^) = Z/.-, i = 0, 1, ..., п. (2.2) При этом предполагается, что среди значений х{ нет оди- р i паковых, т. е. х, =£ хь при i уп - Значки называются уз- • лами интерполяции, а много- • член <р (х) — интерполяционным многочленом. & _ Таким образом, близость ин- ” терполяционного многочлена к заданной функции состоит в , т____________том, что их значения совпада- 0 ‘ ют на заданной системе точек Рис. 2. Интерполяция и ап- (₽илс; 2> сплошная линия). пронсимация Максимальная степень ин- терполяционного многочлена m = п; в этом случае говорят о глобальной интерполя- ции, поскольку один многочлен <р (х) = «о + + ... + (2.3) используется для интерполяции функции /(ж) на всем
§ I. ПОНЯТИЕ О ПРИБЛИЖЕНИИ ФУНКЦИИ 33 рассматриваемом интервале изменения аргумента х. Ко- эффициенты а} многочлена (2.3) находятся из системы уравнений (2.2). Можно показать, что при Xt xh ¥= Л’) эта система имеет единственное решение. Интерполяционные многочлены могут строиться от- дельно для разных частей рассматриваемого интервала изменения х. В этом случае имеем кусочную (или ло- кальную) интерполяцию. Как правило, интерполяционные многочлены исполь- зуются для аппроксимации функции в промежуточных точках между крайними узлами интерполяции, т. е. при х0 < х < хп. Однако иногда они используются и для при- ближенного вычисления функции вне рассматриваемого отрезка (х < х0, х>хп). Это приближение называют экстраполяцией. Как видим, при интерполировании основным услови- ем является прохождение графика интерполяционного многочлена через данные значения функции в узлах ин- терполяции. Однако в ряде случаев выполнение этого условия затруднительно или даже нецелесообразно. Например, при большом количестве узлов интерполя- ции получается высокая степень многочлена (2.3) в слу- чае глобальной интерполяции, т. е. когда нужно иметь один интерполяционный многочлен для всего интервала изменения аргумента. Кроме того, табличные данные могли быть получены путем измерений и содержать ошибки. Построение аппроксимирующего многочлена с условием обязательного прохождения его графика через эти экспериментальные точки означало бы тщательное повторение допущенных при измерениях ошибок. Выход из этого положения может быть найден выбором такого многочлена, график которого проходит близко от данных точек (см. рис. 2, штриховая линия). Понятие «близко» уточняется при рассмотрении разных видов прибли- жения. Одним из таких видов является среднеквадратичное приближение функций с помощью многочлена (2.1). При этом m С 7г; случай т~п соответствует интерполя- ции. На практике стараются подобрать аппроксимирую- щий многочлен как можно меньшей степени (как прави- ло, т = 1, 2, 3). Мерой отклонения многочлена ф(.г) от заданной функции j{x) на множестве точек (ж,-, у г) (г = О, 1, .., ..., п) при среднеквадратичном приближении является 3 л. И. Турчан
34 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ величина S, равная сумме квадратов разностей между значениями многочлена и функции в данных точках: 5=2 (Ф(^г) — (2.4) i=o Для построения аппроксимирующего многочлена нужно подобрать коэффициенты ав, а, ..ат так, чтобы вели- чина S была наименьшей. В этом состоит метод наимень- ших квадратов. 3. Равномерное приближение. Во многих случаях, особенно при обработке экспериментальных данных, среднеквадратичное приближение вполне приемлемо, по- скольку оно сглаживает некоторые неточности функции f(x) и дает достаточно правильное представление о ней. Иногда, однако, при построении приближения ставится более жесткое условие: требуется, чтобы во всех точках некоторого отрезка [а, 6] отклонение многочлена ц>(х) от функции f(x) было по абсолютной величине меньшим заданной величины е > 0: |/(ж) — <р(^) I < е, а С х С Ь. В этом случае говорят, что многочлен q>(x) равномерно аппроксимирует функцию j(x) с точностью е на отрез- ке [я, &]. Введем понятие абсолютного отклонения Д многочле- на <р(^) от функции /(л) на отрезке [я, &]. Оно равно максимальному значению абсолютной величины разности между ними на данном отрезке: Д = шах | / (а) — ф ’х) |. (2.5) а^х^,Ь По аналогии можно ввести понятие среднеквадратич- ного отклонения \ — VS/n при среднеквадратичном при- ближении функций. На рис. 3 показано принципиальное различие двух рассматриваемых приближений. Возможность построения многочлена, равномерно при- ближающего данную функцию, следует из теоремы Вей- ерштрасса об аппроксимации: Теорема. Если функция f(x) непрерывна на от- резке [я, &], то для любого с > 0 существует многочлен <р(х) степени m — /я(е), абсолютное отклонение которого от функции }(х) на отрезке [я, 5] меньше е.
6 1. ПОНЯТИЕ О ПРИБЛИЖЕНИИ ФУНКЦИИ 35 В частности, если функция /(ж) на отрезке [о, Ь] разлагается в равномерно сходящийся степенной ряд, то в качестве аппроксимирующего многочлена можно взять частичную сумму этого ряда. Такой подход широ- ко используется, например, при вычислении на ЭВМ зна- чении элементарных функций. О а. х 0 6 х Рис. 3. Приближения: а — среднеквадратичное; б — равномерное Существует также понятие наилучшего приближения функции f(x) многочленом ф(л) фиксированной степени т. В этом случае коэффициенты многочлена ф(гг) = = а0 + atx +...+ атхт следует выбрать так, чтобы на за- данном отрезке [а, Ь] величина абсолютного отклонения (2.5) была минимальной. Многочлен ф(гг) называется многочленом наилучшего равномерного приближения. Существование и единственность многочлена наилучше- го равномерного приближения вытекает из следующей теоремы. Теорема. Для любой функции f(x], непрерывной на замкнутом ограниченном множестве G, и любого на- турального пг существует многочлен ф(х) степени не выше т, абсолютное отклонение которого от функции / (х) минимально, т. е. Д — Дтш, причем такой многочлен единственный. Множество G обычно представляет собой либо неко- торый отрезок [я, fe], либо конечную совокупность точек Я-о, Х{, . . ., Хп.
3G ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ § 2. Использование рядов 1. Элементарные функции. Как правило, при решении задачи приходится вычислять значения элементарных функций (тригонометрических, показательных, логариф- мических и др.). При ручном счете для этой цели могут быть использованы таблицы. Однако в вычислениях на ЭВМ ввод таблиц функций в машину потребовал бы больших затрат памяти. Кроме того, поиск нужного зна- чения функции в памяти ЭВМ — не простое для машины занятие. Поэтому для вычисления значений функций на ЭВМ используются разложения этих функций в степен- ные ряды. Например, функция sin х вычисляется с по- мо1цью ряда 4 5 7 • X f X X /9 81ПЖ=х-5Г+^--4- ... (2.G) При известном значении аргумента х значение функ- ции может быть получено с точностью до погрешностей округления. Количество используемых членов ряда (2.6) зависит от значения аргумента. Напомним, что в соот- ветствии с правилами приближенных вычислений (см. гл. 1) для предотвращения влияния погрешностей округ- ления необходимо выполнение неравенства Ы < 1. С помощью степенных рядов вычисляются значения и других элементарных функций. В частности, для вычис- ления значений функции cos х можно использовать ряд (2.6) с учетом соотношения’ cos х = sin(л/2 + х). Гипер- болические синус и косинус можно вычислить с помощью разложения в ряд экспоненты еж, поскольку sh х =(ех — е~х}/2, ch х — (ех + е~х)/2. Правда, здесь есть опасность вычитания близких чисел при вычислении sh х для х ~ 0, что приведет к потере точности. В таких случаях лучше воспользоваться рядом 3 5 sha; = 5:-|-gi + gY + ... Для вычисления на ЭВМ логарифмических функций достаточно иметь программу вычисления логарифма по одному основанию, например натурального логарифма. Для вычисления логарифма по другому основанию мож- но воспользоваться соотношением log<> х — In х loga е. В качестве примера построим алгоритм вычисления синуса с помощью ряда (2.6). Будем учитывать члены
§ 2. ИСПОЛЬЗОВАНИЕ РЯДОВ 37 ряда, которые по абсолютной величине больше некоторо- го малого числа е > 0, характеризующего точность вычис- ления. На практике, когда используют стандартные про- граммы для вычисления функций, точность не задается. Рис. 4. Блок-схема вычисления синуса В этом случае учитываются все члены, большие машин- ного нуля, а точность результата определяется погреш- ностями округлений.
ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ Возможный вариант алгоритма вычисления синуса с помощью ряда (2.6) изображен на рис. 4 в виде блок- схемы. Дадим некоторые пояснения к ней. В блок-схеме предусматривается выход из программы при малом значении аргумента, поскольку в этом случае sin х ~ х. Выделяется абсолютная величина аргумента с учетом соотношений х — к\х\, sin х — к sin |х|,‘ A: = sign^. При анализе точности вычислений отмечалось, что при суммировании ряда погрешность значительно мень- ше, если |.r| < 1. Поэтому в блок-схеме аргумент должен удовлетворять неравенству х < л/4. Это достигается по- следовательным уменьшением аргумента до значений х < < 2л, х < л, х < л/2. Для этой цели использована функ- ция Ё(ж), вычисляющая целую часть аргумента, а также формулы приведения: sin (л ± х} — +sin х, sin (л/2 — х) — = cos.r. Например, при х = 7.6 л (/;=!) получим сле- дующий алгоритм: п = Е (7.6л/(2л)) = Е (3.8) = 3, х — 2лн = 7.6л — 6л = 1.6л > л, к — —1, х — л = 0.6л > л/2, л — х = 0.4л > л/4, л/2 — х = 0.1л. Текущее значение члена ряда в блок-схеме обозна- чено через и, значение функции — через у. Здесь ис- пользуется выражение каждого члена ряда через пред- шествующий. Например, ж3 ж2 з? я? iq = х, п2 = “ Щ ~ — иг п3 — — — — и2 4?5- Если л/4 < х < л/2, то проводится уменьшение аргумен- та до величины л/2 — х и вычисление синуса сводится к вычислению косинуса, т. е. используется ряд • ( я \ л I 3:6 I sin ^-_^ = cosZ = l-2i + ir--+ Для этого полагаем у = 1, » = 1, т = 1. В остальном алгоритм не меняется. В рассмотренном алгоритме аргумент предполагается заданным в радианах. Если он задан в градусах, то в блок-схеме следует предусмотреть оператор перевода в радианы, т. е. умножения па величину л/180. Погрешность функции у = sin х, полученной с по- мощью ряда (2.6) с использованием приведенного алго-
§ 2. использование рядов 39 ритма (см. рис. 4), состоит из двух частей — погрешности округления и погрешности ограничения, возникающей из-за учета лишь ограниченного числа членов ряда. Погрешности ограничений зависят от значения аргу- мента. При |ж| < л/4 они весьма малы и сравнимы с погрешностями округлений, а с увеличением х возра- стают. В частности, если ограничиться первыми пятью членами разложения (2.6) и провести вычисления с точ- ностью до восьми разрядов, то максимальная погреш- ность составит около 4 • 10"6 (порядка первого отбро- шенного члена — в соответствии с признаком Лейбница). 2. Многочлены Чебышева. Из приведенного выше примера вычисления синуса с помощью ряда следует, что погрешности могут быть распределены неравномер- но по рассматриваемому интервалу изменения аргумен- та. Одним из способов совершенствования алгоритма вы- числений, позволяющих более равномерно распределить погрешность по всему интервалу, является использова- ние многочленов Чебышева. Многочлен Чебышева Та(х) степени п определяется следующей формулой: Тп{х) = 4К* + + (*- /^=7)"], — п = 0, 1, ... (2.7) Легко показать, что (2.7) многочленом: при возведении в степень и последующих преобразованиях члены, со- держащие корпи, уничтожа- ются. Приведем многочле- ны Чебышева, полученные ио формуле (2.7) при п — = 0, 1, 2, 3 (рис. 5): 7e(*)=l,- 7,^)=^, Тг(х) = = 2х--1, Т\(х) = кс3 -Зх. Для вычисления много- членов Чебышева можно вос- пользоваться рекуррентным соотношением действительно' является Рис. 5. Многочлены Чебышева 7в+1(.г)=2.т7п(.т)-Тп^(х), п=1, 2, ... (2.8) • В РяДе случаев важно знать коэффициент ап при стар-
40 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ шем члене многочлена Чебышева степени п Тп {г) = аи + +...+ апхп. Разделив этот многочлен на хп, найдем тп <*) % "n-l ап = —— — ^7 “ • • •---- X X * Перейдем к пределу при х -* °° и воспользуемся форму- лой (2.7). Получим Многочлены Чебышева можно также представить в тригонометрической форме: Тп(х) — cos(n arccosх), п = 0, 1, ... (2.9)' С помощью этих выражений могут быть получены фор- мулы (2.7), (2.8). Нули (корпи) многочленов Чебышева на отрезке [— 1, 1] определяются формулой 2к— 1 , . о xh = cos к = 1, 2, ..., п. Они расположены неравномерно на отрезке и сгущаются к его концам. Вычисляя экстремумы многочлена _ Чебышева по обычным правилам (с помощью производных), можно найти его максимумы и минимумы: xk = cos(A-n/n), к — 1, 2, ..., п — 1. В этих точках многочлен принимает поочередно значе- ния Тп (хк) =± 1, т. е. все максимумы равны 1, а мини- мумы равны —1. На границах отрезка значения много- членов Чебышева равны ±1. Многочлены Чебышева широко используются при ап- проксимации функций. Рассмотрим их применение для улучшения приближения функций с помощью степенных рядов, а именно для более равномерного распределения погрешностей аппроксимации (2.6) по заданному отрезку [—л/2, л/2].
§ 2. ИСПОЛЬЗОВАНИЕ РЯДОВ 41 Отрезок [—л/2, л/2] является не совсем удобным при пспользовашш многочленов Чебышева, поскольку онп обычно рассматриваются па стандартном отрезке [—1, 1]. Первый отрезок легко привести ко второму заменой пере- менной х на лх/2. В этом случае ряд (2.6) для аппрокси- мации синуса па отрезке [—1, 1] примет вид . лх Sin -5- лх т _1 3! (\5 ЛХ | ~/ “• (2.10) При. использовании этого ряда погрешность вычисле- ния функции в окрестности концов отрезка х — ±1 су- щественно возрастает и становится значительно больше, чем в окрестности точки х — 0. Если вместо (2.10) ис- пользовать ряд sin(n.r/2)= с0 + CiTt(.г) + с2Т2(х)+..., членами которого. являются многочлены Чебышева, то погрешность будет распределена равномерно по всему отрезку (рис. 6). В частност членов Чебышева до девя- той степени включительно погрешность находится в интервале (—5 4- 5) • 10*®. Для. сравнения напомним, что погрешность ряда Тейлора для этой задачи на концах отрезка состав- ляет 4 • 10_6. Нахождение коэффи- циентов ряда Чебышева довольно сложно и здесь рассматриваться не будет, i На практике часто ис- пользуют многочлены Че- бышева для повышения точности аппроксимации функ- ций с помощью ряда Тейлора. Пусть частичная сумма ряда Тейлора, представленная В виде многочлена, используется для приближения функ- ции f(x) на стандартном отрезке [—1, 1], т. е. /(х) к ай + а^х +...+ апхп, (2.11)' Если рассматриваемый отрезок [п, Ь] отличается от стан- дартного, то его всегда можно привести к стандартному
ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ заменой переменной а-\-Ь , Ъ — а . . * ~2~ + ~2~ — 1<а;<1. Многочлен Чебышева 7\(а?) можно записать в виде (a) — bj + btx + Ьгхг + ... + 2n-ixn. Отсюда получаем ? ^==__21-’’(Ьв + д1х + ... + 6„-1^-1)+21’”7’п(л;)’. (2,12) Если отбросить последний член, то допущенную при этом погрешность А легко оценить: |А| 2‘"", поскольку I Тп (х) | 1. Таким образом, из (2.12) получаем, что хп есть линейная комбинация более низких степеней х. Подставляя эту линейную комбинацию в (2.11), прихо- дим к многочлену степени п — 1 вместо многочлена сте- пени п. Этот процесс может быть продолжен до тех пор, пока погрешность не превышает допустимого значения. Используем эту процедуру для повышения точности аппроксимации функции с помощью ряда (2.10). Будем учитывать члены ряда до 11-й степени включительно, Вычисляя коэффициенты при степенях х, получаем sin(na?/2)« 1.5707963а; - 0,64596410а;3 + 0.079692626а;5 - - 0.0046817541х7 + 0.00016044118а;9 ~ - 0.0000035988432а;11. (2.13) Многочлен Чебышева 11-й степени имеет вид = 1024а;11 - 2816а;9 + 2816а;7 - 1232а;5 + 220х3 - Их. Выразим отсюда а:11 через более низкие степени: я11 == 2-10(11а; - 220а:3 + 1232а;5 - 2816а;7 + 2816х9 + Ttl). f Подставляя в (2.13) вместо а;11 правую часть этого равенства и вычисляя новые значения коэффициентов, получаем sin(na72)~ 1.5707962а; — 0.64596332а;3 4* + 0.079688296а;5 - 0.0046718573а;7 + j ф 0.00015054436л* - 0.00000000351(2.14) Отбрасывая последний член этого разложения, мы допу- скаем погрешность IАI «5 3.51 • 10“9. Из-за приближен- ного вычисления коэффициентов при степенях х реаль-
§ 2. ИСПОЛЬЗОВАНИЕ РЯДОВ • 43 пая погрешность больше. Здесь она оценивается вели- чиной |А| 8 • 10_8. Эта погрешность немного больше, чем для многочлена Чебышева (5 • 10~9), и значительно меньше, чем для ряда Тейлора (4 • 10~6). Процесс модификации приближения можно продол- жить. Если допустимое значение погрешности больше, чем при использовании выражения (2.14) (без послед- него члена с Т’н), то х* можно заменить многочленом седьмой степени, а член с Та отбросить; так продолжать до тех пор, пока погрешность остается меньше допу- стимой. В заключение приведем некоторые формулы, необ- ходимые при использовании многочленов Чебышева. 1. Многочлены Чебышева: т. W - } [(х + У^Л)" + (*- У^й)"] - = cos (rt.arccos х), T№+l(x} = 2хТп(х)~ Tn-i(x), п = 1, 2, .. То (*)=!, Ti (х)=х, 7’2(а;)=2а:2- 1, Т3(х)=4х3-Зх, 1\(х)=8х*-8х2 + 1, 7,5(а;)=16а:5-20а;3 + 5ж, Tt (х) = 32а;” - 48а;4 + 18а;2 - 1, Г, (х) = 64а;7 - 112а;5 + 56а;3 - 7х, Л(а:) = 128а;8 - 256а;" + 160а;4 - 32а:2 + 1, Тв(х) = 256а;9 — 576а;7 + 432а:5 - 120а:3 + 9ат, Ло (а?) = 512а:10 - 1280а;8 + 1120а;8 - 400а;4 + 50а;2 - 1, Тп(х) = 1024а:11 - 2816а:9 + 2816а:7 - 1232а:5 + 220а:3 - Их. 2. Представление степеней х через многочлены Тп(а) : *O=1 = TO, а; = Tlf. - 4 (п+г2), ^-4<3й+г3).
44 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ | (370 + 472 + 7\), z5=i(1071 + 573 + ТУ), х0 = ^(10Го + 1572 + 674+ 7’6), г’ - Г(357\ + 21Г, + 77, + 7,). г “ йа <357» + 56Л + 287’« + 87,« + T>ft г’ - ай <126Г1 + №Т= + 39^ + 9Л + Л). я1’- ~ (12G7,, + 2107, + 1207; + 457, + 107, + 710), ' г" = (4627, + 3307', + 1657, + 557, + 117, + 7,,). 3. Выражение хп через более низкие степени: я == ти = 4 (1 + Т2\ я3 = | (Зх + 73)г ff< = |(8^-l + 74)t. ^ = 1(20^3-5^+Г5), л6 “ 1&2 + 1 + = ^<412г5 - 56л;3 + 7х+ Xs - (256л:0 - 160х4 + 32л:2 - 1 4- Ts),- = 2^6 <57(к’7 ~ 432ж5 + 120-г'3-9-г + 7'э)7 ic10= gp (1280л;8 - 1120л;6 + 400л;4 - 50л;2 + 1 + Т10)4 ftll== 1^4 С2816*” “ 2816x7 + 1232х’" 220x3 + 11х + Л1)«
g 2. ИСПОЛЬЗОВАНИЕ РЯДОВ 45 3. Вычисление многочленов. При аппроксимации функций, а также в некоторых других задачах прихо- дится вычислять значения многочленов вида Р(х) — а0 + а2х + агх2 +...+ анхп. (2.15)' Если проводить вычисления «в лоб», т. е. находить зна- чения каждого члена и суммировать их, то при больших п потребуется выполнить большое число операций (я2 + + и/2 умножений и п сложений). Кроме того, это может привести к потере точности за счет погрешностей округ- ления. В некоторых частных случаях, как это сделано при вычислении синуса (см. рис. 4), удается выразить каждый последующий член через предыдущий и таким образом значительно сократить объем вычислений. Анализ многочлена (2.15) к тому, что для исключения каждом члейе многочлен це- лесообразно переписать в виде Р (я) = а0 + х (п, + х (а2 +... ,., + х[ап-1 + хап)+...)). (2.16) Прием, с помощью кото- рого многочлен представля- ется в таком виде, называ- ется схемой Горнера. Соот- ветствующий ему алгоритм вычисления значения много- члена изображен па рис. 7. Этот метод требует п умно- жений и п сложений. Ис- пользование схемы Горнера для вычисления значений многочленов не только эко- номит машинное время, но в обгцем случае приводит возведения х в степень в и повышает точность вычис- рис. 7. Блок-схема метода Гор- лений за счет уменьшения пера погрешностей округления. 4. Рациональные приближения. Рассмотрим другой вид аппроксимации функций — с помощью дробно-рацио- нального выражения. Функцию представим в виде от- ношения двух многочленов некоторой степени. Пусть, например, это будут многочлены третьей1 степени, т. е. представим функцию /(ж) в виде дробно-рационального
4G ГЛ. 2, АППРОКСИМАЦИЯ ФУНКЦИЙ выражения: Ъ<>+ Ь1Х + + X -Z' A U (2.17) Значение свободного члена в знаменателе с0 = 1 не на- рушает общности этого выражения, поскольку при с0 1 числитель и знаменатель можно разделить на с0. Перепишем выражение (2.17) в виде b0 + biX + b2x2 + Ь3х3 = (14- ctx + с2х2 + c3x3)f(x). Используя разложение функции /(ж) в ряд Тейлора: f(x) = а0 + diX + а2х2 4*.,, (2.18) п учитывая члены до шестой степени включительно, по- лучаем 60 + Ьгх + Ъ2х2 + Ь3х3 = (1 + С'Х 4- сгх2 + с3х3) X X (а0 + ахх + а2х2 + а3х3 4- а3х1 4- а3х3 4* а6х3), Преобразуем правую часть, этого равенства, записав ее разложение по степеням xi b0 + btx + b2x? 4- bsxs — а0 + х(а, 4- «0С1) + 4- х2 (а2 + + а0с2) + х3 (а3 4- a2ct + atc2 +' а0с3) + 4- xi (ал + с3с4 + а2с2 + а^) + х3 (а3 + atct + а3сг + агс3) 4- + хе (а6 + a3Ci + а4сг + а3с3). Приравнивая коэффициенты при одинаковых степенях х в левой и правой частях, получаем следующую систему уравнений: Ьо = По, bi = + «(А, b2 = а2 + atCi + а0с2, b3 = а3 + a2Ci + а^с2 + а0с3, (2.19) О = щ + asCi + а2с2 + О == 4“ щс4 4“ ci3c3 4“ н2с31 О == + я3С1 4- H4C2 4* л3с3. Решив эту систему, найдем коэффициенты &0, &i, Ъ2, Ь3, Си с2, с3, необходимые для аппроксимации (2.17). Пример. Рассмотрим рациональное приближение для функции /(/)= б1й(щг/2). Воспользуемся представ-
§ 2. ИСПОЛЬЗОВАНИЕ РЯДОВ 47 ленпем (2.17), которое в данном случае упрощается, по- скольку функция sin х нечетная. В частности, в числи- теле можем оставить только члены с нечетными степе- нями а:, а в знаменателе — с четными; коэффициенты при других степенях х равны нулю:. b0 — b2 — ct =. с3 = 0. Коэффициенты blt b3, с2 найдем из системы уравне- ний (2.19), причем значения коэффициентов а0, ал, ..., ав разложения функции в ряд Тейлора (2.18) можем взять из выражения (2.10), т. е. „ „з 0 31 р зт .? 21 @2 «3 g.gp л5 , ^4 ~ = 32-51 ’ = 0. Система уравнении (2.19) в данном случае примет вид 3 i । ЗТ °3 = ~ gTsf + 2" С2’; «г5 „3 О ЗТ - 2Т U “ 32Т5Г — О С2’ Отсюда находим bt — л/2, Ъ3 — —7л3/480, с2 — л2/80. ; Таким образом, дробно-рациональное приближение (2.17) для функции sin(n.?/2) примет вид . лх (л/2) х — (7л3/480) х3 Sin-5- = :—?—5 . 2 1 -}- (л2/80) х2 Это приближение по точности равносильно аппроксима- ции (2.10) с учетом членов до пятого порядка включи- тельно. На практике с целью экономии числа операций выра- жение (2.17) представляется в виде цепной дроби. Пред- ставим в таком виде дробно-рациональное выражение (2.20). Сначала перепишем это выражение, вынося за скобки коэффициенты при х3 и хг. Получим . лх____ 7л х3 — (60/7) (2/л)2 х Б1П 2 “ 6 а2 + 20 (2/л)3 ' Разделим числитель на знаменатель по правилу деления многочленов и введем обозначения для коэффициентов.
48 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ Получим • 7 sin = к ,, 7л , 200 ( 2 V Vi ”77'« <‘*а '=== - “7=— I — I • 1 6 2 i \, л} 3 Полученное выражение можно записать в виде . лг , sin -5- = к Л (2,21) Для вычисления значения функции по этой формуле требуется намного меньше операций (два деления, два сложения, одно умножение), чем для вычисления с по- мощью выражения (2.20) или усеченного ряда Тейлора (2.10) (даже с использованием правила Горнера). Приведем формулы для приближения некоторых эле- ментарных функций с помощью цепных дробей, указы- вая интервалы изменения аргумента и погрешности Д: — £. + о 1 2 14- к2г2 к0 = 1.0000000020907, к, = 0.0999743507186, А*2 = 0,0166411490538, - 4 In 2 2- |A|<10-10; In (1 + х) = к0 + - к (2.23) к0 = 0.0000000894, к2 = 2.0005859000, к\ = 1.0787748225, 0 х 1, кл = 1.0000091365, /rs = 3.0311932666, к. = 8.8952784060, 1Д1 СЮ'7; (2.24)
§ 3. ППТЕРПОЛПРОВАНПЕ >19 к0 - 0.7853980289, kt = 6.1922344479, к2 = —0.6545887679, к3 = 491.0013934779, А-2 = -0.55703890, к3 = -17.03715998, Ац =-0.20556880, -1 <х 1, |Д| С 2 • 10“’. § 3. Интерполирование 1. Линейная п квадратичная интерполяции. Простей- шим п часто используемым видом локальной интерпо- ляции является линейная интерполяция. Опа состоит в том, что заданные точки (т,-, yt) (г = 0, 1, ..., п) со- единяются прямолинейными отрезками, и функция /(л) приближается ломаной с вершинами в данных точках. Уравнения каждого отрезка ломаной в общем случае разные. Поскольку имеется п интервалов (.г,-,, х{), то для каждого из них в качестве уравнения интерполя- ционного многочлена используется уравнение прямой, проходящей через две точки. В частности, для г-го ин- тервала можно написать уравнение прямой, проходящей через точки (^_1} и (х,, у,), в виде 'Л - У г-1 Хг - Хг-1 Отсюда у — а,х + Xi-i х х^ (2.26) 5 — У г—1 1‘ хг хг-1 Следовательно, при использовании линейной интер- поляции сначала нужно определить интервал, в который попадает значение аргумента х, а затем подставить его / Л. И, Турчак
ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ в формулу (2.26) п найти приближенное значение функ- ции в этой точке. Блок-схема данного алгоритма пред- ставлена на рис. 8. Попытайтесь разобраться, будет ли Начало Нет Ь = у^-аХ[.р y±ax + b -Вывод у работать алгоритм по этой блок-схе- ме, если окажется, что х< х0 или х > хп. Рассмотрим теперь случай квад- ратичной интерполяции. В качестве интерполяционной функции на от- резке xi+1] принимается квад- ратный трехчлен. Такую интерполя- цию называют также параболической. Уравнение квадратного трехчлена у — я,.?2 + biX 4- сг, (2.27) Xi-i < X < xi+ll содержит три неизвестных коэффи- циента а(, bt, ch для определения которых необходимы три уравнения. Ими служат условия прохождения параболы (2.27) через три точки (Xi-i, у^}, (xt, iji), (xi+t, yi+i). Эти условия можно записать в виде J -f- bp.'i—j -|- С, = Pi—i, Рис. 8. Блок-схема линейной интерполя- ции а,х\ 4- biXi 4- Ci = у а (2,28) 4- biXi-f-i + Cj = Алгоритм вычисления приближенного значения функции с помощью квадратичной интерполяции' можно представить в виде блок-схемы, как и для случая ли- нейной интерполяции (см. рис. 8). Вместо формулы (2.26) нужно использовать (2.27) с учетом решения си- стемы линейных уравнений (2.28). Интерполяция для любой точки х [я0, х„] проводится по трем ближайшим к ней узлам. Пример. Найти приближенное значение функции у = Цх) при х = 0.32, если известна следующая таблица ее значений: 0.15 0.30 0.40 0.55 У 2.17 3,63 5.07 7.78
§ 3. ИНТЕРПОЛИРОВАНИЕ 51 Воспользуемся сначала формулой линейной интерпо- ляции (2.26). Значение х = 0.32 находится между узла- ми rr.-i = 0.30 и = 0.40. В этом случае _ _у г- Vi~x _ 5.07 - 3.63 , j ж. - ~ 0.40 -0.30 1 bi — i)i-i — Oixi-i — §-63 — 14.4-0.30 — — 0.69, у » 1+1.7 - 0.69 = 14.4 • 0.32 - 0.69 = 3.92. Найдем теперь приближенное значение функции о помощью формулы квадратичной интерполяции (2.27), Составим систему уравнений (2.28) с учетом ближайших к точке х == 0.32 узлов: xt-i — 0.15, xt — 0.30, xi+l = 0.40. Соответственно i/f^i = 2.17, = 3.63, yi+I = 5.07. Систе- ма (2.28) запишется в виде 0.154+ 0.156, + ^ = 2.17, 0.304 + 0.30Ь< + = 3.63, 0.402^ + 0.40&, + с£ = 5.07, Решая эту систему, находим а£= 18.67, 6£ = 1.33, с£ = = 1.55. Искомое значение функции у « 18.67 • 0.322 + + 1.33 • 0.32 + 1.55 = 3.89. 2. Сплайны. Сейчас широкое распространение для ин- терполяции получило использование кубических сплайн- функций — специальным образом построенных многочле- нов третьей степени. Они представляют собой некоторую математическую модель гибкого тонкого стержня из уп- ругого материала. Если закре- >• пить его в двух соседних уз- .,/2? лах интерполяции с заданными углами наклонов а и ₽ (рис. & 9), то между точками закреп- ления этот стержень (мехапи- ческий сплайн) примет не- "фг которую форму, МИНИМИЗИ- /к рующую его потенциальную рвс g энергию. Пусть форма этого стержня определяется функцией у — S(х). Из курса сопротивления материалов известно, что уравнение свободного равновесия имеет вид SIV(x)~ = 0. Отсюда следует, что между каждой парой соседних узлов интерполяции функция 5(z) является многочленом 4*
записать (2.30) (2.31) 52 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ третьей степени. Запишем ее в виде 8(х) — а, 4- b(x — Xi_t)+ Ct(x — tfi-j)2 4- + di(x — Xi-t)3, Xi-^ x x^ (2.29) Для определения коэффициентов a(, b{, ct, di на всех n элементарных отрезках необходимо получить 4н урав- нений. Часть пз них вытекает из условий прохождения графика функции S (х) через заданные точки, т.1 е. 5(ж(_1) = S(xt)=yi. Эти условия можно в виде 1) “ ~ У i— 1» S (xi) + bihi + Cj/if + dihl = yh hi = Xi — Xi-h i=l, 2, n. Эта система содержит 2n уравнений. Для получения не- достающих уравнений зададим условия непрерывности первых и вторых производных в узлах интерполяции, т. е. условия гладкости кривой во всех точках. Вычислим производные многочлена (2.29)! S' (х} — bi + 2ci(x — ^-15+ 3di(x — xi_i)zt 8" 2c, + 6dt(x — ж.-,)'. Приравнивая в каждом внутреннем узле х — х, значения этих производных, вычисленные в левом и правом от уз- ла интервалах, получаем 2п — 2 уравнений &Ц-1 = + ^1гсг + (2.32) =3= 4* ^hidii I == 1, 2, и 1* (2.33) Недостающие два соотношения получаются из условий закрепления концов сплайна. В частности, при свободном закреплении концов (см. рис. 9) можно' приравнять нулю кривизну линии в этих точках. Такая функция, называемая свободным кубиче- ским сплайном, обладает свойством минимальной кри- визны, т. е. опа самая гладкая среди всех интерполяци- онных функций данного класса. Из условий нулевой кри- визны на концах следуют равенства нулю вторых про- изводных в этих точках: 8" (хц)'= Ct = 0, 8" (x,J = 2сп 4- &dnhn = 0. (2.34 J Уравнения (2.30) — (2.34) составляют систему лилей- ных алгебраических уравнений для определения 4н ко-
§ 3. ИНТЕРПОЛИРОВАНИЕ эффициентов а,-, Ь{, с{, d{ (1=1, 2, ..и)'. Ее можно решить одним из методов, изложенных в гл. 4. Однако с целью экономии памяти ЭВМ и машинного времени эту систему можно привести к более удобному виду. Из условия* (2.30) срйзу Мйжйо' йДйтп все коэф- фициенты а,. Далее из (2.33), (2.34) получим di - п-1, d»--£. (2.35) Подставим эти соотношения, а также значения а, = yt — 1 в (2.31) и найдем отсюда коэффициенты у. — у. . 7г. 1 (2.36) . г __ Уп Уп—1 2 . Т з Учитывая выражения (2.35) и (2.36), исключаем из уравнения (2.32) коэффициенты d< и bh Окончательно получим следующую систему уравнений только для ко- эффициентов С,‘. Ci 0, cn±i 0, + 2 (frj-i + hi) Ci + = o о „ (2-37) = <J I . , I, I O, , , , , П, \ fli ni-l / Матрица этой системы трехдиагональная, т. e. ненуле- вые элементы находятся лишь на главной и двух сосед-' них с ней диагоналях, расположенных сверху и снизу. Для ее решения целесообразно использовать метод про- гонки (см. гл. 4). По найденным из системы (2.37) ко- эффициентам с{ легко вычислить коэффициенты di, bt. 3. Многочлен Лагранжа. Перейдем к случаю глобаль- ной интерполяции, т. е. построению интерполяционного многочлена, единого для всего отрезка [±о, х„]. При этом, естественно, график интерполяционного многочлена должен проходить через все заданные точки. Запишем искомый многочлен в виде Ф (х) = а0+ алх +...+ апхп. (2:38) Из условий равенства значений этого многочлена в уз- лах Xi соответствующим заданным табличным зпачеппям Mt получим следующую спетому уравнений для пахожде-
54 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ пия коэффициентов а0, щ, ..ап: а0 + atx0 4- ... 4- апх„ — Уо> ао + aixi 4- ... 4- anxi = ytl (2.39) 4~ ... 4~ — Уп* Можно показать, что эта система имеет единственное решение, если среди узлов интерполяции нет совпада- ющих, т. е. если xt х, при i ¥= j. Решив эту систему, найдем коэффициенты интерполяционного многочлена (2.38). Заметим вместе с тем, что такой путь построе- ния интерполяционного многочлена требует значитель- ного объема вычислений, особенно при большом числе узлов. Существуют более простые алгоритмы построения интерполяционных многочленов. , Будем искать многочлен в виде линейной комбинации многочленов степени п; L(x)~ у<>1й(х) + yllt(x)+.. .4- уп1п(х). (2.40) При этом потребуем, чтобы каждый многочлен lt(x) об- ращался в нуль во всех узлах интерполяции, за исклю- чением одного (i-ro), где он должен равняться единице. Легко проверить, что этим условиям отвечает много- член вида °() п)‘ (2.41) Действительно, 10(х0) = 1 при х~х0. При x = xlt ..., кп числитель выражения (2.41) обращается в нуль. По аналшмм с (2.41) получим 1 (*-*о)(*--*2) "•(*-*«) м%) (*>-*«) --К -м’ 7 ( Ч (х~хо)(х~х1)(х-хз} -'-(х-хп) 2 { ) ~ (*2 - Х0) (*2 - *1) (х2 - Хз) • • (*2 - М ’ (2.42) (х - xp) .., (х - хг_г) (X - Х^) ... (X - Хп) (xi - хо) • • • (Xi - Xi-l) (xi - xirl) • • • (xi - Xn) ' Подставляя в (2.40) выражения (2.41), (2.42), находим V „ (х~хо)"-(х- **-i) (х ~ xi+i) •••(*- Хп) ( ) Й Vi (xi - XJ • • • (xi ~ xi-i) (xi ~ • • • (^ “ xn) • (2,43)
g 3. ПНТЕРПОЛПРОВДНПЕ Эта формула называется интерполяционным многочле- ном Лагранжа. Покажем, что этот многочлен является единственным. Допустим противоположное: пусть существует еще один многочлен F(x) степени п, принимающий в узлах ин- терполяции заданные значения, т. е. F(Xi)—y:. Тогда разность R (х) = L (х) — F(x), являющаяся многочленом степени п (плп ниже), в узлах xt равна R(х{) = L(xj-F(х{) =0, t«0, 1, в. Это означает, что многочлен R (я) степени не больше п имеет п+1 корней. Отсюда следует, что /?(^)Е0 и F(x)=*L(x). Из формулы (2.43) можно получить выражения для линейной (п=1) и квадратичной (п==2) интерполяций: Z(^) = {х~х0>{х-х^ (х-хй)(х~х1) ,, п =“ 2, Существует несколько обобщений интерполяционного многочлена Лагранжа. Например, довольно широко ис- пользуются интерполяционные многочлены Эрмита. Здесь наряду со значениями функции yt в узлах xt задаются значения ее производной Уг, Задача состоит в том, что- бы найти многочлен <р(х) степени 2п + 1, значения ко- торого и его производной в узлах xt удовлетворяют со- ответственно соотношениям <₽(*>) = Z/ц <P'(^i) = ^t Z = 0, 1г n. В этом случае также существует единственное решение, если все xt различны. 4. Многочлен Ньютона. До сих пор не делалось ни- каких предположений о законе распределения узлов ин- терполяции. Теперь рассмотрим случай равноотстоящих значений аргумента, т. е. xt — xt-i — h — const (г =1, 2,..., n). Величина h называется шагом. Введем также понятие конечных разностей. Пусть известны значения функции в узлах хе. yi = f(Xi).
5(3 ГЛ 2. АППРОКСПМАЦПЯ ФУНКЦИЙ Составим разности значений функции: - Дуо = У< ~ у9 = /(^0 + h)- /(а:0), Az/j = У1-У^ = /(т0 + 2Л)-/(т0 + Л), ^Уп-1 — уп - IJn-t = /(z0 + nit) - /(хй + (?2 - l)h). Эти значения называются первыми разностями (пли раз- ностями первого порядка) функции. Можно составить вторые разности функции: Д2Уо = &У1 - Дуо, A2z/t = Ду2 - Ду„ . Аналогично составляются разности порядка к: Wji = Ah-’yi+1 - Д^’у., z = 0, 1, ..п - 1. Конечные разности можно выразить непосредственно через значения функции. Например, Д2Уо = Ду, - Ду0 = (у2 - У1) - (yi - Уо) = у2 - 2у, + у0, - Д3у0 = Д2у, - А2Уо =.. .= уз - Зу2 + Зу, - ус. Аналогично для любого к можно паппсать ДйУо = У к — кУь-г + ~Ц>|—- Ук-z + • • • + (— 1)Л!/о- (2.44) Эту формулу можно записать и для значения разности в узле ке, ^Уг — Ук\л — ^Vk+i-1 4 Ц] Ук + 1-2 + . . . + (-^ 1)ЙУ1» Используя конечные разности, можно определить ук". Vk - У„ + Му» + АЧ + ... + ДЧ- (2.45) Перейдем к построению интерполяционного многочле- на Ньютона. Этот многочлен будем пскать в следующем виде: 7V(,r) = а0 + а, {х — х0)+ аг(х — х^)(х — xt)+. ...+ ап(х — х0) (х — х{)... (х — Xn-t}, (2.46) График многочлена должен проходить через заданные узлы, т. е. А(х4) = у, (; = 0, 1, п). Эти условия ис-
g 3. ИНТЕРПОЛИРОВАНИЕ 57 пользуем, для нахождения коэффициентов многочлена: N(x0) = a0 = yPt N (хл) = а0 + «1 fa — ^о) = «о + aji — yt, Л'(г2) — «О + «1 (хг — хв) + а2 (х2 — х0) (х2 — xCj~ = g0 + 2g/i + 2a2h2 — y2, Найдем отсюда коэффициенты gOi gh a2: ao~ У O' n yi ~~go yt"y0 -Дуо 1 h h h * V2~ao~2axh ... У2 ~ «о ~ -H = 27г2 2/г2 27г2' Аналогично можно найти щая формула имеет вид и другие коэффициенты. Об- п = h k\hh ’ к — О, Д I,., lit Подставляя эти выражения в формулу (2.46), полу- чаем следующий вид интерполяционного многочлена Ньютона: Дм Д2//„ А (я) = у0 + ~(х — х0) + —— хй)(х — х^ ’ * • + ’ГТ ~ ^о) (ж — Ху) ... (х — хп-у). (2.47) nW1, Конечные разности Afty0 могут быть вычислены по фор- муле (2.44). Формулу (2.47) часто записывают в другом виде. Для этого вводится переменная t —(х — хй)Пг\ тогда х — х. х — х — h X = Хд -р th, == ——д — t С учетом этих соотношений формулу (2.47) можно пере- писать в виде (жо "Ь = у о ^Уо ф 21—’ ^2Уо Ф • * • ^.1 + — 1)";/ " + 1)АЧ- (2/18)
58 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ Полученное выражение может аппроксимировать дан- ную функцию у = /(;г) на всем отрезке изменения аргу- мента [.г0, х„]. Однако более целесообразно (с точки зре- ния повышения точности расчетов и уменьшения чпсла членов в (2.48)) ограничиться случаем t<l, т. е. ис- пользовать формулу (2.48) для х0 < х xt. Для других значении аргумента, например для х, х < х2, вместо хй лучше взять значение х,. Таким образом, интерполя- ционный многочлен Ньютона можно записать в виде Дг (Xi + th) = у, + t\yt 4- + • • • &пУц 1 = 0,1, ... (2.49) Полученное выражение называется первым интерполя- ционным многочленом Ньютона для интерполирования вперед. Интерполяционную формулу (2.49) обычно использу- ют для вычисления значений функции в точках левой половины рассматриваемого отрезка. Это объясняется следующим. Разности Д*у, вычисляются через значения функции ijt, yi+i, ..., у,+*, причем i + к < п; поэтому при болыйих значениях i мы не можем вычислить разности высших порядков (к < п — г’). Например, при i — п — 3 в (2.49) можно учесть только Ду, Д2у и Д3у. Для правой половины рассматриваемого отрезка раз- ности лучше вычислять справа налево. В этом случае t — (х — xn)/h, (2.50) т. е. t < 0, и интерполяционный многочлен Ньютона мож- но получить в виде N (хп 4- th) = уп+ t&yn-i 4——- Д2Уп-2 4- • •. , /(«4-1) ... 04-и — 1) дП /91514 т------------У о- Полученная формула называется вторым интерполяцион- ным многочленом Ньютона для интерполирования назад. Рассмотрим пример применения интерполяционной формулы Ньютона при ручном счете. Пример. Вычислить в точках х = 0.1, 0.9 значения функции у = /(-г), заданной табл. 1,
§ 3. интерполирование 59 Процесс вычислений удобно свести в ту же табл. 1. Каждая последующая конечная разность получается пу- тем вычитания в предыдущей колонке верхней строки Таблица 1 X V Дг/ Д’г/ Д’г/ Д4у &*у 0 1.2715 1.1937 -0.0146 0.0007 -0.0001 0.0000 0.2 2.4652 1.1791 —0.0139 0.0006 —0.0001 0.4 3.6443 1.1652 —0.0133 0.0005 0.6 4.8095 1.Т519 —0.0128 • 0.8 5.9614 1.1391 1.0 7.1005 пз нижней. При х — 0.1 имеем t— (х — x0)/h=* = (0.1 — 0)/0.2 = 0.5. По формуле (2.48) получим /(0.1)^ А'(0.1) = 1.2715 + 0.5-1.1937 + + 0.0146) + °-5(0-5.-Л)(0-5~2) -0.0007 + ' +15(0^ 1) (^.^2) (0^.-3) ,(_ 0 0001) = = 1.2715 + 0.59685 + 0.0Э182 + 0.00004 + 0.000004 = = 1.8702. Для сравнения по формуле линейной интерполяции по- лучаем /(0.1)« 1.8684. Значение функции в точке х = 0.9 нужно вычислять по формуле (2.51). В этом случае имеем t =(х — xn)/h =» = (0.9- 1) /0.2= -0.5. Тогда /(0.9)«Лт(0.9) = 7.1005 - 0.5-1.1391 - _Р-5(-а5+1) о 0j28) — — 9..5.±g .Q.00Q5 _ _ °-5 °-5 + <~40-5 + 2> <- °-5 + 3)0.0001) = = 7.1005 — 0.5696 + 0.0016 - 0.00003 + 0.000004=6.5325. Мы рассмотрели построение интерполяционного мно- гочлена Ньютона для равноотстоящих узлов. Можно
ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИИ СО построить многочлен Ньютона и для произвольно распо- ложенных узлов, как п в случае многочлена Лагранжа. Однако этот случай мы рассматривать не будем. В заключение отметим, что разные способы построе- ния многочленов Лагранжа и Ньютона дают тождествен- ные интерполяционные формулы при заданной таблице значений функции. Это следует из единственности интер- поляционного многочлена заданной степени (при отсут- ствии совпадающих узлов интерполяции). 5. Точность интерполяции. График интерполяционно- го многочлена y — F(x) проходит через заданные точки, т. е. значения многочлена и данной * функции у — /(х) совпадают в узлах x — xl (z = 0, 1, ..., и). Если функ- ция /(х) сама является многочленом степени п, то име- ет место тождественное совпадение: f(x)=F(x). В об- щем случае в точках, отличных от узлов интерполяции, 7?(.т) = ](х)— F(x)¥= 0. Эта разность есть погрешность интерполяции и называется остаточным членом интер- поляционной формулы. Оценим его значение. Предположим, что заданные числа yt являются зна- чениями некоторой функции у = f(x) в точках х — xt. Пусть эта функция непрерывна и имеет непрерывные производные до п + 1-го порядка включительно. Можно показать, что в этом случае остаточный член интерполя- ционного многочлена Лагранжа имеет вид W /»+пи>). (2.52) Здесь /(эт+1) (х*) — производная п + 1-го порядка функции f(x) в некоторой точке ж = х*, х* е [гт0, ж„]. Если макси- мальное значение этой производной равно шах |/(п+1) (х) | = 71/М1, х0^х<хп то можно записать формулу для оценки остаточного члена: (« -I- 1)! Остаточный член интерполяционного многочлена Ньютона можно записать в виде и = Л’н11 ы X ' * рг -р 1)! ' 1 /г
§ 3. ИНТЕРПОЛIIPODАЙПЕ Cl Если предположить, что разность А"+'//„ постоянна, то можно записать следующую формулу остаточного члена первой интерполяционной формулы Ньютона: (») = А"'' (2.53) \ц । V2 Следует еще раз подчеркнуть, что существует один и только одпн интерполяционный многочлен прп задан- ном наборе узлов интерполяции. Формулы Лагранжа, Ньютона и другие порождают одпн и тот же многочлен (при • условии, что вычисления проводятся точно). Раз- ница лишь в алгоритме их построения. Правда, интер- поляционный многочлен Лагранжа не содержит явных выражений для коэффициентов. Выбор способа интерполяции определяется различны- ми соображениями: точностью, временем вычислений, погрешностями округлений и др. В некоторых случаях более предпочтительной может оказаться локальная ин- терполяция, в то время как построение единого много- члена высокой степени (глобальная интерполяция) пе приводит к успеху. Такого рода ситуацию в 1901 г. обнаружил К. Рунге. Он строил на отрезке — 1 < х 1 .интерполяционные мно- гочлены с равномерным распределением узлов для функ- ции у — 1/(1 + 25яг). Оказалось, что прп увеличении степени интерполяционного многочлена последователь- ность его значении расходится для любой фиксированной точки х при 0.7 < |.rl < 1. Положение в некоторых случаях может быть исправ- лено специальным распределением узлов интерполяции (если они пе зафиксированы). Доказано, что если функ- ция /(ж) пмеет непрерывную пропзводпую на отрезке [—1, 1], то прп выборе значений совпадающих с кор- нями многочленов Чебышева степени п + 1, интерполя- ционные многочлены степени п сходятся к значениям функции в любой точке этого отрезка. Таким образом, повышение точности интерполяции целесообразно производить за счет уменьшения шага п специального расположения точек хг. Повышение степе- пи интерполяционного многочлена при локальной интер- поляции также уменьшает погрешность, однако здесь не всегда ясно поведение производной /(п+1)(а:) при увели- чении п. Поэтому на практике стараются использовать многочлены малой степени (линейную и квадратичную интерполяции, сплайны).
ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ 6. О других формулах интерполяции. Ранее уже упо- миналась одна из модификаций многочлена Лагранжа — интерполяционный многочлен Эрмита. При построении этого многочлена требуется, чтобы в узлах xt совпадали с табличными данными не только его значения, но и их производные до некоторого порядка. В общем случае выражение для многочлена Эрмита очень громоздко, и пользоваться им па практике трудно. Поэтому огра- ничиваются лишь некоторыми простейшими случаями. Например, многочлен Эрмита, который сохраняет в двух точках (.г = х0, х^ значения заданной функции y = f(x) и ее первой производно!"! у — f (х), имеет вид Н&) « Уо + {х - х0) ( У0 - + Иногда при выводе интерполяционных формул удоб- нее использовать не односторонние разности, как для многочлена Ньютона, а центральные. На этом основаны интерполяционные формулы Стирлинга и Бесселя. Они могут быть получены путем преобразования формулы - Ньютона. Рассмотрим интерполирование функций специального вида, а именно периодических функций. Для функции с периодом 2л можно построить интерполяционную фор- мулу по аналогии с формулой Лагранжа: F[x) - sin (х — Xj) sin (х — xg) .. .‘sin (x — xn) sin (xo - xj sin (xfl - x2) ... sin (xfl - x„) У0 + sin (x — x(.) sin (x — хД ... sin (x — x);) sin (xx - x0) sin (xt - x2) ... sin (xx - x„) У1 + sin (x — xQ) sin (x — Xj) ... sin (x — xn—\) ” ’ + sin (xn - x0) sin - Л) • • • Sin (xn ~ xn-l) Уп‘ 7. Функции двух переменных. До спх пор мы рас- сматривали интерполирование функций одной независи- мой переменной y — f(x). На практике возникает также необходимость построения интерполяционных формул для функций нескольких переменных. Для простоты ог- раничимся функцией двух переменных z = f(x, у). Пусть ее значения заданы на множестве равноотстоящих узлов
§ 3. ИНТЕРПОЛИРОВАНИЕ 63 (Zi, Уз), (i, J = 0, 1, 2). Введем обозначения zi}*= f(xt, yj, hi <£i+i •£,, h2 Уi+i Уз- . Построим многочлен, аналогичный формуле Ньютона для случая одной переменной. Здесь нужно вычислять разности двух видов — по направлениям х и у. Эти част- ные разности первого порядка определяются формулами = Zj^i, j Zijt %i, J+l ZjJ. Запишем также выражения для частных разностей вто- рого порядка: &хх%гЗ ~ %i+2,j 2%i+lJ 4* Zjj, ^yyzij ~ zi,i+2 2Zj j+1 + Zjj, Aj^Zjj — (Zjij j_|i zij + l) (zi+l,j zij)« Интерполяционный многочлен второй степени можно за- писать в виде х — у — Ул (л'> У) = zoo ь Axz00 4 - Aj/Zqo 4- "1 П2 , (X-X»)(X-Xi) д2 „ , ( 4 Т7Д ^хх^ОО • " 2/l£ д2 Lixyz00 Г (y-Z/o)^-^) *2 „ 2^ yv °0* а !^2 Можно также построить линейную интерполяционную формулу. Геометрически это означает, что нужно найти уравнение плоскости, проходящей через три заданные точки (ж„ yt, z,) (i = l, 2, 3), где Zi = f(Xi, у,). Из курса аналитической геометрии известно, что уравнение плоско- сти, проходящей через три точки, можно записать в виде х — х^ у—уг Z — Zj = 0. J2 Г3 Х1 ~Х1 ^2“^1 г2~ Уз ~ Уз гз - zi zi Отсюда можно найти 1 2 ~ D (Do DyX D. У), (2.54) 3 Х1 V1 zi У1 zi 1 Do = Х2 V2 z2 , Di = y2 Z2 1 , хз Уз Z3 Уз Z3 1 Xl Z1 1 X1 У1 1 d2 = X z 2 2 y.2 1 . гз 1 x-3 1
ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ Пример. Вычислить приближенное значение функ- ции z = f(x, у) в точке (1, 0), если известны ее значения ^=/(0, 0) = 0, z2 = /(2, 4) = —3, z3 = /(4, -2)=1. Воспользуемся формулой линейной интерполяции (2.54). Вычислим значения определителей 0 0 0 0 0 1 ^0 = 2 4 - 3 = 0д 4 -3 1 = -2, 4 — 2 1 -2 1 1 0 0 1 0 0 1 2—3 1 = 14., D3 = 2 4 1 -20. 4 1 1 4-2 1 Таким образом, z ~ — (2л—14у)720, пли z ~ —0.1.г + 0.7д. Это и есть формула линейной интерполяции для данного примера. При х = 1, у = 0 получим z & —0.1. § 4. Подбор эмпирических формул 1. Характер опытных данных. При интерполировании функций мы использовали условие равенства значении интерполяционного многочлена п данной функции в из- вестных точках — узлах интерполяции. Это предъявляет высокие требования к точности данных значений функ- ции. В случае обработки опытных данных, , полученных в ..результате наблюдений пли измерений, нужно иметь в виду ошибки этих данных. Опп могут быть вызваны несовершенством измерительного прибора, субъективны- ми причинами, различными случайными факторами и т. д. Ошибки экспериментальных данных можно услов- но разбить на три категории по их происхождению и ве- личине: систематические, случайные и грубые. Систематические ошибки обычно дают отклонение В одну сторону от истинного значения измеряемой вели- чины. Они могут быть постоянными пли закономерно изменяться при повторении опыта, и их причина и ха- рактер известны. Систематические ошибки могут быть вызваны условиями эксперимента (влажностью, темпера- турой среды и др.), дефектом измерительного прибора, его плохой регулировкой (например, смещением указа- тельной стрелки от нулевого положения) и т. д. Эти ошибки можно устранить наладкой аппаратуры плп вве- дением соответствующих поправок. Случайные ошибки определяются большим числом факторов, которые не могут быть устранены либо доста- точно точно учтены при измерениях плп при обработке
'§ 4. ПОДБОР ЭМПИРИЧЕСКИХ ФОРМУЛ ' 65 результатов. Они имеют случайный (несистематический) характер, дают отклонения от средней величины в ту и другую стороны при повторении измерений и не могут быть устранены в эксперименте, как бы тщательно он ни проводился. С вероятностной точки зрения математиче- ское ожидание случайной ошибки равно нулю. Статисти- ческая обработка экспериментальных данных позволяет определить величину случайной ошибки и довести ее до некоторого приемлемого значения повторением измерений достаточное число раз. Грубые ошибки явно искажают результат измерения; они чрезмерно большие и обычно пропадают при повто- рении опыта. Грубые ошибки существенно выходят за пределы случайной ошибки, полученные при статистиче- ской обработке. Измерения с такими ошибками отбрасы- ваются и в расчет при окончательной обработке резуль- татов измерений не принимаются. Таким образом, в экспериментальных данных всегда имеются случайные ошибки. Они, вообще говоря, могут быть уменьшены до сколь угодно малой величины путем многократного повторения опыта. Однако это не всегда целесообразно, поскольку могут потребоваться большие материальные или временные ресурсы. Значительно де- шевле и быстрое можно в ряде случаев получить уточ- ненные данные хорошей математической обработкой имеющихся результатов измерений. В частности, с помощью статистической обработки ре- зультатов измерений можно найти закон распределения ошибок измерений, наиболее вероятный диапазон измене- ния искомой величины (доверительный интервал) и дру- гие параметры. Рассмотрение этих вопросов выходит за рамки данного пособия; их изложение можно найти в не- которых книгах, приведенных в списке литературы. Здесь ограничимся лишь определением связи между исходным параметром х и искомой* величиной у на основании ре- зультатов измерений. 2. Эмпирические формулы. Пусть, изучая неизвестную функциональную зависимость между у и х, мы в резуль- тате серии экспериментов произвели ряд измерений этих величин и получили таблицу значений Z1 . • • ^0 У1 « • • Уа 5 л. И. Турчак
Св ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ Задача состоит в том, чтобы найти приближенную зави- симость V-fW, (2.55) значения которой при х = х{ (i — 0, 1, ...» п) мало отли- чаются от опытных данных у{. Приближенная функцио- нальная зависимость (2.55), полученная на основании экспериментальных данных, называется эмпирической формулой.- В § 1 отмечалось, что задача построения эмпириче- ской формулы отличается от задачи интерполирования. График эмпирической зависимости, вообще говоря, не проходит через заданные точки (х,-, у,), как в случае ин- терполяции. Это приводит к тому, что экспериментальные данные в некоторой степени сглаживаются, а интерполя- ционная формула повторила бы все ошибки, имеющиеся в экспериментальных данных. Построение эмпирической формулы состоит из двух этапов: подбора общего вида этой формулы и определе- ния наилучших значений содержащихся в ней парамет- ров. Общий вид формулы иногда известен из физических соображений. Например, для упругой среды связь между напряжением о и относительной деформацией е опреде- ляется законом Гука: о —Ее, где Е — модуль упругости; задача сводится к определению одного неизвестного па- раметра Е. Если характер зависимости неизвестен, то вид эмпи- рической формулы может быть произвольным. Пред- почтение обычно отдается наиболее простым формулам, обладающим достаточной точностью. Они первоначально выбираются из геометрических соображений: эксперимен- тальные точки наносятся на график и примерно угады- вается общий вид зависимости путем сравнения полу- ченной кривой с графиками известных функций (много- члена, показательной или логарифмической функций и т. п.). Успех здесь в значительной мере определяется опытом и интуицией исследователя. Простейшей эмпирической формулой является линей- ная зависимость у ~ ах + Ь. (2.56) Близость экспериментального распределения точек к ли- нейной зависимости легко просматривается после по- строения графика данной экспериментальной зависимо- сти, Кроме того, эту зависимость можно проверить путем
§ 4. ПОДБОР ЭМПИРИЧЕСКИХ ФОРМУЛ С7 вычисления значений kt: ki = ^yi/^Xi, &У1 = У1+1 — У1, Дж, = ж;+1 — ж,-, i = 0, 1, ..п — 1. Если при этом kt ~ const, то точки (Xi, yt) расположены приблизительно на одной прямой, и может быть постав- лен вопрос о применимости эмпирической формулы (2.56). Точность такой аппроксимации определяется отклонением величин kt от постоянного значения. В частном случае равноотстоящих точек xt (т. е. Дж,- = const) достаточно- проверить постоянство разностей Ду,-. Пример. Проверим возможность использования ли- нейной зависимости для описания следующих данных: х 0 0.5 1.0 1.5 2.0 2.5 у 1.17 1.81 2.50 3.15 3.79 4.44 Поскольку здесь х, — равноотстоящие точки (Дж, = — ж,-+1 — Xt = 0.5), то достаточно вычислить разности Ду,-: 0.64, 0.69, 0.65, 0.64, 0.65. Так как эти значения близки друг к другу, то в качестве эмпирической формулы мож- но принять линейную зависимость. В ряде случаев к линейной зависимости могут быть сведены и другие экспериментальные данные, когда их график в декартовой системе координат не является пря- мой линией. Это может быть достигнуто путем введения новых переменных т] вместо х, у: £ = ф(я, у), ц==^(ж, у). (2.57) Функции ф(ж, у) и г]?(ж, у) выбираются такими, чтобы точки тр) лежали на некоторой прямой линии в пло- скости (£, ц). Такое преобразование называется выравни- ванием данных. Для получения линейной зависимости v Т] = а^ + b с помощью преобразования (2.57) исходная формула должна быть записана в виде ф(ж, у) = щр(ж, у) + Ь. К такому виду легко сводится, например, степенная за- висимость у = сжь (ж>0, у>0). Логарифмируя эту фор- мулу, получаем 1g у = b 1g х + 1g а. Полагая £ — 1g х, ц == = 1g у, находим линейную связь; т] = Ь| + с (c = lgo). 5*
68 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИИ Другой простейшей эмпирической формулой является квадратный трехчлен у — ахг + Ъх + с. (2.58) Возможность использования этой 'формулы для случая равноотстоящих точек можно проверить путем вычис- ления вторых разностей A2?/, = yi+i — 2у,+ y{-t. При Д2г/, » «const в качестве эмпирической формулы может быть выбрана (2.58). 3. Определение параметров эмпирической зависимости. Будем считать, что тип эмпирической формулы выбран и ее можно представить в виде у = (р(х, а0, at, ..., flm), (2.59) где <р — известная функция, а0, alt ..., ат — неизвестные постоянные параметры. Задача состоит в том, чтобы оп- ределить такие значения этих параметров, при которых эмпирическая формула дает хорошее приближение дан- ной функции, значения которой в точках xt равны yt (i = 0, 1, ..., п). Как уже отмечалось выше, здесь пе ставится условие (как в случае интерполяции) совпадения опытных дан- ных у, со значениями эмпирической фупкцпи (2.59) в точках х^ Разность между этими значениями (отклоне- ния) обозначим через е,. Тогда е, =•= <р (х{, а0, а„ ..., ат) - у{, i = 0, 1, ..п. (2.60) Задача нахождения наилучшпх значений параметров а0, at, ат сводится к некоторой минимизации отклонений е,-. Существует несколько способов решения этой задачй. Простейшим из них является метод выбранных точек. Он состоит в следующем. По заданным эксперименталь- ным значениям на координатной плоскости OXY нано- сится система точек. Затем проводится простейшая плавная линия (например, прямая), которая наиболее близко примыкает к данным точкам. На этой линии вы- бираются точки, которые, вообще говоря, не принадлежат исходной системе точек. Число выбранных точек должно быть равным количеству искомых параметров эмпириче- ской зависимости. Координаты этих точек (я°, у]) тща- тельно измеряются и используются для записи условия прохождения графика эмпирической функции (2.59) че- рез выбранные точки: • <P«Wll * 0г 1Д . . ,4 ГП. (2.61)
§ 4. ПОДБОР ЭМПИРИЧЕСКИХ ФОРМУЛ 69 Из этой системы уравнений находим значения парамет- ров а0, ah ..ат. В частности, если в качестве эмпирической формулы принята линейная зависимость у — ах + Ь, то на этой прямой выбираются точки (#?, у?) и (т*2, г/г), и уравне- ния (2.61) примут вид «.г? + Ь = у°1, ах°2 + b = у%. (2.62) Можно также записать уравнение прямой, проходящей через эти выбранные точки. В этом случае не нужно ре- шать систему (2.62). Рассмотрим еще один способ определения параметров эмпирической формулы — метод средних. Он состоит в том, что параметры а0, ah ..., ат зависимости (2.59) определяются с использованием условия равенства нулю суммы отклонений (2.60) во всех точках хр. 2 е4 == 2 «о» аи ’ • — 1/«] = 0. (2.63) 4=0 4=1 Полученное уравнение служит для определения пара- метров «о, щ, ..., ат. Ясно, что из одного уравнения нель- зя однозначно определить все т + 1 параметров. Однако, поскольку других условий нет, равенство (2.63) путем группировки отклонений е{ разбивается на систему, со- стоящую пз т + 1 уравнений. Например, Ео + Е1 + е2 — 0, е3 + е4 + а5 + е6 — 0, (2.64) Вп—1 Сп 9. Решая эту систему уравнений, можно найти неизвестные параметры. Пример. Тело, движущееся прямолинейно с неиз- вестной скоростью По, в момент времени t — 0 начинает тормозить. Измерялось расстояние х от начала торможе- ния в следующие моменты времени Z: t, с 0 5 10 15 20 25 Т, м 0 106 182 234 261 275 Считая движение тела равнозамедленным с постоянным
70 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ замедлением а, найти приближенные значения парамет- ров v0 и а. Решение. Искомые параметры могут быть найдены из уравнения движения тела, которое представим с по- мощью эмпирической формулы, используя результаты измерений. Вид эмпирической формулы в данном случае известен из физических соображений — при равнозамед- ленном движении тела пройденное расстояние является квадратичной функцией времени; х = At2 + Bt + С. Легко установить, что С = 0, поскольку х = 0 при t = 0. Эмпирическая формула принимает вид x~At2±Bt. (2.65) Для определения параметров А, В нужно получить два уравнения. Воспользуемся методом средних и запи- шем уравнение (2.63) для всех точек (кроме- начальной): Ci + е2 + е8 + е4 + е5 — 0. Запишем вместо этого уравнения систему двух уравнении путем его расщепления: 61 + е2 + 63 = 0, е4 + е5 — 0. Используя выражение (2.65) и табличные данные, по- лучаем (А -52 + 5-5-106) + (И • 102 + 5 • 10—182) + + (Л • 152 + 5 • 15 — 234) = 0, (А • 202+ 5 20 — 261) + (А -252 + 5 • 25 — 275) = 0. Или окончательно 175Л + 155 = 261, 1025И + 455 = 536. Решая эту систему уравнений, находим А — —0.30, 5 = 39.07. Следовательно, эмпирическую формулу (2.65), кото- рая дает приближенную связь между пройденным рас- стоянием и временем, можно записать в виде х = -0.30Z2 + 39<07*.
§ 4. ПОДБОР ЭМПИРИЧЕСКИХ ФОРМУЛ 71 Сравнивая это уравнение с уравнением х — at2/2 + vot, получаем оценки для среднего ускорения тела и его на- чальной скорости: а = 2А = —0,60 м/с2, и0 — В — 39.07 м/с. Рассмотренные методы определения параметров эмпи- рической формулы являются сравнительно простыми, однако в ряде случаев получаемые с их помощью аппрок- симации-не обладают достаточной точностью. 4. Метод наименьших квадратов. Запишем сумму квадратов отклонений (2.60) для всех точек х0, ..., ж„: *$ = 2 ei = 2 1<Р "о- 5 бР • • • > дт) — Уг]2. (2.66) 1=0 1=0 Параметры о0, «1, ..., ат эмпирической формулы (2.59) будем находить из условия минимума функции S — — 8(а0, ah ..., om). В этом состоит метод наименьших квадратов. В теории вероятностей доказывается, что полученные таким методом значения параметров наиболее вероятны, если отклонения е,- подчиняются нормальному закону распределения. Поскольку здесь параметры о0, ал, ..., ат выступают в роли независимых переменных функции 5, то ее мини- мум найдем, приравнивая нулю частные производные по этим переменным: _ад _ п ад = п ад Ч ’ дпл~ ’'"'дат~ (2.67) Полученные соотношения — система уравнений для оп- ределения а0, «1, ..., ат. Рассмотрим применение метода наименьших квадра- тов для частного случая, широко используемого на прак- тике. В качестве эмпирической функции рассмотрим мно- гочлен Ф (х) = о0 + алх + ... + атхт. (2.68) Формула (2.66) для определения суммы квадратов откло- нений S примет вид 5 = 2 (а0 + aixi -г---+ атх™ — (2.69) i=o
72 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ Для составления системы уравнений (2.67) найдем частные производные функции S — S (с0, alt ..ат): п = 2 (с0 4- 4- • • • 4- у, 0 i=O 8S Q V1 ( , . . m „ A g- == 2 2. («0 + + • • • + amXi — Уг)Хц 1 1=0 n = 2 2 (co + alri + • • • m i=o i m .. A ™ 4" Уг) • Приравнивая эти выражения нулю в соответствии с урав- нениями (2.67) и собирая коэффициенты при неизвест- ных ае, at, ..., ат, получаем следующую систему уравнений: (п -|- 1) й0 -J- 0j 2 4" а2 2 + • • • 4- 0щ 2 — 2 Уй г=о i=o i=0 i=0 а0 2 4- oi 2 4- 02 2 4- ... + am 2 ^Г+1= 2 ^гУь i=0 i=0 i=0 i=0 i=0 (2.70) ...................................................................................... n П n.71 n a„ 2 xT+a, 2 S *Г!+ • • • +»«2^”= 2 x?ut. i=0 i=O i—0 i=0 i=0 Решая эту систему линейных уравнений, получаем коэф- фициенты а0, 01, ..., ат многочлена (2.68), которые явля- ются искомыми параметрами эмпирической формулы. Систему (2.70) можно записать в более компактном виде: 6Со«с + b0lat + ... + bvmam = Со, bjoGo + bltai + ... + btrnam = ch • • • • ‘ Umm&m П 71 bkl - S 4+'« ck - 2 xtui, (2.72) i=0 i=0 Пример. Используя метод вывести эмпирическую формулу наименьших квадратов, для функции y = f(z),
§ 4. ПОДБОР ЭМПИРИЧЕСКИХ ФОРМУЛ 73 заданной в табличном виде: X 0.75 1.50 2.25 3.00 3.75 У 2.50 1.20 1.12 2.25 4.28 Решение. Если изобразить данные табличные зна- чения на графике (рис. 10), то легко убедиться, что в качестве эмпирической формулы для аппроксимации функции у — }(х) можно принять параболу, т. е. квадратный трех- член: у » ф(х)[ = а0 + ахх + а2хг, (2.73) В данном случае имеем т — 2, п = 4, и система уравнений (2.71) примет вид ЪосИа + 5о1П, == Со, Н” "Ь ^12^2 ~ С,, (2.74) Ь2оОо "Р ^21^1 "Ь 622С2 == С2. Коэффициенты этой системы мо- гут быть вычислены по формулам (2.72), где i = 0,1, 2, 3, 4: ^оо &01 = = 0.75 + 1.50 + 2.25 + 3.00 + 3.75 = 11,25, &оа = = 0.752 + 1.502 + 2.252 + 3.002 + 3,752 = 30.94, 6М-2^ = 11-25, -24-30.94, 6Х! -24 = 94.92, 6И-24-30.94, Ь„-24-94.92, 6„ - 24 - 309.76, е. - 2У| - 2.50 + 1.20 + 1.12 + 2.25 + 4.28-11,35, с, — 2 xiVi — 29.00, с, = 2416 = 90.21. Система уравнений (2.74) запишется в виде 5а0 + 11.25^1 + 30.94а2 = 11.35, 11.25с0 + 30.94а, + 94.92а2 = 29.00, 30.94а, + 94.92а, + 309.76аг = 90.21.
74 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ Отсюда находим значения параметров эмпирической фор- мулы: ай — 5.54, ал = —4.73, а2 = 1.19. Таким образом, получаем следующую аппроксимацию функции, заданной в табличном виде: у«5.54-4.73х+1.19ж2. (2.75). Оценим относительные погрешности полученной ап- проксимации в заданных точках, т. е. найдем значения е. ю/а-Л— У- byi = 1 г) г: Результаты вычислений представим в виде таблицы X У е Сг/ 0.75 2.66 2.50 0.16 0.064 1.50 1.12 1.20 -0.63 —0.067 2.25 0.92 1.12 —0.20 —0.179 3.00 2.06 2.25 —0.19 —0.084 3.75 4.54 4.28 0.26 0.061 На рис. 10 построен график найденной эмпирической формулы. Точками, как уже отмечалось, нанесены задан- ные табличные значения функции. Замечание. Как видно из рассмотренного приме- ра, некоторые коэффициенты системы (2.74) равны: Ъ01 = &ю, Ь02 = Ьи = &2о, Ь12 = &2i. Из формул (2.72) не- трудно увидеть, что равны все коэффициенты Ъм прп к +1 = const. 5. Локальное сглаживание' данных. Как отмечалось в п. 1, опытные данные содержат случайные ошибки, что является причиной разброса этих данных. Во многих случаях бывает целесообразно провести их сглаживание для получения более плавного характера исследуемой зависимости. Существуют различные способы сглажива- ния. Рассмотрим один из них, основанный на методе наименьших квадратов. Пусть в результате экспериментального исследования зависимости у = / (х) получена таблица значений иско- мой функции у о, yh ..., уп в точках xOt xit ..., хп. Значе- ния аргумента х( предполагаются равноотстоящими, а опытные данные yt — имеющими одинаковую точность. Предполагается также, что функция у = / (х) на произ-
g 4. ПОДБОР ЭМПИРИЧЕСКИХ ФОРМУЛ 75 вольной части отрезка [д^о, £„] может быть достаточно хорошо аппроксимирована многочленом некоторохй сте- пени т. Рассматриваемый способ сглаживания состоит в сле- дующем. Для нахождения сглаженного значения у. в точ- ке выбираем по обе стороны от нее к значений аргу- мента пз имеющихся в таблице (к четное): ж4-А/2, ... ..Xt, xi+1, ..., xi+k/2. По опытным значениям рас- сматриваемой функции В ЭТИХ Точках yi-h/2, ..., Уг-i, у{, ..., yt+k/2 строим многочлен степени т с помощью метода наименьших квадратов (при этом т^к). Значе- ние полученного многочлена y.t в точке Xt и будет иско- мым (сглаженным) значением. Процесс повторяется для всех внутренних точек. Сглаживание значений, располо- женных вблизи концов отрезка [.г0, я,,], производится с помощью крайних точек. Опыт показывает, что сглаженные значения у(, как правило, с достаточной степенью точности близки к ис- тинным значениям. Иногда сглаживание повторяют. Од- нако это может привести к существенному искажению истинного характера рассматриваемой функциональной зависимости. Приведем в заключение несколько формул для вы- числения сглаженных значений опытных данных при различных т, к: т — 1: yi=*j (^i-1 + Уг + Уг+1\ к = 2, Уг~ у (ki-2 + У1-1 + Уг + Z/i+1 + У1+2), к — ^к, Уг = (Уг-S + У1-2 + Уг-1 + Уг + Z/i+1 + Уг+2 + Уг+з), А = 6; т = 3: У г — 35 (— ^Уг-2 + 12^1-1 + 17у, + 12yi+1 — ЗУг+2),. к — 4, Уг — 21 (— %Уг-3 + 3*/i-2 + вУг-1 + 7yi + 6^i+i -ф + — 2Уг+з), к — 6, ~ 23Г — 21^1-4 + 14i/i_3 + 39i/i-2 + 54г/|_х + 59?/, + 4- 54r/i+1 + 39i/t+2 ф 14^i+3 — 21^i+4),_ к = 8;
76 ГЛ. 2. АППРОКСИМАЦИЯ ФУНКЦИЙ т — 5: - Vi — 23J (^^i-з — 30^_2 4- 75^-1 4- 131^ 4- 75i/i+i — — 30г/;+2+51/^з),- &=6, 2/i ~ 429 — ^Уг-з + 30^_2 + 135z/i—j + 179г/i 4- 4- 135z/i4-i 4- 30z/j_j 2 — 55z/i+3 4- 15г/^4), к —8. Упражнения I. Составить блок-схему алгоритмов вычислений с помощью разложений в ряды значений функций: a) у = cos ж; б) у = е~ж; в) у — sh ж; г) у — fl 4" х- 2. Преобразовать данные многочлены в многочлены третьей степени: а) Р(х) = ж5 — Зж4 4* f*\ б) У (ж) = ж4 4- 5ж3 — 1. Оценить допущенные погрешности. 3. Записать по схеме Горнера алгоритм вычисления первых пяти членов степенных рядов при разложении функций: а) у = = sin ж; б) у — ch ж. 4. Используя цепные дроби, вычислить значения: а) In 2; б) tg (л/8); в) е®’1; г) arctg0.5. 5. Дана таблица значений функции к | 0 0.2 0.4 0.6 у I 1.763 1.917 2.143 2.362 в) С помощью линейной и квадратичной интерполяций найти приближенное значение функции при ж = 0.25. б) Вычислить, при каком значении аргумента справедливо ра- венство у = 2.000. 6. Составить блок-схему алгоритма вычисления функции с помощью квадратичной интерполяции. 7. Построить интерполяционный многочлен Лагранжа для функции, заданной таблицей в упр. 5. 8. Вычислить значение функции, заданной в упр. 5, при ж = 0.1, используя интерполяционный многочлен Ньютона. Оце- нить погрешность результата. 9. Найти величину ускорения при равноускоренном движении тела, если известны значения пройденного им пути S в некоторые моменты времени г. Г, с 0 5 10 15 20 25 S, м 5 150 560 1200 2100 3300
УПРАЖНЕНИЯ 77 10. Закон Гука можно записать в виде а = Ее, где о — напря- жение, Е — модуль упругости, в — относительная деформация. При испытаниях образца произвели п измерений значений сие. Написать алгоритм и составить блок-схему вычисления пара- метра Е. 11. Изучается зависимость между, электродвижущей силой Е и температурой нагревания Т термопары. Данные измерений при- ведены в следующей таблице: Т, °C 500 750 1000 1250 1500 Е, мВ 3.23 4.52 5.71 10.17 18.49 Найти приближенную зависимость Е(Т) в виде квадратного трех- члена.
ГЛАВА 3 ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ § 1. Численное дифференцирование 1. Аппроксимация производных. Напомним, что про- изводной функции у = f(x) называется предел отноше- ния приращения функции Ду к приращению аргумента Дж при стремлении Дж к нулю: У' = f (*) = Игл Ду =/(ж + Дж) —/(ж). (3.1) Дх-»0 Л Обычно для вычисления производных используют го- товые формулы (таблицу производных) и к выражению (3.1) не прибегают. Однако в численных расчетах на ЭВМ использование этих формул не всегда удобно и возможно. В частности, функция у = /(ж) может быть задана в виде таблицы значений. В таких случаях про- изводную находят, опираясь на формулу (3.1). Значение шага Дж полагают равным некоторому конечному числу и для вычисления значения производной получают при- ближенное равенство у'« Ду/Дж. (3.2) Это соотношение называется аппроксимацией (при- ближением) производной с помощью отношения конеч- ных разностей (значения Ду, Дж в формуле (3.2) конеч- ные в отличие от их бесконечно малых значений в (3.1)). Рассмотрим аппроксимацию производной для функ- ции у — f(ж), заданной в табличном виде: у0, у£, ... при ж «= ж0, xh ... Пусть шаг — разность между соседними значениями аргумента — постоянный и равен h. Запишем выражения для производной yt при ж = жо В зависимо- сти от способа вычисления конечных разностей получаем разные формулы для вычисления производной в одной и той же точке: Al/i = У1 — Уо,. = ht у{ & (3-3)
§ 1. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 79 с помощью левых разностей', &У1 = У-2~ Уъ &х = h, V--—- (3.4) с помощью правых разностей-, ^У1 ^У-1 — Уы = 2h> У1« У22/7 " (3-5) с помощью центральных разностей. Можно найти также выражения для старших произ- водных. Например, ~ ~ ~ (у2 ~ «i)/h - (У1 - V0)/k У1-={У1) -------------------i------------ дУ2~.2.^-±2о, (3.6) h2 Таким образом, по формуле (3.2) можно найти при- ближенные значения производных любого порядка. Одна- ко при этом остается открытым вопрос о точности полу- ченных значений. Кроме того, как будет показано ниже, для хорошей аппроксимации производной нужно исполь- зовать значения функции во многих узлах, а в формуле (3.2) это не предусмотрено. 2. Погрешность численного дифференцирования. Ап- проксимируем функцию f(x) некоторой функцией т. е. представим ее в виде /(Ж) = <р(х) + Я(х). (3.7) В качестве аппроксимирующей функции ф(ж) можно принять частичную сумму ряда или интерполяционную функцию. Тогда погрешность аппроксимации R(x) опре- деляется остаточным членом ряда или интерполяционной! формулы. Аппроксимирующая функция (р(ж) может быть ис- пользована также для приближенного вычисления произ- водной функции f(x). Дифференцируя равенство (3.7) необходимое число раз, можно найти значения производ- ных f'(x), /" (х), .. /^) = Ф'(г) + Я'(Ж), f"(x^^(x) + R"(x), В качестве приближенного значения производной по- рядка к функции /(ж) можно принять соответствующее значение производной функции ф(я), т. е. (я)« (я).
80 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ Величина (x) = /(*)(x)-<p('1)(z), характеризующая отклонение приближенного значения производной от ее истинного значения, называется по- грешностью аппроксимации производной. При численном дифференцировании функции, задан- ной в виде таблицы с шагом Л, эта погрешность зависит от А, и ее записывают в виде О(ЛА). Показатель степени к называется порядком погрешности аппроксимации про- изводной (пли просто порядком аппроксимации). При этом предполагается, что значение шага по модулю мень- ше единицы. . Оценку погрешности легко проиллюстрировать с по- мощью ряда Тейлора + Az) = / (z) + /' (z) Az + Az2 + Az3 + .., Пусть функция /(z) задана в виде таблицы (i = 0, 1, ..., п). Запишем ряд Тейлора при z = zlt Az = — —h с точностью до членов порядка h: Уо = У i — y'ih + O(h2)t Отсюда найдем значение производной в точке х = хр. л - ^4^+° ('')• Это выражение совпадает с формулой (3.3), которая, как видно, является аппроксимацией первого порядка (к — 1). Аналогично, записывая ряд Тейлора при Az = h, можно получить аппроксимацию (3.4). Она также имеет первый порядок. Используем теперь ряд Тейлора для оценки погреш- ностей аппроксимаций (3.5) и (3.6). Полагая Дх = Л и Az = —h, соответственно получаем " nt Уй - Vi + y\h + § Л2 + Л» + О (h"), . ; (3.8) S', - S', - У Ji + £ Л2 - V + О (Л<). О: Вычитая эти равёнства одно из другого, после очевид- ных преобразований получаем
§ 1. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 81 Это аппроксимация производной (3.5) с помощью цент- ральных разностей. Она имеет второй порядок. Складывая равенства (3.8), находим оценку погреш- ности аппроксимации производной второго порядка ви- да (3.6): _ л - у°-'2^,+-8 + 0 Таким образом, зта аппроксимация имеет второй порядок. Аналогично можно получить аппроксимации производных более высоких порядков и оценку их погрешностей. Мы рассмотрели лишь один из источников погрешно- сти численного дифференцирования — погрешность ап- проксимации (ее также называют погрешностью усече- ния). Она определяется величиной остаточного члена. Анализ остаточного члена нетривиален, и сведения по этому вопросу можно найти в более полных курсах по численным методам и теории разностных схем. Отметим лишь, что погрешность аппроксимации при уменьшении шага А, как правило, уменьшается. Погрешности, возникающие при численном дифферен- цировании, определяются также неточными значениями функции yi в узлах и погрешностями округлений при проведении расчетов на ЭВМ. В отличие от погрешности аппроксимации погрешность округления возрастает с уменьшением шага h. Поэтому суммарная погрешность численного дифференцирования может убывать при уменьшении шага лишь до некоторого предельного зна- чения, после чего дальнейшее уменьшение шага не по- высит точности результатов. Оптимальная точность может быть достигнута за счет регуляризации процедуры численного дифференцирова- ния. Простейшим способом регуляризации является такой выбор шага Л, при котором справедливо неравенство 1/(х + h)— j{a) I > е, где е > 0 — некоторое малое число. При вычислении производной это исключает вычитание близких по величине чисел, которое обычно приводит к увеличению погрешности. Это тем более опасно при по- следующем делении приращения функции на малое чис- ло h. Другой способ регуляризации — сглаживание таб- личных значений функции подбором некоторой гладкой аппроксимирующей функции, например многочлена. 3. Использование интерполяционных формул. Предпо- ложим, что функция /(х), заданная в виде таблицы с по- 6 л. и. Турчая
82 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ стояппым шагом h = xt— х,-! (i = 1, 2, ..и), может быть аппроксимирована интерполяционным многочленом Ньютона (2.3): У& N(х0 + th) = у0 + JAi/0 + - - АЧ + •». , t (t — 1) . . . (t — n+ 1) ATlji • + ---------------nj---------------Л y0’ x~xo h ‘ t = Дифференцируя этот многочлен по переменной х с уче- том правила дифференцирования сложной функции: dN _ dN dt _ _ldN dx dt dx h dt ’ можно получить формулы для вычисления производных любого порядка: у ® | (Ду. + дч + 3<8~|' + 2 дч + , 5f4 - 40Z3 + 10.5 л2 - 100Z + 24 л5 А I АЛ Уо "г • • • /’ „ 1 /А0 , 6f — 6 .» , 12t2 — 36f + 22 А. У « ^Ч + — ДЧ + -----------------4i.. АЧ + , 2Oz3 —120? + 210t-100 л5>1 . \ + 51 АЛ t/о I • • * у I П р и м е р. Вычислить в точке х — 0..1 первую и вто- рую производные функции, заданной таблицей (табл. 2). Здесь h = 0.1, t =(0.1 — 0)/0.1 = 1. Используя полу- ченные выше формулы, находим у' « 10 (о.5274 + • 0.0325 + 3Л ~|:1±_? . 0.0047 + + 4-1~18-^+22-1-6 # 0.0002) в 5 436j у" 100 ^0.0325 + Ц=^ • 0.0047 + 4- . 0.0002^ == 3.25,
§ 1, ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 83 Интерполяционные многочлены Ньютона (а также Стирлинга и Бесселя) дают выражения для производных через разности А''у (к—1, 2, ...). Однако на практике часто выгоднее выражать значения производных не через разности, а непосредственно через значения функции в узлах. Для получения таких формул удобно воспользо- ваться формулой Лагранжа с равномерным расположени- ем узлов (х{ — Xi-i = h — const, i = 1, 2, ..n). Таблица 2 X V &V А21/ А3У А‘у A’V 0 1.2833 0.5274 0.1 1.8107 0.5599 0.0325 0.0047 0.2 2.3606 0.5971 0.0372 0.0049 0.0002 0.0000 0.3 2.9577 0.6392 0.0421 0.0051 0.0002 0.4 3.5969 0.6864 0.0472 0.5 4.2833 Запишем интерполяционный многочлен Лагранжа L(x) и его остаточный член RL(x) (см. (2.43), (2.52)) для случая трех узлов интерполяции (п = 2) и найдем их производные: £(ж) = А К* — — *2) Уо — 2 (х — го) (х — Z2) У1 + £Г1 4- (ж — ж0) (х — xj у2], № Rl (х) = ^-(Ж — ж0) (х — Xj) (х — ж2), Л (ж) = —-g [(2х х1 х2) у0 — 2 (2х х0 х2) уг 4- + (2ж — х0 — жД у2], г/г , у Ri{x)= jjf [(ж — хл) (х — х2) + (ж — ж0) (ж — ж2) + 4- (ж — ж0) (ж — жДЬ Здесь р" — значение производной третьего порядка в не- которой внутренней точке ж* е [х0> хп].
84 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ Запишем выражение для производной у0 при х = х0: у'о = L'(х0) + R'l(x0) = ~ ^2) У о (2^0 — х0 Хп) У1 4* w 4* (2т0 з'о 3"i) */2] "Ь зр 1(*о ““ ^"1) (*о ^2) 4* + (хо — хо) (*о —ЭД + (х0 — ЭД (zo — ЭД] в = (“ 3^0 + &У1 - У2) + \у*> Аналогичные соотношения можно получить и для зна- чений У1} у% при х — хь ха: ' 1 ! . fc’ « ' i , , , О \ . hS У1 2/i У^ 6 2Л. ^У° ^У1 3У2) 4" "д" У* • ♦ Записывая интерполяционный многочлен Лагранжа и его остаточный член для случая четырех узлов (п = 3), получаем следующие аппроксимации производных: =А <- +18^ -+ ЭД - У?, У1 = (- 2Уо - 3У1 + 6i/2 — Уз) 4- у2 у^х (3-9) Уз =^(i/o-6^i + 3^2 + ЭД-рг^т = ^ (- 2у0 4- 9уг - 18у2 4- 11Уз) + \ У^^ В случае пяти узлов (п = 4) получим у°= 25^°+ 48zz-i “36^2 +16^3—ЭД + Т У1 = Зу0 - Юух 4- 18у2 - 6у3 4- гл) - у^, y^ih (у° ~~ 8lJ1 + 8уз ~~ У*) + So ’ (3-10> ‘ У^^~~ У ° + 6г/1 ~ 18^ + 10Уз + ЭД + У* ’ 1/1 = (Зу0 — 1бУ1 4- 36уа — 48у3 4- 25у4) 4- j у^.
§ 1. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 8S Таким образом, используя значения функции в п’4*1 узлах, получаем аппроксимацию производных n-го поряд- ка точности. Эти формулы можно использовать не только ДЛЯ узлов X = Хо,' Г1, . . ., НО и ДЛЯ любых узлов X — Xj, xi+it ..., соответствующим образом изменяя значения индексов. Обратим внимание па то, что при четных п наиболее простые выражения и наименьшие коэффициенты в оста- точных членах получаются для производных в средних (центральных) узлах (ух при п = 2, у2 при и т. д.) . Выпишем аппроксимации производных для. узла с произ- вольным номером г, считая его центральным: > 1 , , h2 «' У г 2^\Уг+1 Уг—1) g У * 1 У г ~ 2 tyi—1 4" j —- l/j+a) 4* gjj । Они называются аппроксимациями производных с по- мощью центральных разностей и широко используются на практике. С помощью интерполяционных мпогочлепов Лагранжа можно получить аппроксимации для старших производ- ных. Приведем аппроксимации для вторых производных. В случае трех узлов интерполяции (п — 2) имеем у0 == (уо — 2уг 4- у2) 4- О (h)f v; _ р (у. - 2У1 + + О (Л*), (3.12) В случае четырех узлов (п — 3) имеем у0 = - (2у0 - 5У1 4- 4//2 - у3) 4- о у. = ± (у0 - 2У1 + у2) 4- о (Л2), (3.13) у"2 == (У1 ~ 4- Уз) 4- О (h2)f Уз = Tii (— У о 4- ^У1 — Зу2 + 2у3) + О (/г2), th п = 2, (3.11) п = 4.
86 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ В случае пяти узлов (п = 4) имеем У о 773 “ 104*/i + 1— 56у3 + 11у4) + О (h3), 12h У1 = 7^2 <11!/0 “ 2Qyi + 6^2 + 4Уз — У^ + 0 »»- +> <- у« +,б!/1 _ ЗГ||/г + ‘вл - +° ('’*). (з.и» iLtll Уз = -~2 (“ У о + 4^i + &У2 — 20г/3 + 11у4) + О (/г3), 12п y'i = 773 (И^о “ 56^i + 114у2 — Ю4уз + 35у4) + О (/г3). 12/г Аппроксимации вторых производных с помощью цент- ральных разностей при четных п также наиболее выгодны. 4. Метод неопределенных коэффициентов. Аналогич- ные формулы можно получить и для случая произволь- ного расположения узлов. Использование многочлена Лагранжа в этом случае приводит к вычислению гро- моздких выражений, поэтому удобнее применять метод неопределенных коэффициентов. Он заключается в сле- дующем. Искомое выражение для производной k-то по- рядка в некоторой точке х — х{ представляется в виде линейной комбинации заданных значений функции в уз- лах х0, xlt ,.хп: УГ = соУо + + ... + спуп. (3.15) Предполагается, что эта формула имеет место для мно- гочленов у = 1, у = х — х^ у = (х — х{)п. Подставляя последовательно эти выражения в (3.15), получаем си- стему п + 1 линейных алгебраических уравнений для оп- ределения неизвестных коэффициентов с0, с,, ..сп. Пример. Найти выражение для производной yt в случае четырех равноотстоящих узлов (п — 3). Равенство (3.15) запишется в виде У1 = с0у0 + CiPi + с.2у2 + с3у3. (3.16) Используем следующие многочлены: р = 1, у = х-х0, у = (х-х0)2, у=(х-х0)3. (3.17) Вычислим их производные: у' =0, ^' = 1, у' = 2(х-хе), р' = 3(х-ж0)2. (3.18)
§ 1. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 87 Подставляем последовательно соотношения (3.17) и (3.18) соответственно в правую и левую части равенства (3.16) при х = хс. О — Со • 1 + Ci • 1 + С2 • 1 + Сз • 1, 1 = Со (а?о — XD) + Cl (Xi — х0) + с2 (х2 — Хо) + с3 (х3 — Хо), 2 (Zi - хй)= c0(xQ — х0)2 + ct (xi — хв)2 + » + с2(х2 — xDy + с3'(х3 — хв)2, 3 (Xi — Хо) 2 = Со (z0 — Хо) 3 + Ci (Xi — Хо) 3 + + С2 (х2 - Хо) 3 + С3 (х3 — Хо) Получаем окончательно систему уравнений в виде Со + Ct + С2 + Сз = О, hci + 2hc2 + 3hc3 = 1, hCi + 4/zc2 + 9/гсз = 2, hci + 8/jc2 + 21hc3 = 3. Решая эту систему, получаем _ _ i_ _ _ А _ А______________________А со =“ ЗА’ С1 2/г’ °2 ~ h ’ Сз “ 6Л’ Подставляя эти значения в равенство (3.16), находим выражение для производной: У1 = 2уо ~ + 6^2 ~ у^ 5. Улучшение аппроксимации. Как видно из конечно- разностных соотношений для аппроксимаций производ- ных (см. п. 3), порядок их точности прямо пропорциона- лен числу узлов, используемых при аппроксимации. Од- нако с увеличением числа узлов эти соотношения стано- вятся более громоздкими, что приводит к существенному возрастанию объема вычислений. Усложняется также оценка точности получаемых результатов. Вместе с тем существует простой и эффективный способ уточнения ре- шения при фиксированном числе узлов, используемых в аппроксимирующих конечно-разностных соотношениях. Это метод Рунге — Ромберга. Изложим вкратце его сущность. Пусть F (х) — производная, которая подлежит аппрок- симации; f(xf h)—конечно-разностная аппроксимация этой производной на равномерной сетке с шагом h; R —
88 гл. з. Дифференцирование и интегрирование погрешность (остаточный член) аппроксимации, главный член которой можно записать в виде hpq>(x), т. е. R = 71р<р(я) + О(Лр+1). Тогда выражение для аппроксимации производной в об- щем случае можно представить в виде F(x) = /(z, h) + hpq(x) + O(hp+l}. (3.19) Запишем это соотношение в той же точке х при другом шаге hi = kh. Получим Г(ж) = /(ж, kh) + [kh)p(f{x) + 0({kh)p+l'j. (3.20) Приравнивая правые части равенств (3.19) и (3.20), на- ходим выражение для главного члена погрешности ап- проксимации производной: hpq (т) = L(x’h}~f<x’ kh} + О (7ip+1). кр — 1 Подставляя найденное выражение в равенство (3.19), получаем формулу Рунге'. F(x) = f h) + + о (hp+1Y (3.21) kv — 1 Эта формула позволяет по результатам двух расчетов значений производной f(x, h) и /(х, kh) (с шагами h и kh) с порядком точности р найти ее уточненное значение с порядком точности р + 1. Пример. Вычислить производную функции у»Xs в точке х — 1. Очевидно, что у' = 3х2; поэтому у'(1) = 3. Найдем теперь эту производную численно. Составим таблицу зна- чений функции: 0.8 0.9 1.0 0.512 0.729 1.0 Воспользуемся аппроксимацией производной с помощью левых разностей, имеющей первый порядок (р = 1). Примем шаг равным 0.1 и 0.2, т. е. /с = 2. Получим /(*. Л) -= 0.1) - - 2.7Ь /(«, И) - у’ (1.0.2) - » 2.44.
§ 1. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 89 По формуле Рунге найдем уточненное значение произ- водной: F(x) - »'(1) - 2.71 + 2-7‘~ 2;4i - 2.98. & 1 Таким образом, формула Рунге дает более точное значе- ние производной. В общем случае порядок точности ап- проксимации увеличивается на единицу. Мы рассмотрели уточнение решения, полученного при двух значениях шага. Предположим теперь, что расчеты могут быть проведены с шагами hb h2, ..h9. Тогда можно получить уточненное решение для производной F (х) по формуле Ромберга, которая имеет вид /(X, hj hl h?+1 ... Л.Р+’-2 /(х, Л2) ... ^+’-2 /(*, hq) h? k%+1 ... 1 h^1 ... /ф+«-2 I hl 4+1 ... hP+ч-2 1 ... h^-2 Таким образом, порядок точности возрастает на q — 1. Заметим, что для успешного применения уточнения ис- ходная функция должна иметь непрерывные производные достаточно высокого порядка. 6. Частные производные. Рассмотрим функцию двух переменных u = j(x, у), заданную в табличном виде: = yj), где Xi^xo + ihi (i = 0, 1, ..., 7), у^у0 + + 7^2 (у = 0, 1, ...,/). В табл. 3 представлена часть дан- ных, которые нам в дальнейшем понадобятся. Используя понятие частной производной, можем при- ближенно записать для малых значений шагов 7ц, h2 ди ~ f(x + hr у) — / (X у) дх'"' ht 8u~f(x, У + Л2) —/(-г, У) Л Воспользовавшись введенными выше обозначениями, по- лучим следующие приближенные выражения (аппрокси-
go ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ мации) для частных производных в узле (xh Уз) с по- мощью отношений конечных разностей: f ди \ * f 1 Л " W • л (дн^\ U • 4 t ~г| ( ои I г+1,7_________г? I J г,7 + 1__г} \dxjij'"' h * \ду)ц~ h Л. Л Для численного дифференцирования функций многих переменных можно, как и ранее, использовать интерпо- ляционные многочлены. Однако рассмотрим здесь другой Таблица 3 V X хг-2 xi-l xi xi+l xi4-2 2 иг-2, 3-2 Ui-1, 3-2 Ui, j—2 ui+l, j-2 Mi+2, 3-2 У]-1 Ui-2, j-1 Ui—l, j-1 Ui, 3-1 Ui+1, j-i Ui+2, 3-1 У] Mi-2, j 3 uij Ui+l, 3 Ui+2, 3 У3+1 Ui-2, j+1 Wi-i, 3 +J ui, j+1 Ui+1, .7+1 Ui+2, 3+1 У} + 2 Ui-2, j+2 «i-1,7+2 "i, 3+2 Ui+1, j+2 Ui+2. j+2 способ — разложение в ряд Тейлора функции двух пе- ременных: / (х + Дж, у + ку) = f(x, у) + кх + Ду + 4- ( -£ кх2 -}- 2 /г кхку + Ду2) + 2! \дх3 дхду ду* / 1 (d3f d3f 4- йт —4 кх3 4- 3 —~ кхгк у 4- 3! \dz3 дх2ду + 37Т2А+^/2+ т4 А^я +... (3.22) дхду ду / Используем эту формулу дважды: 1) найдем H,+Iij = = f(Xi+hi, У]) при kx = hh Ду = 0; 2) найдем = = f(Xi — hh у,) при кх = — ку = 0. Получим мг+и —11 а + C?lA .clz/i /1 + ^1 ( d2u^ \^2 / | Л? i} + ^i / д3иУ c?(A 7 , 1 I f s2u\ 1 7 2 i । ( ^3,г^ dx) t /1 + 2! 1 hi a 3! ’ Л?4- ц 4- ij
§ 1. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 91 Вычитая почленно из первого равенства второе, получаем = 2^1 (^1)' Отсюда найдем аппроксимацию производной с помощью центральных разностей: « + О Она имеет второй порядок. Аналогично могут быть получены аппроксимации про- изводной ди/ду, а также старших производных. В част- ности, для второй производной можн(^получить я2 ' о и _иг+ц-2ии+иг-и дх21 /г2 / гз п1 Записывая разложения в ряд (3.22) при разных зна- чениях Az и Ар, можно вывести формулы численного дифференцирования с необходимым порядком аппрок- симации. Приведем окончательные формулы для некоторых ап- проксимаций частных производных. Слева указывается комбинация используемых узлов (шаблон), которые от- мечены кружочками. Значения производных вычисляются в узле (х,, у,), отмеченном крестиком (напомним, что на шаблонах и в табл. 3 по горизонтали изменяются пере- менная х и индекс i, по вертикали — переменная у и индекс ]'): охи \dxja 2hx ’ ° ~ и1л-1 q [ty/ij 2h2 2 /дА uij+i~2un + ui,3-i ® I 7г-------« О \дУ Ji3 hl ® ® _ Цг+1J+l ~~ Mi+1 J-1 ~~ Цг-1,7+1 О О \дх8^
92 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ О О / ОХО _ Mi+l,i+l мг-1,?+1 + ui + 1 J-1 4/1^ 1 0 О ptA ОХО ^lii = t \ ( 0 и \ Mi+1 ?+1 ~ Ifi+1,7—1 ~i~ Ui-lJ+l ~ ui-l,3-l 4/i2 1 ОО0ОО — = V ох /.. \ / гз ~ Ui+2,3 + 16“i+l J “ 3°Uij + ~ «i-2j 12/^ - «{,j+2 + 1Ч.Н1 - 30»И + 16иЦ-1 ~ “iJ-2 12Л| 1 ООО(д*и\ 1 , о , О®О —2 e 775(MiPlJ+l — + ul~l,i+l + ui+l,3 OOO\dx Jij 6hi — 2и^ + Щ-ij + —2ui,3-i + K»-i j-i) ОООШ 1. О . O®O П = 777(ui+lJ+l “• ^i+lJ + ui+l,3-l + ui, i+l— ООО № Jij 3h2 — %11гЗ + Ui,3~ 1 + ui-1,3+1 — ^ui-l,3 + Ui-1,3-1)’ Приведенные аппроксимации производных могут быть использованы при построении разностных схем для ре- шения уравнений с частными производными (см. гл. 8). § 2. Численное интегрирование 1. Вводные замечания. Напомним некоторые понятия, необходимые для дальнейшего изложения. Пусть на отрезке [а, 6] задана функция y = J(x). С помощью точек х0, xi} ..хп разобьем отрезок [а, 6] на п элементарных отрезков [я.-ь ж,] (i=l, 2, ri), причем хй — а, хп — Ь. На каждом из этих отрезков выбе- рем произвольную точку (xt-i я,) и найдем про- изведение St значения функции в этой точке /(£,) на. длину элементарного отрезка Дхг = xt — х^: ^ = /(В.)Д^. (3.23)
g 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ 93 Составим сумму всех таких произведений: Sn = + s2 + ... + sn = 2 /(U (3.24) i=l Сумма Sn называется интегральной суммой. Опреде- ленным интегралом от функции /(ж) на отрезке [а, 6] называется предел интегральной суммы при неограничен- ном увеличении числа точек разбиения; прп этом длина наибольшего из элементарных отрезков стремится к нулю: ’ _ J/(z)Jz= lim 2/(£г)Дж|. (3.25) ц тахДх{-*0 i=l Теорема существования определенного интеграла. Если функция f(x) непрерывна на [а, 6], то предел интегральной суммы существует и не зависит ни от способа разбиения отрезка [а, 6] на элементарные отрезкщ ни от выбора точек Геометрический смысл введенных понятий для случая /(х)>0 проиллюстрирован на рис. 11. Абсциссами точек Mt являются значения ординатами — значения /(£,). Выражения (3.23) при i = 1,2,..., п описывают площади элементарных прямоугольников (штриховые линии), ин- тегральная сумма (3.24) — площадь ступенчатой фигуры,
94 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ образуемой этими прямоугольниками. При неограничен- ном увеличении числа точек деления и стремлении к нулю всех элементов Ля,- верхняя граница фигуры (ломаная) переходит в линию у = /(а‘). Площадь полу- ченной фигуры, которую называют криволинейной трапе- цией, равна определенному интегралу (3.25). Во многих случаях, когда подынтегральная функция задана в аналитическом виде, определенный интеграл удается вычислить непосредственно с помощью неопреде- ленного интеграла (вернее, первообразной) по формуле Ньютона — Лейбница. Она состоит в том, что определен- ный интеграл равен приращению первообразной F (х) на отрезке интегрирования; ь (x)dx = F(xtfa = F(b) - F(а), (3.26) а Однако на практике этой формулой! часто нельзя вос- пользоваться по двум основным причинам: 1) вид функ- ции f(x) не допускает непосредственного интегрирования, т. е. первообразную нельзя выразить в элементарных функциях; 2) значения функции f(x) заданы только па фиксированном конечном множестве точек xh т. е. функ- ция задана в виде таблицы. В этих случаях используются методы численного интегрирования. Они основаны на ап- проксимации подынтегральной функции некоторыми бо- лее простыми выражениями, например многочленами. Одним из таких способов, который может быть ис- пользован для вычисления интегралов в первом случае, является представление подынтегральной функции в ви- де степенного ряда (ряда Тейлора). Это позволяет свести вычисление интеграла от сложной функции к интегриро- ванию многочлена, представляющего первые несколько членов ряда. 1 Пример. Вычислить интеграл I = J е~х dx с по- о грешностью 10-4. Воспользуемся разложением экспоненты в ряд: г х2 х3 ех=1+х + ^ + ^+ ... Используя последнее выражение и заменяя х на — хг,
§ 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ 95 записываем интеграл в виде Более универсальными методами, которые пригодны для обоих случаев, являются методы численного интегри- рования, основанные на аппроксимации подынтегральной функции с помощью интерполяционных многочленов. В дальнейшем будем использовать кусочную (локальную) интерполяцию. Это позволит приближенно заменить оп- ределенный интеграл интегральной суммой (3.24). В за- висимости от способа ее вычисления получаются разные методы численного интегрирования (методы прямоуголь- ников, трапеций, парабол, сплайнов и др.). Следует отметить, что к вычислению определенного интеграла сводятся многие практические задачи: вычис- ление площади фигур, определение работы переменной силы и др. Решение задач с использованием кратных ин- тегралов также может быть, в конечном итоге, сведено к вычислению определенных интегралов. 2. Методы прямоугольников и трапеций. Простей- шим методом численного интегрирования является метод прямоугольников. Он непосредственно использует замену определенного интеграла интегральной суммой (3.24). В качестве точек могут выбираться левые (£( = £,-!) или правые (£•=£.) границы элементарных отрезков. Обозначая /(^i) = yi, Д^ = h,, получаем следующие фор- мулы метода прямоугольников соответственно для этих двух случаев: ь J* / (^) ~ 4" ^2^1 4" • • • 4" Ь-пУп—1? (3.27) а Ъ J f(x) dx = hlyl + h2y2 + + hnyn. (3,28) a Широко распространенным и более точным является вид формулы прямоугольников, использующий значения
96 гл. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ функции в средних точках элементарных отрезков (в по- луцелых узлах): г ” J / (z) dx = 2 МОЙ-1/2Х (3.29) a i 1 Xi-i/г — (zi-i.4- xd)/2 = Xi-i + hJ2, i — i, 2, ..n. В дальнейшем под Рис. 12 методом прямоугольников будем по- нимать последний алгоритм (он еще называется методом средних). Метод трапеций использует ли- нейную интерполяцию, т. е. гра- фик функции y = /(z) представля- ется в виде ломаной, соединяющей точки (z„ yi). В этом случае пло- щадь всей фигуры (криволинейной трапеции) складывается из площа- дей элементарных прямолинейных трапеций (рис. 12). Площадь каж- дой такой трапеции равна произве- дению полусуммы оснований на высоту: = 2 — 1, 2, И. Складывая все эти равенства, получаем формулу тра- пеций для численного интегрирования: Ь п / (z) dx = ± 2 hi (Уг-1 + Уг)- (3.30) а »=1 Важным частным случаем рассмотренных формул яв- ляется их применение при численном интегрировании с постоянным шагом hi = h — const (i —1, 2, ..., n). Фор- мулы прямоугольников и трапеций в этом случае при- нимают соответственно вид г п J /(z)<7z = ^ 2 /(Zi_1/2)t (3.31) а I—1 J/(z)Jz = /zfc^ + 2 уг . (3.32) Рассмотрим пример использования этих формул при ручном счете для простейшего интеграла, допускающего
§ 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ 97 также непосредственное вычисление. Такой пример п> вводит сравнить результаты расчетов, полученные раз- личными способами. 1 Пример. Вычислить интеграл I — J -2. о Этот интеграл легко вычисляется по формуле (3.26): I = arctgx IJ = у ~ 0-785398, Используем теперь для вычисления данного интеграла формулы прямоугольников и трапеций. Разобьем отрезок интегрирования [0, 1] на десять равных частей: п = 10, Таблица 4 Ki xi—1/2 1/2 0.0 1.000000 0.1 - 0.990099 0.05 0.997506 0.2 0.961538 0.15 0.977995 0.3 0.917431 0.25 0.941176 0.4 0.862069 0.35 0.890868 0.5 0.800000 0.45 0.831601 0.6 0.735294 0.55 0.767754 0.7 0.671141 0.65 0.702988 0.8 0.609756 0.75 0.640000 0.9 0.552486 0.85 0.580552 1.0 0.500000 0.95 0.525624 Л = 0.1. Вычислим значения подынтегральной функции yi = 1/(1 + ^i) в точках разбиения = х1_1 + h, а также в полуцелых точках ж;_1/2 = ж,-! +/г/2 (г = 1, 2, 10) (ia6ni 4). Цо формуле прямоугольников (3.31) получим ю — h 2 Уг-1/2 =* 4—1 = 0,1 (0.997506 + ... + 0.525624) = 0.785606. 7 л. и. турч&м
98 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ Погрешность в вычислении интеграла составляет АЦ — = Л — I— 0.00021 (около 0.027%). Используя формулу трапеций (3.32), находим 12 — 0.1 (0.750000 + 0.990099 + +... + 0.552486) = 0.784981. Погрешность здесь равна Д/2 =-0.00042 (около 0.054%). Таким образом, в рассмотренном примере лучшую точность вычисления интеграла дает формула прямоуголь- ников. Это на первый взгляд неожиданный результат, поскольку формула прямоугольников использует интер- поляцию нулевого порядка (кусочно постоянную), в то время как формула трапеций использует кусочно линей- ную интерполяцию. Повышение точности здесь объясня- ется способом вычисления элементарных площадей st, использующим значения функции в центральной точке Xi-in на отрезке [ж,-!, ж,]. Заметим, что использование формул прямоугольников в виде (3.27) или (3.28) при- ведет к погрешности, более 3%. В рассмотренном примере погрешность численного интегрирования легко оценивалась, поскольку имелось точное значение интеграла. В общем случае погрешность Rn численного значения Sn равна ь Rn= f f(x)dx — Sn. а Она зависит от шага разбиения, и ее можно представить в виде Rn = O(hh). В случае переменного шага можно принять h = max hi. Из этого представления погрешно- сти численного интегрирования следует, что при h -* 0 (n-*°o) значения интеграла, получаемые путем числен- ного интегрирования, сходятся к его точному значению. Заметим, что это имеет место, если подынтегральная функция на конечном отрезке [а, Ь] интегрируема (до- статочное условие). На основании формул прямоугольников и трапеций можно получить уточненные значения интегралов, если учесть характер погрешностей этих формул. Главный член погрешности формулы прямоугольников (3.29) на каждом отрезке [ж,-!, ж,] равен 24 ^т/4 (^i-1/2); для фор- мулы трапеций он равен — h\f (ж J, т. е. примерно вдвое больше и имеет другой знак. На основании этого можно записать уточненную формулу для вычисления определенного интеграла с использованием значений Ц
§ 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ 99 и 1г, вычисленных по методам прямоугольников и тра- пеций: 7«(2Л + /2)/3. (3.33) Для рассмотренного выше примера получено Д = = 0.785606, Z2 = 0.784981. Поэтому, следуя (3.33), най- дем 7 = (2-0.785606+ 0.784981)/3 = 0.785398 (с точно- стью до погрешностей округления), т. е. все шесть раз- рядов равны точным значениям. Поскольку погрешность чиеленного интегрирования определяется шагом разбиения, то, уменьшая его, можно добиться большей точности. Правда, увеличивать число точек не всегда возможно. Если функция задана в таб- личном виде, приходится, как правило, ограничиваться данным множеством точек. Повышение точности может быть в этом случае достигнуто за счет повышения сте- пени используемых интерполяционных многочленов. Рас- смотрим два таких способа численного интегрирования: использование квадратичной интерполяции (метод Симп- сона) и интерполирование с помощью сплайнов. 3. Метод Симпсона. Розобьем отрезок интегрирования [а, Ь] на четное число п равных частей с шагом h. На каждом отрезке [я0, х2], (+2, я4], ..., [a;t—zi+1], ... ..., [яп-г, хп] подынтегральную фун- кцию f(x) заменим интерполяцион- ным многочленом второй степени: f(x) ~ (р,- (х) = а,х2 + biX + ct, Xi-i С x C xi+i. Коэффициенты этих квадратных трехчленов могут быть найдены из условий равенства многочлена в точ- ках Xi соответствующим табличным данным yt. В качестве q>t(x) можно принять интерполяционный много- член Лагранжа второй степени, проходящий через точки Mi-ilxi-t, yi-i), Mi(xi, yt), Mi+i(xi+i, yi+l): (x~xi) (x~xi+i) (xi-l ~ xi) (xi-l ~ xi+l) 4>»(z) = Vi-1 (*-*i-l) (x~xi) n (Xi-Xi-l)(Xi-Xi+l) ^+(*H4-*i-l)(*i+l-*i) ^+1‘ Элементарная площадь s, (рис. 13) может быть вы- числена с помощью определенного интеграла. Учитывая 7*
100 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ равенства xi+l — xt — xt — Xt-t — h, получаем Ki+1 xi+l f 1 f J <Pj(4^ = ^2 J [(*“ *i) (^ — ^+1)^-1 “ *i-i =4-1 — 2 (x — ^_1) (.г — x;+1) iJi -J- (x — Tj-j) (x — xj y^r ] dx ~ — з" (Z/j-i + 4y$ +^in). Проведя такие вычисления для каждого элементарного отреза [xi-i, xi+1], просуммируем полученные выражения: £ == •« (Уд + 4у} + 2i/2 + 4у3 -J- 2yi + ... О » • • + 2уп-2 + ^Уп-1 + Уп)> Данное выражение для 5 принимается в качестве зна- чения определенного интеграла: ь §f(x) dx « j [у0 + 4 (г/i + у3 + ... + yn—i) + а + 2 (уа + У4 + ... + Уп—i) + Уп}‘ (3.34) Полученное соотношение называется формулой Симпсона. Эту формулу можно получить и другими способами, например комбинированием формул прямоугольников и трапеций или двукратным применением метода трапеций при разбиениях отрезка [а, &] на части с шагами h и 2h. При этом важно добиться, чтобы главные части погреш- ностей этих методов при сложении уничтожались. В ча- стности, комбинация формул прямоугольников и трапе- ции, определяемая соотношением (3.33), аналогична формуле Симпсона. Пример. Вычислить по методу Симпсона интеграл 1 Г dx I *= I ——о. Значения функции при п = 10, h — 0.1 при- 0 1 4- х О ведены в табл. 4. Применяя формулу (3.34), находим о 1 = ~з I£/о + 4 (г/j + у3 + У5 + У', + У^ + + 2 (г/3 + у4 + у3 + Уз) + Уш]33 «»• — 0.785398.
§ 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ ЮI Результат численного интегрирования с использова- нием метода Симпсона, как и по формуле (3.33), ока- аался совпадающим с точным значением (шесть знача- щих цифр). Сравнив методы прямоугольников и трапеций с ме- тодом Симпсона, отметим, что последний обладает более высокой точностью. Главный член погрешности метода Симпсона имеет вид ^n==-4</IVW. Напомним, что погрешность методов прямоугольников и трапеций имеет порядок <9 (7г3), а уточненная форму- ла (3.33) построена так, что коэффициент при /г3 в выра- жении для погрешности об- ращается в нуль. Таким об- разом, погрешности метода Симпсона и формулы (3.33), использующей методы пря- моугольников и трапеций, имеют одпн порядок. Отметим разницу между формулой Симпсона (3.34) и комбинацией методов пря- моугольников и трапеций (3.33). Эти формулы имеют одинаковую погрешность, од- нако формула (3.33) требует двукратного вычисления ин- теграла разными методами. Кроме того, для метода Симпсона нужно почти вдвое меньше табличных значений функции, поскольку для ме- Ввод a,b,s Zi = 0, /7-4 hb - a)/4 7г-0, 6 = 2 гг?, -~x2-h гтд = Ху -h Да/ [у — /7*2, h=ti/2. Уу = f(Xy) y2 = f(Z2) S +y. Да, Рис. 14. Блок-схема метода Симпсона тода прямоугольников нуж- ны дополнительные данные в полуцелых точках. Блок-схема одного из простейших алгоритмов вычис- ления определенного интеграла по методу Симпсона представлена на рпс. 14. В качестве исходных данных вадаются границы отрезка интегрирования а, Ъ, погреш-
1С2 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ и интегрирование ность е, а также формула для вычисления значений подынтегральной функции f/ = /(x). Первоначально от- резок [а, 6] разбивается па четыре части с шагом h = = (& —а)/4. Вычисляется значение интеграла It. Потом число шагов удваивается, вычисляется значение 12 с ша- гом h/2. Условие окончания счета принимается в виде l/j —/21 < е. Если это условие не выполнено, происходит новое деление шага пополам и т. д. Отметим, что представленный па рис. 14 алгоритм не является оптимальным. В частности, при вычислении каждого последующего приближения 12 не используются значения функции /(ж), уже найденные на предыдущем этапе. Более экономичные алгоритмы будут, рассмотрены в п. 5. 4. Использование сплайнов. Одним из методов чис- ленного интегрирования, особенно эффективным при стро- го ограниченном числе узлов, является метод сплайнов, использующий интерполяцию сплайнами (см. гл. 2, § 3, П. 2). Разобьем отрезок интегрирования [а, 6] на п частей точками X,. Пусть Xi — xt-t — ht (i=l, 2, ..., и). На каж- дом элементарном отрезке интерполируем подынтеграль- ную функцию f(x) с помощью кубического сплайна: <р,(ж) = af + bi (х — жг-!)+ Ci(x — Xi-i)2 + di(x — x.-t)3, (3.35) Xi-i^xs^Xt, i = l, 2, ..., n. Выражение для интеграла представим в виде Ь п 5ri+l п xi+l Z = J/(.z) = 2 J f(x)dx^^ j (f)i(x)dx. д i—1 ip- 4 i—x• i и 1 1 Используя выражение (3.35), в результате вычисления интегралов находим п . У (aihi + + icih? + (3.36) г=1 4 Способ вычисления коэффициентов at, bt, cf, dt описан в гл. 2. Здесь лишь отметим, что щ = у^. Для практических расчетов формулу (3.36) можно представить в виде П п I "2 2 (У г-1 + У г} — р 2 (Сг-1 + ci)- (3.37) i=i “ i=i
§ 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ 103 Анализ этой формулы показывает, что первый член в правой части совпадает с правой частью формулы (3.30) для метода трапеций. Следовательно, второй член харак- теризует поправку к методу трапеций, которую дает ис- пользование сплайнов. Как следует из формулы (3.35), коэффициенты с, выражаются через вторые производные tpi(.?): Cj = •^ фг (^1—1) ~2 Уг—!* Это позволяет оценить второй член правой части фор- мулы (3.37): /г? k} „ 12 (^i—l "1” ^*i) 12 где у* — вторая производная в некоторой внутренней точке. Полученная оценка показывает, что добавка к фор- муле трапеций, которую дает использование сплайнов, компенсирует погрешность самой формулы трапеций. Отметим, что во всех предыдущих методах (см. п. 2, 3) формулы численного интегрирования можно условно записать в виде линейной комбинации табличных зна- чений функции: с п J / (х) dx = 5 а^. a i—° При использовании сплайнов такое представление не- возможно, поскольку сами коэффициенты зависят от всех значений yt. Рассмотрев разные методы численного интегрирова- ния, трудно сравнивать их достоинства и недостатки. Любая попытка такого сравнения непременно поставит перед нами альтернативный вопрос: что больше, 1г2у" или /г4рп? Все зависит от самой функции у = f(x) и поведения ее производных. Уточнение результатов численного интегрирования можно проводить по-разному. В частности, в представ- ленном на рис. 14 алгоритме с использованием метода Симпсона проводится сравнение двух значений интеграла Л и 12, полученных при разбиениях отрезка [а, 6] соот- ветственно с шагами h и h/2. Аналогичный алгоритм можно построить и для других методов. Здесь мы упомянем другую схему уточнения значе* вия интеграла — процесс Эйткена. Он дает возможность
104 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ оценить погрешность метода O(hp) и указывает алгоритм уточнения результатов. Расчет проводится последователь- но три раза при различных шагах разбиения Л,, h2, 1г3, причем их отношения постоянны: h2/hi — h3/h2 — q (на- пример, при делении шага пополам </ = 0.5). Пусть в результате численного интегрирования получены значе- ния интеграла /2, Л. Тогда уточненное значение ин- теграла вычисляется по формуле (Л - 1 + V а порядок точности используемого метода численного интегрирования определяется соотношением 1 I Л “Л Р = i--’u ~Г---т 1 111 q Уточнение значения интеграла можно также проводить методом Рунге — Ромберга (см. § 1, п. 5). 5. Адаптивные алгоритмы. Из анализа погрешностей методов численного интегрирования следует, что точность получаемых результатов зависит как от характера изме- нения подынтегральной функции, так и от шага интегри- рования. Будем считать, что величину шага мы задаем. Прп этом ясно, что для достижения сравнимой точности при интегрировании слабо меняющейся функции шаг можно выбирать большим, чем при интегрировании рез- ко меняющихся функций. На практике нередко встречаются случаи, когда подынтегральная функция меняется по-разному на от- дельных участках отрезка интегрирования. Это обстоя- тельство требует такой организации экономичных чис- ленных алгоритмов, прп которой они автоматически при- спосабливались бы к характеру изменения функции. Та- кне алгоритмы называются адаптивными (приспосабли- вающимися). Опи позволяют вводить разные значения шага интегрирования на отдельных участках отрезка интегрирования. Это дает возможность уменьшить ма- шинное время без потери точности результатов расчета. Подчеркнем, что этот подход используется обычно при задании подынтегральной функции р = /(я) в виде фор- мулы, а не в табличном виде. Программа, реализующая адаптивный алгоритм чис- ленного интегрирования, входит обычно в виде стандарт-
§ 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ 105 ной подпрограммы в математическое обеспечение ЭВМ. Пользователь готовой программы задает границы отрезка интегрирования а, Ъ, допустимую абсолютную погреш- ность е и составляет блок программы для вычисления значения подынтегральной функции /(я). Программа вычисляет значение интеграла 1 с заданной погреш- ностью е, т. е. ь с I — J / (rr) cfcr а (3.38) Разумеется, не для всякой функции можно получить результат с заданной погрешностью. Поэтому в програм- ме может быть предусмотрено сообщение пользователю о недостижимости заданной погрешности. Интеграл при этом вычисляется с максимально возможной точностью, и программа выдает эту реальную точность. Рассмотрим принцип работы адаптивного алгоритма. Первоначально отрезок fa, 6] разбиваем на п частей. В дальнейшем каждый такой элементарный отрезок де- лим последовательно пополам. Окончательное число ша- гов, их расположение и размеры зависят от подынте- гральной функции п допустимой погрешности Е. К каждому элементарному отрезку [#;-!, я,] приме- няем формулы численного интегрирования при двух раз- личных его разбиениях. Получаем приближения для интеграла по этому отрезку: Ц = J (3.39) Полученные значения сравниваем и проводим оценку их погрешности. Если погрешность находится в допустимых границах, то одно из этих приближений принимается за значение интеграла по этому элементарному отрезку. В противном случае происходит дальнейшее деление от- резка и вычисление новых приближений. С целью эко- номии машинного времени точки деления располагаются таким образом, чтобы использовались вычисленные зна- чения функции в точках предыдущего разбиения. Например, при вычислении интеграла (3.39) по формуле Симпсона отрезок [x,_t, я>] сначала разбиваем па две части с шагом 7ц/2 и вычисляем значение
106 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ Потом вычисляем Z-2) с шагом 7г,/4. Получим выражения + ^/(^-1 + У + Ж)1 (3.40) о \ *- / Л-Г ( h.\ Z$2) == 12 \j (^“^ + У 1 + т) + / Л.. \ 7 371Л 1 + 2/^_г + + 4/^{ + + Ж)]. (3.41) Формулу (3.41) можно также получить двукратным при- менением формулы (3.40) для отрезков [я,-!, ж,-! + А,/2] и IX-j + Л/2, xf]. Процесс деления отрезка пополам и вычисления уточ- ненных значений Zjl) и Z|a) продолжается до тех пор, пока их разность станет не больше некоторой заданной величины 6,-, зависящей от е и h: IZ^-Z^l^fip (3.42) Аналогичная процедура проводится для всех п эле- 71 ментарных отрезков. Величина Z == 2 Ц принимается в 1=1 качестве искомого значения интеграла. Условия (3.42) и соответствующий выбор величин обеспечивают вы- полнение условия (3.38). 6. О других методах. Особые случаи. Кроме рассмот- ренных выше методов численного интегрирования су- ществует ряд других. Дадим краткий обзор некоторых из них. Формулы Ньютона — Котеса получаются путем заме- ны подынтегральной функции интерполяционным мно- гочленом Лагранжа с разбиением отрезка интегрирова- ния на п равных частей. Получающиеся формулы ис- пользуют значения подынтегральной функции в узлах интерполяции и являются точными для всех многочленов некоторой степени, зависящей от числа узлов. Точность формул растет с увеличением степени интерполяцион- ного многочлена*). Метод Гаусса не предполагает разбиения отрезка ин- тегрирования на равные промежутки. Формулы числен- ного интегрирования интерполяционного типа ищутся та- •) Заметим, что формулы прямоугольников, трапеций и Симп- сона являются частными случаями формул Ньютона — Котеса.
§ 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ 107 кими, чтобы онп обладали наивысшим порядком точно- сти прп заданном числе узлов. Узлы и коэффициенты формул численного интегрирования находятся из усло- вий обращения в нуль их остаточных членов для всех многочленов максимально высокой степени. Формула Эрмита, являющаяся частным случаем фор- мул Гаусса, использует многочлены Чебышева для вы- числения интегралов вида 1 С / (х) dx Д /ГЗТ2’ Получающаяся формула характерна тем, что все коэф- фициенты при равны. Метод Маркова состоит в том, что прп выводе фор- мул Гаусса вводятся дополнительные предположения о совпадении точек разбиения отрезка по крайней мере с одним из его концов. Формула Чебышева представляет интеграл в виде г -г I Р / (ж) к У Pi + R. -1 i=0 При этом решается следующая задача: найти точки х0, xt, ..хп и коэффициент к такие, при которых оста- точный член R обращается в нуль, когда функция f(x) является произвольным многочленом возможно большей степенп. Формула Эйлера использует не только значения подынтегральной функции в точках разбиения, но и ее производные до некоторого порядка на границах отрезка. Рассмотрим особые случаи численного интегрирова- ния’. а) подынтегральная функция разрывна на отрезке интегрирования; б) несобственные интегралы. а) В ряде случаев подынтегральная функция j(x) или ее производные в некоторых внутренних точках ch (к~1, 2, ...) отрезка интегрирования [а, 6] терпят раз- рыв. В этом случае интеграл вычисляют численно для каждого участка непрерывности и результаты складыва- ют. Например, в случае одной точки разрыва х — с (а < Ь) имеем Ъ с b [ / (.т) dx — \ f(x)dx + [ / (х) dx„ а а •
108 ГЛ 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИИ Для вычисления каждого из стоящих в правой части ин- тегралов можно использовать рассмотренные выше ме- тоды. б) Не так просто обстоит дело с вычислением несоб- ственных интегралов. Напомним, что к такому типу от- носятся интегралы, которые имеют хотя бы одну бес- конечную границу интегрирования пли подынтеграль- ную функцию, обращающуюся в бесконечность хотя бы в одной точке отрезка интегрирования. Рассмотрим сначала интеграл с бесконечной границей интегрирования, напримёр интеграл вида ©О J/(x)dr1 0<а<оо. а Существует несколько приемов вычисления таких инте- гралов. Можно попытаться ввести замену переменных х « »а/(1- £), которая превращает интервал интегрирова- ния [а, оз) в отрезок [0, 1]. При этом подынтегральная функция и первые ее производные до некоторого поряд- ка должны оставаться ограниченными. Еще один прием состоит в том, что бесконечная гра- ница заменяется некоторым достаточно большим числом b так, чтобы принятое значение интеграла отличалось от исходного на некоторый малый остаток, т. е. ео b J / (х) dx = \ f (х) dx + а а оо R — ( / (ж) dx, ъ Если функция обращается в бесконечность в некото- рой точке х = с конечного отрезка интегрирования, то можно попытаться выделить особенность, представив подынтегральную функцию в виде суммы двух функций: /(ж) = <р(ж) + ф(ж). При этом <р(ж) ограничена, а ф(ж) имеет особенность в данной точке, но интеграл (несоб- ственный) от нее может быть вычислен непосредственно по формулам. Тогда численный метод используется толь- ко для интегрирования ограниченной функции <р(ж). Еще один вид несобственных интегралов (сингуляр- ные интегралы), имеющий важное прикладное значение, будет рассмотрен в дальнейшем в разделе, посвященном сингулярным интегральным уравнениям (см. гл. 9, § 3),
g 2. ЧПСЛЕШЮЕ ИНТЕГРИРОВАНИЕ 109 7. Кратные интегралы. Численные методы использу- ются также для вычисления кратных интегралов. Огра- ничимся здесь рассмотрением двойных интегралов вида I = f J 1 Сч у) dx йу. (3.43) g Одним из простейших способов вычисления этого ин- теграла является метод ячеек. Рассмотрим сначала слу- чай, когда областью интегрирования G является прямо- угольник: а^х ^Ъ, с^у ^d. По теореме о среднем найдем среднее значение функции f(x, у): Ж й) = ^- f | / Сч У) dx dy} S = (b— a) (d — с). (3.44) S G Будем считать, что среднее значение приближенно рав- но значению функции в центре прямоугольника, т. ег J(x, у) = /(я, у). Тогда из (3.44) получим выражение для приближенного вычисления двойного интеграла: f f Ж У) dx dyw Sf p)t V (3,45) х = (а 4- Ь)/2,. У = (с + й)/2, Точность этой формулы можно повысить, если раз- бить область G на прямоугольные ячейки AG,, (рис. 15): Xi-t^x^xt (Г—1, 2, ..., М), y}-i^y<y} (7 = 1, 2, ... N), Применяя к каждой ячейке формулу (3,45)7
110 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ получаем J f Ж У) dxdy & уj) кх^ур ^гз Суммируя эти выражения по всем ячейкам, находим зна- чение двойного интеграла: М N J J Ж!/) = 2 S / U ь Уз) &Xi&yj. (3.46) G i=1 j=1 В правой части стоит интегральная сумма; поэтому при неограниченном уменьшении периметров ячеек (или стя- гивании их в точки) эта сумма стремится к значению интеграла для любой непрерывной функции f(x, у). Можно показать, что погрешность такого приближе- ния интеграла для одной ячейки оценивается соотноше- нием _ r/fc _ й\2 „ fd~ с\2 " 1 Л гз ~ ~24 [V М / Jxx ’+’ jV""7 Jyvy Суммируя эти выражения по всем ячейкам и считая все их площади одинаковыми, получаем оценку погрешности метода ячеек в виде R « О(1/ЛГ + 1/Дг2)~ О(Дж2 +Ду2). Таким образом, формула (3.46) имеет второй порядок точности. Для повышения точности можно использовать обычные методы сгущения узлов сетки. При этом по каждой переменной шаги уменьшают в одинаковое число раз, т. е. отношение М/N остается постоянным. Если область G непрямоугольная, то в ряде случаев ее целесообразно привести к прямоугольному виду путем соответствующей замены переменных. Например, пусть область задана в виде криволинейного четырехугольника: ср, (х) < у <р2 (ж). Данную область можно при- вести к прямоугольному виду с помощью замены ( = ц-фЛ) <Р2 (4 — (4 Кроме того, формула (3.46) может быть обобщена и на случай более сложных областей. Другим довольно распространенным методом вычис- ления кратных интегралов является их сведение к по- следовательному' вычисление определенных интегралов*
§ 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ 111 Интеграл (3.43) для прямоугольной области можно за- писать в виде b d J f f(x,y)dx dy— J F (x)dx, F(x) = j/ (x, y) dy. "в a e Для вычисления обоих определенных интегралов могут быть использованы рассмотренные ранее численные ме- тоды. Если область G имеет более сложную структуру, то она либо приводится к прямоугольному виду с помощью замены переменных, либо разбивается на простые эле- менты. Для вычисления кратных интегралов используется также метод замены подынтегральной функции много- мерным интерполяционным многочленом. Вычисление коэффициентов этих многочленов для простых областей обычно не вызывает затруднений. Существует ряд других численных методов вычисле- ния кратных интегралов. Среди них особое место зани- мает метод статистических испытаний, который мы вкрат- це изложим. 8. Метод Монте-Карло. Во многих задачах исходные данные носят случайный характер, поэтому для их ре- шения должен применяться статистико-вероятностный подход. На основе таких подходов построен ряд числен- ных методов, которые учитывают случайный характер вычисляемых или измеряемых величин. К ним принад- лежит и метод статистических испытаний, называемый также методом Монте-Карло, который применяется к ре- шению некоторых задач вычислительной математики, в том числе и для вычисления интегралов. Метод Монте-Карло состоит в том, что рассматрива- ется некоторая случайная величина £, математическое ожидание которой равно искомой величине х: МЁ, = х. Проводится серия п независимых испытаний, в резуль- тате которых получается (генерируется) последователь- ность п случайных чисел g2, •••, и по совокупно- сти этих значений приближенно определяется искомая величина ..+$»)/««*, \ t=l }
112 ГЛ. 3. ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ Пусть 1] — равномерно распределенная на отрезке [0,1] случайная величина. Это означает, что ее плотность распределения задается соотношением О, 1, О, Рп (2) ~ х <Z. 0,. О ^.х 1, х > 1. Тогда любая функция ^ = /(ц) также будет случайной величиной, и ее математическое ожидание равно те 1 = J / {х) Р^ (х) dx = j / (х) dx. — (Х> О Следовательно, читая это равенство в обратном по- 1 рядке, приходим к выводу, кто интеграл J f(x)dx может о быть вычислен как математическое ожидание некоторой случайной величины которая определяется независи- мыми реализациями ip случайной величины ц с равно- мерным законом распределения: С п f(x)dx^l = -^^f(t]i). о *=1 Аналогично могут быть вычислены и кратные инте- гралы. Для двойного интеграла получпм п J J / у} dxdy «42^ to, Wi G i—1 где G: 0 < x < 1, 0 < у < 1; тр, £< — независимые реализа- ции случайных величин ц, £, равномерно распределенных на отрезке [0, 1]. Для использования метода Монте-Карло при вычис- лении определенных интегралов, как и в других его при- ложениях, необходимо вырабатывать последовательности случайных чисел с заданным законом распределения. Существуют различные способы генерирования таких чисел. Можно построить некоторый физический процесс (ге- нератор) для выработки случайных величин, однако при использовании ЭВМ этот способ непригоден, поскольку
УПРАЖНЕНИЯ ИЗ трудно дважды получить одинаковые совокупности слу- чайных чисел, которые необходимы при отладке про- грамм. Известны многие таблицы случайных чисел, которые вычислялись независимо. Их можно вводить в ЭВМ, хра- нить в виде файла на магнитной ленте или магнитном диске коллективного пользования. А еще лучше загото- вить собственный файл случайных чисел. В настоящее время наиболее распространенный спо- соб выработки случайных чисел на ЭВМ состоит в том, что в памяти хранится некоторый алгоритм выработки таких чисел по мере потребности в них (подобно тому как вычисляются значения элементарных функций, а не хранятся их таблицы). Поскольку эти числа генериру- ются по наперед заданному алгоритму, то они не совсем случайны (псевдослучайны), хотя и обладают свойствен- ными случайным числам статистическими характеристи- ками. Упражнения 1. Функция у — f(x) задана в табличной форме: х 0 0.2 0.4 0.6 0.8 1.0 у 1.24 1.03 1.36 1.85’ 2.43 3.14 Вычислить: а) значения производной в точках х — 0, 0.4, 1.0 с первым и вторым порядками точности; б) вторую производную в этих же точках со вторым и третьим порядками точности. 2. Составить блок-схему алгоритма вычисления производной функции, заданной таблицей с постоянным шагом на некотором отрезке. 1 (• 2 8. Вычислить 1 е* dx, используя методы прямоугольников, о трапеций и Симпсона. Отрезок интегрирования разделить на де- сять равных частей. 4. Используя процесс Эйткена и метод трапеций, вычислить 2 f 1 SIX | — sm -^- dx. Число шагов интегрирования принять равным 4, 8, 46. 5. Составить блок-схему решения упр. 4. 8 л, И. Турчав
ГЛАВА 4 СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ § 1. Основные понятия 1. Линейные системы. К решению систем линейных уравнений сводятся многочисленные практические зада- чи. Можно с полным основанием утверждать, что реше- ние линейных систем является одной из самых распро- страненных и важных задач вычислительной матема- тики. Запишем систему п линейных алгебраических урав-* нений с п неизвестными'. a^Xi + д12^2 +... + а1пхп — Ь,, a2lXt + a22z2 + • • • + агпхп — bif (4.1) ................... aniXi + ап2х2 +... + а ПП*%П б Совокупность коэффициентов этой системы виде таблицы: Й11 а12 ’*• а1П . Cl О. . . . Д. Л — 21 22 ••• 2п запишем в - (4.2) -ап1 ап2 апп- Данная таблица п2 элементов, состоящая из п строк и п столбцов, называется квадратной матрицей порядка п. Если подобная таблица содержит тп элементов, рас- положенных в тп строках и п столбцах, то она называ- ется прямоугольной матрицей. Используя понятие матрицы А, систему уравнений (4.1) можно записать в матричном виде: АХ = 5, (4.3) где X и В — вектор-столбец неизвестных и вектор-стол- бец правых частей соответственно:
§ 1. ОСНОВНЫЕ ПОНЯТИЯ 115 В ряде случаев получаются системы уравнений с не- которыми специальными видами матриц. Вот некоторые примеры таких матриц: г1 0 0 0- 0 10 0 0 0 10’ 0 0 0 1 -о. 0 0 0- 0 0 0 0 0 0 0 0 о о о о; Здесь А — симметрическая матрица (ее элементы распо- ложены симметрично относительно главной диагонали (ау = а^)); В — верхняя треугольная матрица с равными нулю элементами, расположенными ниже диагонали; С — клеточная матрица (ее ненулевые элементы составляют отдельные группы (клетки)); D — ленточная матрица (ее ненулевые элементы составляют «ленту», параллель- ную диагонали (в данном случае ленточная матрица D одновременно является также трехдиагональной)); Е — единичная матрица (частный случай диагональной); О — нулевая матрица. Определителем (детерминантом) матрицы А n-го по- рядка называется число D (det Л), равное а11 Я12 •" Й21 й22 °2)1 ап1 ап2 ' ' ’ апп = i)k alaa2li ... апЫ. (4.4) Здесь индексы а, £, ..., со пробегают все возможные /г! перестановок номеров 1, 2, ..., п; к — число инверсий в данной перестановке. Необходимым и достаточным условием существования единственного решения системы линейных уравнений является условие D =/= 0. В случае равенства нулю опре- делителя системы матрица называется вырожденной; 8*
116 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ при этом система линейных уравнений (4.1) либо не имеет решения, либо имеет их бесчисленное множество. Все эти случаи легко проиллюстрировать геометри- чески для системы (4.5) atx + bxy = ch а2х + Ь2у = с2. Каждое уравнение описывает прямую на плоскости; ко- ординаты точки пересечения указанных прямых являются решением системы (4.5). Рассмотрим три возможных случая взаимного распо- ложения двух прямых на плоскости: 1) (4.5) прямые пересекаются — коэффициенты системы не пропорциональны: aQ Ь* 4 4 прямые параллельны — коэффициенты системы (4.6) £1_. С2 ’ 2)' . (4.5) подчиняются условиям «1 ьг - =2---- а2 Ь2 8) прямые совпадают — все коэффициенты (4.5) про- порциональны: £1 с °1 S = Ь2 ~2 Запишем определитель D системы (4.5) в виде ai ъх а2 b2 ’ Отметим, что при выполнении условия (4.6) D Ф 0, и система (4.5) имеет единственное решение. В случаях отсутствия решения или при бесчисленном множестве решений имеют место соответственно соотношения (4.7) или (4.8), ив которых получаем Z) = 0. На практике, особенно при вычислениях на ЭВМ, когда происходят округление или отбрасывание младших разрядов чисел, далеко не всегда удается получить точ- ное равенство определителя нулю. При D»0 прямые могут оказаться почти параллельными (в случае системы двух уравнений); координаты точки пересечения этих прямых весьма чувствительны к изменению коэффици- ентов системы. (4.8)
в 1. ОСНОВНЫЕ понятия 117 Таким образом, малые погрешности вычислений пли исходных данных могут привести к существенным по- грешностям в решении. Такие системы уравнений назы- ваются плохо обусловленными. Заметим, что условие D»0 является необходимым для плохой обусловленности системы линейных уравне- ний, но не достаточным. Например, система уравнений n-го порядка с дпаголыюй матрицей с элементами Он = 0.1 не является плохо обусловленной, хотя ее опре- делитель мал (Z) = 10~ ”). Приведенные соображения справедливы и для любого числа уравнений системы (4.1), хотя в случае п>3 нельзя привести простые геометрические иллюстрации. При п = 3 каждое уравнение описывает плоскость в про- странстве, и в случае почти параллельных плоскостей или линий их попарного пересечения получаем плохо обусловленную систему трех уравнений. 2. О методах решения линейных систем. Методы ре- шения систем линейных уравнений делятся на две груп- пы — прямые и итерационные. Прямые методы исполь- зуют конечные соотношения (формулы) для вычисления неизвестных. Они дают решение после выполнения за- ранее известного числа операций. Эти методы сравни- тельно просты и наиболее универсальны, т. е. пригодны для решения широкого класса линейных систем. Вместе с тем прямые методы имеют и ряд недостат- ков. Как правило, они требуют хранения в оперативной памяти ЭВМ сразу всей матрицы, и при больших зна- чениях п расходуется много места в памяти. Далее, пря- мые методы обычно не учитывают структуру матрицы — при большом числе нулевых элементов в разреженных матрицах (например, клеточных или ленточных) эти элементы занимают место в памяти машипы, и над ни- ми проводятся арифметические действия. Существенным недостатком прямых методов является также накапли- вание погрешностей в процессе решения, поскольку вы- числения на любом этапе используют результаты преды- дущих операций. Это особенно опасно для больших си- стем, когда резко возрастает общее число операций, а также для плохо обусловленных систем, весьма чувстви- тельных к погрешностям. В связи с этим прямые методы используются обычно для сравнительно небольших (п < < 200) систем с плотно заполненной матрицей и не близким к нулю определителем.
118 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Отметим еще, что прямые методы решения линейных систем иногда называют точными, поскольку решение выражается в виде точных формул через коэффициен- ты системы. Однако точное решение может быть по- лучено лишь при выполнении вычислений с бесконечным числом разрядов (разумеется, при точных значениях коэффициентов системы). На практике при использо- вании ЭВМ вычисления проводятся с ограниченным числом знаков, определяемым разрядностью машины. По- этому неизбежны погрешности в окончательных резуль- татах. Итерационные методы — это методы последовательных приближений. В них необходимо задать некоторое приближенное решение — начальное приближение. По- сле этого с помощью некоторого алгоритма проводится один цикл вычислений, называемый итерацией. В ре- зультате итерации находят новое приближение. Итерации проводятся до получения решения с требуемой точно- стью. Алгоритмы решения линейных систем с использо- ванием итерационных методов обычно более сложные по сравнению с прямыми методами. Объем вычислений за- ранее определить трудно. Тем не менее итерационные методы в ряде случаев предпочтительнее. Они требуют хранения в памяти ма- шины не всей матрицы системы, а лишь нескольких век- торов с п компонентами. Иногда элементы матрицы мож- но совсем не хранить, а вычислять их по мере необхо- димости. Погрешности окончательных результатов при использовании итерационных методов не накапливаются, поскольку точность вычислений в каждой итерации оп- ределяется лишь результатами предыдущей итерации и практически не зависит от ранее выполненных вычис- лений. Эти достоинства итерационных методов делают их особенно полезными в случае большого числа уравне- ний, а также плохо обусловленных систем. Следует от- метить, что при этом сходимость итераций может быть очень медленной; поэтому ищутся эффективные пути ее ускорения. Итерационные методы могут использоваться для уточ- нения решений, полученных с помощью прямых методов. Такие смешанные алгоритмы обычно довольно эффектив- ны, особенно для плохо обусловленных систем. В послед- нем случае могут также применяться методы регуляри- зации.
§ 1. ОСНОВНЫЕ ПОНЯТИЯ но 3, Другие задачи линейной алгебры. Кроме решения систем линейных уравнений существуют другие задачи линейной алгебры — вычисление определителя, обратной матрицы, собственных значений матрицы и др. Легко вычисляются лишь определители невысоких порядков и некоторые специальные типы определителей. В частности, для определителей второго и третьего по- рядков соответственно имеем ап Я21 — GIlfl22 ®21®12> “11 а21 аз1 “12 °22 а32 а1з Я23 азз — G11^22G33 4* G12a23G31 ~Ь ^21fl32G13 а31^22а13 Я21а12®33 ^32^23^11' Определитель треугольной матрицы равен произведе- нию ее элементов, расположенных на главной диагонали: D — alta22. . Мпп- Отсюда также следует, что определитель единичной матрицы равен единице, а нулевой — нулю: det £7 == 1, det О — 0. В общем случае вычисление определителя оказывает- ся значительно более трудоемким. Определитель D по- рядка п имеет вид (4.4) D = 2(~ 1) ^10^2(5 • • • ^тгы* Из этого выражения следует, что определитель равен сумме п! слагаемых, каждое из которых является про- изведением п элементов. Поэтому для вычисления опре- делителя порядка п (без использования специальных приемов) требуется (п— 1)п! умножений и nl —1 сло- жений, т. е. общее число арифметических операций равно Дг = п • п! — 1« п • п!. (4.9) Оценим значеппя N в зависимости от порядка п опре- делителя: п 3 10 20 N 17 3.6-107 5-1019 Можно подсчитать время вычисления таких определите- лей на ЭВМ с заданным быстродействием. Примем для определенности среднее быстродействие равным 100000 операций в секунду. Тогда для вычисления определителя 10-го порядка потребуется около 6 мин, а при п = 20— около 1.4 10“ ч, т. е. свыше 5 • 109 сут. Приведенные
ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ оценки указывают па необходимость разработки и ис- пользования экономичных численных методов, позволяю- щих эффективно проводить вычисления определителей. В § 2 будет рассмотрен один из таких методов. Матрица А~* называется, обратной по отношению к квадратной матрице А, если их произведение равно еди- ничной матрице: АА~* =А~1А =Е. В линейной алгебре доказывается, что всякая невырожденная матрица А (т. е. с отличным от пуля определителем D) имеет об- ратную. При этом det Л-1 = !/£>. Запишем исходную матрицу в виде а1п "и _ап1 •' • anj апп_ Минором элемента ai} называется определитель п — — 1-го порядка, образованный из определителя матрицы А зачеркиванием i-й строки и /го столбца. Алгебраическим дополнением Ai} элемента назы- вается его минор, взятый со знаком плюс, если сумма i +] номеров строки i и столбца / четная, и со знаком минус, если эта сумма нечетная, т. е. Аи - (- l)i+i "п ••• "ij-i "ij+i ••• "in "1-1,1 "i-lj-l "i-lj+l йг-1,11 "i+1,1 ••• "i4-l,j—1 "i+lJ+l ••• "i+l,n "nl ••• "nj-l "nj+l ann Каждый элемент bi} — ..., n) обратной матрицы В = Л_‘ равен отношению алгебраического дополнения Ац элемента ая (не аи) исходной матрицы Л к значению ее определителя D: в - л-1 = А 2f * . • Anl ~ (4.10) D А , 12 D L) A ^‘112 U и 1) А1п ^211 Ann _ LJ. . D a a a D „
§ 2. ПРЯМЫЕ МЕТОДЫ 121 Здесь, как и выше, можно также подсчитать число операций, необходимое для вычисления обратной матри- цы без использования специальных методов. Это число равно сумме числа операций, с помощью которых вы- числяются п2 алгебраических дополнении, каждое из ко- торых является определителем п — 1-го порядка, и п2 делений алгебраических дополнений на определитель D. Таким образом, общее число операций для вычислений обратной матрицы равно JV = [ (/г — 1) • (п — 1)! — 1]п2 + п2 + п • п\ — 1 = п2 • п\ — 1. (4.11)’ Важной задачей линейной алгебры является также вычисление собственных значений матрицы. Этому во- просу будет посвящен отдельный параграф. § 2. Прямые методы 1. Вводные замечания. Одним из способов решения системы линейных уравнений является правило Крамера, согласно которому каждое неизвестное представляется в виде отношения определителей. Запишем его для си- стемы atx + bpy = clt Тогда 4* == Сз- X = DJD, у = D./D, fli Ь1 а2 Ь2 ' D = Ci М С2 \Г; Можно попытаться использовать это правило для ре- шения систем уравнений произвольного порядка. Однако при большом числе уравнеппй потребуется выполнить огромное число арифметических операций, поскольку для вычислений п неизвестных необходимо найти значения определителей, число которых п+1. Количество арифме- тических операций можно оценпть с учетом формулы (4.9). При этом предполагаем, что определители вычис- ляются непосредственно — без использования экономич- ных методов. Тогда получим ту = (,г+ 1) (п • п\ — 1)4- п. Поэтому правило Крамера можно использовать лишь для решения систем, состоящих из нескольких уравнений.
122 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Известен также метод решения линейной системы с использованием обратной матрицы. Система записывает- ся в виде АХ = В (см. (4.3)). Тогда, умножая обе части этого векторного уравнения слева на обратную матрицу Л-1, получаем Х — А~'В. Однако если не использовать экономичных схем для вычисления обратной матрицы, этот способ также непригоден для практического решения линейных систем при больших значениях п из-за боль- шого объема вычислений. Наиболее распространенными среди прямых методов являются метод исключения Гаусса и его модификации. Ниже рассматривается применение метода исключения для решения систем линейных уравнений, а также для вычисления определителя и нахождения обратной мат- рицы. 2. Метод Гаусса. Он основан на приведении матрицы системы к треугольному виду. Это достигается последова- тельным исключением неизвестных из уравнений систе- мы. Сначала с помощью первого уравнения исключается xt из всех последующих уравнений системы. Затем с помощью второго уравнения исключается х2 из третьего и всех последующих уравнений. Этот процесс, называе- мый прямым ходом метода Гаусса, продолжается до тех пор, пока в левой части последнего (n-го) уравнения не останется лишь одпн член с неизвестным хп, т. е. мат- рица системы будет приведена к треугольному виду. (Заметим, что к такому виду приводится лишь невырож- денная матрица. В противном случае метод Гаусса не- применим.) Обратный ход метода Гаусса состоит'в последователь- ном вычислении искомых неизвестных: решая последнее уравнение, находим единственное неизвестное хп. Далее, используя это значение, из предыдущего уравнения вы- числяем xn-i и т. д. Последним найдем xt из первого уравнения. Рассмотрим применение метода Гаусса для системы аиХ, + С|2^2 + Щз^З = &i, Я21Х, + «22Х2 + «23^3 = Ь2, (4.12) «31^1 + fl32z2 + a3Sx3 — bs. Для исключения xt из второго уравнения прибавим к не- му первое, умноженное на —a2l/alt. Затем, умножив пер- вое уравнение на —а31/яп и прибавив результат к третье-
g 2. ПРЯМЫЕ МЕТОДЫ 123 му уравнению, также исключим из него %i. Получим равносильную систему уравнений вида ^11^1 ^12^-2 "Ь «гА ~ ^1» 0-2^2 + «23^3 = Й2г (4.13) й32-Г2 4" «33^3 ~ ^3» aij ~ аН 7, a4l г> 7 = 2» 3Л И b\ = bi—^~bv ' 7 = 2,3. Теперь из третьего уравнения системы (4.13) нужно исключить хг. Для этого умножим второе уравнение на — аз2/и22 и прибавим результат к третьему. Получим а11Х1 + Й12Т2 + «13^3 = а22х2 4- Cg3T3 = Ь2, (4.14) «ззАз = Ьз> / г " * а32 ' 1" > ' й32 7 т Язз = й33------ а23, t>3 = Ь3----у- Ь2, «22 «22 Матрица системы (4.14) имеет треугольный вид. На этом заканчивается прямой ход метода Гаусса. Заметим, что в процессе исключения неизвестных приходится выполнять операции деления на коэффици- енты аи, а22 п т. д. Поэтому они должны быть отлич- ными от нуля; в противном случае необходимо соответ- ственным образом переставить уравнения системы. Пере- становка уравнений должна быть предусмотрена в вы- числительном алгоритме при его реализации па ЭВМ. Обратный ход начинается с решения третьего урав- нения системы (4.14): хз ~ Ьэ/а33. Используя это значение, можно найти х2 из второго урав- нения, а затем xt из первого: а?2 = I (*2 ^23^з)» ~ ~ (^1 ^13Хз)’ «22 И Аналогично строится вычислительный алгоритм для линейной системы с произвольным числом уравнений.
124 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Рис. 16. Блок-схема метода Гаусса На рис. 16 приведена блок-схема решения методом Гаус- са системы п линейных уравнений вида + at2^2 + ... + а1пхп — OjjX, "Г «22^2 + . . . + Clin^n = l>2, ^n2*^2 * • • • О'пп^'п
§ 2. ПРЯМЫЕ МЕТОДЫ 125 JPhc. 17. Выбор главного эле- мента Левая часть блок-схемы соответствует прямому ходу. Поясним смысл индексов: г — номер уравнения, из кото- рого исключается неизвестное xh; j — номер столбца; к — помер неизвестного, которое исключается из остав- шихся п — к уравнений (а также номер того уравнения, с помощью которого исклю- чается хк). Операция пере- становки уравнений (т. е. перестановки соответствую- щих коэффициентов) слу- жит для предотвращения де- ления на нулевой элемент. Правая часть блок-схемы описывает процесс обратно- го хода. Здесь i — номер не- известного, которое опреде- ляется из i-го уравнения; 7 = i + 1, i + 2, ..номера уже найденных неизвестных. Одной из модификаций метода Гаусса является схе- ма с выбором главного эле- мента. Она состоит в том, что требование неравенства нулю диагональных элемен- тов ahh, на которые происхо- дит деление в процессе ис- ключения, заменяется более жестким: из всех оставших- ся в км столбце элементов нужно выбрать наиболь- ший по модулю и переста- вить уравнения так, чтобы этот элемент месте элемента Блок-схема выбора главного приведена на рис. 17. Она дополняет блок-схему мето- да Гаусса (см. рис. 16). Здесь введены новые индексы: I — номер наибольшего по абсолютной величине элемента матрицы в столбце с но- мером к (т. е. среди элементов ahh, ..., акт, ..., щ„); тп — текущий номер элемента, с которым происходит сравне- оказался на алгоритма элемента
12G ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ ппе. Заметим, что диагональные элементы матрицы на- зываются ведущими элементами; ведущий элемент а1Л — это коэффициент при к-м неизвестном в к-м уравнении на А-м шаге исключения. Благодаря выбору наибольшего по модулю ведущего элемента уменьшаются множители, используемые для преобразования уравнений, что способствует снижению погрешностей вычислений. Поэтому метод Гаусса с вы- бором главного элемента обеспечивает приемлемую точ- ность решения для сравнительно небольшого числа (п< < 100) уравнений. И только для плохо обусловленных систем решения, полученные по этому методу, нена- дежны. Метод Гаусса целесообразно использовать для реше- ния систем с плотно заполненной матрицей. Все элемен- ты матрицы и правые части системы уравнений находят- ся в оперативной памяти машины. Объем вычислений определяется порядком системы п; число арифметиче- ских операций примерно равно (2/3) п3. Пример. Рассмотрим алгоритм решения линейной системы методом Гаусса и некоторые особенности этого метода для случая трех уравнений: Юа?! — 7х2 == 7, —3a?i + 2ж2 + 6х3 — 4, 5zt — х2 + 5.г3 = 6. Исключим Xi из второго и третьего уравнений. Для этого сначала умножим первое уравнение на 0.3 и ре- зультат прибавим ко второму, а затем умножим первое Же уравнение на —0.5 и результат прибавим к третьему. Получим 10.Г1 — 7х2 = 7, —0.1^2 + 6z3 = 6.1, 2.5я?2 + 5.т3 = 2.5. Прежде чем исключать х2 из третьего уравнения, за- метим, что коэффициент ври х2 во втором уравнении (ве- дущий элемент) мал; поэтому было бы лучше переста- вить второе и третье уравнения. Однако мы проводим сейчас вычисления в рамках точной арифметики и по- грешности округлений не опасны, поэтому продолжим
§ 2. ПРЯМЫЕ МЕТОДЫ 127 исключение. Умножим второе уравнение на 25 и резуль- тат сложим с третьим уравнением. Получим систему в треугольном виде: 1 Orrt — 7х2 = 7, —0.1а?2 + 6ж3 = 6.1, 155х3 = 155. На этом заканчивается прямой ход метода Гаусса. Обратный ход состоит в последовательном вычислении х3, хг, xt соответственно из третьего, второго, первого уравнений. Проведем эти вычисления: Подстановкой в исходную систему легко убедиться, что (О, — 1, 1) и есть, ее решение. Изменим теперь слегка коэффициенты системы таким образом, чтобы сохранить прежним решение и вместе с тем при вычислениях использовать округления. Таким условиям, в частности, соответствует система 10;?! — 1хг — 7, —+ 2.099^2 + 6ж3 = 3.901, 5а?1 — хг + 5аз = 6. Здесь изменены коэффициент при х2 и правая часть вто- рого уравнения. Будем снова вести процесс исключения, причем вычисления проведем в рамках арифметики с плавающей точкой, сохраняя пять разрядов числа. После первого шага исключения получим 10zi — 1х2 ~ 7, —0.001^2 + 6т3 = 6.001 2.5х2 + 5z3 = 2.5. Следующий шаг исключения проводим при малом ве- дущем элементе (—0.001). Чтобы исключить х2 из треть- его уравнения, мы вынуждены умножить второе уравне- ние на 2500. При умножении получаем число 15 002.5, которое нужно округлить до пяти разрядов. В результате
128 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ получаем третье уравнение в виде 15 005^ = 15 004. Отсюда х3 = 15004/15 005 = 0.99993. Из второго и перво- го уравнений найдем 6-0.99993 — 6.00 1 0.0015 л г ^2~ 0.001 0.001 “ 1,01 7 (-1.5) 4-7 п Ъ = ~= ~ 0<35’ Вычисления проводились с усечеппем до пяти разрядов по аналогии с процессом вычислений па ЭВМ. В резуль- тате этого было получено решение (—0.35, —1.5, 0.99993) вместо (0,. —1, 1). Такая большая неточность результатов объясняется малой величиной ведущего элемента. В подтверждение этому переставим сначала уравнения системы: 10^1 — 7х2 = 7, 2.5т2 + 5х3 = 2.5, —0.00 1jc2 + 6х3 = 6.001. Исключим теперь х2 из третьего уравнения, прибавив к нему второе, умноженное на 0.0004 (ведущий элемент здесь равен 2.5). Третье уравнение примет вид 6.002^з = 6.002. Отсюда находим хг = 1. С помощью второго и первого уравнений вычислим х2, xL: х = 2-5-5±=.-1 х = 7 + 7.(~У. =0. Таким образом, в результате перестановки уравнений, т. е. выбора наибольшего по модулю из оставшихся в данном столбце элементов, погрешность решения в рам- ках данной точности исчезла. Рассмотрим подробнее вопрос о погрешностях реше- ния систем линейных уравнений методом Гаусса. Запи- шем систему в матричном виде: АХ = В. Решение этой системы можно представить в виде X = A~iB. -Однако вычисленное по методу Гаусса решение X* отличается от этого решения из-за погрешностей округлений, свя- занных с ограниченностью разрядной сетки машины.
§ 2. ПРЯМЫЕ МЕТОДЫ 129 Существуют две величины, характеризующие степень отклонения полученного решения от точного. Одна из них — погрешность е, равная разности этих значений: е — X — X*. Другая — невязка г, равная разности между правой и левой частями уравнений при подстановке в них решения: г=В — АХ*. Можно показать, что если одна из этих величин рав- на нулю, то и другая должна равняться нулю. Однако из малости одной не следует малость другой. При е ~ О обычно г ~ 0, но обратное утверждение справедливо не всегда. В частности, для плохо обусловленных систем при г ~ О погрешность решения может быть большой. Вместе с тем в практических расчетах, если система не является плохо обусловленной, контроль точности ре- шения осуществляется с помощью невязки. Можно отме- тить, что метод Гаусса с выбором главного элемента в этих случаях дает малые невязки. 3. Определитель и обратная матрица. Ранее уже от- мечалось, что непосредственное нахождение определите- ля требует большого объема вычислений. Вместе с тем легко вычисляется определитель треугольной матрицы: он равен произведению ее диагональных элементов. Для приведения матрицы к треугольному виду может быть использован метод исключения, т. е. прямой ход метода Гаусса. В процессе исключения элементов вели- чина определителя не меняется. Знак определителя ме- няется на противоположный при перестановке его столб- цов или строк. Следовательно, значение определителя по- сле приведения матрицы А к треугольному виду вычис- ляется по формуле п det А = ± П ahk- h=l Здесь диагональные элементы ahh берутся из преобразо- ванной (а не исходной) матрицы. Знак зависит от того, четной или нечетной была суммарная перестановка строк (или столбцов) матрицы при ее приведении к треуголь- ному виду (для получения ненулевого или максималь- ного по модулю ведущего элемента на каждом .этапе ис- ключения). Благодаря методу исключения можно вычис- лять определители 100-го и большего порядков, и объем вычислений значительно меньший, чем в проведенных ранее оценках, 0 Л. И. Турчак
130 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Теперь найдем обратную матрицу А~1. Обозначим ее элементы через Zy. Запишем равенство АА~* = Е в виде ™ JI, I = . 2 ~ ^ijt $ij ~ о • f 4 6 7 = « • > W. k=l lUj (4.15) Отсюда следует, что для нахождения элементов одного столбца обратной матрицы необходимо решить линейную систему (4.15) с матрицей А. Например, элементы j-ro столбца Zu, z2j, ..., znj могут быть найдены в результате решения системы уравнений HllZlj "Г ^12^2j Т" ... Т" G'in^nj 0» (4.16) Следовательно, для обращения матрицы нужно п раз решить систему уравнений приведенного вида при / = = 1, 2, ..п. Поскольку матрица системы пе меняется, то исключение неизвестных при использовании метода Гаусса (прямой ход) проводится только один раз. Для каждой системы делается только обратный ход после не- которых преобразований с использованием правых частей систем вида (4.16). Оценки показывают, что это весьма экономичный спо- соб обращения матрицы. Он требует примерно лишь в три раза больше действий, чем при решении одной си- стемы уравнений. 4. Метод прогонки. Он является модификацией мето- да Гаусса для частного случая разреженных систем — системы уравнений с трехдиагональной матрицей. Такие системы получаются при моделировании некоторых ин- женерных задач, а также при численном решении крае- вых задач для дифференциальных уравнений. Запишем систему уравнений в виде biXi + CtX2 *= dit a2Xi + ЬгХг + CtXt = d2, gsx2 + bsxa + caxa «= d3, (4.17)
§ 2. ПРЯМЫЕ МЕТОДЫ 131 На главной диагонали матрицы этой системы стоят эле- менты &i, Ь2, ..., Ьп, над ней — элементы сь с2, ..с„-(, под ней — элементы а2, а3, ..., ап. При этом обычно все коэффициенты bi не равны нулю. Метод прогонки состоит из двух этапов — прямой прогонки (аналога прямого хода метода Гаусса) и обрат- ной прогонки (аналога обратного хода метода Гаусса). Прямая прогонка состоит в том, что каждое неизвестное Xi выражается через ^i+1 с помощью прогоночных коэф- фициентов .ZU, Xi = AiXi+l + В{, i = 1, 2, ..n—1. (4.18) Из первого уравнения системы (4.17) найдем С другой стороны, по формуле (4.18) xt = Ax2 + Ba. При, равнивая коэффициенты в обоих выражениях для xh по- лучаем Ai — —CiJbi, Bi =djbt. (4.19) Из второго уравнения системы (4.17) выразим х2 через ха, заменяя Xi по формуле (4.18): а2 (А1Х2 + Bi)I + b2x2 + c2xa — d2. Отсюда найдем T -c2xS + d2-a2Bi a2Ai + b2 1 или Xa = ЛгХз + Z?2, Л __ C2 J3 _____ d2 a2Bi л _ Л . t •"2 e > ^2 — e 1 &2 — a2Al ^2* 2 2 Аналогично можно вычислить прогоночные коэффициен- ты для любого номера I: (4.20) Ci = aiAi-i + bit i — 2, 2, ..n — 1. Обратная прогонка состоит в последовательном вы- числении неизвестных xt. Сначала нужно найти хп. Для этого воспользуемся выражением (4.18) при i — п — 1 и 8*
132 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ последним уравнением системы (4.17). Запишем их: Xfl—l Ап—1Хп *1" lj ^п^п- 1 Отсюда, исключая xn~i, находим __ cln arfin—l П~ Ъ„ + а А . * п ' п n—L Далее, используя формулы Рис. 18. Блок-схема метода (4.18) и выражения для про- гоночных коэффициентов (4.19), (4.20), последова- тельно вычисляем все неиз- вестные T„-i, Хп-г, ..Xi. Блок-схема решения системы линейных уравнений вида (4.17) приведена на рис. 18. При анализе алгоритма метода прогонки надо учи- тывать возможность деления на нуль в формулах (4.20)« Можно показать, что при выполнении условия преоб- ладания диагональных эле- ментов, т. е. если I6J > > kJ + Id, причем хотя бы для одного значения i имеет место строгое неравенство, деления на нуль не возника- ет, и система (4.17) имеет единственное решение. Приведенное условие пре- обладания диагональных эле- ментов обеспечивает также устойчивость метода прогон- ки относительно погрешно- стей округлений. Последнее обстоятельство позволяет использовать метод прогон- ки для решения больших систем уравнений. Заметим, что данное условие устойчи- прогонки вости прогонки является до- статочным, но не необхо- димым. В ряде случаев для хорошо обусловленных систем вида (4.17) метод прогонки оказывается устойчивым да-
§ 3. ИТЕРАЦИОННЫЕ МЕТОДЫ 133 же при нарушении условия преобладания диагональных элементов. 5. О других прямых методах. Среди прямых методов наиболее распространен метод Гаусса; он удобен для вы- числений на ЭВМ. Перечислим некоторые другие методы. Схема Жордана при выборе главного элемента не учитывает коэффициенты тех уравнений, из которых уже выбирался главный элемент. Она не имеет преимуществ по сравнению с методом Гаусса. Отметим лишь, что здесь облегчается обратный ход, поскольку система приводится к диагональному виду (а не к треугольному). Эта схема часто используется для нахождения обратной матрицы. Метод квадратного корня используется в тех случаях, когда матрица системы является симметричной. Метод оптимального исключения удобен при построч- ном вводе матрицы системы в оперативную память. Од- нако построчный ввод имеет и недостатки: частые обра- щения к внешним устройствам, невозможность выбора главного элемента и др. Клеточные методы могут использоваться для решения больших систем, когда матрица и вектор правых частей целиком не помещаются в оперативной памяти. Эти и другие методы решения систем линейных урав- нений подробно описаны в более полных пособиях по численным методам, а также в специальной литературе по линейной алгебре (см. список литературы), § 3. Итерационные методы 1. Уточнение решения. Решения, получаемые с помо- щью прямых методов, обычно содержат погрешности, выз- ванные округлениями при выполнении операций над чис- лами с плавающей точкой па ЭВМ с ограниченным числом разрядов. В ряде случаев эти погрешности могут быть значительными, и необходимо найти способ их уменьше- ния. Рассмотрим здесь один из методов, позволяющий уточнить решение, полученное с помощью прямого ме- тода. Найдем решение системы линейных уравнений ttuXt + с12.т2 +... + — bh a^Xi + az2xz + ... + aZnxn — bz, .. o. ' • • • • '
434 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Пусть с помощью некоторого прямого метода вычислены приближенные значения неизвестных ж!0), т2°\ Подставляя это решение в левые части системы (4.21), получаем некоторые значения Ь^\ отличные от (i = = 1, 2, ..., п): cn40) + «i240> + ... + а1пх(п0) = 610)f + °22Ж2^ + • • • + Я2пЖ?(г0) = 62°\ (4.22) „ т<0) X л т(0) 4- X л т(0) — Л(0) “Г “Г • • • -Г аПП^п — ип • Введем обозначения: е-0) — погрешности значений неиз- вестных, r(i0) — невязки, т. е. 40) = х, - 40), г? = bi - Ъ?\ 1 = 1,2, ..,,«.(4.23) Вычитая каждое уравнение системы (4.22) из соот- ветствующего уравнения системы (4.21), с учетом обо- значений (4.23) получаем п ₽(0) -I- л Р(0) X Л- л Р(0) — г(0) °11е1 + #12^2 + • . . + Ощеп — '1 i „ X л Р(0) X > л <3°> — Г(0) // П/Х ^21^1 т о22ь2 ... -f- dtifin — г2 , (4.24) л !-(0) X л X X л Р(0) — Г(0) г ^?г2-'2 т • • • "Т G-nn^n — 'п * Решая эту систему, находим значения погрешностей которые используем в качестве поправок к решению. Следующие приближения неизвестных имеют вид „.(D _ X ₽<°> т(1) — т(0) X Р(0) т(1) — т(0) X Р(0) Таким же способом можно найти новые поправки к ре- шению и следующие приближения переменных х-2) == = х(У + ei1} и т. д. Процесс продолжается до тех пор, пока все очередные значения погрешностей (поправок) Ei не станут достаточно малыми. Рассмотренный процесс уточнения решения представ- ляет фактически итерационный метод решения системы линейных уравнений. При этом, заметим, что для нахож- дения очередного приближения, т. е. на каждой итера- ции, решаются системы уравнений вида (4.24) с одной и той же матрицей, являющейся матрицей исходной си- стемы (4.21), при разных правых частях. Это позволяет строить экономические алгоритмы. Например, при исполь-
§ 3. ИТЕРАЦИОННЫЕ МЕТОДЫ 135 зовании метода Гаусса сокращается объем вычислений на этапе прямого хода. Решение систем уравнений с помощью рассмотренно- го метода, а также при использовании других итерацион- ных методов сводится к следующему (рис. 19). Вводятся исходные данные, например коэффициенты уравнений и Рис. 19. Решение системы уравнений методом итераций допустимое значение погрешности. Необходимо также за- дать начальные приближения значений неизвестных. Они либо вводятся в ЭВМ, либо вычисляются каким-либо спо- собом (в частности, путем решения системы уравнений с помощью прямого метода). Затем организуется цикли- ческий вычислительный процесс, каждый цикл которого представляет собой одну итерацию. В результате каждой итерации получаются новые значения неизвестных. При малом (с заданной допустимой погрешностью) измене- нии этих значений на двух последовательных итерациях процесс прекращается, и происходит вывод значений не- известных, полученных на последней итерации. Заметим, что в этой схеме не предусмотрен случай отсутствия сходимости. Для предотвращения непроизво-
130 ГЛ. 4. СИСТЕМЫ ЛКНЕЙПЫХ УРАВНЕНИЙ дительных затрат машинного времени в алгоритм вводят счетчик числа итераций и при достижении им некоторого заданного значения счет прекращают. Такой элемент бу-' дет в дальнейшем введен в блок-схему. 2. Метод Гаусса — Зейделя. Одним из самых распро- страненных итерационных методов, отличающийся про- стотой и легкостью программирования, является метод Гаусса — Зейделя. Проиллюстрируем сначала этот метод на примере ре- шения системы + Hi2^2 4* а^Хз = bt, ^21^1 4" O22^-2 4" ^23^3 = ^2, + СС32Ж2 4- Я33.Т3 = Ь3. (4.25) Предположим, что диагональные элементы аи, cr2z, ass от- личны от нуля (в противном случае можно переставить уравнения). Выразим неизвестные ад, хг и х» соответ- ственно из первого, второго и третьего уравнений систе- мы (4,25): « . = — (bx а^я-2 ^13^3)1 (4-26) “л й-2 ~ 5т (^2 ’’ ^21^1 ^23'^з)? (4.27) 22 ?з = ~~ (Ьз — «зА — W (4.28) “зз ! Зададим некоторые начальные (пулевые) приближе- ния значений неизвестных: хх а?2 — х3 — хз. Подставляя эти значения в правую часть выражения (4.26), получаем новое (первое) приближение для JD - 1 (Ь з- л т(0) — а т(0)) а?1 — 012-^2 ^13^3 )* аи Используя это значение для хЛ п приближение а?з для т3, находим из (4.27) первое приближение для z2: 5-(1) - 1 (h л т(1) — а т(0П «23^3 /» “22 И наконец, используя вычисленные значения хх == хХ:1 =^21)г находим с помощью выражения (4.28) первое
§ 3, ИТЕРАЦИОННЫЕ МЕТОДЫ 137 приближение для x3i ч ~(1)____L_ (h —л т(1) — а т®} Х3 — у^з ^31Л1 м32х2 }* “зз На этом заканчивается первая итерация решения си- стемы (4.26) —(4.28). Используя теперь значения х™, х31\ можно таким же способом провести вторую ите-< рацию, в результате которой будут найдены вторые при- ближения к решению: х^х^, х2 = Х22), х3= х(2) и т. д. Приближение с номером к можно представить в виде с 'f &=±(Ъг-аях™-а^-») “22 Т(М____i_(h _ Ah) _ Ah)\ Х3 — \Уз “31У'1 “32^2 )' зз Итерационный процесс продолжается до тех пор, пока значения x{i \ х^, х^ не станут близкими с заданной погрешностью к значениям х^~1\ х<з х)» Пример. Решить с помощью метода Гаусса —Зеп- деля следующую систему уравнений: 4^1 — Хг + х3 — 4, 2xi + 6.т2 — Хз = 1, Xt + 2xz — З.Г3 = 0. Легко проверить, что решение данной системы следую- щее: Xi — 1, х2 — 1, х3 — 1. Решение. Выразим неизвестные xt, хг и х3 соответ- ственно из первого, второго и третьего уравнений: %1 = "Ь *^2 ^з)>. ^2 ~ "б (7 4" ^з)и 1 я^з = "д" (^ -J- 2x^)f В качестве начального приближения (как это обычно де- лается) примем Ж10) = 0, л?20) = 0г a?30) = 0, Найдем но- вые приближения неизвестных: {(4 + о-о)-1г + „(П _ J. Л > о 5\ _ 8
138 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Аналогично вычислим следующие приближения: 8 V 71 т<2)-^7 2.211. 8 ~Т ^+’6“'9j'”72’ Хг 72 + 9/~72г ,.(2) _ j_ (Ti_ , 9 _ZH — 21 3 “ 3 \ 72 + 72/ 72’ Итерационный процесс можно продолжать до получения малой разности между значениями неизвестных в двух последовательных итерациях. Рассмотрим теперь систему п линейных уравнений с п неизвестными. Запишем ее в виде fl>A + ... + о,-, i-iZi-i + аих( + (щ i+i.ri+1 + ... + ainxn == bi, i = l, 2, ..n. Здесь также будем предполагать, что все диагональные элементы отличны от нуля. Тогда в соответствии с ме- тодом Гаусса — Зейделя к-е приближение к решению можно представить в виде АЫ -j—(h ~п r(h) — л т(к} — aii - - ... - i = 12 2, ..., п. (4.29) Итерационный процесс продолжается до тех пор, пока все значения не станут близкими к Близость этих значений можно характеризовать максимальной аб- солютной величиной их разности б. Тогда при заданной допустимой погрешности е > 0 критерий окончания ите- рационного процесса можно записать в виде б — шах | х^ — хР~1) | < е, (4.30) Это критерий по абсолютным отклонениям. Можно заме- нить его критерием по относительным разностям, т. е. условие окончания итерационного процесса записать в виде (при IzJ > 1) max l<i<n •№) _ ДЛ-D г г (4.31) При выполнении условия (4.30) или (4.31) итераци- онный процесс Гаусса—Зейделя называется сходящим- ся. В этом случае максимальные разности б между зна- чениями переменных в двух последовательных итерациях
§ 3. ИТЕРАЦИОННЫЕ МЕТОДЫ 139 Рис. 20. Блок-схема метода Гаусса — Зейделя
140 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ убывают, а сами эти значения стремятся к решению системы уравнений. Для сходимости итерационного процесса достаточно, чтобы модули диагональных коэффициентов для каждого уравнения системы были не меньше сумм модулей всех остальных коэффициентов: К<|> 2 1 = 1,2, (4.32) i=£i При этом хотя бы для одного уравнения неравенство должно выполняться строго. Эти условия являются до- статочными для сходимости метода, но они не являются необходимыми, т. е. для некоторых систем итерации схо- дятся и при нарушении условий (4.32). Блок-схема алгоритма решения системы п линейных уравнений методом Гаусса — Зейделя представлена на рис. 20. В качестве исходных данных вводятся коэффи- циенты и правые части уравнений системы, погреш- ность е, допустимое число итераций М, а также началь- ные приближения переменных (г = 1, 2, ..., п). Отме- тим, что начальные приближения можно не вводить в ЭВМ, а полагать их равными некоторым значениям (напримйр, нулю). Для удобства чтения блок-схемы объясним некоторые обозначения: к — порядковый номер итерации; i — номер уравнения, а также переменного, которое вычисляется в данном цикле; j — помер члена вида в правой части соотношения (4.29). Итерации прекращаются либо после выполнения условия (4.30), либо при к = М. В по- следнем случае итерации пе сходятся, и после М итера- ций счет прекращается без выдачи результатов. Можно предусмотреть в этом случае также и вывод на печать некоторой поясняющей информации. § 4. Задачи на собственные значения 1. Основные понятия. Большое число научно-техни- ческих задач, а также некоторые исследования в области вычислительной математики требуют нахождения соб- ственных значений и собственных векторов матриц. Вве- дем некоторые определения, необходимые для изложения материала данного параграфа.
§ 4. ЗАДАЧИ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ 141 Рассмотрим квадратную матрицу n-го порядка га . 11 “12 а1гГ А = а 21 й22 а2П • • u П1 ЯП2 апп- (4.33) Характеристической матрицей С данной матрицы А называется матрица вида С = А-}.Е = ~aii~ Я12 ••• я1п Я21 й22 “ Я2П а 1 nl ап2 апп h- (4.34) Здесь К — собственное значение, Е — единичная матрица. Определитель матрицы С является многочленом /г-й степени относительно X: det С = с<Лп + сЛ"-1 + ... + с„-Л -Ь сп, (4.35) называемым характеристическим многочленом. Корни этого многочлена являются собственными значениями матрицы А. Вектор 'X = (х;, х2, ..., хп), соответствующий некото- рому собственному значению X и удовлетворяющий си- стеме уравнений ЛХ = ЛХ, (4.36) называется собственным вектором матрицы А. Поскольку при умножении собственного вектора на скаляр он остается собственным вектором той же матри- цы, то его можно нормировать. В частности, каждую ко- ординату собственного вектора можно разделить на мак- симальную из них или на длину вектора; в последнем ,случае получится единичный собственный вектор. Если перейти к координатной форме записи векто- ра X, то с учетом (4.33) систему (4.36) можно записать в виде ацХЛ + аЛ2х2 + ... + а1пгп = a2lXi + «22^2 + ... + а2пхп = Кх2,
142 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Иногда эту систему уравнений удобно представить в дру- гом виде: (я1( — Х)а:( 4- 012^2 4-... 4- ainxn =_0, 021^1 + («22 Х)^2 + • • • + «2п#п = О, + ап2х2 4-... 4- (Япп — Х)хп — 0. Это уже однородная система п линейных уравнений с п неизвестными. Она имеет ненулевые решения лишь тог- да, когда ее определитель равен нулю: det (Л — ХЕ) = 0,_ причем решение не единственно, поскольку обычно одно уравнение является следствием остальных. На практике обычно при нахождении собственных векторов матрицы одну из его компонент полагают рав- ной некоторому числу, например xt = 1. Остальные ком- поненты находятся однозначно из подсистемы линейно независимых уравнений, в которой отброшено уравнение, являющееся следствием остальных. Эта процедура не влияет на результат решения задачи, поскольку, как уже отмечалось, собственные векторы находятся с точностью до постоянного множителя. Пример. Вычислить собственные числа и собствен- ные векторы матрицы Решение. Составим характеристический многочлен |3~Х 2,1J = (3-X)(4-X)-2 = X2-7X + 10, Найдем корни этого многочлена второй степени: X2-7X4-10 = О, Xi = 2, Х2 = 5. Для нахождения собственных векторов Х{, Х2, соответ- ствующих собственным значениям Хъ Х2, составим систе- мы уравнений типа (4.36) для каждого из них. При Xi = 2 получим [3 ll.Pil Г2х1 L 2 4 ' \ X 2х L. Л А или в виде системы уравнений: 3xj +. х2 а 2xt 4- 4та = 2хг.
§ 4. ЗАДАЧИ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ 143 Записывая полученную систему в виде Xi + х2 = О, Xi + х2 = О, замечаем, что уравнения линейно зависимы (даже совпа- дают). Поэтому оставляем лишь одно из них. Полагаем ху = 1. Тогда х2 = —Xi — —1, и собственный вектор, соответствующий собственному значению = 2, имеет вид Xj = {1, —1} или Xt = ех — е2, где е2 — еди- ничные орты выбранной базисной системы. Аналогично находим второй собственный вектор, со- ответствующий собственному значению Z2 — 5. Опуская комментарии, получаем 3 11 5хг 2 4JLx2j 14» 3art + х2 = 5х1? —2Xi + х2 — О, 2xi + 4^2 — 5z2; 2xt — х2 = О, Отсюда Xi = 1, х2 = 2, Х2 = + 2е2. Вектор Xi нормирован; нормируем также вектор Х2, разделив его компоненты на наибольшую из них. Полу- чим Х2 = 0.5^! + е2. Можно также привести векторы к единичной длине, разделив их компоненты на значения модулей векторов. В этом случае — у= (ei ea)i -^2 ~ (ei + 2е2). Мы рассмотрели простейший пример вычисления соб- ственных значений и собственных векторов для матрицы второго порядка. Нетрудно также провести подобное ре- шение задачи для матрицы третьего порядка и для неко- торых весьма специальных случаев. В общем случае, особенно для матриц высокого по- рядка, задача о нахождении их собственных значений и собственных векторов, называемая полной проблемой соб- ственных значений, значительно более сложная. На первый взгляд может показаться, что вопрос сво- дится к вычислению корней многочлена (4.35). Однако здесь задача осложнена тем, что среди собственных зна- чений часто встречаются кратные. И кроме того, для произвольной матрицы непросто вычислить сами коэффи- циенты характеристического многочлена.
144 Гл. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Отметим некоторые свойства собственных значений для частных типов исходной матрицы. 1. Все собственные значения симметрической матри- цы действительны. 2. Если собственные значения матрицы действитель- ны и различны, то соответствующие им собственные.век- торы ортогональны и образуют базис рассматриваемого пространства. Следовательно, любой вектор в данном пространстве можно выразить через совокупность линей- но независимых собственных векторов. 3. Если две матрицы А п В подобны, т. е. они связа- ны соотношением В = Р~1АР, (4.37) то их собственные значения совпадают (здесь Р — неко- торая матрица). Преобразование подобия (4.37) можно использовать Для упрощения исходной матрицы, а задачу о вычисле- нии ее собственных значений свести к аналогичной зада- че для более простой матрицы. Очевидно, самым лучшим упрощением матрицы (4.33) было бы приведение ее к треугольному виду ч - »;» fl22 ” ‘ * а'1П Тогда матрица (4.34 ) также имела бы треугольный вид. Как известно, определитель треугольной матрицы равен произведению ее диагональных элементов, поэтому ха- рактеристический многочлен (4.35) в этом случае имеет ВИД det С — («и — А) («22 — А) • * • (апп — ^)» (4.38) Собственные значения матрицы, равные корням этого многочлена, можно сразу получить: = «Hi = ^221 » » «1 ^-П == «п71» (4,39) Таким образом, собственные значения треугольной матрицы равны ее диагональным элементам. То же са- мое, естественно, относится и к диагональной! матрице, которая является частным случаем треугольной,
§ 4, ЗАДАЧИ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ 145 Некоторые типы матриц удается привести к треуголь- ному виду с помощью преобразования подобия. В частно- сти, симметрическую матрицу можно привести к диаго- нальному виду. На практике часто используется приве- дение симметрической матрицы к трехдиагональпому ви- ду. Процедура вычисления собственных значений для полученной матрицы значительно упрощается по срав- нению с задачей для исходной матрицы. Существует ряд методов, основанных на использова- нии преобразования подобия, позволяющего привести ис- ходную матрицу к более простой структуре. Мы рассмот- рим ниже один из них — метод вращений. 2. Метод вращений. Одним из эффективных методов, позволяющих привести исходную симметричную матрицу га-го порядка к трехдиагональному виду, является метод вращений. Он основан на специально подбираемом вра- щении системы координат в n-мерном пространстве. По- скольку любое вращение можно заменить последователь- ностью элементарных (плоских) вращений, то решение задачи можно разбить на ряд шагов, на каждом из кото- рых осуществляется плоское вращение. Таким образом, на каждом шаге выбираются две оси — i-я и /-я, и пово- рот производится в плоскости, проходящей через эти оси; остальные оси координат на данном шаге неподвижны. Матрица вращения при этом имеет вид Ри = Ра = Ра ~ —Ра = Р = cos <р, q = —sin (р. Здесь мы рассматриваем матрицы с вещественными эле- ментами. В случае комплексных векторов для использо- вания этого метода нужно изменить формулы (4.40). Для осуществления преобразования подобия (4.37) необходимо найти обратную матрицу Р^, Можно пока- зать, что она равна в рассматриваемом случае транспо- нированной матрице P]-3t т. е. для получения обратной матрицы достаточно провести зеркальное отражение всех элементов исходной матрицы относительно ее диагонали, Ю л. И, Турчак
146 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Другими словами, нужно поменять местами строки и столбцы исходим! матрицы; элементы pi} и рц при этом поменяются местами. Угол поворота ср на каждом шаге выбирается таким, чтобы в преобразованной матрице обратился в нуль один элемент (в симметрической матрице — два). Процесс пре- образования исходной матрицы путем элементарного вра- щения на любом к-м шаге можно представить в виде рекуррентных соотношений Л» = PjA-.Py, *-1,2,... (4.41) Рассмотрим первый шаг преобразования. Сначала вы- числяется произведение матриц В — A0P-tj (здесь Ао— исходная матрица Л). В полученной матрице отличными от исходных являются элементы, стоящие в г-м и у-м столбцах; остальные элементы совпадают с элементами матрицы Л о, т. е. bki — aki р + afflq, bhj = — a$q + a$p, bhl = ^hl t I G /1 = • • • i П* Затем находится преобразованная матрица At = Р^В. Элементы полученной матрицы отличаются от элементов матрицы В только г-й и у-й строками. Они связаны соот- ношениями Ujk ~~ bihP 4" bihQi = ~~~blhP 4" к — 12 2, . . t, nt (4.43) Таким образом, преобразованная матрица At отлича- ется от Ао элементами строк и столбцов с номерами i и у. Эти элементы пересчитываются по формулам (4.42), (4.43). В данных формулах пока не определенными оста- лись параметры р, q\ при этом лишь один из них свобод- ный, поскольку они подчиняются тождеству р2 4- q2 = 1. (4.44) Недостающее одно уравнение для определения этих пара- метров получается из условия обращения в нуль некото- рого элемента новой матрицы Ль В зависимости от вы- бора этого элемента строятся различные алгоритмы ме- тода вращений,
6 4. ЗАДАЧИ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ 147 Одним из таких алгоритмов является последователь- ное обращение в нуль всех ненулевых элементов, лежа- щих вне трех диагоналей исходной симметрической мат- рицы. Это так называемый прямой метод вращений. В со- ответствии с этим методом обращение в нуль элементов матрицы производится последовательно, начиная с эле- ментов первой строки (и первого столбца, так как матри- ца симметрическая). Рассмотрим сначала первый шаг данного метода, со- стоящий в обращении в нуль элементов, стоящих на ме- стах элементов щ3, «31. Для этого умножим матрицу Ао справа на матрицу вращения Р2з и слева на транспони- рованную матрицу Ргз- Получим новые значения эле- ментов матрицы, которые вычисляются по формулам (4.42), (4.43). Полагая в них к = 1, / = 2,/ = 3, находим «1V = ^13 = — + а1зР — О-Учитывая тождество (4.44), получаем систему уравнений для определения парамет- ров р, q: diSp — duq *= О, р' + q2 = 1. Решая эту систему, находим Используя эти параметры р, q, можно по формулам (4.42), (4.43) вычислить значения элементов, стоящих в строках и столбцах с номерами i = 2, 3; / == 2, 3 (ос- тальные элементы исходной матрицы не изменились). Аналогично можно добиться нулевого значения любо- го элемента «i-и на /с-м шаге. В этом случае строится матрица вращения параметры которой вычисляются по формулам, полученным из условия равенства нулю элемента <4-i j и (4.44). Эти формулы имеют вид (4.45) Учитывая найденные значения параметров р, q, мож- но по формулам (4.42), (4.43) найти элементы преобра- зованной матрицы. Процесс вычислений объясним с ис- 10*
148 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ пользованием схематического изображения матрицы (рис. 21). Точками отмечены элементы матрицы. Верти- кальными линиями показаны столбцы с номерами i, j, горизонтальными — строки с теми же номерами. Наклон- ные линии указывают три диагонали матрицы, элементы на которых после окончания расчета отличны от нуля; все остальные — нули. На рассматриваемом шаге матри- ца преобразуется таким образом, чтобы отмеченные кре- стиками элементы обратились в нуль, Алгоритм решения задачи нужно построить таким образом, чтобы все элементы по одну сторону от трех диагоналей обратились в нуль; тогда симметрично распо- ложенные элементы также станут нулевыми. Преобразо- вание подобия на каждом шаге требует пересчета всех элементов отмеченных столбцов и строк. Учитывая сим- метрию, можно вычислить лишь все элементы столбцов, а элементы строк получаются из условий симметрии. Исключение составляют лишь элементы, расположенные на пересечениях этих строк и столбцов. Они изменяются на каждом из двух этапов выполняемого шага. Таким образом, на каждом шаге преобразования сим- метрической матрицы для вычисления элементов столб- цов используются формулы (4.42), а элементы, находя- щиеся па пересечениях изменяемых строк и столбцов,
§ 4. ЗАДАЧИ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ 149 пересчитываются еще по формулам (4.43). При этом полученные ранее нулевые элементы не изменяются. Блок-схема приведения сим- метрической матрицы к трехдиагональному виду с помощью прямого метода вращений представлена на рис. 22. Собственные значения полученной трехдиагональ- ной матрицы будут также собственными значениями исходной матрицы. Собст- венные векторы Х{ исходной матрицы не равны непо- средственно собственным векторам У, трехдиагональ- ной матрицы, а вычисляют- ся с помощью соотношений (4.46) 3. Трехдиагональные мат- рицы. Как было показано в п. 2, симметрическую мат- рицу можно привести с по- мощью преобразований по- добия к трехдиагональному виду. Кроме того, трехдиа- гопальпые матрицы пред- ставляют самостоятельный интерес, поскольку они 22. Блок-схема метода вращений векторы. Рассмотрим встречаются в вычислитель- рис пой практике, и нередко тре- буется находить их собст- венные значения и собственные трехдиагональную матрицу вида
150 ГЛ. 4 СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Здесь элементы blf b2, ..Ьп расположены вдоль главной диагонали, с2, ..cn-t — над ней; а2, а3, ..ап — под ней. Для нахождения собственных значений нужно при- равнять нулю определитель Z*n(X) = det (Л — ХЁ), или (4.48) Произвольный определитель n-го порядка можно вы- разить через п миноров п — 1-го порядка путем разло- жения его по элементам любой строки или любого столб- ца. Разложим определитель (4.48) по элементам послед- ней строки, в которой всего два ненулевых элемента. По- лучим Dn (X) = (Ь„ - X) (X) - anMn-i (X), (4.49) Поскольку минор Л/„_,(Х) содержит в последнем столбце лишь один элемент сп_ъ то, разлагая его по элементам этого столбца, получаем М п-1 (л) = Cn-iDn-2 (X). Подставляя это выражение в формулу (4.49), получа- ем рекуррентные соотношения, выражающие минор выс- шего порядка через миноры двух низших порядков: Dn (к) = (Ьп — X) И,,-! (X) — ancn-iDn-2 (X). (4.50) Положим £>0(Х)=1. Минор первого порядка равен эле- менту ап определителя, т. е. в данном случае Z)i(X)== = bi — X. Проверим, с учетом значений Р0(Х), £\(Х), правильность формулы (4.50) при п = 2: Dz (X) = (Ь3 - X) Di (X) - a2CiDb (X) = (Ь2 - X) (Ь» - X) - a2Ci. (4.51) Вычисляя минор второго порядка определителя (4.48), убеждаемся в справедливости выражения (4.51). Таким
§ 4. ЗАДАЧИ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ 151 образом, используя рекуррентные соотношения (4.50), можно найти выражение для характеристического много- члена 2)n(Z). Вычисляя корни этого многочлена, получа- ем собственные значения М, Х2, ..7П трехдиагональной матрицы (4.47). Будем считать, что собственные значения Kt, Х2, .. матрицы (4.47) вычислены. Найдем соответствующие им собственные векторы. В соответствии с определением (4.36) собственный вектор для любого собственного зна- чения X находится из системы уравнений АХ — КХ, или (Л-А£)Х = 0. (4.52) Перейдем от матричной формы записи этой системы к развернутой (А — матрица вида (4.47), X — (х1} х2, ... ..хп}) : (bt — K)xi + CiX2 — 0, + (Ь2 — К) х2 + c2z3 - — 0, ^п—1Хп~~2 4“(bn~i K^xn—i 4~ cn~iXn 0, anxn-i + (bn — К)хп = 0. (4.53) Матрица системы (4.53) вырожденная, поскольку ее определитель (4.48) равен нулю. Можно показать, что последнее уравнение системы (4.53) является следствием остальных уравнений, если с, ¥= 0 (1—1, 2, ..., п — 1). Действительно, если отбросить первый столбец и послед- нюю строку в матрице А, то вместо (4.48) получится определитель вида • • Сп-1 Ф 0. (4,54) 0 ап— 1 ^п— 1 сп— 1 Следовательно, все строки с первой по п — 1-ю линейно независимы. Отбрасывая последнее уравнение системы (4.53), записываем ее в виде ctx2 = —(bi — K)xlt (b2 — К)х2 + с2х3 — —a2Xi, @п—1^-71 — 2 * —1 Л) 1 т Сп — \,Хп U. (4.55)
152 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Полагая компоненту xt равной любому ненулевому значению, можно из системы (4.55) найти последователь- но все остальные компоненты: из первого уравнения лег- ко вычислить х2, из второго х3 и т. д., из последнего хп. Поскольку определитель (4.54) этой системы отличен от нуля, то она имеет единственное решение. Описанным способом могут быть найдены собственные векторы, соот- ветствующие всем собственным значениям Ai, л2, ,.., трехдиагональной матрицы (4.47). Если трехдиагональная матрица получена в резуль- тате последовательности преобразований подобия исход- ной симметричной матрицы, то, как уже отмечалось, все собственные значения трехдиагональной матрицы явля- ются одновременно собственными значениями исходной матрицы, а собственные векторы пересчитываются по формулам (4.46). При этом вычислять произведения мат- риц Р23, Р21, ..., Pn-t, п на собственные векторы трехдиа- гональной матрицы нецелесообразно, поскольку при ум- ножении матрицы Рц на вектор X изменяются только две его компоненты: xit х,. Поэтому в качестве этих компо- нент берем значения pxt— qx, и qxi +рх,, что сокращает объем вычислений по сравнению с умножением матри- цы Рц на вектор X. 4. Частичная проблема собственных значений. Часто в практических вычислениях бывают нужны не все соб- ственные значения, а лишь некоторые из них. В этих случаях нецелесообразно решать полную проблему соб- ственных значений. Для решения частичной проблемы собственных зна- чений, состоящей в определении одного или нескольких собственных значений и соответствующих им собствен- ных векторов, обычно используются итерационные мето- ды. Строится такой итерационный процесс, который схо- дится к одному собственному значению и собственному вектору, причем используемые алгоритмы обычно весьма экономичны. Итерационный процесс строится па основании приме- нения методов итераций к решению системы уравнений IX = АХ. (4.56)] Используем метод простой итерации. Пусть Х(о> — на- чальное приближение собственного вектора X, причем собственные векторы на каждой итерации нормированы,
§ 4. ЗАДАЧИ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ 153 Итерационный процесс запишется в виде = AXW^ к == 0, Подставляя в правую часть этой системы вектор Х(о), по- лучаем после его умножения слева на матрицу А некото- рый вектор У(1). После нормировки этого вектора он представится в виде У(1) == Х(1)Х(1), где Х(1) — постоянная, Х(1) — нормированный вектор. Теперь нужно Х(1) снова подставить в правую часть (4.57) и найти новые при- ближения А(г) и Х(2). Итерационный процесс продолжает- ся до установления постоянных значений А и X. При этом найденное число Z — наибольшее по модулю собст- венное значение данной матрицы А, а X—соответству- ющий ему собственный вектор. Скорость сходимости этого итерационного процесса зависит от удачного выбора начального приближения. Если начальный вектор близок к истинному собственно- му вектору, то итерации сходятся быстро. Для решения системы (4.56) можно использовать и другие итерационные методы. В частности, метод Ньюто- на дает лучшую сходимость, если удачно выбрано на- чальное приближение Х<0). В этом случае бывает доста- точно нескольких итераций. В некоторых задачах нужно искать не наибольшее, а наименьшее собственное значение матрицы А. В этом случае можно умножить систему (4.56) на обратную мат- рицу Л-’: кА-'Х = А-'АХ' Отсюда, деля обе части этого равенства на X и учитывая, что А~1А — Е, получаем 4 X = А^Х. (4,58) Эта задача отличается от ранее рассматриваемой тем, что здесь будет вычисляться наибольшее собственное зна- чение 1/Х, что будет достигнуто при наименьшем Л. Сле- довательно, рассмотренный выше итерационный процесс может быть использован также для нахождения наимень- шего собственного значения обратной матрицы (собствен- ные значения матриц А и Л-1 обратны друг другу),
154 ГЛ. 4. СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ Упражнения 1. Провести геометрический анализ единственности решения системы трех линейных уравнений с тремя неизвестными в зави- симости от значения определителя. 2. Элементы треугольной матрицы вводятся построчно в па- мять машины. Составить блок-схему вычисления определителя данной матрицы. 3. Используя метод Гаусса, решить следующие системы урав- нений с погрешностью 10-4: а) 1.17*1 + 0.53*2 — 0.84*3 = 1.15, 0.64* i — 0.72*2 — 0.43*3 == 0.15, 0.32*1 4- 0.43*2 — 0.93*з = —0.48; б) 1.20а:, — 0.20.г2 + О.ЗО*3 = —0.60, —0 .20*, 4- 1.60а:2 — 0.10*3 = 0.30, —0 .30*1 4~ 0.10*2 — 1-50*3 — 0.40. 4. Составить блок-схему вычисления обратной матрицы по ме- тоду Гаусса. Блок прямого хода можно считать заданным (см. рис. 16). 5. С помощью метода прогонки решить систему уравнений 2*1 4- 2*2 = 1, —*1 4- *2 — 0.5*3 = 0, *2 — 3*3 — *4=2, *3 4" 2*4 = 2. 6. Решить методом Гаусса — Зейделя с погрешностью Ю-9 си- стемы уравнений: а) 5.6*1 4- 2.7*2 — 1.7*3 = 1.9, 3.4*1 — 3.6*2 — 6.7*3 — —2.4, 0.8*1 4-1.3*2 З.7*3 = 1.2; б) 7.1*1 4- 6.8*2 + 6.1*3 = 7.0, 5.0*1 -}- 4.8*2 + 5.3*3 = 6.1, 8.2*1 + 7.8*2 + 7.1*3 = 5.8. 7. Найти собственные значения и собственные векторы матриц — 1 о 2 2 . 2 3 8. Составить алгоритм приведения матрицы четвертого поряд- ка к трехдиагональному, виду и решения полной проблемы соб- ственных значений. 9. Составить блок-схему вычисления наибольшего собственно- го значения с помощью итерационного метода.
' ГЛАВА 5 НЕЛИНЕЙНЫЕ УРАВНЕНИЯ § 1. Уравнения с одним неизвестным 1. Вводные замечания. Задача нахождения корней не- линейных уравнений вида F(x)=0 (5.1) встречается в различных областях научных исследований (здесь F(x)—некоторая непрерывная функция.) Нели- нейные уравнения можно разделить на два класса — ал- гебраические и трансцендентные. Алгебраическими урав- нениями называются уравнения, содержащие только ал- гебраические функции (целые, рациональные, иррацио- нальные). В частности, многочлен является целой алгеб- раической функцией. Уравнения, содержащие другие функции (тригонометрические, показательные, логариф- мические и др.), называются трансцендентными. Методы решения нелинейных уравнений делятся на прямые и итерационные. Прямые методы позволяют за- писать корни в виде некоторого конечного соотношения (формулы). Из школьного курса алгебры читателю из- вестны такие методы для решения тригонометрических, логарифмических, показательных, а также простейших алгебраических уравнений. Однако встречающиеся на практике уравнения не удается решить такими простыми методами. Для их ре- шения используются итерационные методы, т. е. методы последовательных приближений. Алгоритм нахождения корня уравнения с помощью итерационного метода со- стоит из двух этапов: а) отыскания приближенного зна- чения корня или содержащего его отрезка; б) уточнения приближенного значения до некоторой заданной степени точности. Приближенное значение корня (начальное приближе- ние) может быть найдено различными способами: из фи- зических соображений, из решения аналогичной задачи при других исходных данных, с помощью графических методов. Если такие априорные оценки исходного при- ближения провести не удается, то находят две близко расположенные точки а и bt в которых непрерывная
156 ГЛ. 5. НЕЛИНЕЙНЫЕ УРАВНЕНИЯ функция F(x) принимает значения разных знаков, т. е, F(a)F(6)< 0. В этом случае между точками а и b есть по крайней мере одна точка, в которой F (х) — 0. В каче- стве начального приближения х0 можно принять середи- ну отрезка [а, &], т. е. х0 — {а + Ъ)/2. Итерационный процесс состоит в последовательном уточнении начального приближения х0. Каждый такой шаг называется итерацией. В результате итераций нахо- дится последовательность приближенных значений корня xt, х2, .,хп. Если эти значения с ростом п приближают- ся к истинному значению корня, то говорят, что итера- ционный процесс сходится. Ниже рассматриваются некоторые итерационные ме- тоды решения трансцендентных уравнений. Они могут использоваться также и для нахождения корней”алгебра- ических уравнений, некоторые особенности решения ко- торых будут рассмотрены в § 2. 2. Метод деления отрезка пополам (метод бисекции). Это один из простейших методов нахождения корней не- линейных уравнений. Он состоит в следующем. Допу- стим, что нам удалось найти отрезок [а, &], в котором расположено искомое значение корня х — с, т. е. а с < Ъ. В качестве начального приближения корня с0 при- нимаем середину этого отрезка, т. е. с0 — (а + Ь)/2. Да- лее исследуем значения функции F(x) на концах отрез- ков [с, Со] и [с0, 6], т. е. в точках а, с0, Ъ. Тот из них, на концах которого F (х) при- нимает значения разных знаков, содержит иско- мый корень; поэтому его принимаем в качестве но- вого отрезка. Вторую по- ловину отрезка [а, Ь], на которой знак F(x) не ме- няется, отбрасываем. В качестве первой итерации Рис, 23. Метод деления отрезка корня принимаем середи- пополам ну нового отрезка и т. д. Таким образом, после каждой итерации отрезок, на котором расположен корень, уменьшается вдвое, т. е. после п итераций он сокращает- ся в 2” раз. Пусть для определенности F(a)< O,F(b)> 0(рис. 23). В качестве начального приближения корня примем с0 ==
в 1. УРАВНЕНИЯ С ОДНИМ НЕИЗВЕСТНЫМ 157 = (а + £>)/2. Поскольку в рассматриваемом случае F(c0)<0, то Со < с < Ь, и рассматриваем только отрезок [с0, &]. Следующее приближение: ct = (с0 + Ъ)/2. При этом отрезок [сь Ь] отбрасываем, поскольку F(Ci)>0 и F(fe)> > 0, т. е. с0 < с < ct. Аналогично находим другие прибли- жения: с2 = (с0 + Ci)/2 и т. д. Рис. 24. Блок-схема метода деления отрезка пополам Итерационный процесс продолжаем до тех пор, пока значение функции F (х) после n-й итерации не станет меньшим по модулю некоторого заданного малого числа е, т. е. |A(cn) | < е. Можно также оценивать длину полу- ченного отрезка: если она становится меньше допустимой погрешности, то счет прекращается. На рис. 24 представлена блок-схема итерационного процесса нахождения корня уравнения (5.1) методом де- ления отрезка пополам. Здесь сужение отрезка произво- дится путем замены границ а или Ъ на текущее значе? ние корня с. При этом значение F(a) вычисляется лишь один раз, поскольку нам нужен только знак функции F(x) на левой границе, а он в процессе итераций не ме- няется.
158 ГЛ. 5. НЕЛИНЕЙНЫЙ УРАВНЕНИЯ рамках разряд! число итераций (разумеется, в обычно большее Метод деления отрезка пополам довольно медленный, однако он всегда сходится, т. е. при его использовании решение получается всегда, причем с заданной точностью ости ЭВМ). Требуемое по сравнению с некото- рыми другими метода- ми не является препят- ствием к применению этого метода, если каж- дое вычисление значе- ния функции F(x) не- сложно. 3. Метод хорд. Пусть мы нашли отрезок [с, £> ], на котором функция F(x) меняет знак. Для определенности при- мем F(n)>0, F(b)< <0 (рис. 25). В дан- ном методе процесс итераций состоит в том, что в каче- стве приближений к корню уравнения (5.1) принимают- ся значения с», ct| ... точек пересечения хорды с осью абсцисс. Сначала находим уравнение хорды АВ: у — F (а) х — а F{b)-F{a)=‘=b-a’ Для точки пересечения ее с осью абсцисс (х = с0, У = 0) получим уравнение <5’2) Далее, сравнивая знаки величин F (а) и F(ce) для рас- сматриваемого случая, приходим к выводу, что корень на- ходится в интервале (а, с0), так как F(a)F(с0)<0. Отре- зок [с0, Ь] отбрасываем. Следующая итерация состоит в определении нового приближения с» как точки пересече- ния хорды ABi с осью абсцисс и т. д. Итерационный про- цесс продолжается до тех пор, пока значение F(cn) не станет по модулю меньше заданного числа е. Блок-схема метода хорд аналогична приведенной на рис. 24 для метода деления отрезка пополам с той лишь разницей, что вместо вычисления приближения корня по формуле с = (а+ Ь)/2 нужно использовать формулу (5.2).
§ 1. УРАВНЕНИЯ С ОДНИМ НЕИЗВЕСТНЫМ 159 Кроме того, в блок-схему необходимо ввести операторы вычисления значений F(x) на границах новых отрезков. Советуем читателю самостоятельно построить блок-схему метода хорд. Как видим, алгоритмы метода деления отрезка попо- лам и метода хорд похожи, однако второй из них в ряде случаев дает более быструю сходимость итерационного процесса. При этом успех его применения, как и в мето- де деления отрезка пополам, гарантирован. 4. Метод Ньютона (метод касательных). Его отличие от предыдущего метода состоит в том, что на /с-й итера- ции вместо хорды проводится касательная к кривой у = *= F (х) при х = с,, и ищется точка пересечения касатель- ной с осью абсцисс. При этом не обязательно задавать отрезок [а, &], содержащий корень уравнения (5.1), а до- статочно лишь найти некоторое начальное приближение корня х — св (рис. 26). Уравнение касательной, проведенной к кривой у = *=F(x) в точке Мв с координатами св и F(c0), имеет вид у ~ F (св) = F'(св) (х — св). Отсюда найдем следующее приближение корня щ как абсциссу точки пересечения касательной с осью х (г/ = 0): Ci = cB-F(cB)/F'(cB). Аналогично могут быть найдены и следующие приближе- ния как точки пересечения с осью абсцисс касательных, проведенных в точках Ми М2-и т. д. Формула для п + 1-го приближения имеет вид Cn+i = cn — F(cn)/F' (сп]. (5.3)'
160 ГЛ. 5. НЕЛИНЕЙНЫЕ УРАВНЕНИЯ При этом необходимо, чтобы F'(cn) не равнялась нулю. Для окончания итерационного процесса может быть ис- пользовано или условие lF(c„) I < е, или условие близо- сти двух последовательных приближений: |сп+1 — с„1<е. Из (5.3) следует, что на каждой итерации объем вы- числений в методе Ньютона больший, чем в рассмотрен- ных ранее методах, поскольку приходится находить зна- чение не только функции F(x), но и ее производной. Од- нако скорость сходимости здесь значительно выше, чем в других методах. Остановимся на некоторых вопросах, связанных со сходимостью метода Ньютона и его использованием. Име- ет место следующая Теорема. Пусть х — с— корень уравнения (5.1)', т. е. F(c) = Q, a F'(c)¥=0 и F" (х) непрерывна. Тогда су- ществует окрестность D корня с (с^Ь) такая, что если начальное приближение с0 принадлежит этой окрестно- сти, то для метода Ньютона последовательность значений {сп} сходится к с при п-+ оо. При этом для погрешности корня еп = сп — с имеет место соотношение lim -^±i = П-»°о en F" (c) 2F' (c) ‘ Фактически это означает, что на каждой итерации по- грешность возводится в квадрат, т. е. число верных зна- ков корня удваивается. Если F"(c} ..л 2F' (с) Li то легко показать, что при lej <0.5 после пяти-шести итераций погрешность станет величиной порядка 2~®4. Это наименьшее возможное значение погрешности при вычис- лениях на современных ЭВМ даже с удвоенной точ- ностью. Заметим, что для получения столь малой погреш- ности в методе деления отрезка пополам потребовалось бы более 50 итераций. Трудность в применении метода Ньютона состоит в выборе начального приближения, которое должно нахо- диться в окрестности D. Поэтому иногда целесообразно использовать смешанный алгоритм. Он состоит в том, что сначала применяется всегда сходящийся метод (напри- мер, метод деления отрезка пополам), а после некоторого дисла итераций — быстро сходящийся метод Ньютона.
g 2. О РЕШЕНИИ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ 161 5. Метод простой итерации. Для использования этого метода исходное нелинейное уравнение записывается в виде x = f(x). (5.4) Пусть известно начальное приближение корня х = с0. Подставляя это значение в правую часть уравнения (5.4), получаем новое прибли- жение: Рис. 27. Блок-схема мето- да простой итерации Далее, подставляя каждый раз новое значение корня в (5.4), получаем последовательность значений 'Cn+i =/(Сп)’> п=1, 2, ... Итерационный процесс прекра- щается, если результаты двух последовательных итераций близки: |cn+i —сп|<е. Доста- точным условием сходимости метода простой итерации явля- ется условие l/'(cn)| < 1. На рис. 27 представлена блок-схема процесса решения нелинейного уравнения (5.4) методом простой итерации. Здесь с — начальное прибли- жение корпя, а в дальнейшем — результат предыдущей итерации, х — значение корня после каждой итерации. В данном алгоритме предполагалось, что итерационный процесс сходится. Если такой уверенности нет, то необ- ходимо ограничить число итераций и ввести для них счет- чик (см. рис. 20). § 2. О решении алгебраических уравнений 1. Действительные корни. Рассмотренные выше мето- ды решения нелинейных уравнений пригодны как для трансцендентных, так и для алгебраических уравнений. Вместе с тем при нахождении корней многочленов при- ходится сталкиваться с некоторыми особенностями. В частности, прп рассмотрении точности вычислительного процесса (см. гл. 1, § 3) отмечалась чувствительность к И Л. и. Турчак
162 ГЛ. 5. НЕЛИНЕЙНЫЕ УРАВНЕНИЯ погрешностям значений корней многочлена. С другой сто- роны, по сравнению с трансцендентными функциями мно- гочлены имеют то преимущество, что заранее известно число их корней. Напомним известные из курса алгебры некоторые свойства алгебраических уравнений с действительными коэффициентами вида апхп + ап-1Хп~* + ... + aiX + а0 — 0. (5.5) 1. Уравнение степени п имеет всего п корней, среди которых могут быть как действительные, так и комплекс- ные. 2. Комплексные корни образуют комплексно-сопря- женные пары, т. е. каждому корню х = с + id соответст- вует корень х = с — id. 3. Число положительных действительных корней мень- ше или равно числу перемен знаков в последовательности коэффициентов а0, ah ..., ап. Заменяя х на — х в уравне- нии (5.5), таким же способом можно оценить число от- рицательных корней. Одним из способов решения уравнения (5.5) является метод понижения порядка. Он состоит в том, что после нахождения какого-либо корня х = с данное уравнение можно разделить на х — с, понизив его порядок до п— 1. Правда, при таком способе нужно помнить о точности, поскольку даже небольшая погрешность в значении пер- вого корня может'привести к накапливанию погрешности в дальнейших вычислениях. Рассмотрим применение метода Ньютона к решению уравнения (5.5). В соответствии с формулой (5.3) итера- ционный процесс для нахождения корня нелинейного уравнения (5.5) имеет вид F('n) хп+1 хп р> (Г X » F(x} =а0 + atX +...+ апхп, F' (х) = щ + 2агх +...+ папх”-1. Для вычисления значений многочленов F(x) и F'(x) в точке х = хп может быть использована схема Горнера (см. гл. 2, § 2, п. 3). Естественно, при использовании метода Ньютона дол- жны выполняться условия сходимости (см. § 1, п. 4). При их соблюдении в результате решения получается
§ 2. О РЕШЕНИИ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ 163 значение того корня, который находится вблизи заданно- го начального приближения хв. Заметим, что для уменьшения погрешностей лучше сначала находить меньшие по модулю корни многочлена и сразу удалять их из уравнения, приводя его к меньшей степени. Поэтому, если отсутствует информация о вели- чинах корней, в качестве начальных приближений прини- мают числа 0, ±1 и т. д. 2. Комплексные корни. При использовании ЭВМ, как правило, имеется возможность работать с комплексными числами; поэтому изложенные методы могут быть исполь- зованы и для нахождения комплексных корней многочле- нов. Если в качестве начального приближения хв взять комплексное число, то последующие приближения и окон- чательное значение корня могут оказаться комплексными. Комплексные корни попарно сопряженные, и при их исключении порядок уравнения уменьшается на два, по- скольку оно делится сразу па квадратный трехчлен, т. е. F (х) — (.г2 + рх + q) (bnxn~2 + ... 4- Ь2) + 6,3? + Ьв. (5.6) Линейный остаток btx + b0 равен нулю, если р, q выра- зить с помощью найденных корней, т. е. р = —2с, q = с2 + d2, х — с± id. Представление (5.6) может быть также использовано для нахождения р, q, а значит, и для определения корней. Эта процедура лежит в основе метода Лина. Суть этого метода состоит в следующем. Предположим, что коэффи- циенты 6], Ъв равны пулю. Тогда, сравнивая коэффициен- ты при одинаковых степенях х Многочлена F(x) в выра- жениях (5.5) и (5.6), можно получить (для упрощения выкладок Ьп — ап = 1) bn—i an—t рч 6П_2 ап-2 рЬп—1 q^ ........ (5.7) Ъг = а2 — pb3 - qbe, р = (ал-qbs)/b2, q = a0/b2. Задаем начальные приближения для р, q, которые ис- пользуются для вычисления коэффициентов Ьп_2, ..., Ъ2. Затем из двух последних уравнений системы (5.7)' уточняем значения р, q. Итерационный процесс вычисле- ния этих величин продолжается до тех пор, пока их из- 11*
164 ГЛ. 5. НЕЛИНЕЙНЫЕ УРАВНЕНИЯ менения в двух последующих итерациях не станут малы- ми. Таким образом, в методе Лина проводится решение двух линейных уравнений относительно р и q по методу итераций Гаусса — Зейделя. Широко распространен также другой метод, основан- ный на выделении квадратичного множителя х2 + рх + q,— метод Бэрстоу. Он использует метод Ньютона для реше- ния системы двух уравнений, который будет рассмотрен ниже. § 3. Системы уравнений 1. Вводные замечания. В гл. 4 рассматривались систе- мы линейных уравнений. Многие практические задачи сводятся к решению системы нелинейных уравнений. Пусть для вычисления неизвестных х^ х2, ..., хп тре- буется решить систему п нелинейных уравнений -Г 1 (^1, *2*21 • • •) 3*71)' О, Б2 (З'Н ^'21 " • ч О, (5.8J Fп (хи х2, ..., хп) 0. В отличие от систем линейных уравнений не сущест- вует прямых методов решения нелинейных систем обще- го вида. Лишь в отдельных случаях систему (5.8) можно решить непосредственно. Например, для случая двух уравнений иногда удается выразить одно неизвестное через другое и таким образом свести задачу к решению одного нелинейного уравнения относительно одного не- известного. Для решения систем нелинейных уравнений обычно используются итерационные методы. Ниже будут рассмот- рены два из них —метод простой итерации и метод Ньютона. 2. Метод простой итерации. Систему уравнений (5.8J представим в виде 2Д /1 (ЛД, • • ч ^п)'> *2^2 /2 (2'1» *2*21 • • ч 1 г nV. /п(.Г11 ^2у • • ч
§ 3, СИСТЕМЫ УРАВНЕНИЙ 185 Алгоритм решения этой системы методом простой итера- ции напоминает метод Гаусса — Зейделя, используемый для решения систем линейных уравнений (см. гл. 4, §3). Пусть в результате предыдущей итерации получены значения неизвестных х^ = аи х2 = аг, ..., хп = дп. Тогда выражения для неизвестных на следующей итерации име- ют вид Ж, — /1 (fl,, Иг, . . ., Щ1) , Ж2 /г (ж,, Лг, • • •, Л«), Ж, Xi— J, Щ, ., Hn), Итерационный процесс продолжается до тех пор, пока из- менения всех неизвестных в двух последовательных ите- рациях пе станут малыми, т. е. абсолютные величины их разностей не станут мепьшпмп заданного малого числа. При использовании метода простой птерацпп успех во многом определяется удачным выбором начальных при- ближений неизвестных: они должны быть достаточно близкими к истинному решению. В протпвпом случае итерационный процесс может пе сойтись. 3. Метод Ньютона. Этот метод обладает гораздо более быстрой сходимостью, чем метод простой итерации. В слу- чае одного уравнения F(x) — 0 алгоритм метода Ньютона был легко получен путем записи уравнения касательной к кривой y~F(x). В основе метода Ньютона для системы уравнений лежит использование разложения функций Л(ж„ %г, ..., хп) в ряд Тейлора, причем члены, содержа- щие вторые (и более высоких порядков) производные, от- брасываются. Пусть приближенные значения неизвестных системы (5.8) (папример, полученные на предыдущей итерации) равны соответственно ait а2, ..., ап. Задача состоит в на- хождении приращений (поправок) к этим значениям Аж,, Аж2, ..., Дж„, благодаря которым решение системы (5.8) запишется в виде а?4ва| + Дж1, ж2 = щ + Дж2, ..хп — ап + &хп. (5.10) Проведем разложение левых частей уравнений (5.8) с учетом (5,10) в ряд Тейлора, ограничиваясь лишь
166 ГЛ. 5. НЕЛИНЕЙНЫЕ уравнения линейными членами относительно приращений: dF д1'\ * (^1» * • •) ^п) 1 (®i> • • • > ®п) 4” qx Дл\ 4- • • • 4* dF, 'dF F2 (^1’ • • • » ^я) F 2 (^1’ • • ч ^я) 4" д, Д*^1 4" • • • 4" Д^я» 1 п Fn (a-j, • •., ^п) Fn 'а^, ..., ои) 4" & Да-j 4* • • • 4" q Д-^я- 1 п Поскольку в соответствии с (5.8) левые части этих выражений должны обращаться в нуль, то приравняем нулю и правые части. Получим следующую систему ли- нейных алгебраических уравнений относительно прира- щений: dF 8F. OF, - — Да-, 4- -г-1 Д^я 4- .. • + ~-1 Д^п = — Л» дх 1 ох * От 1 1 2 П -дГ + ~дГ А‘Г2 + • • • + ~ Д‘Г» “ “ F2’ . Г2..................... (5Л1> dF„ ^г, ^Рп ДЛ 4- -г^ д*2 4- ... + -г^ Да-„ = - Fn- дх^ 1 дх2 2 qx^ « п Значения Ft, F2, ..Fn и их производные вычисляются прп xt — хг =аг, ..., хп — ап. Определителем системы (5.11) является якобиан 8Ft 8FX ~8^~ ••• дР* dPj_ J = дх^ ’ ‘' ахп дрп °Рп дх1 д1п Для существования единственного решения системы (5.11) он должен быть отличным от нуля па каждой ите- рации. Таким образом, итерационный процесс решения систе- мы уравнений (5.8) методом Ньютона состоит в опреде- лении приращений Да?1, Да-о, ..Да-П к значениям неиз- вестных на каждой итерации. Счет прекращается, если все приращения становятся малыми по абсолютной вели-
§ 3. СИСТЕМЫ УРАВНЕНИЙ 167 чине: max | Дж,} •< е. В методе Ньютона также важен удачный выбор начального приближения для обеспечения хорошей сходимости. Сходимость ухудшается с увеличе- нием числа уравнений системы. Рис. 28. Блок-схема метода Ньютона для двух систем уравнений В качестве примера рассмотрим использование метода Ньютона для решения системы двух уравнений FAx, у) = 0, (5.12) № 0 = 0. Пусть приближенные значения неизвестных равны а, Ъ. Предположим, что якобиан системы (5.12) при х — ау
168 ГЛ. 5. НЕЛИНЕЙНЫЕ УРАВНЕНИЯ у — Ь отличен от нуля, т. е. 6*\ SFi дх Sy 8F2 =/= 0. дх Sy Тогда следующие приближения неизвестных можно за- писать в виде dFo F ____L _ F 1 Sy 2 »у J1 SF. Г ____1 2 дх Величины, стоящие в правой части, вычисляются при х — а, у = Ь. Блок-схема метода Ньютона для решения системы двух уравнений изображена на рис. 28. В качестве исход- ных данных задаются начальные приближения неизвест- ных а, Ь, погрешность е и допустимое число итераций М. Если итерации сойдутся, то выводятся значения х, у; в противном случае происходит вывод х, у, М. Упражнения 1. Методом деления отрезка пополам найти с погрешностью 10~3 хотя бы один корень уравнений: а) 2ех = 5х; б) х2 cos 2х = «= -1. 2. Составить блок-схему решения уравнения методом хорд. 3. Найти с погрешностью 10~3 методом хорд хотя бы один ко- рень уравнений: а) 2х — 1g х — 7 = 0; б) ctg х — 0.1 = 0. 4. Построить блок-схему решения уравнения методом Ньютона. 5, Используя метод Ньютона, найти с погрешностью 10~3 хотя бы одни корень уравнений: a) tg (0.55х + 0.1) = х2; б) х3 — 0.2х2 + + 0.5х + 1.5 = 0. 6. С помощью метода простой итерации найти с погрешностью 10~® хотя бы один корень уравнений: а) 5х — 8 In х = 8; б) х2 = = sin х. 7. Определить глубину погружения деревянного шара радиуса 20 см, плавающего в воде. Плотность дерева 0.75 г/см3. 8. Найти процентное содержание углекислого газа в реакций 2СО + О2 2СО2, которое определяется уравнением (р/к2 — 1)х3 + + Зх — 2 = 0, где р — давление, к — постоянная равновесия. При- нять р = 1, к = 1.648.
ГЛАВА G МЕТОДЫ ОПТИМИЗАЦИИ § 1. Основные понятия 1. Определения. Под оптимизацией понимают процесс выбора наилучшего варианта из всех возможных. С точки зрения инженерных расчетов методы оптимизации позво- ляют выбрать наилучший вариант конструкции, наилуч- шее распределение ресурсов п т. п. В процессе решения задачи оптимизации обычно необ- ходимо найти оптимальные значения некоторых парамет- ров, определяющих данную задачу. При решении инже- нерных задач их принято называть проектными парамет- рами, а в экономических задачах их обычно называют параметрами плана. В качестве проектных параметров могут быть, в частности, значения линейных размеров объекта, массы, температуры и т. п. Число п проектных параметров х2, ..., хп. характеризует размерность (и степень сложности) задачи оптимизации. Выбор оптимального решения или сравнение двух аль- тернативных решений проводится с помощью некоторой зависимой величины (функции), определяемой проект- ными параметрами. Эта величина называется целевой функцией (или критерием качества). В процессе решения задачи оптимизации должны быть найдены такие значе- ния проектных параметров, при которых целевая функ- ция имеет минимум (или максимум). Таким образом, це- левая функция — это глобальный критерий оптимально- сти в математических моделях, с помощью которых опи- сываются инженерные или экономические задачи. Целевую функцию можно записать в виде и-= f(xh х2, ..хп). (6.1) Примерами целевой функции, встречающимися в инже- нерных и экономических расчетах, являются прочность или масса конструкции, мощность установки, объем вы- пуска продукции, стоимость перевозок грузов, прибыль и I. п. . .
170 ГЛ. 6. МЕТОДЫ ОПТИМИЗАЦИИ В случае одного проектного параметра (п=1) целе- вая функция (6.1) является функцией одной переменной, и ее график — некоторая кривая на плоскости. При п = 2 целевая функция является функцией двух переменных, и ее графиком является поверхность. Следует отметить, что целевая функция не всегда мо- жет быть представлена в виде формулы. Иногда она мо- жет принимать только некоторые дискретные значения, задаваться в виде таблицы и т. п. Во всех случаях она должна быть однозначной функцией проектных пара- метров. Целевых функций может быть несколько. Например, при проектировании изделий машиностроения одновре- менно требуется обеспечить максимальную надежность, минимальную материалоемкость, максимальный полезный объем (или грузоподъемность). Некоторые целевые функ- ции могут оказаться несовместимыми. В таких случаях необходимо вводить приоритет той пли иной целевой функции. 2. Задачи оптимизации. Можно выделить два типа за- дач оптимизации — безусловные и условные. Безусловная задача оптимизации состоит в отыскании максимума или минимума действительной функции (6.1) от п действи- тельных переменных и определении соответствующих зна- чений аргументов на некотором множестве о п-мерного пространства. Обычно рассматриваются задачи минимиза- ции; к ним легко сводятся и задачи на поиск максимума путем замены знака целевой функции на противопо- ложный. Условные задачи оптимизации, или задачи с ограни- чениями,— это такие, при формулировке которых задают- ся некоторые условия (ограничения) на множестве о. Эти ограничения задаются совокупностью некоторых функций, удовлетворяющих уравнениям или неравенствам. Ограничения-равенства выражают зависимость между проектными параметрами, которая должна учитываться при нахождении решения. Эти ограничения отражают за- коны природы, наличие ресурсов, финансовые требования и т. п. В результате ограничений область проектирования а, определяемая всеми п проектными параметрами, мо- жет быть существенно уменьшена в соответствии с фи- зической сущностью задачи. Число тп ограничений-ра- венств может быть произвольным. Их можно записать
§ 1. ОСНОВНЫЕ ПОНЯТИЯ 171 б виде gi(xi, xz, ..., z„) = 0, ^2(^1, Хг, ..., хп) = 0, (6.2)' gm (*£1, *^2, • • •» Л-п) 0" В ряде случаев из этих соотношений можно выразить од- ни проектные параметры через другие. Это позволяет ис- ключить некоторые параметры из процесса оптимизации, что приводит к уменьшению размерности задачи и облег- чает ее решение. Аналогично могут вводиться также ограничения-неравенства, имеющие вид xz, ..., xn)<blt ^2, ..., хн)<Ь2, (6.3) «Л^фА(^1, ^2, Xn)<bk. Следует отметить особенность в отыскании решения при наличии ограничений. Оптимальное решение здесь может соответствовать либо локальному экстремуму (мак- симуму или минимуму) внутри области проектирования, либо значению целевой функции на границе области. Если же ограничения отсутствуют, то ищется оптималь- ное решение на всей области проектирования, т. е. гло- бальный экстремум. Теория и методы решения задач оптимизации при на- личии ограничений составляют предмет исследования од- ного из важных разделов прикладной математики — ма- тематического программирования, некоторые элементы которого будут рассмотрены в § 4. 3. Пример постановки задачи. Пусть требуется спроек- тировать контейнер в форме прямоугольного параллеле- пипеда объемом V — 1 м3, причем желательно израсходо- вать на его изготовление как можно меньше материала. При постоянной толщине стенок последнее условие означает, что площадь полной поверхности контейнера S должна быть минимальной. Если обозначить через xt, х2, х» ддины ребер контейнера, то задача сведется к мииими- вации функции S == 2 (Х1Х2 -Ь xzxt + х&з). (6.4)'
172 ГЛ. в. МЕТОДЫ ОПТИМИЗАЦИИ Эта функция в данном случае является целевой, а ус- ловие V — 1 — ограничением-равенством, которое позволя- ет исключить один параметр; V = хгх2х3 = 1, х3= S = 2 [х^ + -^ + (6.5) Задача свелась к минимизации функции двух перемен- ных. В результате решения задачи будут найдены значе- ния проектных параметров xlt х2, а затем и х3. В приве- денном примере фактически получилась задача безуслов- ной оптимизации для целевой функции (6.5), поскольку ограничение-равенство было использовано для исключе- ния параметра х3. Вместе с тем можно рассматриваемую задачу услож- нить и поставить дополнительные условия. Например, по- требуем, чтобы данный коцт.ейнер имел 5длину не менее 2 м. Это условие запишется в виде ограничения-неравен- ства на один из параметров, например xt > 2. (6.6) Таким образом, мы получили следующую условную зада- чу оптимизации; минимизируя функцию (6.5) и учиты- вая ограничение-неравенство (6.6), иайти оптимальные значения параметров плана xlf х2 (xt О, х2 0). § 2. Одномерная оптимизация 1. Задачи на экстремум. Одномерная задача оптимиза- ции в общем случае формулируется следующим образом. Найти наименьшее (или наибольшее) значение целевой функции У“=/(ж), заданной на множестве о, и опреде- лить значение проектного параметра при котором целевая функция принимает экстремальное значение. Су- ществование решения поставленной задачи вытекает из следующей теоремы. Теорема Вейерштрасса. Всякая функция fix'), непрерывная на отрезке [а, &], принимает на этом отрезке наименьшее и наибольшее значения, т. е. на отрезке [с, 61 существуют такие точки Xi и х2, что для любого х е [о, 6J имеют место неравенства
g 2. ОДНОМЕРНАЯ ОПТИМИЗАЦИЯ 173 Эта теорема не доказывает единственности решения. Не исключена возможность, когда равные экстремальные значения достигаются сразу в нескольких точках данного отрезка. В частности, такая ситуация имеет место для периодической функции, рассматриваемой на отрезке, со- держащем несколько периодов. Будем рассматривать методы оптимизации для разных классов целевых функций. Простейшим из них является случай дифференцируемой функции f(x) на отрезке [я, 6], причем функция задана в виде аналитической зависимо- сти у = f(x), и может быть найдено явное выражение для ее производной f(x). Нахождение экстремумов таких- функций можно проводить известными из курса высшей математики методами дифференциального исчисления. Напомним вкратце этот путь. Функция /(х) может достигать своего наименьшего и наибольшего значений либо в граничных точках отрезка [а, £>], либо в точках минимума и максимума. Последние точки обязательно должны быть критическими, т. е. про- изводная f(x) в этих точках обращается в нуль,— это необходимое условие экстремума. Следовательно, для определения наименьшего или наибольшего значений функции f(x) на отрезке [а, 6] нужно вычислить ее зна- чения во всех критических точках данного отрезка и в его граничных точках и сравнить полученные значения; наименьшее или наибольшее из них и будет искомым значением. Пример. Найти наименьшее и наибольшее значения функции f(x) = x3/3 — xz на отрезке [1, 3]. Решение. Вычислим производную этой функции: f (х) = xz — 2х. Приравнивая ее нулю, найдем критические точки: а-2 — 2х = 0, xt = 0, хг = 2. Точка ж = 0 лежит вне рассматриваемого отрезка, поэто- му для анализа оставляем три точки: а = 1, хг = 2, 6 = 3. Вычисляем значения функции в этих точках: /(1) = -2/3, /(2) =-4/3, /(3) = 0. Сравнивая полученные величины, находим, что наимень- шего значения функция /(х) достигает в точке х = 2, наибольшего — в точке х = 3, т. е. /тш ==/(2)=» —4/3, /пш = /(3)=-0.
174 ГЛ. 6. МЕТОДЫ ОПТИМИЗАЦИИ В рассмотренном примере уравнение f (х) = 0 для отыскания критических точек удалось решить непосред- ственно. Для более сложных видов производной функции /' (х) необходимо использовать численные методы реше- ния нелинейных уравнений. Как уже отмечалось, используемый здесь метод, осно- ванный на вычислении пронзводно.й целевой функции, требует ее аналитического представления. В других слу- чаях, когда целевая функция задана в табличном виде или может быть вычислена при некоторых дискретных значениях аргумента, используются различные методы поиска. Они основаны на вычислении целевой функции в отдельных точках и выборе среди них наибольшего или наименьшего значений. Существует ряд алгоритмов реше- ния данной задачи. Рассмотрим некоторые из них. 2. Методы поиска. Численные методы поиска экстре- мальных значений функции рассмотрим на примере на- хождения минимума функции ](х) на отрезке [а, &]. Бу- дем предполагать, что целевая функция унимодальна, т. е. на данном отрезке она имеет только один минимум. Отметим, что в инженерно!! практике обычно встречают- ся именно такие целевые функции. Процесс решения задачи методом поиска состоит в последовательном сужении интервала изменения проект- ного параметра, называемого интервалом неопределенно- сти. В начале процесса оптимизации его длина равна Ъ — а, а к концу она должна стать менее заданного допу- стимого значения е, т. е. оптимальное значение проектно- го параметра должно находиться в интервале неопреде- ленности — отрезке [хп, xn+i], причем xn+i — хп < е. Наиболее простым способом сужения интервала не- определенности является деление его на некоторое число равных пастей с последующим вычислением значений це- левой функции в точках разбиения. Пусть п — число эле- ментарных отрезков, h = (b — a)/n — шаг разбиения. Вы- числим значения целевой функции ул = /„(х) в узлах xk = a + kh (k = 0, 1, ..., п). Сравнивая полученные зна- чения f(xh),‘ найдем среди них наименьшее = Число Шп “ yt можно приближенно принять за наи- меньшее значение целевой функции /(а:) на отрезке [а, 6]. Очевидно, что близость шп к минимуму m зависит от чис- ла точек, п для непрерывной функции f(x) lim mn ==
§ 2. ОДНОМЕРНАЯ ОПТИМИЗАЦИЯ 175 т. е. с увеличением числа точек разбиения погрешность в определении минимума стремится к нулю. В данном методе, который можно назвать методом перебора, основная трудность состоит в выборе п и оцен- ке погрешности. Можно, например, провести оптимизацию с разными шагами и исследовать сходимость такого ите- рационного процесса. Но это трудоемкий путь. Более экономичным способом уточнения оптимального параметра является использование свойства унимодаль- ности целевой функции, которое позволяет постро- ить процесс сужения ин- тервала неопределенности. Пусть, как и ранее, среди всех значений унимодаль- ной функции р==/(^), вы- численных в узлах xh (к=* = 0, 1, ..., и), наимень- шим оказалось у,. Это озна- чает, что оптимальное зна- чение проектного парамет- рис 2д ра находится на отрезке [xt-i, л-,+)] (рпс. 29), т. е. интервал неопределенности су- зился до длины двух шагов. Если размер интервала недо- статочен для удовлетворения заданной погрешности, т. е. х,+1 — Xi-t > е, то его снова можно уменьшить путем но- вого разбиения. Получится интервал, равный двум дли- нам нового шага разбиения, и т. д. Процесс оптимизации продолжается до достижения заданного размера интерва- ла неопределенности. В описанном методе общего поиска можно с помощью некоторой изобретательности, а также разумного выбора шага разбиения добиться эффективного поиска. Например, пусть начальная длина интервала неопре- деленности равна b — а = 1. Нужно добиться его умень- шения в 100 раз. Этого легко достичь разбиением интер- вала на 200 частей. Вычислив значения целевой функции /(жА) (А’ = 0, 1, ..200), найдем ее минимальное значе- ние /(х<). Тогда искомым интервалом неопределенности будет отрезок x1+i]. Однако можно поступить и иначе. Сначала разобьем отрезок [а, 6] на 20 частей и найдем интервал неопреде- ленности длиной 0.1, при этом мы вычислим значения целевой функции в точках хк = а + 0.05А: (к = 0, 1, ...
176 ГЛ. 6. МЕТОДЫ ОПТИМИЗАЦИИ ..., 20). Теперь отрезок [х,-!, xi+l] снова разобъем на 20 частей; получим искомый интервал длиной 0.01, причем значения целевой функции вычисляем в точках хк~ = хг_, + 0.005А" (/«== 1, 2,'..., 19) (в точках х,-! и х<+1 значения /(х) уже найдены). Таким образом, во втором случае в процессе оптимизации произведено 40 вычисле- ний значений целевой функции против 201 в первом слу- чае, т. е. способ разбиения позволяет получить существен- ную экономию вычислений. Существует ряд специальных методов поиска опти- мальных решений с разными способами выбора узлов и сужения интервала неопределенности: метод деления отрезка пополам, метод золотого сечения и др. Рассмот- рим один из них. 3. Метод золотого сечения. При построении процесса оптимизации стараются сократить объем вычислений и время поиска. Этого достигают обычно путем сокращения количества вычислений ; (пли измерений — при проведе- нии эксперимента) значений целевой функции /(х). Одним из наиболее эффективных методов, в которых при ограниченном количестве вычислений /(х) достигается наилучшая точность, является метод золотого сечения. Он состоит в построении последовательности отрезков [а0, &о], (щ, &J, ..., стягивающихся к точке минимума функции /(х). На каждом шаге, за исключением первого, вычисле- ние значения функции /(х) проводится лишь один раз. Эта точка, называемая золотым сечением, выбирается спе- циальным образом. | f(x^ | { I f(x^ ___I______I 1.1 - Illi, xij X2 .q^~Sq zZg x, a 6 /Рис. 30 Поясним сначала идею метода геометрически, а затем выведем необходимые соотношения. На первом шаге про- цесса оптимизации внутри отрезка [о0, М (рпс. 30, а) выбираем две внутренние точки х, и х2 и вычисляем зна- чения целевой функции /(xt) и /(х2). Поскольку в дан- ном случае /(xi)</(x2), очевидно, что минимум располо- жен на одном и'з прилегающих к х2 отрезков [а0, хг] или
§ 2. ОДНОМЕРНАЯ ОПТИМИЗАЦИЯ 177 [tfj, х2]. Поэтому отрезок \х2, 60] можно отбросить, сузив тем самым первоначальный интервал неопределенности. Второй шаг проводим на отрезке [аъ (рис. 30,6), где 01 = «о, bi = х2. Нужно снова выбрать две внутренние точки, но одна из них (xt) осталась из предыдущего ша- га, поэтому достаточно выбрать лишь одну точку х3, вы- числить значение f(xs) и провести сравнение. Поскольку здесь }(х3)> f (х^, ясно, что минимум находится на от- резке [х3, 6J. Обозначим этот отрезок [а2, 62], снова выбе- рем одну внутреннюю точку и повторим процедуру суже- ния интервала неопределенности. Процесс оптимизации повторяется до тех пор, пока длина очередного отрезка [а„, &п] не станет меньше заданной величины 8. Теперь рассмотрим способ размещения внутренних точек на каждом отрезке [щ, fej. Пусть длина интервала неопределенности равна Z, а точка деления делит его на части llt l2: li > Z2, I = li + Z2. Золотое сечение интервала неопределенности выбирается так, чтобы отношение дли- ны большего отрезка к длине всего интервала равнялось отношению длины меньшего отрезка к длине большего от- резка: Из этого соотношения можно найти точку деления, определив отношение Z2/Z,. Преобразуем выражение (6.7) и найдем это значение: zx2=z2z, if ~ + ljt If + Ц2-/? = 0х z2 _ — ! ± V5 li 2 ' Поскольку нас интересует только положительное реше- ние, то А = Л = -1.+ V5 ~ О.618. 1 2 Отсюда h « 0.618Z, Z2 « 0.382Z. Поскольку заранее неизвестно, в какой последователь- ности (Z, и Z2 или lt и Zi) делить интервал иеопределен,- Л. И. Турчак
178 ГЛ. С. МЕТОДЫ ОПТИМИЗАЦИИ пости, то рассматривают внутренние точки, соответствую- щие двум этим способам деления. На рис. 30, а точки де- ления Xi и х2 выбираются с учетом полученных значений для частей отрезка. В данном случае имеем Xt — а0 = Ьо — Хг — O.382do, Ьй — Xi — Хг — со = O.618do, do = bo — Со. После первого шага оптимизации получается новый интервал неопределенности — отрезок , 6J (см. рис. 30, б\. Можно показать, что точка Xi делит этот отре- зок в требуемом отношении, при этом bi Xi== 0.382tZi, di == bi Ci* Для этого проведем очевидные преобразования: bl - Xi — Хг — Xi =(bo — Со) — (Xi — Со)— (б0 ~ Хг) = = do - O.382do - O.382do = O.236do, di = хг — Co = O.618tZo, bi-Xi = 0.236(^/0.618) = 0.382^. Вторая точка деления x3 выбирается на таком же рас- стоянии от левой границы отрезка, т. е. ха — ал =0.382^. И снова интервал неопределенности уменьшается до раз- мера dz— Ьг — аг — bi — xa = 0.618di = 0.6182tZe. Используя полученные соотношения, можно записать координаты точек деления риг отрезка [с*, 6*] на к + 1-м шаге оптимизации (p<z)r р~ 0.618с*+ 0.3826*, л (6-8) г «= 0.382с* + 0.6186*. При этом длина интервала неопределенности равна d* * 6* — a* e О.618Мо. (6.9) Процесс оптимизации заканчивается при выполнении ус- ловия dK < е. При этом проектный параметр оптимизации составляет а* < х < bh. Можно в качестве оптимального значения принять x — ak (или х — Ьц, или х — (ак+ ЬК)/2 и т. п.).
§ 2. ОДНОМЕРНАЯ ОПТИМИЗАЦИЯ 179 На рис. 31 представлена блок-схема процесса одномер- ной оптимизации методом золотого сечения. Здесь у, z — точки деления отрезка [а, 6], причем y<z. В результате выполнения алгоритма выдается оптимальное значение Рис. 31. Блок-схема метода золотого сечения проектного параметра .г, в качестве которого принимается середина последнего интервала неопределенности. Пример. Для оценки сопротивления дороги движе- нию автомобиля при скорости v км/ч можно использовать 2 1 эмпирическую формулу/(г) = 24 — у v +^-1?(для шоссе). 12*
180 ГЛ. 6. МЕТОДЫ ОПТИМИЗАЦИИ Определить скорость, при которой сопротивление будет минимальным. Решение. Это простейшая задача одномерной опти- мизации. Здесь сопротивление /(р)—целевая функция, скорость v — проектный параметр. Данную задачу легко решить путем нахождения минимума с помощью вычис- ления производной, поскольку /(р)—функция дпфферен- цируемая. Действительно, /' (р) == — 4 + 4гг = 0, v = 10 км/ч. О ои Проиллюстрируем на этой простейшей задаче метод золотого сечения. Первоначально границы интервала не- определенности примем равными а = 5, b = 20. Результа- ты вычислений представим в виде таблицы (табл. 5). Здесь обозначения аналогичны используемым в блок-схе- ме (см. рис. 31). Расчеты проводятся в соответствии с блок-схемой с погрешностью е = 1 км/ч. Таблица 5 Шаг а V Z Ъ А в Ь—а 1 5 10.7 14.3 20 20.7 21.3 15 2 5 8.6 10.7 14.3 20.73 20.68 9.3 3 8.6 10.7 12.1 14.3 20.68 20.81 5.7 4 8.6 9.9 10.7 12.1’ 20.66 20.68 3.5 5 8.6 9.4 9.9 10.7 20.68 20.66 2.1 6 9.4 10.7 1.3 Приведем решение для первого этапа: у = 0.618-5 + 0.382-20 «10.7, z = 0.382-5 + 0.618-20 « 14.3, А = 24 - -I • Ю.7 + 4г • Ю.72 « 20.7, о оО 1 В = 24 - 4.14.3 + 4г • 14.33 «21.3, о 30 1 А<В. При данной невысокой точности вычислений достаточно четырех шагов оптимизации. В этом случае искомое зна- чение скорости равно .р-= £8.6 +10.7)/2 9.65 км/ч, После
§ 3. МНОГОМЕРНЫЕ ЗАДАЧИ ОПТИМИЗАЦИИ 181 пяти шагов этот результат получается с меньшей погреш- ностью: v = (9.4 + 10.7)/2 = 10.05 км/ч. § 3. Многомерные задачи оптимизации 1. Минимум функции нескольких переменных. В § 2 мы рассмотрели одномерные задачи оптимизации, в ко- торых целевая функция зависит лишь от одного аргумен- та. Однако в большинстве реальных задач оптимизации, представляющих практический интерес, целевая функция зависит от многих проектных параметров. В частности, рассмотренная выше задача об определении сопротивле- ния дороги движению автомобиля на самом деле являет- ся многомерной, поскольку здесь наряду со скоростью имеются и другие проектные параметры (качество по- крытия, уклон, температура и др.). Минимум дифференцируемой функции многих пере- менных w = /(zt, Xi, ..., хп) можно найти, исследуя ее значения в критических точках, которые определяются из решения системы дифференциальных уравнений 2L = 0, = ...,-^--0, (6.10) dxt 1 дх^ 1 5 дхп ' ' Пример. В § 1 (п. 3) была рассмотрена задача об определении оптимальных размеров контейнера объемом 1 м3. Задача свелась к минимизации его полной поверх- ности, которая в данном случае является целевой функ- цией S=2/x А + 7- + Г")- С6-11) Решение. В соответствии с (6.10) получим систему Отсюда находим х^ = х2 — 1 м, хэ = l/fx^) = 1 м. Таким образом, оптимальной формой контейнера в данном слу- чае является куб, длина ребра которого равна 1 м.
182 ГЛ. 6. МЕТОДЫ ОПТИМИЗАЦИИ Рассмотренный метод можно использовать лишь для дифференцируемой целевой функции. Но и в этом случае могут возникнуть серьезные трудности при решении си- стемы нелинейных уравнений (6.10). Во многих случаях никакой формулы для целевой функции нет, а имеется лишь возможность определения ее значений в произвольных точках рассматриваемой об- ласти с помощью некоторого вычислительного алгоритма или путем физических измерений. Задача состоит в при- ближенном определении наименьшего значения функции во всей области при известных ее значениях в отдельных точках. Для решения подобной задачи в области проектирова- ния G, в которой ищется минимум целевой функции н = — f(xit х2, хп), можно ввести дискретное множество точек (узлов) путем разбиения интервалов изменения параметров xit х2, ..хп на части с шагами hit h2, ..., hn. В полученных узлах можно вычислить значения целевой функции и среди этих значений найти наименьшее. Следует отметить, что такой метод может быть исполь- зовав для функции одной переменной. В многомерных за- дачах оптимизации, где число проектных параметров до- стигает пяти и более, этот метод потребовал бы слишком большого объема вычислений. Оценим, например, объем вычислений с помощью об- щего поиска при решении задачи оптимизации функцпи пяти неизвестных. Пусть вычисление ее значения в од- ной точке требует 100 арифметических операций (на практике это число может достигать нескольких тысяч и больше). Область проектирования разделим на 100 ча- стей в каждом из пятп направлений, т. е. число расчет- ных точек равно 1015, т. е. приблизительно 1010. Число арифметических операций тогда равно 10*% и для реше- ния этой задачи на ЭВМ с быстродействием 1 млн. оп./с потребуется 10е с (более 10 сут) машинного времени. Проведенная оценка показывает, что такие методы об- щего поиска с использованием сплошного перебора для решения многомерных задач оптимизации не годятся. Не- обходимы специальные численные методы, основанные на целенаправленном поиске. Рассмотрим некоторые из них. 2. Метод покоординатного спуска. Пусть требуется найти наименьшее значение целевой функции u~f(xi, z2, • • •» хп). В качестве начального приближения выберем в n-мерном пространстве некоторую точку Мв с координа-
§ 3. МНОГОМЕРНЫЕ ЗАДАЧИ ОПТИМИЗАЦИИ 183 тами ^i0), х^\ ..., х(,£0>. Зафиксируем все координаты функции и, кроме первой. Тогда и = / (.тг, х^\ ^п0)) — функция одной переменной лд. Решая одномерную зада- чу оптимизации для этой функции, мы от точки Мо пере- ходим к точке Л/jз,2П), ...,х^), в которой функ- ция и принимает наименьшее значение по координате Xi при фиксированных остальных координатах. В этом состо- ит первый шаг процесса оптимизации, состоящий в спус- ке по координате хл. Зафиксируем теперь все координаты, кроме х2, и рас- смотрим функцию этой переменной u=/(xi1), г2, .?з0), ...,^п0)). Снова решая одномерную задачу оптимизации, находим ее наименьшее значение при х2 = х^г т. е. в точ- ке М2 Сг1Х), ЯзЧ • • •> 2п0))- Аналогично проводит- ся спуск по координатам х2, xlt ..., х„, а затем процедура снова повторяется от х, до хп и т. д. В результате этого процесса получается последовательность точек Мо, Mt,..., в которых значения целевой функции составляют моно- тонно убывающую последовательность /(Мо)> ... На любом Л'-м шаге этот процесс можно прервать, И зна- чение f(Mh) принимается в качестве наименьшего значе- ния целевой функции в рассматриваемой области. Таким образом, метод покоординатного спуска сводит задачу о нахождении наименьшего значения функции многих переменных к много- кратному решению одномер- ных задач оптимизации по каждому проектному пара- метру. Данный метод легко про- иллюстрировать геометриче- ски для случая функции двух переменных z = f(x, у), опи- сывающей некоторую по- верхность в трехмерном про- странстве. На рис. 32 нане- сены линии уровня этой поверхности. Процесс оптимиза- ции в этом случае проходит следующим образом. Точка Ми(х0, у о) описывает начальное приближение. Проводя спуск по координате х, попадем в точку Mi(xlt у0). Далее, двигаясь параллельно оси ординат, придем в тбчку М2(х2, yi) и т. д. Рис. 32. Спуск по координатам
184 ГЛ. 6. МЕТОДЫ ОПТИМИЗАЦИИ Рис. 33. Блок-схема метода по- координатного спуска Важным здесь является вопрос о сходимости рассмат- риваемого процесса оптимизации. Другими словами, бу- дет ли последовательность значений целевой функции /(Л/о), ... сходиться к наименьшему ее значению в данной области? Это зависит от вида самой функции и выбора начального прибли- жения. Для функции двух пере- менных очевидно, что метод неприменим в случае нали- чия изломов в линиях уров- ня. Это соответствует так на- зываемому оврагу на поверх- ности. Здесь возможен слу- чай, когда спуск по одной координате приводит на «дно» оврага. Тогда любое движение вдоль другой коор- динаты ведет к возрастанию функции, соответствующему подъему па «берег» оврага. Поскольку поверхности типа «оврага» встречаются в инже- нерной практике, то при ис- пользовании метода покоор- динатного спуска следует убе- диться, что решаемая зада- ча не имеет этого недостатка. Для гладких функций при удачно выбранном началь- ном приближении (в некото- рой окрестности минимума)' процесс сходится к миниму- му. К достоинствам метода покоординатного спуска сле- дует также отнести возмож- ность использования простых алгоритмов одномерной опти- мизации. Блок-схема метода покоординатного спуска представлена на рис. 33. 3. Метод градиентного спуска. В природе мы нередко наблюдаем явления, сходные с решением задачи на на- хождение минимума. К ним относится, в частности, сте- кание воды с берега котлована на дно. Упростим ептуа-
§ 3. МНОГОМЕРНЫЕ ЗАДАЧИ ОПТИМИЗАЦИИ 185 цию, считая, что берега котлована «унимодальны», т. е. они гладкие и не содержат локальных углублений пли выступов. Тогда вода устремится вниз в направлении наибольшей крутизны берега в каждой точке. Переходя на математический язык, заключаем, что направление наискорейшего спуска соответствует направ- лению наибольшего убывания функции. Из курса мате- матики известно, что направление наибольшего возраста- ния функции двух переменных и = /(ж, у) характеризу- ется ее градиентом 1 ди , ди gralJ и _ _ + — е„, где Ci, с2 — единичные векторы (орты)' в направлении ко- ординатных осей. Следовательно, направление, противо- положное градиентному, укажет путь, ведущий вниз вдоль наиболее крутой линии. Методы, основанные на вы- боре пути оптимизации с помощью градиента, называют- ся градиентными. Идея метода градиентного спуска состоит в следую- щем. Выбираем некоторую начальную точку и вычисляем в ней градиент рассматриваемой функции. Делаем шаг в направлении, обратном градиентному. В результате приходим в точку, значение функции в которой обычно меньше первоначального. Если это условие не выполне- но, т. е. значение функции не изменилось либо даже воз- росло, то нужно уменьшить шаг. В новой точке процеду- ру повторяем: вычисляем градиент и снова делаем шаг в обратном к нему направлении. Процесс продолжается до получения наименьшего значения целевой функции. Мо- мент окончания поиска наступит тогда, когда движение из полученной точки с любым шагом приводит к возра- станию значения целевой функции. Строго говоря, если минимум функции достигается внутри рассматриваемой области, то в этой точке градиент равен нулю, что также может служить сигналом об окончании процесса опти- мизации. В описанном методе требуется вычислять на каждом шаге оптимизации градиент целевой функции /(ж,, т2, ... • • •> %п\: grad / - | , Qx t .. tJ 4 1 4 Формулы для частных производных можно получить в явном виде лишь в том случае, когда целевая функция
185 ГЛ. 6 МЕТОДЫ ОПТИМИЗАЦИИ задана аналитически. В противном случае эти производ- ные вычисляются с помощью численного дифференциро- вания: ~дх~ Дх- • * • ’ • • •» ^п) - i г — /(^, ..., хь ..тп)], i = 1, 2, ...,п. При использовании градиентного спуска в задачах оптимизации основной объем вычислений приходится обычно на вычисление градиента целевой функции в каж- дой точке траектории спуска. Поэтому целесообразно уменьшить количество таких точек без ущерба для само- го решения. Это достигается в некоторых методах, явля- ющихся модификациями градиентного спуска. Одним из них является метод наискорейшего спуска. Согласно это- му методу, после определения в начальной точке направ- ления, противоположного градиенту целевой функции, в этом направлении делают не один шаг, а двигаются до тех пор, пока целевая функция убывает, достигая таким образом минимума в некоторой точке. В этой точке снова определяют направление спуска (с помощью градиента) и ищут новую точку минимума целевой функции и т. д. В этом методе спуск происходит гораздо более крупными шагами и градиент функции вычисляется в меньшем числе точек. Заметим, что метод наискорейшего спуска сводит мно- гомерную задачу оптимизации к последовательности одно- мерных задач на каждом шаге оптимизации, как и в слу- чае покоординатного спуска. Разница состоит в том, что здесь направление одномерной оптимизации определяется градиентом целевой функции, тогда как покоординатный спуск проводится на каждом шаге вдоль одного из коор- динатных направлений. Советуем читателю для лучшего понимания метода наискорейшего спуска построить блок-схему, аналогичную представленной на рпс. 33 для метода покоординатного спуска. § 4. Задачи с ограничениями I. Метод штрафных функций. Решение задач математи- ческого программирования значительно более трудоемко по сравнению с задачами безусловной оптимизации. Огра- ничения типа равенств илн неравенств требуют их учета
g 4. ЗАДАЧИ С ОГРАНИЧЕНИЯМИ 187 па каждом шаге оптимизации. Одним из направлении в методах решения задач математического программирова- ния является сведение их к последовательности задач безусловной минимизации. К этому направлению относит- ся, в частности, метод штрафных функций. Сущность метода состоит в следующем. Пусть /(.-Си х2, ..., х„)— целевая функция, для которой нужно найтп минимум m в ограниченной области D {xlt х2, ... ,.., xn^D). Данную задачу заменяем задачей о безус- ловной минимизации однопараметрического семейства функций F(x, Р) = /{х) + -р-ф (т), х={х„ ха,..., хп}. (6.12) При этом дополнительную {штрафную) функцию ср(х) выберем таким образом, чтобы при р -> О решение вспо- могательной задачи стремилось к решению исходной пли, по крайней мере, чтобы их минимумы совпадали: min F{x, Р) -* m при р -> 0. Штрафная функция <р(г) должна учитывать ограни- чения, которые задаются при постановке задачи оптими- зации. В частности, если имеются ограничения-неравен- ства вида gi{xi, х2, ..., (/ = 1, 2, ..J), то в ка- честве штрафной можно взять функцию, которая: 1) рав- на нулю во всех точках пространства проектирования, удовлетворяющих заданным ограничениям-неравенствам; 2) стремится к бесконечности в тех точках, в которых эти неравенства не выполняются. Таким образом, при вы- полнении ограничений-неравенств функции f{x) и F{x, р) имеют один и тот же минимум. Если хотя бы одно нера- венство не выполнится, то вспомогательная целевая функ- ция F(x, р) получает бесконечно большие добавки, и ее значения далеки от минимума функции f(x). Другими словами, при несоблюдении ограничений-неравенств на- лагается «штраф». Отсюда и термин «метод штрафных функций». Теперь рассмотрим случай, когда в задаче оптимиза- ции заданы ограничения двух типов — равенства и нера- венства: £,(*) = 0, г=1, 2, .... Z; (6.13) hj {х) >0, J—1,2,...,J; х = {бГ1, х2, ..., хпУ. В этом случае в качестве вспомогательной целевой функ-
188 ГЛ. G. МЕТОДЫ ОПТИМИЗАЦИИ цип, для которой формулируется задача безусловной опти- мизации во всем n-мерпом пространстве, принимают функцию I F ₽)=/и + 4 2 si и + 2 ю i1 —sisn hi ( ')ь р U=i 1=1 (6.14) Здесь взята такая штрафная функция, что прп выполне- нии условий (6.13) она обращается в пуль. Если же эти условия нарушены (т. е. g>(^)^0, hj(x)<Q и signh^x) =* = — 1), то штрафная функция положительна. Она увели- чивает целевую функцию j{x) тем больше, чем больше нарушаются условия (6.13). Прп малых значениях параметра р впе области D функция F(x, р) сильно возрастает. Поэтому ее минимум может быть либо внутри D, либо снаружи вблизи границ этой области. В первом случае минимумы функций F(x, Р) и f(x) совпадают, поскольку дополнительные члены в (6.14) равны нулю. Если мпппмум функции F (х, Р) находится впе D, то минимум целевой функции j(x) лежит на границе D. Можно прп этом построить по- следовательность рА -> О такую, что соответствующая по- следовательность минимумов функции F(x, р) будет стре- миться к минимуму функции /(.г). Таким образом, задача оптимизации для целевой функ- ции j(x) с ограничениями (6.13) свелась к последова- тельности задач безусловной оптимизации для вспомога- тельной функции (6.14), решение которых может быть проведено с помощью методов спуска. Прп этом строится итерационный процесс прп [3 -*• 0. Укрупненная блок-схема решения задачи математиче- ского программирования с использованием метода штраф- ных функций представлена на рис. 34. В качестве исход- ных данных вводятся начальное приближение искомого вектора х* — [х^ хг, ...,хп\, начальное значение пара- метра р и некоторое малое число е, характеризующее точность расчета. На каждом шаге итерационного про- цесса определяется оптимальное значение х* вектора х, прп этом в качестве начального приближения принима- ется результат предыдущей итерации. Значения парамет- ра р каждый раз уменьшаются до тех пор, пока значение штрафной функции не станет заданной малой величиной.
§ 4. ЗАДАЧИ С ОГРАНИЧЕНИЯМИ 189 В этом случае точка х* достаточно близка к границе об- ласти D и с необходимой точностью описывает оптималь- ные значения проектных параметров. Если точка мини- мума находится внутри области D, то искомый результат будет получен сразу после первого шага, поскольку в данном случае ф(.г*) = 0. Рис. 34. Блок-схема метода штрафных функций 2. Линейное программирование. До сих пор при рас- смотрении задач оптимизации мы не делали никаких пред- положений о характере целевой функции и виде ограни- чений. Важным разделом математического программиро- вания является линейное программирование,, изучающее задачи оптимизации, в которых целевая функция явля- ется линейной функцией проектных параметров, а огра- ничения задаются в впде линейных уравнений и нера- венств. Стандартная (каноническая) постановка задачи линей- ного программирования формулируется следующим обра- зом: найти значения переменных хЛ, х2, ..., хп, которые: 1) удовлетворяют системе линейных уравнений a^Xi + «12^2 +... + alnxn = bt, a2iXi 4" а22х2 -Ь... 4~ а2пхп = Ь2, “I” • • • "Ь Clmn^n == (6.15)
190 ГЛ. С. МЕТОДЫ ОПТИМИЗАЦИИ 2) являются неотрицательными, т. е. хл > 0, х2 0, .яп>0; (6.16) 3) обеспечивают наименьшее значение линейной целе- вой функции /(л-j, Х2, . . Хп) = Со + CiXt + с2х2 + ... + спхп. (6.17) Всякое решение системы уравнений (6.15), удовлетво- ряющее системе неравенств (6.16), называется допусти- мым решением. Допустимое решение, которое минимизи- рует целевую функцию (6.17), называется оптимальным решением. Рассмотрим пример задачи линейного программирова- ния (транспортную задачу). Пример. Автобаза обслуживает три овощных мага- зина, причем товар доставляется в магазины из двух плодоовощных баз. Нужно спланировать перевозки так, чтобы их общая стоимость была минимальной. Введем исходные данные. Ежедневно вывозится с пер- вой базы 12 т товара, со второй 15 т. При этом завозится в первый магазин 8 т, во второй 9 т, в третий 10 т. Стои- мость перевозки 1 т товара (в рублях) с баз в магазины дается следующей таблицей: База Ма гаапн первый второй третий Первая 0.80 1.10 0.90 Вторая 1.00 0.70 1.20 Решение. Обозначим через xh х2, х3 количество товара, который нужно доставить с первой базы соответ- ственно в первый, второй и третий магазины, а через #5, я’е количество товара, который нужно доставить со второй базы в те же магазины. Эти значения в соответ- ствии с исходными данными должны удовлетворять сле- дующим условиям: ж, + ^2 + х3 = 12, + х5 + х6 — 15, Xi + Xi — 8, х2 + Хз = 9, х» + хв = 10, (6.18)
§ 4. ЗАДАЧИ С ОГРАНИЧЕНИЯМИ 191 Первые два уравнения этой системы описывают количе- ство товара, которое необходимо вывезти с первой и вто- рой баз, а три последних — сколько нужно завезти това- ра в каждых! магазин. К данной системе уравнений нужно добавить систему неравенств Xi > О, i = 1, 2, ..., 6, (6.19) которая означает, что товар обратно с магазинов на базы не вывозится. Общая стоимость перевозок с учетом при- веденных в таблице расценок выразится формулой / — 0.8xi + 1.1х2 + 0.9х3 + + 0.7х8 + 1.2х6. (6.20) Таким образом, мы пришли к типичной задаче линей- ного программирования: найти оптимальные значения проектных параметров х; (г=1, 2, ..., 6), удовлетворя- ющих условиям (6.18), (6.19) и минимизирующих об- щую стоимость перевозок (6.20). Из анализа системы уравнений (6.18) следует, что только первые четыре уравнения являются независимы- ми, а последнее можно получить из них (путем сложе- ния первого и второго уравнений и вычитания из этой суммы третьего и четвертого уравнений). Поэтому фак- тически имеем систему xt + х2 + х3 = 12, х4 + хъ + хе = 15, Xi + х4 = 8, х2 4~ х8 = 9. (6.21) Число неизвестных на два больше числа уравнений, поэтому выразим через xt и х2 все остальные неизвест- ные. Получим х3 = 12 — Xi — х2, х4 = 8 — Xi, х8 = 9 — х2, хв == Xt + х2 — 2. (6.22) Поскольку в соответствии с (6.19) все проектные пара- метры должны быть неотрицательны, то с учетом (6.22)
192 ГЛ. е. МЕТОДЫ ОПТИМИЗАЦИЙ получим следующую систему неравенств: (6.23) xt > 0, х2 О, 12 — Xi — х2 > О, 8 - Xi > 0, 9 - х2 > О, Х1 + х2 — 2 0. Эти неравенства можно записать в более компакт- ном виде: О Xi С 8, О С х2 =s£ 9, 2 Xi + х2 12. (6.24)' Данная система неравенств описывает все допустимые решения рассматриваемой задачи. Среди всех допусти- мых значений свободных параметров xt и х2 нужно най- ти оптимальные, минимизирующие целевую функцию /. Формула (6.20) для нее с учетом соотношений (6.22) принимает вид /== 22.7 + 0.1xt + 0.7ха. (6.25) Отсюда следует, что стоимость перевозок растет с уве- личением значений zt, x2t поэтому нужно взять их наи- меньшие допустимые значения. В соответствии с (6.24) Рис. 35. Схема перевозок Xi + х2 > 2; примем ад + х2 = 2. Исключая один из пара- метров, например ад, получим ад — 2 — ад. Тогда /«24.l-0.6xp Очевидно, что стоимость перевозок / будет минималы ной, если величина ад примет наибольшее значепие в> рамках сделанного ограничения (ад + х2 = 2). Таким оп- тимальным будет значение ад = 2. Тогда ха = Р, а онти*
§ 4. ЗАДАЧИ С ОГРАНИЧЕНИЯМИ 193 мальные значения остальных проектных параметров можно найти по формулам (6.22): Хз = Ю, г4 = 6, .г5 = 9, z6 = 0. В этом случае минимальная общая стоимость пе- ревозок / равна 22.9 р. На рис. 35 показана схема до- ставки товаров, соответствующая полученному решению. Числа указывают количество товара (в тоннах). 3. Геометрический метод. Областью решения линей- ного неравенства с двумя переменными а0 + alxi + агхг > 0 (6.26) является полуплоскость. Для того чтобы определить, ка- кая из двух полуплоскостей соответствует этому нера- венству, нужно привести его к виду х2 > kxt + Ъ или хг кхл + Ъ. Тогда искомая полуплоскость в первом слу- чае расположена выше прямой а0 + + а2х2 = 0, во.вто- ром — ниже нее. Если п2 = 0, то неравенство (6.26) имеет вид а0 + 0; в этом случае получим либо хл > h — правую полуплоскость, либо x^h — левую по- луплоскость. Рис. 36. Выпуклая (С4) и невыпуклая (G2) области Областью решений системы неравенств является пере- сечение конечного числа полуплоскостей, описываемых каждым отдельным неравенством. Это пересечение пред- ставляет собой многоугольную область G. Она может быть как ограниченной, так и неограниченной и даже пустой (если система неравенств противоречива). Область решений G обладает важным свойством вы- пуклости. Область называется выпуклой, если произволь- ные две ее точки можно соединить отрезком, целиком принадлежащим данной области. На рис. 36 показаны выпуклая область G, и невыпуклая область G2. В обла- .сти Gt две ее произвольные точки At и можно соеди- нить отрезком, все * точки которого принадлежат обла- 13 Д. и. Турчак
194 ГЛ. G. МЕТОДЫ ОПТИМИЗАЦИИ сти G,. В области G2 можно выбрать такие две ее точки А2 и В2, что не все точки отрезка А2В2 принадлежат области G2. Опорной прямой называется прямая, которая имеет с областью по крайней мере одну общую точку, при этом вся область расположена по одну сторону от этой! пря- мой. На рис. 36 показаны две опорные прямые Ц и 12, т. е. в данном случае опорные прямые проходят соответ- ственно через вершину многоугольника и через одну из его сторон. Аналогично можно дать геометрическую интерпрета- цию системы неравенств с тремя переменными. В этом случае каждое неравенство описывает полупространство, а вся система — пересечение полупространств, т. е. мно- гогранник, который также обладает свойством выпукло- сти. Здесь опорная плоскость проходит через вершину, ребро или грань многогранной области. Основываясь на введенных понятиях, рассмотрим гео- метрический метод решения задачи линейного програм- мирования. Пусть заданы линейная целевая функция / = с0 + CiXt + с2х2 двух независимых переменных, а так- же некоторая совместная система линейных неравенств, описывающих область решений G. Требуется среди до- пустимых решений (Xi, x2)^G найти такое, при котором линейная целевая функция / принимает наименьшее значение. Положим функцию / равной некоторому постоянному значению С: f — с0 + сд + с2х2 — С. Это значение дости- гается в точках прямой, удовлетворяющих уравнению с0 + + с2<г2 & G. (6.27) При параллельном переносе этой прямой в положитель- ном направлении вектора нормали n(cf, с2) линейная функция / будет возрастать, а при переносе прямой в противоположном направлении — убывать. Предположим, что прямая, записанная в виде (6.27), при параллельном переносе в положительном направле- нии вектора н первый раз встретится с областью допу- стимых решений G в некоторой ее вершине, при этом значение целевой функции равно Ch и прямая становит- ся опорной. Тогда значение Ct будет минимальным, по- скольку дальнейшее движение прямой в том же направ- лении приведет к увеличению значения /.
§ 4. ЗАДАЧИ С ОГРАНИЧЕНИЯМИ 195 Если в задаче оптимизации нас интересует макси- мальное значение целевой функции, то параллельный перенос прямой (6.27) осуществляется в направлении, противоположном п, пока она не станет опорной. Тогда вершина многоугольника G, 'через которую про- ходит опорная прямая, будет соответствовать максимуму функции /. При дальнейшем переносе прямой целевая функция будет убывать. Таким образом, оптимизация линейной целевой функ- ции на многоугольнике допустимых решений происходит в точках пересечения этого многоугольника с опорными прямыми, соответствующими данной целевой функции. При этом пересечение может быть в одной точке (в вер- шине многоугольника) либо в бесконечном множестве точек (на ребре многоугольника). В заключение вернемся к рассмотренной ранее транс- портной задаче (см. п. 2). На рш угольник ABCDEF допустимых решений. Он получен как пере- сечение полуплоскостей, описы- ваемых неравенствами (6.23). Опорная прямая Ц соответствует уравнению (6.25) при / = 22.9. Точка А пересечения опорной прямой с многоугольником реше- ний дает минимум целевой функ- ции. При дальнейшем параллель- ном переносе этой прямой вверх можем попасть в точку D (опор- ная прямая Z2) и получить мак- симум целевой функции. 4. Симплекс-метод. Рассмотренный геометрический метод решения задач линейного программирования до- статочно прост и нагляден для случая двух и даже трех переменных. Для большего числа переменных примене- ние геометрического метода становится невозможным. Правда, мы видели, что оптимальные значения целе- вой функции достигаются на границе области допусти- мых решений. Поэтому в случае п неизвестных (п>3) можно построить n-мерный многогранник решений, най- ти его вершины и вычислить значения целевой функции в этих точках. Наименьшее среди полученных значений можно принять за искомое, а координаты соответствую- 13* изображен много- Рис. 37. Область допу- стимых решений
196 ГЛ. 6. МЕТОДЫ ОПТИМИЗАЦИИ щей вертпипы — за оптималыше значения проектных параметров. Однако решение задачи линейного программирования не так просто, как может показаться на первый взгляд. Сложность состоит в том, что количество проектных па- раметров в реальных задачах (особенно в экономиче- ских) может достигать сотен и даже тысяч. При этом число вершин многогранника G может быть настолько большим, что перебор вершин и вычисление в них зна- чений целевой функции приведет к такому объему вы- числений, который практически невозможно осуществить в течение разумного времени даже с помощью ЭВМ. Одним из методов, позволяющих эффективно решать подобные задачи, причем с гораздо меньшим числом операций, является симплекс-метод. Симплексом называется простейший выпуклый много- гранник при данном числе измерений, В частности, при п = 2 — произвольный треугольник, п .= 3 — произволь- ный тетраэдр. Идея симплекс-метода состоит в следующем. Примем в качестве начального приближения координаты некото- рой вершины многогранника допустимых решений и най- дем все ребра, выходящие из этой вершины. Двигаемся вдоль того ребра, по которому линейная целевая функция убывает. Приходим в новую вершину, находим все вы- ходящие из нее ребра, двигаемся по одному из них и т. д. В конце концов мы придем в такую вершину, дви- жение из которой вдоль любого ребра приведет к воз- растанию целевой функции. Следовательно, минимум достигнут, и координаты этой последней вершины при- нимаются в качестве оптимальных значений рассматри- ваемых проектных параметров. Отметим, что (поскольку / — линейная функция, а многогранник выпуклый) данный вычислительный про- цесс сходится к решению задачи, причем за конечное число шагов к. В данном случае их число порядка п, т. е. значительно меньше числа шагов в методе простого перебора вершин, где к может быть порядка 2”. Пусть задача линейного программирования состоит в том, что нужно найти такие неотрицательные значения проектных параметров х,, хг, ..., хп, которые минимизи- руют линейную целевую функцию / = се + + сгх2 +,,, + спхп (6.28)"
§ 4. ЗАДАЧИ С ОГРАНИЧЕНИЯМИ 197 при заданных ограничениях в виде системы линейных уравнений (711^1 + 012^2 + ... + а1пхп = &!, a2txt + g22^2 + ... + а2пхп — b2, (6.29) *Г Ят2*^2 * • . . T ОгппХп Ьт, Если в качестве ограничений заданы неравенства, то их можно преобразовать в равенства путем введения до- полнительных неотрицательных переменных, которые на- зываются балансовыми. Например, имея некоторое нера- венство fljXj + а2х2 + ... + апхп < 6, можно всегда ввести новую переменную хп+1 > 0 такую, что после ее прибав- ления к левой части данного неравенства получим ра- венство atXi + а2х2 + ... + апхп + хп+1 = Ь. Будем считать, что все уравнения системы (6.29) линейно независимы, т. е. ни одно из них нельзя полу- чить как линейную комбинацию других. В противном случае линейно зависимые уравнения можем отбросить. И кроме того, эта система совместна, т. е. среди урав- нений системы нет противоречивых. Ясно, что при этих предположениях, число уравнений тп меньше числа пере- менных п, поскольку при тп = п система (6.29) имеет единственное решение, что исключает всякую оптимиза- цию; при m > п не выполняются сделанные выше пред- положения. Выразим первые тп переменных xt, х2, ..., хт через остальные с помощью уравнений (6.29): 3-1 Pi ’ Q1, * Qi, ?n-f-2*^im+2 • • • • « Qin^nj •^2 Pi + ТП+2&1П+2 "Ь • • . ~Ь Q2n^nj (6.30) ^тп Pm * Qmt m4-13*m + i Qm, rn-f-2^*тп-(-2 • Qmn*£nj p;>o, i = i, 2, ..., m. Переменные хЛ, x2, .,xm называются базисными, а вектор {xh x2, ..xm} — базисом; xm+1, xm+2, xn — свободные переменные. Используя соотношения (6.30), можно выразить ли- нейную целевую функцию (6.28) через свободные пере-
198 ГЛ. 6. МЕТОДЫ ОПТИМИЗАЦИИ менные: / . . • 4* dfLXfL. (6.31) Процесс оптимизации начнем с некоторого начально- го (опорного) решения, например при нулевых значе- ниях свободных переменных. Тогда получим •Tj Р1, . . ., Хт Pm) Xm-yi 0, . • ., Хп 0. (6.32) / При этом целевая функция (6.31) принимает значение /(0) = dB. Дальнейшее решение задачи симплекс-методом рас- падается на ряд этапов, заключающихся в том, что от одного решения нужно перейти к другому с таким усло- вием, чтобы целевая функция не возрастала. Это дости- гается выбором нового базиса и значений свободных пе- ременных. Выясним, является ли^опорное решение (6.32) опти- мальным. Для этого проверим, можно ли уменьшить соответствующее этому решению значение целевой функ- ции / = d0 при изменении каждой свободной переменной. Поскольку Xi > 0, то мы можем лишь увеличивать их значения. Если коэффициенты dm+i, ..., dn в формуле (6.31) неотрицательны, то при увеличении любой сво- бодной переменной xm+i, ..., хп целевая функция не мо- жет уменьшиться. В этом случае решение (6.32) окажет- ся оптимальным. Пусть теперь среди коэффициентов формулы (6.31) хотя бы один отрицательный, например dm+i < 0. Это озна- чает, что при увеличении переменной хт+1 целевая функ- ция уменьшается по сравнению со значением d0, соответ- ствующим решению (6.32). Поэтому в качестве нового опорного выбирается решение при следующих значениях свободных параметров: Хт + 1 — ^т+1» ^т+2 ~ • • •> Хп ~ 0. (6.33) При этом базисные переменные, вычисляемые по фор- мулам (6.30), равны xi = Рг + ' i = l, 2, (6.34) Если все коэффициенты т+1 неотрицательны, то ‘ хт+1 можно увеличивать неограниченно; в этом случае не существует оптимального решения задачи. Однако на практике такие случаи, как правило, не встречаются. Обычно среди коэффициентов g>, m+i имеются отрицатель-
§ 4. ЗАДАЧИ С ОГРАНИЧЕНИЯМИ 199 ные, а это влечет за собой угрозу сделать некоторые пе- ременные х, в (6.34) отрицательными из-за большого Г (1) значения Следовательно, переменную можно увеличивать лишь до тех пор, пока базисные переменные остаются неотрицательными. Это и является условием выбора значения ^m+i- Его можно записать в виде Рг 4* 7г,пг+1жт+1 2^0» — 1, 2, . . ., Ш. (6.35) Среди всех отрицательных коэффициентов <Л, m+i най- дем наибольший по модулю. Пусть его значение равно Q, а соответствующее ему значение pt равно Р. Тогда из (6.35) получим максимально возможное значение пере- менной Хт+t на данном шаге оптимизации: ^m+i = — P/Q (Р<0, Q<0), и новое опорное решение запишем в виде ' Р _ Р — Р1 — ~Q~ ; Хт рт q р - (6.36) Хт+1 —----1 Хт^-2 — 0» • • ч Хп — 0. Новая целевая функция при этих значениях проектных параметров равна (6.37) Полученное значение целевой-функции /(1) меньше пре- дыдущего, поскольку в данной формуле второй член пра- вой части больше нуля (dm+l < 0, Q < 0, Р > 0). На этом заканчивается первый шаг оптимизации. Те- перь нужно сделать второй шаг, используя аналогичную процедуру. Для этого необходимо выбрать новый базис, принимая в качестве базисных переменных параметры хи ..., xm-i, хт+1. После второго шага мы либо найдем новые оптимальные значения переменных и соответству- ющее им значение целевой функции /(2) < /(1>, либо по- кажем, что решение (6.36) является оптимальным. В лю- бом случае после конечного числа шагов мы придем к оптимальному решению. Еще раз подчеркнем, что в от- личие от метода перебора симплекс-метод дает возмож- ность вести поиск целенаправленно, уменьшая на каж- дом шаге значение целевой функции.. В качестве примера, иллюстрирующего симплекс-ме- тод, рассмотрим задачу об использовании ресурсов,
200 ГЛ. 6. МЕТОДЫ ОПТИМИЗАЦИИ 5. Задача о ресурсах. В распоряжении бригады име- ются следующие ресурсы: 300 кг металла, 100 м2 стекла, 160 чел.-ч (человеко-часов) рабочего времени. Бригаде поручено изготовлять два наименования изделий — А и Б. Цена одного изделия А 10 р., для его изготовления необходимо 4 кг металла, 2 м2 стекла и 2 чел.-ч рабочего времени. Цена одного изделия Б 12 р., для его изготов- ления необходимо 5 кг металла, 1 м2 стекла и 3 чел.-ч рабочего времени. Требуется так спланировать объем вы- пуска продукции, чтобы ее стоимость была максимальной. Сначала сформулируем задачу математически. Обозна- чим через ад и хг количество изделий А и Б, которое не- обходимо запланировать (т. е. это искомые величины). Имеющиеся ресурсы сырья и рабочего времени зададим в виде ограничений-неравенств: 4ад + 5ад ’С 300, 2ад + ад 100, (6.38) 2 ад + Зад 160. Полная стоимость запланированной к производству про- дукции выражается формулой /=10ад + 12ад. (6.39) Таким образом, мы имеем задачу линейного програм- мирования, которая состоит в определении оптимальных значений проектных параметров ад, x2f. являющихся це- лыми неотрицательными числами, удовлетворяющих ли- нейным неравенствам (6.38) - и дающих максимальное значение линейной целевой функции (6.39). Вид сформулированной задачи не является канониче- ским, поскольку условия (6.38) имеют вид неравенств, а не уравнений. Как уже отмечалось выше, такая задача может быть сведена к канонической путем введения до- полнительных переменных ад, х3 по количеству огра- ничений-неравенств (6.38). При этом выбирают эти пере- менные такими, чтобы при их прибавлении к левым ча- стям соотношений (6.38) неравенства превращались в равенства. Тогда ограничения примут вид 4ад + 5а?2 + х3 = 300, 2ад + ад + Xi, — 100, (6.40)' 2ад + Зад + х9 = 160,
§ 4. ЗАДАЧИ С ОГРАНИЧЕНИЯМИ 201 При этом очевидно, что х3 > 0, т4 > 0, х3 0. Заметим, • что введение дополнительных неизвестных не повлияло на вид целевой функции (6.39), которая зависит только от параметров хи х2. Фактически х3, xt, х3 будут указы- вать остатки ресурсов, не использованные в производстве. Здесь мы имеем задачу максимизации, т. е. нахождения максимума целевой функции. Если функцию (6.39) взять со знаком минус, т. е. принять целевую функцию в виде F = -10^-12^, (6.41) то получим задачу минимизации для этой целевой функции. Примем переменные х3, xlt х5 в качестве базисных и выразим их через свободные переменные xit хг из урав- нений (6.40). Получим х3 — 300 — 4а"1 — 5л:2, х4 = 100 - 2х4 - х^ (6.42) х3 — 160 — 2xt — Зж2. В качестве опорного решения возьмем такое, которое соответствует нулевым значениям свободных параметров: 4о) = о2 40) = о, /30) = зоо2 40) = юо, 40) = 1бо. (6.43) Этому решению соответствует нулевое значение целевой функции (6.41): F(0) = 0. (6.44) Исследуя полученное решение, отмечаем, что оно не является оптимальным, поскольку значение целевой функции (6.41) может быть уменьшено по сравнению с (6.44) путем увеличения свободных параметров. Положим х2 = 0 и будем увеличивать переменную до тех пор, пока базисные переменные остаются поло- жительными. Из (6.42) следует, что г4 можно увеличить до значения = 50, поскольку при большем его значе- нии переменная xt станет отрицательной. Таким образом, полагая z4 — 50, х2 = 0, получаем но- вое опорное решение (значения переменных х3, найдем по формулам (6.42)): 4п = 5о2 4п = о2 41) = юо2 4п = о2 41} = 6О. (6.45)
202 гл. 6. МЕТОДЫ ОПТИМИЗАЦИИ Значение целевой функции (6.41) при этом будет равно F<‘> = -500. (6.46) Новое решение (6.45), следовательно, лучше, поскольку значение целевой функции уменьшилось по сравнению с (6.44). Следующий шаг начнем с выбора нового базиса. При- мем ненулевые переменные в (6.45) хл, ха, в качестве базисных, а нулевые переменные а, А в качестве сво- бодных. Из системы (6.40) найдем гл 1 1 хг = 50 — у х2 — у z4, хй = 100 — З.г2 + 2.т4, (6.47) хъ = 60 — 2.г2 + z4. Выражение для целевой функции (6.41) запишем через свободные параметры, заменив а с помощью (6.47). Получим F = -500 - 1х2 + 5а. (6.48) Отсюда следует, что значение целевой функции по сравнению с (6.46) можно уменьшить за счет увеличе- ния хг, поскольку коэффициент при этой переменной в (6.48) отрицательный. При этом увеличение а недопу- стимо, поскольку это привело бы к возрастанию целевой функции; поэтому положим а = 0. Максимальное значение переменной а определяется соотношениями (6.47). Быстрее всех нулевого значения достигнет переменная ха при х2 = 30. Дальнейшее увели- чение а поэтому невозможно. Следовательно, получаем новое опорное решение, соответствующее значениям а — = 30, а — 0 и определяемое соотношениями (6.47): 42) = 35, 42) = зо, 42) = ю, 42> = о, 42> = о. (6.49) При этом значение целевой функции (6.48) равно F™ = -710. (6.50) Покажем, что полученное решение является оптималь- ным. Для проведения следующего шага ненулевые пере- менные в (6.49), т. е. Xi, x2i а, нужно принять в каче- стве базисных, а нулевые переменные а, — в качестве свободных переменных. В этом случае целевую функцию
УПРАЖНЕНИЯ 203 можно записать в виде F = — 710 + -|z4+ у ,г5. Поскольку коэффициенты при х^ х5 положительные, то при увеличении этих параметров целевая функция возрастает. Следовательно, минимальное значение целе- вой функции Fmln = — 710 соответствует нулевым значе- ниям параметров xk, х5, и полученное решение является оптимальным. Таким образом, ответ на поставленную задачу об ис- пользовании ресурсов следующий: д.гГя получения макси- мальной суммарной стоимости продукции при заданных ресурсах необходимо запланировать изготовление изде- лий А в количестве 35 штук и изделий Б в количестве 30 штук. Суммарная стоимость продукции равна 710 р. При этом все ресурсы стекла и рабочего времени будут использованы, а металла останется 10 кг. Упражнения 1. Исследовать на экстремум функцию у = (ж — 5) ех. 2. Найти наибольшее и наименьшее значения функции у = = ж|'1 — ж2 в области ее определения. 3. Удельный расход газа плотности р с показателем адиаба- ты к в газовой струе определяется формулой При какой скорости v расход газа будет максимальным? 4. Составить блок-схему определения наименьшего значения функции на отрезке с помощью метода общего поиска. 5. Усовершенствовать алгоритм предыдущей задачи путем повторного деления суженного интервала неопределенности. 6. Используя метод золотого сечения, найти на отрезке [0, 3] наименьшее значение функции ж2 — 2ж + 2, ,ж2/(2ж — 1), 0 ж 2, ж > 2. 7. Работа деформации рамы выражается формулой ' д ------ Л “ 2EI (4 1 I 1 1 \ _Х2_ХУ + _у2 + _рХ__рГ+_^ ( где Р — нагрузка, X и У — горизонтальная и вертикальная реак- ции опоры, I — длина, ~Е — модуль упругости, I — момент инерции. При каких значениях X, У работа будет минимальной?
204 ГЛ, 6, МЕТОДЫ ОПТИМИЗАЦИИ 8. Спроектировать цилиндрический котел емкостью 200 л та- ким образом, чтобы на его изготовление было израсходовано как можно меньше материала. 9. Начертить области, определенные системами неравенств: а) х 0, у 0, 2х +• у 4; б) х — у 0, х sC 9, х + Зу 6. 10. Минимизировать функцию / = 12a?i + 4.т2 при наличии ограничений хл -f- х2 2, Т| > 0.5, т2 С 4, Xi — х2 5= 0. И. Имеются два склада с сырьем. Ежедневно вывозится с первого склада 60 т сырья, со второго 80 т. Сырье используется двумя заводами, причем первый завод получает его 50 т, второй 90 т. Нужно организовать оптимальную (наиболее дешевую) схе- му перевозок, если известно, что доставка 1 т сырья с первого склада на первый завод стоит 70 к., с первого склада на второй завод — 90 к;, со второго склада на первый завод — 1 р., со второго склада на второй завод — 80 к.
ГЛАВА 7 ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ § 1. Основные понятия 1. Постановка задач. Инженеру-исследователю по- стоянно приходится в своей деятельности сталкиваться с дифференциальными уравнениями. Многие задачи ме- ханики, физики, химии и других отраслей науки и тех- ники при их математическом моделировании сводятся к дифференциальным, уравнениям. В связи с этим решение дифференциальных уравнений является одной из важней- ших математических задач. В вычислительной математи- ке изучаются численные методы решения дифференци- альных уравнений, которые особенно эффективны в со- четании с использованием вычислительной техники. Прежде чем обсуждать методы решения дифферен- циальных уравнений, напомним некоторые сведения из курса дифференциальных уравнений, и в особенности те, которые понадобятся при дальнейшем изложении. В зависимости от числа независимых переменных дифференциальные уравнения делятся на две сущест- венно различные категории: обыкновенные дифференци- альные уравнения, содержащие одну независимую пере- менную, и уравнения с частными производными, содер- жащие несколько независимых переменных. Данная гла- ва посвящена методам решения обыкновенных Дифферен- циальных уравнений. Обыкновенными дифференциальными уравнениями называются такие уравнения, которые содержат одну или несколько производных от искомой функции у — = I/ (я). Их можно записать в виде F(x, У, У', • {/(п)) = 0, (7.1) где х — независимая переменная. Наивысший порядок п входящей в уравнение (7.1) производной называется порядком дифференциального уравнения. В частности, запишем уравнения первого и второго порядков: F(x, у, у') = 0, F(x, у, у', у") = 0. '
206 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ В ряде случаев из общей записи дифференциального уравнения (7.1) удается выразить старшую производную в явном виде. Например, = у), (7.2) у" = f(x, У, у'}- Такая форма записи называется уравнением, разрешен- ным относительно старшей производной. Линейным дифференциальным уравнением называет- ся уравнение, линейное относительно искомой функции и ее производных. Например, у’ — х2у — sin х — линейное уравнение первого порядка. Решением дифференциального уравнения (7.1) назы- вается всякая функция у — ^(х), которая после ее под- становки в уравнение превращает его в тождество. Общее решение обыкновенного дифференциального уравнения тг-го порядка содержит п произвольных по- стоянных Си С2, ..., Сп, т. е. общее решение уравнения (7.1) имеет вид у = Ч>(х, Clf С2, ..., С„). (7.3) Частное решение дифференциального уравнения по- лучается из общего, если произвольным постоянным при- дать определенные значения. Для уравнения первого порядка общее решение за- висит от одной произвольной постоянной: у = ^(х,С). (7.4) Если постоянная принимает определенное значение С — — Со, то получим частное решение 1/==ф(а?, Со). Дадим геометрическую интерпретацию дифференци- ального уравнения первого порядка (7.2). Поскольку производная у‘ характеризует наклон касательной к ин- тегральной кривой в данной точке, то при у' — к = const из (7.1) получим f(x, у)=к— уравнение линии постоян- ного наклона, называемой изоклиной. Меняя к, получа- ем семейство изоклин. Приведем геометрическую интерпретацию общего ре- шения (7.4). Это решение описывает бесконечное семей- ство интегральных кривых с параметром С, а частному решению соответствует одна кривая из этого семейства. Через каждую точку из области решения проходит одна
§ 1. ОСНОВНЫЕ ПОНЯТИЯ 207 интегральная кривая. Это утверждение следует из сле- дующей теоремы. Теорема Коши. Если правая часть f(x, у) урав- нения (7.2) и ее частная производная fy(x, у) опреде- лены и непрерывны в некоторой области G изменения переменных х, у, то для всякой внутренней точки (хй, у0) этой области данное уравнение имеет единственное ре- шение, принимающее заданное значение у = у0 при х = х0. Для уравнений высших порядков геометрическая ин- терпретация более сложная. Через каждую точку в об- ласти решения уравнения при п > 1 проходит не одна интегральная кривая. Поэтому, если для выделения не- которого частного решения уравнения первого порядка достаточно задать координаты (х0, уи) произвольной точ- ки на данной интегральной кривой, то для уравнений высших порядков этого недостаточно. Здесь правило сле- дующее: для выделения частного решения из общего нужно задавать столько дополнительных условий, сколь- ко произвольных постоянных в общем решении, т. е. ка- ков порядок уравнения. Следовательно, для уравнения второго порядка нужно задать два дополнительных ус- ловия, благодаря которым можно найти значения двух произвольных постоянных. В зависимости от способа задания дополнительных условий для получения частного решения дифференци- ального уравнения существуют два различных типа за- дач: задача Коши и краевая задача. В качестве допол- нительных условий могут задаваться значения искомой функции и ее производных при некоторых значениях независимой переменной, т. е. в некоторых точках. Если этп условия задаются в одной точке, то такая задача называется задачей Коши. Дополнительные усло- вия в задаче Коши называются начальными условиями, а точка х = х0, в которой они задаются,— начальной точкой. Если же дополнительные условия задаются в более чем одной точке, т. е. при разных значениях независи- мой переменной, то такая задача называется краевой. Сами дополнительные условия называются при этом гра- ничными (или краевыми) условиями. На практике обыч- но граничные условия задаются в двух точках х = а и х = Ь, являющихся границами области решения диффе- ренциального уравнения.
208 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ Приведем примеры постановки задач для обыкновен- ных дифференциальных уравнений. Задачи Коши: dx/dt = х2 cos t, t > 0, x (0) = 1; у" = у'/х + х2, х>1, //(!)== 2, ?/,(1) = 0- Краевые задачи: у" + 2у’ — у = sin#, t/(0)=l, !/(1) = 0; у"' = х + уу', 1^х^3, р(1) = 0, z/'(l)=l, р'(3) = 2, 2. О методах решения. Методы решения обыкновен- ных дифференциальных уравнений можно разбить на следующие группы: графические, аналитические, прибли- женные и численные. Графические методы используют геометрические по- строения. В частности, одним из них является метод изоклин для решения дифференциальных уравнений пер- вого порядка вида (7.4). Он основан на геометрическом определении интегральных кривых по заранее построен- ному полю направлений, определенному изоклинами. С некоторыми аналитическими методами читатель знаком по курсу дифференциальных уравнений. Для ря- да уравнений первого порядка (с разделяющимися пере- менными, однородными, линейными и др.), а также для некоторых типов уравнений высших порядков (напри- мер, линейных с постоянными коэффициентами) удается получить решения в виде формул путем аналитических преобразований. Приближенные методы используют различные упро- щения самих уравнений путем обоснованного отбрасыва- ния некоторых содержащихся в них членов, а также спе- циальным выбором классов искомых функций. Напрпмер, в некоторых инженерных задачах удается представить решение в виде суммы двух составляющих, первое из которых определяет основное решение, а второе — малая добавка (возмущение), квадратом которой можно пре- небречь. На этом основаны различные методы линеари- зации. В приближенных методах также широко исполь- зуется разложение решения в ряд по некоторому малому параметру, содержащемуся в данной задаче. К данной группе методов относятся и асимптотические методы, с помощью которых получаются решения, описывающие предельную картину рассматриваемого явления.
§ 1. ОСНОВНЫЕ ПОНЯТИЯ 209 Здесь мы будем рассматривать численные методы ре- шения дифференциальных уравнений, которые в настоя- щее время являются основным инструментом при иссле- довании научно-технических задач, описываемых диффе- ренциальными уравнениями. При этом необходимо под- черкнуть, что данные методы особенно эффективны в сочетании с использованием быстродействующих ЭВМ, обладающих достаточно большим объемом оперативной памяти. Наиболее распространенным и универсальным чис- ленным методом решения дифференциальных уравнений является метод конечных разностей. Его сущность состо- ит в следующем. Область непрерывного изменения аргу- мента (например, отрезок) заменяется дискретным мно- жеством точек, называемых узлами. Эти узлы составляют разностную сетку. Искомая функция непрерывного аргу- мента приближенно заменяется функцией дискретного аргумента на заданной сетке. Эта функция называется сеточной. Исходное дифференциальное уравнение заме- няется разностным уравнением относительно сеточной функции. При этом для входящих в уравнение произ- водных используются соответствующие конечно-разност- ные соотношения (см. гл. 3, § Г). Такая замена диф- ференциального уравнения разностным называется его аппроксимацией на сетке (или разностной аппроксима- цией). Таким образом, решение дифференциального уравнения сводится к отысканию значений сеточной функции в узлах сетки. Обоснованность замены дифференциального уравне- ния разностным, точность получаемых решений, устой- чивость метода — важнейшие вопросы, которые требуют тщательного изучения. Мы здесь дадим лишь некоторые элементарные сведения по данным вопросам. 3. Разностные методы. Обычно в теории разностных схем для компактности записи дифференциальные урав- нения, начальные и граничные условия представляются в некотором символическом виде, называемом оператор- ным. Например, любое из уравнений F “/(«), У" =/(*), У"+А-2У = /(х) можно записать в виде LY = F(x). Здесь L — дифферен- циальный оператор, содержащий операции дифференци- рования; его значение различно для разных дифферен- циальных уравнений. Область изменения аргумента х Л. И. Турчак
210 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ можно обозначить через G, т. е. С, В частности, об- ластью G при решении обыкновенных дифференциаль- ных уравнений может быть некоторый отрезок [а, 6], по- луось х > 0 (или t > 0) и т. п. Дополнительные условия на границе также представ- ляются в операторном виде. Например, любое из условий У(0) = Л, У(я) = 0, У(6) = 1, У(0) = А У'(0) = £ можно записать в виде /У = Ф(л:) (аг^Г). Здесь I — опе- ратор начальных или граничных условий, Ф {х} — правая часть этих условий, Г — граница рассматриваемой обла- сти (т. е. х — 0, х = а, х = Ь и т. п.). Таким образом, исходную задачу для дифференциаль- ного уравнения с заданными начальными и граничными условиями, называемую в дальнейшем дифференциаль- ной задачей, можно в общем случае записать в виде ТУ = Г(ж), x^G, (7.5) 2У=Ф(х), яеГ. (7.6) В методе конечных разностей исходное дифференци- альное уравнение (7.5) заменяется разностным уравне- нием путем аппроксимации производных соответствую- щими конечно-разностными соотношениями. При этом в области G введем сетку, шаг h которой для простоты будем считать постоянным. Совокупность узлов х0, х1г ... обозначим через gh. Значения искомой функции У в уз- лах сетки заменяются значениями сеточной! функции уп, которая является решением разностного уравнения. ' Искомую функцию и сеточную функцию будем обозна- чать соответственно У и у, чтобы подчеркнуть их раз- личие: У — функция непрерывно меняющегося аргумен- та х, а у — дискретная сеточная функция, определенная на дискретном множестве gh = {х,} (г = 0, 1, ...). Сеточ- ную функцию, принимающую значения у, в узл^х сет- ки, можно считать функцией целочисленного аргумента i. Итак, дифференциальное уравнение (7.5) заменяется разностным уравнением, которое также можно записать в операторном виде: Lhyh ~ fh, х S gh. (7.7) Здесь Lh — разностный оператор, аппроксимирующий дифференциальный оператор L. Как известно (см. гл. 3, § 1), погрешность этой аппроксимации в некоторой точ- ке х может быть представлена в виде е (х) — О (7?). При
§ 1. ОСНОВНЫЕ ПОНЯТИЯ 211 этом говорят, что в данной точке х имеет место аппрок- симация k-го порядка. Индекс h в разностном уравнении (7.7) подчеркивает, что величина шага является пара- метром разностной задачи. Поэтому (7.7) можно рас- сматривать как целое семейство разностных уравнений, которые зависят от параметра h. При решении дифференциальных уравнений обычно требуется оценить погрешность аппроксимации не в од- ной точке, а на всей сетке gh, т. е. в точках х0, xh ... В качестве погрешности аппроксимации еА на сетке можно принять некоторую величину, связанную с по- грешностями аппроксимации в узлах; например, еЛ = шах|е(^)|, еЛ = J £ е2(лц)р2. В этом случае имеет k-й порядок аппроксимации на сетке, если еА — O(hk). Наряду с аппроксимацией (7.7) дифференциального уравнения (7.5) необходимо также аппроксимировать до- полнительные условия на границе (7.6). Эти условия за- пишутся в виде куь фл, X (/ .8) Здесь уА — граничные узлы сетки, т. е. е Г. Индекс h, как и в (7.7), означает зависимость разностных условий на границе от значения шага. Совокупность разностных уравненш“1 (7.7), (7.8), ап- проксимирующих исходное дифференциальное уравнение и дополнительные условия на границе, называется раз- ностной схемой. Пример. Рассмотрим задачу Коши LY = dYldx — F(x), х>х0, У(х0) = Л. Введем равномерную сетку с шагом h, приняв в качестве узлов значения аргумента хв, xh ... Значения сеточной функции, которая аппроксимирует искомое решение в данных узлах, обозначим через у0, У^, ... Тогда разност- ную схему можно записать в виде Им,- '-0, 1, -Л Го Здесь ft — значение правой части разностного уравнения в точке Xi. Можно, в частности, принять fi = F(Xi). Дан- ная схема имеет первый порядок аппроксимации, т. е. eh = O(h), 14*
212 гл. 7 ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ Решение разностной задачи, в результате которого находятся значения сеточной функции yt в узлах х{, приближенно заменяет решение Y (х) исходной диффе- ренциальной задачи. Однако не всякая разностная схема дает удовлетворительное решение, т. е. получаемые зна- чения сеточной функции у{ не всегда с достаточной точ- ностью аппроксимируют значения искомой функции Y в узлах сетки. Здесь важную роль играют такие понятия, как устойчивость, аппроксимация и сходимость разностной схемы. Под устойчивостью схемы понимается непрерывная зависимость ее решения от входных данных (коэффици- ентов уравнений, правых частей, начальных и гранич- ных условий). Или, другими словами, малому изменению входных данных соответствует малое изменение реше- ния. В противном случае разностная схема называется неустойчивой. Естественно, что для практических расче- тов используются устойчивые схемы, поскольку входные данные обычно содержат погрешности, которые в случае неустойчивых схем приводят к неверному решению. Кро- ме того, в расчетах на ЭВМ погрешности возникают в процессе счета из-за округлений, а использование не- устойчивых разностных схем приводит к недопустимому накоплению этих погрешностей. Разностная схема называется корректной, если ее ре- шение существует и единственно при любых входных данных, а также если эта схема устойчива. При использовании метода конечных разностей не- обходимо знать, с какой точностью решение разностной задачи приближает решение исходной дифференциальной задачи. Рассмотрим погрешность бл, равную разности значений сеточной функции и искомой функции в узлах сетки, т. е. ^h = yh—Yh. Отсюда найдем yh = Yh + l)h. Под- ставляя это значение г/л в разностную схему (7.7), (7.8), получаем LhYh 4~ Lh^>h — fh, X gh, IhYh + Ihfth = <p>, x <= ул. Отсюда Lh^>h ~ Rh, lh$h — Th. Здесь Rh = fh — LhYh—погрешность аппроксимации (не- вязка) для разностного уравнения, a rh = q)h — lhYh—по- грешность аппроксимации для разностного граничного условия.
§ 2. ЗАДАЧА КОШИ 213 Если ввести характерные значения Rar невязок Rh п rh (например, взять их максимальные по модулю зна- чения на сетке), то при R = O(hh} и r = O(hk) разност- ная схема (7.7), (7.8) имеет к-й порядок аппроксимации на решении. Введем аналогичным образом характерное значение б погрешности решения бЛ. Тогда разностная схема сходит- ся, если б -> О при h -> 0. Если при этом б =5 Mhk, то го- ворят, что разностная схема имеет точность к-го порядка или сходится со скоростью O(hh). Здесь М>0—неко- торая постоянная величина, не зависящая от h. Предпо- лагается также, что h > 0; в противном случае в ука- занных оценках необходимо взять |й|. В теории разностных схем доказывается, что- если разностная схема устойчива и аппроксимирует исходную дифференциальную задачу, то она сходится. Иными сло- вами, из устойчивости и аппроксимации разностной схе- мы следует ее сходимость. Это позволяет свести трудную задачу изучения сходимости и оценки порядка точности разностной схемы к изучению погрешности аппроксима- ции и устойчивости, что значительно легче. Вопросы ис- следования разностных схем изложены в специальной литературе (см. список литературы). § 2. Задача Коши 1. Общие сведения. Требуется найти функцию Y = ~Y(x), удовлетворяющую уравнению dY/dx = f(x, У) (7.9) и принимающую при х — х0 заданное значение Уо: У(х0)=У0. (7.10) При этом будем для определенности считать, что реше- ние нужно получить для значений х > хй. Из курса дифференциальных уравнений известно, что решение У(х) задачи (7.9), (7.10) существует, един- ственно и является гладкой функцией, если правая часть У) уравнения (7.9), являющаяся функцией двух переменных х, У, удовлетворяет некоторым условиям гладкости. Будем считать, что эти условия выполнены и существует единственное гладкое решение У (х). Методы решения задачи (7.9), (7.10) распространя- ются и на случай систем уравнений вида (7.9), а к ним
214 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ в свою очередь можно привести также уравнения выс- ших порядков. Например, уравнение z"=(p(z; z, х) (7.И) можно записать в виде системы уравнений У; = Ф(УП У2,ж), у;==у15 (7.12) где У1 = У', У2 = У. Систему (7.12) можно записать с помощью одного векторного уравнения У' = /(У, ж). (7.13) Здесь Z'l /-Гф Z ’ 7 Z ' Таким образом, векторное уравнение (7.13) может заме- нить как систему уравнений, так и уравнение порядка выше первого. Для решения задачи Коши (7.9), (7.10) будем ис- пользовать разностные методы. Введем последователь- ность точек ж0, ... и шаги hi = xi+i~ х, (г = 0, 1, ...). В каждой точке ж,- называемой узлом, вместо значений функции У (ж,) вводятся числа yit аппроксимирующие точное решение У на данном множестве точек. Функ- цию у, заданную в виде таблицы {ж0 у,} (i = 0, 1, ...), называют сеточной функцией. Далее, заменяя значение производной в уравнении (7.9) отношением конечных разностей, осуществляем переход от дифференциальной задачи (7.9), (7.10) отно- сительно функции У к разностной задаче относительно сеточной функции у. yi+l = F(xit hh yi+l, у{, ..., ^i-fe+i), i = l, 2, .... (7.14) 1/о=Уо. (7.15) Здесь разностное уравнение (7.14) записано в общем ви- де, а конкретное выражение его правой части зависит от способа аппроксимации производной. Для каждого численного метода получается свой вид уравнения (7.14). На основании анализа вида разностного уравнения можно провести некоторую классификацию численных методов решения задачи Коши для обыкновенных диф- ференциальных уравнений.
§ 2. ЗАДАЧА КОШИ 215 Если в правой части (7.14) отсутствует yi+i, т. е. зна- чение Уг+i явно вычисляется по к предыдущим значе- ниям yt, yt-t, • • Vi-k+i, то разностная схема называется явной. При этом получается к-шаговый метод-, к = 1 — одношаговый, к = 2 — двухшаговый и т. д., т. е. в одно- шаговых методах для вычисления yi+t используется лишь одно ранее найденное значение на предыдущем шаге yi, в многошаговых — многие из них. Если в правую часть уравнения (7.14) входит иско- мое значение yi+l, то решение этого уравнения услож- няется. В таких методах, называемых неявными, при- ходится решать уравнение (7.14) относительно yi+l с помощью итерационных методов. 2. Одношаговые методы. Простейшим численным ме- тодом решения задачи Коши для обыкновенного диф- ференциального уравнения является метод Эйлера. Он основан на разложении искомой функции У (аг) в ряд Тейлора в окрестностях узлов х = z,- (z = 0, 1, ...), в ко- тором отбрасываются все члены, содержащие производ- ные второго и более высоких порядков. Запишем это разложение в виде Y (хЛ + Az,) = Y (z,) + Y’ (z{) Az^ + О (Azf). (7.16) Заменяем значения функции У в узлах z( значения- ми сеточной функции yt. Кроме того, используя уравне- ние (7.9), полагаем у/(я») = Ж, Y(Xi))-=f(xh у{). Будем считать для простоты узлы равноотстоящими, т. е. Az, = zi+1 — Xt — h = const (z = 0, 1, ...). Учитывая вве- денные обозначения и пренебрегая членами порядка О (h2), из равенства (7.16) получаем yi+i = yi + kf(xi, yi), z = 0, 1, ... (7.17) Полагая z = 0, с помощью соотношения (7.17) нахо- дим значение сеточной функции z/t при х — хр. yt = у0 + hf(x0, у0). Требуемое здесь значение у0 задано начальным условием (7.10), т. е. y0 = Y (х0)= Yo. Аналогично могут быть най- дены значения сеточной функции в других узлах: z/г = yi + hf(xi, у^, Уп Уп-i^r hf (xn-i, уп-i) .
216 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ Построенный алгоритм называется методом Эйлера. Разностная схема этого метода представлена соотноше- ниями (7.17). Они имеют вид рекуррентных формул, с помощью которых значение сеточной функции yi+i в любом узле xi+i вычисляется по ее значению у, в пре- дыдущем узле Xi. В связи с этим метод Эйлера относит- ся к одношаговым методам. Блок-схема алгоритма решения задачи Коши (7.9), (7.10) методом Эйлера изображена на рис. 38. Задаются начальные значения х, у0, а также величина шага h и количество расчетных точек п. Решение получается в Рис. 38. Блок-схема метода Эйлера узлах х + h, х + 2/г, ,.х + + nh. Вывод результатов предусмотрен на каждом ша- ге. Если найденные значе- ния необходимо хранить в памяти машины, то следует ввести массив значений у0, У о • < •> У*- Рис. 39. Иллюстрация метода Эйлера На рис. 39 дана геометрическая интерпретация мето- да Эйлера. Изображены первые два шага, т. е. проил- люстрировано вычисление сеточной функции в точках х^ х2. Интегральные кривые 0, 1, 2 описывают точные решения уравнения (7.9). При этом кривая 0 соответ- ствует точному решению задачи Кошп (7.9), (7.10), так как она проходит через начальную точку А(хй, yD). Точ- ки В, С получены в результате численного решения за-
§ 2. ЗАДАЧА КОПТИ 217 дачи Коши методом Эйлера. Их отклонения от кривой О характеризуют погрешность метода. При выполнении каждого шага мы фактически попадаем на другую инте- гральную кривую. Отрезок АВ — отрезок касательной к кривой 0 в точке А, ее наклон характеризуется значе- нием производной Уа — Уо)- Касательная ВС уже проводится к другой интегральной кривой 1. Таким об- разом, погрешность метода Эйлера приводит к тому, что на каждом шаге решение переходит на другую инте- гральную кривую. Рассмотрим подробнее вопрос о по- грешности метода Эйлера. Погрешность е,- в точке Xi равна разности между значением щеточной функции г/, и точным значением искомой функции У (#i): ei = у{ — Y(xt). Эта погрешность состоит из двух частей: ei = ei + ei. Составляющая определяется погрешностью начального значения — — y0 — Y (х0). Как правило, начальное значение задается точно, т. е. y0~Y(x0), и тогда ев — 0 и следовательно, равна нулю та часть погрешности решения которая связана с е0. Погрешность обусловлена отброшенными членами в разложении в ряд Тейлора (7.16). На каждом шаге эта погрешность имеет порядок O(hz), так как именно члены такого порядка отброшены в (7.16). При нахождении решения в точке хп, отстоящей на конечном расстоянии L от точки хв, погрешность, в чем легко убедиться, суммируется. Суммарная погрешность, очевидно, равна nO(h2). Если учесть, что h=L/n, то для суммарной погрешности получаем окончательное вы- ражение: иО (/г2) =О (/г2) = О (Л). (7.18) гЬ Таким образом, мы показали, что метод Эйлера имеет первый порядок точности. Дадим еще одну схему метода Эйлера.. Значение пра- вой части /(я, У) уравнения (7.9) в схеме (7.17) возь- мем равным среднему арифметическому значению между /(я., yi) и /(^<+1» IA+i), т. е. вместо разностной схемы (7.17) напишем У г+1 = У г + у{) + /(Ji+1, !/i+i)], i = 0, 1, ... (7.19) Полученная схема является неявной, поскольку иско- мое значение yi+l входит в обе части соотношения (7.19)
218 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ и его, вообще говоря, нельзя выразить явно. Для вычис- ления yi+i можно применить один из итерационных ме- тодов. Если имеется хорошее начальное приближение у(, то можно построить решение с использованием двух ите- раций следующим образом. Считая у{ начальным при- ближением, вычисляем первое приближение уг+1 по фор- муле (7.17): yi+i^yi + hf^yt). (7.20) Новое значение yi+l подставляем вместо yl+i в правую часть соотношения (7.19) и находим окончательное зна- чение Уг+1 = Уг + 4 I/ У г) + Ж+П Уг+1)1- (7.21) Алгоритм (7.20), (7.21) можно записать в виде одного соотношения: ъ Уг+1 = У г + у 1/(^5, Уг) + /(-0+1, Уг + Ч Z/*))], (7.22) г — 0, 1, ... Эти рекуррентные соотношения описывают новую разностную схему, являющуюся модификацией метода Эйлера, которая называется методом Эйлера с пересче- том. Можно показать, используя разложение в ряд Тей- лора, что этот метод имеет второй порядок точности. Его применение к решению задачи Коши уменьшает в среднем значения погрешно- стей до величин О (Л2) вме- сто 0(h) в обычном методе Эйлера. На рис. 40 дана геомет- рическая интерпретация пер- вого шага вычислений при решении задачи Коши мето- дом Эйлера с пересчетом. Касательная к кривой Y (х) Рис. 40. Модифицированный метод Эйлера в точке (х0, у<>) проводится с угловым коэффициентом Уо — /Сто’ Уо)' С ее помощью методом Эйлера (7.17) най- дено значение уь которое используется затем для опре- деления наклона касательной /(ад, у г) в точке (Хг, У г)- Отрезок с таким наклоном заменяет первоначальный от-
§ 2. ЗАДАЧА КОШИ 219 резок касательной от точки .t0 + h/2 до точки xt. В ре- зультате получается уточненное значение искомой функ- ции в этой точке. Метод Эйлера с пересчетом можно получить и иначе, используя разложение функции в ряд Тейлора. Запишем это разложение в виде !/i+l = У г + ^Уг Н-2~ Уг + О {№)' (7.23) В этой схеме должен быть сохранен член с h2. Для этого аппроксимируем вторую производную с помощью отно- шения конечных разностей: 1,1+1 ~ +О(Л). Подставляя это соотношение в (7.23), получаем У г+1 — У г + + У г+1) + О №)• (7-24) Заменяя производные выражениями у'г = / (^г, У г), Уг+1 = / ^г+1, Vi+1), (7-25) где yi+l найдено по формуле (7.17) метода Эйлера, при- ходим к разностной схеме (7.21) метода Эйлера с пере- счетом. Такой способ вывода формулы (7.21) позволил получить оценку Погрешности метода. В соответствии с (7.24) погрешность на каждом шаге (локальная) имеет порядок /г3, а суммарная — порядок h2. Заметим, что при использовании неявной схемы (7.19) получается практически то же значение уг, при- чем наклон отрезка, соединяющий точки (гс0, Уи) и (xh yt), постоянный и равен наклону касательной к кривой в точ- ке ^о + Л/2. Однако применение схемы (7.19), требующей построения итерационного процесса для вычисления зна- чения yh привело бы к значительному возрастанию вре- мени счета на каждом шаге. С помощью метода Эйлера с пересчетом можно прово- дить контроль точности решения путем сравнения значе- ний Уг+г и yi+i и выбора на основании этого соответству- ющей величины шага h в каждом узле. А именно, если величина |j/i+i — z/t-+1| сравнима с погрешностями вычисле- ний, то шаг нужно увеличить; в противном случае, если эта разность слишком велика (например, |у>+1 — yt+i\> > 0.011 yi+1|), значение h следует уменьшить. Используя
220 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ эти оценки, можно построить алгоритм метода Эйлера с пересчетом с автоматическим выбором шага. Рекомендуем читателю составить такой алгоритм и построить соответ- ствующую блок-схему. Существуют и другие явные одношаговые методы. Наиболее распространенным из них является метод Рун- ге— Кутта. На его основе могут быть построены разност- ные схемы разного порядка точности. Приведем схему Рунге — Кутта четвертого порядка. Запишем алгоритм этого метода в виде Z/i+l = У г + £ (*о + + 2к2 + ^'з)> г — 0, 1, ..., к0^/(х{, у<), kl^.f(xi+h/2, yt+ko/2), (7.26) k2=fy(Xi + h/2, yi + kl/2), k3=^f(Xi + h, у( + кг). Таким образом, метод Рунге — Кутта требует на каждом шаге четырехкратного вычисления правой части уравне- ния f(x, у). Метод Эйлера (7.17) и его модифицированный вариант (7.22) также могут рассматриваться как методы Рунге — Кутта первого и второго порядков. Метод Рунге — Кутта (7.26) требует большего объема вычислении, однако это окупается повышенной точностью, что дает возможность проводить счет с большим шагом. Другими словами, для получения результатов с одинаковой точностью в методе Эйлера потребуется значительно меньший шаг, чем в ме- тоде Рунге — Кутта. Проведем сравнительную оценку рассмотренных мето- дов на простом примере, позволяющем получить также и точное решение. Пример. Решить задачу Коши dY/dx — 2(х2 + Y), У(0)=1, h = 0.1. Решение. Сформулированная задача Коши может быть решена известными из курса высшей математики методами. Опустив выкладки, запишем окончательное выражение для точного решения с учетом заданного на- чального условия. Оно имеет вид У=1.5е2я-х2-ж-0.5. Проведем теперь решение данной задачи численно с помощью рассмотренных выше методов. Результаты вы-
§ 2. ЗАДАЧА КОШИ 221 числений приведены в табл. 6. Как видно из этой табли- цы, самым точным является решение, полученное мето- дом Рунге — Кутта. Анализ решения с использованием метода Эйлера позволяет проследить рость погрешности с возрастанием х{. При Xi — 1 погрешность составляет по- чти 18%- Следовательно, при большом числе узлов метод Эйлера может привести к заметным погрешностям, и в таких случаях предпочтительнее пользоваться численны- ми методами высших порядков точности. Таблица 6 Метод Эйлера Модифицирован- ный метод Эйле- ра Метод Рунге—Кутта Точное реше- ние 0.1 1.2000 1.2210 1.2221 1.2221 0.2 1.4420 1.4923 1.4977 1.4977 0.3 1.7384 1.8284 1.8432 1.8432 0.4 2.1041 2.2466 2.2783 2.2783 0.5 2.5569 2.7680 2.8274 2.8274 0.6 3.1183 3.4176 3.5201 3.5202 0.7 3.8139 4.2257 , 4.3927 4.3928 0.8 4.6747 5.2288 5.4894 5.4895 0.9 5.7376 6.4004 6.8643 6.8645 1.0 7.0472 8.0032 8.5834 8.5836 С уменьшением шага h локальная погрешность метода Эйлера снизится, однако при этом возрастет число уз- лов, что неблагоприятно повлияет на точность результа- тов. Поэтому метод Эйлера применяется сравнительно редко при небольшом числе расчетных точек. Наиболее употребительным одношаговым методом является метод Рунге — Кутта. Рассмотренные методы могут быть использованы так- же для решения систем дифференциальных уравнений. Покажем это для случая системы двух уравнений вида dY/dx = <р(х, У, Z), dZIdx — ф (х, У, Z). Начальные условия зададим в виде У(^в)“ у®, Z(x0) = z8.
222 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ По аналогии с (7.26) запишем формулы Рунге — Кут- та для системы двух уравнений: 4 Уг+i =* Уг + o’ + 2/Cj 4- 2к2 4- к3), Zi+i\= z, + -g (Jo + 2Zj 4- 212 + /3), i — 0, 1, ..., кй yi, zt), z*)» (*» + 4’ + "T’Zi + ~r)’ Л 4^ (Ж* + 4’ + "f"’ Zi + "F/’ 7 if ,''h , ki , + -2 ’ + Zi + z2 =ьр(^г + 4’yi + 4“’Zi + “t)» k3 4<P (Xi + У{ + Zi + Ui + ^2, Zi + l2). К решению систем уравнений сводятся также задачи . Коши для уравнения высших порядков. Например, рас- смотрим задачу Коши для уравнения второго порядка d2Y/dx2^f{x, Y, dY/dx), Y(xo) = yo, Y' (z0) = z0. Введем вторую неизвестную функцию Z(x)—Y'(x). То- гда сформулированная задача Коши заменяется следую- щей: dZ/dx = j(x, Y, Z), . ' dY/dx = Z, Y(x0) = y0, Z(x0} = za. В заключение еще раз отметим особенность одноша- говых методов, состоящую в том, что для получения ре- шения в каждом новом расчетном узле достаточно иметь значение сеточной функции лишь в предыдущем узле. Это позволяет непосредственно начать счет при i = 0 по известным начальным значениям. Кроме того, указанная особенность допускает изменение шага в любой точке в процессе счета, что позволяет строить численные алгорит- мы с автоматическим выбором шага. 3. Многошаговые методы. Другой путь построения разностных схем основан на том, что для вычисления зна-
§ 2. ЗАДАЧА КОШИ 223 чения i/i+t используются результаты не одного, а к пре- дыдущих шагов, т. е. значения yi-h+l, yt-k+z, . •Уг. В этом случае получается ^-шаговый метод. Многошаговые методы могут быть построены следу- ющим образом. Запишем исходное уравнение (7.9) в виде с/У(х) = /(х, Y)dx. (7.27) Проинтегрируем обе части этого уравнения по х на отрез- ке [xi, ад+i]- Интеграл от левой части легко вычисляется: <4+1 J dY (х) = У (xi+1) - Y (,rj « yi+1 - у,. (7.28) Для вычисления интеграла от правой части уравнения (7.27) строится сначала интерполяционный многочлен Pk^i(x) степени к — 1 для аппроксимации функции f(x, У) на отрезке [xiy xi+i] по значениям /(x£_fe+), yi-k+t), f(Xi-h+2, yt~k+2), ../(#», Уг)- После этого можно написать xi+l хг+1 J f(x, Y)dxz& j Ph_i(x)dx,, (7.29) Ki Приравнивая выражения, полученные в (7.28) и (7.29), можно получить формулу для определения неиз- вестного значения сеточной функции yi+l в узле xi+l: xi+i У^1 = Уг + J Ph-i(x)dx. xi (7.30) На основе этой формулы можно строить различные многошаговые методы любого порядка точности. Порядок точности зависит от степени интерполяционного много- члена Pk_i(x), для построения которого используются зна- чения сеточной функции yt, yt-lt ..yt-k+i, вычисленные на к предыдущих шагах. Широко распространенным семейством многошаговых методов являются методы Адамса. Простейший из них, получающийся при к = 1, совпадает с рассмотренным ра- нее методом Эйлера первого порядка точности. В прак- тических расчетах чаще всего используется вариант мето- да Адамса, имеющий четвертый порядок точности и ис- пользующий на каждом шаге результаты предыдущих
224 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ четырех. Именно его и называют обычно методом Адамса. Рассмотрим этот метод. Пусть найдены значения Уг-г, yi-i, yt в четырех последовательных узлах (Zr = 4). При этом имеются так- же вычисленные ранее значения правой части /{_3, /i_2, /i-b ft. В качестве интерполяционного многочлена Ра(х) можно взять многочлен Ньютона (см. гл. 2, § 3). В случае постоянного шага h конечные разности для пра- вой части в узле Xt имеют вид АЛ—Л-А-ъ А7< = /<-ЗА-1 + 3/<-г-/(-з. Тогда разностная схема четвертого порядка метода Адам- са запишется в виде г2 е/,3 п,4 Уш - У, + />л + Mi + ТУ 42/< + т- Д%- (7.31) Сравнивая метод Адамса с методом Рунге — Кутта той же точности, отмечаем его экономичность, поскольку он требует вычисления лишь одного значения правой части на каждом шаге (метод Рунге — Кутта — четы- рех). Но метод Адамса неудобен тем, что невозможно на- чать счет по одному лишь известному значению у0. Рас- чет может быть начат лишь с узла х3. Значения уи у2, у3, необходимые для вычисления у3, нужно получить каким- либо другим способом (например, методом Рунге — Кут- та), что существенно усложняет алгоритм. Кроме того, метод Адамса не позволяет (без усложнения формул) из- менить шаг h в процессе счета; этого недостатка лишены одношаговые методы. Рассмотрим еще одно семейство многошаговых мето- дов, которые используют неявные схемы,— методы про- гноза и коррекции (они называются также методами предиктор-корректор}. Суть этих методов состоит в сле- дующем. На каждом шаге вводятся два этапа, использую- щих многошаговые методы: 1) с помощью явного метода '(предиктора) по известным значениям функции в пре- дыдущих узлах находится начальное приближение y,+i = «= у(/+1 в новом узле; 2) используя неявный метод (кор- ректор), в результате итераций находятся приближения ,.(1) ,.(2)
§ 2. ЗАДАЧА КОШИ 225 Один из вариантов метода прогноза и коррекции мо- • жет быть получен на основе метода Адамса четвертого порядка. Приведем окончательный вид разностных соот- ношений: на этапе предиктора й+1 - Vi + (55/,- - 59/w + 37/, _г - 8/м); (7.32) на этапе корректора Уг+1 = У г + "24 (9/»И + 19/i — ^/г-1 + /i-г)- (7.33) Явная схема (7.32) используется па каждом шаге один раз, а с помощью неявной схемы (7.33) строится итера- ционный процесс вычисления уг+1, поскольку это значе- ние входит в правую часть выражения /i+1 = f(xi+l, yt+l). Заметим, что в этих формулах, как и в случае метода Адамса, при вычислении yi+i необходимы значения се- точной функции в четырех предыдущих узлах: yt, yi-i, у;_2, гц_3. Следовательно, расчет по этому методу может быть начат только с значения г/4. Необходимые при этом yt, Уз, Уз находятся по методу Рунге — Кутта, у0 задается начальным условием. Это характерная особенность много- шаговых методов. Блок-схема решения задачи Коши с помощью рассмотренного метода прогноза и коррекции представлена на рис. 41. 4. Повышение точности результатов. Точность числен- ного решения можно повысить различными путями. В частности, этого можно достичь, применяя разностные схемы повышенного порядка точности. Однако такие схе- мы целесообразно строить лишь для уравнений с постоян- ными коэффициентами, поскольку в случае переменных коэффициентов схемы высоких порядков приводят к тру- доемким алгоритмам. Точность можно повысить также путем уменьшения значения шага h. Но и этот путь ограничен требованием экономичности, поскольку получение решения с необхо- димой точностью может потребовать огромного объема вычислений. На практике часто для повышения точности числен- ного решения без существенного увеличения машинного времени используется метод Рунге. Он состоит в том, что проводятся повторные расчеты по одной разностной схеме с различными шагами. Уточненное решение в совпадаю- 15 Л. и. Турчак
226 ГЛ. 7, ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ щих при разных расчетах узлах строится с помощью про- веденной серии расчетов. Предположим, что проведены две серии расчетов по схеме порядка к соответственно с шагами h и /г/2. В ре- зультате расчетов получены множества значений сеточной функции yh и yh/2. Тогда в соответствии с методом Рунге уточненное значение Уь сеточной функции в узлах сетке
§ 3. КРАЕВЫЕ ЗАДАЧИ 227 с шагом h вычисляется по формуле у? - + °(fe>+1)- i ~~~ X Порядок точности этого решения равен Л+1, хотя ис- пользуемая разностная схема имеет порядок точности к. Таким образом, решение задачи на двух сетках позволя- ет на порядок повысить точность результатов. Для схемы Эйлера первого порядка точности (Л'=1) формула Рунге принимает вид У* = 2yh/2 — yh + О (Л2), Аналогично можно записать формулу для уточнения ре- шения, полученного по методу Рунге — Кутта при к = 4. § 3. Краевые задачи 1. Предварительные замечания. В § 2 рассматривались задачи с начальными условиями, т. е. с условиями в од- ной (начальной) точке: при х = х0, t = 0 и т. п. На прак- тике приходится часто решать другого тппа задачи, когда условия задаются при двух значениях независимой пере- менной (на концах рассматриваемого отрезка). Такие задачи, называемые краевыми, получаются при решении уравнений высший порядков или систем уравнений. Рассмотрим, например, линейное дифференциальное уравнение второго порядка Y" +p(x)Y' + q(x)Y = f(x). (7.34) Краевая задача состоит в отыскании решения Y — Y(x) уравнения (7.34) на отрезке [а, 6], удовлетворяющего на концах отрезка условиям У(в) = Д Y (Ь) = В. (7.35) Граничные условия могут быть заданы не только в част- ном виде (7.35), но и в более общем виде: atY (а) + Р1У' (о) = Л, (7.36) a.2Y(b)+$2Y'(b) —В. Методы решения краевых задач довольно разнообраз- ные — это и точные аналитические методы, и приближен- ные, и численные (см. § 1, п. 2). Аналитические методы 15*
228 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ изучаются в курсе дифференциальных уравнений. Они имеются лишь для решения узкого класса уравнений. В частности, хорошо развит этот аппарат для решения линейных дифференциальных уравнений второго порядка с постоянными коэффициентами, которые широко исполь- зуются в исследовании различных физических процессов (например, в теории колебаний, динамике твердого тела и т. и.). Приближенные методы разрабатывались еще задолго до появления вычислительных машин. Однако многие из них и до сих пор не утратили своего значения. Это мето- ды коллокаций, наименьших квадратов и другие, основан- ные на минимизации невязок уравнений. Весьма эффек- тивными являются также метод Галеркина и его моди- фикации. Рассмотрим сущность приближенных методов. Для отыскания приближенного решения уравнения (7.34) с граничными условиями (7.3G) выбирается неко- торая линейно независимая (базисная) система дважды дифференцируемых функций ф0 (х), ф, (х), ..., фп(х). При этом ср0(х) удовлетворяет граничным условиям (7.35), а фДж), ...» фп(я) — соответствующим однородным граничным условиям. Искомое решение представляется в виде линейной комбинации базисных функций: У (х)= фо (х) + я1ф1 (х) + агф2 (х) + ... + апфп (х). (7.37) Подставляя это выражение в уравнение (7.34), можно найти разность между его левой и правой частями, кото- рая называется невязкой. Она является функцией пере- менной х и параметров щ, а2, ..., ап и имеет вид •ф(я, щ, Яг, ..fln)= У” + p(x)Y' + q(x)-f(x). (7.38) Коэффициенты щ, а2, ..ап стараются подобрать так, чтобы невязка была минимальной. Способ определения этих коэффициентов и характеризует тот или иной при- ближенный метод. В методе коллокаций выбираются п точек х — xt (i — = 1, 2, ..., и, Xi [a, &]), называемых точками коллока- ции, невязки (7.38) в которых приравниваются нулю. По- лучается система п линейных алгебраических уравнений относительно а2, ..., ап. Решая данную систему, можно . найти эти коэффициенты, которые затем подставляются в решение (7.37). Метод наименьших квадратов основан на минимизации суммы квадратов невязок в заданной системе точек
§ 3. КРАЕВЫЕ ЗАДАЧИ 229 Xt, ^2, • • •> х>п. Из этого условия также получается систе- ма линейных алгебраических уравнений относительно 01, Й2, • • ; #п. В основе метода Галеркина лежит требование ортого- нальности базисных функций <р0(л:), срДя), ..<pn(z) к невязке щ, ..ап), которое выражается в виде ь f (х, аг, ..., я„) (х) = 0, i = 1, 2, . .., п. а Из этих условий также получается система линейных алгебраических уравнений относительно коэффициентов линейного соотношения (7.37). Аналогично строятся некоторые другие приближенные методы. Все они сводятся к построению системы линей- ных алгебраических уравнений, из которой, если суще- ствует ее решение, находятся неизвестные коэффициенты. Они затем используются для построения решения как линейной комбинации базисных функций. Дальше будут рассмотрены численные методы. Их . можно разделить на две группы: сведение решения кра- евой задачи к последовательности решений задач Коши и непосредственное применение конечно-разностных ме- тодов. 2. Метод стрельбы. Рассмотрим краевую задачу для уравнения второго порядка, разрешенного относительно второй производной: У"=/(х, У, У'). (7.39) Будем искать решение У = У (х) этого уравнения на от- ’ резке [О, 1]. Любой отрезок [я, б] можно привести к это- му отрезку с помощью замены переменной , х — а 1 ~ Ь — а* Граничные условия на концах рассматриваемого отрезка примем в простейшем виде (7.35), т. е. У(О)=уо, У(1)=уь (7.40) Сущность метода стрельбы заключается в сведении решения краевой задачи (7.39), (7.40) к решению задач Коши для того же уравнения (7.39) с начальными ус- ловиями У(О) = ^о, y'(O)=fc = tga. (7.41)
230 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ Здесь ?/0 — точка на оси ординат, в которой помещается начало искомой интегральной кривой; а — угол наклона касательной к интегральной кривой в этой точке (рис. 42). Считая решение задачи Коши Y = Y (х, а) зависящим от параметра а, будем искать такую интегральную кри- вую У = У (х, а*), которая выходит из точки (0, i/0) и попадает в точку (0, гц). Таким образом, если а — а^, то решение Y(x, а) задачи Коши совпадает с решением Рис. 42. Метод стрельбы Y (х) краевой задачи. При х — 1, учитывая второе граничное усло- вие (7.40), получаем Y(1, а) = — l/i, или У(1, aJ-i/.-O. (7.42) Следовательно, получим урав- нение вида F(a) = 0, где F(cz) = = У(1, a)— yi. Это уравнение от- личается от привычной записи тем, что функцию F(a) нельзя пред- ставить в виде некоторого анали- тического выражения, поскольку она является решением задачи Коши (7.39), (7.41). Тем не менее для решения уравнения (7.42) может быть использован любой из рас- смотренных ранее методов решения нелинейных уравне- ний (см. гл. 5). Например, при использовании метода деления отрез- ка пополам поступаем следующим образом. Находим на- чальный отрезок [ао, «1], содержащий значение а*, на концах которого функция F(a) принимает значения раз- ных знаков. Для этого решение задачи Коши У (1, а0) должно при х-i находиться ниже точки уь а У(1, ccj выше. Далее, полагая а2 = (а0 + сц)/2, снова решаем за- дачу Коши при а = сс2 и в соответствии с методом деле- ния отрезка пополам отбрасываем один из отрезков: [«о, а2] или [а2, «1], на котором функция F (а) не меняет знак, и т. д. (см. блок-схему на рис. 24). Процесс поиска решения прекращается, если разность двух последова- тельно найденных значений а. меньше некоторого наперед заданного малого числа. В этом случае последнее реше- ние задачи Коши и будет принято за искомое решение краевой задачи. Описанный алгоритм называется методом стрельбы вполне оправданно, поскольку в нем как бы проводится «пристрелка» по углу наклона интегральной кривой в на-
§ 3. КРАЕВЫЕ ЗАДАЧИ 231 чальной точке. Следует отметить, что этот алгоритм хоро- шо работает в том случае, если решение У (х, а) не слиш- ком чувствительно к изменениям а; в противном случае мы можем столкнуться с неустойчивостью. Существуют другие алгоритмы метода стрельбы. В частности, одним из самых надежных является метод Ньютона. Он состоит в следующем. Пусть а0 — начальное приближение а, а а* = а04-Да— искомое значение а. Ре- шая задачу Коши при а = а0, находим У (я, а0). Тогда можем записать разложение в ряд с сохранением только линейных по Да членов: У(1, «„ + Да) «Г(1, а,) + £ Ла. Полагая Y (1, а0 + Да) = Y (1, а#) == yt, находим Да = У1 ~ (7 43) дГ(1, aj/da ‘ ( Производную в знаменателе этого выражения можно най- ти численно: dY(^ %) ~ ^(Ь«0 + ба)-У(1,а0) да ~ 6а • \ • / Здесь 6а — произвольное малое возмущение а. Для вычисления правой части (7.44) нужно решить задачу Коши при а = а0 + ба, в результате чего найдем значение У(1, а0 + 6а). Вычисляя затем по формуле (7.43) поправку Да, находим следующее приближение параметра a: ai — а0 + Да и т. д. Этот итерационный про- цесс продолжается до тех пор, пока очередное значение поправки Да по абсолютной величине не станет мень- шим заданного малого числа е. Блок-схема решения краевой задачи методом стрель- бы с применением пристрелки по методу Ньютона пред- ставлена на рис. 43. Решение задачи Коши входит в дан- ный алгоритм в качестве отдельного модуля с входным данным а. На выходе модуля получается решение У (х, а) в виде значений yt (i — 0, 1, ..., п) в точках х = 0, h, ... где п = 1/Л. Методы стрельбы могут также использоваться для ре- шения системы уравнений. В этом случае краевая задача (а не задача Коши) может возникнуть в силу того, что значения одной части искомых функций заданы при
232 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ Рис. 43. Блок-схема метода стрельбы одном значении независимой переменной (например, при х — 0), а другой —при другом (например, ж = 1). Тогда «пристрелка» проводится по неизвестным значениям ис- комых функций при ж = 0 до тех пор, пока не будут удов- летворяться соответствующие граничные условия при х = 1. Рассмотрим систему двух уравнений первого порядка У=А(ж, У, 2), Z' = f2{x, У, Z). (7.45) Граничные условия заданы в виде У(0)=уо, 2(1)= z,. (7.46) Процесс решения этой крае- вой задачи методом стрельбы состоит в следующем. Выби- рается некоторое а, аппрок- симирующее значение 2(0). Решается задача Коши для системы (7.45) с начальны- ми условиями У (0) = 1/о, 2(0) = ос. В результате реше- ния при х = 1 получается не- которое значение 2(1, а)=^ Если разность между этими величинами невелика, то найденное решение задачи Коши принимается за иско- мое решение краевой задачи. В противном случае нахо- дится уточненное значение ос и процесс повторяется. Таким образом, метод стрельбы может быть также использован как для решения краевых задач для уравне- ний высших порядков, так и для систем уравнений. j 3. Методы конечных разностей. Достоинство этих ме- тодов состоит в том, что они сводят решение краевой за- дачи для дифференциального уравнения к решению си- стемы алгебраических уравнений относительно значений искомой функции на заданном множестве точек. Это до- стигается путем замены производных, входящих в диф-
§ 3. КРАЕВЫЕ ЗАДАЧИ 233 ференциальное уравнение, их конечно-разностными ап- проксимациями (см. гл. 3, § 1). Рассмотрим сущность такого метода решения для диф- ференциального уравнения второго порядка (7.39) при заданных граничных условиях (7.40). Разобьем отрезок [0, 1] на п равных частей точками xt = ih (г = 0,1,..., и). Решение краевой задачи (7.39), (7.40) сведем к вычисле- нию значений сеточной функции у,- в узловых точках х,-. Для этого напишем уравнение (7.39) для внутренних узлов: y"(x,)=/(xj, Y(xt), У'(^)), г = 1, 2, ..., тг-1. (7.47) Заменим производные, входящие в эти соотношения, их конечно-разностными аппроксимациями: У'fa) - , y'W - Д+ir^itL, (7.48) Подставляя эти выражения в (7.47), получаехм систему разностных уравнений Уг-i, Уь i=l, 2, ..., п-1, (7.49) являющуюся системой п— 1 алгебраических уравнений относительно значений сеточной функции уц уг, ..., yn-t. Входящие в данную систему у0 (при г = 1) и уп (при i — = 72 — 1) берутся из граничных условий, если они зада- ются непосредственно. На практике часто граничные условия задаются в бо- лее общем виде: щУ(0) + &1У'(0) = с„ (7.50)' a2Y(l)+b2Y'(l) = c2. В этом случае граничные условия также должны пред- ставляться в разностном виде путем аппроксимации про- изводных У'(0) и У'(1) с помощью конечно-разностных соотношений. Если использовать односторонние разности, при которых производные аппроксимируются с первым порядком точности, то разностные граничные условия примут вид ^у0 + \ у -у (L51) Ы + b2 = Из этих соотношений легко находятся значения у0, Уп.
234 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ Однако, как правило, предпочтительнее аппроксими- ровать производные, входящие в (7.50), со вторым поряд- ком точности с помощью центральных разностей Г (0) = У- (1) - "л+'^8''1~1. (7.52) В эти выражения входят значения сеточной функции y~t и yn+i в так называемых фиктивных узлах x~t — —h и Xn+i — 1 + h, лежащих вне рассматриваемого отрезка. В этих узлах искомая функция также-должна быть опре- делена. Количество неизвестных значений сеточной функ- ции при этом увеличивается на два. Для замыкания си- стемы привлекают еще два разностных уравнения (7.49) — при i — 0, п. Таким образом, решение краевой задачи для диффе- ренциального уравнения сведено к решению системы ал- гебраических уравнений вида (7.49). Эта система явля- ется линейной или нелинейной в зависимости от того, линейно или нелинейно дифференциальное уравнение (7.39). Методы решения таких систем рассмотрены ра- нее (см. гл. 4, 5). Рассмотрим подробнее один частный случай, который представляет интерес ,с точки зрения практических при- ложений и позволяет проследить процесс построения раз- ностной схемы. Решим краевую задачу для линейного дифференциального уравнения второго порядка Y"(x)-p(x)Y(x) = f(x), (7.53) р(х)> 0, 0 С х 1, с граничными условиями вида У(0) = Д У(1) = Я. (7.54) Разобьем отрезок [0, 1] на части с постоянным шагом h с помощью узлов xt — ih (i = 0, 1, ..., п). Аппрокси- мируем вторую производную Y" копечпо-разностным со- отношением (7.48). При этом значения искомой функции в узлах Y (х{) приближенно заменяем соответствующими значениями сеточной функции у,. Записывая уравнение (7.53) в каждом узле с использованием указанных аппрок- симаций, получаем -i+1 ~ % + — - р (*<)/< = /М-
§ 3. КРАЕВЫЕ ЗАДАЧИ 235 Обозначим через р{, /,• соответственно значения р(я«), После несложных преобразований приведем послед- нее равенство к виду р,_1-(2 + hzpi)yit + yi+l = hzf{, i= 1, 2, ..., n- 1. (7.55) Получилась система n — 1 линейных уравнений, число которых совпадает с числом неизвестных значений сеточ- ной функции У1, уг, ..уп-i в узлах. Ее значения на кон- цах отрезка определены граничными условиями (7.54): у0 = А, уп = В. (7.56) Решая систему уравнений (7.55) с учетом условий (7.56), находим значения сеточной функции, которые приближенно равны значениям искомой функции. Пока- жем, что такое решение существует и сходится к точному решению при h -> 0. Для доказательства существования решения рассмот- рим систему линейных уравнений (7.55). Ее матрица яв- ляется трехдиагональной; на главной диагонали находят- ся элементы — (2 + Л2р.). Поскольку р(х)>0, то pt > 0, и диагональные элементы матрицы преобладают над остальными, так как в каждой строке модули этих эле- ментов больше суммы модулей двух остальных элементов, каждый из которых равен единице. При выполнении это- го условия решение системы линейных уравнений суще- ствует и единственно (см. гл. 4). Что касается сходимости решения, то здесь имеет ме- сто следующее Утверждение. Если функции р(х) и f(x) дважды непрерывно дифференцируемы, то при h ->• 0 разностное решение равномерно сходится к точному со скоростью Это — достаточное условие сходимости метода конеч- ных разностей для краевой задачи (7.53), (7.54). Система линейных алгебраических уравнений (7.55) с трехдиагональной матрицей может быть решена мето- дом прогонки (см. гл. 4,. § 2, п. 4). При этом условие p(z)>0 гарантирует выполнение условия устойчивости прогонки. Этот метод на практике используется также и при р (х) < 0, хотя успешный результат заранее предвидеть трудно. Для оценки получаемого решения в этом случае необходимо провести расчеты для разных значений шага
236 ГЛ. 7. ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ (не менее трех) и убедиться в том, что полученные зна- чения функции в одних и тех же узлах близки между со- бой и разность их уменьшается, что говорит о стремлении решения к некоторому пределу при h -> 0. Мы рассмотрели простейший случай линейного урав- нения. Значительно труднее решать нелинейные задачи. Рассмотрим краевую задачу для уравнения второго по- рядкам у"=/(^У), (7.57) У(0) = Л, У(1) = 5. (7.58) Используя метод конечных разностей, получаем систему разностных нелинейных уравнений Ю-i — 2у, + yi+i = h2f(Xi, у,], (7.59) Уь=А, уп = В. (7.60) В теории разностных схем доказывается, что разностное решение, определяемое разностными уравнениями (7.59), при h -> 0 сходится к точному. Достаточное условие схо- димости имеет вид 5//5У>0. (7.61) Система нелинейных алгебраических уравнений (7.59) может быть решена итерационными методами (см. гл. 5, § 3). Для ее решения используют также метод линеариза- ции, т. е. сведение решения нелинейной системы к реше- нию последовательности систем линейных алгебраических уравнений. Пусть найдено решение системы (7.59) в к-тл. итера- m (fe) ции. Тогда, подставляя известные значения tJi в пра- вые части системы (7.59J, получаем У?-" - 2у^+1) + у?+» ~ h*f fa, у^). (7.62) Следовательно, мы пришли к решению системы линейных алгебраических уравнений относительно значений у{ на к + 1-й итерации. Поскольку матрица этой системы трех- диагональна, то для ее решения на каждой итерации мо- жет быть использован метод прогонки. Требуется лишь задать некоторые начальные приближения у^ (г = == 1, 2, ..., и); значения уе, уп при этом определены гра- ничными условиями (7.60). Следует отметить, что сходимость данного итерацион- ного процесса довольно медленная. Достаточное условие
УПРАЖНЕНИЯ 237 сходимости имеет вид 1 .1 df I а 8 тах |дУ I < Это условие, а также условие (7.61) накладывают огра- ничения на правую часть f(x, У) исходного уравнения (7.57). Упражнения 1. Количество вещества х, участвующего в некоторой хими- ческой реакции, определяется уравнением dxjdt = —х, (t — вре- мя) . Найти количество вещества при t = 10 с, если в начальный момент оно равно 0.4 моль. Решение провести численным методом, результат сравнить с точным аналитическим решением. 2. Полный магнитный поток Ф катушки, равномерно намо- танной на сердечник прямоугольного сечения, определяется урав- нением d®jdr = nlnh/(2nr). Определить Ф при следующих данных: 7=1 А; ц = 80; размеры катушки: внутренний радиус /?, = 4 см, внешний радиус /?2 == — 6 см, высота h = 3 см, число витков п = 1500. Численное ре- шение сравнить с точным. 3. Изменить блок-схему метода Эйлера (см. рис. 38) так, чтобы результаты выводились все сразу после полного решения задачи. 4. Исследовать устойчивость задачи Коши для уравнения у' — = ку, решая это уравнение аналитически и задавая погрешность в определении координат начальной точки. 5. Построить блок-схему решения задачи Коши для системы двух уравнений первого порядка методом Эйлера. 6. Составить блок-схему решения уравнения первого порядка методом Эйлера с пересчетом. 7. Построить алгоритм решения задачи Коши для уравнения второго порядка модифицированным методом Эйлера с автомати- ческим выбором шага. 8. С помощью итерационного метода предиктор-корректор най- ти решение при х = ih и х = 5h (h — 0.1) для следующей задачи Коши: dY/dt = t + sin (Г/3), Г(0) = 0,3. 9. Составить блок-схему решения краевой задачи методом стрельбы с использованием метода давления отрезка пополам. 10. Построить алгоритм решения краевой задачи для уравне- ния Y" — p(x)Y — f(x) с граничными условиями общего вида.
ГЛАВА 8 УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ § 1. Элементы теории разностных схем 1. Вводные замечания. В гл. 7 рассматривались обык- новенные дифференциальные уравнения. Их решения за- висят лишь от одной переменной: у — у(х), u = u(t) и т. д. Во многих практических задачах искомые функ- ции зависят от нескольких переменных, и описывающие такие задачи уравнения могут содержать частные произ- водные искомых функций. Они называются уравнениями с частными производными. К решению дифференциальных уравнений с частными производными приводят, например, многие задачи меха- ники сплошных сред. Здесь в качестве искомых функций обычно служат плотность, температура, напряжение и др., аргументами которых являются координаты рассматривае- мой точки пространства, а также время. Полная математическая постановка задачи наряду с дифференциальными уравнениями содержит также неко- торые дополнительные условия. Если решение ищется в ограниченной области, то задаются условия на ее грани- це, называемые граничными (краевыми) условиями. Та- кие задачи называются краевыми задачами для уравне- ний с частными производными. Если одной из независимых переменных в рассматри- ваемой задаче является время t, то задаются некоторые условия (например, значения искомых параметров) в на- чальный момент #о, называемые начальными условиями. Задача, которая состоит в решении уравнения при задан- ных начальных условиях, называется задачей Коши для уравнения с частными производными. Прп этом задача решается в неограниченном пространстве и граничные условия не задаются. Задачи, при формулировке которых ставятся граничные и начальные условия, называются нестационарными (или смешанными) краевыми задачами. Получающиеся при этом решения меняются с течением времени.
§ 1. ЭЛЕМЕНТЫ ТЕОРИИ РАЗНОСТНЫХ СХЕМ 239 В дальнейшем будем рассматривать лишь корректно поставленные задачи, т. е. задачи, решение которых су- ществует и единственно в некотором классе начальных и граничных условий и непрерывно зависит как от этих ус- ловий, так и от коэффициентов уравнений. Решение не- корректно поставленных задач выходит за рамки данного краткого курса. Решение простейших задач для уравнений с частными производными в ряде случаев моя?ет быть проведено ана- литическими методами, рассматриваемыми в соответству- ющих разделах математики. Это относится в основном к некоторым уравнениям первого порядка, а также к урав- нениям второго порядка с постоянными коэффициентами. Аналитические методы полезпы не только тем, что дают возможность получать общие решения, которые могут быть использованы многократно. Они имеют также огром- ное значение для построения численных методов. Провер- ка разностных схем на известных решениях простейших уравнений позволяет оценить эти схемы, выяснить их сильные и слабые стороны. Данная глава посвящена численным методам решения задач для уравнений с частными производными. Это ос- новной класс методов, с помощью которых в настоящее время решаются прикладные задачи, моделируемые урав- нениями с частными производными. Численные методы требуют наличия ЭВМ большой мощности, т. е. обладаю- щих большим объемом памяти и высокой скоростью вы- числений. Среди численных методов широко распространенными являются разностные методы. Они основаны на введении некоторой разностной сетки в рассматриваемой области. Значения производных, начальные и граничные условия выражаются через значения функций в узлах сетки, в ре- вультате чего получается система алгебраических урав- нений, называемая разностной схемой. Решая эту систему уравнений, можно найти в узлах сетки значения сеточ- ных функций, которые приближенно считаются равными значениям искомых функций. Излагаемые в этой главе численные методы примени- мы к различным типам задач. Мы будем рассматривать лишь достаточно узкий класс задач для уравнений перво- го и второго порядков, линейных относительно производ- ных. (Напомним, что порядок дифференциального урав- нения определяется порядком старшей производной.)
240 гл. S. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ В случае двух независимых переменных а?, у эти уравне- ния можно записать в виде а —о + 2Ь + с— + (?5г- + е— + iu = g. дх2 д*ду ду2 дх (8.1) Здесь и — и (ж, у) — искомая функция. Коэффициенты а, Ь, с, d, е, / и правая часть g, вообще говоря, могут зави- сеть от переменных ж., у и искомой функции и. В связи с этим уравнение (8.1) может быть: а) с постоянными коэффициентами; б) лилейным, если g линейно зависит от и, а коэффициенты зависят только от ж, у, в) квази- линейным, если коэффициенты зависят от и; это самый общий вид уравнения (8.1). Существуют различные виды уравнений в зависимо- сти от соотношения между коэффициентами. Рассмотрим некоторые из них. При a = b — c = f — 0, d¥=0, е ¥= 0 по- лучается уравнение первого порядка вида ди ди дх^ Р ду (8.2) называемое уравнением переноса. На практике в этом уравнении одной из переменных может быть время t. То- гда его называют также эволюционным уравнением. Если хотя бы один из коэффициентов с, Ь, с отличен от нуля, то (8.1) является уравнением второго порядка. В зависимости от знака дискриминанта D — Ъг — ас оно может принадлежать к одному из трех типов: гиперболи- ческому (D > 0), параболическому (D = 0) или эллипти- ческому (Z)<0). Приведем примеры уравнений с частными производ- ными второго порядка, которые будем в дальнейшем рас- сматривать: волновое уравнение (гиперболическое) д2и_ 2 д2и и?~а (8.3) уравнение теплопроводности или диффузии (параболиче- ское) а>0; <8'4) уравнение Лапласа (эллиптическое) д2и д2и дх2 ду2
§ 1. ЭЛЕМЕНТЫ ТЕОРИИ РАЗНОСТНЫХ СХЕМ 241 Если правая часть уравнения (8.5) отлична от нуля, то оно называется уравнением Пуассона. Приведенные уравнения называются уравнениями ма- тематической физики. К их решению сводятся многие прикладные задачи. Прежде чем переходить к обсужде- нию численных методов решения указанных уравнений, рассмотрим основные вопросы построения разностных схем. 2. О построении разностных схем. Как уже отмечалось, построение разностных схем решения уравнений с част- ными производными основано на введении сетки в рас- сматриваемом пространстве. Узлы сетки являются расчет- ными точками. Пример простейшей прямоугольной области G(x, у) с границей Г в двумерном случае показан на рис. 44. Сто- роны прямоугольника а < х < Ъ, с у d делятся на элементарные отрезки точками xt = а + iht (i = 0, 1, ... ..., /) и yi = c+jh2 (/ = 0, 1, . •/)• Через эти точки проводятся два семейства координатных прямых х = const и у — const, образующих сетку с прямоугольной ячейкой. Любой узел этой сетки, номер которого (г, /), определя- ется координатами (х{, у3). Аналогично вводятся сетки для многомерных областей, содержащих более двух измерений. На pile. 45 показан элемент сетки в виде прямоугольного параллелепипеда Для трехмерной области. Прямоугольные сетки наиболее удобны при организа- Ч !и вычислительного алгоритма. Вместе с тем некоторые емы используют сетки с треугольными и даже шести- угольными ячейками. 16 т7 п П. Турчак
242 ГЛ- 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ Узлы сетки, лежащие на границе Г области G, назы- ваются граничными узлами. Все остальные узлы — внут- ренними. Поскольку начальные и граничные условия при постановке задач формулируются на границе расчетной области, то их можно считать заданными в граничных узлах сетки. Иногда граничные точки области не явля- ются узлами сетки, что имеет место для областей слож- ной формы. Тогда либо вводят дополнительные узлы на пересечении координатных линий с границей, либо гра- ницу приближенно заменяют ломаной, проходящей через близкие к границе узлы. На эту ломаную переносятся граничные условия. Рис. 46. Преобразование расчетной области В ряде случаев сложные криволинейные области с по- мощью перехода к новым независимым переменным уда- ется свести к простейшему виду. Например, четырех- угольную область G, изображенную на рис. 46, можно привести к единичному квадрату G' путем введения но- вых переменных ц вместо х, у с помощью соотношений t _ х~ * ~ Ф2 (У) — Фх (У)1 _ у ~ (х) — ф 1. преобразовать уравнения. К новым переменным нужно преобразовать уравнения, а также начальные и граничные условия. В области G можно ввести прямоугольную сетку, при этом в области G ей будет соответствовать сетка с неравномерно распо- ложенными узлами и криволинейными ячейками. В дальнейшем при построении разностных схем >IbI для простоты будем использовать прямоугольные сетки
§ 1. ЭЛЕМЕНТЫ ТЕОРИИ РАЗНОСТНЫХ. СХЕМ 243 , и с ячейками в виде прямоугольных параллелепипе- ов в трехмерном случае), а уравнения будем записывать в декартовых координатах (ж, у, z). На практике прихо- дится решать задачи в различных криволинейных систе- мах координат: полярной, цилиндрической, сферической ц др. Например, если расчетную область удобно задать в полярных координатах (г, ср), то в ней сетка вводится с шагами Аг и Д<р соответственно по радиус-вектору и по- лярному углу. Иногда и в простой расчетной области вводят нерав- номерную сетку. В частности, в ряде случаев необходимо проводить сгущение узлов для более точного расчета в некоторых частях рассматриваемой области. При этом области сгущения узлов либо известны заранее, либо определяются в процессе решения задачи (например, в зависимости от градиентов искомых функций). Для построения разностной схемы, как и в случае обыкновенных дифференциальных уравнений, частные производные в уравнении заменяются конечно-разност- ными соотношениями по некоторому шаблону (см. гл. 3, § 1). При этом точные значения искомой функции U за- меняются значениями сеточной функции и в узлах раз- ностной сетки. В качестве примера построим некоторые разностные схемы для решения уравнения теплопроводности при за- данных начальных и граничных условиях. Запишем сме- шанную краевую задачу в виде 8U _ tPu_ ~adxzi V{x, 0) = <p(x), ^>0, «>0, (8.6) £7(0, 0 = ^(0» 0^ W)» где ф(;г) — начальное распределение температуры U (при * = 0); фД/), ф2(0—распределение температуры на кон- цах рассматриваемого отрезка (ж = 0, 1) в любой момент времени t. Заметим, что начальные и граничные условия г??]Кны быть согласованы, т. е. U (0,0) = ср (0) = Мд (0), с(1 0)==ф(1) = 1|,г(0). введем равномерную прямоугольную сетку с помощью ^ординатпых линий z.= th (г = 0, 1, ..., Z), =/т (/ = и» 1» ..., J); h и т — соответственно шаги сетки по на- бавлениям х и t. Значения функции в узлах сетки обо- значим Ui = U (xit tj). Эти значения заменим соответ-
244 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ ствующими значениями сеточной функции и|, которые удовлетворяют разностной схеме. Заменяя в исходном уравнении (8.6) частные произ- водные искомой функции с помощью отношений конеч- ных разностей, получаем разностную схему ц1+1 ~ui “i+i~ 2,4 + ui-i Г ’ (8.7) i = 1, 2, ...,,7 — 1, / = 0, 1, ... В записи этой схемы для каждого узла использован шаб- лон, изображенный на рис. 47, а. l,J+\ i,j+^ l+Ki+l O' — о °-.. .....—о ° I, J i-],j h i,j h l + ],J а о Рис. 47. Шаблоны Для одного и того же уравнения можно построить раз- личные разностные схемы. В частности, если воспользо- ваться шаблоном, изображенным на рис. 47, б, то вместо (8.7) получим разностную схему ui+1 “ ui “i+1 ~ 2,4+1 + “i-l -- — a --, г---------------------------/г2 И в том и другом случае получается система алгеб- раических уравнений для определения значений сеточной функции во внутренних узлах. Значения в граничных узлах находятся из граничных условий и30 = 41 (0)« и1 = 4г &)• (8-9) Совокупность узлов при t — const, т. е. прп фиксиро- ванном значении у, называется слоем. Схема (8.7) позво- ляет последовательно находить значения п|+ (г — = 1, 2,...,/— 1) на /+1-м слое через соответствующие значения и\ на у-м слое. Такие схемы называются явными. Для начала счета прп J = 1 необходимо решение на начальном слое. Оно определяется начальным условием
§ i. ЭЛЕМЕНТЫ ТЕОРИИ РАЗНОСТНЫХ СХЕМ 245 (8.6), которое запишется в виде и? = ф(^), г = (8.10) В отличие от явной схемы каждое разностное уравне- ние (8.8) содержит на каждом новом слое значения неиз- вестных в трех точках, поэтому нельзя сразу определить эти значения через известное решение на предыдущем слое. Такие' схемы называются неявными. При этом раз- ностная схема (8.8) состоит из линейных трехточечных уравнений, т. е. каждое уравнение содержит неизвестную функцию в трех точках данного слоя. Такие системы ли- нейных уравнений с трехдиагональной матрицей могут быть решены методом прогонки (см. гл. 4, § 2), в резуль- тате чего будут найдены значения сеточной функции в узлах. Заметим, что в рассмотренном примере мы получаем двухслойные схемы, когда в каждое разностное уравне- ние входят значения функции из двух слоев — нижнего, на котором решение уже найдено, и верхнего, в узлах ко- торого решение ищется. С помощью рассматриваемого способа построения раз- ностных схем, когда входящие в уравнение отдельные частные производные заменяются конечно-разностными соотношениями для сеточной функции (пли сеточными выражениями), могут быть созданы многослойные схемы, а также схемы высоких порядков точности. Несмотря па то что этот способ получения разностных уравнений наиболее прост и поэтому широко использует- ся при разработке численных методов, существуют также другие способы построения разностных схем. Изложение этих вопросов читатель может найти в более полных ра- ботах по численным методам и теории разностных схем, список которых приведен в конце книги. 3. Сходимость. Аппроксимация. Устойчивость. Эти ос- новные понятия теории разностных схем уже обсужда- лись при построении численных методов для решения обыкновенных дифференциальных уравнений. При пере- ходе к уравнениям с частными производными качествен- но меняется характер рассматриваемых задач, поэтому необходимо снова рассмотреть эти понятия. Разумеется, мы не имеем здесь возможности изложить теорию разно- стных схем, но попытаемся привести самые необходимые понятия.
246 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ Исходную дифференциальную задачу, состоящую в решении уравнения с частными производными при задан- ных начальных и граничных условиях, запишем в опе- раторном виде: LU(x, t) = F(x, t), (х, t)^F. (8.11) Заметим, что это операторное уравнение включает не только исходное уравнение с частными производными, но и дополнительные (начальные и граничные) условия. Функция F(x, t) описывает правые части уравнения, а также начальные и граничные условия. Область С включает расчетную область G и границу Г. Дифференциальную задачу (8.11) заменяем разност- ной задачей относительно сеточной функции п, опреде- ленной в узлах сетки gh. Для простоты будем считать сетку зависящей от одного параметра h. Шаг по времени т выражается через h: т — rh, где г = const. Разностную задачу можно также записать в операторном виде: LhUh = fa {х, t)^gh. (8.12) Значения сеточной функции в узлах сетки (х{, tj)& <=gh приближенно заменяют значения искомой функции . Ui — U(xi, tj) в тех же узлах с погрешностями (8.13) Введем некоторое характерное значение этих погрешно- стей, например их максимальное по модулю значение на сетке бн = шах | 8п] . 13 Разностная схема (8.12) называется сходящейся, если при сгущении узлов сетки это значение погрешности стре- мится к нулю, т. е. если lim6u = 0. (8.14) h->0 Если при этом ди С Mh\ где М — const > 0, то разностная схема имеет к-й порядок точности. Говорят также, что она сходится со скоростью O(hk). Порядок точности схемы при наличии нескольких не- зависимых переменных можно также оценивать по зна- чениям шагов. В частности, при выполнении условия бн С M(hr + т’) разностная схема сходится со скоростью
§ 1. ЭЛЕМЕНТЫ ТЕОРИИ РАЗНОСТНЫХ СХЕМ 247 0(Лр + т'г) и имеет р-й порядок точности по h и q-й по- рядок по т. Запишем уравнение (8.12) для погрешности решения на сетке: 6zzh = ш, — Uh. Отсюда найдем пл = Uh + 6ггл, Подставляя это значение uh в разностное уравнение (8.12), получаем Lhdiih = Rh, Rh = fh- LhUh. (8.15) Величина Rh называется невязкой {погрешностью ап- проксимации) разностной схемы. Введем некоторую ха- рактерную величину невязки R, например R = шах | Rh |. (8.16) Тогда при R~O{hh) аппроксимация имеет k-й порядок относительно h. Если значения Лит независимы, то при R — O{hpJrxq) порядок аппроксимации разностной схемы р-й по пространству и q-й по времени. Разностная схема (8.12) аппроксимирует исходную дифференциальную задачу (8.11), если при измельчении сетки невязка стремится к нулю, т. е. если Ит/?=0. (8,17) Л-»0 г->о Аппроксимация такого типа, т. е. когда невязка стре- мится к нулю при стремлении к нулю Лит по любому закону без каких-либо условий, называется безусловной или абсолютной аппроксимацией. В случае условной ап- проксимации накладываются некоторые условия на раз- меры шагов по пространству и времени. Например, если R = О (h + т + т/Л2), то R -*• 0 при Л -* 0, т 0 и т/Л2 -*• “* 0, т. е. разностная задача аппроксимирует исходную при условии, что т < Л2. Разностная схема (8.12) называется устойчивой, если ее решение непрерывно зависит от входных данных, т. е. малому изменению входных данных соответствует малое изменение решения. Устойчивость характеризует чувстви- тельность разностной схемы к различного рода погрешно- стям, она является внутренним свойством разностной за- дачи, и это свойство не связывается непосредственно с исходной дифференциальной задачей (в отличие от схо- димости и аппроксимации). По аналогии с аппроксимацией устойчивость бывает Условной и безусловной в зависимости от того, наклады-
248 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ ваются или пет ограничения на соотношения между ша- гами по разным переменным. В теории разностных схем рассматриваются разные способы исследования аппроксимации исходной диффе- ренциальной задачи разностной и проверки устойчивости разностных схем. Здесь мы лишь отметим, что эти иссле- дования значительно проще, чем доказательство сходимо- сти разностного решения к точному. Поэтому пользуются следующим утверждением. Теорема. Если решение исходной дифференциаль- ной задачи (8.11) существует, а разностная схема (8.12) устойчива и аппроксимирует задачу (8.11) на данном решении, то разностное решение сходится к точному. Короче говоря, из аппроксимации и устойчивости сле- дует сходимость. Поэтому, доказав аппроксимацию и устойчивость разностной схемы, можем быть уверены в ее сходимости. Проиллюстрируем исследование разностных схем на примере рассмотренных выше двух схем для уравнения теплопроводности — явной схемы (8.7) и неявной схемы (8.8). Положим для простоты а=1. Будем считать, что решение Е(х, t) дифференциальной задачи (8.6) сущест- вует, а частные производные d2Uldt2 и дк1Лдхк непрерыв- ны и ограничены в расчетной области. Тогда в соответ- ствии с формулами численного дифференцирования для каждого узла (#,, t3) (г = 1, 2, ..., 7 — 1, 7 = 1, 2, ... ,.J — 1) можно написать следующие соотношения: «+1 — «« ди(х,, t-) (8.18) Найдем погрешность аппроксимации исходного уравнения (8.6) с помощью разностной схемы (8.7) для произвольного узла сетки (xit t}): • 1+1 — iA А,. — 2iA -j- Uj . T)1 * г г г +1 г ’ г—1 if, =------------------------------- г Т /,2 Подставим в это равенство соотношения (8.18), (8.19). При этом заметим, что значения U(xh t,) являются точ-
§ 1. ЭЛЕМЕНТЫ ТЕОРИИ РАЗНОСТНЫХ СХЕМ 249 ным решением уравнения (8.6); поэтому dU (х-, tA d2U(x., tA - })--------= 0. (8.21) ы дх2 v ' Следовательно, максимальное значение невязки с учетом (8.18), (8.19), (8.21) имеет порядок R = шах | R\ | = О (Л2 + т), (8.22) г,з Аналогичную оценку невязки можно получить и для раз- ностной схемы (8.8). Таким образом, разностные схемы (8.7) и (8.8) ап- проксимируют исходное дифференциальное уравнение (8.6) со вторым порядком по h и с первым порядком по т. Начальное и граничные условия задачи (8.6) аппрок- симируются на границах точно, поскольку здесь значе- ния сеточной функции равны значениям решения: и\ — U (Xj, tj), где (а?,-, /,)е Г, Г — граница расчетной об- ласти (Z = 0, х = 0, х = 1). Исследуем теперь устойчивость данных разностных схем. Начнем с явной схемы (8.7). Рассмотрим решение v вспомогательной разностной задачи для уравнения теп- лопроводности с некоторой ненулевой функцией / в пра- вой части и однородными начальными и граничными ус- ловиями. Запишем эту задачу в виде н , - г_______г __ г+1________г 1 г—1 , .-7 т ~ h2 + h v°i = 0, vl = 0, " v\ = 0, (8.23) (8.24) Найдем из (8.23) значение вспомогательной сеточной функции Vi+1 на верхнем слое: vl+1 == + (1 — 2Х) Vi + + xfi, (8.25)' А = x/h2. Допустим, что имеет место ограничение в виде нера- венства X 1/2. (8.26) Тогда Л + 11 — 2Л | + Л = Л + 1 — 2Х + Л== 1, Эти соотноше-
250 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ ния используем для оценки сеточного решения (8.25); шах 14+11 = max | Zn-_i + (1 — 27.) 4- Хп]+1 + тД | O^i^Z 0<i^Z ^тах|г’|'+т max |Д|. (8.27) При j — 0, учитывая (8.24), получаем max | v\ | if*, (8.28) O^i^I где /* — некоторое характерное значение функции / в уз- лах сетки, например /* = max | Д |. Аналогично при j ~ 1 i.7 . из (8.27) с учетом (8.28) находим max | и2 | o^i^I max + if* 2if*. Следовательно, для некоторого характерного решения v* в рассматриваемой области получаем оценку вида v* «S Jif* — cf*. (8.29) В качестве V* можно взять v* = max / v\ |. Это неравенство ij означает устойчивость разностной схемы (8.7) по правой части при выполнении условия (8.26). Можно показать, что при нарушении этого условия схема (8.7) будет не- устойчивой. Исследования устойчивости разностной схе- мы лишь по правой части в данном случае достаточно, поскольку начальное и граничные условия здесь аппрок- симируются точно. Итак, -'явная схема (8.7) условно устойчива. Из аппроксимации и устойчивости следует ее сходимость со скоростью O(h2 + т). Для исследования устойчивости неявной разностной схемы (8.8) снова рассматривается по аналогии с (8.23) вспомогательная задача с однородными начальными и граничными условиями, но на этот раз неявная; - v\ i?iii - 2pi+1 + "Д , j —~ -------------If + /r Отсюда для значений вспомогательной сеточной функ- ции получается система линейных алгебраических урав- нений - (1 + 2Х) п’+1 + ЛрЩ = - v\ - тД. (8.30)
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 251 Эта система может быть решена методом прогонки. Безус- ловная устойчивость неявной схемы (8.8) обеспечивается выполнением условий устойчивости метода прогонки для системы (8.30). Оценки устойчивости и сходимости разностных схем можно провести путем измельчения сетки (h -> 0, т -> 0). Однако это приводит к существенному увеличению объе- ма вычислений и возрастанию суммарных погрешностей. Многолетняя практика использования численных ме- тодов для решения инженерных задач на ЭВМ показы- вает, что применение той или иной разностной схемы, даже если она исследована теоретически, требует ее тща- тельной апробации при решении конкретной задачи. Для этого проводятся методические вычислительные экспери- менты, состоящие в расчетах с разными значениями ша- гов при разных исходных данных. Полезно также отла- дить методику с помощью тестовых задач, для которых либо удается получить аналитическое решение, либо име- ется численное решение, найденное другим численным методом. § 2. Уравнения первого порядка 1. Линейное уравнение переноса. При классификации уравнений с частными производными (8.1) отмечалось, что уравнения первого порядка называются также урав- нениями переноса. Это объясняется тем, что такие урав- нения описывают процессы переноса частиц в средах, распространения возмущений и т. п. В общем случае уравнения переноса могут иметь зна- чительно более сложный вид (например, интегро диффе- ренциальное уравнение Больцмана в кинетической теории газов). Однако здесь мы ограничимся линейным уравне- нием с частными производными первого порядка. Его решение представляет интерес не только с практической точки зрения; в еще большей степени это уравнение по- лезно при разработке и исследовании разностных схем. Будем считать, что искомая функция U зависит от времени t и одной пространственной переменной х. Тогда линейное уравнение переноса может быть записано в виде dV dU . /о дГ + ад~х -F(xrt). (8.31) Здесь а — скорость переноса, которую будем считать по- стоянной и положительной. Это соответствует переносу
252 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ (распространению возмущений) слева направо в положи- тельном направлении оси х. Характеристики уравнения (8.31) определяются соот- ношениями х — at — С. При постоянной а они являются Рис. 48. Область решения прямыми линиями, которые в даном случае (а > 0) на- клонены вправо (рис. 48). Расчетная область при ре- шении уравнения (8.31) мо- жет быть как бесконечной, так и ограниченной. В пер- вом случае, задавая началь- ное условие при t = 0: V(x, 0) = Ф(^), (8.32) получаем задачу Коши для полуплоскости (2 > 0, —< <;r<oo). На практике обычно приходится решать урав- нение переноса в некоторой ограниченной области (на- пример, в прямоугольнике 0 С / 71, 0 х < 1; см. рис. 48). Начальное условие (8.32) в этом случае зада- ется на отрезке h; граничное условие нужно задать при х = 0, т. е. на отрезке Z2, поскольку при а > 0 возмущения распространяются вправо. Это условие запишем в виде t7(0, Z)=V(0. (8.33) Таким образом, задача состоит в решении уравнения (8.31) с начальным и граничным условиями (8.32) и (8.33) в ограниченной области G; O^t^T, O^zCl. Правильно (корректно) поставить данную задачу мож-* но было бы с учетом вида решения уравнения (8.31), которое при F(x, /) = 0 имеет вид U^H(x-at). (8.34) В этом легко убедиться, подставляя (8.34) в уравнение (8.31). Здесь // — произвольная дифференцируемая функ- ция. Решение (8.34) называется бегущей волной (со ско- ростью а). Это решение постоянно вдоль каждой харак- теристики: при я — at = C искомая функция U-H(x — — at) = H(C) постоянна. Таким образом, начальные и граничные условия переносятся вдоль характеристик, по- этому они должны задаваться на отрезках Ц и 12 расчет- ной области G (см. рис. 48). Можно также построить аналитическое решение зада- чи Коши для неоднородного уравнения (8.31). Заметим
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 253 лишь, что решение этой задачи меняется вдоль характе- ристики, а не является постоянным. Рассмотрим разностные схемы для решения задачи (8-31) —(8.33). Построим в области G равномерную пря- моугольную сетку с помощью прямых X{ = ih (i = 0, 1, ..., 7), (7 = 0, 1, ..., 7). Вместо функций U(x, 7), F(x, t), Ф(л-) и W (0 будем рассматри- вать сеточные функции, значения кото- рых в узлах (х{, tj) соответственно рав- ны uf, fl, <pf, 1|У. Для построения разност- ной схемы необходимо выбрать шаблон. Примем его в виде правого нижнего уголка (рис. 49). При этом входящие Рис. 49. Пра- вый нижний уголок в уравнение (8.31) производные аппроксимируются ко- нечно-разностными соотношениями с использованием од- носторонних разностей: нН1 — ui I______г % • h (8.35) Решая разностное уравнение относительно единствен- ного неизвестного значения па j + 1-м слое, получаем следующую разностную схему: и3^1 = Zwi-i + (1 — X) ul + тД, (8.36) X = ax/h, i = 1, 2, ..7, j — 0, 1, ..., J — 1. Полученная схема — явная, поскольку значения сеточной функции в каждом узле верхнего слоя t = tj+i выражают- ся явно с помощью соотношений (8.36) через ранее най- денные ее значения на предыдущем слое. Для начала счета по схеме (8.36), т. е. для вычисле- ния сеточной функции на первом слое, необходимы ее значения на слое j = 0. Они определяются начальным ус- ловием (8.32), которое записываем для сеточной функции: u°i — <Р»» i = 0, 1, ..., 7. (8.37) Граничное условие (8.33) также записывается в сеточ- ном виде: н' = 7 = 1,2,...,/. (8.38) Таким образом, решение исходной дифференциальной задачи (8.31) — (8.33) сводится к решению разностной задачи (8.36) — (8.38). Найденные значения сеточной
254 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ функции и- принимаются в качестве значений искомой функции U в узлах сетки. Алгоритм решения исходной задачи (8.31)— (8.33) Рис. 50. Блок-схема реше- ния линейного уравнения переноса с применением рассмотренной разностной схемы достаточно прост. На рис. 50 представле- на его блок-схема. В соответ- ствии с этим алгоритмом в па- мяти ЭВМ хранится весь дву- мерный массив «i, и он цели- ком выводится на печать по окончании счета. С целью эко- номии памяти (и если эти ре- зультаты не понадобятся для дальнейшей обработки) можно хранить лишь значения сеточ- ной функции на двух сосед- них слояхu}it и- Рекомендуем читателю соответственным об- разом модифицировать пред- ставленный на рис. 50 алго- ритм и построить новую блок- схему для двухслойной схемы. Укажем теперь некоторые свойства данной разностной схемы. Она аппроксимирует исходную задачу с первым по- рядком, т. е. невязка имеет порядок О(/г + т). Схема ус- ловно устойчива; условие ус- тойчивости имеет вид 0 < т h/a. (8.39) Эти свойства схемы установ- лены в предположении, что ре- шение U (х, t), начальное и граничное значения Ф(,г) и Ф (/) дважды непрерывно диф- ференцируемы, а правая часть F(x, t) имеет непрерывные первые производные. Поскольку схема (8.36) устойчива и аппроксимирует исходную задачу, то в соответствии с приведенной в § 1
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 255 теоремой сеточное решение сходится к точному с первым порядком при h 0, т -> 0. Отметим, что при а < 0 усло- вие (8.39) 'не выполняется, и схема (8.36) не сходится. О"' W. i + к J Рис. 51. Левый нижний уголок Рис. 52. Правый верхний уголок Можно построить сходящуюся схему и для случая а < 0. В качестве шаблона для построения разностной схемы для уравнения (8.31) примем левый нижний уго- лок (рис. 51). Разностное уравнение в этом случае при- мет вид —t— + “—~~ f- (8.40) Эта схема является условно устойчивой (следовательно, сходящейся) при а < 0, если выполнено соотношение т —h/a, (8.41) которое аналогично условию (8.39). При а > 0 эта схема не сходится. При построении явной разностной схемы (8.36) про- изводная dU/dx в уравнении (8.31) аппроксимировалась с помощью значений сеточной функции на у-м слое; в ре- зультате получалось разностное уравнение (8.35), в ко- тором использовано значение сеточной функции и\+1 лишь в одном узле верхнего слоя. Если производную dUldx аппроксимировать на у + 1-м слое (шаблон изобра- жен на рис. 52), то получится неявная схема. Разностное Уравнение примет вид ’4+1~мЙ я __+а.------- (8,42)
256 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ Разрешая это уравнение относительно , приходим к следующей разностной схеме: i4+1 = И- + + т/| 1 л А ЛТ h’ (8.43) Это двухслойная трехточечная схема первого порядка точности. Она безусловно устойчива. Хотя формально данная разностная схема строилась как неявная, практи- ческая организация счета по ней проводится так же, как и для явных схем. Действительно, в правую часть уравнения (8.43) вхо- дит значение u\t\ па / + 1-м слое, которое при вычисле- нии u{+1 уже найдено. При расчете и}+1 значение «о11 бе- рется из граничного условия (8.38). По объему вычисле- ний и логике программы (см. рис. 50) схема (8.43) ана- логична схеме (8.36), однако безусловная устойчивость делает ее более удобной, поскольку исключается ограни- чение на величину шага. Схему (8.36) можно применять для решения задачи Коши в неограниченной области, поскольку граничное условие (8.38) в этой схеме можно не использовать. Рассмотрим еще одну разностную схему, которую по- 4-_1 -+1 - *+1 строим на симметричном прямоуголь- 4 ном шаблоне (рис. 53). Производная по t здесь аппроксимируется в виде полусуммы отношений односторонних конечных разностей в г — 1-м и < н -г-м узлах, а производная по х— . 4J в виде полусуммы конечно-разност- Рис 53. Прямо- ных соотношений на у-м и / + 1-м угольник слоях. Правая часть вычисляется в центре ячейки, хотя возможны и дру- гие способы ее вычисления (например, в виде некоторой комбинации ее значений в узлах). В результате указан- ных аппроксимаций получим разностное уравнение в виде 1 ( 2 \ = Л, (8.44) Гг = /(^ + №> tj + т/2).
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 257 Данная двухслойная четырехточечная схема также фор- мально построена как неявная. Однако из (8.44) можно j+i выразить неизвестное значение Щ через остальные, ко- торые предполагаются известными:. „Hi + + . «Г «... ----------------Г+Л---------------’ * “ т- Построенная схема имеет второй порядок точности. Она устойчива на достаточно гладких решениях. Все рассмотренные выше разностные схемы решения линейного уравнения переноса называются схемами бегу- щего счета. Они позволяют последовательно находить значения сеточной функции в узлах разностной сетки. Схемы бегущего счета, построенные для случая одной пространственной переменной х, можно обобщить на мно- гомерный случай. Рассмотрим для определенности сме- шанную задачу для двумерного линейного уравнения переноса dU , dU dU р, .« /о _ + Я1_ + а2_.;=/г(а?) г)> (8.46) О < х 1, О г/ =С 1, 0 < f < 7, U(x, у, 0) = Ф(хл), (8.47) *7(0, У, t)=Wdy, 0, U(x, О, t)=W2(x, t). (8.48) Здесь at > 0, а2 > 0 — скорости переноса вдоль осей х, у; (8.47)— начальное условие при t = 0; (8.48) — граничные ус- ловия при х — 0, у = 0. В трехмерной области (х, у, t) построим разностную сетку, ячейки которой имеют форму прямоугольного парал- лелепипеда. Для этого прове- дем координатные плоскости через точки деления осей х, у, t: Xi — ihi (7 = 0, 1, ... ..., Z), yj=jh2 (j = 0, 1, ... ..., J),ife = b (fc = 0,l, ..., K). Значение сеточной функции в Рис. 54. Шаблон для дву- мерного уравнения узле (i, /, 7с), с помощью которой аппроксимируются значения U(xf, у}. tk), обозначим через Построим без- условно устойчивую разностную схему первого порядка точности, аналогичную схеме (8.43). Шаблон изображен 17 д, и. Турчак
258 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ на рис. 54, где выделена одна ячейка разностной сетки. Сплошными линиями соединены узлы шаблона. Нижний слой (нижнее основание параллелепипеда) имеет номер к, верхний к + 1. По аналогии с (8.42) запишем разностное уравнение, аппроксимирующее дифференциальное уравнение (8.46): ,Л+1___..ft uM"1_______tA'*’1______________1Л+1 . -S.....+ a. h + а2 -» - Д. (8.49) Разрешим это уравнение относительно значения сеточной функции в узле (i, /, к + 1): fc+1 _ uAi + + Х2ци -I + Т/Ь Uii ~ 1 + \ + Ч 1 & (8.50) Х2 — ПзТ/Л-г. Вычислительный алгоритм этой схемы аналогичен ал- горитму одномерной схемы (8.43). Здесь также счет про- изводится по слоям к — 1, 2, ..., К. При к — 0 исполь- зуется начальное условие (8.47), которое нужно перепи- сать в разностном виде: A = <Pii- (8.51) На каждом слое последовательно вычисляются значения сеточной функции в узлах. При этом последовательность 5* 10* 15* 20* : г 4* 9* 14* 19» X 3* 8* 13* 18* 2* 7» 12» 17* X 1 • б« 11* 16* перехода от узла к узлу мо- жет быть различной: двигают- ся параллельно либо оси х, ли- бо оси у. Во втором случае последовательность вычисляе- 1J.1 мых значении следующая:«п , ,/+1 ,А+1 ./+1 ,fe+l На рис. 55 показана нумерация узлов, соответствующая данной последовательности вычисле- ний на каждом временном слое. Точками отмечены рас- Рис. 55. Последовательность четные узлы сетки, крестика- вычислений ми — граничные узлы, в кото- рых значения сеточной функ- ции задаются граничными условиями (8.48). Эти условия необходимо записать в сеточном виде: — 41 1)1 — 4'2 ^+1)’ (8.а2)
§ 2. УРАВНЕНИЯ первого порядка 259 При этом значение п^в угловой точке (z = 0, у — 0) в данной разностной схеме не используется. Рис. 56. Блок-схема решения двумерного уравнения Блок-схема решения смешанной задачи (8.46) — (8.48) ’ для двумерного уравнения переноса по схеме (8.50) с учетом сеточных начального и граничных условий (8.51) и (8.52) представлена на рис. 56. При этом неко- 17*
260 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ торые блоки (вычисление начальных значений ui}, зна- чений на границе нОз, пересылка щ, -* к13) даны схемати- чески, хотя каждый из них представляет циклический алгоритм. В данной блок-схеме предусмотрено хранение в памя- ти машины не полного трехмерного массива искомых значений и\}, а лишь значений на двух слоях: н,3- — ниж- ний слой, — верхний слой (искомые значения). Введен счетчик выдачи Z, решение выдается через каждые L сло- ев; при L = 1 происходит выдача результатов на каждом слое. Блок «Вычисление н13» производит вычисление ис- комого значения по формуле (8.50), которая в принятых на блок-схеме обозначениях имеет вид ,. _ VH + Mi-i J + Mi J-i + ТЛ; ij “ 1 + \ + Л2 2. Квазилинейное уравнение. Разрывные решения. Рассматривая линейное уравнение переноса, мы предпо- лагали, что точное решение задачи является гладкой функцией, причем при построении разностных схем тре- бовалась еще ее дифференцируемость нужное число раз. А сейчас мы будем изучать разрывные решения. Такие решения линейное уравнение переноса может иметь лишь в тех случаях, когда разрывы «заложены» в начальных или граничных условиях. Рассмотрим теперь квазилинейные уравнения, т. е. та- кие, которые линейны относительно производных искомой функции, однако сама функция может входить в коэффи- циенты уравнения. Одним из таких уравнений является простейшее квазилинейное уравнение переноса f + C7g = 0. (8.53) Это однородное уравнение, т. е. его правая часть равна нулю, что указывает на отсутствие поглощения частиц (энергии) или источников. Пусть в начальный момент времени (Z — 0) решение уравнения (8.53) задано в виде U(x, O)=t7o(x). (8.54) В уравнении (8.53) роль скорости переноса играет само решение U(x, t). Знак этой функции может быть произ- вольным, в том числе разным в различных частях расчет- ной области. Для простоты будем считать, что U (х, Z)>0.
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 261 Представим уравнение (8.53) в иной форме. Пусть U = dx/dt. Тогда уравнение примет вид dU dU dx ____р dt ' дх dt Левая часть этого уравнения представляет полную про- изводную по t сложной функции U — U(x(t), t). Таким образом, мы приходим к системе уравнений g = и, S- = О, (8.55) которая равносильна уравнению (8.53). Решение этой си- стемы (следовательно, и. решение исходного уравнения) не меняется вдоль прямых х = х0 + U о (х0) t (8.56) и равно U = ив(х0). Значение С70(л?0) соответствует на- чальному условию (8.54) в некоторой точке х = х0. Прямые линии (8.56) называются характеристиками. Вдоль характеристик уравнения вырождаются в некото- рые соотношения между дифференциалами функции, на- зываемые соотношениями на характеристиках. Характеристики (8.56) квазилинейного уравнения (8.53), вообще говоря, не являются параллельными пря- мыми, как это было в случае линейного уравнения. Если переписать (8.56) в виде t = (х — x0)/U0(xQ), то заметим, что тангенс угла наклона характеристик равен 1/Uo(xo). Таким образом, наклон характеристик может меняться в разных точках при f = 0. Поэтому, если функция U0(x) монотонно возрастает, то наклон характеристик слева на- право монотонно убывает (веер характеристик). В этом случае решение задачи (8.53), (8.54) однозначно опре- делено, поскольку через каждую точку полуплоскости t > 0 проходит одна характеристика, которая переносит в эту точку начальное значение. Такой случай показан на рис. 57. Рассмотрим теперь другой случай. Пусть функция U0(x) монотонно убывает (или является такой хотя бы на небольшом участке). Тогда наклон характеристик при движении слева направо увеличивается (рис. 58), что приведет к их пересечению. В точке пересечения решение не будет однозначным, поскольку каждая характеристика «принесет» в эту точку свое начальное значение. Поэто- му в таких точках решение считается разрывным. Точки
262 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ разрыва образуют линию разрыва в рассматриваемой об- ласти решения. Различают два вида разрывов: слабые разрывы, когда терпят разрыв производные, и сильные разрывы — разры- вы самого решения. Слабые разрывы в квазилинейном уравнении распространяются по характеристикам, силь- ные разрывы (в механике сплошных сред это обычно ударные волны) распространяются пе по характеристи- кам. В точках разрыва производные неопределенны, по- этому уравнение теряет смысл. Следовательно, задачу нужно как-то доопределить, заменив в точках разрыва дифференциальные уравнения некоторыми конечными соотношениями. Пусть х = <р(/) — уравнение линии разрыва, U~ и U+ — значения решения соответственно слева и справа от точки разрыва, причем V~ > U+ (только в этом слу- чае происходит пересечение характеристик). Тогда зна- чения производной dx/dt — ср' (t) на линии разрыва опре- деляют по формуле <p,(i) = (f7- + t7+) /2, U->U+. (8.57) Это соотношение на линии разрыва заменяет дифферен- циальное уравнение. Таким образом, решение задачи (8.53), (8.54), (8.57) ищется в классе разрывных функций. Перейдем к рассмотрению численных методов реше- ния данной задачи. Они подразделяются на две основные группы: методы с выделением разрывов и методы сквоз- ного счета. Методы с выделением разрывов являются модифика- циями рассмотренных выше методов. Различие состоит в том, что во всей области решение ищется обычным способом, а в окрестности линий разрыва счет проводит-
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 263 ся нестандартным образом. При этом обычно требуется найти сначала точки разрыва, которые к тому же не являются расчетными узлами. Такой естественный способ нахождения разрывных решений отпугивает многих поль- зователей сложностью алгоритма. В методах сквозного счета разрыв не выделяется, и весь расчет проводится по единой схеме, что весьма вы- годно при организации вычислений на ЭВМ. Разностные схемы, используемые для таких расчетов, называются однородными. Однако в этих схемах разрыв перестает быть разрывом в смысле изменения решения в одной точке. Он растягивается на несколько расчетных узлов, «размазывается». Рассмотрим этот вопрос подробнее. На рис. 59 изображено точное решение U в некоторый момент времени (сплошная линия). В точке х0 имеется разрыв, причем для простоты значения функции слева (U~) и справа (U+) приняты постоянными. При исполь- зовании некоторого метода сквозного счета получились значения сеточной функции, отмеченные точками. Мы видим, что сеточная функция является монотонной (в данном случае она не возрастает). Рис. 59. Разрывное решение Схемы, которые сохраняют монотонность решения разностной задачи, называются монотонными. В теории разностных схем доказывается следующий необходимый и достаточный признак монотонности линейной схемы. Теорема. Явная двухслойная разностная схема вида + a^i-h+i + . •. + cCnWi+i (8.58) монотонна тогда и только тогда, когда «1, а2, ..., ап — неотрицательные числа.
264 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ Можно также показать, что для линейного уравнения переноса такие схемы могут иметь только первый поря- док точности. Схемы высших порядков точности не явля- ются монотонными. На рис. 59 штриховой линией отме- чено решение, которое может быть получено сквозным счетом с использованием схемы второго порядка. Здесь наблюдается нарушение монотонности сеточной функции. «Размазывание» разрывов решения при переходе от дифференциальной задачи к аппроксимирующей ее раз- ностной схеме объясняется наличием в схеме так назы- ваемой аппроксимационной вязкости. В частности, схемы (8.36), (8.43) первого порядка точности обладают аппрок- симационной вязкостью, а схема второго порядка (8.45) ею не обладает. Понятие аппроксимационной вязкости применимо только для линейных разностных схем ви- да (8.58). Одним из приемов, используемых для расчета разрыв- ных решений в рамках нелинейных уравнений (и, в част- ности, квазилинейных), является введение понятия ис- кусственной вязкости (или псевдовязкости). Этот прием позволяет превратить разрывные решения в непрерывные и при этом достаточно гладкие. С этой целью в исходное уравнение вводится малая добавка (возмущение), и раз- рывное решение может быть получено как предел введен- ного гладкого решения при стремлении к пулю параметра возмущения. Итак, вместо исходного квазилинейного уравнения (8.53) рассмотрим уравнение dU dU , е2 д idu\2 л /& _п. тг + U т- + -ч- I— =0. (8.t>9) dt дх 2 дх \дх) ' ' Последний член этого уравнения есть искусственная вязкость, при этом параметр е мал. Ясно, что при малом значении е решения уравнений (8.53) и (8.59) при оди- наковых начальных условиях будут близкими, если эти решения достаточно гладкие (вторая производная огра- ничена). Рассмотрим теперь разрывное решение исходной за- дачи (8 53), (8.54). Пусть это решение представляет со- бой ступенчатую функцию (см. рис. 59) U~, x<Z at, и~ Г!+ , (8.60) U , xZ>at-, a={U~ + U+)/2, U~>U+, (8.61)
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 265 Это решение можно трактовать как ударную волну, дви- жущуюся со скоростью а. При этом £7~, U+ — некоторые постоянные. Легко убедиться в том, что функция (8.60) удовлетворяет как квазилинейному уравнению (8.53), так и соотношению (8.57), заменяющему па линии раз- рыва дифференциальное уравнение. Построим решение уравнения (8.59). Будем искать это решение в виде Ut (х, t) — f(x — at). (8.62) На это решение можно наложить асимптотическое усло- вие, которое состоит в том, что вдали от разрыва реше- ние Ue(x, t) уравнения (8.59) и решение U(x, t) уравне- ния (8.53), являющиеся гладкими функциями, близки, т. е. f(x — at) U±, х -> ±оо. (8.63) Решение (8.62) подставим в уравнение (8.59). При этом учтем, что функция f(x — at) является сложной функцией одного аргумента z = х — at. Ее производные равны . dU df dz _ dU df dz „ dt dz dt а? 1 dx dz dx i d I dU\2 _ dt ,/2\ _ 9 ,, df' dz _ dx\dx) dx^' ' ~ dz dx~ > * Подставляя эти выражения в уравнение (8.59), полу- чаем следующее обыкновенное дифференциальное уравне- ние относительно искомой функции f(x — at): -af' + ff' + err =0, или Г(е2/" +/ ~а) = 0. Приравнивая нулю каждый из сомножителей, получаем два значения функции /: А = Ci, fz = a + Cz sin [ (x — at) /e], (8.64) где Ci, C2 — постоянные. Из значений (8.64) с учетом (8.60), (8.61) можно по- строить решение, напоминающее «размазанную» ударную
266 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ волну (рис. 60), которое имеет вид (8.65) -.те о „те Рис. 60. Решение с искус- ственной вязкостью Это — гладкое решение, оно имеет даже кусочно непре- рывную вторую производную. При малом е зона перехо- да от U~ к U+ мала и реше- ние близко к разрывному. Таким образом, вместо на- хождения разрывного решения задачи (8.53), (8.54), (8.57) можно искать непрерывное решение уравнения (8.59) при малых значениях е. А это уравнение решается с по- мощью однородных разностных схем. Следует при этом об- ратить внимание на выбор шага h (а для неявных схем также т), с тем чтобы в области разрыва располагалось хотя бы несколько узлов. Примером разностной схемы для уравнения (8.59) с искусственной вязкостью может быть следующая схема: Упрощая это выражение и разрешая его относительно, неизвестного значения сеточной функции на j + 1-м слое, получаем u{+1 — у (u4 — — 2 . — |4(«i+i - ul-i) M+i - + «{-О- (8.66) Ctiir
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 267 Эта явная схема условно устойчива при выполнении не- равенства т h/U (х, t), (8.67) в котором роль скорости распространения возмущения а (для линейного уравнения) играет сама функция U. Разностная схема (8.66) пригодна для решения задач при наличии движущихся разрывов. 3. Консервативные схемы. Для нелинейных уравне- ний и соответствующих им разностных схем трудно до- казывать сходимость. Поэтому пользуются часто так на- зываемым понятием практической сходимости. Она со- стоит в том, что расчеты по данной схеме проводят многократно на сгущающейся сетке. Сходимость к неко- торому решению является подтверждением достоверности результатов. Однако такой способ годится только для гладких решений. При решении задач с разрывами такая сходимость решения к некоторому пределу при Л О может оказаться ложной, а получаемое при этом реше- ние — неверным. Подобных ситуаций можно избежать путем использо- вания консервативных разностных схем. Они основаны на дивергентной форме записи исходных уравнений. По- ясним суть этой формы. При описании физических про- цессов исходные уравнения могут записываться в диф- ференциальной форме относительно искомых функций (например, плотности, давления, скорости и др.). Суще- ствует и другая форма записи уравнений, т. е. когда в ка- честве искомых параметров принимаются масса, энергия, количество движения и т. п., а эти уравнения выражают законы сохранения этих параметров. Такая форма запи- си уравнений называется дивергентной. Формально квазилинейное уравнение переноса можно также записать в дивергентной форме: dU_ £ dt + дх \ 2 } (8.68) Проинтегрируем это уравнение по ячейке «<-1 < х =С х(, tj t tj+1: xi zj+l xi fj+l f , f dU , f , fa (u2\ n I ax I -^7 at + I ax I — — I di — 0, J ,1 dt J J dx \ 2 / 1 *i—1 b' xi—1
268 ХП. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ ИЛИ tj+1 J [t/R1 (я) - U’ (ж)] dx + J [и] (0 - Г?_1 (*)] dt = О, *i-l *3 (8.69) Последнее уравнение представляет собой точное инте- гральное уравнение для данной ячейки. Обычно при ис- следовании физических процессов оно выражает закон сохранения. Аналогичное интегральное уравнение можно получить для всей расчетной области х0 х xh O^t ^tj, если проинтегрировать уравнение (8.68) по этой области. Оно имеет вид Х1 J {UJ -1/°) dx + - J (J71 - /72) di = 0. (8.70) х0 0 Уравнения (8.69) и (8.70) можно трактовать как физические законы сохранения. При этом, если просум- мировать уравнение (8.69) по всем ячейкам, получается уравнение (8.70) для всей области. Таким образом, из законов сохранения по каждой ячейке следует закон сохранения для всей области. Схемы, не обладающие этим свойством, называются неконсервативными. При их суммировании по всем ячейкам появляется некоторая величина, называемая дисбалансом, которая приводит к нарушению закона сохранения для всей области. В консервативных схемах дисбаланс равен пулю. Приведем пример построения такой схемы. Для этого нужно использовать некоторый численный метод вычис- ления интегралов, входящих в уравнение (8.69). Восполь- зуемся для простоты формулой прямоугольников, причем узлы предполагаем совпадающими с узлами рассматри- ваемой разностной сетки. Окончательно получим разност- ную схему вида ------1 + \.г'. А-г~ч = 0. т-----2h Отсюда можно найти значение искомой функции на верх- нем слое с помощью решения на нижнем слое. Следова- тельно, это явная схема. Она обладает свойством консер-
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 269 вативности. Аналогичным образом, выбирая различные шаблоны, можно построить другие консервативные раз- ностные схемы. Консервативные схемы дают результаты с хорошей точностью как для разрывных, так и непрерывных' ре- шений. Они оказались полезными прп исследовании различных физических явлений. Конкретную схему для решения данной задачи выбирают с учетом требования этой задачи, предъявляемых к схеме (монотонность схе- мы, однородность, порядок аппроксимации и др.), кото- рые часто бывают противоречивы. Выбранная схема должна быть испытана па решении тестовых задач. 4. Системы уравнений. Характеристики. Для решения систем уравнений с частными производными первого по- рядка могут быть использованы различные разностные схемы метода сеток, разработанные для одного уравне- ния. С этой целью формально систему уравнений можно записать в векторной форме с помощью одного уравне- ния, и тогда вид разностных формул сохраняется таким же, как и для скалярного уравнения. Разница состоит в том, что вместо скалярной сеточной функции вводится векторная. Рассмотрим систему двух квазилинейных уравнений относительно искомых функций и(х, t), v(z, t): ди. ди , , du , , dv , ! . \ °11 dt + ai2dt + ^11 дх + ^12 QX — !\ *’), Л (8.71) OU , op , , du , , du . . . ' ' a2i fa + a22fa + dx + bzidx~ u' V^’ Коэффициенты cmn, bmn (m, n = l, 2) этой системы пере- менные и зависят от х, t, и, v. Введем следующие обо- значения: U = {и, и) — искомый вектор; ^ = 1/1, Ди- вектор правой части; А, В — матрицы коэффициентов: ~ а о „1 Гб Ь ~ . 11 12 „ 11 12 А ' , В = , . . .Я21 й22 1^21 Ь22. Запишем систему уравнений (8.71) в векторном виде: + Bf- = F, dt ox (8.72) Для решения этого квазилинейного векторного уравне- ния могут быть использованы различные разностные схемы, которые применяются для решения одного уравнения.
270 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ Мы не будем повторять сказанное ранее для одного уравнения, а остановимся на одном частном случае си- стемы (8.71), важном для приложений. Речь идет о си- стемах гиперболического типа. Введем матрицу С — Аа.— — В$, где а, 0 — некоторые числа. Тогда определитель этой матрицы det С == яиа~М a2ia~M (8.73) является квадратичной формой относительно а, Р, т. е. detC==^(a, 0) = <7iCt2 + fcap + <7зр2, (8.74) где коэффициенты qt, q2, q3 легко выразить через элемен- ты матриц А, В, раскрывая определитель (8.73). Система уравнений с частными производными первого порядка (8.71) называется гиперболической, если квад- ратичная форма (8.74) разлагается па вещественные ли- нейные множители: С(а, ₽) = (gicc-Vj₽) (р2а-v2p), причем векторы {pb vj, {р2, Уг) неколлинеарны. Эти век- торы в каждой точке плоскости (z, t) образуют два направления, которые называются характеристическими. Линия, касательная к которой в каждой точке имеет характеристическое направление, называется характери- стикой. Через каждую точку проходят две характеристи- ки, соответствующие двум характеристическим направле- ниям. Таким образом, всю плоскость (х, t) можно по- крыть двумя семействами характеристик (рис. 61). Заметим, что в случае системы уравнений (8.71) с по- стоянными коэффициентами характеристические направ- ления, если они существуют, постоянны для всех точек плоскости. Им соответствуют два семейства прямолиней- ных характеристик. В самом общем случае, когда коэф- фициенты системы (8.71) зависят от х, t, и, и, характе- ристики могут существовать в одной части плоскости (х, t) и отсутствовать в другой. Следовательно, гипербо- личность системы (8.71) может быть не на всей плоско- сти, а лишь в некоторой области. Наряду с гиперболическими системами существуют также параболические (с одним семейством характери- стик) и эллиптические (действительных характери- стик нет).
§ 2. УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 27! Характеристики можно использовать для построения алгоритма численного решения системы уравнений с част- ными производными в области ее гиперболичности. Та- кой способ решения называется методом характеристик. Не приводя подробных выкладок и опуская сами фор- мулы, изложим идею метода характеристик. Рассмотрим задачу Коши. Пусть при 1 — 0 заданы начальные значе- ния функций и(х), v(x). Выбираем любой отрезок [a, fe] на оси х и разбиваем его па части точками Ао, At, ..., А„ (рис. 62). В данном случае принято п = 4. Рис. 61. Характеристики Из точки А о проводим характеристику первого семей- ства, из At — второго. Находим точку пересечения В„. Используя некоторые соотношения (характеристические) вдоль отрезков характеристик А0В0 и AtB0, заменяющих исходные уравнения, вычисляем искомые функции в точ- ке Во. Аналогично находим решение в других точках слоя В. При этом в отличие от метода сеток этот слой не является прямолинейным отрезком t — const, а опре- деляется точками пересечения характеристик. Далее вычисляем искомые значения в точках слоев С, D и т. д. При этом каждый раз (при решении задачи Коши) при переходе от слоя к слою число узлов умень- шается на единицу, так что на последнем слое получает- ся лишь один узел. Область решения задачи Коши пред- ставляет собой криволинейный треугольник с кусочно гладкими сторонами. При решении краевой задачи используются значения искомых функций на границах. В этом случае расчетная область изменяется; она прилегает к границе х«const, на которой заданы значения функций щ v. При этом
272 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ вблизи границы используются характеристики одного се- мейства, выходящие из границы и попадающие в расчет- ную область. Если граничные условия задаются при двух значениях х, то алгоритм метода характеристик значи- тельно усложняется. Достоинством метода характеристик является то, что он основан на физической сущности задачи, поскольку возмущения распространяются по характеристикам.' Ме- тод позволяет выявить разрывы в решении. Недостатком метода является нерегулярность получаемой сетки, по- скольку узлы располагаются неравномерно (в точках пе- ресечения характеристик). Для устранения этого недостатка разработаны так называемые сеточно-характеристические методы. Их идея состоит в том, что сетка фиксируется заранее, а характе- ристики проводятся «назад» из узлов j + 1-го слоя до пе- ресечения с /-м слоем. Значения и, и в точках пересече- ...------------- а х- в д7-+1 Рис. 63 ния вычисляются путем интерполя- ции по ранее найденному решению в узлах /-го слоя. Геометрическая интерпретация сеточно-характеристического метода показана на рис. 63. Здесь точками отмечены заранее выбранные уз- лы; штриховые линии — отрезки характеристик. Значе- ния функций в точках пересечения А и В находятся ин- терполированием решения в узлах {i—i, j), (i, /) и (i+1, /).Эти значения используются для определения решения в расчетном узле (г, /+ 1). § 3. Уравнения второго порядка 1. Волновое уравнение. Одним из наиболее распрост- раненных в инженерной практике уравнений с частными производными второго порядка является волновое урав- нение, описывающее различные виды колебаний. Посколь- ку колебания — процесс нестационарный, то одной из независимых переменных является время t. Кроме того, независимыми переменными в уравнении являются так- же пространственные координаты л:, у, z. В зависимости от их количества различают одномерное, двумерное и трехмерное волновые уравнения. Одномерное волновое уравнение описывает продоль- ные колебания стержня, сечения которого совершают
§ 3. УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 273 (8.75) функция t. В этом плоскопараллельные колебательные движения, а также поперечные колебания тонкого стержня (струны) и дру- гие задачи. Двумерное волновое уравнение используется для исследования колебаний тонкой пластины (мембра- ны). Трехмерное волновое уравнение описывает распрост- ранение волн в пространстве (например, звуковых волн в жидкости, упругих волн в сплошной среде и т. и.). Рассмотрим одномерное волновое уравнение, которое можно записать в виде * д2и . д2и —- = a2 dt2 дх2 Для поперечных колебаний струны искомая V (х, t) описывает положение струны в момент случае аг — Т/р, где Т — натяжение струны, р — ее ли- нейная (погонная) плотность. Колебания предполагаются малыми, т. е. амплитуда мала по сравнению с длиной струны. Кроме того, уравнение (8.75) записано для слу- чая свободных колебаний. В случае вынужденных коле- баний в правой части уравнения добавляется некоторая функция /(я, $), характеризующая внешние воздействия. Сопротивление среды колебательному процессу не учи- тывается. Простейшей задачей для уравнения (8.75) является задача Коши: в начальный момент времени задаются два условия (количество условий равно порядку входящей в уравнение производной по t): U\t=0 = U(x, 0) = (p(x), <9t7/dZ|t=0 = i])(;r)'. (8.76) Эти условия описывают начальную форму струны U = = ср(х) и скорость ее точек ф(я). На практике чаще приходится решать не задачу Ко- ти для бесконечной струны, а смешанную задачу для ограниченной струны некоторой длины I. В этом случае задают граничные условия на ее концах. В частности, при закрепленных концах их смещения равны нулю, и граничные условия имеют вид = О, U\x^ = 0. (8.77)' Рассмотрим некоторые разностные схемы для реше- ния задачи (8.75) — (8.77). Простейшей является явная трехслойная схема крест (шаблон показан на рис. 64). Заменим в уравнении (8.75) вторые производные искомой 18 Л. И. Турчак
274 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ функции U по t и х конечно-разностными соотношения- ми с помощью значений сеточной функции в узлах. сетки (xt, tj): ui+1 - 2ui + Ч-1 _ 2 “ 2uji + Ui-1 t2 a i — 1, 2, .... 7-1, y = l, 2, ..., J~ 1. Отсюда можно найти явное выражение для значения сеточной функции на / + 1-м слое: и{Ь1 = 2 (1 — X) и- + X (i?i+1 + nj-i) — и^1, X = а2т2/к2. (8.78) Здесь, как обычно в трехслойных схемах, для определе- ния неизвестных значений на j + 1-м слое нужно знать решения на /-м и / — 1-м сло- ях. Поэтому начать счет по формулам (8.78) можно лишь для второго слоя, а решения на нулевом и первом слоях должны быть известны. Они находятся с помощью началь- ных условий (8.76). На нулевом слое имеем u? = <p(zf), i = 0,1, ...,/. (8.79) на первом слое воспользуемся вторым начальным условием (8.76). Производную dU/dt заменим конечно-разностной аппроксимацией. В шем случае полагают Рис, 64. -О Шаблон явной схемы получения решения простей- О = - л т W__ h шее) Из этого соотношения можно найти значения функции на первом временном слое: и} — + Tip (xj), i = 0,1,..., I. сеточной Отметим, что аппроксимация начального условия в ви- де (8.80) ухудшает аппроксимацию исходной дифферен- циальной задачи: погрешность аппроксимации становится порядка О(А2 + т), т. е. первого порядка по т, хотя сама
§ 3. УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 275 схема (8.78) имеет второй порядок аппроксимации по h и т. Положение можно исправить, если вместо (8.81) взять более точное представление Вместо dV/dt нужно взять ip (я). А выражение для вто- рой производной можно найти с использованием уравне- ния (8.75) и первого начального условия (8.76). Получим Тогда (8.82) принимает вид • 2 2 и\ = и0, + Tip (я,) + —7- <₽" (^i), i = 0,1, ..., 7, (8.83) Разностная схема (8.78) с учетом (8.83) обладает по- грешностью аппроксимации порядка O(h2 + т2). При решении смешанной задачи с граничными усло- виями вида (8.77), т. е. когда па концах рассматривае- мого отрезка заданы значения самой функции, второй порядок аппроксимации сохраняется. В этом случае для удобства крайние узлы сетки располагают в граничных точках (яо = О, Xi — l). Однако граничные условия могут задаваться и для производной. Например, в случае сво- бодных продольных колебаний стержня на его незакреп- ленном конце задается условие dU/dx\x=l = 0. (8.84) Если это условие записать в разностном виде с пер- вым порядком аппроксимации, то погрешность аппрокси- мации схемы станет порядка Ofh + т2). Поэтому для со- хранения второго порядка данной схемы по h необходимо граничное условие (8.84) аппроксимировать со вторым порядком. Рассмотренная разностная схема (8.78) решения за- дачи (8.75)— (8.77) условно устойчива. Необходимое и достаточное условие устойчивости имеет вид ат/h < 1. (8.85)' Следовательно, при выполнении этого условия и с уче- том аппроксимации схема (8.78) сходится к исходной задаче со скоростью O(h2 + т2). Данная схема часто ис- . пользуется в практических расчетах. Она обеспечивает 18*
276 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ приемлемую точность получения решения U (х, tj, кото- рое имеет непрерывные производные четвертого порядка. Блок-схема решения задачи (8.75) — (8.77) с помощью схемы приведена на рис. 65. Здесь приведен простейший алгоритм, когда все значе- ния сеточной функции, об- разующие двумерный мас- сив, по мере вычисления хранятся в памяти ЭВМ, а после решения задачи про- исходит вывод результатов. Можно было бы предусмот- реть хранение решения лишь на трех слоях, что сэкономи- ло бы память. Вывод ре- зультатов в таком случае можно производить в про- . цессе счета (см. рис. 56). Существуют и другие разностные схемы решения волнового уравнения. В част- ности, иногда удобнее ис- пользовать неявные схемы, чтобы избавиться от ограни- чений на величину шага, налагаемых условием (8.85). Эти схемы обычно абсолютно устойчивы, однако алгоритм решения задачи и програм- ма на ЭВМ усложняются. ; + 1 о данной явной разностной Рис. 65. Блок-схема решения волнового уравнения -О У ~ /-1 °--------------° 4 -1 4 I + 1 Рис. 66. Шаблон неявной схемы Построим простейшую неявную схему. Вторую произ- водную по t в уравнении (8.75) аппроксимируем, как и ранее, по трехточечному шаблону с помощью значений
§ 3. УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 277 сеточной функции па слоях / — 1, /, / + 1. Производную по х заменяем полусуммой ее аппроксимации на j + 1-м и / — 1-м слоях (рис. 66): , J+1 9. J -4- 2 / ,,з+1 — J+1 ,,3—1 2гР—1-4-н5— 1 \ ui Mi^ui a f uj+i ^ui—l ui±l Mi Л-цг-1 ] T2 2 + h* )' (8.86) Из этого разностного соотношения можно получить си- стему уравнений относительно неизвестных значений се- точной функции на / + 1-м слое (/ = 1, 2, ...): Wj±l — (1 + 2Х) u\+r + W-tl = (1 + 2Х) и’-1 — - X (u& + - 2ut (8.87) Х = а2т2/7г2, i = 1,2, 1. Полученная неявная схема устойчива и сходится со скоростью O(h2 + x2). Систему линейных алгебраических уравнений (8.87) можно, в частности, решать методом прогонки. К этой системе следует добавить разностные начальные и граничные условия. В частности, выражения (8.79), (8.81) или (8.83) могут быть использованы для вычисления значений сеточной функции на нулевом и первом слоях по времени. При наличии двух или трех независимых простран- ственных переменных волновые уравнения соответственно имеют вид d2V 9(д2и , д2и\ -- = (г I ---- -4- -- I. dt2 \дх2 ду2 )' д2С 2 (d2U , d2U , dt2 \дх2 ду1 dz2 ) Для них также могут быть построены разностные схемы по аналогии с одномерным волновым уравнением. Разни- ца состоит в том, что нужно аппроксимировать производ- ные по двум или ' трем пространственным переменным, что, естественно, усложняет алгоритм и требует значи- тельно больших объемов памяти и времени счета. Под- робнее двумерные задачи будут рассмотрены ниже для уравнения теплопроводности. 2. Уравнение теплопроводности. Ранее (см. § 1, п. 2) уже были построены разностные схемы решения смешан-
278 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ ной задачи для одномерного уравнения теплопроводности: dU д U л ___________л л.___л /q qq\ = г”» O^x^.1, t 0, (8.88) дх U(x, 0) = (р(ж), .(8.89) г/(0, 0 = 4i(0, ^(1,0 = 440- (8.90) Были получены две двухслойные схемы — явная и неяв- ная. В явной схеме значения сеточной функции н|+1 = = и (Xi, tj+1) на верхнем j + 1-м слое вычислялись с по- мощью решения на нижнем слое: цО1 = Xw;+1 + (1 — 2Х) и{ + g д X — ax/h2, i = 1,2, ..., I — 1. Данная схема сходится к решению исходной задачи со скоростью О(Л2 + т). Она устойчива при выполнении условия X = ax/h2 < 1/2. (8.92) При X = 1/2 получается особенно простой вид рекуррент- ных соотношений (8.91): 4й = (4+i + u’_i)/2. (8.93) Условие устойчивости (8.92) накладывает ограничение на шаг по t при выбранном значении h, что характерно для явных схем. Построим простейшую неявную схему. Производную д21Лдх2 аппроксимируем на j + 1-м слое: д2и ~ Ц+1 — 2«Ji+1 + дх2 ~ h2 В этом случае получается трехдиагональная система ли- нейных алгебраических уравнений относительно значений сеточной функции в узлах верхнего слоя, которая имеет вид Хи& - (1 + 2Х) и{+1 + ХнЩ = - и{, 1 = 1, 2, ..., Z - 1. (8.94) Эта система может быть решена методом прогонки. При этом разностное решение сходится к точному со вторым порядком по h и с первым порядком по х. Схема (8.94) безусловно устойчива.
§ 3. УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 279 Выражения (8.91) и (8.94) определяют значения се- точной функции во внутренних узлах, а решение на гра- нице находится из граничных условий, которые зависят от конкретной постановки задачи. В частности, если гра- ничные условия имеют вид (8.90), то на каждом слое и0 == Я5! GA UJ = ^2 (t})- (8.95) В граничные условия может также входить производ- ная искомой функции (температуры). Например, если конец стержня х = 0 теплоизолирован, то условие имеет вид = 0. (8.96) В этом случае, как и при решении волнового уравнения, данное условие нужно записывать в разностном виде. Перейдем к построению разностных схем для уравне- ния теплопроводности с двумя пространственными пере- менными. Положим для простоты а = 1. Тогда это урав- нение можно записать в виде & дх1 + ду2 ' (8.97) Пусть при t — 0 начальное условие задано в виде U(x, у, 0) — ц>(х, у). (8.98) В отличие от волнового уравнения, требующего два на- чальных условия, в уравнение теплопроводности входит только первая производная по t, и необходимо задавать одно начальное условие. Часто задачи теплопроводности или диффузии, описы- ваемые двумерным уравнением (8.97), решаются в огра- ниченной области. Тогда, кроме начального условия (8.98), нужно формулировать граничные условия. В част- ности, если расчетная область представляет прямоуголь- ный параллелепипед O^x^l, O^ysz 1, 0 < t < Т (рис. 67), то нужно задавать граничные условия на его боковых гранях. Начальное условие (8.98) задано на нижнем основании параллелепипеда. Введем простейшую сетку с ячейками в виде прямо- угольных параллелепипедов, для чего проведем три се- мейства плоскостей: Xi = ihi (г = 0, 1, ..., /), у, — jh2 (/ = 0, 1, ..., /), th = kr (к = 0, 1, ..., К). Значения се- точной функции в узлах (х,-, у,, th) обозначим символом «ц. Используя эти значения, можно построить разностные
280 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ схемы для уравнения (8.97). Рассмотренные выше схемы легко обобщаются на двумерный случай. Построим явную разностную схему, шаблон которой изображен на рис. 68. Аппроксимируя производные отно- шениями конечных разностей, получаем следующее сеточ- ное уравнение: ~ “ij = ui+lJ~2uij + ui-l,i , 1 ~ 2иЪ + х h* Отсюда можно найти явное выражение для значения сеточной функции на к 4* 1-м слое: = (1 — 2А* — 2К2)и^ 4* Aj (u^+ij + 4- 4- X2 (wiл i + Ui j—i), = т/Al, X2 — i/h^. (8.99) Условие устойчивости имеет вид 4- Х2 = т/hf 4- т/Л2 < 1/2 (8.100) При %! 4- Л2 = 1/2 получается особенно простой впд схе- мы (8.99): *4/1 = М + ^2 (MU+i + Mu-i)’ (8.101) Полученная схема сходится со скоростью О (Л2, Л2, т). Рис. 68. Шаблон двумер- ной схемы Формулы (8.99) или (8.101) представляют рекуррент- ные соотношения для последовательного вычисления се- точной функции во внутренних узлах слоев к — 1, 2, ... ..., К. На нулевом слое используется начальное условие (8.98), которое записывается в виде u°ij = <р (xh ijj). (8.102)
§ 3. УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 281 h h й h Значения uOj, Ujj, ui0, u^j в граничных узлах вычисляются с помощью граничных условий. Блок-схема решения смешанной задачи для двумер- ного уравнения теплопроводности изображена на рис. 69. Здесь решение хранится на двух слоях: нижнем (мас- сив Vn) и верхнем (массив иу). Блоки граничных условий необходимо сформировать в зависимости от конкретного вида этих условий. Вывод результатов производится на каждом слое, хотя можно ввести шаг выдачи (см. рис. 56). Можно построить абсолютно устойчивую неявную схе- му для решения уравнения (8.97), аналогичную схеме (8.94) для одномерного уравнения теплопроводности. Ап- проксимируя в (8.97) вторые производные по простран- ственным переменным на к + 1-м слое, получаем следую- щее разностное уравнение: 1Л4-1 uh . kA-1 । «Л 4-1 _о, Л 41 _Д_ иа uij _ ui-m гиа , цщ+1 гз + (8.103) Это уравнение можно записать в виде системы линей- ных алгебраических уравнений относительно значений сеточной функции на каждом слое: ut+ij) — (1 + 2АТ 4- 2Х2)иу+1 + + ^2 + Utt+1) — — Uij> — ТА1» ^2 — (8.104) i=l, 2, ..., Z-l, j = 1, 2, ..., J-l. К этой системе уравнений нужно добавить граничные ус- ловия для определения значений сеточной функции в гра- ничных узлах (т. е. при i = 0, 7; j == 0, J). На нулевом слое решение находится из начального условия (8.98), представленного в виде (8.102). Система (8.104), полученная для двумерного уравне- ния теплопроводности, имеет более сложный вид, чем ана- логичная система (8.94) для одномерного случая, которую можно решить методом прогонки. Таким образом, распро- странение неявно!! схемы на многомерный случай приво- дит к значительному усложнению вычислительного алго- ритма и увеличению объема вычислений. Недостатком явной схемы (8.99) является жесткое ог- раничение на шаг по времени т, вытекающее из условия
282 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ Рис. 69. Блок-схема решения двумерного уравнения теплопровод- ности.
§ 3. УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 283 (8.100). Существуют абсолютно устойчивые экономичные разностные схемы, позволяющие вести расчет со сравни- тельно большим значением шага по времени (т ~ Л) и требующие меньшего объема вычислений. Две из них бу- дут рассмотрены в п. 3. 3. Понятие о схемах расщепления. Основой построения рассматриваемых схем является разбиение расчета на од- ном шаге по времени, т. е. перехода от Zc-ro к к + 1-му слою на отдельные этапы. Такие схемы называют схема- ми расщепления или схемами дробных шагов. Они сохра- няют преимущества как явных схем (простой вычисли- тельный алгоритм), так и неявных (возможность счета с большими значениями шага по времени) и лишены при- сущих этим схемам недостатков. Одной из таких схем, используемых для решения за- дач при наличии двух пространственных переменных, яв- ляется схема переменных направлений (в литературе можно встретить также название продольно-поперечная схема). Суть этой схемы состоит в том, что шаг по вре- мени т делится на два полушага. На первом из них вто- рая производная по одной из координат, например dzU/dx2, аппроксимируется на промежуточном слое к +1/2, т. е. используется неявная аппроксимация; в этом случае дЧЛду2 аппроксимируется на слое к, т. е. явно. На вто- ром полушаге наоборот, неявная аппроксимация исполь- зуется только по направлению у. Соответствующая разностная схема для двумерного уравнения теплопроводности имеет вид .Л+1/2 _ ,Л .Л+1/2 _ О.Л+1/2 _1_ .Л+1/2 h _ oft I „k Uij Uij. Ui+l,j £uij ~T , ui,j+l — Zuij + T/2 hl ’ hf . (8.105) „»+!_„»+» -2^+»*^ , uftfl- 2“" w ~ hl hl (8.106) Таким образом, вместо разностного уравнения (8.103) в чисто неявной схеме мы получили два уравнения, каждое из которых, по существу, соответствует неявной схеме по одному из координатных направлений. Уравнения (8.105), (8.106) можно переписать в виде систем линейных алгебраических уравнений относительно значений искомых функций соответственно в узлах
284 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ к + 1/2-го и к + 1-го слоев: - (1 + 2^)г4+1/2 + = = (2Х2 - 1) - Ха (и^+1 + (8.107) Mj-i - (1 + 2Х2) и^1 + хХт+г = = (2Хх - 1) 4+1/2 - \ (^Л,/2 + (8.108) Х1=т/(2/г1), Х2 = т/(2/г2), i=l, 2, ..., I, / = 1, 2, ..., Л К этим системам уравнений необходимо добавить началь- ные условия в виде (8.102), а также граничные условия на каждом из этих дробных по времени шагов. Матрицы систем (8.107) и (8.108) трехдиагональные, и для решения этих систем может быть использован метод прогонки. При этом сначала необходимо решить систему уравнешш (8.107), из которой находятся значения сеточ- ной функции nJ1*1/2. Эти значения используются затем •j для вычисления искомых значении из системы (8.108). Заметим, что диагональные элементы матриц систем (8.107) и (8.108) преобладают, поэтому выполняются ус- ловия устойчивости прогонки. Эго также обеспечивает су- ществование и единственность решения данных систем, т. е. разностного решения. Приведенная схема переменных направлений безусловно устойчива, опа сходится со ско- ростью О (Л2 + hl 4- т2). Как уже отмечалось, рассмотренная схема весьма эф- фективна для случая Двух пространственных перемен- ных. Однако на случай трех и более переменных она не- посредственно не обобщается. Рассмотрим другой тип схем — локально-одномерные схемы. Их построение основано на введении на каждом шаге по времени промежуточных этапов, на каждом из которых записывается одномерная аппроксимация по од- ному из пространственных направлений. Многомерная задача «расщепляется» на последовательность одномер- ных задач по каждой из координат. Поэтому такие схе- мы называют схемами расщепления по координатам. Заметим, что в подобных схемах отсутствует аппрок- симация на каждом промежуточном этапе, т. е. на про- межуточных этапах используемые одномерные' разност-
§ 3. УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 285 ные схемы не аппроксимируют исходное уравнение. Здесь имеет место лишь суммарная аппроксимация на слоях с целыми номерами. Погрешности аппроксимации промежуточных слоев при суммировании уничтожаются. Такие схемы с суммарной аппроксимацией называются аддитивными. Схема расщепления по координатам для двумерного уравнения теплопроводности может быть записана в виде ~ = “i+ij ~ J т л? >Л+1 3/ Н&+1 -I- 1Л+1 uij uij = ui,i+i zuii 1 i = 2, .... I, 7=1, 2, ..., Л Она фактически представляет собой двукратную неяв- ную схему для одномерного уравнения теплопроводно- сти: на первом этапе находятся вспомогательные значе- ния иц, на втором — искомые значения сеточной функ- ции и^\ Получающиеся системы уравнений имеют трехдиагональные матрицы и могут быть решены с по- мощью метода прогонки. Схема безусловно устойчива, она сходится со скоростью О + h% + х). Из построения локально-одномерной схемы ясно, что она легко обобщается на случай произвольного числа пе- ременных. При этом каждая новая переменная требует введения одного промежуточного этапа на каждом шаге по времени. Другая группа методов расщепления основана на рас- щеплении задачи по физическим процессам. На каждом шаге по времени исходная сложная задача, описываю- щая некоторый физический процесс при наличии не- скольких влияющих на него факторов, расщепляется на более простые задачи. В настоящее время имеется несколько схем расщеп- ления по физическим процессам в вычислительной аэро- динамике. Например, прп исследовании течений сжимае- мого газа каждый шаг по времени можно проводить в два этапа. На первом из них определяется изменение па- раметров течения под влиянием только давления без учета процессов переноса. Второй этап состоит в пере- счете полученных на первом шаге промежуточных ре-
286 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ зультатов с учетом процессов переноса. Изложение воп- росов, связанных с построением указанных схем, можно найти в специальной литературе. 4. Уравнение Лапласа. Многие стационарные физиче- ские задачи (исследования потенциальных течений жид- кости, определение формы нагруженной мембраны, за- дачи теплопроводности и диффузии в стационарных слу- чаях и др.) сводятся к решению уравнения Пуассона вида ffiU d2U . d2U —г + -Т2- + —Г = Л*, z)- (8-109) дх ду dz называется рассматри- Если F(x, у, z) = 0, то уравнение (8.109) уравнением Лапласа. Для простоты будем вать двумерное уравнение Лапласа д2'и . д2и п _ 2 ‘ Г — дх2 ду2 Решение этого уравнения будем искать для некоторой ограниченной области G изменения независимых пере- менных х, у. Границей области G является замкнутая линия L. Для полной формулировки краевой задачи кроме уравнения Лапласа нужно задать граничное усло- вие на границе L. Примем его в виде Щх, У) L = ф(я, у). (8.111) Задача, состоящая в решении уравнения Лапласа (или Пуассона) при заданных значениях искомой функ- ции на границе расчетной области, называется задачей Дирихле. Одним из способов решения стационарных эллипти- ческих задач, в том числе и краевой задачи (8.110), (8.111), является их сведение к решению некоторой фиктивной нестационарной задачи (гиперболической или параболической), найденное решение которой при доста- точно больших значениях t близко к решению исходной задачи. Такой способ решения называется методом уста- новления. Поскольку решение U(x, у) уравнения (8.110) не за- висит от времени, то можно в это уравнение добавить равный нулю (при точном решении) член dUldt. Тогда уравнение (8.110) примет вид dll _ д2и &и 01 дх2 ду2 (8.112)
S 3. УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 287 Это — известное нам уравнение теплопроводности, для которого в и. 3 уже строились разностные схемы. Оста- ется только задать начальное условие. Его можно при- нять практически в произвольном виде, согласованном с граничными условиями. Положим £/1/=о = 1Ия, у). (8.113) Граничное условие (8.111) при этом остается стационар- ным, т. е. не зависящим от времени. Процесс численного решения уравнения (8.112) с ус- ловиями (8.113), (8.111) состоит в переходе при от произвольного значения (8.113) к искомому стацио- нарному решению. Счет ведется до выхода решения на стационарный режим. Естественно, ограничиваются ре- шением при некотором достаточно большом t, если ис- комые значения на двух последовательных слоях совпа- дают с заданной степенью точности. Метод установления фактически представляет ите- рационный процесс решения задачи (8.112), (8.113), (8.111), причем на каждой итерации значения Искомой функции получаются путем численного решения некото- рой вспомогательной задачи. В теории разностных схем показано, что этот итерационный процесс сходится к ре- шению исходной задачи, если та- кое стационарное решение суще- + * ствует. Для решения задачи Дирихле можно также построить разност- L-\,j t,j l + \,j ную схему путем аппроксимации °— ' 0 уравнения (8.110). Введем в пря- моугольной области G сетку с по- мощью координатных прямых х = const и у = const. Примем для W*~ 1 простоты значения шагов по пе- ременным х и у равными h (пред- полагается, что стороны области Рис. 70. Шаблон для уравнения Лапласа G соизмеримы). Значения функции U в узлах (xt, yt) заменим значениями сеточной функции п,,-. Тогда, аппрок- симируя в уравнении (8.110) вторые производные с по- мощью отношений конечных разностей, получим разност- ное уравнение (шаблон изображен на рис. 70): ui+l,i , M»J+1 + (8.114)
288 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ Данное уравнение можно представить в виде систе- мы линейных алгебраических уравнений относительно значений сеточной функции в узлах. Эту систему можно записать в виде п1+1,} + } + Uit }+i + Ui' j-! — 4un = 0, (8.115) i==l, 2, Z—1, /=1, 2, ...,/-1. Значения сеточной функции в узлах, расположенных на границе расчетной области, могут быть найдены из граничного условия (8.111): noj = (p(^o, т/J, иц = ($(%!, у}), j = 0, 1, J; Н£о = (р(х{, у0), Uij = q(Xi, yj), i = 0, 1, ..., Z. В теории разностных схем доказывается, что решение построенной разностной задачи существует, а сама схема устойчива. Перейдем теперь к практическому вычислению иско- мых значений, т. е. к решению системы (8.115). Каждое уравнение системы (за исключением тех, которые соот- ветствуют узлам, расположенным вблизи границ) содер- жит пять неизвестных. Одним из наиболее распростра- ненных методов решения этой системы линейных урав- нений является итерационный метод. Каждое из урав- нений записываем в виде, разрешенном относительно значения иц в центральном узле (см. рис. 70): Uy = -^-(ui+li; +и$-и+ Uij+1 + (8.116) Алгоритм решения задачи Дирихле с использовани- ем итерационного метода решения разностных уравне- ний (8.116) изображен в виде блок-схемы на рис. 71. В представленном алгоритме предусмотрено вычисление начальных значений Иц. Иногда полагают иц — 0 для всех г,/. Итерационный процесс контролируется макси- мальным отклонением М значений сеточной функции в узлах Для двух последовательных итераций. Если его величина достигнет некоторого заданного малого числа е, итерации прекращаются и происходит вывод резуль- татов. Рассмотренные разностные схемы метода сеток ис- пользуют конечно-разностные аппроксимации входящих
§ 3, УРАВНЕНИЯ ВТОРОГО ПОРЯДКА 289 19 Л, И, Турчак
290 ГЛ. 8. УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ в уравнения производных по всем переменным. В ряде случаев уравнение с частными производными удобно привести к системе обыкновенных дифференциальных уравнений, в которых оставлены производные искомой функции лишь по одной переменной. Такой способ можно использовать и для решения уравнения Лапласа (8.110). Пусть требуется решить для него задачу Дирихле в прямоугольнике ABCD (рис. 72). Разобьем прямоугольник на полосы с помощью прямых, па- раллельных оси х. Для опре- деленности проведем три от- резка Zi, к, ls, которые разде- лят прямоугольник на четыре полосы постоянной ширины h. На каждом из этих отрезков сеточная функция и зависит только от одной переменной х, т. е. и, — Ui(x) (i — 1, 2, 3). На отрезках 1В и Ц значения По(-т) и п4(д) заданы граничными условиями. Построим разностную схему для определения значе- ний сеточной функции и\х). Аппроксимируя в уравне- нии (8.110) вторую производную по у с помощью отно- шения конечных разностей, получаем d\ , Mi+1 ~ 2мг + Hi-1 _ А dx2 + h2 i = 1,2,3. (8.117) Таким образом, решение задачи Дирихле (8.110), (8.111) сводится к решению краевой задачи для системы обыкновенных дифференциальных уравнений (8.117) от- носительно значений искомой функции вдоль прямых Zi, 12, 13. В этом состоит метод прямых. Граничные усло- вия для уравнений (8.117) при х — а, х — Ь можно по- лучить из уравнений щ(й) = <р(а, у,), щ(Ь) = <р(&, гд), г = 1, 2, 3. (8.118) Направление дискретизации у обычно легко выбрать в тех случаях, когда заранее известен характер поведе- ния искомой функции; это направление должно соответ- ствовать направлению наибольшей гладкости функции. Метод прямых широко используется для решения не- стационарных задач. Например, если имеются две неза-
УПРАЖНЕНИЯ 291 висимые переменные ж, I, а искомый параметр является гладкой функцией переменной ж, то дискретизация вво- дится по этой переменной. Тогда исходная задача заме- няется задачей Ко-ши для системы обыкновенных диф- ференциальных уравнений вида du-i/dx = /(щ, t). Упражнения 1. Решение линейного уравнения переноса ищется в ограни- ченной области, заданной в полярной системе координат (г, (р): Го «С г г/, 0 <р л/2. Сформулировать математическую поста-, новку задачи и построить разностные схемы ее решения: а) яв- ную; б) неявную. 2. Построить блок-схему решения смешанной задачи для одно- мерного линейного уравнения переноса с использованием неявной разностной схемы. 3. Модифицировать алгоритм решения двумерного уравнения переноса (см. рис. 56) для случая, когда число слоев К не яв- ляется кратным L и необходимо вывести результаты на послед- нем слое. 4. Построить укрупненную блок-схему нахождения разрывно- го решения квазилинейного уравнения переноса с использованием метода с выделением разрыва. 5. Записать алгоритм решения квазилинейного уравнения пе- реноса по схеме сквозного счета. 6. Как изменится блок-схема решения волнового уравнения (см. рис. 65), если требуется с целью экономии памяти машины хранить не все результаты, а лишь значения сеточной функций на трех последовательных слоях? 7. Построить блок-схему решения смешанной задачи для од- номерного волнового уравнения по неявной схеме. 8. Построить блок-схему решения смешанной задачи для од- номерного уравнения теплопроводности: а) с помощью, явной схемы; б) с помощью неявной схемы. 9. Модифицировать блок-схему решения двумерного уравне- ния теплопроводности (см. рис. 69) так, чтобы результаты выда- вались лишь на каждом пятом слое по времени. 10. Построить блок-схему решения задачи Дирихле методом установления. 11. Записать схему расщепления по координатам для: а) дву- мерного волнового уравнения; б) трехмерного уравнения тепло- проводности. 12. Построить блок-схему решения смешанной задачи для дву- мерного уравнения теплопроводности методом дробных шагов. 13. С помощью рассмотренных методов решения нестационар- ных задач путем ручного счета получить численные решения на первом слое при конкретных исходных данных. Для двумерного уравнения Лапласа по начальному приближению получить реше- ние на первой итерации в узлах сетки.
ГЛАВА 9 ИНТЕГРАЛЬНЫЕ УРАВНЕНИЯ § 1. Постановка задач 1. Вводные замечания. Интегральным уравнением на- зывается такое уравнение, неизвестная функция в кото- ром содержится под знаком интеграла. В общем случае интегральное уравнение имеет вид ь § К (xt s} у (s))ds = f (х, у (х)), а ^.х <6. (9.1) а Здесь х — независимая переменная, у(х) — искомая функция, К{х, s, у) — ядро интегрального уравнения^ /(ж, У) — правая часть уравнения, s — переменная интег- рирования. К интегральным уравнениям приводят многие инже- нерные задачи (в радиотехнике, газовой динамике, кван- товой механике и т. п.). Интегральная форма уравнений движения в виде законов сохранения используется так- же и при построении консервативных разностных схем для некоторых типов задач (в частности, в механике сплошной среды). Для решения некоторых задач удобнее использовать интегральные уравнения, чем дифференциальные. На- пример, постановку задачи Коши dy/dx = f(x, у), у(х0}=у0 можно представить в виде интегрального уравнения л У о = Уо + f /(«, y(s))ds, ко Таким образом, интегральное уравнение содержит пол- ную постановку задачи, и дополнительные условия (на- чальные или граничные) для него задавать не нужно. Отметим еще одно преимущество интегральных урав- нений, Уравнение (9.1) записано для случая одной не- зависимой переменной х. Однако легко записать его мно- гомерный аналог при наличии независимых переменных
§ 1. ПОСТАНОВКА ЗАДАЧ 293 xlf хг, ..хп. Для некоторой области G в рассматривае- мом n-мерном пространстве многомерное интегральное уравнение можно записать в виде К (х^, t ,г хПг s^, .. ., sn, у (s*, • • •! Sji)) ds^ ... dsn =i G — / (^i> ••• > xni У (^"i> • • »» ^n))* Методы решения одномерных уравнений естественно обобщаются на случай многомерных интегральных ’урав- нений (одномерные интегралы заменяются многомерны- ми). В то же время при рассмотрении дифференциаль- ных уравнений переход от одномерного случая (обыкно- венные уравнения) к многомерному (уравнения с част- ными производными) требует совершенно других подхо- дов и методов решения. 2. Виды интегральных уравнений. Ограничимся рас- смотрением одномерных уравнений (9.1). Приведем не- которые частные случаи таких уравнений, которые, с од- ной стороны, важны в практических приложениях и, о другой стороны, наиболее изучены. Уравнения (9.1), в которые искомая функция входит линейно, называются линейными интегральными урав- нениями. Одним из них является уравнение Фредгольма первого рода-. ъ J К (х, s) у (s) ds = f (х), а х Ъ, (9.2) а - Уравнение Фредгольма второго рода имеет вид ь у(х) — X § К (х, s)y (s) ds = f(x), a^.x^.bt (9.3) a В уравнениях Фредгольма ядро К(х, s) определено и ограничено на квадрате а^ x^b, a^s^b. Если К(х, 8)=0 при x<s, т. е. ядро отлично от нуля только на треугольнике а s х, а х Ь, то уравнения (9.2) и (9.3) переходят в уравнения Вольтерра соответственно первого и второго рода- X J К (х, 8) у (8) ds = f (x)f (9.4) а х y(x) — ‘k§ К (xt s) у (s) ds = f (x), (9,5)
294 ГЛ. 9. ИНТЕГРАЛЬНЫЕ УРАВНЕНИЯ Мы будем рассматривать задачи для уравнений вто- рого рода. Задачи для уравнений первого рода являются некорректно поставленными. Их рассмотрение выходит за рамки данного краткого курса. Заметим лишь, что для решения некорректных задач, т. е. уравнений (9.2) или (9.4), могут быть использованы методы регуля- ризации. Если правая часть уравнения (9.3) равна нулю, то получается однородное уравнение Фредгольма второго рода, которое можно записать в виде ь у (z) = X J К (хг s) у (s) dx, a^.x^.b, (9.6) а Это уравнение допускает нулевое (тривиальное) ре- шение у (х) = 0. Для него может быть поставлена задача на собственные значения. Параметры kt, при которых уравнение (9.6) имеет отличные от нуля решения y = q>i(x), называются собственными значениями ядра К(х, s') или уравнения (9.6), а отвечающие им решения <рДж)— собственными функциями. Теорема Фредгольма. Если к не является соб- ственным значением ядра К(х, s), то неоднородное урав- нение (9.3) имеет единственное непрерывное решение у(х) при х е [с, 6]; в противном случае данное неодно- родное уравнение или не имеет решений, или имеет их бесчисленное множество. В практических приложениях важную роль играют уравнения Фредгольма второго рода с вещественным симметричным ядром К(х, .$), т. е. когда К(х, s) = K(s, х). Симметричное ядро обладает следующими свойствами: 1) симметричное ядро имеет хотя бы одно собственное значение; .2) все собственные значения симметричного ядра дей- ствительны; 3) собственные функции <р»(х) симметричного ядра ор- тогональны, т. е. ъ J (Pi (х) ср, (х) = 02 ]. а Уравнение Вольтерра (9.5) не имеет собственных зна-> чепий. Соответствующее однородное уравнение, т. е. при имеет только тривиальное решение у (а?) = 0. Сле-
§ 2. МЕТОДЫ РЕШЕНИЯ 295 довательно, неоднородное уравнение (9.5) всегда прп лю- бом значении X имеет решение, и при том единственное. Итак, основными задачами для рассматриваемых ин- тегральных уравнений являются: 1) нахождение решения неоднородного интегрального уравнения при заданном значении параметра X; 2) вычисление собственных значений и отыскание со- ответствующих им собственных функций однородного ин- тегрального уравнения. § 2. Методы решения 1. Методы последовательных приближений. Это про- стейшие методы решения интегральных уравнений, ис- пользовавшиеся еще задолго до появления вычислитель- ных машин. Рассмотрим уравнение Фредгольма, записав его в виде ъ у(х) (х) + к § К (х, .<?) у (s) ds. (9.7) а В дальнейшем под уравнением Фредгольма и Вольтерра будем подразумевать соответствующие уравнения второго рода. Для решения уравнения (9.7) построим итерационный процесс, аналогичный методу простой итерации для нели- нейного уравнения. Пусть у0(х)—начальное приближение искомой функции у (х) (на практике обычно полагают 1/о(х) = О). Тогда, подставляя у0(х) в правую часть урав- нения (9.7), получаем выражение для первого прибли- жения: ъ У1 (*) = / (^) + X J (х, s) у0 (s) ds. а Аналогично, подставляя найденное приближение в подынтегральное выражение, находим у2(х) и т. д. Для любого к + 1-го приближения получим ь Уъ+1(х) = f(x)+ 1$ К(х, s)yh(s)ds, Zc = O, 1, ... (9.8) При достаточно малом значении |Х| и ограниченном ядре К(х, $) этот итерационный процесс сходится равно- мерно по х, причем эта сходимость линейная. Достаточное
296 ГЛ. 9. ИНТЕГРАЛЬНЫЕ УРАВНЕНИЯ условие сходимости имеет вид М |Х|(Ь-я)<11 max|tffo $)|. (9.9) x,s Одним из вариантов метода последовательных прибли- жений является метод, в котором используются степен- ные ряды. Он состоит в том, что искомое решение у(х) разлагается в ряд по степеням X: 0О У (х) = 2 lh(pk (х), (9.10) k—0 Подставляя это разложение в исходное уравнение (9.7) и приравнивая выражения при одинаковых .степенях X, получаем следующие рекуррентные соотношения: ь Фо(*) = /(ж)> Фь(х) = Jк 8)Фь-1 (s)ds} /с = 1л214,. (9.11) При ограниченных К(х, s) и /(z) ряд (9.10) сходится, если выполняется условие (9.9). Среди других приближенных методов отметим метод аппроксимации ядра данного интегрального уравнения вырожденным ядром. Вырожденным ядром уравнения Фредгольма называется ядро, которое может быть пред- ставлено в виде суммы конечного числа членов: А К (х, s) = 2 Фг (*) Фг (*)> i=l т. е. каждый член разложения можно представить в ви- де произведения функций одной переменной ([ч(х') и 4pi(s'). Вырожденное ядро имеет п собственных значений. С помощью такого ядра в ряде случаев удается аппрок- симировать ядро данного уравнения, и решение получен- ного аппроксимирующего уравнения принимается в ка- честве приближенного решения исходного уравнения. Для решения интегральных уравнений используется также метод моментов, основанный на использовании метода Бубнова — Галеркина. Здесь, как и при замене ядра вырожденным, для приближения решения строится аппроксимирующая система функций. Минимизация не- вязки аппроксимирующего уравнения проводится путем ее ортогонализации к координатным функциям
§ 2. МЕТОДЫ РЕШЕНИЯ 297 В практических вычислениях рассмотренные методы сейчас используются сравнительно редко, поскольку при-* сутствующие в аппроксимирующих выражениях (9.8) или (9.11) интегралы, как правило, не удается непосред- ственно вычислять в элементарных функциях. Однако эти методы полезны для нахождения первых приближен ний к решению. 2. Численные методы. Эти методы называют также квадратурными. Они основаны на использовании формул численного интегрирования для вычисления определен- ных интегралов, входящих в интегральные уравнения. Численные методы получили особенно широкое распро- странение в связи с внедрением ЭВМ, хотя эти методы можно использовать и в ручном счете при небольшом числе узлов. Численные методы могут применяться для решения как линейных, так и нелинейных интеграль- ных уравнений. Рассмотрим нелинейное интегральное уравнение вида ъ JК(х, s, y(s))ds = /(х, у(х)), a^xt^b, (9.12) а Разобьем отрезок [«, 6] на части точками х{ — ih (г = О, 1, ..., п). Заменим интеграл в уравнении (9.12) некоторой квадратурной формулой с помощью значений сеточной функции щ в узлах: 2 (х^, х^, щ) = /(Xj, Uj), j = 1, 2, .. .j щ (9.13) i=l где c{ — коэффициенты квадратурной формулы численно- го интегрирования. Мы получили систему нелинейных алгебраических уравнений. Решая систему (9.13), получаем значения сеточной функции в выбранных узлах отрезка [а, &]. Для практического решения этой системы можно использо- вать рассмотренные ранее методы, например метод Нью- тона (см. гл. 5, § 3). Вопрос о сходимости сеточного решения щ к значе-» ниям искомой функции y(Xi) при п оо может быть рассмотрен лишь для конкретного вида интегрального уравнения. В общем случае сходимость численного мето* да исследовать трудно,
298 ГЛ. 9. ИНТЕГРАЛЬНЫЕ УРАВНЕНИЯ Рассмотрим линейные интегральные уравнения. За- пишем сеточное выражение (9.13) для однородного урав- нения Фредгольма: п U; = X сг& {xh хг) иг- 1=1 Запишем это выражение в виде п '2 С-Л (^, ^1)^1 = Y uh 7 = 12 2, ..., п. (9.14) 1=1 Система линейных уравнений в таком виде описывает задачу на собственные значения матрицы А, элемента- ми которой являются числа ait = с<К (xj, х^ (см. гл. 4, § 4, п. 4). Матрица А имеет п собственных значении, которые являются приближениями к собственным значе- ниям однородного уравнения Фредгольма. В случае неоднородного уравнения Фредгольма вме- сто однородной системы (9.14) получим следующую си- стему линейных алгебраических уравнений: п Щ — 2 СЛ (xh xi) ui = / (ж1), 7 = 1, 2? .. ч щ (9.15) 1=1 Эта система ’уравнений может быть решена одним из рассмотренных ранее методов (см. гл. 4), например ме- тодом Гаусса. В соответствии с теоремой Фредгольма (см. § 1, п. 2) параметр Z не должен быть равен ни од- ному из собственных значений. Если он попадает в ок- рестность некоторого собственного значения, то система (9.15) становится плохо обусловленной, и сеточное ре- шение может сильно отличаться от искомых значений У(хг)- На практике обычно собственные значения интеграль- ного уравнения неизвестны, поэтому ограничиваются ис- следованием практической сходимости. Оно состоит в проведении серии расчетов со сгущающейся сеткой. Ес- ли при этом наблюдается сходимость сеточных значений, то в качестве искомого решения принимаются результа- ты последнего расчета на густой сетке. При решении уравнения Вольтерра система линейных алгебраических уравнений (9.15) имеет треугольный вид, и она легко решается последовательным нахождением значений щ (по аналогий с обратным ходом метода Гаусса).
g 2. МЕТОДЫ РЕШЕНИЯ 299 Рассмотренный подход можно использовать и для решения многомерных интегральных уравнений. При этом в многомерной расчетной области значительно воз- растает число узлов. Для решения таких задач требу- ется большой объем памяти ЭВМ; системы уравнений в этих случаях более целесообразно решать итерационны- ми методами. Пример. ПуСть задано уравнение 1 у (х) — X J е“(л+б)1/ (s) ds = х. о (9.16) Используя рассмотренные выше методы, нужно найти значения искомой функции у(х) на отрезке [0, 1]. Решение. Для применения итерационного процес- са (9.8) для приближенного решения данного интеграль- ного уравнения примем в качестве нулевого приближе- ния y0(x) = Q. Тогда 1 уг (х) = х + X J e“(x+s)p0 (*) ds = х, о Подставляя полученное приближение Уь = $ (к — 1) в (9.8) и используя формулу интегрирования по частям 1 1 J udv = uv jo — j* vdut о о получаем следующее приближение к решению: 1 1 уг (х) = х 4- X J se^+^ds — х —Xse“^x+s) |J 4- X J e~{x+s}ds= = х- Хе"(х+1) - Xe"(x+s) g = х - 2Xa"(x+1) 4- Хе"х. Аналогично находим 1 у3 (-с) = х 4- X J e~(x+s)y2 ($) ds = х 4- Хе“х (ахХ 4- п2Х), о (9.17) ал = 1 - 2е-‘, а2 = (1 - 2е~< - е~г + 2е"3)/2. В данном случае можно построить любое приближе- ние к решению уравнения (9.16), Сходимость данного
§00 ГЛ. 9. ИНТЕГРАЛЬНЫЕ УРАВНЕНИЯ итерационного процесса оценивается с помощью условия (9.9), которое дает ограничение на параметр X: 1X1 < 1/[М(Ъ-а)]. (9.18) Для рассматриваемого примера имеем Ь — а = 1, М = max | К (х, s) | = max e~(x+s) = j, X, S X, s Следовательно, из (9.18) получаем условие 1X1 < 1. Если для решения уравнения (9.16) использовать ме- тод степенных рядов, то искомую функцию нужно пред- ставить в виде (9.10), а из рекуррентных соотношений (9.11) находим члены разложения ф0(ж) = /(ж) = ^ 1 1 Фх (х) = J К (х, s) ф0 (s) ds = J se~^x+s}ds = e~x -— 2e“(x+1\ о 0 1 1 ф2 (x) = J К (xr s) (s) ds = J e-(^+«) [e~s — 2e-(s+1)] ds — о о 1 -x -<x+l) 1 — (x+2) , -(x+S) — 2 ’ e 2 e * Подставляя вычисляемые значения ф;(я) в выражение (9.10), находим приближенное значение для искомой функции у(х). Результаты совпадают с полученным ра- нее выражением (9.17). При 1X1 < 1 ряд (9.10) сходит- ся к искомому решению. § 3. Сингулярные уравнения 1. Сингулярные интегралы. Рассмотренные выше ин- тегральные уравнения содержали неособые интегралы, подынтегральная функция которых определена п непре- рывна на отрезке интегрирования. Однако при решении ряда практических задач приходится сталкиваться с уравнениями, содержащими несобственные интегралы. Рассмотрим некоторые виды интегралов, имеющих непо- средственное отношение к решению практически важ- ных интегральных уравнений. Эти интегралы представ- ляют также и самостоятельный интерес.
§ 3. СИНГУЛЯРНЫЕ УРАВНЕНИЯ 301 Пусть подынтегральная функция f(x) интеграла ь J f(x)dx о (9.19) обращается в некоторой точке с отрезка [а, б] в бесконеч- ность, т. е. интеграл несобственный. Тогда его можно попытаться вычислить следующим образом: ь С-Е1 ь \f(x)dx = lim J /(.г) + lim J j{x)dx. (9.20) a el“*0 о e2 ’° c+e2 Здесь et, e2 — некоторые положительные числа, которые стремятся к нулю независимо друг от друга. Если выра- жения в правой части (9.20) существуют, то несобствен- ный интеграл (9.19) сходится. При решении ряда прикладных задач встречаются не- собственные интегралы вида ь f * с е [а, Ь|. (9.21) А/ V - о В соответствии с (9.20) можно записать = lim ln-A_ + iim ех-о с-а е^0 Поскольку оба предела равны бесконечности, то интег- рал (9.21) здесь является расходящимся. Однако этот интеграл можно понимать и в другом смысле, полагая gj — е2 — е. В этом случае Ь ,-с—е Ь \ f dx I С dx t С dx \ I ---— lim I----------F I ---- = J x — c J x — c J x — c a u \ <r c+e / = lim fin — --Ь In -——1 = lim In -—- = In -—(9.22) e-»o ( c~a 8 ) e^O c~a c~a Интеграл в таком смысле называется интегралом в смысле главного значения по Коши или сингулярным интегралом.
302 ГЛ. 9. ИНТЕГРАЛЬНЫЕ УРАВНЕНИЯ Аналогично можно ввести интегралы более вида оощего Г у (х) dx J X — с -с— в С у (х) dx J х — с - а Ъ С у(х) dx J X — с с+е (9.23) Оказывается, что в таком при любой функции y(z), в виде смысле интеграл существует которую можно представить (х - < (b - х)^ V< 1, Ц< 1, Здесь функция <р(ж) удовлетворяет некоторому условию, называемому условием Гёлъдера степени а на отрезке [а, 6], которое состоит в том, что для любых двух точек х2 этого отрезка 1ф(^)- <p(z2) I < A(xi - х2)а, 0 < а С 1, А — const. В этом случае говорят, что функция <$(х} принадлежит классу Н(а): у(х)^ Н(а). В ряде приложений встречаются также интегралы вида 2Л f т (6) ctg с/е, НЮ.М т(0)еЯ(а). (9.24) . о Такие интегралы называют интегралами с ядром Гиль- берта. Они существуют в рассмотренном выше смысле, т. е. как сингулярные. Для сингулярных интегралов, как и в случае опре^- деленных интегралов, справедлива формула замены пе- ременной x — x(t), однако производная х'(t) должна принадлежать классу Н в окрестности точки c — x(t0). Например, при любом значении с е [—1, 1] имеет место тождество 1 ______ \lfl — х dx J V i -j- X С — X Это тождество можно получить, сделав в левой части дробно-линейную подстановку t = —х)/(1 + х).
§ 3, СИНГУЛЯРНЫЕ УРАВНЕНИЯ 303 Тогда 1 _____ ОО Г |/~1 — х dx ___ С____________t2dt________ Д V 1+ а: с —х ~~ J (! ^2 (1 4- с) _ (1 — с)] ~ о 1/1— С1 I 11/1 + с — 1/1 ~ с I = 2 arctg t 4- |/ -Т-Г— In J. : -Т7== 6 ' 1 + с I Г1/14-С + У1-С I о о Рассмотрим вопросы, связанные с построением мето- дов численного интегрирования для рассматриваемых особых случаев. Оказывается, что исходя из самого оп- ределения сингулярного интеграла (вырезается симмет- ричная окрестность точки, в которой он вычисляется), можно построить простую формулу типа прямоугольни- ков для вычисления сингулярных интегралов. Пусть надо вычислить сингулярный интеграл ра от- резке [-1, 1] в точке с. Возьмем равноотстоящие точки Xt, х2, ..., хп. такие, что точка с делит пополам отрезок между ближайшими к ней точками из этого семейства. При этом крайние точки и хп лежат на расстоянии не менее полушага от концов отрезка. Тогда 1 71 Г у (a;) dx у У (xk) h Д х~с ~£1xk~c' Разность между точным значением интеграла и значени- ем полученной квадратурной суммы есть величина по- рядка In гг/н“, если ф(т)еЯ(й). В приложениях, как правило, такие интегралы надо вычислять сразу в большом количестве точек, равномерно расположенных на отрезке [—1, 1]. Поэтому выбиралот дра семейства точек: xh = —l + kh, h = 2/(n + i), k = l,2,.t.,n, ch — xh + h/2, A: == 0, 1, n, и пользуются формулой у (г) dx х — ст у у Ы h й. х* ~с™ т = 0, 1, Для интеграла с ядром Гильберта (9.24) используют следующую квадратурную формулу. Возьмем два семей-
804 ГЛ. 9. ИНТЕГРАЛЬНЫЕ УРАВНЕНИЯ ства точек: 0h = к(2л/п), = 6„ + л/п, к — 0, 1, ..п — 1. Тогда 2 Jt 71—1 С /п\ t 6 ~ V 2л /л \ . Qk ~ Р J т(6) ctg —— de^ Z — Т (6fe) ctg 2“ 0 fe==0 m = 0,1, ..n — 1. Если функция 7(0) принадлежит Я (а) на отрезке [0, 2л] и периодическая, то разность интеграла и суммы для любого т есть величина порядка In п/пл. Если же п нечетно и 7(и(0)е//(а), то эта разность будет вели- чиной порядка In п/пт+а. Для интеграла на отрезке в частных случаях можно также указать простые квадратурные формулы типа Га- усса, дающие хорошую сходимость: у (х) dx X — тп ak4 (xk) xh ~cm3 m =* 1Л 2Л. , .2 n — 12 т (*) *= pY==>. <₽(r) (*) e H (a)> 2/c-l i io xk == COS 2w - л, к = 1, 2Л ..., пг Cm = C0S~> m “ 1» A • • n — ah = л/п, к — 1, 2, ..n. Если _______ 7(x)= YI — хг <p(a:), TO к Xk =* COS^ | 2m — 1 Cm = C0S 2 (n + 1) л . 2 к аь == —-r-т Sin' r*7 л, R П + 1 n + i 2 A- = 1, 2Л .. f2X m = liit!}n + lx к=~ 12 Если ¥(*)= У TWj
§ 3. СИНГУЛЯРНЫЕ УРАВНЕНИЯ S05 то 2к Хъ — COS'S---г Л, я 2п + 1 1 2т — 1 Ст “ C0S 2п + 1 4л . 2 к ak — о---ГЛ Slir S--Г—Л, к 2п + 1 2n + 1 к = 12 22.* tl nt т = 112! к = 1, 21 .п. 2. Численное решение сингулярных интегральных уравнений. Рассмотрим следующие сингулярные интег- реальные уравнения первого рода: 1 1 С у (х) dx nJ X — с -1 1 J K{.clx)y{x)dx^f{c)1 (9.25) 2Л 2Л T(0)ctg + j X(₽, 0)т(6)do-/(₽). (9.26) О о Здесь функции /£([3, 0), /(Р) принадлежат классу Я(а) соответственно на отрезках [—1, 1] и [0, 2л], причем они периодические по обеим переменным с периодом 2л. Решение уравнения (9.25) не единственно. Это урав- нение может иметь три типа решений, называемых ре- шениями индекса х (х = 1, 0, —1). Они имеют вид 7к(х) = ц>к(х)(р(х), Ч (х) = у===, °о (*) = У“-1 (^) = /1 — х2. Функция ф(а?) принадлежит классу Н на отрезке [—1, 1]. Функцию Ых(^) называют весовой функцией решения данного индекса. Для нулевого индекса весовая функ- ция может иметь вид Если в уравнении (9.25) К(с, а?) —0, то оно называ- ется характеристическим. Его решения даются формулой - 1 (х) — — — CO-Х (х) f " А -------УцС f ' л л ' J coz (с) с — я - *“1 -I где vt = 1, v0 = v-i — 0, С — произвольная постоянная. 20 Л. И. Турчак
306 ГЛ. 9. ИНТЕГРАЛЬНЫЕ УРАВНЕНИЯ При х = 1. единственное решение выделяется задани- ем значения интеграла 1 [ Ti dx — С. -1 При х = — 1 функция у-i (ж) является решением харак- теристического уравнения только при условии = 0. В силу этого предполагают, что исходное уравнение имеет единственное решение индекса 1 при заданном значении интеграла от решения, единственное решение индекса 0 и единственное решение индекса —1 при ус- ловии (9.27) Для решения рассматриваемых сингулярных интег- ральных уравнений существует метод дискретных осо- бенностей, основанный на приведенных выше квадра- турных формулах. Он сводит задачу к решению систем линейных алгебраических уравнений. Приведем эти си- стемы для случая равномерного расположения точек. Для х = 1 получается следующая система линейных алгебраических уравнений: ± V .+ J К (С„, г») (х.) h - f (cm), k=l k m k=l m = 1, 2, .n — n yn h — C’t k=i для x = 0: 71 - П s- 2 + 2 K yn ы h - f •Fl . xh cm m ~ 1, 2, ..n — 1;
§ 3. СИНГУЛЯРНЫЕ УРАВНЕНИЯ 307. для и = — 1: Топ + ~ 2 X ( ----------2 (Ст} Х^ h — j (cm)i JI X i . v fe=i « m k=l m = 0,1, ..., n. В последней системе 70n называется регуляризирую- щей переменной, причем Топ 0 при п -> °° тогда и толь- ко тогда, когда выполняется условие (9.27). Таким об- разом, величина уОп в расчете является индикатором его правильности. Если использовать неравномерное разбиение, то си- стемы линейных алгебраических уравнений примут вид: для и = 1: 2 Л + 2 а^К (Ст’ Х^ (Xk) = / (Cm)f т = 1, 2, , . ., П — 12 2 ййфп C^fc) — k=l л 2к — 1 тп dk — %k — cos 2п Я’ Cm ~ C0S ~п~’ для и = 0: л" 2 Z п1/~) + 2 ak& (Cmt Xf^ — 2Т Ж. С Й=1 k т А=1 го = 1.2j ... , п2 4л . , к 2к 2m—1 “srnsi" йГн"’ ^-“Ssr+i”. с«=сга27+1л’ для и = — 1: 71 71 Топ + ~ 2 "Т----7^~ + 2 ^Cm-2 ^Xf^ ~ (cn)t k=l k т Ь=1 т = 1, 2, ..., п + lj л . 9 к к 2m — 1 аъ —----r-7Sinz Г-7 Я, Жь = COS—т-тЛ, ст= COS 5-7 7-77 л. п +1 п -f- 1 1 в п-|-1 1 2 (п -f-1) 20*
808 ГЛ. 9. ИНТЕГРАЛЬНЫЕ УРАВНЕНИЯ Для характеристического уравнения (9.26) с ядром Гильберта при условии 2Л J /(₽)<Ф-о о решение дается формулой 2Л T(e)--^j/(₽)ctgb^rf₽ + c, о где 2Л Т(е)<Ю-С. о Задание значения интеграла выделяет единственное ре- шение. Поэтому будем предполагать, что уравнение с яд- ром Гильберта при известном значении интеграла имеет единственное решение. Для численного решения получа- ется следующая система линейных алгебраических урав- нений: 1 ХЛ 0>, '— Pm Топ + 2 Vn (0fe) Cig-2---+ ~ fe=o 2п + 2^-Г 2 К Vn (eft) = / (pfe), ТП = 0,1, .. .г 2п, k=0 2п 2л + 1 i Vn (0fe) e С' k=0 Приведенные системы линейных алгебраических урав^ нений метода дискретных особенностей могут быть ис- пользованы для вычисления значений у(^), ф(^га), y(6ft) б расчетных точках, которые аппроксимируют значения искомых функций 7(х), <р(;г), 7(6), описываемых син- гулярными интегральными уравнениями (9.25), (9.26)«
СПИСОК ЛИТЕРАТУРЫ 1. Аоки М. Введение в методы оптимизации: Основы и при- ложения нелинейного программирования/Пер. с англ.— М.: Наука, 1977. v 2. Б а х в а л о в Н. С. Численные методы,— М.: Наука, 1975. 3. Белоцерковский О. М. Численное моделирование в ме- ханике сплошных сред,— М.: Наука, 1984. 4. Белоцерковский О. М., Давыдов Ю. М. Метод круп- ных частиц в газовой динамике.— М.: Наука, 1982. 5. Б е л о ц е р к о в с к и й С. М., Лифанов И. К. Численные методы в сингулярных интегральных уравнениях.— М.: Наука, 1985. 6. Б е р е з и н И. С., Жидков Н. П. Методы вычислений.— Т. 1.— М.: Наука, 1966; Т. 2.— М.: Физматгиз, 1962. 7. В о е в о д и н В. В. Вычислительные основы линейной алгеб- ры.— М.: Наука, 1977. v 8. В о л к о в Е. А. Численные методы,— М.: Наука, 1982. 9. Г о д у н о в С. К., Забродин А. В., Иванов М. Я., Край- не А. Н., Прокопов Г. П. Численное решение многомерных задач газовой динамики.— М.: Наука, 1976. 10. Г о д у н о в С. К., Рябенький В. С. Разностные схемы.— М.: Наука, 1977. 11. Дробышевич В. И., Дымников В. П„ Ривин Г. С. Задачи по вычислительной математике,— М.: Наука, 1980. 12. Д о р о д н и ц ы н А. А. Лекции по численным методам реше- ния уравнений вязкой жидкости.— М.: ВЦ АН СССР, 1969. 13. Д ь я ч е н к о В. Ф. Основные понятия вычислительной мате- матики.— М.: Наука, 1977. 14. Е в т у ш е н к о Ю. Г. Методы решения экстремальных задач и их применение в системах оптимизации.— М.: Наука, 1982. 15. 3 е н к е в и ч О. Метод конечных элементов в технике.— М.: Мир, 1975. V 16. К а л и т к и н Н. Н. Численные методы.— М.: Наука, 1978. 17. К е с т е н б о й м X. С., Росляков Г. С., Чудов Л. А. Точечный взрыв: Методы расчета. Таблицы,— М.: Наука, 1974. V18. Карманов В. Г.. Математическое программирование.— М.: Наука, 1986. 19. К о в е н я В. М., Я н е н к о Н. Н. Методы расщепления в задачах газовой динамики.— Новосибирск: Наука, 1981. 20. К р ы л о в В. И., Бобков В. В., М о н а с т ы р н ы й П. И. Вычислительные методы.— Т. 1.2.— М.: Наука, 1976—1977. 21. Ляшко И. И., Макаров В. Л., С к о р о б о г а т ь к о А. А. Методы вычислений.— Киев: Высшая школа, 1977.
310 СПИСОК ЛИТЕРАТУРЫ 22. М а к - К р а к е н Д., Дорн У. Численные методы и про- граммирование на фортране.— М.: Мир, 1977. 23. М а р ч у к Г. И. Математические модели в иммунологии.— М.: Наука, 1985. 24. М а р ч у к Г. И. Математическое моделирование в проблеме окружающей среды.— М.: Наука, 1982. 25. М а р ч у к Г. И. Методы вычислительной математики.— М.: Наука, 1980. 26. Марчук Г. И. Численные методы в прогнозе погоды.—Л.: Гидрометеоиздат, 1967. 27. М а р ч у к Г. И., Лебедев В. И. Численные методы в тео- рии переноса нейтронов.— М.: Атомиздат, 1971. 28. М и х л и н С. Г. Численная реализация вариационных мето- дов.— М.: Наука, 1968. 29. Н а Ц. Вычислительные методы решения прикладных гранич- ных задач.— М.: Мир, 1982. 30. Никольский С. М. Квадратурные формулы.— М.: Наука, 1979. 31. О д э н Дж. Конечные элементы в нелинейной механике сплошных сред.— М.: Мир, 1976. V 32. Ортега Дж., Рейнболдт В. Итерационные методы ре- шения нелинейных систем со многими неизвестными.— М.: Мир, 1975. 33. П о б е д р я Б. Е. Численные методы в теории упругости и пластичности.— М.: Изд-во МГУ, 1981. 34. Пустыльник Е. И. Статистические методы анализа и обра- ботки наблюдений.— М.: Наука, 1968. 35. Пшеничный Б. Н., Данилин Ю. М. Численные методы в экстремальных задачах.— М.: Наука, 1975. 36. Р и х т м а й е р Р., Мортон К. Разностные методы решения краевых задач.— М.: Мир, 1972. 37. Рождественский Б. Л., Я н е н к о Н. Н. Системы ква- зилинейных уравнений и их приложения к газовой динами- ке.— Наука, 1978. 38. Р о у ч П. Вычислительная гидродинамика.— М.: Мир, 1980. 39. Р я б е н ь к и й В. С., Филиппов А. Ф. Об устойчивости разностных уравнений.— М.: Гостехиздат, 1956. 4 40. С а м а р с к и й А. А. Введение в численные методы.— М.: Нау- ка, 1982. v 41. С а м ар с к и й А. А. Теория разностных схем.— М.: Наука, 1983. 42. С а м а р с к и й А. А., Гулин А, В. Устойчивость разност- ных схем.— М.: Наука, 1973. 43. С а м а р с к и й А. А., Николаев Е. С. Методы решения сеточных уравнений.— М.: Наука, 1978. 44. С а м а р с к и й А. А., Попов Ю. П. Разностные схемы га- зовой динамики.— М.: Наука, 1980. 45. С е г е р л и н д Л. Применение метода конечных элементов.— М.: Мир, 1979.
СПИСОК ЛИТЕРАТУРЫ 311 46. Соболь И. М. Численные методы Монте-Карло.— М.: Нау- ка, 1973. 47. С т е ч к и н С. Б., Субботин Ю. Н. Сплайны в вычисли- тельной математике.— М.: Наука, 1976. 48. Т и х о н о в А. Н., Арсенин В. Я. Методы решения некор- ректных задач,— М.: Наука, 1986. 49. Уилкинсон Дж. Алгебраическая проблема собственных значений.— М.: Наука, 1970. 50. Ф а д д е е в Д. К., Фаддеева В. Н. Вычислительные мето- ды линейной алгебры.— М.: Физматгиз, 1963. 51. Форсайт Дж., Малькольм М., Моу л ер К. Машин- ные методы математических вычислений.— М.: Мир, 1980. 52. X е м м и н г Р. В. Численные методы. Для научных работни- ков и инженеров.— М.: Наука, 1968. 53. X у д с о н Д. Статистика для физиков.— М.: Мир, 1970. 54. Ч у ш к и н П. И. Метод характеристик для пространственных сверхзвуковых течений.— М.: ВЦ АН СССР, 1968. 55. Шуп Т. Решение инженерных задач на ЭВМ.— М.: Мир, 1982. 56. Я н е н к о Н. Н. Метод дробных шагов решения многомерных задач математической физики.—Новосибирск: Наука, 1967.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Абсолютная погрешность 15 Абсолютное отклонение 34 Адамса методы 223 Адаптивные алгоритмы 104 Аддитивная схема 285 Адекватность модели 11 Алгебраическое дополнение 120 Алгоритм 9 — адаптивный 104 Аналитические методы 13, 208, 227 Аппроксимации погрешность 79, 80 — порядок 80, 211 Аппроксимационная вязкость 264 Аппроксимация интегральная 32 — непрерывная 32 — производной 78, 85 — разностная 209, 247 — точечная 32 — функции 31 — частной производной 90 Базис 197 Базисная переменная 197 — система функций 228 Балансовая переменная 197 Бегущая волна 254 Бегущего счета схемы 257 Бэрстоу метод 164 Ведущий элемент матрицы 126 Вейерштрасса теорема 34, 172 Вектор собственный 141 Весовая функция 305 Возмущение 208 Волна бегущая 254 Волновое уравнение 240 ---двумерное 273 ---одномерное 272 •— — трехмерное 273 Вольтерра интегральные урав- нения 293 Вращений метод 145 — — прямой 147 Вращения матрица 145 Выбор главного элемента 125 Выбранных точек метод 68 Выделение разрывов 262 Выпуклая область 193 Выравнивание данных 67 Вырожденная матрица 115 Вырожденное ядро 296 Вязкость аппроксимационная 264 — искусственная 264 Галеркина метод 229 Гаусса метод 106, 122 — формулы квадратурные 304 Гаусса — Зейделя метод 136 Гёльдера условие 302 Геометрический метод 194 — смысл определенного интег- рала 93 Гильберта ядро 302 Гиперболическая система 270 Гиперболическое уравнение 240 Главного элемента выбор 125 Горнера схема 45 Градиент 185 Градиентные методы 185 Граничные условия 207, 238 Графические методы 13, 208 Данных выравнивание 67 Двойной интеграл 109 Двухслойная схема 245 Деления отрезка пополам ме- тод 156 Детерминант 115 Дивергентность 267 Дирихле задача 286 Дисбаланс 268 Дискретных особенностей ме- тод 306 Дифференциальная задача 210 Дифференциального уравнения порядок 205
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 813 Дифференциального уравне- ния решение 205 .------общее 205 —------частное 205 Дифференциальное уравнение 205 ---линейное 205 Диффузии уравнение 240 Допустимое решение 190 Дробно-рациональное прибли- жение 45 Дробные шаги 283 Дробь цепная 47 Жордана схема 133 Задача Дирихле 286 — Коши 207, 238 — краевая 207, 227, 238 ----смешанная 238 Замена переменных 110 Значащая цифра 16 Золотого сечения метод 176 Изоклин метод 208 Изоклина 206 Индекса решение 305 Интеграл в смысле Коши 301 — двойной 109 — несобственный 108 — определенный 93 — с ядром Гильберта 302 — сингулярный 301 Интегральная аппроксимация 32 — сумма 93 Интегральное уравнение 292 ---- Вольтерра второго рода 293 -------первого рода 293 ----линейное 293 ----сингулярное 305 ----Фредгольма второго рода 293 ------------ однородное 294 -------первого рода 293 Интервал неопределенности 174 Интерполирование 32 Интерполяционный многочлен 32 ----- Лагранжа 55 ---Ньютона 57 ----Эрмита 55, 62 Интерполяция глобальная 32 Интерполяция квадратичная 50 — кусочная 33 — линейная 49, 63 — вокальная 33 — параболическая 50 — сплайнами 51 Исключения метод 122, 129 Искусственная вязкость 264 Итерационного процесса схо- димость 138, 140 Итерационные методы 118, 155 Итерационный процесс 29 Итерация 29, 118, 156 Касательных метод 159 Качества критерий 169 Квадратичная интерполяция 50 — форма 270 Квадратная матрица 114 Квадратного корня метод 133 Квадратурные методы 297 — формулы типа Гаусса 304 Квазилинейное уравнение 260 Клеточные методы 133 Коллокаций метод 228 Конечные разности 55, 56 Конечных разностей метод 209, 239 Консервативная схема 267 Корни многочлепов Чебышева 40 Корректность 27, 28, 212, 239 Коши задача 207, 238 — теорема 207 Краевая задача 207, 227, 238 -----смешанная 238 Крамера правило 121 Критерий качества 169 Лагранжа многочлен 55 Лапласа уравнение 240, 286 Левые разности 79 Лина метод 163 Линеаризация 226 Линейная интерполяция 49, 63 Линейное программирование 189 — уравнение 114 -----дифференциальное 205 Локально-одномерная схема 284 Мантисса числа 14 Маркова метод 107 Математическое программиро- вание 171
314 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Математической физики урав- .нения 241 Матрица вращения 145 — вырождения 115 — квадратная 114 — обратная 120 — прямоугольная 114 — характеристическая 141 Матрицы подобные 144 Мера отклонения многочлена 33 Метод Адамса 223 — Барстоу 163 — вращений 145 — — прямой 147 — выбранных точек 68 — Гал’еркина 229 — Гаусса 106, 122 — Гаусса — Зейделя 136 — геометрический 194 — деления отрезка пополам 156 — дискретных особенностей 306 — золотого сечения 176 — изоклин 208 — исключения 122, 129 ---оптимального 133 — касательных 159 — квадратного корня 133 — коллокаций 228 — конечных разностей 209, 239 — Лина 163 — линеаризации 236 — Маркова 107 — многошаговый 215 — моментов 296 — Монте-Карло 111 — наименьших квадратов 34, 71, 228 — наискорейшего спуска 186 — неопределенных коэффици- ентов 86 — Ньютона 159, 165, 231 — одношаговый 215 — понижения порядка уравне- ния 162 — прогонки 131 — простой итерации 161, 164 — прямоугольников 95 — прямых 290 — Рунге 225 — Рунге — Кутта 220 — Рунге — Ромберга 87 — Симпсона 100 — сквозного счета 263 — сплайнов 102 — средних 69, 96 Метод статистических испыта- ний 111 — стрельбы 229 — трапеций 96 — установления 286 — характеристик 271 — хорд 158 — штрафных функции 187 — Эйлера 215 — — с пересчетом 218 — ячеек 109 Метода Гаусса ход обратный 122 ------- прямой 122 — прогонки устойчивость 132 Методы аналитические 13, 208, 227 — градиентные 185 — графические 13, 208 — квадратурные 297 — поиска 174 — приближенные 208, 228 — прогноза и коррекции 224 — регуляризации 27 — решения линейных систем итерационные 118 ----------прямые 117 — с выделением разрывов 262 — сеточно-характеристические 272 — численные 13 Минор 120 Многочлен интерполяционный 32 — Лагранжа 55 — наилучшего приближения 35 — Ньютона 57 — характеристический 141 — эрмита 55, 62 Многочлены Чебышева 39 Многошаговые методы 215 Моментов метод 296 Монотонность схемы 263 Монте-Карло метод 111 Наплучшего приближения мно- гочлен 35 Наилучшее приближение 35 Наименьших квадратов метод 34, 71, 228 Направление характеристиче- ское 270 Начальные условия 207, 238
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 315 Невязка 129, 212, 228, 247 Неопределенности интервал 174 Неопределенных коэффициентов метод 86 Непрерывная аппроксимация 32 Несобственный интеграл 108 Неустранимая погрешность 19 Неявная схема 215, 245 Новых переменных введение 67 Нормализованное число 14 Нули многочленов Чебышева 40 Ньютона метод 159, 165, 231 — многочлен 57 Ньютона — Котеса формулы 106 Ньютона — Лейбница формула 94 Область выпуклая 193 — решений 193 Обратная матрица 120 Общее решение дифференциаль- ного уравнения 205 Овраг 184 Ограничения-неравенства 171 Ограничения-равенства 170 Однородная схема 263 Одношаговые методы 215 Округление 20 Операторный вид уравнения 209 Опорная прямая 194 Опорное решение 198 Определенного интеграла вы- числение с помощью рядов 94 ----геометрический смысл 93 ----теорема существования 93 — — уточненное значение 98 Определенный интеграл 93 Определитель 115 Оптимального исключения ме- тод 133 Оптимальное решение 190 Оптимизация 169 Опытные данные 64 Особые случаи численного ин- тегрирования 107 Остаточный член 60 Отклонение абсолютное 34 — среднеквадратичное 34 Отклонения мера 33 Отладка программы 10 Относительная погрешность 15 Ошибки опытных данных 64 Параболическая система 270 Параболические уравнения 240 Параметры плана 169 — проектные 169 Переменная базисная 197 — балансовая 197 — регуляризирующая 307 Переменных направлений схе- ма 283 Переноса уравнение 240 Периодические функции 62 Плохо обусловленные системы 117 Погрешность абсолютная 15 — аппроксимации 79, 80 — неустранимая 19 — ограничения 39 — округления 20 — относительная 15 — предельная 15 — решения системы уравнений 129 — усечения 81 — численного метода 19 Подобия преобразование 144 Подобные матрицы 144 Поиска методы 174 Полная проблема собственных значений 143 Полуцелые углы 96 Порядок аппроксимации 80, 211 — дифференциального уравне- ния 205 — числа 14 Правило Крамера 121 Правые разности 79 Предельная погрешность 15 Предикатор-корректор 224 Преобразование подобия 144 Приближение дробно-рацио- нальное 45 — наилучшее 35 — равномерное 34 — среднеквадратичное 33 Приближенные методы 208, 228 Пример Уилкинсона 26 Проблема собственных значе- ний полная 143 -------частичная 152 Прогноза и коррекции методы 224 Прогонка 131 — обратная 131 — прямая 131 Программа 10
316 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Программирование линейное 189 — математическое 171 Продольно-поперечная схема 283 Проектные параметры 169 Производная 78 Производной аппроксимация 78, 85 Простой итерации метод 161, 164 Процесс итерационный 29 Прямая опорная 194 Прямоугольная матрица 114 Прямоугольников метод 95 Прямые методы 17, 155 Прямых метод 290 Псевдовязкость 264 Псевдослучайные числа ИЗ Пуассона уравнение 241 Равномерное приближение 34 Размазывание 263 Разности конечные 55, 56 — левые 79 — правые 79 — центральные 79 — частные 63 Разностная аппроксимация 209 247 — сетка 209 — схема 211, 239 Разрыв сильный 262 — слабый 262 Расщепления схемы 283 Регуляризации методы 27 Регуляризация численного диф- ференцирования 81 Регуляризирующая перемен- ная 307 Решение допустимое 190 — индекса 305 — общее 205 — опорное 198 — оптимальное 190 — частное 205 Ромберга формула 89 Рунге метод 225 — формула 88 Рунге — Кутта метод 220 Рунге — Ромберга метод 87 Сглаживание 74 Сетка 209, 241 Сеточная функция 209, 210, 214 Сеточно-характеристические методы 272 Сильный разрыв 262 Симметричное ядро 294 Симплекс-метод 196 Симпсона метод 100 Сингулярное уравнение 305 Сингулярный интеграл 301 Система гиперболическая 270 — линейная 114 — нелинейная 164 — параболическая 270 — плохо обусловленная 117 — функций базисная 228 — эллиптическая 270 Сквозной счет 263 Слабый разрыв 262 Слой 244 Собственная функция 294 Собственное значение 141, 294 Собственный вектор 141 Соотношения на характеристик ках 261 Сплайн 51, 52, 102 Спуск градиентный 183 — наискорейший 186 — по координатам 182 Среднеквадратичное отклоне- ние 34 — приближение 33 Средних метод 69, 96 Статистических испытаний ме- тод 111 Стрельбы метод 229 Сумма интегральная 93 Схема аддитивная 285 — бегущего счета 257 — Горнера 45 — двухслойная 245 — дробных шагов 283 — Жордана 133 — консервативная 267 — локально-одномерная 284 — монотонная 263 — неконсервативная 268 — неустойчивая 212 — неявная 215, 245 — однородная 263 — переменных направлений 283 — продольно-поперечная 283 — разностная 211, 239 — расщепления 283 — — по координатам 284
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 817 Схема расщепления по физиче- ским процессам 285 — устойчивая 212 — явная 215, 244 Сходимость 28, 29, 156, 246 — итерационного процесса 138, 140 Теорема Вейерштрасса 34, 172 — Коши 207 — существования определен- ного интеграла 93 — Фредгольма 294 Теплопроводности уравнение 240 Точечная аппроксимация 32 Точка плавающая 14 — фиксированная 14 Трапеций метод 96 Узел внутренний 242 — граничный 242 — полуцелый 96 — фиктивный 234 Узлы интерполяции 32 — сетки 209 Уилкинсона пример 26 Унимодальность 174 Уравнение волновое 240 — гиперболическое 240 — дифференциальное 205 — диффузии 240 — интегральное 292 — квазилинейное 260 — Лапласа 240 — параболическое 240 — переноса 240 — Пуассона 241 — сингулярное 305 — теплопроводности 240 — характеристическое 305 — эволюционное 240 — эллиптическое 240 Уравнения математической фи- зики 241 — нелинейные 155 — — алгебраические 155 — — трансцендентные 155 — с "частными производными 238 Усечения погрешность 81 Условие Гёльдера 302 Условия граничные 207, 238 — начальные 207, 238 Установления метод 286 Устойчивость 26 — метода прогонки 132 — схемы 212, 247 Уточнение значений интегра- лов 98 Фиктивный узел 234 Форма квадратичная 270 Формула Ньютона — Лейбница 94 — Ромберга 89 — Рунге 88 — Чебышева 107 — Эйлера 107 — эмпирическая 66 — Эрмита 107 Формулы квадратурные типа Гаусса 304 — Ньютона — Котеса 106 Фредгольма интегральные урав- нения 293 — теорема 294 Функция весовая 305 — сеточная 209, 210, 214 — целевая 169 Характеристик метод 271 Характеристика 252, 261, 270 Характеристическая матрица 141 Характеристические соотноше- ния 261 Характеристический многочлен 141 Характеристическое направле- ние 270 — уравнение 305 Хорд метод 158 Целевая функция 169 Центральные разности 79 Цепная дробь 47 Цифра значащая 16 Частичная проблема собствен- ных значений 152 Частное решение дифференци- ального уравнения 205 Частной производной аппрокси- мация 90
318 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Частные разности 63 Чебышева многочлены 39 • — формула 107 Числа псевдослучайные 113 Численные методы 13 Численного дифференцирова- ния регуляризация 81 — интегрирования метод пря- моугольников 95 —------Симпсона 100 ---— сплайнов 102 ------- средних 96 ------- трапеций 96 — — особые случаи 107 Число нормализованное 14 — с плавающей точкой 14 — с фиксированной точкой 14 Член остаточный 60 Чувствительность к погрешно- стям 26 Шаблон 91, 253, 273, 277, 280, 287 Шаг 55, 78 Штрафных функций метод 187 Эволюционное уравнение 240 Эйлера метод 215 ---- с пересчетом 218 — .формула 107 Эйткена процесс 103 Экстраполяция 33 Эллиптическая система 270 Эллиптическое уравнение 240 Эмпирическая формула 66 Эрмита многочлен 55, 62 — формула 107 Явная схема 215, 244 Ядро 292 — вырожденное 296 — Гильберта 302 — симметричное 294 Якобиан 166 Ячеек метод 109
Леонид Иванович Турчак ОСНОВЫ ЧИСЛЕННЫХ МЕТОДОВ Редактор И. В. Викторенкова . Художественный редактор Т. Н. Колъченко Технический редактор Л. В. Лихачева Корректор М. Л. Медведская ИБ Ns 12715 Сдано в набор 14.05.86. Подписано к печати 04.12.86. Т-29452. Формат 84х108’/з2. Бумага тип. Ns 3. Гарни- тура обыкновенная. Печать высокая. Усл. печ. л. 16,8. Усл. кр.-отт. 16,8. Уч.-изд. л. 17,24. Тираж 43 000 экз. Заказ Ns 205. Цена 90 коп. Ордена Трудового Красного Знамени издательство «Наука» Главная редакция физико-математической литературы 117071 Москва В-71, Ленинский проспект, 15 4-я типография издательства «Наука» 630077, г, Новосибирск-77. Станиславского, 25