Я только что реализовал векторизованную адаптивную квадратуру для 1D и 2D доменов в quadpy .Все, что вам нужно предоставить, - это триангуляция вашего домена и функции, которую вы хотите интегрировать.Может иметь векторное значение.
Установить quadpy с
pip3 install quadpy --user
и запустить
import numpy
import quadpy
triangles = numpy.array([
[[0.0, 0.0], [1.0, 0.0]],
[[1.0, 0.0], [1.0, 1.0]],
[[0.0, 1.0], [0.0, 1.0]],
])
val, error_estimate = quadpy.triangle.adaptive_integrate(
lambda x: [numpy.sin(x[0]), numpy.exp(x[0])],
triangles,
1.0e-10
)
print(val)
print(error_estimate)
Это дает
[ 0.45969769 1.71828183]
[ 7.10494337e-12 3.68776277e-11]