SlideShare a Scribd company logo
1 of 674
А. А. АМОСОВ,
Ю. А. ДУБИНСКИЙ,
Н.В.КОПЧЕНОВА
ВЬIЧИСЛИТЕЛЬНЬIЕ
МЕТОДЬI
Учебное пособие
Издание четвертое, стереотипное
ьСАНКТ-ПЕТЕРБУРГ· МОСКВА· КРАСНОДАР
2014
ББК22.1я73
А62
Амосов А. А., Дубинский Ю. А., Копченова Н. В.
А 62 Вычислительные методы: Учебное пособие. - 4-е
изд., стер. - СПб.: Издательство (<Ланы, 2014. -
672 с.: ил. - (Учебники для вузов. Специальная литера­
тура).
ISBN 978-5-8114-1623-3
В книге рассматриваются вычислительные методы, наиболее
часто используемые в практике прикладных и научно-технических
расчетов: методы решения задач линейной алгебры, нелинейных
уравнений, проблемы собственных значений, методы теории
приближения функций, численное дифференцирование и интегри­
рование, поиск экстремумов функций, решение обыкновенных диф­
ференциальных уравнений, численное решение интегральных
уравнений, линейная и нелинейная задачи метода наименьших
квадратов, метод сопряженных градиентов. Значительное внимание
уделяется особенностям реализации вычислительных алгоритмов на
компьютере и оценке достоверности полученных результатов. Имеет­
ся большое количество примеров и геометрических иллюстраций.
Даются сведения о стандарте IEEE, о сингулярном разложении
матрицы и его применении для решения переопределенных систем, о
двухслойных итерационных методах, о квадратурных формулах
Гаусса-Кронрода, о методах Рунге-Кутты-Фельберга.
Учебное пособие предназначено для студентов всех направлений
подготовки, обучающихся в классических и технических универ­
ситетах и изучающих вычислительные методы, будет полезно аспи­
рантам, инженерам и научным работникам, применяющим вычисли­
тельные методы в своих исследованиях.
ББК 22.1я73
Рецензенты:
Н. Н. КАЛИТКИН - член-корреспондент РАН;
Н. С. БАХВАЛОВ - профессор, зав. кафедрой вычислительной
математики механико-математического факультета МГУ, академик
РАН;
Е. И. МОИСЕЕВ - профессор, декан факультета вычислительной
математики и кибернетики МГУ, член-корреспондент РАН.
Обложка
Е. А. ВЛАСОВА
© Издательство •Ланы, 2014
© Коллектив авторов, 2014
© Издательство •Лавы,
художественное оформление, 2014
Цель расчетов - не числа, а понимание.
Р.В. Хемминг
Из нашего девиза «Цель расчетов - не
числа, а понимание» следует, что человек,
который должен этого понимания достиг­
нуть, обязан знать, как происходит вычис­
ление. Если он не понимает, что делается,
то очень маловероятно, чтобы он извлек из
вычислений что-нибудь ценное. Он видит
голые цифры, но их истинное значение мо­
жет оказаться скрытым в вычислениях.
Р.В. Хемминг
ПРЕДИСЛОВИЕ К ПЕРВОМУ ИЗДАНИЮ
В настоящее время имеется значительное число учебников и моно­
графий, посвященных методам вычислений (часть из них отражена в
списке литературы к данному пособию). Однако, на наш взгляд, боль­
шинство этих книг ориентировано на студентов-математиков или на
специалистов по вычислительной математике. В то же время практиче­
ски отсутствует отечественная учебная литература, в которой доступ­
ным для студента технического вуза или инженера образом были бы
изложены основы вычислительных методов, применяемых сегодня для
решения инженерных задач. Особенно острой, по мнению авторов,
является потребность в книге, которая содержала бы не только изложе­
ние начал численных методов, но и давала бы представление о реально
используемых в вычислительной практике алгоритмах. Данное учебное
пособие призвано в определенной степени восполнить этот пробел.
Настоящее пособие адресовано в первую очередь студентам и аспи­
рантам высших технических учебных заведений, изучающим основы
математического моделирования и численные методы. Авторы наде­
ются на то, что эта книга будет полезна широкому кругу инженерных и
научно-технических работников, которые намерены применять ЭВМ
для решения прикладных задач.
При написании книги авторы использовали многолетний опыт пре­
подавания курса вычислительных методов студентам и аспирантам
различных специальностей Московского энергетического института, а
также опыт работы в вычислительном центре МЭИ. Значительное
влияние на выбор материала и характер изложения оказали также мно­
гочисленные дискуссии со слушателями существующего при МЭИ
факультета повышения квалификации преподавателей вузов страны.
Авторы стремились изложить материал по возможности наиболее
простым и доступным образом. Объем знаний высшей математики,
необходимый для понимания содержания книги, не выходит за рамки
программы младших курсов втуза. Пособие содержит довольно много
3
Предисловие
примеров, иллюстрирующих те или иные положения теории, а также
демонстрирующих особенности вычислительных методов или работу
конкретных алгоритмов. Тем не менее, многие из рассматриваемых
вопросов трудны для восприятия и требуют внимательного изучения. К
сожалению, в учебной литературе они нередко опускаются. К таким цен­
тральным вопросам относятся, например понятия корректности, устойчи­
вости и обусловленности вычислительных задач и вычислительных алго­
ритмов, особенности поведения вычислительной погрешности. Важность
их понимания для эффективного применения ЭВМ сегодня велика и не
акцентировать на них внимание авторы посчитали невозможным.
Дадим краткое изложение основного содержания книги. Важную идей­
ную нагрузку несут на себе первые три главы. Рассматриваемые в них
вопросы закладывают фундамент, необходимый для правильного пони­
мания изложенных в остальных главах вычислительных методов.
В гл. 1 дается общее представление о методе математического моде­
лирования, в том числе о процессе создания математических моделей,
последовательности этапов решения инженерной задачи с применение
ЭВМ, вычислительном эксперименте.
В гл. 2 наряду с введением в элементарную теорию погрешностей
содержится изложение основных особенностей машинной арифметики.
Понимание этих особенностей необходимо тем, кто заинтересован в
эффективном применении ЭВМ для решения прикладных задач.
В гл. 3 обсуждаются важнейшие свойства вычислительных задач,
методов и алгоритмов. Дается общее представление о корректности,
устойчивости и обусловленности вычислительной задачи. Приводится
описание основных классов вычислительных методов. Значительное
внимание уделяется устойчивости вычислительных алгоритмов, их чув­
ствительности к ошибкам. Дается представление о различных подходах к
анализу ошибок, в том числе и об обратном анализе ошибок. Обсужда­
ются требования, предъявляемые к вычислительным алгоритмам.
Конкретные вычислительные задачи и методы их решения рассмат­
риваются начиная с гл. 4. Здесь авторы стремились к тому, чтобы не
только изложить простейшие подходы, но и дать представление об
алгоритмах, которые реально используются для решения соответствую­
щих задач.
В гл. 4 рассматриваются методы отыскания решений нелинейных
уравнений. Значительное внимание уделено постановке задачи и ее
свойствам, в частности - чувствительности корней нелинейных урав­
нений к погрешностям. Среди различных методов отыскания корней
более подробно излагаются метод простой итерации, метод Ньютона и
различные их модификации.
В гл. 5 рассмотрены прямые (точные) методы решения систем
линейных алгебраических уравнений. Основное внимание уделяется
4
Предисловие
методу Гаусса и его различным модификациям. Рассматриваются
использование LИ-разложения матриц для решения систем линейных
уравнений, метод квадратных корней, метод прогонки, методы враще­
ний и отражений. Обсуждается алгоритм итерационного уточнения.
В гл. 6 рассматриваются итерационные методы решения систем
линейных алгебраических уравнений: метод простой итерации, метод
Зейделя, метод релаксации и другие методы.
В гл. 7 рассматривается задача отыскания решений систем нелинейных
уравнений. Обсуждаются не только соответствующие итерационные
методы, но и различные подходы к решению сложной задачи локализации.
В гл. 8 дается представление о проблеме собственных значений
и о различных подходах к вычислению собственных значений и собст­
венных векторов. Излагаются степенной метод и обратный степенной
метод, обсуждается QR-алгоритм.
В гл. 9 излагаются наиболее известные численные методы решения
задачи одномерной минимизации, в том числе метод деления отрезка
пополам, метод Фибоначчи, метод золотого сечения и метод Ньютона.
В гл. 10 рассматриваются различные методы решения задачи безус­
ловной минимизации. Наиболее полно изложены градиентный метод,
метод Ньютона и метод сопряженных градиентов.
В гл. 11 рассмотрены наиболее важные и часто встречающиеся
в приложениях методы приближения функций. Значительное внимание
уделено интерполяции, причем рассматривается интерполяция не только
алгебраическими многочленами, но и тригонометрическими многочле­
нами, а также интерполяция сплайнами. Достаточно подробно обсужда­
ется метод наименьших квадратов. Дается понятие о наилучшем равно­
мерном приближении и дробно-рациональных аппроксимациях.
В эту главу включены также некоторые вопросы, имеющие непо­
средственное отношение к методам приближения функций. Это конеч­
ные и разделенные разности, многочлены Чебышева, быстрое дискрет­
ное преобразование Фурье.
В гл. 12 рассматриваются различные подходы к выводу формул чис­
ленного дифференцирования, обсуждается чувствительность этих фор­
мул к ошибкам в вычислении значений функции.
В гл. 13 излагаются методы вычисления определенных интегралов.
Выводятся квадратурные формулы интерполяционного типа и квадра­
турные формулы Гаусса. Дается представление о принципах построения
адаптивных процедур численного интегрирования и, в частности, об
используемых в них способах апостериорной оценки погрешности. Рас­
сматриваются различные подходы к вычислению интегралов от функ­
ций, имеющих те или иные особенности. В частности, затрагивается
проблема интегрирования быстро осциллирующих функций.
5
Предисловие
Глава 14 посвящена численным методам решения задачи Коши для
обыкновенных дифференциальных уравнений. Подробно рассматрива­
ются метод Эйлера и его различные модификации. Значительное вни­
мание уделено рассмотрению классических методов Рунге-Кутты
и Адамса. Обсуждаются различные свойства устойчивости численных
методов решения задачи Коши, в том числе нуль-устойчивость, абсо­
лютная устойчивость, А-устойчивость, А(а)-устойчивость. Специально
рассматриваются жесткие задачи и методы их решения.
В гл. 15 изучаются методы численного решения двухточечных крае­
вых задач. Подробно излагается применение метода конечных разно­
стей к решению краевых задач для обыкновенного дифференциального
уравнения второго порядка. Дается представление о проекционных
методах Ритца и Галеркина; обсуждается один из их современных
вариантов - метод конечных элементов. Завершает главу рассмотре­
ние метода пристрелки.
Можно предположить, что к изучению отдельных параграфов или
даже глав этой книги читатель приступит, только столкнувшись с необ­
ходимостью решить на ЭВМ важную для него задачу. Вероятно, в этом
случае польза от изучения соответствующего раздела будет наиболь­
шей. Многие вопросы рассмотрены очень кратко или не рассмотрены
вообще. Авторы надеются на то, что соответствующие пробелы можно
восполнить, использовав сделанные в тексте ссылки на известные
учебники и монографии.
В ряде случаев авторы позволяют себе интерпретировать те или иные
результаты, делать определенные выводы и даже давать рекомендации
в надежде на то, что для новичка соответствующие рассуждения дадут
полезный начальный ориентир. В целом же ко всяким рекомендациям
в такой сложной и многообразной области, как применение вычислитель­
ных методов для решения прикладных задач на ЭВМ, следует отнестись
с осторожностью. Они не могут претендовать на бесспорность и их сле­
дует рассматривать скорее как отражение точки зрения авторов.
Иногда то или иное положение обосновывается ссылкой на вычис­
лительную практику. Хотя критерий практики и играет при отборе
методов вычислений существенную роль, все же оценки методов, осно­
ванные на результатах их применения для решения конкретных задач,
нередко бывают весьма субъективны и противоречивы.
В заключение отметим, что никакие теоретические положения и
советы не могут заменить собственного опыта вычислительной работы.
Как надеются авторы, параллельно с изучением данной книги такой
опыт может приобрести читатель, переходя от решения задач учебного
характера к серьезным практическим задачам.
Авторы
6
ПРЕдИСЛОВИЕ КО ВТОРОМУ ИЗДАНИЮ
Со времени выхода в свет первого издания этой книги, в 1994 г.
в издательстве «Высшая школа>>, прошло около десяти лет. За это время
стало ясно, что она нашла своего читателя. Книга активно используется
студентами, аспирантами, преподавателями и научными сотрудниками
не только Московского энергетического института, но и других вузов
страны. В то же время обнаружился ряд опечаток и неточностей в из­
ложении, которые было бы желательно исправить. Поэтому авторы с
благодарностью приняли любезное предложение Издательства МЭИ о
переиздании учебного пособия.
Во втором издании книги исправлены замеченные недостатки. Рас­
смотрен ряд вопросов, которые не были включены в первое издание.
Это стандарт IEEE, сингулярное разложение матрицы и его примене­
ние для решения переопределенных систем, двухслойные итерацион­
ные методы решения систем линейных алгебраических уравнений
(включая метод с чебышевским набором параметров, метод сопряжен­
ных градиентов и предобусловливание), обратная интерполяция, интер­
поляционный многочлен Бесселя, многомерная интерполяция, квадра­
турные формулы Гаусса-Кронрода, метод Рунге-Кутты-Фельберга.
Дополнен список литературы.
Авторы пользуются случаем выразить свою благодарность россий­
ским ученым, которые оказали существенное влияние на формирование
их взглядов на вычислительную математику. Это акад. РАН Н.С. Бах­
валов, акад. РАН В.В. Воеводин, акад. РАН А.А. Самарский, акад. РАН
А.Н. Тихонов, проф. Ф.П. Васильев, проф. Е.Г. Дьяконов, проф. Я.М. Жи­
лейкин, проф. Х.Д. Икрамов, проф. Г.М. Кобельков, докт физ-мат. наук
А.С. Кронрод, проф. И.А. Марон.
Работа по подготовке второго издания к печати выполнена проф.
А.А. Амосовым. Авторы искренне признательны своим коллегам проф.
А.А. Злотнику, доц. О.А. Амосовой и доц В.П. Григорьеву, чьи заме­
чания были существенно использованы в процессе работы над вто­
рым изданием. Авторы заранее благодарны всем, кто пожелает вы­
сказать свои замечания и предложения. Их следует направлять по ад­
ресу: 111250, Москва, Красноказарменная ул., д. 14, Издательство
МЭИ или по адресу AmosovAA@mpel.ru.
Авторы
7
ПРЕДИСЛОВИЕ К ТРЕТЬЕМУ ИЗДАНИЮ
Перед Вами третье издание книги, которая теперь называется «Вычис­
лительные методы», хотя в двух предыдущих изданиях она выходила под
названием «Вычислительные методы для инженеров». По-видимому,
авторы должны как-то объяснить, почему название книги стало сущест­
венно короче.
Во-первых, методы вычислений, применяемые для решения возни­
кающих на практике задач, универсальны. И не существует каких-то специ­
альных методов, предназначенных для решения только лишь инженерных
задач. Поэтому изложенные в книге методы могут использоваться студен­
тами, аспирантами и исследователями для решения самых разных задач, в
том числе - экономических, медицинских, биологических и т.д. Нет необхо­
димости специально сужать круг возможных читателей.
Во-вторых, перемены, происходящие в высшем образовании нашей
страны, скоро приведут к тому, что высокое звание «инженер» станет воспри­
ним~rгься как архаика. Книга, предназначенная для каких-то непонятных инже­
неров, может показ~rгься ненужной будущим бакалаврам и магистрам. Так что
сокращение названия книги - это и вынужденная дань нынешней моде.
Чем это издание отличается от предыдущего? Во-первых, в нем исправ­
лены обнаруженные неточности и опечатки. Во-вторых, добавлена новая глава,
посвященная численному решению интегральных уравнений. В третьих, час­
тично изменено содержание некоторых параграфов. Существенной перера­
ботке подвергся параграф 2.5, посвященный особенностям машинной
арифметики. В нем теперь достаточно полно отражены особенности IEEE
арифметики, реализованной в настоящее время на большинстве современ­
ных компьютеров. Достойное место в книге, наконец, занял метод наимень­
ших квадратов. В ней появились два новых параграфа, посвященных
линейной и нелинейной задачам метода наименьших квадратов. Появился
также отдельный параграф, посвященный методу сопряженных градиентов
решения систем линейных алгебраических уравнений.
Список литературы дополнен. Ссылки на литературу, добавленную к
третьему изданию, помечены звездочкой.
Работа по подготовке к печати третьего издания выполнена проф.
А.А. Амосовым.
Авторы заранее благодарны читателям, которые пожелают высказать
свои замечания или предложения по содержанию книги. Их следует
направлять по адресу 111250, Москва, Красноказарменная ул., д. 14, Изда­
тельский дом МЭИ или по адресу электронной почты AmosovAA@mpei.ru.
Авторы
8
Глава 1
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ
И РЕШЕНИЕ ПРИКЛАДНЫХ ЗАДАЧ
С ПРИМЕНЕНИЕМ КОМПЬЮТЕРА
В этой главе дается общее представление о методе математического
моделирования, в том числе о процессе создания математических моде­
лей, о последовательности этапов решения прикладной задачи с приме­
нением компьютера, о вычислительном эксперименте.
Разделение решаемых с применением компьютера задач на приклад­
ные и научные является до известной степени условным. Тем не менее,
при написании данного пособия авторы ориентировались на читателя,
интересующегося решением именно прикладных задач. Попытаемся
охарактеризовать этот класс задач, выделив его некоторые характерные
особенности.
1. Прикладные задачи имеют ярко выраженную практическую
направленность. Целью их решения является создание новой конструк­
ции, разработка нового технологического процесса, минимизация затрат
на производство некоторого изделия и т.д. Поэтому для таких задач
характерна необходимость доведения результатов до конкретных чисел,
графиков, таблиц, на основании которых можно принимать решения.
2. Эти задачи характеризуются значительным объемом выполняе­
мой вычислительной работы.
3. Для этих задач характерно использование достаточно сложных
математических моделей и серьезного математического аппарата.
4. Прикладные задачи, как правило, решают специалисты, не являю­
щиеся профессионалами в области разработки математических мето­
дов и программного обеспечения компьютеров. Поэтому естественно
желание этих специалистов использовать готовые вычислительные
методы и стандартное математическое программное обеспечение.
Наконец, условимся считать, что в рассматриваемый класс задач
входят задачи только умеренной сложности. Для их решения не требу­
ются сверхбольшие скорости вычислений и сверхбольшие объемы
памяти для хранения данных. Таким образом, эти задачи могут быть
решены с помощью компьютеров, доступных массовому пользователю.
Те же задачи, которые требуют для решения сверхмощной вычисли­
тельной техники и принципиально новых алгоритмов, будем относить
к категории научных задач.
9
Глава 1. Математическое моделирование и решение прикладных задач
§ 1.1. Математическое моделирование
и процесс создания математической модели
Математическое .моделирование представляет собой метод иссле­
дования объектов и процессов реального мира с помощью их прибли­
женных описаний на языке математики - математических моделей.
Этот метод чрезвычайно плодотворен и известен уже несколько тыся­
челетий. Насущные задачи земледелия и строительства еще в древние
времена приводили к необходимости определения площадей и объе­
мов, а следовательно, и к рассмотрению элементарных геометрических
фигур, дающих пример простейших математических моделей. Возмож­
ности математического моделирования и его влияния на научно-техни­
ческий прогресс неизмеримо возросли в последние десятилетия в связи
с созданием и широким внедрением компьютеров.
Процесс создания математической модели условно можно разбить
на ряд основных этапов:
1) построение математической модели;
2) постановка, исследование и решение соответствующих вычисли-
тельных задач,
3) проверка качества модели на практике и модификация модели.
Рассмотрим основное содержание этих этапов.
1. Построение математической модели. Предполагается, что с
помощью наблюдений и экспериментов, практики (понимаемой в
самом широком смысле) получена достаточно подробная информация
об изучаемом явлении. Для рассматриваемого этапа характерно глубо­
кое проникновение в полученные факты в целях выяснения главных
закономерностей. Выявляются основные «характеристики)) явления,
которым сопоставляются некоторые величины. Как правило, эти вели­
чины принимают числовые значения, т.е. являются переменными, век­
торами, матрицами, функциями и т.д.
Установленным внутренним связям между «характеристиками))
явления придается форма равенств, неравенств, уравнений и логиче­
ских структур, связывающих величины, включенные в математическую
модель. Таким образом, математическая модель становится записью на
языке математики законов природы, управляющих протеканием иссле­
дуемого процесса или описывающих функционирование изучаемого
объекта. Она включает в себя набор некоторых величин и описание
характера связи между ними.
Построение математических моделей - существенная и очень важная
часть естественных и технических наук. Эта задача, требующая от иссле-
10
§ 1.1. Математическое моделирование и процесс математической модели
дователя глубокоm знания предметной области, высокой матеfатической
культуры, опыта построения моделей, развитой интуиции и многого
друmго. Создание удачной новой модели - всегда крупное достижение
соответствующей науки, а иногда и целый этап в ее развитии.
Подчеркнем, что математическая модель неизбежно представляет
собой компромисс между бесконечной сложностью изучаемого явления
и желаемой простотой его описания. Модель должна быть достаточно
полной, для того чтобы оказаться полезной для изучения свойств иссле­
дуемого явления. В то же время она обязана быть достаточно простой,
для того чтобы допускать возможность ее анализа существующими в
математике средствами и ее реализации на компьютере. Из огромного
числа характеристик явления и действующих на него факторов требу­
ется выделить основные, определяющие, отбросив при этом второсте­
пенные, несущественные.
Нередко в математическую модель закладываются некоторые гипо­
те3Ы, еще не подтвержденные на практике. Такую математическую
модель часто называют гипотетической.
Приведем пример простейшей математической модели.
Пример 1.1. Пусть исследуется движение тела, брошенного со
скоростью v0 под утлом а к поверхности Земли.
Будем считать, что в рассматриваемом случае можно пренебречь
сопротивлением воздуха, считать Землю плоской, а ускорение свобод­
ного падения g - постоянной. Введем систему координат, ее начало
поместим в точку бросания, ось Ох направим горизонтально в направ­
лении бросания, а ось Оу - вертикально вверх (рис. 1.1 ). Пусть и(t) и
w(t) - горизонтальная и вертикальная составляющие скорости v(t) в
момент времени t (в начальный момент t = О, v = v0)
Согласно законам механики, при сделанных предположениях движе­
ние тела в горизонтальном направлении является равномерным, а в вер-
у
о
Рис. 1.1
11
Глава 1. Математическое моделирование и решение прикладных задач
тикальном - равноускоренным с ускорением, равным -g. Поэтому спра­
ведливы следующие равенства:
и= v0 cosa, х = (v0cosa)t, (1.1)
. gt2
w = v0 sina - gt, у= (v0 sшa)t- Т. (1.2)
Формулы (1.1 ), (1.2) и дают простейшую математическую модель
рассматриваемого явления, созданную в XVII в. Г. Галилеем 1. Заметим,
что при О < а < тс/2 траектория движения представляет собой параболу
у= - g х2 + (tga)x. .А.
2v~ cos2a
Математические модели часто разделяют на статические и динами­
ческие. Статическая модель описывает явление или ситуацию в пред­
положении их завершенности, неизменности (т.е. в статике). Динамиче­
ская модель описывает, как протекает явление или изменяется ситуация
от одного состояния к другому (т.е. в динамике). При использовании
динамических моделей, как правило, задают начальное состояние сис­
темы, а затем исследуют изменение этого состояния во времени.
2. Постановка, исследование и решение вычислительных задач.
Для того чтобы найти интересующие исследователя значения величин
или выяснить характер из зависимости от других входящих в математи­
ческую модель величин, ставят, а затем решают математические задачи.
Выявим основные типы решаемых задач. Для этого все величины,
включенные в математическую модель, условно разобьем на три группы:
1) исходные (входные) данные х;
2) параметры модели а;
3) искомое решение (выходные данные) у.
В динамических моделях искомое решение часто является функцией
времени у = y(t); переменная t в таких моделях, как правило, бывает
выделенной и играет особую роль.
Наиболее часто решают так называемые прямые задачи, постановка
которых выглядит следующим образом: по данному значению входного
данного х при фиксированных значениях параметров а требуется найти
решение у. Процесс решения прямой задачи можно рассматривать как
математическое моделирование причинно-следственной связи, прису­
щей явлению. Тогда входное данное х характеризует «причины» явле-
1 Галилео Галилей (1564-1642) - итальянский физик, механик, астроном, один из
основателей точного естествознания.
12
§ 1.1. Математическое моделирование и процесс математической модели
ния, которые задаются и варьируются в процессе исследования, а иско­
мое решение у - «следствие».
Для того чтобы математическое описание было применимо не к еди­
ничному явлению, а к широкому кругу близких по природе явлений,
в действительности строят не единичную математическую модель, а неко­
торое параметрическое семейство моделей. Будем считать, что выбор
конкретной модели из этого семейства осуществляется фиксацией зна­
чений параметров модели а. Например, в роли таких параметров
могут выступать некоторые из коэффициентов, входящих в уравнения.
С помощью выбора параметров может производиться указание типа
функциональной зависимости между некоторыми из величин. Наконец,
если используемые математические модели разбиты на классы, то
параметром может служить и класс используемой модели.
Пр им ер 1.2. Для модели ( 1. 1), (1.2) прямую задачу естественно
формулировать как задачу вычисления величин и(t), w(t), x(t), y(t) по
задаваемым входным данным v0 , а. Параметром модели здесь является
ускорение свободного падения g. Его значение зависит от тоm, произ­
водится ли бросание тела с поверхности Земли на уровне Мировоm
океана, в глубокой шахте или же на большой высоте. Заметим, что та же
модель пригодна для описания движения тела, брошенноm на любой
другой планете, если значение параметра g для этой планеты известно. .&
Большую роль играет решение так называемых обратных задач,
состоящих в определении входного данного х по данному значению у
(параметры модели а, как и в прямой задаче, фиксированы). Решение
обратной задачи - это в определенном смысле попытка выяснить,
какие «причины» х привели к известному «следствию» у. Как правило,
обратные задачи оказываются сложнее для решения, чем прямые.
Пример 1.3. Для модели (1.1), (1.2) обратную задачу можно сфор­
мулировать так: по заданным и(t), w(t), x(t),y(t) требуется найти значе­
ния v0, а. Заметим, что для однозначного определения v0, а достаточно
задать в любой фиксированный момент t0 ~ О одну из пар величин
(и(t0), w(t0)) или (x(t0), y(t0)). .&
Помимо двух рассмотренных типов задач следует упомянуть еще
один тип - задачи идентификации. В широком смысле задача иденти­
фикации модели - это задача выбора среди множества всевозможных
моделей той, которая наилучшим образом описывает изучаемое явле­
ние. В такой постановке эта задача выглядит как практически неразре­
шимая проблема. Чаще задачу идентификации понимают в узком смысле,
как задачу выбора из заданного параметрического семейства моделей
13
Глава 1. Математическое моделирование и решение прикладных задач
конкретной математической модели (с помощью выбора ее параметров а),
с тем чтобы оптимальным в смысле некоторого критерия образом согла­
совать следствия из модели с результатами наблюдений.
Пример 1.4. Применительно к модели (1.1), (1.2) задача иденти­
фикации может состоять в определении значения ускорения свобод­
ного падения планеты g по результатам наблюдений за параметрами
траектории. А
Указанные три типа задач (прямые, обратные и задачи идентифика­
ции) будем называть вычислительными задачами. Для удобства изло­
жения в дальнейшем независимо от типа решаемой задачи будем назы­
вать набор подлежащих определению величин искомым решением
и обозначать через у, а набор заданных величин - входным данным
и обозначать через х.
Пример 1.5. При описании многих явлений используют модель
полиномиальной зависимости между величинами х и у:
у =Рп(х) = а0 + а1х + ". +апхп. (1.3)
Здесь а0 , а 1 , ... , ап - коэффициенты многочлена, являющиеся парамет­
рами модели (в число параметров модели можно включить и степень
многочлена).
При фиксированных значениях параметров прямая задача состоит
в вычислении значения многочлена у= Рп(х) по заданному х. В таком слу-
чае целью решения обратной задачи является определение по заданному
значению у соответствующего ему значения х. Нетрудно видеть, что это
есть задача отыскания корней многочлена, отличающегося от Р"(х) заме-
ной коэффициента а0 на а0 = а0 - у. Если же из практики известна неко­
торая информация о зависимости у от х, то определение параметров а0 ,
а1 , . .. ,ап, при которых модель (.3) наилучшим в некотором смысле обра­
зом описывает эту зависимость, представляет собой задачу идентифика­
ции. Например, если задана таблица значений х1 ,у1 (i = , ..., N), то такую
задачу в зависимости от ситуации можно решать, используя известные
методы интерполяции и наименьших квадратов (см. гл. 11). А
Пр им ер 1.6. Нередко входящие в модель функции x(t) и y(t)
бывают связаны равенством
1
y(t)=y0 + Jx(t)dt.
о
Например, так связаны между собой скорость x(t) и пуrь y(t) при
прямолинейном движении. Тогда при фиксированном значении пост~
14
§ 1.1. Математическое моделирование и процесс математической модели
янной у0 прямая задача (задача интегрирования) состоит в вычислении
первообразной y(t) по заданной функции x(t). Обратная задача (задача
дифференцирования) заключается в вычислении x(t) = y'(t) по заданной
функции y{t).•
Как правило, решение вычислительной задачи не удается выразить
через входные данные в виде конечной формулы. Однако это совсем не
означает, что решение такой задачи не может быть найдено. Сущест­
вуют специальные методы, которые называют численными (или вычис­
лительными). Они позволяют свести получение численного значения
решения к последовательности арифметических операций над числен­
ными значениями входных данных. Эти методы были известны давно:
в качестве примера, уже ставшего классическим, можно привести
открытие Леверье 1 в 1846 г. новой планеты Нептун. Однако для реше­
ния задач численные методы применялись довольно редко, так как их
использование предполагает выполнение гигантского объема вычисле­
ний~ Поэтому в большйнстве случаев до появления компьютеров при­
ходилось избегать использования сложных математических моделей
и исследовать явления в простейших ситуациях, когда возможно найти
аналитическое решение. Несовершенство вычислительного аппарата
становилось фактором, сдерживающим широкое использование мате­
матических моделей в науке и технике.
Появление компьютеров кардинально изменило ситуацию. Класс
математических моделей, допускающих подробное исследование, резко
расширился. Решение многих, еще недавно недоступных, вычислитель­
ных задач стало обыденной реальностью.
3. Проверка качества модели на практике и модификация
модели. На этом этапе выясняют пригодность математической модели
для описания исследуемого явления. Теоретические выводы и конкрет­
ные результаты, вытекающие из гипотетической математической модели,
сопоставляют с экспериментальными данными. Если они противоречат
друг другу, то выбранная модель непригодна и ее следует пересмотреть,
вернувшись к первому этапу. Если же результаты совпадают с допусти­
мой для описания данного явления точностью, то модель можно при-
1 Урбен Жан Жозеф Леверье (1811-1877) - французский астроном. На основании
законов небесной механики, использовав данные об аномалиях в движении планеты Уран,
Леверье рассчитал траекторию движения гипотетической неизвестной планеты. В том же
году неtецкий астроном Галле обнаружил Нептун в указанно" Леверье месте.
2 Расчет траектории планеты Нептун потребовал от Леверье нескольких месяцев кро­
потливой вычислительной работы.
15
Глава 1. Математическое моделирование и решение прикладных задач
знать пригодной. Конечно, необходимо дополнительное исследование в
целях установления степени достоверности модели и границ ее приме­
нимости.
На определенном этапе развития науки и техники постепенное накоп­
ление знаний приводит к моменту, когда результаты, получаемые
с помощью математической модели, вступают в противоречие с данными
практики или перестают удовлетворять ее требованиям в смысле точно­
сти. Тогда возникает необходимость модификации модели или же созда­
ния принципиально новой, более сложной модели. Таким образом, цикл
создания математической модели повторяется многократно.
Пример 1.7. Рассмотрим задачу внешней баллистики, те задачу
о движении артиллерийского снаряда. Простейшая модель (1. 1), (1.2)
дает параболическую траекторию движения снаряда, что, как было
замечено еще в XVII в , противоречит данным практики. Существен­
ным неучтенным фактором здесь является сопротивление воздуха.
Приведенная ниже модификация модели Галилея принадлежит
И. Ньютону 1• Известно, что сила лобового сопротивления воздуха F про­
порциональна квадрату скорости, т.е. F = -pv2. При этом р = 0.5СSp, где
р - плотность воздуха; S - площадь поперечного сечения; С - коэф­
фициент лобового сопротивления (для многих задач баллистики С о:: 0.15).
Обозначим через Fx и FY горизонтальную и вертикальную проек­
ции вектора лобового сопротивления. Заметим, что FxlF = ulv, F/F =
= wlv, v = Ju2 + w2 (рис. 1.2). Следовательно, Fx = -puJu2+ w2, FY =
= -pwJu2 + w2.
Пусть т - масса снаряда. Тогда в силу второго закона Ньютона
справедливы уравнения
т dи = _AuJu2 + w2
dt ~ '
(1 4)
Рис. 1.2
1 Исаак Ньютон (1643-1727) - английский физик, механик, астроном и математик,
заложивший основы современного естествознания.
16
§ 1.2. Основные этапы решения прикладной задачи с применением компьютера
т ~~ =-mg-f3wJu2 + w2, dy = w
dt ,
которые необходимо дополнить начальными условиями
(1.5)
u(O)=v0 cosa, w(O)=v0 sшa, х(О)=О, у(О)=О. (1.6)
Полученная модель является более сложной, чем рассмотренная
ранее модель (1.1), (.2), однако она содержит ее как частный случай.
Действительно, в случае f3 = О (сопротивление воздуха отсутствует)
уравнения (1.4)-(1.6) и (1.1), (.2) эквивалентны.
Естественно, что модель ( 1.4Н1. 6) непригодна для решения задач
современной баллистики и реально используемые модели значительно
сложнее. •
Заметим, что работа по созданию математической модели, как пра­
вило, проводится объединенными усилиями специалистов, хорошо
знающих предметную область, и математиков, владеющих соответст­
вующими разделами прикладной математики и способных оценить воз­
можность решения возникающих вычислительных задач.
§ 1.2. Основные этапы решения прикладной задачи
с применением компьютера
Решение серьезной прикладной задачи с использованием компью­
тера - довольно длительный и сложный процесс. С определенной сте­
пенью условности его можно разбить на ряд последовательных этапов
Выделим следующие этапы
1) постановка проблемы;
2) выбор или построение математической модели;
3) постановка вычислительной задачи;
4) предварительный (предмашинный) анализ свойств вычислитель-
ной задачи;
5) выбор или построение численного метода;
6) алгоритмизация и программирование;
7) отладка программы;
8) счет по программе;
9) обработка и интерпретация результатов;
1О) использование результатов и коррекция математической модели.
1. Постановка проблемы. Первоначально прикладная задача бывает
сформулирована в самом обшем виде исследовать некоторое явление,
спроектировать устройство, обладающее заданными свойствами, дать
прогноз поведения некоторого объекта в определенных условиях и т.д.
На данной стадии происходит конкретизация постановки задачи, и пер-
17
Глава 1. Математическое моделирование и решение прикладных задач
востепенное внимание при этом уделяется выяснению цели исследова­
ния. От исследователя требуется глубокое понимание существа задачи
и умение сформулировать ее так, чтобы найденное решение было полез­
ным и в то же время могло быть получено с помощью существующих
методов и в реальные сроки. Неудачная постановка проблемы может при­
вести к тому, что длительный и дорогостоящий процесс решения задачи
завершится получением бесполезных или тривиальных результатов
(в этом случае возможно и отсутствие каких-либо результатов).
Этот очень важный и ответственный этап завершается конкретной
формулировкой проблемы на языке, принятом в данной предметной
области. Знание возможностей, которые дает применение компьютера,
может оказать существенное влияние на окончательную формули­
ровку проблемы.
2. Выбор или построение математической модели. Для после­
дующего анализа исследуемого явления или объекта необходимо дать
его формализованное описание на языке математики, т.е. построить
математическую модель (см. § 1.1 ). Часто имеется возможность выбора
модели среди известных и принятых для описания соответствующих
процессов, но нередко требуется и существенная модификация извест­
ной модели, а иногда возникает необходимость в построении принци­
пиально новой модели.
Рассматриваемый этап - едва ли не самый важный и трудный. Часто
удачный выбор математической модели является решающим шагом
к достижению цели. Одна из существенных трудностей такого выбора
состоит в объективном противоречии между желанием сделать описание
явления как можно более полным (что приводит к усложнению модели) и
необходимостью иметь достаточно простую модель (чтобы была возмож­
ность реализовать ее на компьютере). Важно, чтобы сложность математи­
ческой модели соответствовала сложности поставленной проблемы. Если
поставленных целей можно достигнуть, использовав более простую
математическую модель, то ей и следует отдать предпочтение. Как пра­
вило, полезно иметь несколько упрощенных вариантов принимаемой
модели. Заметим, что грамотное упрощение модели - непростая задача,
однако анализ упрощенных моделей весьма полезен в течение всего
процесса решения задачи. Такие упрощенные модели часто позволяют
ответить на многие принципиальные вопросы и понять основные зако­
номерности поведения более сложной модели.
3. Постановка вычислительной задачи. На основе принятой
математической модели формулируют вычислительную задачу (или
ряд таких задач). Анализируя результаты ее решения, исследователь
предполагает получить ответы на интересующие его вопросы.
18
§ 1.2. Основные этапы решения прикладной задачи с применением компьютера
4. Предварительный анализ свойств вычислительной задачи. На
этом этапе проводят предварительное (предмашинное) исследование
свойств вычислительной задачи. Большое внимание уделяют анализу кор­
ректности ее постановки, т.е. выяснению вопросов сушествования
и единственности решения, а также исследованию устойчивости решения
задачи к погрешностям входных данных (эти вопросы более подробно рас­
сматриваются в гл. 3). Такое исследование, как правило, относится
к компетенции профессиональных математиков. Тем не менее, решающему
задачу полезно быть в курсе современного состояния названных проблем,
уметь самостоятельно проводить простейшие исследования.
К сожалению, для многих имеющих практическую ценность задач
их строгое исследование в полной постановке провести не удается
и к решению приступают без детального анализа математических
свойств этих задач. Это нежелательная, но вынужденная мера, так как
в прикладных исследованиях существенное значение имеют конкрет­
ные (часто - весьма сжатые) сроки получения результата. На этом
этапе полезным оказывается изучение упрощенных постановок задачи.
Иногда для них удается провести исследование, позволяющее понять
основные особенности исходной вычислительной задачи. Особую цен­
ность имеют различные аналитические решения; они оказываются
полезными не только для анализа явления, но и как основа для тесто­
вых испытаний на этапе отладки программы.
S. Выбор или построение численного метода. Для решения
вычислительной задачи на компьютере требуется использование чис­
ленных методов.
Часто решение прикладной задачи сводится к последовательному
решению стандартных вычислительных задач, для которых разрабо­
таны эффективные численные методы. В этой ситуации происходит
либо выбор среди известных методов, либо их адаптация к особенно­
стям решаемой задачи. Однако если возникающая вычислительная
задача является новой, то не исключено, что для ее решения не суще­
ствует готовых методов. Построение численного метода для такой
задачи может оказаться очень трудной проблемой и потребовать при­
влечения специалиста по вычислительной математике. Умение разли­
чать отмеченные две ситуации необходимо, и наличие его уже говорит
об определенной квалификации в области вычислительных методов.
Для решения одной и той же вычислительной задачи обычно может
быть использовано несколько методов. Необходимо знать особенности
этих методов, критерии, по которым оценивается их качество, чтобы
выбрать метод, позволяющий решить проблему наиболее эффективным
образом. Здесь выбор далеко не однозначен. Он существенно зависит
19
Глава 1. Математическое моделирование и решение прикладных задач
от требований, предъяаляемых к решению, от имеющихся в наличии
ресурсов, от доступной для использования вычислительной техники и т.д.
Возникающим на этом этапе вопросам и посвящена большая часть
данной книги.
6. Алгоритмизация и программирование. Как правило, выбранный
на предыдущем этапе численный метод содержит только принципиаль­
ную схему решения задачи, не включающую многие детали, без которых
невозможна реализация метода на компьютере. Необходима подробная
детализация всех этапов вычислений, для того чтобы получить реализуе­
мый на компьютере алгоритм. Состааление программы сводится к пере­
воду этого алгоритма на выбранный язык программирования. Заметим,
что в настоящее время для вычислительных задач наиболее широко
используются алгоритмические языки СИ++ и ФОРТРАН.
В книге значительное место уделяется алгоритмам (в гл. 3 обсужда­
ются их общие свойства и критерии оценки качества) и практически не
рассматриваются вопросы собственно программирования. Конечно, алго­
ритмизация и программирование очень тесно связаны. Более того, прак­
тика показывает, что небольшие, на первый взгляд, различия в програм­
мах могут привести к значительным различиям в их эффективности. Тем
не менее, вопрос разработки качественного программного продукта мы
не затрагиваем (этому предмету посвящено большое число пособий).
Подчеркнем лишь, что большинство пользователей справедливо предпо­
читает строить свои программы из готовых модулей и использовать стан­
дартные программы, реализующие те или иные алгоритмы. Разумеется,
отсутствие в библиотеке стандартных программ той или иной программы
не должно быть непреодолимым препятствием.
7. Отладка программы. На этом этапе с помощью компьютера
выявляют и исправляют ошибки в программе.
Как правило, начинающий пользователь компьютера убежден, что
ошибок в составленной им программе нет или же они могут быть легко
обнаружены и исправлены. Однако совершенно неожиданно для него
отладка программы и доведение ее до рабочего состояния нередко ока­
зывается длительным и весьма трудоемким процессом. Приобретая
определенный опыт в составлении и отладке сравнительно сложных
программ, пользователь убеждается в справедливости популярного
афоризма: «В любой программе есть по крайней мере одна ошибка».
Таким образом, наличие в программах ошибок - вполне нормаль­
ное и закономерное явление, поэтому подготовку к отладке следует
начинать уже на этапе алгоритмизации и программирования. Заметим,
что эффективность отладки самым существенным образом зависит от
общей методики разработки программ.
20
§ 1.2. Основные этапы решения прикладной задачи с применением компьютера
После устранения ошибок программирования необходимо про­
вести тщательное тестирование программы - проверку правильности
ее работы на специально отобранных тестовых задачах, имеющих
известные решения.
8. Счет по программе. На этом этапе происходит решение задачи
на компьютере по составленной программе в автоматическом режиме.
Этот процесс, в ходе которого входные данные с помощью компью­
тера преобразуются в результат, называют вычислительным процес­
сом. Как правило, счет повторяется многократно с различными вход­
ными данными для получения достаточно полной картины
зависимости от них решения задачи.
Первые полученные результаты тщательно анализируются, для
того чтобы убедиться в правильности работы программы и пригодно­
сти выбранного метода решения. Счет по программе продолжается
несколько секунд, минут или часов. Именно быстротечность этого
этапа порождает распространенную иллюзию о возможности решать
важные прикладные задачи на компьютере в очень короткое время. В
действительности же, конечно, необходимо принимать во внимание
весь цикл от постановки проблемы до использования результатов. Для
серье1ных задач часто полезные результаты получаются только в
результате многолетней работы.
9. Обработка и интерпретация результатов. Полученные в
результате расчетов на компьютере выходные данные, как правило,
представляют собой большие массивы чисел. Начинающий пользователь
часто пытается вывести эти массивы на печать, чтобы «потом провести
их анализ». Обычно первый же опыт анализа распечатки, содержащий
сотни тысяч чисел, приводит к пониманию того, что эта работа непо­
сильна для человека и следует постараться возложить ее на компьютер.
Часто первоочередной интерес представляет лишь небольшая часть
полученной информации (например, значения одной из функций в
выделенных точках) или даже некоторая грубая интегральная характе­
ристика (максимальное или минимальное значение, оценка энергии
системы и т.д.).
Для того чтобы исследователь мог воспользоваться результатами
расчетов, их необходимо представить в виде компактных таблиц, гра­
фиков или в иной удобной для восприятия форме. При этом следует,
максимально использовать возможности компьютера для подготовки
такой информации и ее представления с помощью печатающих и гра­
фических выходных устройств.
Для правильной интерпретации результатов расчетов и оценки их
достоверности от исследователя требуется глубокое знание существа
21
Глава 1. Математическое моделирование и решение прикладных задач
решаемой инженерной задачи, ясное представление об используемой
математической модели и понимание (хотя бы в общих чертах) особен­
ностей применяемого вычислительного метода.
Вопросы обработки и интерпретации результатов вычислений будут
затронуты при рассмотрении конкретных вычислительных методов
и алгоритмов.
10. Использование результатов и коррекция математической
модели. Завершающий этап состоит в использовании результатов расче­
тов в практической деятельности, иначе говоря, во внедрении результа­
тов. Не стоит огорчаться, если большинство полученных сначала резуль­
татов окажется бесполезным. Действительно полезные для практики
результаты являются плодом серьезной целенаправленной работы,
в процессе которой цикл решения задачи повторяется неоднократно.
Очень часто анализ результатов, проведенной на этапе их обработки
и интерпретации, указывает на несовершенство используемой матема­
тический модели и необходимость ее коррекции. В таком случае мате­
матическую модель модифицируют (при этом она, как правило, услож­
няется) и начинают новый цикл решения задачи.
§ 1.3. Вычисnитеnьный эксперимент
Создание математических моделей и решение прикладных задач
с применением компьютера требует выполнения большого объема
работ (см. § 1.1, 1.2). Нетрудно заметить аналогию с соответствую­
щими работами, проводимыми при организации натурных эксперимен­
тов: составление программы экспериментов, создание эксперименталь­
ной установки, выполнение контрольных экспериментов, проведение
серийных опытов, обработка экспериментальных данных и их интер­
претация и т.д. Однако вычислительный эксперимент проводится не
над реальным объектом, а над его математической моделью, и роль экс­
периментальной установки играет компьютер, оснащенный специально
разработанным пакетом прикладных программ. В связи с этим естест­
венно рассматривать проведение больших комплексных расчетов при
решении прикладных и научных задач как вычислительный экспери­
мент, а описанную в предыдущем параграфе последовательность эта­
пов решения как один его цикл.
Широкое применение компьютеров в математическом моделирова­
нии, разработанная теория и значительные практические результаты
позволяют говорить о вычислительном эксперименте как о новой тех­
нологии и методологии научных и прикладных исследований. Серьезное
внедрение вычислительного эксперимента в прикладные исследования
22
§ 1.3. Вычислительный эксперимент
лишь начинается, но там, где оно происходит реально (в авиационной
и космической промышленности), его плоды весьма весомы.
Отметим некоторые достоинства вычислительного эксперимента по
сравнению с натурным. Вычислительный эксперимент, как правило,
дешевле физического. В этот эксперимент можно легко и безопасно
вмешиваться. Его можно повторить еще раз (если в этом есть необходи­
мость) и прервать в любой момент. В ходе этого эксперимента можно
смоделировать условия, которые нельзя создать в лаборатории.
Заметим, что в ряде случаев проведение натурного эксперимента
затруднено (а иногда и невозможно), так как изучаются быстропроте­
кающие процессы, исследуются труднодоступные или вообще пока
недоступные объекты. Часто проведение полномасштабного натурного
эксперимента сопряжено с губительными или непредсказуемыми
последствиями (ядерная война, поворот сибирских рек) или с опасно­
стью для жизни или здоровья людей. Нередко требуется исследование
и прогнозирование результатов катастрофических явлений (авария
ядерного реактора АЭС, глобальное потепление климата, землетрясе­
ние). В этих случаях вычислительный эксперимент может стать основ­
ным средством исследования. Заметим, что с его помощью оказывается
возможным прогнозировать свойства новых, еще не созданных конст­
рукций и материалов на стадии их проектирования.
Существенным недостатком вычислительного эксперимента явля­
ется то, что применимость его результатов ограничена рамками приня­
той математической модели.
Конечно, вычислительный эксперимент никогда не сможет полно­
стью заменить натурный, и будущее за их разумным сочетанием. Дей­
ствительно, построение математической модели основано на результа­
тах наблюдений, опыта, а достоверность ее выводов проверяется с
помощью критерия - практики.
Для прикладных задач характерно наличие значительного числа пара­
метров (конструктивных, технологических и др.). Создание нового изде­
лия или технологического процесса предполагает выбор среди большого
числа альтернативных вариантов, а также оптимизацию по ряду парамет­
ров. Поэтому в ходе вычислительного эксперимента расчеты проводятся
многократно с разными значениями входных параметров. Для получения
нужных результатов с требуемой точностью и в приемлемые сроки необ­
ходимо, чтобы на расчет каждого варианта тратилось минимальноr
время. Именно поэтому при создании программного обеспечения так
важно использовать эффективные численные методы.
Разработка программного обеспечения вычислительного экспери­
мента в конкретной области прикладной деятельности приводит к созда­
нию крупного программного комплекса. Он состоит из связанных между
23
Глава 1. Математическое моделирование и решение прикладных задач
собой прикладных программ и системных средств, включающих сред­
ства, предоставляемые пользователю для управления ходом вычисли­
тельного эксперимента, обработки и представления его результатов.
Такой комплекс программ иногда называют пробле.мно-ориентирован­
ным пакетом прикладных програм,~1.
§ 1.4. Допоnнитеnьные замечани1
1. Математическое моделирование является основой современной
методологии решения прикладных задач, и его роль объективно возрас­
тает в связи с необходимостью решения все более сложных приклад­
ных проблем.
2. Эффективность применения компьютера в той или иной области
науки и техники тем выше, чем совершеннее ее математические
модели. В то же время использование компьютера для исследования
каких-либо процессов часто служит серьезным стимулом для создания
новых математических моделей и детального изучения лих процессов
другими методами.
3. Само по себе применение компьютера не позволяет решить
прикладную задачу, а лишь дает в руки исследователя мощный инст­
румент познания. Использование компьютера не только не освобож­
дает от необходимости глубоко осмыслить решаемую проблему, но и
заставляет уделять постановке задачи гораздо больше внимания.
4. Вычислительный эксперимент не противоречит натурному экс­
перименту и классическому математическому анализу прикладной
задачи, а, напротив, находится с ними в органическом единстве.
5. Для успешного применения метода математического моделирова­
ния с использованием компьютера необходимо гармоническое владе­
ние всеми его составляющими. В настоящем пособии основное внима­
ние уделено вычислительным методам и алгоритмам, анализу свойств
вычислительных задач, интерпретации получаемых результатов.
6. Дополнительную информацию о методологии современного м~rrема­
тическоrо моделирования и концепции вычислительного эксперимента
можно получить из следующих источников: [58, 71, 79, 96, 99, 11 *].
7. В настоящее время большое количество высококачественных про­
грамм и пакетов программ распространяется бесплатно. Например,
через lnternet по адресу http://www.netlib.org доступно программное
обеспечение, предназначенное для решения широкого спектра приклад­
ных задач. Кроме того, по адресу http://www.acm.org/pubs/cago можно
найти 866 тщательно разработанных программ, реализующих эффек­
тивные вычислительные алгоритмы.
24
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379
33379

