python中polyfit、poly1d函数 | 您所在的位置:网站首页 › python中polyfit函数 › python中polyfit、poly1d函数 |
python中polyfit、poly1d函数
原创
缥缈峰虚竹 2021-07-29 11:23:16 博主文章分类:Python ©著作权 文章标签 分享 文章分类 代码人生 ©著作权归作者所有:来自51CTO博客作者缥缈峰虚竹的原创作品,请联系作者获取转载授权,否则将追究法律责任 python中polyfit、poly1d函数 一、polyfit函数 函数原型np.polyfit(x,y,num) 可以对一组数据进行多项式拟合 下面举个例子说明: 其中:np.polyval(p,x)计算多项式的函数值。返回在x处多项式的值,p为多项式系数 import matplotlib.pyplot as plt import numpy as np # 构建噪声数据xu,yu xu = np.random.rand(50) * 4 * np.pi - 2 * np.pi def f(x): return np.sin(x) + 0.5 * x yu = f(xu) plt.figure(figsize=(8, 4)) # 用噪声数据xu,yu,得到拟合多项式系数,自由度为5 reg = np.polyfit(xu, yu, 5) # 计算多项式的函数值。返回在x处多项式的值,p为多项式系数,元素按多项式降幂排序 ry = np.polyval(reg, xu) # 原先函数绘制 plt.plot(xu, yu, 'bo', label='f(x)')#蓝色虚线 # 拟合绘制 plt.plot(xu, ry, 'r.', label='regression')#红色点状 plt.legend(loc=0) plt.show()输出结果: 二、poly1d函数np.poly1d()此函数有3个参数注意:下面红色代表输出 1.参数1:系数向量 import numpy as np a= np.array([2,1,1]) f = np.poly1d(a) print(f)2 x2 + 1 x + 1 2.参数2:bool则表示把数组中的值作为根,然后反推多项式,例如: q = np.poly1d([2,3,5],True) print(q)(x - 2)(x - 3)(x - 5) = x^3 - 10x^2 + 31x -30 3.参数3:字母variable=‘z’表示改变未知数的字母,例如: q = np.poly1d([2,3,5],True,varibale = 'z') print(q)(z - 2)(z - 3)(z - 5) = z^3 - 10z^2 + 31z -30 计算多项式的值:代入x print(f([1,2,3,4]))#可以多个运算,x=1\2\3\4的时候[ 4 11 22 37] 三、综合应用例子 import numpy as np from scipy.optimize import leastsq import pylab as pl x = np.arange(1, 17, 1) y = np.array([4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86, 10.00, 10.20, 10.32, 10.42, 10.50, 10.55, 10.58, 10.60]) # 第一个拟合,自由度为3 z1 = np.polyfit(x, y, 3) # 生成多项式对象 p1 = np.poly1d(z1) print(z1) print(p1) 赞 收藏 评论 分享 举报上一篇:pyhton中Matplotlib模块 下一篇:大数相加算法 |
CopyRight 2018-2019 实验室设备网 版权所有 |