python拟合数据,并通过拟合的曲线去预测新值的方法

时间:2023-03-09 18:09:47
python拟合数据,并通过拟合的曲线去预测新值的方法
from scipy import interpolate
import matplotlib.pyplot as plt
import numpy as np

def f(x):
    x_points = [ 0, 1, 2, 3, 4, 5]
    y_points = [0,1,4,9,16,25]  #实际函数关系式为:y=x^2

    xnew = np.linspace(min(x_points),max(x_points),100) #新制作100个x值。(等差、list[]形式存储)

    tck = interpolate.splrep(x_points, y_points)
    ynew = interpolate.splev(xnew, tck) #通过拟合的曲线,计算每一个输入值。(100个结果,list[]形式存储)

    plt.scatter(x_points[:], y_points[:], 25, "red") #绘制散点
    plt.plot(xnew,ynew) #绘制拟合曲线图
    plt.show()
    return interpolate.splev(x, tck)

print(f(10))

结果:

python拟合数据,并通过拟合的曲线去预测新值的方法

参考资料:

https://*.com/questions/31543775/how-to-perform-cubic-spline-interpolation-in-python

https://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html