如何在 Python 中进行指数曲线拟合
指数曲线通常具有以下形式:
y=a⋅ebx
其中,$a$ 和 $b$ 是常数,$e$ 是自然常数,$x$ 是自变量,$y$ 是因变量。指数曲线通常用于描述增长或衰减趋势,例如人口增长、病例增长等。
在 Python 中,可以使用SciPy库的 optimize.curve_fit()
函数进行指数曲线拟合。
以下是使用 optimize.curve_fit()
函数进行指数曲线拟合的步骤:
导入所需的库:
from scipy.optimize import curve_fit
import numpy as np
定义指数函数:
def exponential_func(x, a, b, c):
return a * np.exp(-b * x) + c
其中,x是自变量,a、b、c是拟合参数。
定义实验数据:
x_data = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
y_data = np.array([3.3, 2.4, 1.7, 1.2, 0.8])
进行指数曲线拟合:
popt, pcov = curve_fit(exponential_func, x_data, y_data)
其中,popt是拟合参数的值,pcov是拟合协方差矩阵。
输出拟合参数的值:
print(popt)
这将打印出拟合参数的值。
完整代码如下所示:
from scipy.optimize import curve_fit
import numpy as np
def exponential_func(x, a, b, c):
return a * np.exp(-b * x) + c
x_data = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
y_data = np.array([3.3, 2.4, 1.7, 1.2, 0.8])
popt, pcov = curve_fit(exponential_func, x_data, y_data)
print(popt)
输出结果为:
[3.25817096 0.45428451 0.87870798]
其中,第一个值为a的拟合参数,第二个值为b的拟合参数,第三个值为c的拟合参数。
注意:如果数据中有NaN值,需要先进行数据清洗处理。可以使用numpy库的 isnan()
函数检查数据是否为NaN值。
相关文章
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 系列日期时间转换为字符串