simplot

Постройте симуляции Цепи Маркова

Синтаксис

simplot(mc,X)
simplot(mc,X,Name,Value)
simplot(ax,___)
h = simplot(___)

Описание

пример

simplot(mc,X) создает тепловую карту из данных X на случайных обходах через последовательности состояний в дискретной цепи Маркова mc.

пример

simplot(mc,X,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Например, задайте тип графика или частоты кадров для анимированных графиков.

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

h = simplot(___) возвращает указатель графика. Используйте h, чтобы изменить свойства графика после того, как вы создадите его.

Примеры

свернуть все

Рассмотрите эту теоретическую, правильно-стохастическую матрицу перехода стохастического процесса.

P=[001/21/41/400001/302/300000001/32/3000001/21/2000003/41/41/21/2000001/43/400000].

Создайте Цепь Маркова, которая характеризуется матрицей P перехода.

P = [ 0   0  1/2 1/4 1/4  0   0 ;
      0   0  1/3  0  2/3  0   0 ;
      0   0   0   0   0  1/3 2/3;
      0   0   0   0   0  1/2 1/2;
      0   0   0   0   0  3/4 1/4;
     1/2 1/2  0   0   0   0   0 ;
     1/4 3/4  0   0   0   0   0 ];
mc = dtmc(P);

Постройте ориентированного графа Цепи Маркова. Укажите на вероятность перехода при помощи цветов обводки.

figure;
graphplot(mc,'ColorEdges',true);

Моделируйте случайный обход с 20 шагами, который начинает со случайного состояния.

rng(1); % For reproducibility
numSteps = 20;
X = simulate(mc,numSteps)
X = 21×1

     3
     7
     1
     3
     6
     1
     3
     7
     2
     5
      ⋮

X 21 1 матрица. Строки соответствуют шагам в случайном обходе. Поскольку X(1) является 3, случайный обход начинается в состоянии 3.

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

figure;
simplot(mc,X);

Рассмотрите эту теоретическую, правильно-стохастическую матрицу перехода стохастического процесса.

P=[001/21/41/400001/302/300000001/32/3000001/21/2000003/41/41/21/2000001/43/400000].

Создайте Цепь Маркова, которая характеризуется матрицей P перехода.

P = [ 0   0  1/2 1/4 1/4  0   0 ;
      0   0  1/3  0  2/3  0   0 ;
      0   0   0   0   0  1/3 2/3;
      0   0   0   0   0  1/2 1/2;
      0   0   0   0   0  3/4 1/4;
     1/2 1/2  0   0   0   0   0 ;
     1/4 3/4  0   0   0   0   0 ];
mc = dtmc(P);

Сгенерируйте 100 случайных обходов с 20 шагами, начинающих с состояния 1.

rng(1); % For reproducibility
numSteps = 20;
X0 = zeros(mc.NumStates,1);
X0(1) = 100; % 100 random walks starting from state 1 only
X = simulate(mc,numSteps,'X0',X0);

X 21 100 матрица.

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

figure;
simplot(mc,X,'Type','transitions');

Строки и столбцы тепловой карты соответствуют числам состояния.

Сравните реализованную матрицу перехода с теоретической матрицей перехода при помощи тепловой карты.

figure;
imagesc(mc.P);
colormap(jet);
axis square;
colorbar;

Реализованные и теоретические матрицы перехода подобны.

Входные параметры

свернуть все

Дискретная цепь Маркова с состояниями NumStates и матрицей перехода P, заданный как объект dtmc.

Моделируемые данные, заданные как (1 + numSteps)-by-numSims числовая матрица положительных целых чисел, возвращенных simulate. Первая строка содержит начальные состояния. Столбцы представляют случайные обходы от соответствующего начального состояния.

Типы данных: double

Оси, на которых можно построить, заданный как объект Axes.

По умолчанию simplot строит к текущей системе координат (gca).

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Type','Graph','FrameRate',3 создает анимированный график симуляций с помощью частоты кадров 3 секунд.

Постройте тип, заданный как пара, разделенная запятой, состоящая из 'Type' и значения в этой таблице.

ЗначениеОписание
'states'

Состояния, достигнутые симуляциями в X. Графиком является (1 + numSteps)-by-NumStates тепловая карта. Строка i отображает пропорцию обходов в каждом состоянии на шаге i.

'transitions'

Переходы, понятые симуляциями в X. Графиком является NumStates-by-NumStates тепловая карта. Элемент (i, j) отображает пропорцию переходов от i состояния, чтобы утвердить j во всех симуляциях. График является эмпирической оценкой матрицы перехода mc.P.

'graph'

Анимированный график количеств состояния (размер узла) и потоки состояния (ширина ребра) на каждом шаге. Аргумент пары "имя-значение" 'FrameRate' управляет прогрессом анимации.

Пример: 'Type','graph'

Типы данных: string | char

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

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

Пример: 'FrameRate',3

Типы данных: double

Выходные аргументы

свернуть все

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

Советы

Чтобы сравнить график реализованных переходов ('Type','transitions') с матрицей перехода, используйте:

figure;
imagesc(mc.P);
colormap(jet);
axis square;

Смотрите также

|

Введенный в R2017b