1

假设我有

t= [0,7,10,17,23,29,31]

f_t= [4,3,11,19,12,9,17]

我已经绘制了 f_t vs t。

现在通过绘制这 7 个数据点,我想检索 100 个数据点并将它们保存在一个文本文件中。我需要做什么?

请注意,我不是在询问情节的拟合;我知道两点之间的情节是线性的。

我在问什么如果我创建一个类似的数组t=np.arange(0,31,.1),那么与前面的图非常吻合的 f_t 的对应数组是什么,即对于 t=0 到 t=7 之间的任何 t,f_t 将通过使用直线来确定连接 (0,4) 和 (7,3),依此类推。

4

2 回答 2

2

您应该使用线性回归,它为您提供一个直线公式,您可以在其中掌握任意数量的点。

如果这条线更像是一条曲线,那么您应该尝试进行更高阶的多项式回归。

IE:

import pylab
import numpy

py_x =  [0,7,10,17,23,29,31]

py_y = [4,3,11,19,12,9,17] 

x = numpy.asarray(py_x)
y = numpy.asarray(py_y)

poly = numpy.polyfit(x,y,1) # 1 is the degree here. If you want curves, put 2, 3 or 5...

poly 现在是您可以用来计算其他点的多项式。

for z in range(100):
    print numpy.polyval(poly,z) #this returns the interpolated f(z)
于 2013-04-09T17:37:18.353 回答
1

该函数np.interp将在您的数据点之间进行线性插值:

f2 = np.interp(np.arange(0,31,.1), t, ft)
于 2013-04-09T17:53:19.810 回答