python polyfit_python中polyfit 之poly1d与polyval的含义

# 拟合,自由度为3

z1 = np.polyfit(x, y, 3)

#3为多项式最高次幂,结果为多项式的各个系数

#最高次幂3,得到4个系数,从高次到低次排列

#最高次幂取几要视情况而定

# 生成多项式对象

p1 = np.poly1d(z1)

#将系数代入方程,得到函式p1

print(z1)#多项式系数

print(p1)#多项式方程

#计算多项式的函数值。返回在x处多项式的值,p为多项式系数,元素按多项式降幂排序

y=polyval(p,x)

范例:

-------------------------------np.poly1d

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)

# 第二个拟合,自由度为6

z2 = np.polyfit(x, y, 6)

# 生成多项式对象

p2 = np.poly1d(z2)

print(z2)

print(p2)

# 绘制曲线 # 原曲线

pl.plot(x, y, 'b^-', label='Origin Line')

pl.plot(x, p1(x), 'gv--', label='Poly Fitting Line(deg=3)')

pl.plot(x, p2(x), 'r*', label='Poly Fitting Line(deg=6)')

pl.axis([0, 18, 0, 18])

pl.legend()# Save

pl.show()

# figurepl.savefig('scipy02.png', dpi=96)

--------------------------------------polyval

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)

pl.plot(x, y, 'b^-', label='Origin Line')

#pl.plot(x, p1(x), 'gv--', label='Poly Fitting Line(deg=3)')

pl.plot(x, np.polyval(z1, x))

pl.show()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pythonpoly1d是一个用于生成多项式的对象。它可以通过给定的多项式系数来创建一个多项式对象。在引用的例子,使用np.polyfit函数将一组数据拟合成多项式,并使用np.poly1d函数生成了一个多项式对象p1。这个多项式对象可以用来计算多项式的值。在引用的例子,直接使用np.poly1d函数创建了一个多项式对象p,它的系数是[2, 3, 5, 7]。可以使用这个多项式对象来计算多项式的值。在引用的例子,使用np.polyfit函数得到了拟合多项式的系数reg,并使用np.polyval函数计算了拟合多项式在一组数据点上的值ry。通过使用poly1d对象,我们可以方便地进行多项式拟合和计算。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [pythonpolyfitpoly1d函数](https://blog.csdn.net/mao_hui_fei/article/details/103821601)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [numpy.poly1d()函数](https://blog.csdn.net/poptar/article/details/120989145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值