迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

如何在 Python 中进行指数曲线拟合

作者:迹忆客 最近更新:2023/04/20 浏览次数:

指数曲线通常具有以下形式:

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值。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便