我正在使用數學模型,其中函數包含在矩陣內以模擬生物種羣的動態。這通常需要調用函數來更新矩陣,然後執行矩陣乘法以將系統的動態投影到下一個時間步驟。我想知道是否可以直接在矩陣中嵌入一個函數,並跳過顯式更新矩陣元素。In R是否可以在包含函數的矩陣上進行矩陣運算?
的模型看起來像這樣: 所述系統的狀態是在矩陣X1,例如
X <- c(0,10)
系統更改根據矩陣A
A <- matrix(data = c(0, NA,0.75,0.75),nrow =2,byrow = T)
[,1] [,2]
[1,] 0.00 NA
[2,] 0.75 0.75
當元件NA是一個函數元素2在X1中,像這樣
f.A.12 <- function(X.2){1 + (1 - X.2/1000)}
所以系統是模擬的lik E本:基於X的狀態 更新marix一個
A[1,2] <- f.A.12(X[2])
迭代模型更新矩陣:
A%*%X
[,1]
[1,] 19.9
[2,] 7.5
然後,這被重複1000次,每乘
真正的前更新模型使用包含多個函數的更大的矩陣。 是否有的R包,允許我直接在基質內嵌入功能,如
A.with.fx <- matrix(data = c(0, f.A.12,
0.75, 0.75), nrow =2,byrow = T)
然後進行定期矩陣操作,例如
A.with.fx%*%X
而無需顯式分配A中的值是每次迭代中X的函數? 我想這將需要一個功能,是一個修改%*%
操作,它自己進行必要的查找。
矩陣中的所有元素都必須是相同的類型。這意味着你可以有一個函數矩陣,但是你不能在一個numeric類型的矩陣中嵌入一個函數。 –