
- •1. Определение и назначение моделирования
- •2. Классификация моделей
- •3. Классификация математических моделей
- •3.1. Классификация в зависимости от сложности объекта моделирования
- •3.2. Классификация в зависимости от оператора модели
- •3.3. Классификация в зависимости от параметров модели
- •3.4. Классификация в зависимости от целей моделирования
- •3.5. Классификация в зависимости от методов исследования
- •4. Этапы построения модели
- •4.1. Обследование объекта моделирования
- •4.2. Концептуальная постановка задачи
- •4.3. Математическая постановка задачи
- •4.4. Выбор и обоснование выбора методов решения задачи
- •4.5. Реализация модели в виде программы для эвм
- •4.6. Проверка адекватности модели
- •4.7. Практическое использование модели
- •5. Пример разработки модели - Модель спроса предложения
- •6. Структурные модели
- •6.1. Способы построения структурных моделей
- •7. Моделирование в условиях неопределенности
- •7.1. Моделирование в условиях неопределенности, описываемой с позиции теории нечетких множеств
- •7.2. Моделирование в условиях стохастической неопределен-ности
- •7. Имитационное моделирование
- •7.1. Виды представления времени в модели
- •8. Модели представления знаний
4.5. Реализация модели в виде программы для эвм
Этапы процесса создания программного обеспечения:
-
разработка технического задания на создание про-граммного обеспечения,
-
проектирование структуры программного комплекса,
-
кодирование алгоритма,
-
тестирование и отладка,
-
сопровождение и эксплуатация.
Техническое задание оформляется в виде спецификации, которая включает:
-
Название задачи (краткое определение, система про-граммирования, требования к аппаратному обеспечению)
-
Описание (математическая постановка задачи, приме-няемая математическая модель)
-
Управление режимами работы программы (формиро-вание интерфейса)
-
Определение входных данных
-
Определение выходных данных
-
Определение ошибок (возможные ошибки, способы диагностики и защиты от ошибок)
-
Тестовые задачи
Проектирование программного комплекса (ПК):
-
формирование общей структуры ПК,
-
разделение на программные модули,
-
определение схемы взаимодействия программных мо-дулей,
-
разработка плана и исходных данных для тестирования модулей и ПК в целом.
4.6. Проверка адекватности модели
Адекватность модели – степень соответствия полученных результатов данным эксперимента или тестовой задачи.
Цели проверки адекватности модели:
-
Справедливость совокупности гипотез, сформулирован-ных на этапах концептуальной и математической постановок.
-
Соответствие точности полученных результатов точ-ности, оговоренной в техническом задании.
Проверка разработанной математической модели выпол-няется путем сравнения с имеющимися экспериментальными данными о реальном объекте или с результатами других, соз-данных ранее и хорошо зарекомендовавших себя моделей.
Решение вопроса о точности моделирования зависит от требований, предъявляемых к модели, и ее назначения.
Причины неадекватности результатов моделирования:
- значения задаваемых параметров модели не соответствует допустимой области этих параметров, определяемой принятой системой гипотез,
- принятая система гипотез верна, но константы и пара-метры в использованных определяющих соотношениях уста-новлены неточно,
- неверна исходная совокупность гипотез.
4.7. Практическое использование модели
Модели, разрабатываемые для исследовательских целей, как правило, не доводятся до уровня программных комплексов, предназначенных для передачи сторонним пользователям. Поэ-тому время их существования ограничено временем выполнения исследовательских работ по соответствующему направлению.
Модели и построенные на их основе программные ком-плексы, предназначенные для передачи сторонним пользовате-лям или для коммерческого распространения, имеют развитый дружественный интерфейс и строятся, как правило, на апро-бированных и хорошо себя зарекомендовавших постановках и вычислительных процедурах.
5. Пример разработки модели - Модель спроса предложения
Постановка задачи
Фермер каждый год выращивает на своем поле на продажу пшеницу. Запасов, которые хранились бы больше года, он не делает. Решение о том, сколько пшеницы сеять, принимается с учетом цен предыдущего года. Если цены были высокие, то сеять надо больше, если – низкие, то меньше. Спрос на пшеницу зависит от ее цены в момент продажи. Когда цена растет, спрос падает.
Необходимо описать поведение цен в ближайшие годы как функцию от первоначальной цены.
Концептуальная постановка
Параметры модели:
pn - цена за единицу пшеницы в n-й год,
sn – предложение пшеницы в n-й год,
dn - спрос на пшеницу в n-й год.
Объект исследования – зависимость цены pn от ее перво-начальной цены p0.
Предположения:
- предложение sn+1 будущего года зависит линейно от цены pn в этом году, чем больше pn тем больше sn+1. Цена на пшеницу не должна быть меньше затрат на ее производство,
- спрос dn+1 будущего года зависит линейно от цены pn+1 в будущем году, чем больше pn+1 тем меньше dn+1. Самый боль-шой спрос при pn+1=0.
- рыночная цена pn+1 определяется равновесием между спросом dn+1 и предложением sn+1.
Требуется описать поведение p1, p2, p3, ... в зависимости от значения цены p0.
Математическая постановка
Считая p0 заданным, найти последовательность p1, p2, p3, ... удовлетворяющих системе уравнений:
sn+1 = apn – b,
dn+1 = -cpn+1 + g,
sn+1 = dn+1.
a,b,c,d – положительные вещественные числа. Причем b/a характеризует минимально допустимую цену, а g - максимально возможный спрос.
Решение задачи
Подставим 1-е и 2-е уравнения системы в 3-е:
apn – b = -cpn+1 + g
Разделим уравнение на с и введем новые константы:
A = a/c >0, B = (b+g) / c > 0
Получаем соотношение: pn+1 = - Apn + B.
Перепишем в виде: pn+1 + Apn = B
Будем искать n-е решение в виде суммы решения одно-родного уравнения pn+1 + Apn = 0 и частного решения уравнения pn+1 + Apn = B.
Однородное решение: pn+1 = - Apn.
Пусть p0 = С = const, тогда
p1 = С(-A), p2 = С(-A)2, p3 = С(-A)3, ... pn = С(-A)n,
Частное решение:
Введем pn =D для всех n.
Тогда D + AD = B или D = B / (A+1).
Общее решение имеет вид: pn = С(-A)n + B / (A+1).
При n = 0, получим C = p0 –B/ (A+1).
Подставляя последнее уравнение в предпоследнее, реше-ние задачи будет следующим
pn = p0(-A)n + B / (A+1) (1-(-A) n).