Симулируйте случайные обходы через цепь Маркова

В этом примере показано, как сгенерировать и визуализировать случайные обходы через Цепь Маркова.

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

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,'ColorNodes',true);

Figure contains an axes object. The axes object contains 2 objects of type graphplot, line. This object represents Period = 3.

mc представляет один текущий класс периодом 3.

Симулируйте один случайный обход 20 шагов через цепь. Запустите в случайном начальном состоянии.

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

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

Постройте тепловую карту случайного обхода.

figure;
simplot(mc,X);

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

Время возврата к любому состоянию является кратным три.

Покажите случайный обход через Цепь Маркова как анимация через диграф. Задайте частоту кадров 1 секунды.

figure;
simplot(mc,X,'FrameRate',1,'Type','graph');

Figure contains an axes object. The axes object contains 8 objects of type graphplot, line. This object represents Step 20.

Симулируйте 100 случайных обходов: 50 запусков с состояния 1, 49 запусков с состояния 2 и 1 запуск с состояния 6. Постройте тепловую карту симуляции.

x0 = [50 49 0 0 0 1 0];
X1 = simulate(mc,numSteps,'X0',x0);

figure;
simplot(mc,X1);

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

X1 21 100 матрица случайных обходов. Первые 50 столбцов соответствуют обходам, начинающим с состояния 1, следующие 49 столбцов соответствуют обходам, начинающим с состояния 2, и последний столбец соответствует обходу, начинающему с состояния 6.

Три периодических подкласса очевидны.

Просмотрите реализованную матрицу перехода 100 случайных обходов как тепловая карта.

figure;
simplot(mc,X1,'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;
title('Theoretical Transition Matrix')

Figure contains an axes object. The axes object with title Theoretical Transition Matrix contains an object of type image.

Матрицы перехода подобны.

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

Объекты

Функции

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте