Форма входа

Наша реклама

Помогите сайту просмотрите рекламу

Поиск

Календарь

«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930

Наш опрос

Оцените мой сайт
Всего ответов: 122

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0




Суббота, 20.04.2024, 17:00
Приветствую Вас Гость | RSS
Скорая помощь для студентов
Главная | Регистрация | Вход
Лекция 5


МОДЕЛИРОВАНИЕ СИСТЕМ

Лекция 5

 

Основные этапы реализации моделей и анализа результатов

 

Словарь модуля

Литература модуля

 

Оглавление лекции

5.1 Формулировка целей реализации моделей

5.2 Типы компьютерных моделей с точки зрения их реализации

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

5.4 Состав основных этапов реализации компьютерной модели, для которой имеется математическая постановка задачи

5.5 Разработка (выбор) алгоритмов моделирования

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

5.7 Кодирование программы (обычно написание текста программы на языке высокого уровня)

5.8 Отладка и тестирование

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

5.10 Подготовка и верификация исходных данных для рабочих просчетов

5.11 Выполнение рабочих просчетов

5.12 Анализ полученных результатов и связанные с ними действия

5.13 Оформление отчета по результатам моделирования

5.14 Оценка экономической эффективности проведения работ по моделированию

5.1 Формулировка целей реализации моделей

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

* учебные (т.е. только научиться моделировать какие-то задачи без намерения получить результаты для дальнейшего использования);

* исследовательские вспомогательного (технического) характера - в том числе:

         - отработка методик;

- оценка применимости численных методов и пр.;

* научно-исследовательские;

* производственно-технические, в том числе в сферах:

- управления;

- анализа информации;

- прогнозирования и пр.

Цели моделирования в значительной мере определяют:

- подходы к построению моделей;

- особенности их компьютерной и иной реализации; 

- содержание и стиль инструкций к программам компьютерного моделирования и иной эксплуатационной документации.

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

5.2 Типы компьютерных моделей с точки зрения их реализации

Можно выделить две основные группы компьютерных моделей:

- для аналоговых ЭВМ;

- для цифровых ЭВМ.

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

Преимущества имитационного моделирования:

- возможность учета стохастических факторов и сложных нелинейных зависимостей;

- относительная простота модификации компьютерных программ при изменении постановок задач;

- возможность многократного прогона программ с различными наборами исходных данных и пр.

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

В техническом отношении компьютерная модель в максимальном варианте может представлять собой совокупность:

- собственно моделирующей программы;

- каких-то стандартных наборов данных, коэффициентов и пр. для нее;

- средств, для наглядного отображения результатов и т.д.

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

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

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

- автономные программы, требующие индивидуальной разработки (самостоятельной или в виде заказа "на стороне").

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

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

Однако такие разработки обычно необходимы в случаях:

- специфических задач;

- очень высокой стоимости закупки готовых программ и невозможности их "дистанционного использования" – бесплатного или за умеренную плату.

При этом собственные разработки могут осуществляться:

- только для "внутреннего использования" или имея в виду и возможность их последующего тиражирования и, возможно, коммерческих продаж;

- одним программистом или коллективом специалистов.

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

- внедрение в практику работы пакетов прикладных программ, охватывающих достаточно широкие области практических потребностей;

- расширение доступности к программным средствам через Интернет;

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

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

- в экономическом плане  (стоимость);

- в отношении трудозатрат;

- по необходимым календарным срокам;

- по качеству интерфейса с пользователем (в сравнении с профессионально выполненными разработками).

Вероятно, наиболее ярким примером смены приоритетов являются программы "бухгалтерского направления". На первом этапе информатизации предприятий с использованием персональных ЭВМ такие программы разрабатывались чуть ли не в каждой организации (для чего обычно организовывалась специальная группа программистов или отдел). Затем постепенно начали преобладать профессионально выполненные разработки с возможностями настройки под конкретного потребителя. В настоящее время в России среди бухгалтерских программ общего назначения для среднего и малого бизнеса абсолютно преобладают программы серии "1С бухгалтерия" и во "втором эшелоне" идут еще несколько (БЭСТ, Инфобухгалтер и пр.). Индивидуальные разработки осуществляются почти исключительно как надстройки (дополнения) к этим программным комплексам.

Если все же осуществляется собственная разработка программных средств, то снижение ее трудоемкости может быть достигнуто путем применения:

- фрагментов ранее выполненных авторами разработок;

- стандартных подпрограмм;

- типовых решений по интерфейсу с пользователем.

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

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

Причинами могут быть.

(А) Недостаточные мощности собственных персональных компьютеров и вычислительных комплексов.

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

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

 

5.4 Состав основных этапов реализации компьютерной модели, для которой имеется математическая постановка задачи

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

* разработка общего алгоритма для моделирования изучаемого процесса или системы;

* составление блок-схемы этого алгоритма (при необходимости) и ее анализ в рамках проверки логики программы моделирования - в основном в отношении выявления возможных алгоритмических ошибок;

* разработка алгоритмов для решения частных задач (подзадач), связанных с проведением моделирования;

* составление для них блок-схем (при необходимости) и их анализ;

* выбор или самостоятельная разработка численных методов для реализации алгоритмов (при необходимости);

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

* кодирование программы (обычно запись ее на том или ином языке программирования высокого уровня)

* отладка программы (устранение ошибок программирования – сначала синтаксических ошибок, затем - алгоритмических);

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

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

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

         - сопоставления с экспериментальными данными (или данными наблюдений) если таковые есть;

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

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

* формулировка выводов по результатам просчетов и/или написание отчета по проведенным работам.

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

Если же собственный код не пишется, то часть этапов "выпадает".

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

Далее мы последовательно рассматриваем основные этапы из числа перечисленных выше.

5.5 Разработка (выбор) алгоритмов моделирования

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

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

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

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

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

В формализованном виде алгоритмы (особенно для реализации численных методов) нередко записываются на каком-либо языке программирования или "псевдоязыке".

Ранее в качестве таких "языков публикаций" широко использовался "Алгол-60", а затем Фортран, Фортран-4, Паскаль, Модула-2.   В настоящее время для этих целей используются и другие языки (особенно Visual Basic и даже "С" и "С++").

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

Описание алгоритма на языке высокого уровня обычно:

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

- допускает логический анализ алгоритма и (по крайней мере в части случаев) оценку его эффективности;

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

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

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

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

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

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

Подчеркнем, что одному расчетному узлу может сопоставляться и более одного параметра (все зависит от задачи).

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

Преимущества конечно-элементного подхода:

- удобные возможности описания объектов сложной формы;

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

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

 



Copyright MyCorp © 2024