【问题标题】:Use Quadpy to numerically integrate sets of points on a Sphere使用 Quadpy 对球体上的点集进行数值积分
【发布时间】:2021-04-04 10:31:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: python numpy math numerical-integration


    【解决方案1】:

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

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

    sum(V_i f(x_i))
    

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

    【讨论】:

    • 谢谢!到目前为止,我只是在球坐标中使用梯形方法对 phi 和 theta 进行积分,但我会尝试你的建议和比较!
    • 这也是个好主意。也许甚至更好。记住由于坐标变换而产生的$r$。
    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 2013-08-24
    • 2015-02-20
    • 2016-12-13
    • 1970-01-01
    • 2013-12-16
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多