如何有效地整合这个功能?

时间:2015-07-06 08:35:08

标签: r double integration

我已经编写了这个R代码来对函数进行双重集成(边界是无限的):

nom <- function(u){
  tau <- 90   
  r <- 0   
  alpha <- .2
  k <- 1
  f1 <- function(c){(tau-u)*(alpha*k^alpha)^2/(k+c)^(alpha+1)*
                      (1/(k+r*tau+u+c)^(alpha+1)+
                       1/(k+r*tau-u+c)^(alpha+1))}
  integrate(f1,lower=0,upper=Inf)$value }
D <- Vectorize(nom)
q1 <- integrate(D,lower=0,upper=tau)

我获得了以下消息

Error in integrate(f1, lower = 0, upper = Inf) : 
  non-finite function value

我注意到当将r更改为高于0值时,将没有问题。但我的任务包括选择r恰好为零。 请任何人帮助将此功能与r = 0集成。

1 个答案:

答案 0 :(得分:3)

您试图在数字上整合一个函数,对于r=0c=u-kc=-u-k强烈分歧。这不会奏效。我建议你尝试改变参数和/或积分范围;或者您在数学教科书中搜索分析解决方案(如果存在)。

tau <- 90   
r <- 0   
alpha <- .2
k <- 1
u<-1 # I set this parameter to 1, the value is not decisive for the problem
f1 <- function(c){(tau-u)*(alpha*k^alpha)^2/(k+c)^(alpha+1)*
      (1/(k+r*tau+u+c)^(alpha+1)+
         1/(k+r*tau-u+c)^(alpha+1))}
plot(f1, xlab="c")

enter image description here

PS:根据WolframAlpha,您的积分不会覆盖r=0。换句话说,除了&#34; infinity&#34;之外似乎没有解决方案。在这种情况下。 enter image description here