我正在尝试在 Python 中集成以下功能,
,
在哪里是 beta 函数 -.
由于上面的函数不能直接积分scipy.integrate
,所以我改变了变量,拥有
.
scipy.integrate.dblquad(lambda y,x: 1/ scipy.special.beta(-math.log(x),-math.log(y) ), 0, 1, lambda x: 0, lambda x: 1)
返回有错误的顺序. 但是在 Mathematica 中集成上述函数(有和没有变量的变化)(使用NIntegrate
)返回. 当python返回答案时,我不明白答案的巨大差异准确性。发生了什么?有没有更好的方法将它集成到 python 中?作为用 python 编写的算法的一部分,我计划多次执行集成。
看起来像这样
编辑
使用 Windows 10 和 Anaconda 的人可以重现我得到的结果吗?
我使用 Windows 10、Python 3.5.2 |Anaconda 4.3.0(64 位)、scipy 版本 0.18.1 得到了不正确的答案。我不确定 BLAS 链接。
我使用 Python 2.7.12,scipy 版本 0.18.1 在 Linux 中得到正确答案