Форма входа

Наша реклама

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

Поиск

Календарь

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

Наш опрос

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

Статистика


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




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


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

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

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

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

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



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

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

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

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

В качестве особой части программных разработок принято рассматривать средства "интерфейса с пользователем". Средства интерфейса по современным представлениям включают в себя:

- номенклатуру элементов главного меню и подменю;

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

- средства организации ввода и вывода информации (в т.ч. в диалоге с пользователем);

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

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

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

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

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

В некоторых языках (например Visual Basic for applications) синтаксический контроль вводимых операторов программы осуществляется непосредственно в момент окончания ввода соответствующей строки кода.

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

Тестирование моделирующей программы для ЭВМ

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

При этом обычно преследуются такие цели:

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

* исследование "скоростных" характеристик процесса выполнения моделирования на ЭЦВМ и их зависимости от характеристик самой ЭЦВМ (тип процессора, количество "ядер" процессора, оперативная память, иногда – тип используемого компилятора и пр.)
5.9 Проверка адекватности модели и оценка точности результатов

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

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

Если модель системы ведет себя при просчетах на ЭВМ иначе, чем реальная система, то необходимо:



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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

* Контур расчетной области (для некоторых задач).

* Условия на границах расчетной области.

* Начальные условия.

* Статистические характеристики некоторых параметров (для стохастических моделей).

* В некоторых случаях – качественные показатели (из набора предопределенных значений) для состояний системы в целом или ее подсистем.



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

* выхода задаваемых параметров за границы допустимых диапазонов;

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

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

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

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

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

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

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

* архивное хранение файлов с результатами - с разделением их по поддиректориям.

Нередко для освобождения места на винчестере компьютера архивные данные расчетов по выполненным ранее моделям "сбрасывают" на лазерные диски (ЛД). При этом следует иметь в виду, что срок гарантированной сохранности информации на ЛД обычно не превышает 3-х лет, хотя в большинстве случаев сохраняется и более длительный срок.
5.12 Анализ полученных результатов и связанные с ними действия

При выполнении серии (совокупности) рабочих просчетов их результаты обычно сопоставляются и делаются определенные выводы. Эти сопоставления могут осуществляться в формах:

* сравнительная таблица результатов;

* аналитические зависимости;

* в виде графиков, диаграмм и пр.

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

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

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

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

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

Такой отчет может быть полезен для:

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

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

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

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

В максимальном варианте отчет должен отражать все основные этапы включая:

* постановку задачи;

* описания алгоритмов;

* листинги программы (подпрограмм);

* экранные формы;

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

* анализ этих результатов и пр.

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

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

Затраты на проведение "заказных" работ по моделированию (индивидуальных разработок) в общем случае включают в себя (в конкретных вариантах отдельные этапы могут выпадать):

- поиск заказчика работы (работодателя) или получение заказа через тендер (конкурс);

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

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

- собственно выполнение работы, согласно описанным выше этапам;

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

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

Сейчас эти проблемы практически снялись:

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

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

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

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

Для заказчика эффективность затрат на проведение работ по моделированию может определяться одним (или большим количеством) из перечисленных ниже факторов:

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

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

Особым случаем (с точки зрения оценки рентабельности проведения работ) являются тиражируемые разработки в области моделирования - об этом будет сказано в лекции 8.

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

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

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

- завоевание "оперативных позиций" в определенной области исследований;

- поддержание или повышение уровня научной репутации авторов и пр.

- выполнение плана научно-исследовательских работ и/или опытно-конструкторских работ;

- формирование материала для научной публикации (статьи, монографии и пр.);

- создание задела для оформления заявки на гранты и пр.

Copyright MyCorp © 2024