I am trying to solve a system of equations based on a matrix in order to find the "stationary" matrix. the code I've written should break the matrix down into a system of equations such that some matrix "s" does the following s*p=s And it works great with any matrix except an absorbing one. What seems to be happening is that when it sees the equation x[1]=x[1] it just replaces it with "true" and then the solver loses one of the equations needed to actually solve it.
My current code is
P = ( {
{1, 0, 0},
{0, 1, 0},
{.2, .4, .4}
} );
round = .01;
Table[Array[x, Length[P]].Part[P, i] ==
Part[Array[x, Length[P]], i], {i, 1, Length[P]}]
Solve[Union[
Table[Array[x, Length[P]].Part[P, i] ==
Part[Array[x, Length[P]], i], {i, 1, Length[P]}],
{Total[Array[x, Length[P]]] == 1}]]
which gives the following results
{True, True, 0.2 x[1] + 0.4 x[2] + 0.4 x[3] == x[3]}
{{x[2] -> 0.6 - 0.8 x[1], x[3] -> 0.4 - 0.2 x[1]}}
So if anyone has any advice on how to keep the "true" part of the code from happening, (or point out that's not my real problem) I would much appreciate the advice.
x[1]
in this case) can have any value and still satisfy the equations. $\endgroup$