繁体   English   中英

在 R 中集成函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM