如何解决scipy.interpolate.griddata为什么表现不佳?
我正在尝试使用来自scipy的griddata来插值翼型系数数据库中的值。基本上,数据库在不同的攻角和雷诺数下都有一组系数,我想在给定点之间线性插值。但是,当我针对原始点绘制插值时,它们的排列不是很好。看起来好像griddata仅使用外部点来定义插值。如何使用所有点进行插值?
这是来自我的数据集的结果(蓝色是数据,红色是插值):
这是另一个数据库的外观。请注意,它是如何完全切断右侧拱门的。
这是我的代码:
# Read in file
filename = sys.argv[-1]
data = np.genfromtxt(filename,skip_header=1)
N = data.shape[0]
# Plot CL vs first two dofs
fig = plt.figure()
ax = fig.gca(projection='3d')
for i in range(data.shape[0]):
ax.plot(data[i,0],data[i,1],-3],'b.')
ax.set_xlabel("Alpha [rad]")
ax.set_ylabel("Re")
ax.set_zlabel("CL")
# Get griddata prediction
alpha_max = np.max(data[:,0])
alpha_min = np.min(data[:,0])
Re_max = np.max(data[:,1])
Re_min = np.min(data[:,1])
for a in np.linspace(alpha_min,alpha_max,20):
for Re in np.linspace(Re_min,Re_max,20):
CL = interp.griddata(data[:,:2],data[:,np.array([[a,Re]])).item()
ax.plot(a,Re,CL,'r.')
解决方法
如果我用Re_max
对雷诺数进行归一化,则插值效果很好。标准化是一件好事。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。