gammainv()Excel函数的替代方法?

我相信我遇到Excel 2007的gammainv函数的问题。对于input参数的某些组合,它返回#NUM! 错误。

gammainv函数返回伽马累积分布的反函数。

Syntax --> gammainv(probability,alpha,beta) 

例如:

 =gammainv(0.83,0.0977,25.849) '<-- gives this problem. 

使用相同的alpha和beta,问题也出现概率= 0.84和概率= 0.85,而不是所有其他的0.01增量值介于0和1之间。这是一个例子,也出现了其他概率,alpha和beta 。 这个例子在使用matlab的gaminv函数时没有问题。

我相信这个问题与这个问题有关: http : //support.microsoft.com/kb/215214

我的问题是否有解决这个问题。 我对……感兴趣:

  • 一些修复这个function在Excel 2007中
  • 一样的VBAfunction,但没有问题。
  • 任何其他导致缩小问题。
  • 任何解决方法,将帮助我评估实例作为提出的例子。

简单地将函数包装到调用IFERROR如下所示:

 =IFERROR(GAMMAINV(P,alpha,beta),GAMMAINV(P,alpha,beta)) 

问题是,Excel的GAMMAINVGAMMA.INV函数使用迭代algorithm,终止是解决scheme不会收敛在一定数量的迭代。 GAMMAINV必须在100次迭代内收敛 , GAMMA.INV必须在64次迭代内收敛 。

对于小参数,algorithm收敛速度更慢,因此具有更高的终止可能性,即#Num! 值。 幸运的是,通过在调用IFERROR中将调用包装为GAMMAINV (或GAMMA.INV ),可以指数性地减less非收敛的可能性。