Вычисление распределения состояний марковской цепи на каждом временном шаге

Этот пример показывает, как вычислить и визуализировать перераспределения состояний, которые показывают эволюцию детерминированных распределений состояний с течением времени от начального распределения.

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

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. The axes contains 2 objects of type graphplot, line. This object represents Period = 3.

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

Предположим, что начальное распределение состояний равномерно. Вычислите эволюцию распределения для 20 временных шагов.

numSteps = 20;
X = redistribute(mc,numSteps);

X является матрицей 21 на 7. Строка t содержит развитое распределение состояний на временном шаге t.

Визуализируйте перераспределения в тепловой карте.

figure;
distplot(mc,X);

Figure contains an axes. The axes with title Distribution of States contains an object of type image.

Периодичность цепи очевидна.

Удалите периодичность из цепи Маркова, преобразовав ее в ленивую цепь. Постройте график переходной матрицы ленивой цепи как тепловой карты.

lc = lazy(mc);
figure;
imagesc(lc.P);
colormap('jet');
axis square;
colorbar;
title('Theoretical Lazy Chain Transition Matrix')

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

lc является dtmc объект. lazy создает ленивую цепь путем добавления веса к вероятности стойкости, то есть lazy принудительно применяет самоциклы.

Вычислите эволюцию распределения в ленивой цепи на 20 временных шагов. Постройте график перераспределений в тепловой карте.

X1 = redistribute(lc,numSteps);

figure;
distplot(lc,X1);

Figure contains an axes. The axes with title Distribution of States contains an object of type image.

Рассматривайте эволюцию распределения состояний как анимированную гистограмму. Задайте скорость системы координат 1 секунду.

figure;
distplot(lc,X1,'Type','histogram','FrameRate',1)

Figure contains an axes. The axes with title Distribution of States contains an object of type categoricalhistogram. This object represents Step 20.

Вычислите стационарное распределение ленивой цепи. Сравните его с конечным перераспределением в анимированной гистограмме.

xFix = asymptotics(lc)
xFix = 1×7

    0.1300    0.2034    0.1328    0.0325    0.1681    0.1866    0.1468

Стационарное распределение и окончательное перераспределение практически идентичны.

См. также

Объекты

Функции

Похожие темы