在 Python 中进行指数和对数曲线拟合
曲线拟合是一种非常有效的工具,广泛用于分析。曲线拟合方法研究自变量(也称为预测变量)和因变量(称为响应变量)之间的关系。该方法旨在提供最合适的模型来拟合一定数量的数据点。
曲线拟合有两种类型:
- 对数曲线拟合
- 指数曲线拟合
在本教程中,我们将向你展示如何在 Python 中进行对数曲线拟合和指数曲线拟合的方法。
Python 中用于对数和指数曲线拟合的库和模块
让我们讨论可用于执行程序的可能的库和模块。
NumPy 库
我们将使用 NumPy
库中的函数如下。
array()
- 此函数用于创建一个NumPy
数组,该数组是一组相同类型的值,并具有元组形式的索引值。log()
- 这个函数更像是一种数学运算,可以帮助计算一个数字的自然对数。该数字是输入数组元素的一部分。exp()
- 该函数也是一个数学运算,用于计算输入NumPy
数组中存在的元素的指数。polyfit()
- 此函数有助于在多项式函数中拟合任何数据。它对多项式拟合进行最小二乘。
Matplotlib 库
Matplotlib
库主要用于 Python 绘图。这个库通常用于在 Python 中创建可视化。本教程中使用了该库中的一个模块,称为 pyplot
模块。
Matplotlib
库的 pyplot
模块是一个开源模块,有助于使 Matplotlib
库像 MATLAB 一样工作。该模块有很多功能可以帮助我们进行创建绘图区域、在绘图上创建标签等操作。
对数曲线拟合
顾名思义,这里绘制了对数方程。让我们直接跳到将在 Python 中进行对数曲线拟合的代码。
import numpy as np
x = np.array([5, 10, 15, 20, 25])
y = np.array([3, 6, 9, 12, 15 ])
log_x = np.log(x)
log_y = np.log(y)
coefficients = np.polyfit(log_x, y, 1)
print(coefficients)
输出:
[ 7.2647162 -9.64806344]
对于绘图,请遵循此程序。
import matplotlib.pyplot as plt
c = 7.26 * log_x - 9.64
plt.plot(log_x, y, "o")
plt.plot(log_x, c)
输出:
在上面的程序中,我们首先导入必要的库。之后,我们创建两个 NumPy
数组作为我们的主要数据。然后,我们计算两个数组中元素的对数值。我们将 polyfit()
函数用于 x
和 y
数组的对数值。使用 polyfit()
函数,返回对数方程的系数。
- 获得系数后,我们在对数方程中使用这些系数来绘制曲线。
- 最后,我们使用
Matplotlib
库的pyplot
模块的plot()
函数绘制图形。
指数曲线拟合
顾名思义,这里绘制了指数方程。让我们直接跳到将在 Python 中进行指数曲线拟合的代码。
import numpy as np
a = np.array([6, 12, 18, 24, 30])
b = np.array([4, 8, 12, 16, 20])
log_a = np.log(a)
log_b = np.log(b)
coefficients = np.polyfit(a, log_b, 1)
print(coefficients)
输出:
[0.06520038 1.17018581]
对于绘图,这是你可以遵循的代码片段。
c = np.exp(1.17) * np.exp(0.06*a)
plt.plot(a, b, "o")
plt.plot(a, c)
输出:
遵循与我们在对数曲线拟合中所做的相同的过程。但在这里,使用指数函数而不是对数函数。因此,polyfit()
函数返回的系数在指数函数方程中传递。
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn