Главная > Моделирование, обработка сигналов > Метод статистического моделирования
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

11. Операторная схема моделирующего алгоритма

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

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

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

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

Логический оператор описывает проверку условий вида и в зависимости от исхода этой проверки формулирует признак если условие выполнено, и если оно не выполнено). Основное отличие логического оператора от арифметического заключается в том, что логический оператор предопределяет разветвление вычислительного процесса: управление отлогического оператора может быть передано одному из двух различных операторов в зависимости от значения признака со. Будем обозначать логический оператор буквой с соответствующим номером, например Передача управления от логического оператора обозначается следующим образом. Справа от символа логического оператора ставится стрелка с номером того оператора, которому передается управление. По стрелке, направленной вверх, управление передается в том случае, когда условие, проверяемое данным логическим оператором, выполнено. Например, означает, что если условие, проверяемое оператором выполнено, то управление передается оператору № 6. Аналогично по стрелке, направленной вниз, управление передается в том случае, когда условие, проверяемое данным логическим оператором, не выполнено. Например,

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

В блок - схемах логические операторы изображаются в виде кружков, внутри которых записываются проверяемые условия, а выходящие стрелки имеют индексы 0 и 1. По стрелке с индексом 1 управление передается в том случае, когда проверяемое условие выполнено, а по стрелке с индексом 0, если оно не выполнено.

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

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

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

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

Как известно, корпи этого уравнения выражаются формулой

Для представления в операторной форме алгоритма определения корней введем следующие операторы:

— вычисление —

вычисление

— проверка условия

— определение действительных корней

— определение - комплексных «корней

— выдача результатов.

Операторную схему рассматриваемого алгоритма можно записать так:

На рис. 7 представлена достаточно наглядная блок - схема этого алгоритма.

Работа алгоритма сводится к следующему. Оператор вычисляет и передает управление оператору

Оператор вычисляет и передает управление оператору Оператор проверяет условие Если это условие выполнено, оператор вырабатывает в противном случае Предположим, что и Тогда от - оператора по стрелке с индексом 1 управление передается оператору Оператор вычисляет действительные корни уравнения

Рис. 7.

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

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

<< Предыдущий параграф Следующий параграф >>
Оглавление