【发布时间】:2025-12-09 10:35:01
【问题描述】:
我有两个对应于 x 和 y 值的数据数组,我想用三次样条插值。
我尝试过这样做,但我的插值函数没有通过我的数据点。
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
re = np.array([0.2,2,20,200,2000,20000],dtype = float)
cd = np.array([103,13.0,2.72,0.800,0.401,0.433],dtype = float)
plt.yscale('log')
plt.xscale('log')
plt.xlabel( "Reynold's number" )
plt.ylabel( "Drag coefficient" )
plt.plot(re,cd,'x', label='Data')
x = np.linspace(0.2,20000,200000)
f = interp1d(re,cd,kind='cubic')
plt.plot(x,f(x))
plt.legend()
plt.show()
我最终的结果是这样的;
这显然是我功能的糟糕表现。我在这里错过了什么?
谢谢。
【问题讨论】:
标签: python interpolation