Вычислите перераспределения Цепи Маркова
X = redistribute(mc,numSteps)
X = redistribute(mc,numSteps,'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 перехода.
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);
Перераспределение, кажется, обосновывается после нескольких шагов.
mc
— Дискретная цепь Марковаdtmc
Дискретная цепь Маркова с состояниями NumStates
и матрицей перехода P
, заданный как объект dtmc
.
numSteps
— Количество шагов дискретного времениНомер дискретного времени продвигается, чтобы вычислить, заданный как положительное целое число.
Типы данных: double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'X0',[0.5 0.25 0.25]
задает распределение начального состояния [0.5 0.25 0.25]
.x0
Начальное распределениеНачальное распределение, заданное как пара, разделенная запятой, состоящая из 'X0'
и неотрицательный числовой вектор длины NumStates
. redistribute
нормирует X0
так, чтобы это суммировало к 1
.
Значением по умолчанию является равномерное распределение состояний.
Пример: 'X0',[0.5 0.25 0.25]
Типы данных: double
X
Эволюция вероятностей состоянияЭволюция вероятностей состояния, возвращенных как (1 + numSteps)
-by-NumStates
неотрицательная числовая матрица. Первой строкой является X0
. Последующие строки являются перераспределениями на каждом шаге, который redistribute
определяет матрицей перехода P
.
Если mc
является эргодическим, и numSteps
является достаточно большим, X(end,:)
аппроксимирует x = asymptotics(mc)
. Смотрите asymptotics
.
Чтобы визуализировать данные, созданные redistribute
, используйте distplot
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.