【问题标题】:What form should the parameters for this (user defined) function be in?这个(用户定义的)函数的参数应该采用什么形式?
【发布时间】:2018-03-10 16:28:26
【问题描述】:

我目前正在学习一个关于随机金融的模块(尽管 R 不是先决条件)我需要在 R 中编写/修改一些代码。我目前真的很难从以下代码中获得有效的输出,其中我们得到了合作:

bmsim=function(nsim,ntime) {
  wn=matrix(rnorm(nsim*ntime),nrow=nsim,ncol=ntime)/sqrt(ntime)
  bm=matrix(0, nrow=nsim,ncol=ntime+1)
  for(i in 1:nsim) bm[i,]=cumsum(c(0,wn[i,]))
  bm
}


stoch.int=function(fun1=fun.null,fun2=fun.null,w=bm,lh=T,sigma=1, nu=1, alpha=1) {
  environment(fun1)=environment()
  environment(fun2)=environment()
  nsim=nrow(w)
  ntime=ncol(w)-1
  jj=0
  if(lh==F) jj=1
  si=rep(0,nsim)
  for(j in 1:ntime) {
    si=si+sigma*fun1(w[,j+jj])*(w[,j+1]-w[,j]) + nu*fun2(w[,j+jj])/ntime
  }
  si
}

运行此代码并在控制台中定义 bm = bmsim(20,20) 后,我正在努力从函数 stoch.int 获取输出。这样做的原因(我相信)是因为我没有以正确的形式提供此函数的参数。

首先,由于参数fun1fun2 应该是函数,我不确定如何表达这些值。它希望我使用什么变量?这些参数是否应该在引号内给出?

谁能帮我理解什么样的参数会为这个函数提供输出?

我怀疑,虽然我还没有让它工作,但参数应该以这样的形式给出

stoch.int(expression(sqrt(1 - x^2)), 'x', expression(sqrt(1 + x^2 + x^3)), 'x')

注意:如果这里不适合发布此问题,我深表歉意。 R 网站 (https://r-dir.com/community/forums.html) 建议将其作为有关 R 问题的论坛。

【问题讨论】:

    标签: r calculus stochastic


    【解决方案1】:

    你可以使用这种格式来运行函数:

    stoch.int(function(x) {sqrt(1 - x^2)}, function(x) { sqrt(1 + x^2 + x^3) })
    

    它确实会产生警告和奇怪的结果,但这是指定函数的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 2021-12-06
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-22
      相关资源
      最近更新 更多