КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ

Лекционный курс (М5)

© Усольцев В.Л., КАГИ ВГПУ, 2004-2005.

ЛИТЕРАТУРА

1.    Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика. М.: Академия, 2003.

2.    Фридланд А.Я. Информатика: процессы, системы, ресурсы. М.: БИНОМ. Лаборатория знаний, 2003.

3.    Жаблон К., Симон Ж.-К. Применение ЭВМ для численного моделирования в физике. М.: Наука, 1983.

4.    Шеннон Р. Имитационное моделирование систем – искусство и наука. М.: Мир, 1990.

5.    Лапчик М.П., Семакин И.Г., Хеннер Е.К. Методика преподавания информатики: М.: Академия, 2001.

 

ВВЕДЕНИЕ

Настоящий курс рассматривает моделирование с двух точек зрения: с общетеоретической и методологической – как метод научного познания, с практической – как технологию решения прикладных научно-технических задач, опирающуюся на использование компьютера. В последнем случае говорят о компьютерном моделировании.

В этом курсе, в значительной степени на примерах из различных областей знания, показаны некоторые типичные задачи компьютерного математического моделирования. При этом, как правило, не затрагиваются некомпьютерные модели, такие, например, как математические модели из «чистой» математики. Термин «математическая модель» увязывается здесь, в основном, с некоторой предметной областью, сущностью окружающего мира.

Абстрактное моделирование с помощью компьютеров – вербальное, информационное, математическое – в наши дни стало одной из информационных технологий, исключительно мощной в познавательном плане. Изучение компьютерного математического моделирования открывает широкие возможности для осознания связи информатики с математикой и другими науками, естественными и социальными.

§ 1. МОДЕЛИ. РАЗНОВИДНОСТИ МОДЕЛИРОВАНИЯ.

Слово «модель» произошло от латинского слова «modulus», означает «мера», «образец». Его первоначальное значение было связано со строительным искусством, и почти во всех европейских языках оно употреблялось для обозначения образа или прообраза, или вещи, сходной в каком-то отношении с другой вещью.

Моделирование в научных исследованиях стало применяться еще в глубокой древности и постепенно захватывало все новые области научных знаний: техническое конструирование, строительство и архитектуру, астрономию, физику, химию, биологию и, наконец, общественные науки. Большие успехи и признание практически во всех отраслях современной науки принес методу моделирования ХХ век. Однако методология моделирования долгое время развивалась отдельными науками независимо друг от друга. Отсутствовала единая система понятий, единая терминология. Лишь постепенно стала осознаваться роль моделирования как универсального метода научного познания.

Термин «модель» широко используется в различных сферах человеческой деятельности и имеет множество смысловых значений. В этом разделе мы будем рассматривать только такие модели, которые являются инструментами получения знаний.

Модель – это такой материальный или мысленно представляемый объект, который в процессе исследования замещает объект-оригинал так, что его непосредственное изучение дает новые знания об объекте-оригинале.

Под моделированием понимается процесс построения, изучения и применения моделей. Оно тесно связано с такими категориями, как абстракция, аналогия, гипотеза и др. Процесс моделирования обязательно включает и построение абстракций, и умозаключения по аналогии, и конструирование научных гипотез.

Главная особенность моделирования в том, что это метод опосредованного познания с помощью объектов-заместителей. Модель выступает как своеобразный инструмент познания, который исследователь ставит между собой и объектом, и с помощью которого изучает интересующий его объект. Именно эта особенность метода моделирования определяет специфические формы использования абстракций, аналогий, гипотез, других категорий и методов познания.

В самом общем случае при построении модели исследователь отбрасывает те характеристики, параметры объекта-оригинала, которые несущественны для изучения объекта. Выбор характеристик объекта-оригинала, которые при этом сохраняются и войдут в  модель, определяется целями моделирования. Обычно такой процесс абстрагирования от несущественных параметров объекта называют формализацией. Более точно, формализация – это замена реального объекта или процесса его формальным описанием.

Основное требование, предъявляемое к моделям – это их адекватность реальным процессам или объектам, которые замещает модель.

Практически во всех науках о природе, живой и неживой, об обществе, построение и использование моделей является мощным орудием познания. Реальные объекты и процессы бывают столь многогранны и сложны, что лучшим (а иногда и единственным) способом их изучения часто является построение и исследование модели, отображающей лишь какую-то грань реальности и потому многократно более простой, чем эта реальность. Многовековой опыт развития науки доказал на практике плодотворность такого подхода. Более конкретно, необходимость использования метода моделирования определяется тем, что многие объекты (или проблемы, относящиеся к этим объектам) непосредственно исследовать или вовсе невозможно, или же это исследование требует слишком много времени и средств.

В моделировании есть два различных подхода. Модель может быть похожей копией объекта, выполненной из другого материала, в другом масштабе, с отсутствием ряда деталей. Например, это игрушечный кораблик, домик из кубиков, деревянная модель самолета в натуральную величину, используемая в авиаконструировании и др. Модели такого рода называют натурными.

Модель может, однако, отображать реальность более абстрактно – словесным описанием в свободной форме, описанием, формализованным по каким-то правилам, математическими соотношениями и т.п. Будем называть такие модели абстрактными.

Классификация абстрактных моделей:

1. Вербальные (текстовые) модели. Эти модели используют последовательности предложений на формализованных диалектах естественного языка для описания той или иной области действительности (примерами такого рода моделей являются милицейский протокол, правила дорожного движения).

2. Математические модели – очень широкий класс знаковых моделей (основанных на формальных языках над конечными алфавитами), использующих те или иные математические методы. Например, математическая модель звезды будет представлять собой сложную систему уравнений, описывающих физические процессы, происходящие в недрах звезды. Другой математической моделью являются, например, математические соотношения, позволяющие рассчитать оптимальный (наилучший с экономической точки зрения) план работы какого-либо предприятия.

3. Информационные модели – класс знаковых моделей, описывающих информационные процессы (получение, передачу, обработку, хранение и использование информации) в системах самой разнообразной природы. Примерами таких моделей могут служить OSI – семиуровневая модель взаимодействия открытых систем в компьютерных сетях, или машина Тьюринга – универсальная алгоритмическая модель.

Подчеркнем, что граница между вербальными, математическими и информационными моделями может быть проведена весьма условно. Так, информационные модели иногда считают подклассом математических моделей. Однако, в рамках информатики как самостоятельной науки, отделенной от математики, физики, лингвистики и других наук, выделение информационных моделей в отдельный класс является целесообразным.

Отметим, что существуют и иные подходы к классификации абстрактных моделей; общепринятая точка зрения здесь еще не установилась.

В прикладных науках различают следующие виды абстрактных моделей:

1) чисто аналитические математические модели, не использующие компьютерных средств;

2) информационные модели, имеющие приложения в информационных системах;

3) вербальные языковые модели;

4) компьютерные модели, которые могут использоваться для:

• численного математического моделирования;

• визуализации явлений и процессов (как для аналитических, так и для численных моделей);

• специализированных прикладных технологий, использующих компьютер (как правило, в режиме реального времени) в сочетании с измерительной аппаратурой, датчиками и т.п.

Большая часть данного курса связана с прикладными математическими моделями, в реализации которых используются компьютеры. Это вызвано тем, что внутри информатики именно компьютерное математическое и компьютерное информационное моделирование могут рассматриваться как ее составные части. Компьютерное математическое моделирование связано с информатикой технологически; использование компьютеров и соответствующих технологий обработки информации стало неотъемлемой и необходимой стороной работы физика, инженера, экономиста, эколога, проектировщика ЭВМ и т.д. Неформализованные вербальные модели не имеют столь явно выраженной привязки к информатике – ни в принципиальном, ни в технологическом аспектах.

 

§ 2. КОМПЬЮТЕРНОЕ МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Математическая модель выражает существенные черты объекта или процесса языком уравнений и других математических средств. Собственно говоря, сама математика обязана своим существованием тому, что она пытается отразить, т. е. промоделировать на своем специфическом языке закономерности окружающего мира. Огромный толчок развитию математического моделирования дало появление ЭВМ, хотя сам метод зародился одновременно с математикой тысячи лет назад.

