迭代方程

时间:2018-09-30 18:00:34

标签: r for-loop iteration

我对R很陌生,需要一些帮助。我正在尝试为以下代码编写代码:

suppose x[0]=1 and  
x[j]=x[j-1]+(2/x[j-1])  
for j=1,2,...  
Write a program to find the first 10 values, i.e. x[0],x[1],...x[9]   

我相信我必须写for() 循环,但我正在努力获得正确的组合。您能提供的任何帮助将不胜感激。

这是我现在所在的位置:

x=1
for(j in 1:10){
  x=x[j-1]+(2/x[j-1]) 
  print(x)
}

是的,这是为了家庭作业。 x [0]应该是x(下标)0。我不确定如何以其他方式编写该代码。

1 个答案:

答案 0 :(得分:0)

一些指针:

1)目标可能应该是创建具有10个元素的向量x

2)在R中,矢量索引从1(而不是0)开始,因此x [1] = 1。

3)在R中,单个数字实际上是长度为1的向量,因此您可以通过编写x <- 1

来初始化该向量。

4)由于您已经有了第一个元素,并且循环使用前一个元素创建了下一个元素,因此循环应从j = 2开始。

5)在R中,当您将元素分配给长度超出其长度的向量时,R会将向量扩展为必要的长度。即你可以写

x <- 1
x[2] <- 3.14

并有一个向量x = [1,3.14]

所以设置看起来像这样:

x <- 1
for(j in 2:10){
   #do stuff to generate the x vector
}