simplot

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

Описание

пример

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

пример

simplot(mc,X,Name,Value) дополнительные опции использования заданы одними или несколькими аргументами 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);

Figure contains an axes object. The axes object contains an object of type graphplot.

Симулируйте случайный обход с 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);

Figure contains an axes object. The axes object with title States Reached By Simulations contains an object of type image.

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

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 contains an axes object. The axes object with title Transitions Realized By Simulations contains an object of type image.

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

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

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

Figure contains an axes object. The axes object contains an object of type image.

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

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

свернуть все

Дискретная цепь Маркова с NumStates состояния и матрица перехода PВ виде dtmc объект. P должен быть полностью задан (никакой NaN записи).

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

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

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

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

Аргументы name-value

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

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

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

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

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

'transitions'

Переходы, понятые симуляциями в X. Графиком является NumStates- 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