[R] Matrix multiplication gives different results some of the times (NaN)

From: Xavier Fernández i Marín <xfim.ll_at_gmail.com>
Date: Tue, 13 Sep 2011 09:34:25 +0200


Dear all,

When trying to multiply the same matrices repeatedly I get different results some of the times.

It is not systematic, which is the fact that is giving me more trouble to try to isolate the problem.

Basically I am doing X %*% B, where X is a Nx2 matrix and B is a vector with 2 values. I have the impression (by exploration) that when N<41 the problem appears randomly, whereas for for N<41, it has not appeared any time.

When I run a loop with, say, 1000 times doing the same operation, some of the times the resulting matrix has some "NaN" into it.

Here it goes some code that fails:

-----8<---------------

B <- c(0, 4.9039)

X <-

structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, -0.171208033350785, 2.05470005817641, -2.41795651834092, 

-0.258302488807007, -2.33857441602606, 0.628992894509171, 3.17491552278606,
-1.44233071945946, 3.15785975396147, -1.99816867735392, 2.86344423987462,
-5.271325440284, -2.0312296185407, -3.60192700841448, 3.38189039590051,
-3.24639622163501, 0.284327647745153, -0.262087980902988, -3.7659454179588,
0.684967001574538, 3.0772201853168, 5.17600286245534, 1.04626227787207, 3.70446276942422, -0.0396039716160263, -0.657289365686855, -1.05808995826547,
-1.93203623162131, -0.0884561017666723, -2.93790617275895, -0.215434948253912,
4.98439842853693, 2.91447973684786, -1.29993065167532, -4.66018971623614,
-6.64275130324818, -5.21531940416414, 0.479257350317855, -1.96095587405884,
1.08909073077384, 1.28904309721095, 1.11327650673847, -0.022977620181631, 3.29959801979137, -2.23876825868105), .Dim = c(45L, 2L), .Dimnames = list(

    NULL, c("", "x")))

for (i in 1:1000) {

  M <- X %*% B
  w <- which(is.nan(M))
  l <- length(w) 

  if (l!=0) {
    print(paste("Length", l, "error(s) on", X[w,2], sep=" "))   }
}

-----8<---------------

It gives several errors with variable length and on similar positions.

I am using R-2.13.1 under Gentoo Linux
-----8<---------------

> version

platform       x86_64-pc-linux-gnu          
arch           x86_64                       
os             linux-gnu                    
system         x86_64, linux-gnu            
status                                      
major          2                            
minor          13.1                         
year           2011                         
month          07                           
day            08                           
svn rev        56322                        
language       R                            
version.string R version 2.13.1 (2011-07-08)
-----8<---------------

-----8<---------------

> sessionInfo()
R version 2.13.1 (2011-07-08)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:

 [1] LC_CTYPE=ca_AD.UTF-8       LC_NUMERIC=C               LC_TIME=ca_AD.UTF-8       
 [4] LC_COLLATE=C               LC_MONETARY=C              LC_MESSAGES=ca_AD.UTF-8   
 [7] LC_PAPER=ca_AD.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
 [10] LC_TELEPHONE=C            LC_MEASUREMENT=ca_AD.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached): [1] tools_2.13.1

-----8<---------------

Thank you,

--


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. Received on Tue 13 Sep 2011 - 07:40:38 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 13 Sep 2011 - 08:20:22 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive