Numpy / Scipy: интеграция трехмерного массива точек или преобразование трехмерного массива точек в интегрируемую функцию f: IR x IR x IR -> IR - PullRequest
0 голосов
/ 16 октября 2019

Я использую сложный метод (т.е. я не могу переписать его в разумные сроки), который возвращает функцию, представленную в виде трехмерного массива. Базовая функция определена в трехмерном пространстве и возвращает значение с плавающей запятой для каждой точки в трехмерном пространстве. Так называемая скалярная функция. Теперь я хочу интегрировать эту функцию в прямоугольный объем. Как мне сделать это надежно?

Я потратил весь день, пытаясь это сделать, но это становится грязным. Поэтому я спрашиваю вас, можете ли вы дать рекомендацию. Я пытался:

(1) Поиск кода, который интегрирует 3D-функции из примеров / 3d-массива (как вы хотите назвать это). Я не нашел ничего полезного. Такие функции, как trapz() и simps(), работают только в 1D. Я ничего не нашел для 3D.

(2) Преобразуйте мою функцию из трехмерного массива в трехмерную интерполированную функцию. Я смог сделать это с помощью scipy.interpolate.RegularGridInterpolator(), но он не интегрируется с использованием scipy.integrate.tplquad() или любого другого подобного кода, который я пробовал. Это по-прежнему не удалось даже после использования оболочки, так что его выходные данные правильно отформатированы.

Что лучше в этом случае?

...