使用R绘制具有参数积分的函数的曲线

时间:2012-01-11 19:20:38

标签: r

使用

n<-3; rho<-0.5;

我想绘制函数的图片

g<-function(r)
   {
     integrate(
       function(beta)
       {
         1/(cosh(beta)-rho*r)^(n-1)
       }
     ,lower=0,upper=Inf)
   }

我试过

curve(g(x),from=0,to=1)

但R抱怨说

  

在cosh(beta)中 - rho * r:较长的物体长度不是较短物体长度的倍数

我认为所有变量都是标量。那么如何正确绘制呢?谢谢。

1 个答案:

答案 0 :(得分:5)

g<-function(r)
    {
      integrate(
        function(beta)
        {
          1/(cosh(beta)-rho*r)^(n-1)
        }
      ,lower=0,upper=Inf)$value   # integrate would return a list otherwise
    }
 gv <- Vectorize(g)  
 # Since `g` is not naturally going to handle the vector that `curve` will send
 curve(gv(x),from=0,to=1)