如何用 Python 做指数和对数曲线拟合?
原文:https://www . geeksforgeeks . org/如何在 python 中进行指数和对数曲线拟合/
在本文中,我们将学习如何在 Python 中进行指数和对数曲线拟合。首先我们想到的问题是什么是曲线拟合?
曲线拟合是构建曲线或数学函数的过程,对一系列数据点具有最佳拟合,可能会受到约束。
- 对数曲线拟合:对数曲线是对数函数的图。
- 指数 曲线拟合:指数曲线是指数函数的图。
让我们考虑两个方程
y = alog(x) + b 其中 a,b 是对数方程的系数。
y = e (ax)*e(b) 其中 a,b 是指数方程的系数。
我们将在上述方程上拟合两条曲线,并为其找到最佳拟合曲线。对于 Python 中的曲线拟合,我们将使用一些库函数
- num py
- matplotlib.pyplot
我们还将使用 numpy.polyfit()方法来拟合曲线。这个函数采用三个参数 x,y,多项式次数(n)返回 n 次多项式的系数。
语法: numpy.polyfit(x,y,deg)
参数:
- x - > x 坐标
- y - > y 坐标
- 度 - >次拟合多项式。所以,如果 deg 为 1,我们得到线性多项式的系数,或者如果它为 2,我们得到二次多项式的系数。
对数曲线拟合
为了进行对数曲线拟合,我们必须遵循下面解释的一些步骤。
导入库
计算机编程语言
import numpy as np
# It is for ploting the curve
import matplotlib.pyplot as plt
创建/加载数据
由于我们已经导入了所需的库,我们必须创建两个名为 x 和 y 的数组。在创建这两个数组后,我们必须借助 numpy.log()方法记录 x 和 y 中的值。
Python 3
# 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 度参数。
Python 3
# 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) - 10.79
Python 3
y = 5.04 * log_x_data - 10.79
print(y)
版权属于:月萌API www.moonapi.com,转载请注明出处