Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практический курс математического и компьютерного моделирования. Учебно-практическое пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
имени ИММАНУИЛА КАНТА
В.И. Зенкин
ПРАКТИЧЕСКИЙ КУРС
И КОМПЬЮТЕРНОГО
МОДЕЛИРОВАНИЯ
Учебно-практическое пособие
Издательство
Российского государственного университета имени Иммануила Канта
2006
УДК 519.854.6(07) ББК 22.19я73
З 563
Рецензент:
В.А. Суроткин, канд. физ.-мат. наук, доцент КГТУ
Зенкин В.И.
З 563 Практический курс математического и компьютерного
моделирования: Учеб.-практич. пособие. — Калининград: Изд-во РГУ им. И. Канта, 2006. — 152 с.
ISBN 5-88874-732-7
В пособии на основе опыта поведения лабораторных и практи­ческих занятий по курсу «Математическое моделирование» со сту­дентами специальности «прикладная математика и информатика» излагаются проблемы, возникающие в большинстве задач матема­тического и компьютерного моделирования, и методы их решения. Приведены все необходимые теоретические сведения, относящиеся к данной теме. На конкретных примерах рассмотрены этапы вычислительного эксперимента: модель – алгоритм – про­грамма. Большое внимание уделяется математической корректно­сти постановки задачи моделирования и практическим приемам программирования.
Учебное пособие предназначено для студентов и специалистов, занимающихся математическим моделированием в различных об­ластях науки и техники.
основные
УДК 519.854.6(07)
ББК 22.19я73
© Зенкин В.И., 2006 ISBN 5-88874-732-7 © Издательство РГУ им. И. Канта, 2006
ОГЛАВЛЕНИЕ
Введение ...............................................................................
6
I. Математические и компьютерные модели ..............
1. Модели. Метод математического моделирования ... 8
2. Компьютерное моделирование ................................. 13
3. Пример 1. Прыгающий мяч ...................................... 15
4. Пример 2. Реалистичное освещение ........................ 19
II. Программная реализация математической модели ..
1. Структурное программирование .............................. 27
2. Объектно-ориентированное программирование ..... 28
3. Объектно-ориентированное проектирование .......... 33
4. ООП в Delphi .............................................................. 36
5. Пример 1. Прыгающий мяч ...................................... 53
6. Листинги примера 1 ................................................... 55
6.1. Базовый класс ..................................................... 56
6.2. Класс
для модели, не учитывающей
сопротивление воздуха ...................................... 61
6.3. Класс для модели, учитывающей
сопротивление воздуха ...................................... 62
6.4. Модуль, поддерживающий графику ................ 65
6.5. Головной модуль ................................................ 68
7. Пример 2. Реалистичное освещение ........................ 75
8
26
3
8. Листинги примера 2 ................................................... 78
r
м
8.1. Базовый класс Tvector (вектор) и векторные
операции .............................................................. 78
8.2. Класс Tray (Луч) ................................................. 80
8.3. Класс Tcolo
(цвет) и операции с цветом ......... 82
8.4. Базовый класс Tfigure ........................................ 83
8.5. Класс Tsphere (сфера) ........................................ 85
8.6. Трассировщик ..................................................... 87
8.7. Головной файл .................................................... 91
III. Приемы и методы программирования ....................
1. Базовые схемы ............................................................ 96
1.1. Итерации ............................................................. 96
1.2. Рекурсия .............................................................. 97
1.3. Проектирование цикла с помощью инварианта .. 98
1.4. Вычисление инвариантной функции ................ 100
2. Тестирование и отладка программ ........................... 101
3. Работа с вещественными числами ........................... 106
4. Оптимизация программ ............................................. 108
4.1. Уменьшение объема занимаемой программой
памяти ................................................................. 108
4.2. Уменьшение времени выполнения програ
мы ... 109
5. Анимация .................................................................... 112
IV. Задания ...........................................................................
1. Требования к оформлению работ ............................. 119
2. Варианты заданий ...................................................... 122
2.1. «Идеальный» биллиард ..................................... 122
2.2. Игра «Жизнь» ..................................................... 124
2.3. L-системы ........................................................... 125
96
119
4
5
2.4. Математический маятник .................................. 128
2.5. Проблема трех тел .............................................. 128
2.6. Модель Солнечной системы ............................. 129
2.7. Маятник на диске ............................................... 130
2.8. Морская волна .................................................... 131
2.9. Волки и медведи ................................................. 132
2.10. Удар .................................................................. 132
2.11. Три точечные массы ........................................ 133
2.12. Модель сердца ................................................. 134
2.13. Мяч в ящике ..................................................... 135
2.14. Маятник на наклонной плоскости ................. 136
2.15. Маятник на нити .............................................. 136
2.16. Рычаг на диске ................................................. 137
2.17. Модель системы «хищник жертва» .......... 138
2.18. Модель движения Земли вокруг
Солнца ....... 138
2.19. Цилиндры ......................................................... 139
2.20. Распространение тепла .................................... 140
2.21. Фармакокинетическая модель ........................ 140
2.22. Система «поршеньгаз» .............................. 141
2.23. Колебания струны ........................................... 142
2.24. Маятник с цилиндром ..................................... 143
2.25. Жидкость в сосуде ........................................... 143
2.26. Задача И.Е. Жуковского .................................. 144
2.27. Модель колец Сатурна .................................... 145
2.28. Маятник на свободной подвеске .................... 145
2.29. Система итерирующих функций .................... 146
2.30. Фракталы .......................................................... 148
Рекомендуемая литература ..............................................
150
6
ВВЕДЕНИЕ
Математическое и компьютерное моделирование разнооб­разных процессов и явлений в самых различных областях нау­ки и техники стало сейчас одним из основных способов полу­чения новых научных знаний и технологических решений. Это — наиболее гибкие и универсальные методы исследования реальных объектов, процессов и явлений, с успехом приме­няемые в настоящее время в физике, астрономии, химии, био­логии, медицине, экономике, военном деле, технических и со­циальных науках и многих других областях.
Для применения методов математического и компьютер­ного моделирования исследователь, независимо от его специ­альности, должен разбираться в алгоритмах вычислительной математики и владеть способами их программной реализации на компьютере
. Эти знания необходимы даже при использова­нии готовых пакетов программ, иначе будут затруднительны или вообще невозможны анализ работы компьютерной моде­ли, планирование и проведение вычислительных эксперимен­тов и интерпретация их результатов. В настоящее время име­ется несколько мощных программных пакетов для моделиро­вания, таких как Simulink Matlab, Model Vision Studium и др., но они достаточно
сложны в изучении, дороги и, что самое главное, при их использовании исследователь вынужден пол­ностью полагаться на правильность работы этих программ, что, естественно, никто гарантировать не может.
Поэтому имеет смысл, особенно при первоначальном ос­воении приемов моделирования, научиться программно реали­зовывать модели на универсальных языках высокого уровня. Наиболее подходящим здесь является
объектно-ориентиро-
Введение
ванный метод программирования, который обладает рядом преимуществ по сравнению с более традиционным структур­ным программированием.
Для понимания материала книги необходимы базовые зна­ния языка Object Pascal (Delphi) и начальные знания операци­онной системы Windows. Основное внимание уделено практи­ческим методам построения математических и компьютерных моделей, весь необходимый теоретический материал дается в краткой форме и снабжен
примерами. Приведен список задач, достаточный для организации лабораторных работ по данному курсу. Подробные описания моделей, содержащихся в задани­ях, можно найти в указанной в конце книги рекомендуемой литературе. Выполнение каждого задания расчитано на се­местр и должно включать в себя математическую модель, чис­ленный алгоритм, программу и программную реализацию мо­дели в соответствии с подробно разобранными примерами.
7
I. МАТЕМАТИЧЕСКИЕ И КОМПЬЮТЕРНЫЕ
МОДЕЛИ
Может показаться, что написанные нами уравнения сами содержат структуру реального мира, которым можно управ­лять, манипулируя этими уравнениями.
Л. Купер [34]
Науки не пытаются объяснить, вряд ли они даже стара­ются интерпретировать — они в основном создают модели. Под моделью понимается математическая конструкция, ко­торая при добавлении некоторых словесных объяснений описывает изучаемый феномен. Оправданием для такой ма­тематической конструкции служит единственное обстоя­тельство: ожидается, что она сработает.
Дж. фон Нейман, цит. по [11]
I.1. Модели. Метод математического
моделирования
Моделью какого-либо объекта (явления, феномена, процес­са) называют другой объект, реальный или формальный, неко­торые свойства которого частично совпадают со свойствами моделируемого объекта. Ввиду сложности реального мира при исследовании его явлений, процессов или объектов их обычно в той или иной мере упрощают, выделяя те
свойства, которые считают основными для рассматриваемого объекта или явле­ния, и отвлекаясь от несущественных или малосущественных деталей. Такое упрощение неизбежно при любом исследовании хотя бы по той причине, что любой реальный объект имеет бес­конечно много различных свойств и характеристик и, следова-
8
I. Математические и компьютерные модели
тельно, даже перечислить их все, а тем более изучить, нет ника­кой возможности. В некотором смысле можно сказать, что вся научная деятельность сводится к построению и анализу моде­лей физических, биологических, технических, экономических, социальных и других процессов, явлений и объектов.
Метод моделирования обычно применяют для изучения исходных объектов тогда, когда непосредственное ние либо по каким-то причинам неудобно (очень дорого бует слишком много времени возможно (моделируемый объект может не существовать в реальности приведет к катастрофе
4
или его прямое натурное исследование неизбежно
5
).
2
или опасно3), либо вообще не-
их изуче-
1
, тре-
Основными целями, ради которых создаются модели, яв­ляются следующие.
Выявление зависимостей различных параметров модели,
характера их взаимодействия во времени и пространстве, на­хождения оптимальных соотношений этих параметров.
Прогнозирование поведения объектов моделирования,
чтобы, в частности, получить возможность ими управлять.
Применение в качестве систем виртуальной реальности
или тренажеров при
подготовке персонала к работе на смоде-
лированных устройствах (системы реального времени).
1
Например, модель процессов в переходной экономике нашей стра-
ны начала 90-х гг. XX в. см. в [1, с. 302–306].
2
Например, моделирование игры в шахматы посредством прямого
перебора всех возможных ходов. По оценкам К. Шеннона, число возможных ситуаций в шахматной партии равно примерно 10
43
. Ис-
следование всех ситуаций сейчас лежит за пределами возможностей любого суперкомпьютера [38, с. 105].
3
Например, модель гонки вооружений (см. [1, с. 173–175]) или бое-
вых действий (см. [1, с. 175–179]).
4
Например, проект космического корабля или математическая рес-
таврация Тунгусского феномена см. в [1, с. 288–291].
5
Например, имитационная модель климатических последствий ло-
кального ядерного конфликта, см. в [1, с. 192–296].
9
Математическое и компьютерное моделирование
0
Следует ясно понимать, что не бывает модели без упроще­ний. Действительно, если некоторая модель имеет всего десять входных параметров, каждый из которых независимо от других может принимать десять различных значений, то только для тес­тирования такой модели в полном объеме (т. ных значениях параметров) всего понадобится 10
е. при всевозмож-
10
= 10 000 000
000 прогонов. Нетрудно посчитать, что если на один прогон мо-
дели затратить только одну минуту, то такое «тестирование» продлится более 19 000 лет. Кроме того, очевидно, что модель, полностью совпадающая с оригиналом, также бесполезна, как географическая карта в масштабе 1:1, поскольку в этом случае отсутствует наиболее полезная черта моделей — абстрактность
6
.
Другими словами, модель никогда полностью не совпадает по своим свойствам с оригиналом. С одной стороны, она долж­на отражать все свойства исходного объекта или явления, кото­рые существенны для него, иначе модель бесполезна. С другой стороны, необходимо, чтобы модель была как можно более простой, иначе ее исследование будет затруднительно или
не­возможно. Для сложных явлений и объектов часто очень трудно совместить эти противоречивые требования. Таким образом, при построении модели основной и наиболее трудной задачей является решение вопроса о мере соответствия модели модели­руемому объекту (адекватности) и, следовательно, проблемы определения степени «существенности» параметров объекта. Причем какие свойства считать основными, а какие несущест венными — зависит как от моделируемого объекта, так и от целей исследования. Поскольку очевидно, что одному и тому же явлению могут соответствовать несколько различных моде­лей, то при прочих равных условиях предпочтительнее та из них, которая в каком-то смысле проще других.
-
6
Льюис Керрол, математик и известный писатель, правда в шутку,
предлагал пользоваться именно такой картой, так как её достаточно разложить на земле, чтобы в любой момент знать, где находишься: нужно просто прочитать надпись, на которой стоишь.
1
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]