Python进行指数和对数曲线拟合详解

 更新时间:2024年04月12日 10:38:29   作者:python收藏家  
曲线拟合是构造曲线或数学函数的过程,其具有对一系列数据点的最佳拟合,可能受到约束,本文主要介绍了如何使用Python实现指数和对数曲线拟合,需要的可以参考下

前言

在本文中,我们将学习如何在Python中进行指数和对数曲线拟合。首先我们要问的问题是什么是曲线拟合?

曲线拟合是构造曲线或数学函数的过程,其具有对一系列数据点的最佳拟合,可能受到约束。

  • 对数曲线拟合:对数曲线是对数函数的曲线图。
  • 指数曲线拟合:指数曲线是指数函数的曲线图。

让我们考虑两个方程

y = alog(x) + b 其中a、b是该对数方程的系数。

y = e(ax)*e(b)

我们将在上面的方程上拟合两条曲线,并找到最佳拟合曲线。对于Python中的曲线拟合,我们将使用一些库函数。

我们还将使用numpy.polyfit()方法来拟合曲线。这个函数有三个参数x,y,多项式次数(n)返回n次多项式的系数。

语法:numpy.polyfit(x,y,deg)

主要参数:

x-> x坐标

y-> y坐标

deg ->拟合多项式的阶数。因此,如果给定deg为1,我们得到线性多项式的系数,或者如果它为2,我们得到二次多项式的系数。

对数曲线拟合

import numpy as np

​​​​​​​# It is for plotting the curve
import matplotlib.pyplot as plt

由于我们已经导入了所需的库,因此必须创建两个名为x和y的数组。在创建这两个数组之后,我们必须在numpy.log()方法的帮助下获取x和y中的值的对数。

# Points on X-axis
x_data = np.array([11, 23, 31, 43, 51]) 

# Points on Y-axis
y_data = np.array([2, 4, 6, 8, 10])	 

print(x_data)
print(y_data)

# Taking log of x values
xlog_data = np.log(x_data)			 

print(xlog_data)

输出

之后,得到x和y数组的对数值,在numpy.polyfit()的帮助下,我们找到了方程的系数。由于我们采用了线性方程,因此在polyfit方法中,我们将在度参数中传递1。

# Given log values of x , y as input
curve = np.polyfit(log_x_data, y_data, 1)

print(curve)

输出

所以我们得到系数为[5.04,-10.79],我们可以得到曲线的方程为(y= a*log(x)+y,其中a,b是系数)

y = 5.04 * log_x_data - 10.79 
 
print(y)

输出

现在,让我们用xlog_data,ylog_data绘制一个图,另一个用xlog_data和我们得到的y方程绘制一个图。为了在python中绘制图形,我们将使用Matplotlib.pyplot.plot()函数。

# Blue color
plt.plot(log_x_data, y_data)

​​​​​​​# Best fit in orange
plt.plot(log_x_data, y)

在上图中,黄线表示原始x和y坐标的图,蓝线是我们通过计算获得的坐标图,它是最佳拟合。

指数曲线拟合

我们将重复上述相同的过程,但唯一的区别是对数函数被指数函数取代。

x_data = np.array([11, 19, 31, 39, 51])
print(x_data)

y_data = np.array([5, 8, 32, 84, 110])
print(y_data)

ylog_data = np.log(y_data)
print(ylog_data)

​​​​​​​curve_fit = np.polyfit(x_data, log_y_data, 1)
print(curve_fit)

所以,a = 0.69和b = 0.085,这些是系数,我们可以得到曲线的方程,即(y = e(ax)*e(b),其中a,b是系数)

y = np.exp(0.69) * np.exp(0.085*x_data)
 
print(y)

现在,让我们在Matplotlib.pyplot.plot()函数的帮助下绘制图表。

# Blue 
plt.plot(x_data, y_data)

​​​​​​​# best fit in orange
plt.plot(x_data, y)

在上图中,蓝线表示原始x和y坐标的图形,黄线是我们通过计算获得的坐标图形,它是最佳拟合。

到此这篇关于Python进行指数和对数曲线拟合详解的文章就介绍到这了,更多相关Python曲线拟合内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python读写csv文件实例代码

    python读写csv文件实例代码

    在本篇文章中小编给各位分享了关于python读取和写入csv文件的知识点以及实例代码,需要的朋友们参考下。
    2019-07-07
  • Python中的进制转换详解

    Python中的进制转换详解

    这篇文章主要介绍了Python中的进制转换详解,python内置函数进行进制转换的原理是将读入的一个字符串(python默认读入的都是字符串形式)转为10进制,然后再用相关函数进行其他进制转换,需要的朋友可以参考下
    2023-08-08
  • 怎么使用python生成词云图

    怎么使用python生成词云图

    这篇文章主要给大家介绍了关于怎么使用python生成词云图的相关资料,词云图主要用途是将文本数据中出现频率较高的关键词以可视化的形式展现出来,使人一眼就可以领略文本数据的主要表达意思,需要的朋友可以参考下
    2023-06-06
  • python 猴子补丁(monkey patch)

    python 猴子补丁(monkey patch)

    这篇文章主要介绍了python 猴子补丁(monkey patch),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python统计字符串中英文字母、空格、数字和其它字符的个数

    Python统计字符串中英文字母、空格、数字和其它字符的个数

    这篇文章主要给大家介绍了关于Python统计字符串中英文字母、空格、数字和其它字符的个数的相关资料,本文实例讲述了python统计字符串中指定字符出现次数的方法,需要的朋友可以参考下
    2023-06-06
  • keras 简单 lstm实例(基于one-hot编码)

    keras 简单 lstm实例(基于one-hot编码)

    这篇文章主要介绍了keras 简单 lstm实例(基于one-hot编码),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 使用Python编写文件重复检查器的完整代码

    使用Python编写文件重复检查器的完整代码

    在日常工作中,我们经常需要处理大量文件,但有时候会遇到文件重复的情况,为了有效管理文件并避免重复占用存储空间,我们可以编写一个简单的Python程序来检查文件夹中是否存在重复文件,本文将介绍如何使用Python和其库来编写一个文件重复检查器
    2024-08-08
  • python 弧度与角度互转实例

    python 弧度与角度互转实例

    这篇文章主要介绍了python 弧度与角度互转实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python散点图双轴设置坐标轴刻度的实现

    python散点图双轴设置坐标轴刻度的实现

    散点图是一种常用的图表类型,可以用来展示两个变量之间的关系,本文主要介绍了python散点图双轴设置坐标轴刻度的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 分享一下Python 开发者节省时间的10个方法

    分享一下Python 开发者节省时间的10个方法

    在这篇文章,我想强调一些 Python 可以节约时间并最大限度地提高生产力的方面。在做准备时,我咨询了几个 Pythonists,他们最节省时间的技巧是什么?答案在这里
    2015-10-10

最新评论