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);

Figure contains an axes. The axes 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. The axes 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. The axes 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. The axes contains an object of type image.

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

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

свернуть все

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

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

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. 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'

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

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

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

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

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

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

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

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

свернуть все

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

Совет

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

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

Введенный в R2017b