Hi,
I am not sure whether I typed something in wrong, but you could try this. Suppose that you write a vector, the first component of which is the percentage of Facebook users and the second the percentage of Twitter users. The process is Markovian. These transition matrices (or probability matrices) have the characteristic that the columns add up to one. In your case the matrix is
matrix = {{0.7, 0.2}, {0.3, 0.8}}
If you use
MatrixForm[matrix]
it looks more familiar.
Okay. After one step the things looks like this
matrix.{0.6, 0.4}
i.e. you multiply the matrix with the vector. You can use NestList to iterate that:
NestList[matrix.# &, matrix, 20].{0.6, 0.4}
The result of this is
{{0.5, 0.5}, {0.45, 0.55}, {0.425, 0.575}, {0.4125, 0.5875}, {0.40625,
0.59375}, {0.403125, 0.596875}, {0.401563, 0.598438}, {0.400781,
0.599219}, {0.400391, 0.599609}, {0.400195, 0.599805}, {0.400098,
0.599902}, {0.400049, 0.599951}, {0.400024, 0.599976}, {0.400012,
0.599988}, {0.400006, 0.599994}, {0.400003, 0.599997}, {0.400002,
0.599998}, {0.400001, 0.599999}, {0.4, 0.6}, {0.4, 0.6}, {0.4, 0.6}}
This shows you that it settles down to a ratio of 40% Facebook vs 60% Twitter. you can also plot the process:
ListPlot[Transpose[NestList[matrix.# &, matrix, 20].{0.6, 0.4}]]
Of course this is not really a water-tight argument. There is however a theorem that helps. On page 107 of "A Course on the Web Graph" you find an argument that shows that the dominant eigenvector, i.e. the one with eigenvalue 1, gives under some conditions the final ratio. In Mathematica the eigenvectors are ordered with respect to their eigenvalues so
Eigenvectors[matrix][1]
gives the correct ratio of
{-0.5547, -0.83205}
Note that the negative of this is also an eigenvector. Also we can normalise it to one, i.e. 100%, like so:
Eigenvectors[matrix][[1]]/Total[ Eigenvectors[matrix][[1]]]
which gives:
{0.4, 0.6}
So if I haven't made some stupid typo, the ratio of Facebook/Twitter followers will invert the original ratio in the example you gave.
Hope this helps,
Marco
PS: I am aware that this does not really add much to what Daniel already said, but I had already started typing...