More Related Content

Similar to 33379

алгебра 8 класс рабочая программа
алгебра 8 класс  рабочая программаалгебра 8 класс  рабочая программа
алгебра 8 класс рабочая программаСтанислав Волков
 
693.введение в анализ практикум по решению задач
693.введение в анализ практикум по решению задач693.введение в анализ практикум по решению задач
693.введение в анализ практикум по решению задачefwd2ws2qws2qsdw
 
693.введение в анализ практикум по решению задач
693.введение в анализ практикум по решению задач693.введение в анализ практикум по решению задач
693.введение в анализ практикум по решению задачivanov1566353422
 
1554 математика. нестанд. метод. реш. неравенств коропец, алексеева-2012 -125с
1554  математика. нестанд. метод. реш. неравенств коропец, алексеева-2012 -125с1554  математика. нестанд. метод. реш. неравенств коропец, алексеева-2012 -125с
1554 математика. нестанд. метод. реш. неравенств коропец, алексеева-2012 -125сpsvayy
 
Метод вспомогательной окружности
Метод вспомогательной окружностиМетод вспомогательной окружности
Метод вспомогательной окружностиrasparin
 
основы классической триз. м. орлов
основы классической триз. м. орловосновы классической триз. м. орлов
основы классической триз. м. орловAlex Proskyrin
 
