exponenta event banner

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)около-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)около-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