【发布时间】:2021-08-14 12:17:36
【问题描述】:
我正在尝试将两个变量的函数与 R 中的一个变量进行积分,例如 \int_{0}^{1} f(x,y) dy。我已经对 f(x,y) 进行了编码,但我正在努力计算如何在 R 中计算 x 的所有值(x 也在 (0,1) 中)的积分。任何见解都会很好。
谢谢
编辑
这是我的代码(已经有建议的答案)
tdensity<-function(u,v,eta,rho){
s<-qt(u,df=eta)
r<-qt(v,df=eta)
numerador<-gamma((eta+2)/2)*gamma(eta/2)*((1+s^2/eta)*(1+r^2/eta))^((eta+1)/2)
denominador<-sqrt(1-rho^2)*(gamma((eta+1)/2))^2*(1+(s^2+r^2-2*rho*s*r)/(eta*(1-rho^2)))^((eta+2)/2)
return(numerador/denominador)
}
joedensity<-function(u,v,alpha){
w<-1-u
z<-1-v
dens<-(w^alpha+z^alpha-w*z^alpha)^(1/alpha-2)*w*z^(alpha-1)*(alpha-1+w^alpha+z^alpha-w*z^alpha)
return(dens)
}
pi<-function(u,v,theta) return((u*v)^theta)
cstarfun<-function(u,v,rho,theta,alpha,eta,K){
dens<-(1/K)*(pi(u,v,theta)*tdensity(u,v,eta,rho)+(1-pi(u,v,theta))*joedensity(u,v,alpha))
return(dens)
}
g<-Vectorize(cstarfun) # actually I don't know where to define the values for eta=4, rho=0.7, theta=2, alpha=3, K=2.5
w<-function(u) integrate(function(v) g, 0,1)$value
w<-Vectorize(w)
plot(w,from=0,to=1)
对 u 和 v 的唯一要求是它们在 (0,1) 中。再次感谢。
【问题讨论】: