我正在研究最大似然估計器,其中一個參數是使用digamma函數估計的。我試圖用uniroot解決方程,但無法做到這一點。這裏是我的代碼:R中的digamma函數的根
dig = function(alpha){
digamma(2 + alpha) - digamma(alpha) - (1/(2+alpha)) + (2/(2+alpha))
}
curve(dig, from = 0, to = 10)
uniroot(dig, lower = 0, upper = 10)
這將產生以下錯誤:
Error in uniroot(dig, lower = 0, upper = 10) : f.lower = f(lower) is NA
In addition: Warning messages:
1: In digamma(alpha) : NaNs produced
2: In digamma(alpha) : NaNs produced
的第一個錯誤排序使得基於該曲線感,但第二個有我卡住了。我完全有可能誤解如何找到digamma函數的根源,或者在R中有一個數值包(也許是rootolve?),這可能會有所幫助。不知道我錯過了什麼 - 任何提示將不勝感激。謝謝!
'伽馬。 – MichaelChirico
...還有你的'dig(0)'返回'NaN'。從曲線上可以清楚地看出,(0,10)間隔內沒有任何根,所以不要理解爲什麼你使用'uniroot'。 – nicola