R中多元数值积分的函数

时间:2016-06-09 21:38:59

标签: r numerical-methods

我一直在尝试用数字方法评估一系列复杂的积分。到目前为止我使用的函数是来自dblquad包的pracma,但程序遇到了困难。以下是这些困难的一个例子(在一些初步功能之后)。

    require(pracma)

        n.dens <- function(x, y, rho){
          n.dens <- 1/(2*pi*sqrt(1-rho^2))*exp(-1/(2*(1-rho^2))*(x^2 + y^2 - 2*rho*x*y))
          return(n.dens)
        }

        bisquare.psi <- function(x, k){
          bisquarepsi <- ifelse(abs(x)<=k, (6/k^2)*x*(1-(x/k)^2)^2, 0)
          return(bisquarepsi)
        }

        e.x. <- function(x, y){
          f <- x/sqrt(2) - y/sqrt(2) 
          return(f)
        }


        weights.o <- function(x, y, rho){
          sigma <- sqrt(1-rho)
          u <- e.x.(x, y)/sigma 
          weights <- bisquare.psi(u, k = 4.685065)/u
          return(weights)
        }

        rho <- 0.9
        dblquad(function(x, y, rho) weights.o(x,y, rho)*n.dens(x, y, rho),
                xa = -Inf, xb = Inf, ya = -Inf, yb = Inf, rho = rho)

但是这又回来了

Error in integrate(function(y) f(x, y), ya, yb, subdivisions = subdivs,  : 
  non-finite function value

我很想知道,还有另一个用户友好的程序可以完成这项工作吗?请记住,集成的限制是无限的,因此功能需要能够处理。提前谢谢。

0 个答案:

没有答案