我相信我遇到了Excel 2007的gammainv函数的问题。对于输入参数的某些组合,它返回#NUM!错误。
gammainv函数返回伽马累积分布的倒数。
Syntax --> gammainv(probability,alpha,beta)
例如:
=gammainv(0.83,0.0977,25.849) '<-- gives this problem.
使用相同的alpha和beta,问题也出现在概率= 0.84和概率= 0.85但不会出现在0和1之间的所有其他0.01增量值。这是一个例子,问题也出现在其他概率组合中, alpha和beta。使用matlab的gaminv
函数时,此示例可以正常工作。
我认为问题与此问题有关:http://support.microsoft.com/kb/215214
我的问题是否有解决此问题的方法。我对以下内容感兴趣:
答案 0 :(得分:0)
简单地将函数包含在对IFERROR
的调用中,如下所示:
=IFERROR(GAMMAINV(P,alpha,beta),GAMMAINV(P,alpha,beta))
问题是Excel的GAMMAINV
AND GAMMA.INV
函数使用迭代算法,终止是解决方案在一定数量的迭代中不收敛。 GAMMAINV
必须在100 iterations内收敛,而GAMMA.INV
必须在64 iterations内收敛。
对于小参数,算法收敛得更慢,因此具有更高的早期终止可能性,即具有#Num!
值。幸运的是,通过在GAMMAINV
的调用中将呼叫包裹到GAMMA.INV
(或IFERROR
),您可以指数级地降低不收敛的可能性。