使用Python最小二乘法拟合曲线可以帮助我们找到一条最佳的曲线拟合数据集,下面是具体操作步骤:
步骤一:导入必要的库
在使用Python最小二乘法拟合曲线需要导入以下库:
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
numpy
: 用于创建和处理多维数组以及进行计算。matplotlib.pyplot
: 用于绘制图表。scipy.optimize
: 用于进行最小二乘拟合。
步骤二:准备数据
在导入库之后,需要准备要拟合的数据。这里我们以二次函数为例。
x = np.array([1, 2, 3, 4, 5])
y = np.array([2.5, 5.7, 7.8, 11.2, 13.5])
首先,我们创建两个含有五个元素的数组 x 和 y,x 中的元素为 1-5,y 中的元素为 x 中对应元素的平方加上 0-1 之间的随机小数,这样我们就得到了一个数据集,其实际曲线是 y = x^2。
步骤三:定义函数
def func(x, a, b, c):
return a * x ** 2 + b * x + c
在定义函数时要使用 def
关键字,并将函数名和变量名用括号括起来。在此处定义的函数中,x 是数据集,a、b 和 c 是三个要拟合的参数。
步骤四:最小二乘拟合
popt, pcov = curve_fit(func, x, y)
在调用 curve_fit
函数时,需要传入以下三个参数:
- 要拟合的函数
func
。 - 数据集中的 x 值。
- 数据集中的 y 值。
函数会返回两个数组:popt 和 pcov。
步骤五:绘制图表
plt.plot(x, y, 'o', label='data')
plt.plot(x, func(x, *popt), label='fit')
plt.legend()
plt.show()
在绘制图表之前,我们需要通过使用 plot
函数来创建散点图。此函数的第一个参数是 x 值,第二个参数是 y 值,'o' 表示点状图,而 'fit' 表示最小二乘拟合线。
示例1: 一次函数拟合
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 5, 7, 8])
def func(x, a, b):
return a * x + b
popt, pcov = curve_fit(func, x, y)
plt.plot(x, y, 'o', label='data')
plt.plot(x, func(x, *popt), label='fit')
plt.legend()
plt.show()
示例2: 指数函数拟合
x = np.linspace(0, 4, 50)
y = np.exp(-x)
def func(x, a, b, c):
return a * np.exp(-b * x) + c
popt, pcov = curve_fit(func, x, y)
plt.plot(x, y, 'o', label='data')
plt.plot(x, func(x, *popt), label='fit')
plt.legend()
plt.show()
以上是使用Python最小二乘法拟合曲线代码详解的完整步骤,可根据需求修改示例数据集以拟合不同的函数类型。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用Python最小二乘法拟合曲线代码详解 - Python技术站