gpt4 book ai didi

python - 如何最好地对 2D 点数据执行曲面积分?

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:35 25 4
gpt4 key购买 nike

我有一个 363 x × 190 y 点的数据集,具有相关的函数值,我将在多个不同的子区域进行集成。我试图创建一个 SciPy interp2d 函数集成;然而,即使使用线性插值创建该函数也花费了 2 个多小时(并且尚未完成)

执行此任务的更好方法是什么?

下面的一些片段......

在下面的 convert_RT_to_XY 函数中,imb/jmb 是我转换为笛卡尔边界的 r,theta 网格边界。

稍后,在我的代码中,我将网格边界 (imb/jmb) 转换为网格中心值 (imm,jmm),转换为向量 (iX, iY),将我的函数转换为向量 (iZ),然后尝试实现我的插值功能。


# Convert R, T mesh vectors to X, Y mesh arrays.                                                                       
def convert_RT_to_XY(imb, jmb):
R, T = np.meshgrid(imb,jmb)
X = R * np.cos(np.radians(T*360))
Y = R * np.sin(np.radians(T*360))
return(X, Y)

...

imm = imb[:-1]+np.divide(np.diff(imb),2)                                                                       
jmm = jmb[:-1]+np.divide(np.diff(jmb),2)
iX, iY = convert_RT_to_XY(imm, jmm)
iX = np.ndarray.flatten(iX)
iY = np.ndarray.flatten(iY)
iZ = np.ndarray.flatten(plot_function)
f = interpolate.interp2d(iX, iY, iZ, kind='linear')

最终,我想执行:

result = dblquad(f, 10, 30,
lambda x: 10,
lambda x: 30))

最佳答案

查看 SciPy 的 RectBivariateSpline .无论如何,如果您将数据放在笛卡尔网格上,它的执行速度将比 interp2D

快得多

关于python - 如何最好地对 2D 点数据执行曲面积分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104428/

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