如何在Python中做指数和对数的曲线拟合
在这篇文章中,我们将学习如何在Python中进行指数和对数的曲线拟合。首先,我们想到的问题是什么是曲线拟合?
曲线拟合是构建一条曲线或数学函数的过程,它与一系列数据点的拟合度最高,可能受到约束。
- 对数曲线拟合。对数曲线是对数函数的曲线图。
- 指数曲线拟合。指数曲线是指数函数的曲线图。
让我们考虑两个方程
y = alog(x) + b 其中a ,b是该对数方程的系数。
y = e (ax)*e(b) **其中a ,b**是该指数方程的系数。
我们将在上述方程上拟合两条曲线,并找到最佳拟合曲线。对于Python中的曲线拟合,我们将使用一些库函数
- numpy
- matplotlib.pyplot
我们还将使用numpy.polyfit()方法来拟合曲线。这个函数接收三个参数x、y和多项式degree(n),返回n次多项式的系数。
语法: numpy.polyfit(x, y, deg)
参数:
x ->x坐标
y ->y坐标
deg -> 拟合多项式的程度。所以,如果deg是1,我们得到线性多项式的系数,如果是2,我们得到二次多项式的系数。
对数曲线拟合
要做对数曲线拟合,我们必须遵循一些步骤,下面将解释这些步骤的实现。
导入 Libraries
创建/加载数据
由于我们已经导入了所需的库,我们必须创建两个名为x和y的数组。在创建这两个数组后,我们必须在numpy.log()方法的帮助下对x和y的值进行记录。
输出:
数据的拟合
在得到x和y数组的对数值之后,在numpy.polyfit()的帮助下,我们可以找到我们方程的系数。由于我们采取的是一个线性方程,因此在polyfit方法中,我们将在度数参数中传递1。
输出:
获取输出
所以我们得到的系数是[5.04, -10.79],我们可以得到曲线的方程是(y= a*log(x)+y,其中a,b是系数)。
输出:
Plotting 结果
现在,让我们用xlog_data和ylog_data绘制图表,用xlog_data和我们得到的y方程式绘制另一个图表。为了在python中绘制图形,我们将使用Matplotlib.pyplot.plot()函数的帮助。
语法: matplotlib.pyplot.plot(x-coordinates, y-coordinates)
参数:
x:数据点的横坐标
y:数据点的垂直坐标
输出:
在上图中,黄线代表原始x和y坐标图,蓝线是我们通过计算得到的坐标图,它是最适合的。
指数曲线拟合
我们将重复上面的过程,但唯一不同的是对数函数被指数函数取代。
首先,让我们创建数据点
输出:
在这个方程中,我们将绘制图形,a,b是系数,我们可以通过numpy.polyfit()方法获得。现在让我们找出指数函数的系数,其度数为 。
输出:
所以,a=0.69,b=0.085,这些是系数,我们可以得到曲线的方程,即(y=e(ax)*e(b),其中a,b是系数)。
输出:
现在,让我们在Matplotlib.pyplot.plot()函数的帮助下绘制图形。
输出:
在上图中,蓝线代表原始的x和y坐标图,橙线是我们通过计算得到的坐标图,它是最适合的。
因此,这就是在Python中借助NumPy和matplotlib来拟合指数和对数曲线的过程。