Этапы математического (компьютерного) моделирования#

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

Этап 1. Построение математической модели#

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

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

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

  4. Проводится предварительное исследование математической модели:

    • на корректность поставленной задачи;

    • на возможность решения задачи;

    • на единственность решения.

Если моделируются сложные объекты, то при исследовании выделяются подсистемы, для которых строятся математические модели. Этот набор моделей определенным образом структурирован и упорядочен. Такой подход к моделированию часто называют прикладным математическим моделированием. При прикладном математическом моделировании принципиальным моментом является то, что речь должна идти не об отдельной математической модели (отдельной какой-то задаче), а об определенном классе (наборе) математических моделей (задач).

Этап 2. Выбор метода решения#

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

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

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

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

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

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

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

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

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

Таким образом, перед реализацией алгоритма на ЭВМ необходимо теоретически оценить его качество и провести исследования:

  • на устойчивость алгоритма:

  • на сходимость алгоритма;

  • на точность вычислений;

  • на экономичность вычислений.

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

Этап 3. Разработка и применение программного обеспечения#

Это создание программы для реализации разработанного алгоритма на машинных языках. Существует много языков программирования, каждый из которых ориентирован на определенный тип машины, на свой класс задач. Можно перечислить наиболее распространенные языки программирования: это С/С++, Python, Java, Rust и др.

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

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

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

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

  • пошаговое выполнение программы с остановкой после каждой команды;

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

  • установка необходимого нового значения переменной;

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

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

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

Этапы тестирования:

  1. Проверка в нормальных условиях.

  2. Проверка в экстремальных случаях.

  3. Проверка в исключительных случаях.

В этих предварительных расчетах тестируется также сама математическая модель, выясняется, насколько хорошо она описывает изучаемый класс явлений, в какой степени она адекватна реальности. Существуют различные методы тестовой проверки математической модели:

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

  • проверка порядка величин;

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

  • использование сравнения результатов расчета на ЭВМ с экспериментальными надежными данными;

  • анализ свойств решения (проверка инвариантности).

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

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

Этап 4. Компьютерное исследование или вычислительный эксперимент#

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

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

Проведение расчетов − это исследовательская работа, поиск, имеющий свою стратегию. Фактически в процессе расчетов осуществляется диалог “человек - компьютер”.

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

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

Этап 5. Обработка и анализ результатов вычислительного эксперимента#

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

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

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

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

Все перечисленные этапы являются условными и ориентированы на решение научных и производственных задач с помощью методов математического и компьютерного моделирования. Математическое и компьютерное моделирование – это творчество.

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

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