Математическое моделирование как таковое отнюдь не всегда требует компьютерной поддержки. Каждый специалист, профессионально занимающийся математическим моделированием, делает все возможное для аналитического исследования модели. Аналитические решения (т. е. представленные формулами, выражающими результаты исследования через исходные данные) обычно удобнее и информативнее численных. Однако, возможности аналитических методов решения сложных математических задач очень ограничены и, как правило, эти методы гораздо сложнее численных. В нашем курсе доминируют численные методы, реализуемые на компьютерах. Отметим, что понятия «аналитическое решение» и «компьютерное решение» отнюдь не противостоят друг другу, так как

а) все чаще компьютеры при математическом моделировании используются не только для численных расчетов, но и для аналитических преобразований;

б) результат аналитического исследования математической модели часто выражен столь сложной формулой, что при взгляде на нее не складывается наглядного восприятия описываемого ею процесса. Эту формулу (хорошо еще, если просто формулу!) нужно протабулировать, представить графически, проиллюстрировать в динамике, иногда даже озвучить, т.е. проделать то, что называется «визуализацией». Очевидно, возможности современных компьютеров наилучшим образом соответствуют этой задаче.

 

§ 3. ЭТАПЫ И ЦЕЛИ КОМПЬЮТЕРНОГО МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ

Рассмотрим процесс компьютерного математического моделирования, включающий численный эксперимент с моделью (рис. 1).

 

 


Рис.1. Общая схема процесса компьютерного математического моделирования

Первый этап – определение целей моделирования. Основные из них таковы:

1) Понимание

Модель в этой ситуации нужна для того, чтобы понять, как устроен конкретный объект, какова его структура, основные свойства, законы развития и взаимодействия с окружающим миром.

2) Управление

Модель нужна для того, чтобы научиться управлять объектом (или процессом) и определить наилучшие способы управления при заданных целях и критериях;

З) Прогнозирование

Модель используется для того, чтобы прогнозировать прямые и косвенные последствия воздействия на объект заданными способами.

Поясним это на примерах. Пусть объект исследования – взаимодействие потока жидкости или газа с телом, являющимся для этого потока препятствием. Опыт показывает, что сила сопротивления потоку со стороны тела растет с ростом скорости потока, но при некоторой достаточно высокой скорости эта сила скачком уменьшается с тем, чтобы с дальнейшим увеличением скорости снова возрасти. Что же произошло, обусловив уменьшение силы сопротивления? Математическое моделирование позволяет получить четкий ответ: в момент скачкообразного уменьшения сопротивления вихри, образующиеся в потоке жидкости или газа позади обтекаемого тела, начинают отрываться от него и уноситься потоком.

Пример совсем из другой области: мирно сосуществовавшие со стабильными численностями популяции двух видов особей, имеющих общую кормовую базу, «вдруг» начинают резко менять численность – и здесь математическое моделирование позволяет (с известной долей достоверности) установить причину явления, или, по крайней мере, опровергнуть определенную гипотезу о его причинах.

Выработка концепции управления объектом – другая возможная цель моделирования. Какой режим полета самолета выбрать для того, чтобы полет был вполне безопасным и экономически наиболее выгодным? Как составить график выполнения сотен видов работ на строительстве большого объекта, чтобы оно закончилось в максимально короткий срок? Множество таких проблем систематически возникает перед экономистами, конструкторами, учеными.

Наконец, прогнозирование последствий тех или иных воздействий на объект может быть как относительно простым делом (в несложных физических системах), так и чрезвычайно сложным – на грани выполнимости – в системах биолого-экономических, социальных. Если относительно легко ответить на вопрос об изменении режима распространения тепла в тонком стержне в зависимости от изменений в составляющем его сплаве, то несравненно труднее проследить (предсказать) экологические и климатические последствия строительства крупной ГЭС или социальные последствия изменений налогового законодательства. Возможно, и здесь методы математического моделирования будут оказывать в будущем более значительную помощь.

Составим список величин, от которых зависит поведение объекта или ход процесса, а также тех величин, которые желательно получить в результате моделирования. Обозначим первые из них (входные) через x1, x2,..., хn,,; вторые (выходные) через y1, y2,…,yn. Символически поведение объекта или процесса можно представить в виде

где Fj — те действия, которые следует произвести над входными параметрами, чтобы получить результаты. Хотя запись  напоминает обозначение функции, мы здесь используем ее в более широком смысле. Лишь в простейших ситуациях здесь F есть функция в обычном смысле; чаще всего она выражает лишь наличие некоторой связи между входными и выходными параметрами модели.

