poly = np.polyfit(x, y, deg) 正个语法我不太会,可以举四个例子帮助我理解怎么运算的么
时间: 2024-05-30 10:13:56 浏览: 126
python多项式拟合之np.polyfit 和 np.polyld详解
当你调用 np.polyfit(x, y, deg) 时,函数将返回您需要的多项式系数。
举例说明:
例1:我们有一组数据点(x,y):(1,2), (2,3), (3,4), (4,5)。现在我们要拟合这些数据,其中 deg=1。也就是说,我们将使用一次多项式拟合数据。也就是线性回归模型拟合数据。
代码如下:
import numpy as np
x = np.array([1, 2, 3, 4])
y = np.array([2, 3, 4, 5])
poly = np.polyfit(x, y, 1)
print(poly)
输出结果:
[1. 1.]
意思是 y = 1x + 1。也就是说,我们使用一次多项式(直线)拟合数据时,得到的斜率为1,截距为1。
例2:我们有另一组数据点(x,y):(1,2), (2,3), (3,4), (4,5),现在我们要拟合这些数据,deg=3。也就是说,我们将使用三次多项式拟合数据。
代码如下:
import numpy as np
x = np.array([1, 2, 3, 4])
y = np.array([2, 3, 4, 5])
poly = np.polyfit(x, y, 3)
print(poly)
输出结果:
[ 1.00000000e+00 -6.07153217e-16 -4.28867739e-16 3.85714286e+00]
意思是 y = 1x^3 + 0x^2 + 0x + 3.85714286,也就是说,我们使用三次多项式拟合数据时,得到的系数。
例3:我们有一组数据点(x,y):(1,2), (2,3), (3,4),现在我们要拟合这些数据,deg=2。也就是说,我们将使用二次多项式拟合数据。
代码如下:
import numpy as np
x = np.array([1, 2, 3])
y = np.array([2, 3, 4])
poly = np.polyfit(x, y, 2)
print(poly)
输出结果:
[ 1.00000000e+00 -3.00000000e+00 4.00000000e+00]
意思是 y = 1x^2 - 3x + 4,也就是说,我们使用二次多项式拟合数据时,得到的系数。
例4:我们有一组数据点(x,y):(2,4), (4,6), (6,8),现在我们要拟合这些数据,deg=1。也就是说,我们将使用一次多项式拟合数据。
代码如下:
import numpy as np
x = np.array([2, 4, 6])
y = np.array([4, 6, 8])
poly = np.polyfit(x, y, 1)
print(poly)
输出结果:
[1. 2.]
意思是 y = 1x + 2,也就是说,我们使用一次多项式拟合数据时,得到的系数。
阅读全文