мр комбинаторика
мр комбинаторикамр комбинаторика
мр комбинаторикаDemanessa
 
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4dFile0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4dssusera868ff
 
5 матем 6 часов
5 матем 6 часов5 матем 6 часов
5 матем 6 часовoksana197319
 
Эллиот Мендельсон. Введение в математическую логику. 1976.
Эллиот Мендельсон. Введение в математическую логику. 1976.Эллиот Мендельсон. Введение в математическую логику. 1976.
Эллиот Мендельсон. Введение в математическую логику. 1976.Yura Maturin
 
2 методика изучения алгебраических выражений, тождеств и тождественных
2 методика изучения алгебраических выражений, тождеств и тождественных2 методика изучения алгебраических выражений, тождеств и тождественных
2 методика изучения алгебраических выражений, тождеств и тождественныхВячеслав Пырков
 
Matematika 1 4
Matematika 1 4Matematika 1 4
Matematika 1 4mashresurs
 
завдання з параметрами
завдання з параметрамизавдання з параметрами
завдання з параметрамиЕлена Гришко
 
вымсыкм4еп
вымсыкм4епвымсыкм4еп
вымсыкм4епSergii Perun
 

Similar to 33379 (20)

алгебра 8 класс рабочая программа
алгебра 8 класс  рабочая программаалгебра 8 класс  рабочая программа
алгебра 8 класс рабочая программа
 