Входные параметры хi могут быть известны «точно», т.е. поддаваться (по крайней мере, в принципе) измерению однозначно и с любой степенью точности — тогда они являются детерминированными величинами. Так, в классической механике, сколь сложной ни была бы моделируемая система, входные параметры детерминированы и, соответственно, детерминирован процесс эволюции такой системы. Однако в природе и обществе гораздо чаще встречаются процессы иного рода, когда значения входных параметров известны лишь с определенной степенью вероятности, т.е. эти параметры являются вероятностными (стохастическими), и, соответственно, случайным является процесс эволюции системы.

Случайный – не значит непредсказуемый. Просто в этой ситуации характер исследования и задаваемых вопросов резко меняется – они приобретают вид «С какой вероятностью...?», «С каким математическим ожиданием...?» и т.п. Примеров случайных процессов не счесть как в науке, так и в обыденной жизни (силы, действующие на летящий самолет в ветренную погоду; переход улицы при большом потоке транспорта и т.д.).

Для стохастической модели выходные параметры могут быть как величинами вероятностными, так и однозначно определяемыми. Например, на перекрестке улиц можно ожидать зеленого сигнала светофора и полминуты, и две минуты (с разной вероятностью), но среднее время ожидания есть величина вполне определенная, и именно она может быть объектом моделирования.

Важнейшим этапом моделирования является разделение входных параметров по степени важности влияния их изменений на выходные. Такой процесс называется ранжированием (разделением по рангам). Чаще всего невозможно, да и не нужно учитывать все факторы, которые могут повлиять на значения интересующих нас величин уj. От того, насколько умело выделены важнейшие факторы, зависит успех моделирования, быстрота и эффективность достижения цели. Выделить наиболее значимые факторы и отсеять менее важные может лишь специалист в той предметной области, к которой относится модель. Так, опытный учитель знает, что на успех контрольной работы влияет степень знания предмета и психологический настрой класса; однако, влияют и другие факторы — например, каким уроком по счету идет контрольная, какова в этот момент погода и т.д. — фактически проведено ранжирование.

Отбрасывание менее значимых факторов огрубляет объект моделирования и способствует пониманию его главных свойств и закономерностей. Умело ранжированная модель должна быть адекватна исходному объекту или процессу в отношении целей моделирования. Обычно определить, адекватна ли модель можно только в процессе экспериментов с ней, анализа результатов первоначального моделирования.

На рис. 2 проиллюстрированы две крайние ситуации: а) некоторый параметр хi, очень сильно влияет на результирующую величину уi; б) почти не влияет на нее. Ясно, что если все представляющие интерес величины уi реагируют на хi, так, как изображено на рис. 2б, то хi, является параметром, который при первом подходе может быть из модели исключен. Если же хотя бы одна из величин уi реагирует на изменение хi, так, как изображено на рис. 2а, то хi нельзя исключать из числа значимых параметров.

Следующий этап — поиск математического описания. На этом этапе необходимо перейти от абстрактной формулировки модели к формулировке, имеющей конкретное

 

 


Рис. 7.2. Варианты степени влияния величины хi на результирующую величину уj

математическое наполнение. В этот момент модель предстает перед нами в виде уравнения, системы уравнений, системы неравенств, дифференциального уравнения или системы таких уравнений и т.д.

Когда математическая модель сформулирована, нужно выбрать метод ее исследования. Как правило, для решения одной и той же задачи есть несколько конкретных методов, различающихся эффективностью, устойчивостью и т.д. От верного выбора метода часто зависит успех всего процесса.

После разработки алгоритма и составления программы для ЭВМ необходимо решить с ее помощью простейшую тестовую задачу (желательно, с заранее известным ответом) с целью устранения грубых ошибок. Это лишь начало процедуры тестирования, которую трудно описать формально исчерпывающим образом. По существу, тестирование может продолжаться долго и закончиться тогда, когда пользователь по своим профессиональным признакам сочтет программу верной.

Затем следует собственно численный эксперимент, и выясняется, соответствует ли модель реальному объекту (процессу). Модель адекватна реальному процессу, если некоторые характеристики процесса, полученные на ЭВМ, совпадают с экспериментальными с заданной степенью точности. В случае несоответствия модели реальному процессу возвращаются к одному из предыдущих этапов.