[英]User Defined Function with For loop returning “#VALUE!” error
我正在嘗試創建一個用戶定義的函數,它返回給定x和n的Irwin-Hall分布的值。
我已經成功地使用每個n值的表計算了適當的值,計算了Irwin-Hall系列的相應項。 根據我的理解,這樣做的步驟與我希望我的代碼要做的相同。
Function IRWINHALLPDF(x As Double, n As Integer)
Dim IH As Double
Dim k As Integer
IH = 0
For k = 0 To n
IH = IH + (-1) ^ k * WorksheetFunction.Combin(n, k) * (x - k) ^ (n - 1) * WorksheetFunction.Sign(x - k)
Next k
IH = IH / (2 * WorksheetFunction.Fact(n - 1))
IRWINHALLPDF = IH
End Function
在工作表中使用時,函數返回#VALUE! 錯誤。 似乎每個工作表函數都在整個循環中恢復正確的輸入,所以我不明白為什么它會返回錯誤。
來自Axel Richter的回答,符號函數錯誤
Function IRWINHALLPDF(x As Double, n As Integer) As Double
Dim IH As Double
Dim k As Integer
IH = 0
For k = 0 To n
IH = IH + (-1) ^ k * WorksheetFunction.Combin(n, k) * (x - k) ^ (n - 1) * Sgn(x - k)
Next k
IH = IH / (2 * WorksheetFunction.Fact(n - 1))
IRWINHALLPDF = IH
End Function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.