693.введение в анализ практикум по решению задач
693.введение в анализ практикум по решению задач693.введение в анализ практикум по решению задач
693.введение в анализ практикум по решению задач
 
693.введение в анализ практикум по решению задач
693.введение в анализ практикум по решению задач693.введение в анализ практикум по решению задач
693.введение в анализ практикум по решению задач
 
1554 математика. нестанд. метод. реш. неравенств коропец, алексеева-2012 -125с
1554  математика. нестанд. метод. реш. неравенств коропец, алексеева-2012 -125с1554  математика. нестанд. метод. реш. неравенств коропец, алексеева-2012 -125с
1554 математика. нестанд. метод. реш. неравенств коропец, алексеева-2012 -125с
 
S10gallamov
S10gallamovS10gallamov
S10gallamov
 
1
11
1
 
Метод вспомогательной окружности
Метод вспомогательной окружностиМетод вспомогательной окружности
Метод вспомогательной окружности
 
Metod intervaljv
Metod intervaljvMetod intervaljv
Metod intervaljv
 
основы классической триз. м. орлов
основы классической триз. м. орловосновы классической триз. м. орлов
основы классической триз. м. орлов
 
мр комбинаторика
мр комбинаторикамр комбинаторика
мр комбинаторика
 
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4dFile0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
 
