Try this
install.packages("expm")
library(expm)
T = matrix(c( 0.8797 , ? 0.0382 ?, 0.0527 ?, 0.0008,
? ? ? ? ? ? ? 0.0212 , ? 0.8002 ?, 0.0041 ?, 0.0143,
? ? ? ? ? ? ? 0.0981 , ? 0.0273 ?, 0.8802 ?, 0.0527,
? ? ? ? ? ? ? 0.0010 , ? 0.1343 ?, 0.0630 ?, 0.9322),?
? ? ? ? ? ?nrow = 4, ncol = 4,byrow = T)
T %^% 200
----- Original Message -----
From: annek <annek at ifm.liu.se>
To: r-help at r-project.org
Cc:
Sent: Wednesday, December 12, 2012 12:49 PM
Subject: [R] Matrix multiplication
Hi,
I have a transition matrix T for which I want to find the steady state matrix for. This could be approximated by taking T^n , for large n.
T= [ 0.8797? 0.0382? 0.0527? 0.0008
? ? ? 0.0212? ? 0.8002? 0.0041? 0.0143
? ? ? 0.0981? ? 0.0273? 0.8802? 0.0527
? ? ? 0.0010? ? 0.1343? 0.0630? 0.9322]
According to a text book I have T^200 should have reached the steady state L
L =[0.17458813? 0.17458813? 0.17458813? 0.17458813
? ? ? 0.05731902? 0.05731902? 0.05731902? 0.05731902
? ? ? 0.35028624? 0.35028624? 0.35028624? 0.35028624
? ? ? 0.44160126? 0.44160126? 0.44160126? 0.44160126]
I am addressing the problem using a for loop doing matrix multiplication (guess there might be better ways, please suggest) and find a steady state matrix after n=30. But if I run the code with n=100 or more I get "Inf" for all entities in L. Does anyone know why is that?
The code I use look like this
#------------------------------------
rep<-20
T <- Ttest
for(i in 1:rep){
print(i)
T<-T%*%Ttest
Ttest<-T
}
L<-T
print(L)
#----------------------------------
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.