2010-07-26 64 views
2

考慮:我如何在R中填充這個矩陣的條目?

h_i=t_(i+1)-t_i for i=1,...,n-1 where n is a positive integer. 

矩陣Qn通過(n-2)矩陣通過給出i=1,...,nj=2,...n-1q_(i,j)

q_(j-1,j)=1/h_(j-1) 
q_(j,j)=-(1/h_(j-1)+1/h_j) 
q_(j+1,j)=1/h_j 
q_(i,j)=0 for |i-j|>=2 

我希望得到一個矩陣Q。我如何在R中編寫這個矩陣的程序?提前多了。

回答

1

如果我正確地計算出的標,我想這會做到這一點:

n <- 100 
t <- sort(runif(n)) 
h <- diff(t) 
Q <- matrix(0,n,n-2) 
Q[row(Q)==col(Q)-1] <- 1/h[1:(n-3)] 
Q[row(Q)==col(Q)+1] <- 1/h[1:(n-2)] 
diag(Q) <- c(NA,-1/h[1:(n-3)] - 1/h[2:(n-2)])