метод?
я есть этот 2-мерный интеграл с зависимыми пределами. Функция может быть определена в Python как
def func(gamma, u2, u3):
return (1-1/(1+gamma-u3-u2))*(1/(1+u2)**2)*(1/(1+u3)**2)
где пределыu3
от 0 доgamma
(положительное действительное число) и пределыu2
от 0 доgamma-u3
.
Как я могу реализовать это с помощьюscipy.integrate.nquad? Я пытался читать документацию, но это было нелегко, особенно я относительно новичок в Python.
Расширение: я хотел бы реализовать числовую интеграцию для arbiratyK
где подынтегральная функция в этом случае определяется как(1-1/(1+gamma-uk-....-u2))*(1/(1+uK)**2)*...*(1/(1+u2)**2)
, Я написал функцию, которая принимает динамическое число аргументов следующим образом:
def integrand(gamma, *args):
'''
inputs:
- gamma
- *args = (uK, ..., u2)
Output:
- (1-1/(1+gamma-uk-....-u2))*(1/(1+uK)**2)*...*(1/(1+u2)**2)
'''
L = len(args)
for ll in range(0, L):
gamma -= args[ll]
func = 1-1/(1+gamma)
for ll in range(0, L):
func *= 1/((1+args[ll])**2)
return func
Однако я не уверен, как сделать то же самое для диапазонов, где у меня будет одна функция для диапазонов, гдеuK
колеблется от 0 доgamma
, u_{K-1}
колеблется от 0 доgamma-uK
....u2
колеблется от 0 доgamma-uK-...-u2
.