Python中的NumPy Polyfit

2025年1月5日 | 阅读6分钟

引言

在本教程中,我们将学习 Python 中的 NumPy polyfit。Python 中的 Numpy polyfit() 是将数据拟合到多项式函数的一种方法。换句话说,它执行适用于多项式函数的最小二乘运算。例如,degree 表面上的多项式 p(X) 拟合了坐标点 (X, Y)。此函数返回系数向量 p,并将平方误差减小到 deg、deg-1、...0 的顺序。然而,在最小二乘法拟合误差的情况下,polyfit 会发出 RankWarning。这意味着由于数值误差,需要识别最佳拟合。通过将 x 替换为 x-mean(x) 或降低多项式的次数可以改善结果。

语法

NumPy polyfit 在 Python 中的语法如下所示:

参数

NumPy polyfit 在 Python 中的参数如下所示:

  1. x: 此参数是一个大小为 (M) 的数组。M 个样本 (x[i], y[i]) 表示 x 坐标值。
  2. y: 此参数类似于大小为 (M) 或 (M, K) 的数组。它表示 (x[i], y[i]) 的 M 个样本 y 坐标值。
  3. deg: 它表示一个整数值,即拟合多项式的次数。
  4. rcond = None: 浮点值被认为是可选的。此参数表示拟合的相对条件值。可以避免小于最大值的各个数字。len(x) * 是 ep rcond 的原始值。这里,ep 是浮点类型的相对精度。通常,此值为 2e-16。
  5. full = False: 它表示一个可选的布尔值。这被认为是负责返回值性质的变量。如果值为 false,则返回系数。如果此值为 true,则返回用于数值解析的诊断数据。
  6. w = None: 此参数在形状 (M) 和大小方面类似于数组。此参数对样本点的 y 坐标进行加权。在高斯不确定性的情况下,应使用 1/sigma 1/sigma ** 2。
  7. cov = False: 此参数选择为布尔值。这是一个可选参数。此参数与估计的协方差矩阵一起返回估计值。如果 full 值为 true,则不返回此参数。

返回值

NumPy polyfit 在 Python 中的返回值如下所示:

  1. p: 此参数是一个形状为 (deg + 1, ) 或 (deg + 1, K) 的 ndarray。这是前面提到的最高次幂的多项式系数。如果 Y 的值为二维,则第 k 个数据集的系数设置为 p[:,k]。此外,仅当 total 值为 true 时,才返回列表 [residuals, rank, singular_values, rcond]。这里,residuals 是拟合到 Rank 的最小二乘残差,缩放的 Vandermonde 系数矩阵是 rank、奇异值和 rcond 值。
  2. V: 值是一个包含图像 (M, M) 或 (M, M, K) 的数组。仅当 full 值为 false 且 cov 值为 true 时,才返回此值。多项式系数估计 - 协方差矩阵。

NumPy polyfit 函数在 Python 中的工作原理是什么?

现在,让我们看看如何在 Python 中提供的标准 numpy 库中使用 polyfit 函数拟合多项式数据。假设一些信息包含在多项式中。这在文件中找到,该文件使用 polyfit() 函数来拟合多项式。一阶多项式是最简单已知多项式。使用方程 y = m * x + c 表示。类似地,二阶方程的二次方程表示为 Y = ax**2 + bx + c。

在这种情况下,polyfit 方法将找到所有一次系数 m 和 c 以及二次系数 a、b 和 c。

程序代码 1

这里我们提供了 NumPy polyfit 函数在 Python 中的程序代码。代码如下所示:

输出

现在我们运行上面的代码并从中找到绘图。在上面的程序代码中,首先导入 matplotlib 和 numpy 库。设置 a、b、p 和 t 值。然后通过使用 a、b、p 和 t 值拟合多项式进行绘制。输出如下所示:

NumPy Polyfit in Python

程序代码 2

现在我们提供 NumPy polyfit 函数在 Python 中的另一个程序代码。代码如下所示:

输出

现在我们运行上面的代码并从中找到绘图。在上面的程序代码中,我们首先在 Python 中导入 matplotlib 和 numpy 库。设置 a 和 b 值。然后评估多项式并设置新的 a 和 b 值。完成此操作后,使用 polyfit() 函数拟合多项式。输出如下所示:

NumPy Polyfit in Python

程序代码 3

现在我们提供 NumPy polyfit 函数在 Python 中的另一个程序代码。代码如下所示:

输出

现在我们运行上面的代码并从中找到绘图。在程序代码中,我们使用 x(从 0 到 30 的线性间隔元素)和 b (a** 2) 创建数据,并以这种形式准备。将此数据集拟合到二阶多项式的方程是 (ax**2 + bx + c)。这些结果可能代表我们的多项式函数与数据点的最佳拟合。当我们使用线性回归模型尝试线性回归模型以找到值 30 时,结果是 60.00000000000004。输出如下所示:

The X points are: 
 [ 0  3  6  9 12 15 18 21 24 27]
The Y points are: 
 [ 0  6 12 18 24 30 36 42 48 54]
The Coeficient values are:
 [ 1.79757342e-18 -3.82547508e-17  2.00000000e+00 -1.58112684e-14]

The given a_test value is:  30

The predicted b_pred value is:  60.00000000000004


NumPy Polyfit in Python

结论

因此,在本教程中,我们学习了 Python 中的 NumPy polyfit。Numpy polyfit() 是 Python 中的一种方法,可用于将数据拟合到多项式函数。NumPy polyfit() 函数接受 3 个参数,分别是 x 坐标、y 坐标和方程的次数。polyfit() 函数返回一个长度等于 degree +1 的数组。这里,函数多项式执行适当的最小二乘运算。也就是说,degree 表面上的多项式 p(X) 适应坐标点 (X, Y)。本教程详细解释了 polyfit() 函数的各个方面,例如其语法、参数、工作原理和示例。通过一些例子,我们通过拟合直线来理解 polyfit() 的值。总之,我们使用 NumPy polyfit() 函数生成的系数执行线性回归。