Тройная интеграция с использованием квадратур Boost в C ++ - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь написать процедуру тройной интеграции в C ++, используя квадратуру Boost Gauss-Kronrod для функции, возвращающей сложный результат. Я не настроен на библиотеку Boost, если есть другая библиотека, которая соответствует моим требованиям, лучшие предложения приветствуются .Я ищу альтернативу scipy, поскольку она не поддерживает интегрирование, возвращающее сложные значения, то есть мне нужно интегрировать дважды (сложная и действительная части), и я ищу более быстрый метод.

Scipy.integrate предоставляетtplquad функция, которая объединяет f (x, y, z).Интервал интегрирования может быть даже задан как лямбда-функция, поэтому возможна интеграция по сферической области.У Сципи также есть nquad, который может интегрироваться по n измерениям.До сих пор мне не удалось написать что-то похожее на C ++, так как интеграция наддува не имеет параметра args, позволяющего мне передавать дополнительные аргументы функции.В Python с подпрограммой интеграции quad 1D от scipy я мог передать текущие значения y, z в интеграцию x.

Этот ответ содержит код, который показывает, что я думаю делать в C ++, используя 1D процедуру интеграции для 3D интеграции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...