Python 和 scipy 中的 Meijer G 函数

Meijer G-function in Python and scipy

我需要 scipy 中的 Meijer G 函数。我在网上看到,Meier G函数由于比较通用,scipy不支持作为特殊函数,大家还是根据自己的使用情况写点东西吧

我的问题是我对复杂的集成没有任何经验。由于此处禁止使用 LaTeX,因此我试图用数字求解:

(第一行是一般情况,第二行是我要计算的情况),给定 p(a), k, k2

wikipedia states,有3种方式得到L

如何得到 L 并求解积分?我用来计算实数积分的方法是

import numpy as np
myL = np.linspace(0, 1, 100)
densityL = myL[1] - myL[0]
myIntegral = (F(myL)*densityL).sum()

我不太追求效率,我更喜欢一个简单而缓慢的工作示例,我可以用它来理解方法论。

对于如此复杂的事情,我真的认为你应该避免自己计算积分,特别是如果你没有复杂积分的经验,并使用经过良好测试的现有实现。

Meijer G 函数在 mpmath and possibly in Sympy 中实现。

import sympy
print(sympy.functions.special.hyper.meijerg([[], [-1/(k-1)], [0, 0], []], -p/k2).evalf())
import mpmath
print(mpmath.meijerg([[], [-1/(k-1)], [0, 0], []], -p/k2))