redistribute

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

Описание

пример

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 объект. P должен быть полностью задан (никакой NaN записи).

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

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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)- NumStates неотрицательная числовая матрица. Первой строкой является X0. Последующие строки являются перераспределениями на каждом шаге, который redistribute определяет матрицей перехода P.

Примечание

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

Советы

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

Введенный в R2017b

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