我对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。我不确定如何以其他方式编写该代码。
答案 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
}