[英]Integrating a function in R
我希望得到一些帮助来集成一个基于随机变量的函数。 函数是得到一个连续分布的期望值。
这是我到目前为止的代码。
montecarlo <- function(r,v,t,x,k) {
y <- rnorm(1)
e <- (y*(x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))-k))
MCOP <- exp(-r*t)*integrate(e, lower = -Inf, upper = Inf)
if((x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))-k) > 0) {
return(MCOP)
} else {
return(0)
}
}
例如,如果我输入: montecarlo(.03, .65, 3, 34, 30)
我收到一条错误消息,内容如下:
get(as.character(FUN), mode = "function", envir = envir) 中的错误:
找不到模式“函数”的对象“e”
您的代码有多个问题,但导致错误的第一个问题是e应该是一个函数。 即,而不是
y = rnorm(1)
e = (y*(x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))-k))
你应该有
e = function(y){y*(x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))-k)}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.