gpt4 book ai didi

python - 使用 SciPy 在矩形网格上集成 2D 样本

转载 作者:太空狗 更新时间:2023-10-29 16:55:18 26 4
gpt4 key购买 nike

SciPy 有三种对样本进行一维积分的方法(trapz、simps 和 romb)和一种对函数进行二维积分的方法 (dblquad),但它似乎没有进行二维积分的方法超过样本——甚至是矩形网格上的样本。

我看到的最接近的是 scipy.interpolate.RectBivariateSpline.integral——您可以从矩形网格上的数据创建一个 RectBivariateSpline,然后对其进行积分。但是,这并不是很快。

我想要比矩形方法更准确的方法(即只是总结所有内容)。比方说,我可以使用 2D Simpson 规则,方法是创建一个具有正确权重的数组,将其乘以我想要积分的数组,然后对结果求和。

但是,如果已经有更好的东西,我不想重新发明轮子。有吗?

最佳答案

两次使用一维规则。

>>> from scipy.integrate import simps
>>> import numpy as np
>>> x = np.linspace(0, 1, 20)
>>> y = np.linspace(0, 1, 30)
>>> z = np.cos(x[:,None])**4 + np.sin(y)**2
>>> simps(simps(z, y), x)
0.85134099743259539
>>> import sympy
>>> xx, yy = sympy.symbols('x y')
>>> sympy.integrate(sympy.cos(xx)**4 + sympy.sin(yy)**2, (xx, 0, 1), (yy, 0, 1)).evalf()
0.851349922021627

关于python - 使用 SciPy 在矩形网格上集成 2D 样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20668689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com