Ergodic Markov Цепь Стационарное распределение: решение уравнений
-
21-12-2019 - |
Вопрос
Я пытаюсь решить набор уравнений для определения стационарного распределения эргодической матрицы Маркова.
а именно, матрица составляет
P=[0 0 0 0.5 0 0.5;
0.1 0.1 0 0.4 0 0.4;
0 0.2 0.2 0.3 0 0.3;
0 0 0.3 0.5 0 0.2;
0 0 0 0.4 0.6 0;
0 0 0 0 0.4 0.6];
.
и набор уравнений - это те из теоремы ниже
Как я могу преобразовать уравнения выше в действительный синтаксис MatLab?
Решение
Стационарное распределение задается левым вектором eigen с величином собственного значения 1.
>> [V D] = eig( P.' ); %// note the transpose .' - we are looking for the **left** EV
>> st = V(:,1).'; %//' the stationary distribution
st =
0.0051 0.0509 0.2291 0.6110 0.5346 0.5346
>> D(1)
1.0000
. Другие советы
Это другой подход от @ Shai's Ответ .
Альтернативный способ сделать это, от решения уравнений Pi * P= Pi для устойчивого состояния и игнорировать требование о том, что сумма PI_J должна быть одной (на данный момент).
Маленькая матричная алгебра ...
Тогда мы знаем, что PI не имеет уникального решения этого без требования «суммы до 1».PI должен быть в нулевом пространстве (транспонирование (P) - I).Матлаб хорош в этом.Нормализация после данного желаемого результата (как указано @luismendo в комментариях).
P=[0 0 0 0.5 0 0.5;
0.1 0.1 0 0.4 0 0.4;
0 0.2 0.2 0.3 0 0.3;
0 0 0.3 0.5 0 0.2;
0 0 0 0.4 0.6 0;
0 0 0 0 0.4 0.6];
I = eye(size(P));
Y = null(P'-I)
PI = Y./(sum(Y))
.
Это легко проверить.
>> PI(:)' % Force into row vector
ans =
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
.
Сравнить с 25-ступенчатой переходной матрицей.
P5 = P*P*P*P*P;
P25 = P5*P5*P5*P5*P5;
>>P25 =
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
0.0026 0.0259 0.1166 0.3109 0.2720 0.2720
.