计算不规则形状的偏导数

问题描述 投票:0回答:0

我特别感兴趣的是计算去除球形孔的立方体的偏导数。我将数据集导入为一维数组,然后通过定义网格并从网格中移除球体来对数据进行插值。然后我沿轴取偏导数。

import numpy as np

from scipy.interpolate import Rbf

##Process of importing x, y, z coordinates as 1D arrays
##and function values f at at those coordinate as 1D arrau

x_int_pts = np.linspace(-1,1,41)
y_int_pts = x_int_pts
z_int_pts = x_int_pts

X, Y, Z = np.meshgrid(x_int_pts, y_int_pts,z_int_pts)

radius = 0.5
r = np.sqrt(X**2 + Y**2 + Z**2)

outside = r > radius

interpolated_f = Rbf(x,y,z,f,function='linear')(X[outside], Y[outside], Z[outside])

gdfx = np.gradient(interpolated_f, x_int_pts, axis=1)
gdfy = np.gradient(interpolated_f, y_int_pts, axis=0)
gdfz = np.gradient(interpolated_f, z_int_pts, axis=2)

如果网格只是立方体,我会得到正确的偏导数。问题是必须修改我必须区分的点,以说明在球体体积内删除的点。

python interpolation gradient derivative finite-difference
© www.soinside.com 2019 - 2024. All rights reserved.