我有一个困难的R
计算要做,我可以选择两台计算机,称为 V 和 L,来运行代码。V应该比L快,但我没有经历过。所以我决定测试一下。
作为一个简单的测试,我决定让他们将一个 3000*3000 的矩阵反转 500 次,并记录时间。
set.seed(123)
I=500
n=3000
time=matrix(NA,ncol=3,nrow=I)
for(i in 1:I){
t0<-proc.time()
x<-solve(matrix(runif(n^2),n))
mt1<-proc.time()
time[i,]<-(mt1-t0)[1:3]
}
问题是在特定的迭代过程中,它卡住了。我不知道为什么,但我怀疑这是因为生成的矩阵接近奇异。所以我想改进代码。我可以想到3种方法:
- 确保生成的矩阵很容易可逆。但是我该如何执行呢???当然,任何解决方案都需要计算成本低廉,否则练习将变得毫无意义。
- 如果需要太长时间,要求
R
跳过该迭代?solve
但是,我该怎么做呢? - 给他们分配不同的计算任务,有什么建议吗?