使用 Quadpy 对球体上的点集进行数值积分

Use Quadpy to numerically integrate sets of points on a Sphere

我在球体上有一组三个维度的值。我想对它们进行数值积分,我听说 quadpy 提供了良好的速度和功能。但是,我没有功能

def func(x, y, z):
   do something
   return f 

我可以将其传递给 quadpy。我能否仅以某种方式使用它的积分将我的一组点与他们的一个方案进行数值积分?否则,如果有人知道一个好的、快速的 numpy 或 scipy 替代方案,我也可以接受。

quadpy 作者在这里。 quadpy中的所有方法都是高斯积分。这意味着您 必须 能够在给定点评估函数。 (高斯积分的神奇之处在于如何选择点。)

如果你在这里和那里只有数值数据,你能做的最好的可能是形成 Voronoi 单元格,即,对于每个点 i 计算最接近该点的面积 V_i , 然后

sum(V_i f(x_i))

作为近似值,您可以使用 meshzoo 创建球形网格并将三角形分配给最接近的 x_i