首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有2个或更多随机参数的函数的向量

具有2个或更多随机参数的函数的向量
EN

Stack Overflow用户
提问于 2016-04-01 09:59:21
回答 1查看 94关注 0票数 0

我有这4个两个变量的函数:

代码语言:javascript
复制
inner.a0b0<- function(tvar,gamma){
  return(gamma^(1/2)*(1+tvar)^(-(gamma+1)/2)*exp(-tvar/2))} 

K0.inte.func <- function(tvar,gam){return((1-tvar)*(exp(-tvar)-gam^(-1/2)*(1+tvar)^(-(gam+1)/2)*exp(-tvar/2)))}  


unit.l.func <- function(tvar,gam){return((1+tvar)^((gam+1)/2)*exp(-tvar/2))}

beta.G <- function(tvar,gam){(1+tvar)^((gam+1)/2)*exp(-tvar/2)*(1-tvar))}

我有两个不同的样本,从中我得到了估计的lambda.es =c(λes.1,λes.2)。

然后我通过如下积分得到两个分量的两个向量:

代码语言:javascript
复制
K0.deno <- sapply(lambda.es, function(x) integrate(inner.a0b0,lower=0,upper=Inf,gam=x)$value)

K0.inte.val<- sapply(lambda.es, function(x) integrate(K0.inte.func,lower=0,upper=Inf,gam=x)$value) 

我现在的目标是:首先,我从unit.l.func和beta.G以及向量K0.deno和K0.inte.val定义了两个函数(每个函数对应于lambda.es的一个组件),所以我写道:

代码语言:javascript
复制
K0.operator.b <- function(tvar, gam, deno,inte.val){res<- beta.G(tvar,gam) - (1-deno)*unit.l.func(tvar,gam)*inte.val
return(res)}

基本上,我希望有两个函数b1.til和b2.til,如下所示:

代码语言:javascript
复制
b1.til <- K0.operator.b(tvar,gam,deno=K0.deno[1],inte.val=K0.inte.val[2])
b2.til <- K0.operator.b(tvar,gam,deno=K0.deno[2],inte.val=K0.inte.val[2])

然后,我再次需要将b1.til和b2.til与gam=lambda.es集成。我怎么能不写两遍所有的东西呢?非常感谢您的关注。任何建议/帮助都是非常感谢的。我也非常感谢对代码的任何批评。非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2016-04-01 10:36:26

我认为这应该会成功,但实际上你应该提供真实的测试用例来进行测试。目前,我们没有可用于测试的unit.l.func或deno或val的值,也没有任何测试用例,您知道答案应该是什么。

尝试返回在这两个值可用时定义的函数。然后,该函数应将它们作为其环境的一部分进行继承。这被称为“闭包”:

代码语言:javascript
复制
function1 <- function(tvar, gam)
{ function(tvar, gam){ beta.G(tvar,gam) - 1/(1-deno[1])*(unit.l.func( tvar, gam)-1)*val[1]}
 }

function2 <- function(tvar, gam)
{ function(tvar, gam){ beta.G(tvar,gam) - 1/(1-deno[2])*(unit.l.func( tvar, gam)-1)*val[2]}
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36346802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档