趣学python3(38)--多项式最小二乘法拟合

本文介绍了Python3中使用numpy库的poly1d类进行多项式拟合的方法,详细阐述了poly1d类的参数及用法,包括通过系数创建多项式和通过根创建多项式,并探讨了多项式最小二乘法的应用。
摘要由CSDN通过智能技术生成

class numpy.poly1d(c_or_r, r=False, variable=None)[source]
参数:
c_or_r:array_like
多项式的系数,或者如果第二个参数的值是True,多项式的根(值多项式的求值结果为0)。
例如,poly1d([1, 2, 3])返回一个对象,代表:
x ^ 2 + 2 + 3,
而poly1d((1、2、3),真正的)返回一个对象,代表:
(x - 1) (x - 2) (3) = x ^ 3 - 6 x ^ 2 + 11 * 6。
r: bool,可选
如果为真,c_or_r指定多项式的根;默认值为False。
variable:str,可选
将打印p时使用的变量从x改为变量

python3-多项式最小二乘法拟合

import numpy as np
import scipy as sp
import pylab as pl
from scipy.optimize import leastsq#最小二乘法函数

n=9#多项式次数

#目标函数
def real_func(x):
    return np.pi*(np.sin(x)+np.cos(x))#pi*(sinx+cosx)
#多项式函数
def fit_func(p,x):
    f=np.poly1d(p)
    return f(x)
#残差函数
def residuals_func(p,y,x):
    ret=fit_func(p,x)-y
    return ret

x=np.linspace(0,1,20)#随机选择20个点作为x
y_=real_func(x)
y=[np.random.normal(0,0.1)+y for y in y_]#人为增加噪声

x_=np.linspace(0,1,1000)

p_init=np.random.randn(n)
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值