Gnuplot:不完整的β函数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gnuplot:不完整的β函数。相关的知识,希望对你有一定的参考价值。
Gnuplot的 ibeta
函数的实现方式似乎是在接近域边界的常规输入上失败,但在接近域边界的情况下就不一致了。
例如,我得到以下结果(在 Gnuplot 5.2 patchlevel 8 上)。
gnuplot> print ibeta(.1,1e-3,.93), ibeta(.1,1e-3,.94), ibeta(.1,1e-3,.95)
0.0123146537078641 0.0124763579765399
gnuplot> print ibeta(.1,1e-3,.93), ibeta(.1,1e-3,.94), ibeta(.1,1e-3,.95)
^
undefined value
或者,更奇怪的是:
gnuplot> print ibeta(.1,5e-3,.93)
0.0591743782874705
gnuplot> print ibeta(.1,5e-3,.95)
gnuplot> print ibeta(.1,5e-3,.95)
^
undefined value
gnuplot> print ibeta(.1,5e-3,.99)
0.0685440281786021
有没有办法改变一些敏感度阈值或其他什么东西,让gnuplot在更接近边界的地方进行计算?
答案
恐怕不是。ibeta当前的gnuplot实现使用的是持续的分数近似,在有效域中存在已知的限制。从当前的文档中。
gnuplot> help ibeta
The `ibeta(p,q,x)` function returns the incomplete beta function of the real
parts of its arguments. p, q > 0 and x in [0:1]. If the arguments are
complex, the imaginary components are ignored. The function is approximated by
the method of continued fractions (Abramowitz and Stegun, 1964).
The approximation is only accurate in the region x < (p-1)/(p+q-2).
你所显示的参数不在这个限制域内。
现在gnuplot有一个开发分支,其重点是更新对复杂函数的支持,更新更高精度的算法,以及扩展的特殊函数集。我不期望这能在短时间内登陆新的版本,但我会将 ibeta()添加到更新的候选函数列表中,如果它还没有的话。
以上是关于Gnuplot:不完整的β函数。的主要内容,如果未能解决你的问题,请参考以下文章