Пример из книги Кемени Дж., Снелл Дж. Кибернетическое моделирование. Некоторые приложения. М.Советское радио, 1972,192 с.
На Земле Оз погода бывает всего трех типов: дождь, солнечно или снег. Если сегодня солнечный день, то завтра будет дождь или снег с одинаковой вероятностью. Если сегодня-дождь (или снег), то половина шансов за то, что такая же погода будет завтра. Если же происходит изменение, то только в половине случаев оно приводит к солнечному дню.
Решение. Образуем эргодическую цепь Маркова с тремя состояниями rain, sunny и snow для дождя, солнца и снега соответственно. Ее моделью будет Stateflow-диаграмма.
Начальное состояние - sunny, о чем свидетельствует наличие графического объекта переход по умолчанию (Default transition) к состоянию sunny. Этот переход сопровождается действием перехода (Transition action) /nrain=0;nsunny=0;nsnow=0. Это действие устанавливает в ноль счетчики количества дождливых, солнечных дней и дней, когда идет снег.
Заметим, что данном случае это действие является избыточным, так как начальные значения этих переменных равны нулю по умолчанию. В этом нетрудно убедиться, открыв проводник Stateflow Explorer и просмотрев графу InitVal.
При входе в это состояние выполняется действие nsunny++, т.е. количество солнечных дней увеличивается на единицу.
Следующее событие event (смена суток организована в модели при помощи генератора прямоугольных импульсов Pulse Generator) переводит диаграмму в соединяемое подключение Connective Junction , откуда с вероятностью 0.5 диаграмма переходит в состояние snow и с вероятностью 0.5 - в состояние rain. Вероятностный переход основан на использовании условия ml('exprnd(1)')>.5 (вызов MATLAB-функции exprnd(1), т.е. генерация случайного числа из диапазона (0,1) и сравнение этого числа с числом 0.5). Остальные переходы организованы аналогичным образом в соответствие с логикой, описанной в задаче. Результат работы модели на протяжении 10 лет модельного времени, как это следует из рисунка, дал 728 солнечных, 1514 снежных и 1408 дождливых дней. Аналитическое решение дает вероятность для солнечной погоды 1/5, а для снега и дождя - 2/5.