Определить асимптотики цепи Маркова
Рассмотрим эту теоретическую, правостохастическую матрицу перехода стохастического процесса.
Создайте цепочку Маркова, которая характеризуется матрицей перехода 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);
Определить стационарное распределение марковской цепи.
xFix = asymptotics(mc)
xFix = 1×7
0.1300 0.2034 0.1328 0.0325 0.1681 0.1866 0.1468
Поскольку xFix является вектором строки, это уникальное стационарное распределение mc.
Создайте матрицу перехода с пятью состояниями эмпирических отсчетов, создав матрицу диагонали блока, состоящую из дискретных равномерных вытягиваний.
m = 100; % Maximal count rng(1); % For reproducibility P = blkdiag(randi(100,2) + 1,randi(100,3) + 1)
P = 5×5
43 2 0 0 0
74 32 0 0 0
0 0 16 36 43
0 0 11 41 70
0 0 20 55 22
Создайте и постройте график цепочки Маркова, который характеризуется матрицей перехода P.
mc = dtmc(P); figure; graphplot(mc)

Определить стационарное распределение и время смешения марковской цепи.
[xFix,tMix] = asymptotics(mc)
xFix = 2×5
0.9401 0.0599 0 0 0
0 0 0.1497 0.4378 0.4125
tMix = 0.8558
Ряды xFix соответствуют стационарным распределениям двух независимых повторяющихся классов mc.
Создание отдельных цепей Маркова, представляющих повторяющиеся подцепи mc.
mc1 = subchain(mc,1); mc2 = subchain(mc,3);
mc1 и mc2 являются dtmc объекты. mc1 является повторяющимся классом, содержащим состояние 1, и mc2 является повторяющимся классом, содержащим состояние 3.
Сравните время смешивания подцепей.
[x1,t1] = asymptotics(mc1)
x1 = 1×2
0.9401 0.0599
t1 = 0.7369
[x2,t2] = asymptotics(mc2)
x2 = 1×3
0.1497 0.4378 0.4125
t2 = 0.8558
mc1 подходит к своему стационарному распределению быстрее, чем mc2.
Создайте цепочку Маркова «гантели», содержащую 10 состояний в каждом «весе» и три состояния в «баре».
Укажите вероятности случайного перехода между состояниями в пределах каждого веса.
Если цепь Маркова достигает состояния в весе, наиболее близком к брусу, то укажите высокую вероятность перехода к бруску.
Задайте равномерные переходы между состояниями на панели.
rng(1); % For reproducibility w = 10; % Dumbbell weights DBar = [0 1 0; 1 0 1; 0 1 0]; % Dumbbell bar DB = blkdiag(rand(w),DBar,rand(w)); % Transition matrix % Connect dumbbell weights and bar DB(w,w+1) = 1; DB(w+1,w) = 1; DB(w+3,w+4) = 1; DB(w+4,w+3) = 1; mc = dtmc(DB);
Визуализация матрицы перехода с помощью тепловой карты.
figure;
imagesc(mc.P);
colormap(jet);
axis square;
colorbar;
Постройте направленный график цепи Маркова. Подавление меток узлов.
figure;
h = graphplot(mc);
h.NodeLabel = {};
Постройте график собственных значений цепи гантелей.
figure; eigplot(mc);

Тонкий красный диск на графике показывает спектральный промежуток (разность между двумя наибольшими собственными значениями модулей). Спектральный промежуток определяет время смешения цепи Маркова. Большие зазоры указывают на более быстрое перемешивание, в то время как тонкие зазоры указывают на более медленное перемешивание. В этом случае спектральный зазор является тонким, что указывает на длительное время перемешивания.
Оцените время смешивания цепи гантелей и определите, является ли цепь эргодичной.
[~,tMix] = asymptotics(mc)
tMix = 85.3258
tf = isergodic(mc)
tf = logical
1
В среднем, время, необходимое для общего расстояния изменения между любым начальным распределением и стационарным распределением для распада в коэффициент , составляет около 85 шагов.
mc - Дискретно-временная марковская цепочкаdtmc объектДискретно-временная марковская цепь с NumStates состояния и матрица перехода P, указано как dtmc объект. P должен быть полностью указан (нет NaN записи).
xFix - Стационарное распределениеСтационарное распределение, с xFix*P = xFix, возвращенный как неотрицательная числовая матрица с NumStates столбцы. Количество строк xFix - количество независимых повторяющихся классов в mc.
Для уничайнов дистрибутив уникален, и xFix является 1около-NumStates вектор.
В противном случае каждая строка xFix представляет собой отдельное стационарное распределение в mc.
tMix - Время смешиванияВремя смешения, возвращаемое как положительный числовой скаляр.
Если, то второй по величине модуль собственных значений (SLEM) P, существует и является ненулевым, то оценочное время смешения составляет λ ).
Примечание
Если P является неотрицательной стохастической матрицей, то цепью Маркова mc он характеризует имеет левый собственный вектор xFix с собственным значением 1. Теорема Перрона - Фробениуса [2] подразумевает, что если mc является унихаином (цепью с одним повторяющимся сообщающимся классом), то xFix является уникальным. Для редуктивных цепей с несколькими повторяющимися классами, собственное значение 1 имеет более высокую кратность, и xFix является неуникальным. Если цепь является периодической, xFix является стационарным, но не ограничивающим, потому что произвольные начальные распределения не сходятся с ним. xFix является уникальным и ограничивающим только для эргодических цепей. Посмотрите classify.
Для эргодических цепей tMix - характерное время для любого начального распределения, которое должно сходиться с xFix. В частности, это время для общего расстояния изменения между начальным распределением и xFix для распада на коэффициент e = exp(1). Время смешения является мерой относительной связности переходных структур в различных цепях.
[1] Галлагер, Р. Г. Стохастические процессы: теория для применения. Кембридж, Великобритания: Cambridge University Press, 2013.
[2] Рог, R. и К. Р. Джонсон. Матричный анализ. Кембридж, Великобритания: Cambridge University Press, 1985.
[3] Сенета, Е. неотрицательные матрицы и цепи Маркова. Нью-Йорк, Нью-Йорк: Спрингер-Верлаг, 1981.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.