Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Моделирование случайных событий.



 

Цель работы: имитационное моделирование информационных потоков с заданными параметрами на примере одноканальной однофазовой модели.

 

Методические указания

Управление последовательностью исполнения операторов. Существует 4 основных оператора управления последовательностью исполнения инструкций:

· оператор условия if в сочетании с операторами else и elseif выполняет группу инструкций в соответствии с некоторыми логическими условиями;

· оператор переключения switch в сочетании с операторами case и otherwise выполняет различные группы инструкций в зависимости от значения некоторого логического условия;

· оператор условия while выполняет группу инструкций неопределенное число раз в соответствии с некоторым логическим условием завершения;

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

Синтаксис: ifлогич._выр-ние инструкции end

If…else…elseif…end
Оператор условия

if логич._выр-ние инструкции else инструкции end

ifлогич._выр-ние инструкции elseifлогич._выр-ние инструкции else инструкции end

Описание:

Оператор условия if... end вычисляет некоторое логическое выражение и выполняет соответствующую группу инструкций в зависимости от значения этого выражения. Если логическое выражение истинно, то MATLAB выполнит все инструкции между if и end, а затем продолжит выполнение программы в строке после end. Если условие ложно, то MATLAB пропусти все утверждения между if и end и продолжит выполнение в строке после end.

Операторы if... else... end и if... elseif... end создают дополнительные ветвления внутри тела оператора if:

· оператор else не содержит логического условия. Инструкции, связанные с ним, выполняются, если предшествующий оператор if (и, возможно, elseif) ложен;

· оператор elseif содержит логическое условие, которое вычисляется, если предшествующий оператор if (и, возможно, elseif) ложен. Инструкции, связанные с оператором elseif, выполняются, если соответствующее логическое условие истинно.

Оператор elseif может многократно использоваться внутри оператора условия if.

 

Switch…case…otherwise…end
Оператор переключения

Синтаксис:

switch < выражение>

% выражение - это обязательно скаляр или строка

case < значение1>

инструкции

% выполняются, если < выражение> = < значение1>

case < значение2>

инструкции

% выполняются, если < выражение> = < значение2>

otherwise

инструкции

% выполняются, если < выражение > не совпало ни с одним из значений

end

Оператор switch... case 1... case k... otherwise... end выполняет ветвления, в зависимости от значений некоторой переменной или выражения.

Оператор переключения включает:

· заголовок switch, за которым следует вычисляемое выражение (скаляр или строка);

· произвольное количество групп case. Заголовок группы состоят из слова case, за которым следует возможное значение выражения, распо­ложенное на одной строке. Последующие строки содержат инструкции, которые выполняются для данного значения выражения. Выполнение продолжается до тех пор, пока не встретится следующий оператор case или оператор otherwise. На этом выполнение блока switch завершается;

· группа otherwise. Заголовок включает только слово otherwise, начиная со следующей строки размещаются инструкции, которые выполняются, если значение выражения оказалось не обработанным ни одной из групп case. Выполнение завершается оператором end;

· оператор end - является последним в блоке переключателя.

Оператор switch работает, сравнивая значение вычисленного выражения со значениями групп case. Для числовых выражений оператор case выпол­няется, если < значение> ==< выражение>. Для строковых выражений оператор case истинен, если strcmp(значение, выражение) истинно.

While…end
Оператор цикла с неопределенным числом операций

 

Синтаксис:

while выражение

инструкции

end

Описание:

Оператор цикла с неопределенным числом операций while... end мно­гократно выполняет инструкцию или группу инструкций, пока управляющее выражение истинно.

Если выражение использует массив, то все его элементы должны быть истинны, чтобы продолжить выполнение. Чтобы привести матрицу к ска­лярному значению, следует использовать функции any и all.

Выход из white-цикла может быть реализован с помощью оператора break. Если в операторе while управляющее условие является пустым масси­вом, то такое условие ложно, то есть оператор вида while A, S1, end никогда не выполнит инструкции S1, если А - пустой массив.

For…end
Оператор цикла с определенным числом операций

Синтаксис:

for < переменная цикла> = < нач. знач.>: < приращение>: < конеч. знач.>

инструкции

end

Описание:

Оператор цикла for... end выполняет инструкцию или группу инструк­ций предопределенное число раз. По умолчанию приращение равно 1. Можно задавать любое приращение, в том числе отрицательное. Для поло­жительных индексов выполнение завершается, когда значение индекса пре­вышает < конечное значение>; для отрицательных приращений выполнение завершается, когда индекс становится меньше чем < конечное значение>.

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

Для полного понимания определения нам понадобится следующий набор понятий.

Пусть Y обозначает некоторую выходную (эндогенную) переменную, которую нужно изучить, а Х - вектор, составленный из переменных (экзогенных переменных или переменных управления) Хi. По определению переменные Х воздействуют на переменную Y в соответствии с функциональным соотношением Y = φ (X).

Переменная Y называется реакцией, переменные Х - факторами. Функция j называется поверхностью реакции. Частным случаем соответствия Y=j (x) является простая линейная модель.

 

(1.1.)

 

где q i - некоторые параметры. Изменяя либо q, либо X, либо обе величины одновременно, можно имитировать реакцию.

Эта модель слишком проста и не реальна. Чтобы сделать эту модель реалистичнее, можно добавить случайную величину ε и переписать модель в виде

 

(1.2.)

 

Функция плотности вероятностей случайной величины задана в виде f(e, m ), где m - вектор параметров распределения. Модель можно сделать еще более реалистичной (и сложной), если в нее включить преобразования g(Y) и h(Xi) реакции Y и элементов вектора Х. Некоторые из этих преобразований могут быть нелинейными и содержать дополнительные параметры. В модель можно включить также случайные величины g i, каждую с весом b i и свежей функцией распределения y g где m - вектор параметров. Можно ввести зависимость от времени. Тогда модель примет вид:

 

(1.3.)

 

Ясно, что такую модель можно исследовать только имитационным методом.

Итак, модель, требующая имитационного анализа, должна иметь следующие черты:

1. Большое количество координат вектора Х и их функций.

2. Случайные величины g и e и их распределения.

3. Большое число параметров q, b и m.

4. Много связей d между элементами модели.

5. Нелинейность.

6. Ограничения разных типов.

7. Реакции, зависящие от времени.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 526; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.026 с.)
Главная | Случайная страница | Обратная связь