如何在 Python 中进行对数曲线拟合
在 Python 中,可以使用 numpy 和 scipy 库来进行对数曲线拟合。
导入库
首先,需要导入 numpy 和 scipy 库,以及要使用的其他库:
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
定义对数函数
接下来,需要定义要拟合的对数函数。对于任意自变量 x,对数函数的一般形式为:
y = a * np.log(x) + b
其中,a 和 b 是拟合参数。
在定义函数之前,可以创建一些模拟数据来测试拟合过程:
x = np.array([1, 2, 3, 4, 5])
y = np.array([0.1, 0.3, 0.7, 1.5, 1.9])
进行对数曲线拟合
使用 curve_fit
函数进行拟合。该函数需要两个参数:要拟合的函数和数据:
popt, pcov = curve_fit(func, x, y)
其中,popt 是一个包含拟合参数的数组,pcov 是协方差矩阵。可以使用 popt 来访问拟合的参数。
绘制拟合曲线
绘制拟合曲线可以使用以下代码:
xfit = np.linspace(1, 5, 100)
yfit = func(xfit, *popt)
plt.plot(x, y, 'o', label='data')
plt.plot(xfit, yfit, label='fit')
plt.legend()
plt.show()
完整代码如下:
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
def func(x, a, b):
return a * np.log(x) + b
x = np.array([1, 2, 3, 4, 5])
y = np.array([0.1, 0.3, 0.7, 1.5, 1.9])
popt, pcov = curve_fit(func, x, y)
xfit = np.linspace(1, 5, 100)
yfit = func(xfit, *popt)
plt.plot(x, y, 'o', label='data')
plt.plot(xfit, yfit, label='fit')
plt.legend()
plt.show()
运行代码,将会得到一条拟合曲线,可以与原始数据进行比较。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串