перераспределить

Вычислите перераспределения Цепи Маркова

Синтаксис

X = redistribute(mc,numSteps)
X = redistribute(mc,numSteps,'X0',x0)

Описание

пример

X = redistribute(mc,numSteps) возвращает данные X на эволюции равномерного распределения состояний в дискретной цепи Маркова mc после того, как это усовершенствует временные шаги numSteps.

пример

X = redistribute(mc,numSteps,'X0',x0) опционально задает распределение начального состояния x0.

Примеры

свернуть все

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

rng('default'); % For reproducibility 
mc = mcmix(4,'Zeros',8);

mc является объектом dtmc.

Постройте диграф Цепи Маркова.

figure;
graphplot(mc);

4 состояния является абсорбирующим состоянием.

Вычислите перераспределения состояния на каждом шаге для 10 шагов дискретного времени. Примите начальное равномерное распределение по состояниям.

X = redistribute(mc,10)
X = 11×4

    0.2500    0.2500    0.2500    0.2500
    0.0869    0.2577    0.3088    0.3467
    0.1073    0.2990    0.1536    0.4402
    0.0533    0.2133    0.1844    0.5489
    0.0641    0.2010    0.1092    0.6257
    0.0379    0.1473    0.1162    0.6985
    0.0404    0.1316    0.0765    0.7515
    0.0266    0.0997    0.0746    0.7991
    0.0259    0.0864    0.0526    0.8351
    0.0183    0.0670    0.0484    0.8663
      ⋮

X 11 4 матрица. Строки соответствуют временным шагам, и столбцы соответствуют состояниям.

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

figure;
distplot(mc,X)

После 10 переходов распределение, кажется, улаживает споры с большинством вероятностной меры в 4 состояния.

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

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

Вычислите перераспределение с 20 шагами Цепи Маркова с помощью случайных начальных значений.

rng(1); % For reproducibility
x0 = rand(mc.NumStates,1);
rd = redistribute(mc,20,'X0',x0);

Постройте перераспределение.

figure;
distplot(mc,rd);

Перераспределение предполагает, что цепочка является периодической с периодом три.

Удалите периодичность путем создания ленивой версии Цепи Маркова.

lc = lazy(mc);

Вычислите перераспределение с 20 шагами ленивой цепочки с помощью случайных начальных значений. Постройте перераспределение.

x0 = rand(mc.NumStates,1);
lrd1 = redistribute(lc,20,'X0',x0);

figure;
distplot(lc,lrd1);

Перераспределение, кажется, обосновывается после нескольких шагов.

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

свернуть все

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

Номер дискретного времени продвигается, чтобы вычислить, заданный как положительное целое число.

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

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

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

Пример: 'X0',[0.5 0.25 0.25] задает распределение начального состояния [0.5 0.25 0.25].

Начальное распределение, заданное как пара, разделенная запятой, состоящая из 'X0' и неотрицательный числовой вектор длины NumStates. redistribute нормирует X0 так, чтобы это суммировало к 1.

Значением по умолчанию является равномерное распределение состояний.

Пример: 'X0',[0.5 0.25 0.25]

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

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

свернуть все

Эволюция вероятностей состояния, возвращенных как (1 + numSteps)-by-NumStates неотрицательная числовая матрица. Первой строкой является X0. Последующие строки являются перераспределениями на каждом шаге, который redistribute определяет матрицей перехода P.

Примечание

Если mc является эргодическим, и numSteps является достаточно большим, X(end,:) аппроксимирует x = asymptotics(mc). Смотрите asymptotics.

Советы

Чтобы визуализировать данные, созданные redistribute, используйте distplot.

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

| |

Введенный в R2017b