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

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

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

Процесс построения любой математической модели можно представить последовательностью этапов:

  1. Обследование объекта моделирования и формулировка технического задания на разработку модели (содержательная постановка задачи);
  2. Концептуальная и математическая постановка задачи;
  3. Качественный анализ и проверка корректности модели;
  4. Выбор и обоснование выбора методов решения задачи;
  5. Поиск решения;
  6. Разработка алгоритма решения и исследование его свойств, реализация алгоритма в виде программ;
  7. Проверка адекватности модели;
  8. Практическое использование построенной модели.

Обследование объекта моделирования

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

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

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

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

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

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

Концептуальная постановка задачи моделирования

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

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

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

Математическая постановка задачи

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

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

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

Выбор и обоснование выбора решения задачи

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

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

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

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

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

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

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

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

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

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

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

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

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

Процесс создания программного обеспечения можно разбить на несколько этапов:

  • составление технического задания на разработку программного обеспечения;
  • проектирование структуры программного комплекса;
  • кодирование алгоритма;
  • тестирование и отладка;
  • сопровождение и эксплуатация.

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

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

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

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

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

Проверка адекватности модели

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

Проверка адекватности модели преследует две цели:

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

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

Решение вопроса о точности моделирования зависит от требований, предъявляемых к модели, и ее назначения. При этом должна учитываться точность получения экспериментальных результатов или особенности постановок тестовых задач. В моделях, предназначенных для выполнения оценочных и прикидочных расчетов, удовлетворительной считается точность 10-15%. В моделях, используемых в управляющих и контролирующих системах, требуемая точность может быть 1-2% и даже более.

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

Практическое использование модели и анализ результатов моделирования

Дескриптивные модели, предназначены для описания исследуемых параметров некоторого явления или процесса, а также для изучения закономерностей изменения этих параметров. Эти модели могут использоваться для изучения свойств и особенностей поведения исследуемого объекта при различных сочетаниях исходных данных и разных режимах; при построении оптимизационных моделей и моделей-имитаторов сложных систем.

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

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

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

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

Поэтому всесторонний анализ результатов моделирования позволяет:

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

 

Модель

Моделирование

 

На главную страницу

 

 

© Лаборатория системного анализа 2018system-laboratory.ru

© Лаборатория системного анализа 2018system-laboratory.ru

© Лаборатория системного анализа 2018system-laboratory.ru

© Лаборатория системного анализа 2018system-laboratory.ru