Как сделать этот интеграл, используя tplquad, dblquad в Python? - PullRequest
0 голосов
/ 28 июня 2018

Как выполнить этот вид интеграла в Python, используя scipy:

$$\int_{0}^{1} f(x) \, dx \int_{0}^{x} g(y) \, dy \int_{0}^{x} h(z) \,dz $$

Пробовал с помощью tplquad, но я думаю, что тот факт, что два внутренних интеграла являются независимыми функциями от x, я не могу кодировать.

1 Ответ

0 голосов
/ 28 июня 2018

SciPy's tplquad ожидает функцию как минимум трех аргументов в порядке (z, y, x). Нет ничего проще, чем это:

def fgh(z, y, x):
    return f(x)*g(y)*h(z)

Для указания границ lambda функции весьма полезны. Пример кода для квадратуры тогда гласит:

tplquad(fgh, a=0,               b=1, \
             gfun=lambda x:0,   hfun=lambda x:x, \
             qfun=lambda x,y:0, rfun=lambda x,y:x)
...