Мотивация для вопроса
Я пытаюсь интегрировать функцию f (x, y, z) по всему пространству.
Я попытался использовать scipy.integrate.tpl x_integral = quad ( f , - np . Inf , np . Inf ) y_integral = quad ( x_integral , - np . Inf , np . Inf ) z_integral = quad ( y_integral , - np . Inf , np . inf ) & scipy.integrate.nquad для интеграции, но оба метода возвращают интеграл как 0 (когда интеграл должен быть конечным). Это связано с тем, что по мере увеличения объема интеграции область, в которой подынтегральное выражение отлична от нуля, все меньше и меньше дискретизируется. Интеграл «пропускает» эту область пространства. Однако scipy.integrate.quad, похоже, способен справляться с интегралами из [-infinity, infinity], выполняя смену переменных ...
Вопрос
Можно ли использовать scipy.integrate.quad 3 раза для выполнения тройного интеграла. Код, который я имею в виду, будет выглядеть примерно так:
quad
где f - функция f (x, y, z), x_integral следует интегрировать из x = [- бесконечность, бесконечность], y_integral следует интегрировать из y = [- бесконечность, бесконечность], а z_integral следует интегрировать из z = [- бесконечность , бесконечность]. Я знаю, что quad хочет вернуть float, и поэтому не хочет интегрировать функцию f (x, y, z) по x, чтобы вернуть функцию y и z (как строка x_integral = ... из кода выше пытается сделать). Есть ли способ реализовать код выше?
благодаря
python,scipy,integrate,quad,