5 матем 6 часов
5 матем 6 часов5 матем 6 часов
5 матем 6 часов
 
Учебные пособия по методике преподавания математики
Учебные пособия по методике преподавания математикиУчебные пособия по методике преподавания математики
Учебные пособия по методике преподавания математики
 
Эллиот Мендельсон. Введение в математическую логику. 1976.
Эллиот Мендельсон. Введение в математическую логику. 1976.Эллиот Мендельсон. Введение в математическую логику. 1976.
Эллиот Мендельсон. Введение в математическую логику. 1976.
 
6 матем
6 матем6 матем
6 матем
 
2 методика изучения алгебраических выражений, тождеств и тождественных
2 методика изучения алгебраических выражений, тождеств и тождественных2 методика изучения алгебраических выражений, тождеств и тождественных
2 методика изучения алгебраических выражений, тождеств и тождественных
 
Matematika 1 4
Matematika 1 4Matematika 1 4
Matematika 1 4
 
завдання з параметрами
завдання з параметрамизавдання з параметрами
завдання з параметрами
 
Методика решения нестандартных задач по математике
Методика решения нестандартных задач по математике Методика решения нестандартных задач по математике
Методика решения нестандартных задач по математике
 
вымсыкм4еп
вымсыкм4епвымсыкм4еп
вымсыкм4еп
 

More from qwasar1 (20)

36264
3626436264
36264
 
35155
3515535155
35155
 
372345676
372345676372345676
372345676
 
763562521
763562521763562521
763562521
 
17423
1742317423
17423
 
17047
1704717047
17047
 
33059
3305933059
33059
 
30839
3083930839
30839
 
36414
3641436414
36414
 
36417
3641736417
36417
 
36411
3641136411
36411
 
36412
3641236412
36412
 
36396
3639636396
36396
 
36350
3635036350
36350
 
36314
3631436314
36314
 
36322
3632236322
36322
 
36338
3633836338
36338
 
36340
3634036340
36340
 
36186
3618636186
36186
 
36195
3619536195
36195
 

