如何在 R 中实现 while 循环直到收敛?

How do I implement a while loop until convergence in R?

我想编写一个 while 循环,它迭代地填充向量中的值,直到它的值收敛。这是一个可重现的例子:

vector <- c()
# initalize first and 2nd element
vector[1] <- 1
vector[2] <- 1 + exp(-2)

向量的第 i 个元素应该是 (1 + exp(-i)),因此随着 n 趋于无穷大,第 (ith) 和第 (i-th -1) 个元素之间的差应该收敛应该归零。 设 epsilon 为任意小值:

epsilon <- 10E-3

我编写的 while 循环是:

# Fill the vector until difference between the i-th element and the element before it becomes negligible : 
while (vector[i]-vector[i-1] > epsilon){
  vector[i+1] <- vector[i] + exp(-i)
}

未能创建请求的向量。

您似乎缺少 i 对象的初始化以及增加 i:

的方法
vector <- c()
# initalize first and 2nd element
vector[1] <- 1
vector[2] <- 1 + exp(-2)

epsilon <- 10E-3

# initialize i
i <- 2

while (vector[i]-vector[i-1] > epsilon){
  
  vector[i+1] <- vector[i] + exp(-i)
  
  # increase i
  i <- i + 1
  
}

此示例应在 i = 6

之后终止