Числовая квадратура скалярной функции с векторным входом с использованием scipy - PullRequest
0 голосов
/ 26 февраля 2019

Я пытался использовать scipy.integrate.quadrature для интеграции скалярной функции, которая принимает в качестве входных данных вектор фиксированной размерности.Однако, несмотря на утверждение scipy.integrate.quadrature о том, что он может принимать функции с векторными входами, я не могу на всю жизнь понять, как сделать эту работу.

Возможно, я неправильно понимаю документацию для scipy.integrate.quadrature и когда она говорит, что функция может принимать векторные входы, это просто означает, что она способна оценивать функцию в нескольких точках одновременно (что не эквивалентно моей проблеме).

Более конкретно, я пытаюсь интегрировать по функции, f ( x ), где x - вектор, а f () отображает x к скаляру.Если верно, что моя первоначальная интерпретация scipy.integrate.quadrature неверна, знает ли кто-нибудь о каких-либо пакетах (написанных в python), которые могут вычислять интеграл так, как я упоминал?Я знаю, что есть нечто, называемое scipy.integrate.nquad, что, возможно, это то, что я ищу?Любое руководство или понимание здесь было бы замечательно.

1 Ответ

0 голосов
/ 07 марта 2019

Если ваша функция принимает в качестве входных данных векторное значение x, это означает, что ее область представляет собой некоторое подмножество n-мерного пространства.Что касается квадратуры, это делает его совершенно другим зверем, поэтому у вас возникают проблемы.

Какова ваша область интеграции?Прямоугольник в 3D?Мяч в 4D?Призма?Возможно, все пространство nD с весовой функцией, например, exp(-norm(x)^2)?(См. Рисунок ниже для графического представления правила интеграции в 3D.) В зависимости от этого, существуют различные правила интеграции.Проверьте quadpy (мой пакет Python).

enter image description here

...