33379

  • 1.
  • 2. А. А. АМОСОВ, Ю. А. ДУБИНСКИЙ, Н.В.КОПЧЕНОВА ВЬIЧИСЛИТЕЛЬНЬIЕ МЕТОДЬI Учебное пособие Издание четвертое, стереотипное ьСАНКТ-ПЕТЕРБУРГ· МОСКВА· КРАСНОДАР 2014
  • 3. ББК22.1я73 А62 Амосов А. А., Дубинский Ю. А., Копченова Н. В. А 62 Вычислительные методы: Учебное пособие. - 4-е изд., стер. - СПб.: Издательство (<Ланы, 2014. - 672 с.: ил. - (Учебники для вузов. Специальная литера­ тура). ISBN 978-5-8114-1623-3 В книге рассматриваются вычислительные методы, наиболее часто используемые в практике прикладных и научно-технических расчетов: методы решения задач линейной алгебры, нелинейных уравнений, проблемы собственных значений, методы теории приближения функций, численное дифференцирование и интегри­ рование, поиск экстремумов функций, решение обыкновенных диф­ ференциальных уравнений, численное решение интегральных уравнений, линейная и нелинейная задачи метода наименьших квадратов, метод сопряженных градиентов. Значительное внимание уделяется особенностям реализации вычислительных алгоритмов на компьютере и оценке достоверности полученных результатов. Имеет­ ся большое количество примеров и геометрических иллюстраций. Даются сведения о стандарте IEEE, о сингулярном разложении матрицы и его применении для решения переопределенных систем, о двухслойных итерационных методах, о квадратурных формулах Гаусса-Кронрода, о методах Рунге-Кутты-Фельберга. Учебное пособие предназначено для студентов всех направлений подготовки, обучающихся в классических и технических универ­ ситетах и изучающих вычислительные методы, будет полезно аспи­ рантам, инженерам и научным работникам, применяющим вычисли­ тельные методы в своих исследованиях. ББК 22.1я73 Рецензенты: Н. Н. КАЛИТКИН - член-корреспондент РАН; Н. С. БАХВАЛОВ - профессор, зав. кафедрой вычислительной математики механико-математического факультета МГУ, академик РАН; Е. И. МОИСЕЕВ - профессор, декан факультета вычислительной математики и кибернетики МГУ, член-корреспондент РАН. Обложка Е. А. ВЛАСОВА © Издательство •Ланы, 2014 © Коллектив авторов, 2014 © Издательство •Лавы, художественное оформление, 2014
  • 4. Цель расчетов - не числа, а понимание. Р.В. Хемминг Из нашего девиза «Цель расчетов - не числа, а понимание» следует, что человек, который должен этого понимания достиг­ нуть, обязан знать, как происходит вычис­ ление. Если он не понимает, что делается, то очень маловероятно, чтобы он извлек из вычислений что-нибудь ценное. Он видит голые цифры, но их истинное значение мо­ жет оказаться скрытым в вычислениях. Р.В. Хемминг ПРЕДИСЛОВИЕ К ПЕРВОМУ ИЗДАНИЮ В настоящее время имеется значительное число учебников и моно­ графий, посвященных методам вычислений (часть из них отражена в списке литературы к данному пособию). Однако, на наш взгляд, боль­ шинство этих книг ориентировано на студентов-математиков или на специалистов по вычислительной математике. В то же время практиче­ ски отсутствует отечественная учебная литература, в которой доступ­ ным для студента технического вуза или инженера образом были бы изложены основы вычислительных методов, применяемых сегодня для решения инженерных задач. Особенно острой, по мнению авторов, является потребность в книге, которая содержала бы не только изложе­ ние начал численных методов, но и давала бы представление о реально используемых в вычислительной практике алгоритмах. Данное учебное пособие призвано в определенной степени восполнить этот пробел. Настоящее пособие адресовано в первую очередь студентам и аспи­ рантам высших технических учебных заведений, изучающим основы математического моделирования и численные методы. Авторы наде­ ются на то, что эта книга будет полезна широкому кругу инженерных и научно-технических работников, которые намерены применять ЭВМ для решения прикладных задач. При написании книги авторы использовали многолетний опыт пре­ подавания курса вычислительных методов студентам и аспирантам различных специальностей Московского энергетического института, а также опыт работы в вычислительном центре МЭИ. Значительное влияние на выбор материала и характер изложения оказали также мно­ гочисленные дискуссии со слушателями существующего при МЭИ факультета повышения квалификации преподавателей вузов страны. Авторы стремились изложить материал по возможности наиболее простым и доступным образом. Объем знаний высшей математики, необходимый для понимания содержания книги, не выходит за рамки программы младших курсов втуза. Пособие содержит довольно много 3
  • 5. Предисловие примеров, иллюстрирующих те или иные положения теории, а также демонстрирующих особенности вычислительных методов или работу конкретных алгоритмов. Тем не менее, многие из рассматриваемых вопросов трудны для восприятия и требуют внимательного изучения. К сожалению, в учебной литературе они нередко опускаются. К таким цен­ тральным вопросам относятся, например понятия корректности, устойчи­ вости и обусловленности вычислительных задач и вычислительных алго­ ритмов, особенности поведения вычислительной погрешности. Важность их понимания для эффективного применения ЭВМ сегодня велика и не акцентировать на них внимание авторы посчитали невозможным. Дадим краткое изложение основного содержания книги. Важную идей­ ную нагрузку несут на себе первые три главы. Рассматриваемые в них вопросы закладывают фундамент, необходимый для правильного пони­ мания изложенных в остальных главах вычислительных методов. В гл. 1 дается общее представление о методе математического моде­ лирования, в том числе о процессе создания математических моделей, последовательности этапов решения инженерной задачи с применение ЭВМ, вычислительном эксперименте. В гл. 2 наряду с введением в элементарную теорию погрешностей содержится изложение основных особенностей машинной арифметики. Понимание этих особенностей необходимо тем, кто заинтересован в эффективном применении ЭВМ для решения прикладных задач. В гл. 3 обсуждаются важнейшие свойства вычислительных задач, методов и алгоритмов. Дается общее представление о корректности, устойчивости и обусловленности вычислительной задачи. Приводится описание основных классов вычислительных методов. Значительное внимание уделяется устойчивости вычислительных алгоритмов, их чув­ ствительности к ошибкам. Дается представление о различных подходах к анализу ошибок, в том числе и об обратном анализе ошибок. Обсужда­ ются требования, предъявляемые к вычислительным алгоритмам. Конкретные вычислительные задачи и методы их решения рассмат­ риваются начиная с гл. 4. Здесь авторы стремились к тому, чтобы не только изложить простейшие подходы, но и дать представление об алгоритмах, которые реально используются для решения соответствую­ щих задач. В гл. 4 рассматриваются методы отыскания решений нелинейных уравнений. Значительное внимание уделено постановке задачи и ее свойствам, в частности - чувствительности корней нелинейных урав­ нений к погрешностям. Среди различных методов отыскания корней более подробно излагаются метод простой итерации, метод Ньютона и различные их модификации. В гл. 5 рассмотрены прямые (точные) методы решения систем линейных алгебраических уравнений. Основное внимание уделяется 4
  • 6. Предисловие методу Гаусса и его различным модификациям. Рассматриваются использование LИ-разложения матриц для решения систем линейных уравнений, метод квадратных корней, метод прогонки, методы враще­ ний и отражений. Обсуждается алгоритм итерационного уточнения. В гл. 6 рассматриваются итерационные методы решения систем линейных алгебраических уравнений: метод простой итерации, метод Зейделя, метод релаксации и другие методы. В гл. 7 рассматривается задача отыскания решений систем нелинейных уравнений. Обсуждаются не только соответствующие итерационные методы, но и различные подходы к решению сложной задачи локализации. В гл. 8 дается представление о проблеме собственных значений и о различных подходах к вычислению собственных значений и собст­ венных векторов. Излагаются степенной метод и обратный степенной метод, обсуждается QR-алгоритм. В гл. 9 излагаются наиболее известные численные методы решения задачи одномерной минимизации, в том числе метод деления отрезка пополам, метод Фибоначчи, метод золотого сечения и метод Ньютона. В гл. 10 рассматриваются различные методы решения задачи безус­ ловной минимизации. Наиболее полно изложены градиентный метод, метод Ньютона и метод сопряженных градиентов. В гл. 11 рассмотрены наиболее важные и часто встречающиеся в приложениях методы приближения функций. Значительное внимание уделено интерполяции, причем рассматривается интерполяция не только алгебраическими многочленами, но и тригонометрическими многочле­ нами, а также интерполяция сплайнами. Достаточно подробно обсужда­ ется метод наименьших квадратов. Дается понятие о наилучшем равно­ мерном приближении и дробно-рациональных аппроксимациях. В эту главу включены также некоторые вопросы, имеющие непо­ средственное отношение к методам приближения функций. Это конеч­ ные и разделенные разности, многочлены Чебышева, быстрое дискрет­ ное преобразование Фурье. В гл. 12 рассматриваются различные подходы к выводу формул чис­ ленного дифференцирования, обсуждается чувствительность этих фор­ мул к ошибкам в вычислении значений функции. В гл. 13 излагаются методы вычисления определенных интегралов. Выводятся квадратурные формулы интерполяционного типа и квадра­ турные формулы Гаусса. Дается представление о принципах построения адаптивных процедур численного интегрирования и, в частности, об используемых в них способах апостериорной оценки погрешности. Рас­ сматриваются различные подходы к вычислению интегралов от функ­ ций, имеющих те или иные особенности. В частности, затрагивается проблема интегрирования быстро осциллирующих функций. 5
  • 7. Предисловие Глава 14 посвящена численным методам решения задачи Коши для обыкновенных дифференциальных уравнений. Подробно рассматрива­ ются метод Эйлера и его различные модификации. Значительное вни­ мание уделено рассмотрению классических методов Рунге-Кутты и Адамса. Обсуждаются различные свойства устойчивости численных методов решения задачи Коши, в том числе нуль-устойчивость, абсо­ лютная устойчивость, А-устойчивость, А(а)-устойчивость. Специально рассматриваются жесткие задачи и методы их решения. В гл. 15 изучаются методы численного решения двухточечных крае­ вых задач. Подробно излагается применение метода конечных разно­ стей к решению краевых задач для обыкновенного дифференциального уравнения второго порядка. Дается представление о проекционных методах Ритца и Галеркина; обсуждается один из их современных вариантов - метод конечных элементов. Завершает главу рассмотре­ ние метода пристрелки. Можно предположить, что к изучению отдельных параграфов или даже глав этой книги читатель приступит, только столкнувшись с необ­ ходимостью решить на ЭВМ важную для него задачу. Вероятно, в этом случае польза от изучения соответствующего раздела будет наиболь­ шей. Многие вопросы рассмотрены очень кратко или не рассмотрены вообще. Авторы надеются на то, что соответствующие пробелы можно восполнить, использовав сделанные в тексте ссылки на известные учебники и монографии. В ряде случаев авторы позволяют себе интерпретировать те или иные результаты, делать определенные выводы и даже давать рекомендации в надежде на то, что для новичка соответствующие рассуждения дадут полезный начальный ориентир. В целом же ко всяким рекомендациям в такой сложной и многообразной области, как применение вычислитель­ ных методов для решения прикладных задач на ЭВМ, следует отнестись с осторожностью. Они не могут претендовать на бесспорность и их сле­ дует рассматривать скорее как отражение точки зрения авторов. Иногда то или иное положение обосновывается ссылкой на вычис­ лительную практику. Хотя критерий практики и играет при отборе методов вычислений существенную роль, все же оценки методов, осно­ ванные на результатах их применения для решения конкретных задач, нередко бывают весьма субъективны и противоречивы. В заключение отметим, что никакие теоретические положения и советы не могут заменить собственного опыта вычислительной работы. Как надеются авторы, параллельно с изучением данной книги такой опыт может приобрести читатель, переходя от решения задач учебного характера к серьезным практическим задачам. Авторы 6
  • 8. ПРЕдИСЛОВИЕ КО ВТОРОМУ ИЗДАНИЮ Со времени выхода в свет первого издания этой книги, в 1994 г. в издательстве «Высшая школа>>, прошло около десяти лет. За это время стало ясно, что она нашла своего читателя. Книга активно используется студентами, аспирантами, преподавателями и научными сотрудниками не только Московского энергетического института, но и других вузов страны. В то же время обнаружился ряд опечаток и неточностей в из­ ложении, которые было бы желательно исправить. Поэтому авторы с благодарностью приняли любезное предложение Издательства МЭИ о переиздании учебного пособия. Во втором издании книги исправлены замеченные недостатки. Рас­ смотрен ряд вопросов, которые не были включены в первое издание. Это стандарт IEEE, сингулярное разложение матрицы и его примене­ ние для решения переопределенных систем, двухслойные итерацион­ ные методы решения систем линейных алгебраических уравнений (включая метод с чебышевским набором параметров, метод сопряжен­ ных градиентов и предобусловливание), обратная интерполяция, интер­ поляционный многочлен Бесселя, многомерная интерполяция, квадра­ турные формулы Гаусса-Кронрода, метод Рунге-Кутты-Фельберга. Дополнен список литературы. Авторы пользуются случаем выразить свою благодарность россий­ ским ученым, которые оказали существенное влияние на формирование их взглядов на вычислительную математику. Это акад. РАН Н.С. Бах­ валов, акад. РАН В.В. Воеводин, акад. РАН А.А. Самарский, акад. РАН А.Н. Тихонов, проф. Ф.П. Васильев, проф. Е.Г. Дьяконов, проф. Я.М. Жи­ лейкин, проф. Х.Д. Икрамов, проф. Г.М. Кобельков, докт физ-мат. наук А.С. Кронрод, проф. И.А. Марон. Работа по подготовке второго издания к печати выполнена проф. А.А. Амосовым. Авторы искренне признательны своим коллегам проф. А.А. Злотнику, доц. О.А. Амосовой и доц В.П. Григорьеву, чьи заме­ чания были существенно использованы в процессе работы над вто­ рым изданием. Авторы заранее благодарны всем, кто пожелает вы­ сказать свои замечания и предложения. Их следует направлять по ад­ ресу: 111250, Москва, Красноказарменная ул., д. 14, Издательство МЭИ или по адресу AmosovAA@mpel.ru. Авторы 7
  • 9. ПРЕДИСЛОВИЕ К ТРЕТЬЕМУ ИЗДАНИЮ Перед Вами третье издание книги, которая теперь называется «Вычис­ лительные методы», хотя в двух предыдущих изданиях она выходила под названием «Вычислительные методы для инженеров». По-видимому, авторы должны как-то объяснить, почему название книги стало сущест­ венно короче. Во-первых, методы вычислений, применяемые для решения возни­ кающих на практике задач, универсальны. И не существует каких-то специ­ альных методов, предназначенных для решения только лишь инженерных задач. Поэтому изложенные в книге методы могут использоваться студен­ тами, аспирантами и исследователями для решения самых разных задач, в том числе - экономических, медицинских, биологических и т.д. Нет необхо­ димости специально сужать круг возможных читателей. Во-вторых, перемены, происходящие в высшем образовании нашей страны, скоро приведут к тому, что высокое звание «инженер» станет воспри­ ним~rгься как архаика. Книга, предназначенная для каких-то непонятных инже­ неров, может показ~rгься ненужной будущим бакалаврам и магистрам. Так что сокращение названия книги - это и вынужденная дань нынешней моде. Чем это издание отличается от предыдущего? Во-первых, в нем исправ­ лены обнаруженные неточности и опечатки. Во-вторых, добавлена новая глава, посвященная численному решению интегральных уравнений. В третьих, час­ тично изменено содержание некоторых параграфов. Существенной перера­ ботке подвергся параграф 2.5, посвященный особенностям машинной арифметики. В нем теперь достаточно полно отражены особенности IEEE арифметики, реализованной в настоящее время на большинстве современ­ ных компьютеров. Достойное место в книге, наконец, занял метод наимень­ ших квадратов. В ней появились два новых параграфа, посвященных линейной и нелинейной задачам метода наименьших квадратов. Появился также отдельный параграф, посвященный методу сопряженных градиентов решения систем линейных алгебраических уравнений. Список литературы дополнен. Ссылки на литературу, добавленную к третьему изданию, помечены звездочкой. Работа по подготовке к печати третьего издания выполнена проф. А.А. Амосовым. Авторы заранее благодарны читателям, которые пожелают высказать свои замечания или предложения по содержанию книги. Их следует направлять по адресу 111250, Москва, Красноказарменная ул., д. 14, Изда­ тельский дом МЭИ или по адресу электронной почты AmosovAA@mpei.ru. Авторы 8
  • 10. Глава 1 МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ И РЕШЕНИЕ ПРИКЛАДНЫХ ЗАДАЧ С ПРИМЕНЕНИЕМ КОМПЬЮТЕРА В этой главе дается общее представление о методе математического моделирования, в том числе о процессе создания математических моде­ лей, о последовательности этапов решения прикладной задачи с приме­ нением компьютера, о вычислительном эксперименте. Разделение решаемых с применением компьютера задач на приклад­ ные и научные является до известной степени условным. Тем не менее, при написании данного пособия авторы ориентировались на читателя, интересующегося решением именно прикладных задач. Попытаемся охарактеризовать этот класс задач, выделив его некоторые характерные особенности. 1. Прикладные задачи имеют ярко выраженную практическую направленность. Целью их решения является создание новой конструк­ ции, разработка нового технологического процесса, минимизация затрат на производство некоторого изделия и т.д. Поэтому для таких задач характерна необходимость доведения результатов до конкретных чисел, графиков, таблиц, на основании которых можно принимать решения. 2. Эти задачи характеризуются значительным объемом выполняе­ мой вычислительной работы. 3. Для этих задач характерно использование достаточно сложных математических моделей и серьезного математического аппарата. 4. Прикладные задачи, как правило, решают специалисты, не являю­ щиеся профессионалами в области разработки математических мето­ дов и программного обеспечения компьютеров. Поэтому естественно желание этих специалистов использовать готовые вычислительные методы и стандартное математическое программное обеспечение. Наконец, условимся считать, что в рассматриваемый класс задач входят задачи только умеренной сложности. Для их решения не требу­ ются сверхбольшие скорости вычислений и сверхбольшие объемы памяти для хранения данных. Таким образом, эти задачи могут быть решены с помощью компьютеров, доступных массовому пользователю. Те же задачи, которые требуют для решения сверхмощной вычисли­ тельной техники и принципиально новых алгоритмов, будем относить к категории научных задач. 9
  • 11. Глава 1. Математическое моделирование и решение прикладных задач § 1.1. Математическое моделирование и процесс создания математической модели Математическое .моделирование представляет собой метод иссле­ дования объектов и процессов реального мира с помощью их прибли­ женных описаний на языке математики - математических моделей. Этот метод чрезвычайно плодотворен и известен уже несколько тыся­ челетий. Насущные задачи земледелия и строительства еще в древние времена приводили к необходимости определения площадей и объе­ мов, а следовательно, и к рассмотрению элементарных геометрических фигур, дающих пример простейших математических моделей. Возмож­ ности математического моделирования и его влияния на научно-техни­ ческий прогресс неизмеримо возросли в последние десятилетия в связи с созданием и широким внедрением компьютеров. Процесс создания математической модели условно можно разбить на ряд основных этапов: 1) построение математической модели; 2) постановка, исследование и решение соответствующих вычисли- тельных задач, 3) проверка качества модели на практике и модификация модели. Рассмотрим основное содержание этих этапов. 1. Построение математической модели. Предполагается, что с помощью наблюдений и экспериментов, практики (понимаемой в самом широком смысле) получена достаточно подробная информация об изучаемом явлении. Для рассматриваемого этапа характерно глубо­ кое проникновение в полученные факты в целях выяснения главных закономерностей. Выявляются основные «характеристики)) явления, которым сопоставляются некоторые величины. Как правило, эти вели­ чины принимают числовые значения, т.е. являются переменными, век­ торами, матрицами, функциями и т.д. Установленным внутренним связям между «характеристиками)) явления придается форма равенств, неравенств, уравнений и логиче­ ских структур, связывающих величины, включенные в математическую модель. Таким образом, математическая модель становится записью на языке математики законов природы, управляющих протеканием иссле­ дуемого процесса или описывающих функционирование изучаемого объекта. Она включает в себя набор некоторых величин и описание характера связи между ними. Построение математических моделей - существенная и очень важная часть естественных и технических наук. Эта задача, требующая от иссле- 10
  • 12. § 1.1. Математическое моделирование и процесс математической модели дователя глубокоm знания предметной области, высокой матеfатической культуры, опыта построения моделей, развитой интуиции и многого друmго. Создание удачной новой модели - всегда крупное достижение соответствующей науки, а иногда и целый этап в ее развитии. Подчеркнем, что математическая модель неизбежно представляет собой компромисс между бесконечной сложностью изучаемого явления и желаемой простотой его описания. Модель должна быть достаточно полной, для того чтобы оказаться полезной для изучения свойств иссле­ дуемого явления. В то же время она обязана быть достаточно простой, для того чтобы допускать возможность ее анализа существующими в математике средствами и ее реализации на компьютере. Из огромного числа характеристик явления и действующих на него факторов требу­ ется выделить основные, определяющие, отбросив при этом второсте­ пенные, несущественные. Нередко в математическую модель закладываются некоторые гипо­ те3Ы, еще не подтвержденные на практике. Такую математическую модель часто называют гипотетической. Приведем пример простейшей математической модели. Пример 1.1. Пусть исследуется движение тела, брошенного со скоростью v0 под утлом а к поверхности Земли. Будем считать, что в рассматриваемом случае можно пренебречь сопротивлением воздуха, считать Землю плоской, а ускорение свобод­ ного падения g - постоянной. Введем систему координат, ее начало поместим в точку бросания, ось Ох направим горизонтально в направ­ лении бросания, а ось Оу - вертикально вверх (рис. 1.1 ). Пусть и(t) и w(t) - горизонтальная и вертикальная составляющие скорости v(t) в момент времени t (в начальный момент t = О, v = v0) Согласно законам механики, при сделанных предположениях движе­ ние тела в горизонтальном направлении является равномерным, а в вер- у о Рис. 1.1 11
  • 13. Глава 1. Математическое моделирование и решение прикладных задач тикальном - равноускоренным с ускорением, равным -g. Поэтому спра­ ведливы следующие равенства: и= v0 cosa, х = (v0cosa)t, (1.1) . gt2 w = v0 sina - gt, у= (v0 sшa)t- Т. (1.2) Формулы (1.1 ), (1.2) и дают простейшую математическую модель рассматриваемого явления, созданную в XVII в. Г. Галилеем 1. Заметим, что при О < а < тс/2 траектория движения представляет собой параболу у= - g х2 + (tga)x. .А. 2v~ cos2a Математические модели часто разделяют на статические и динами­ ческие. Статическая модель описывает явление или ситуацию в пред­ положении их завершенности, неизменности (т.е. в статике). Динамиче­ ская модель описывает, как протекает явление или изменяется ситуация от одного состояния к другому (т.е. в динамике). При использовании динамических моделей, как правило, задают начальное состояние сис­ темы, а затем исследуют изменение этого состояния во времени. 2. Постановка, исследование и решение вычислительных задач. Для того чтобы найти интересующие исследователя значения величин или выяснить характер из зависимости от других входящих в математи­ ческую модель величин, ставят, а затем решают математические задачи. Выявим основные типы решаемых задач. Для этого все величины, включенные в математическую модель, условно разобьем на три группы: 1) исходные (входные) данные х; 2) параметры модели а; 3) искомое решение (выходные данные) у. В динамических моделях искомое решение часто является функцией времени у = y(t); переменная t в таких моделях, как правило, бывает выделенной и играет особую роль. Наиболее часто решают так называемые прямые задачи, постановка которых выглядит следующим образом: по данному значению входного данного х при фиксированных значениях параметров а требуется найти решение у. Процесс решения прямой задачи можно рассматривать как математическое моделирование причинно-следственной связи, прису­ щей явлению. Тогда входное данное х характеризует «причины» явле- 1 Галилео Галилей (1564-1642) - итальянский физик, механик, астроном, один из основателей точного естествознания. 12
  • 14. § 1.1. Математическое моделирование и процесс математической модели ния, которые задаются и варьируются в процессе исследования, а иско­ мое решение у - «следствие». Для того чтобы математическое описание было применимо не к еди­ ничному явлению, а к широкому кругу близких по природе явлений, в действительности строят не единичную математическую модель, а неко­ торое параметрическое семейство моделей. Будем считать, что выбор конкретной модели из этого семейства осуществляется фиксацией зна­ чений параметров модели а. Например, в роли таких параметров могут выступать некоторые из коэффициентов, входящих в уравнения. С помощью выбора параметров может производиться указание типа функциональной зависимости между некоторыми из величин. Наконец, если используемые математические модели разбиты на классы, то параметром может служить и класс используемой модели. Пр им ер 1.2. Для модели ( 1. 1), (1.2) прямую задачу естественно формулировать как задачу вычисления величин и(t), w(t), x(t), y(t) по задаваемым входным данным v0 , а. Параметром модели здесь является ускорение свободного падения g. Его значение зависит от тоm, произ­ водится ли бросание тела с поверхности Земли на уровне Мировоm океана, в глубокой шахте или же на большой высоте. Заметим, что та же модель пригодна для описания движения тела, брошенноm на любой другой планете, если значение параметра g для этой планеты известно. .& Большую роль играет решение так называемых обратных задач, состоящих в определении входного данного х по данному значению у (параметры модели а, как и в прямой задаче, фиксированы). Решение обратной задачи - это в определенном смысле попытка выяснить, какие «причины» х привели к известному «следствию» у. Как правило, обратные задачи оказываются сложнее для решения, чем прямые. Пример 1.3. Для модели (1.1), (1.2) обратную задачу можно сфор­ мулировать так: по заданным и(t), w(t), x(t),y(t) требуется найти значе­ ния v0, а. Заметим, что для однозначного определения v0, а достаточно задать в любой фиксированный момент t0 ~ О одну из пар величин (и(t0), w(t0)) или (x(t0), y(t0)). .& Помимо двух рассмотренных типов задач следует упомянуть еще один тип - задачи идентификации. В широком смысле задача иденти­ фикации модели - это задача выбора среди множества всевозможных моделей той, которая наилучшим образом описывает изучаемое явле­ ние. В такой постановке эта задача выглядит как практически неразре­ шимая проблема. Чаще задачу идентификации понимают в узком смысле, как задачу выбора из заданного параметрического семейства моделей 13
  • 15. Глава 1. Математическое моделирование и решение прикладных задач конкретной математической модели (с помощью выбора ее параметров а), с тем чтобы оптимальным в смысле некоторого критерия образом согла­ совать следствия из модели с результатами наблюдений. Пример 1.4. Применительно к модели (1.1), (1.2) задача иденти­ фикации может состоять в определении значения ускорения свобод­ ного падения планеты g по результатам наблюдений за параметрами траектории. А Указанные три типа задач (прямые, обратные и задачи идентифика­ ции) будем называть вычислительными задачами. Для удобства изло­ жения в дальнейшем независимо от типа решаемой задачи будем назы­ вать набор подлежащих определению величин искомым решением и обозначать через у, а набор заданных величин - входным данным и обозначать через х. Пример 1.5. При описании многих явлений используют модель полиномиальной зависимости между величинами х и у: у =Рп(х) = а0 + а1х + ". +апхп. (1.3) Здесь а0 , а 1 , ... , ап - коэффициенты многочлена, являющиеся парамет­ рами модели (в число параметров модели можно включить и степень многочлена). При фиксированных значениях параметров прямая задача состоит в вычислении значения многочлена у= Рп(х) по заданному х. В таком слу- чае целью решения обратной задачи является определение по заданному значению у соответствующего ему значения х. Нетрудно видеть, что это есть задача отыскания корней многочлена, отличающегося от Р"(х) заме- ной коэффициента а0 на а0 = а0 - у. Если же из практики известна неко­ торая информация о зависимости у от х, то определение параметров а0 , а1 , . .. ,ап, при которых модель (.3) наилучшим в некотором смысле обра­ зом описывает эту зависимость, представляет собой задачу идентифика­ ции. Например, если задана таблица значений х1 ,у1 (i = , ..., N), то такую задачу в зависимости от ситуации можно решать, используя известные методы интерполяции и наименьших квадратов (см. гл. 11). А Пр им ер 1.6. Нередко входящие в модель функции x(t) и y(t) бывают связаны равенством 1 y(t)=y0 + Jx(t)dt. о Например, так связаны между собой скорость x(t) и пуrь y(t) при прямолинейном движении. Тогда при фиксированном значении пост~ 14
  • 16. § 1.1. Математическое моделирование и процесс математической модели янной у0 прямая задача (задача интегрирования) состоит в вычислении первообразной y(t) по заданной функции x(t). Обратная задача (задача дифференцирования) заключается в вычислении x(t) = y'(t) по заданной функции y{t).• Как правило, решение вычислительной задачи не удается выразить через входные данные в виде конечной формулы. Однако это совсем не означает, что решение такой задачи не может быть найдено. Сущест­ вуют специальные методы, которые называют численными (или вычис­ лительными). Они позволяют свести получение численного значения решения к последовательности арифметических операций над числен­ ными значениями входных данных. Эти методы были известны давно: в качестве примера, уже ставшего классическим, можно привести открытие Леверье 1 в 1846 г. новой планеты Нептун. Однако для реше­ ния задач численные методы применялись довольно редко, так как их использование предполагает выполнение гигантского объема вычисле­ ний~ Поэтому в большйнстве случаев до появления компьютеров при­ ходилось избегать использования сложных математических моделей и исследовать явления в простейших ситуациях, когда возможно найти аналитическое решение. Несовершенство вычислительного аппарата становилось фактором, сдерживающим широкое использование мате­ матических моделей в науке и технике. Появление компьютеров кардинально изменило ситуацию. Класс математических моделей, допускающих подробное исследование, резко расширился. Решение многих, еще недавно недоступных, вычислитель­ ных задач стало обыденной реальностью. 3. Проверка качества модели на практике и модификация модели. На этом этапе выясняют пригодность математической модели для описания исследуемого явления. Теоретические выводы и конкрет­ ные результаты, вытекающие из гипотетической математической модели, сопоставляют с экспериментальными данными. Если они противоречат друг другу, то выбранная модель непригодна и ее следует пересмотреть, вернувшись к первому этапу. Если же результаты совпадают с допусти­ мой для описания данного явления точностью, то модель можно при- 1 Урбен Жан Жозеф Леверье (1811-1877) - французский астроном. На основании законов небесной механики, использовав данные об аномалиях в движении планеты Уран, Леверье рассчитал траекторию движения гипотетической неизвестной планеты. В том же году неtецкий астроном Галле обнаружил Нептун в указанно" Леверье месте. 2 Расчет траектории планеты Нептун потребовал от Леверье нескольких месяцев кро­ потливой вычислительной работы. 15
  • 17. Глава 1. Математическое моделирование и решение прикладных задач знать пригодной. Конечно, необходимо дополнительное исследование в целях установления степени достоверности модели и границ ее приме­ нимости. На определенном этапе развития науки и техники постепенное накоп­ ление знаний приводит к моменту, когда результаты, получаемые с помощью математической модели, вступают в противоречие с данными практики или перестают удовлетворять ее требованиям в смысле точно­ сти. Тогда возникает необходимость модификации модели или же созда­ ния принципиально новой, более сложной модели. Таким образом, цикл создания математической модели повторяется многократно. Пример 1.7. Рассмотрим задачу внешней баллистики, те задачу о движении артиллерийского снаряда. Простейшая модель (1. 1), (1.2) дает параболическую траекторию движения снаряда, что, как было замечено еще в XVII в , противоречит данным практики. Существен­ ным неучтенным фактором здесь является сопротивление воздуха. Приведенная ниже модификация модели Галилея принадлежит И. Ньютону 1• Известно, что сила лобового сопротивления воздуха F про­ порциональна квадрату скорости, т.е. F = -pv2. При этом р = 0.5СSp, где р - плотность воздуха; S - площадь поперечного сечения; С - коэф­ фициент лобового сопротивления (для многих задач баллистики С о:: 0.15). Обозначим через Fx и FY горизонтальную и вертикальную проек­ ции вектора лобового сопротивления. Заметим, что FxlF = ulv, F/F = = wlv, v = Ju2 + w2 (рис. 1.2). Следовательно, Fx = -puJu2+ w2, FY = = -pwJu2 + w2. Пусть т - масса снаряда. Тогда в силу второго закона Ньютона справедливы уравнения т dи = _AuJu2 + w2 dt ~ ' (1 4) Рис. 1.2 1 Исаак Ньютон (1643-1727) - английский физик, механик, астроном и математик, заложивший основы современного естествознания. 16
  • 18. § 1.2. Основные этапы решения прикладной задачи с применением компьютера т ~~ =-mg-f3wJu2 + w2, dy = w dt , которые необходимо дополнить начальными условиями (1.5) u(O)=v0 cosa, w(O)=v0 sшa, х(О)=О, у(О)=О. (1.6) Полученная модель является более сложной, чем рассмотренная ранее модель (1.1), (.2), однако она содержит ее как частный случай. Действительно, в случае f3 = О (сопротивление воздуха отсутствует) уравнения (1.4)-(1.6) и (1.1), (.2) эквивалентны. Естественно, что модель ( 1.4Н1. 6) непригодна для решения задач современной баллистики и реально используемые модели значительно сложнее. • Заметим, что работа по созданию математической модели, как пра­ вило, проводится объединенными усилиями специалистов, хорошо знающих предметную область, и математиков, владеющих соответст­ вующими разделами прикладной математики и способных оценить воз­ можность решения возникающих вычислительных задач. § 1.2. Основные этапы решения прикладной задачи с применением компьютера Решение серьезной прикладной задачи с использованием компью­ тера - довольно длительный и сложный процесс. С определенной сте­ пенью условности его можно разбить на ряд последовательных этапов Выделим следующие этапы 1) постановка проблемы; 2) выбор или построение математической модели; 3) постановка вычислительной задачи; 4) предварительный (предмашинный) анализ свойств вычислитель- ной задачи; 5) выбор или построение численного метода; 6) алгоритмизация и программирование; 7) отладка программы; 8) счет по программе; 9) обработка и интерпретация результатов; 1О) использование результатов и коррекция математической модели. 1. Постановка проблемы. Первоначально прикладная задача бывает сформулирована в самом обшем виде исследовать некоторое явление, спроектировать устройство, обладающее заданными свойствами, дать прогноз поведения некоторого объекта в определенных условиях и т.д. На данной стадии происходит конкретизация постановки задачи, и пер- 17
  • 19. Глава 1. Математическое моделирование и решение прикладных задач востепенное внимание при этом уделяется выяснению цели исследова­ ния. От исследователя требуется глубокое понимание существа задачи и умение сформулировать ее так, чтобы найденное решение было полез­ ным и в то же время могло быть получено с помощью существующих методов и в реальные сроки. Неудачная постановка проблемы может при­ вести к тому, что длительный и дорогостоящий процесс решения задачи завершится получением бесполезных или тривиальных результатов (в этом случае возможно и отсутствие каких-либо результатов). Этот очень важный и ответственный этап завершается конкретной формулировкой проблемы на языке, принятом в данной предметной области. Знание возможностей, которые дает применение компьютера, может оказать существенное влияние на окончательную формули­ ровку проблемы. 2. Выбор или построение математической модели. Для после­ дующего анализа исследуемого явления или объекта необходимо дать его формализованное описание на языке математики, т.е. построить математическую модель (см. § 1.1 ). Часто имеется возможность выбора модели среди известных и принятых для описания соответствующих процессов, но нередко требуется и существенная модификация извест­ ной модели, а иногда возникает необходимость в построении принци­ пиально новой модели. Рассматриваемый этап - едва ли не самый важный и трудный. Часто удачный выбор математической модели является решающим шагом к достижению цели. Одна из существенных трудностей такого выбора состоит в объективном противоречии между желанием сделать описание явления как можно более полным (что приводит к усложнению модели) и необходимостью иметь достаточно простую модель (чтобы была возмож­ ность реализовать ее на компьютере). Важно, чтобы сложность математи­ ческой модели соответствовала сложности поставленной проблемы. Если поставленных целей можно достигнуть, использовав более простую математическую модель, то ей и следует отдать предпочтение. Как пра­ вило, полезно иметь несколько упрощенных вариантов принимаемой модели. Заметим, что грамотное упрощение модели - непростая задача, однако анализ упрощенных моделей весьма полезен в течение всего процесса решения задачи. Такие упрощенные модели часто позволяют ответить на многие принципиальные вопросы и понять основные зако­ номерности поведения более сложной модели. 3. Постановка вычислительной задачи. На основе принятой математической модели формулируют вычислительную задачу (или ряд таких задач). Анализируя результаты ее решения, исследователь предполагает получить ответы на интересующие его вопросы. 18
  • 20. § 1.2. Основные этапы решения прикладной задачи с применением компьютера 4. Предварительный анализ свойств вычислительной задачи. На этом этапе проводят предварительное (предмашинное) исследование свойств вычислительной задачи. Большое внимание уделяют анализу кор­ ректности ее постановки, т.е. выяснению вопросов сушествования и единственности решения, а также исследованию устойчивости решения задачи к погрешностям входных данных (эти вопросы более подробно рас­ сматриваются в гл. 3). Такое исследование, как правило, относится к компетенции профессиональных математиков. Тем не менее, решающему задачу полезно быть в курсе современного состояния названных проблем, уметь самостоятельно проводить простейшие исследования. К сожалению, для многих имеющих практическую ценность задач их строгое исследование в полной постановке провести не удается и к решению приступают без детального анализа математических свойств этих задач. Это нежелательная, но вынужденная мера, так как в прикладных исследованиях существенное значение имеют конкрет­ ные (часто - весьма сжатые) сроки получения результата. На этом этапе полезным оказывается изучение упрощенных постановок задачи. Иногда для них удается провести исследование, позволяющее понять основные особенности исходной вычислительной задачи. Особую цен­ ность имеют различные аналитические решения; они оказываются полезными не только для анализа явления, но и как основа для тесто­ вых испытаний на этапе отладки программы. S. Выбор или построение численного метода. Для решения вычислительной задачи на компьютере требуется использование чис­ ленных методов. Часто решение прикладной задачи сводится к последовательному решению стандартных вычислительных задач, для которых разрабо­ таны эффективные численные методы. В этой ситуации происходит либо выбор среди известных методов, либо их адаптация к особенно­ стям решаемой задачи. Однако если возникающая вычислительная задача является новой, то не исключено, что для ее решения не суще­ ствует готовых методов. Построение численного метода для такой задачи может оказаться очень трудной проблемой и потребовать при­ влечения специалиста по вычислительной математике. Умение разли­ чать отмеченные две ситуации необходимо, и наличие его уже говорит об определенной квалификации в области вычислительных методов. Для решения одной и той же вычислительной задачи обычно может быть использовано несколько методов. Необходимо знать особенности этих методов, критерии, по которым оценивается их качество, чтобы выбрать метод, позволяющий решить проблему наиболее эффективным образом. Здесь выбор далеко не однозначен. Он существенно зависит 19
  • 21. Глава 1. Математическое моделирование и решение прикладных задач от требований, предъяаляемых к решению, от имеющихся в наличии ресурсов, от доступной для использования вычислительной техники и т.д. Возникающим на этом этапе вопросам и посвящена большая часть данной книги. 6. Алгоритмизация и программирование. Как правило, выбранный на предыдущем этапе численный метод содержит только принципиаль­ ную схему решения задачи, не включающую многие детали, без которых невозможна реализация метода на компьютере. Необходима подробная детализация всех этапов вычислений, для того чтобы получить реализуе­ мый на компьютере алгоритм. Состааление программы сводится к пере­ воду этого алгоритма на выбранный язык программирования. Заметим, что в настоящее время для вычислительных задач наиболее широко используются алгоритмические языки СИ++ и ФОРТРАН. В книге значительное место уделяется алгоритмам (в гл. 3 обсужда­ ются их общие свойства и критерии оценки качества) и практически не рассматриваются вопросы собственно программирования. Конечно, алго­ ритмизация и программирование очень тесно связаны. Более того, прак­ тика показывает, что небольшие, на первый взгляд, различия в програм­ мах могут привести к значительным различиям в их эффективности. Тем не менее, вопрос разработки качественного программного продукта мы не затрагиваем (этому предмету посвящено большое число пособий). Подчеркнем лишь, что большинство пользователей справедливо предпо­ читает строить свои программы из готовых модулей и использовать стан­ дартные программы, реализующие те или иные алгоритмы. Разумеется, отсутствие в библиотеке стандартных программ той или иной программы не должно быть непреодолимым препятствием. 7. Отладка программы. На этом этапе с помощью компьютера выявляют и исправляют ошибки в программе. Как правило, начинающий пользователь компьютера убежден, что ошибок в составленной им программе нет или же они могут быть легко обнаружены и исправлены. Однако совершенно неожиданно для него отладка программы и доведение ее до рабочего состояния нередко ока­ зывается длительным и весьма трудоемким процессом. Приобретая определенный опыт в составлении и отладке сравнительно сложных программ, пользователь убеждается в справедливости популярного афоризма: «В любой программе есть по крайней мере одна ошибка». Таким образом, наличие в программах ошибок - вполне нормаль­ ное и закономерное явление, поэтому подготовку к отладке следует начинать уже на этапе алгоритмизации и программирования. Заметим, что эффективность отладки самым существенным образом зависит от общей методики разработки программ. 20
  • 22. § 1.2. Основные этапы решения прикладной задачи с применением компьютера После устранения ошибок программирования необходимо про­ вести тщательное тестирование программы - проверку правильности ее работы на специально отобранных тестовых задачах, имеющих известные решения. 8. Счет по программе. На этом этапе происходит решение задачи на компьютере по составленной программе в автоматическом режиме. Этот процесс, в ходе которого входные данные с помощью компью­ тера преобразуются в результат, называют вычислительным процес­ сом. Как правило, счет повторяется многократно с различными вход­ ными данными для получения достаточно полной картины зависимости от них решения задачи. Первые полученные результаты тщательно анализируются, для того чтобы убедиться в правильности работы программы и пригодно­ сти выбранного метода решения. Счет по программе продолжается несколько секунд, минут или часов. Именно быстротечность этого этапа порождает распространенную иллюзию о возможности решать важные прикладные задачи на компьютере в очень короткое время. В действительности же, конечно, необходимо принимать во внимание весь цикл от постановки проблемы до использования результатов. Для серье1ных задач часто полезные результаты получаются только в результате многолетней работы. 9. Обработка и интерпретация результатов. Полученные в результате расчетов на компьютере выходные данные, как правило, представляют собой большие массивы чисел. Начинающий пользователь часто пытается вывести эти массивы на печать, чтобы «потом провести их анализ». Обычно первый же опыт анализа распечатки, содержащий сотни тысяч чисел, приводит к пониманию того, что эта работа непо­ сильна для человека и следует постараться возложить ее на компьютер. Часто первоочередной интерес представляет лишь небольшая часть полученной информации (например, значения одной из функций в выделенных точках) или даже некоторая грубая интегральная характе­ ристика (максимальное или минимальное значение, оценка энергии системы и т.д.). Для того чтобы исследователь мог воспользоваться результатами расчетов, их необходимо представить в виде компактных таблиц, гра­ фиков или в иной удобной для восприятия форме. При этом следует, максимально использовать возможности компьютера для подготовки такой информации и ее представления с помощью печатающих и гра­ фических выходных устройств. Для правильной интерпретации результатов расчетов и оценки их достоверности от исследователя требуется глубокое знание существа 21
  • 23. Глава 1. Математическое моделирование и решение прикладных задач решаемой инженерной задачи, ясное представление об используемой математической модели и понимание (хотя бы в общих чертах) особен­ ностей применяемого вычислительного метода. Вопросы обработки и интерпретации результатов вычислений будут затронуты при рассмотрении конкретных вычислительных методов и алгоритмов. 10. Использование результатов и коррекция математической модели. Завершающий этап состоит в использовании результатов расче­ тов в практической деятельности, иначе говоря, во внедрении результа­ тов. Не стоит огорчаться, если большинство полученных сначала резуль­ татов окажется бесполезным. Действительно полезные для практики результаты являются плодом серьезной целенаправленной работы, в процессе которой цикл решения задачи повторяется неоднократно. Очень часто анализ результатов, проведенной на этапе их обработки и интерпретации, указывает на несовершенство используемой матема­ тический модели и необходимость ее коррекции. В таком случае мате­ матическую модель модифицируют (при этом она, как правило, услож­ няется) и начинают новый цикл решения задачи. § 1.3. Вычисnитеnьный эксперимент Создание математических моделей и решение прикладных задач с применением компьютера требует выполнения большого объема работ (см. § 1.1, 1.2). Нетрудно заметить аналогию с соответствую­ щими работами, проводимыми при организации натурных эксперимен­ тов: составление программы экспериментов, создание эксперименталь­ ной установки, выполнение контрольных экспериментов, проведение серийных опытов, обработка экспериментальных данных и их интер­ претация и т.д. Однако вычислительный эксперимент проводится не над реальным объектом, а над его математической моделью, и роль экс­ периментальной установки играет компьютер, оснащенный специально разработанным пакетом прикладных программ. В связи с этим естест­ венно рассматривать проведение больших комплексных расчетов при решении прикладных и научных задач как вычислительный экспери­ мент, а описанную в предыдущем параграфе последовательность эта­ пов решения как один его цикл. Широкое применение компьютеров в математическом моделирова­ нии, разработанная теория и значительные практические результаты позволяют говорить о вычислительном эксперименте как о новой тех­ нологии и методологии научных и прикладных исследований. Серьезное внедрение вычислительного эксперимента в прикладные исследования 22
  • 24. § 1.3. Вычислительный эксперимент лишь начинается, но там, где оно происходит реально (в авиационной и космической промышленности), его плоды весьма весомы. Отметим некоторые достоинства вычислительного эксперимента по сравнению с натурным. Вычислительный эксперимент, как правило, дешевле физического. В этот эксперимент можно легко и безопасно вмешиваться. Его можно повторить еще раз (если в этом есть необходи­ мость) и прервать в любой момент. В ходе этого эксперимента можно смоделировать условия, которые нельзя создать в лаборатории. Заметим, что в ряде случаев проведение натурного эксперимента затруднено (а иногда и невозможно), так как изучаются быстропроте­ кающие процессы, исследуются труднодоступные или вообще пока недоступные объекты. Часто проведение полномасштабного натурного эксперимента сопряжено с губительными или непредсказуемыми последствиями (ядерная война, поворот сибирских рек) или с опасно­ стью для жизни или здоровья людей. Нередко требуется исследование и прогнозирование результатов катастрофических явлений (авария ядерного реактора АЭС, глобальное потепление климата, землетрясе­ ние). В этих случаях вычислительный эксперимент может стать основ­ ным средством исследования. Заметим, что с его помощью оказывается возможным прогнозировать свойства новых, еще не созданных конст­ рукций и материалов на стадии их проектирования. Существенным недостатком вычислительного эксперимента явля­ ется то, что применимость его результатов ограничена рамками приня­ той математической модели. Конечно, вычислительный эксперимент никогда не сможет полно­ стью заменить натурный, и будущее за их разумным сочетанием. Дей­ ствительно, построение математической модели основано на результа­ тах наблюдений, опыта, а достоверность ее выводов проверяется с помощью критерия - практики. Для прикладных задач характерно наличие значительного числа пара­ метров (конструктивных, технологических и др.). Создание нового изде­ лия или технологического процесса предполагает выбор среди большого числа альтернативных вариантов, а также оптимизацию по ряду парамет­ ров. Поэтому в ходе вычислительного эксперимента расчеты проводятся многократно с разными значениями входных параметров. Для получения нужных результатов с требуемой точностью и в приемлемые сроки необ­ ходимо, чтобы на расчет каждого варианта тратилось минимальноr время. Именно поэтому при создании программного обеспечения так важно использовать эффективные численные методы. Разработка программного обеспечения вычислительного экспери­ мента в конкретной области прикладной деятельности приводит к созда­ нию крупного программного комплекса. Он состоит из связанных между 23
  • 25. Глава 1. Математическое моделирование и решение прикладных задач собой прикладных программ и системных средств, включающих сред­ ства, предоставляемые пользователю для управления ходом вычисли­ тельного эксперимента, обработки и представления его результатов. Такой комплекс программ иногда называют пробле.мно-ориентирован­ ным пакетом прикладных програм,~1. § 1.4. Допоnнитеnьные замечани1 1. Математическое моделирование является основой современной методологии решения прикладных задач, и его роль объективно возрас­ тает в связи с необходимостью решения все более сложных приклад­ ных проблем. 2. Эффективность применения компьютера в той или иной области науки и техники тем выше, чем совершеннее ее математические модели. В то же время использование компьютера для исследования каких-либо процессов часто служит серьезным стимулом для создания новых математических моделей и детального изучения лих процессов другими методами. 3. Само по себе применение компьютера не позволяет решить прикладную задачу, а лишь дает в руки исследователя мощный инст­ румент познания. Использование компьютера не только не освобож­ дает от необходимости глубоко осмыслить решаемую проблему, но и заставляет уделять постановке задачи гораздо больше внимания. 4. Вычислительный эксперимент не противоречит натурному экс­ перименту и классическому математическому анализу прикладной задачи, а, напротив, находится с ними в органическом единстве. 5. Для успешного применения метода математического моделирова­ ния с использованием компьютера необходимо гармоническое владе­ ние всеми его составляющими. В настоящем пособии основное внима­ ние уделено вычислительным методам и алгоритмам, анализу свойств вычислительных задач, интерпретации получаемых результатов. 6. Дополнительную информацию о методологии современного м~rrема­ тическоrо моделирования и концепции вычислительного эксперимента можно получить из следующих источников: [58, 71, 79, 96, 99, 11 *]. 7. В настоящее время большое количество высококачественных про­ грамм и пакетов программ распространяется бесплатно. Например, через lnternet по адресу http://www.netlib.org доступно программное обеспечение, предназначенное для решения широкого спектра приклад­ ных задач. Кроме того, по адресу http://www.acm.org/pubs/cago можно найти 866 тщательно разработанных программ, реализующих эффек­ тивные вычислительные алгоритмы. 24