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

问题描述

我在三个维度的球体上有一组值。我想对它们进行数值积分,我听说 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

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...