【发布时间】:2017-08-22 08:24:13
【问题描述】:
我正在使用 R 编程。
我必须创建函数和 for 循环。
值:t=0.001,n=4 和下面附加的函数。
我想使用 for 循环计算 y2(0.001)、y3(0.001) 和 y4(0.001)。
另外,我做了一个R代码,但是有一个我不知道的错误。
如何使 for 循环计算 y2(0.001)、y3(0.001) 和 y4(0.001)?
下面的代码是我的 R 代码。谢谢。
###########################
# value #
###########################
n<-4
t<-0.001
sigma<-numeric(4)
y<-numeric(4)
sigma[1]<-0.1
y[1]<-0
###########################
# Brownian-Motion #
###########################
nor1<-rnorm(n,0,1)
nor1<-cumsum(nor1)
###########################
# function #
###########################
delta<-function(t){
0.01
}
alpha<-function(t){
2*t*(1-t)
}
beta<-function(t){
2*t*(1-t)
}
epsilon<-function(t){
(2^(200*t))*(nor1)*(1/sqrt(log10(2)))
}
###########################
# for-loop #
###########################
sigma[i]<-delta(t)+(alpha(t)*y[i-1]*y[i-1])+(beta(t)*sigma[i-1]sigma[i-1]);
y[i]<-sigma[i]*epsilon(t);
print(y[i])
}
【问题讨论】:
-
嗨,欢迎来到 SO!他们应该怎么做?您需要再详细说明问题,对我们来说也无法理解错误消息。你有一些函数,你想运行所有的函数吗?
-
@JanSila 哦,对不起!我将我的函数附加到链接和我的 R 代码!
-
您的代码中没有
for关键字。您可能需要在“for”循环的开头添加for (i in 2:n){。在sigma[i]公式中也缺少*。希望这能解决您的错误。 -
好点@Prem,但问题还在于,epsion 返回一个长度为
n的向量,并且OP 希望将标量保存到向量中。 @Hyun 你能弄清楚那个吗?
标签: r function for-loop time-series