Моделируйте обходы состояния Цепи Маркова
X = simulate(mc,numSteps)X = simulate(mc,numSteps,'X0',x0)Рассмотрите эту теоретическую, правильно-стохастическую матрицу перехода стохастического процесса.
Создайте Цепь Маркова, которая характеризуется матрицей 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
numSteps = 20;
X = simulate(mc,numSteps)X = 21×1
3
7
1
3
6
1
3
7
2
5
⋮
X 21 1 матрица. Строки соответствуют шагам в случайном обходе. Поскольку X(1) является 3, случайный обход начинается в состоянии 3.
Визуализируйте случайный обход.
figure; simplot(mc,X);

Создайте Цепь Маркова с четырьмя состояниями из случайным образом сгенерированной матрицы перехода, содержащей восемь неосуществимых переходов.
rng('default'); % For reproducibility mc = mcmix(4,'Zeros',8);
mc является объектом dtmc.
Постройте диграф Цепи Маркова.
figure; graphplot(mc);

4 состояния является абсорбирующим состоянием.
Запустите три симуляции с 10 шагами для каждого состояния.
x0 = 3*ones(1,mc.NumStates);
numSteps = 10;
X = simulate(mc,numSteps,'X0',x0);X 11 12 матрица. Строки соответствуют шагам в случайном обходе. Столбцы 1-3 являются симуляциями, которые запускаются в состоянии 1; столбец 4-6 является симуляциями, которые запускаются в состоянии 2; столбцы 7-9 являются симуляциями, которые запускаются в состоянии 3; и столбцы 10-12 являются симуляциями, которые запускаются в состоянии 4.
В течение каждого раза постройте состояния пропорций, которые посещают по всем симуляциям.
figure; simplot(mc,X)

mc — Дискретная цепь МарковаdtmcДискретная цепь Маркова с состояниями NumStates и матрицей перехода P, заданный как объект dtmc.
numSteps — Количество шагов дискретного времениНомер дискретного времени продвигается в каждую симуляцию, заданную как положительное целое число.
Типы данных: double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'X0',[1 0 2] задает симуляцию три раза, первая симуляция запускается в состоянии 1, и итоговые два запускаются в состоянии 3.x0 Начальные состояния симуляцийНачальные состояния симуляций, заданных как пара, разделенная запятой, состоящая из 'X0' и вектор неотрицательных целых чисел длины NumStates. X0 обеспечивает счета для количества симуляций, чтобы начаться в каждом состоянии. Общим количеством симуляций (numSims) является sum(X0).
Значением по умолчанию является одна симуляция, начинающаяся со случайного начального состояния.
Пример: 'X0',[10 10 0 5]
Типы данных: double
X Индексы состоянийИндексы состояний посещают во время симуляций, возвращенных как (1 + numSteps)-by-numSims числовая матрица положительных целых чисел. Первая строка содержит начальные состояния. Столбцы, по порядку, являются всеми симуляциями, начинающимися в первом состоянии, затем все симуляции, начинающиеся во втором состоянии, и так далее.
Чтобы запустить симуляции n с k состояния, используйте:
X0 = zeros(1,NumStates); X0(k) = n;
Чтобы визуализировать данные, созданные simulate, используйте simplot.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.