2012-01-11 83 views
0

曲線隨着繪製與參數組成的函數,使用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(測試版) - 哌* R:較長的對象長度不短對象長度

的倍數我認爲所有變量都是標量。那麼如何正確繪製它?謝謝。

回答

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) 
+0

+1哇。你在監視我嗎?這實際上就是我剛剛發佈的答案,完成了'gv < - Vectorize()'的選擇,並增加了'$ value',幾乎是字母的字母。 – joran 2012-01-11 20:03:44

+0

是的,我的思維讀書能力現在擴展到潛在的回答者以及海報的回答者。 – 2012-01-11 20:05:37

+0

糟糕,我認爲消息「1.568874與絕對錯誤<1e-06」是友好代表1.568874 – ziyuang 2012-01-11 20:24:17