2015-04-15 98 views
1

我想乘一些矩陣和以下錯誤發生時:誤差乘以矩陣

B <- 2*mcov 
B <- cbind(B,c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)) 
B <- cbind(B,t(mrend)) 
B <- rbind(B, c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0)) 
B <- rbind(B, ((1 + c(meanNovartis, meanRDS, meanRoche, meanEJ, meanHSBC, 
      meanBayer, meanUnilever, meanGSK, meanSanofi, meanAnheuser, 
      meanSiemens, meanLoreal, meanInnate, 
      meanBT,meanNestle,0,0)^12)-1)) 
B 
c <- matrix(c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,(((1+mean(meanRDS))^12))-1), 
      nrow=17, ncol=1) 

,並試圖解決在:

x <- solve(B)%*%c 

出現此錯誤:

solve.default(B)中的錯誤:Lapack例程dgesv:系統恰好是單數:U [17,17] = 0

+2

您的問題已經回答[這裏](http://stackoverflow.com/questions/6572119/r-solvesystem-is-exactly-singular) –

回答

1

您正試圖計算沒有逆矩陣的LU分解。因此,LAPACK程序包(當您撥打solve時,R實際上正在運行的程序)試圖將其除以零。

解決您的問題是要麼清理數據,如果這是原因,或找到另一種方法來獲取您的特徵值。