📜  python中的拟合函数(1)

📅  最后修改于: 2023-12-03 15:19:29.724000             🧑  作者: Mango

Python中的拟合函数

拟合函数是在给定数据点的情况下,拟合一个函数以描述数据的方法。在Python中,我们可以使用NumPy和SciPy库中的函数进行拟合。本文将介绍Python中的拟合函数及其用法。

NumPy中的多项式拟合函数

在NumPy库中,我们可以使用polyfit()函数进行多项式拟合。它的用法如下:

import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 5, 8, 13])

# 多项式拟合(二次方程)
coefficients = np.polyfit(x, y, 2)
print(coefficients)
# 输出: [ 0.85714286 -3.57142857  6.71428571]

# 拟合函数
f = np.poly1d(coefficients)
print(f)
# 输出:        2
# 0.8571 x - 3.571 x + 6.714

其中,polyfit(x, y, degree)函数中的xy参数分别为数据点的自变量和因变量,degree参数为拟合的多项式次数。polyfit()函数会返回一个数组,其中包括多项式系数从高到低排列。我们可以使用poly1d()函数将多项式系数转换为拟合函数。

SciPy中的曲线拟合函数

在SciPy库中,我们可以使用curve_fit()函数进行曲线拟合。它的用法如下:

from scipy.optimize import curve_fit
import numpy as np
import matplotlib.pyplot as plt

def f(x, a, b, c):
    return a*np.exp(-b*x) + c

x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([2.1, 1.6, 1.2, 0.9, 0.5, 0.2])

# 曲线拟合
popt, pcov = curve_fit(f, x, y)
print(popt)
# 输出: [2.18802979 0.41650468 0.13686917]

# 拟合函数
xfine = np.linspace(0, 5, 100)
yfine = f(xfine, *popt)

# 绘制拟合曲线
plt.plot(x, y, 'o', color='black')
plt.plot(xfine, yfine, color='red')
plt.show()

其中,curve_fit()函数中的f参数为拟合函数的定义,xy参数为数据点的自变量和因变量。curve_fit()函数会返回最佳拟合参数列表popt和协方差矩阵pcov。我们将最佳拟合参数传递给定义的拟合函数f,并根据计算得到的拟合曲线绘制图表。

结论

Python中的拟合函数有多种类型,可以应用于不同的数据集。我们可以根据需要选择适当的拟合函数,从而更好地描述数据。需要注意的是,使用拟合函数进行预测时,我们应该谨慎以待并考虑误差范围。