numpy多项式拟合函数polyfit的使用方法代码

 更新时间:2024年01月23日 15:02:42   作者:马红权  
这篇文章主要给大家介绍了关于numpy多项式拟合函数polyfit的使用方法,np.polyfit是Numpy库中的一个函数,用于在最小二乘意义下拟合多项式曲线到数据点集,需要的朋友可以参考下
import numpy as np
def fit(x,y,m,w):
    if len(x)<=m:
        return False
    xishu = np.polyfit(x,y,m,w=w)
    p = np.poly1d(xishu) # 构造多项式
    yfit = p(x) # 拟合的y值
    yresid = y - yfit # 残差
    SSresid = sum(pow(yresid, 2)) # 残差平方和
    SStotal = len(y) * np.var(y) # 总体平均方差
    if SStotal==0:#水平线
        r2=1
    else:
        r2 = 1 - SSresid/SStotal # 拟合优度    
    return (xishu,r2,yfit)
if __name__=="__main__":
    x = np.arange(0,5,0.1)
    z = [2+3*x+4*x**2 for x in x]
    y = np.array([np.random.normal(z,3) for z in z])
    weight=[1 for one in x]
    print(fit(x,y,2,weight))

polyfit(x,y,m,w) 参数m为多项式的次数+1,w为权重。权重的含义是这个数据点的误差要乘以权重,低点给予高权重可以减少低点的误差,避免低点的相对误差过大。

自定义函数fit(x,y,m,w)的返回值 (xishu,r2,yfit)分别为系数、相关系数、拟合Y值。

过原点也可以通过权重实现。代码如下:

if must00:
    x=np.append(x,0)#.append(0)
    y=np.append(y,0)#y.append(0)
    w=np.append(w,100000000)#.append(10000)
fit_r=fit(x,y,m,w)
if fit_r:
    (xishu,r,y_fitted)=fit_r
else:
    #fit error
    xishu=[0,1,0]
    y_fitted=x 
    r=0

总结 

到此这篇关于numpy多项式拟合函数polyfit使用的文章就介绍到这了,更多相关numpy多项式拟合函数polyfi内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python数据库编程 ODBC方式实现通讯录

    python数据库编程 ODBC方式实现通讯录

    这篇文章主要为大家详细介绍了python数据库编程,ODBC方式实现通讯录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • PyCharm使用教程之搭建Python开发环境

    PyCharm使用教程之搭建Python开发环境

    由于python的跨平台性。在windows下和ubuntu下基本上没什么差别。下面从几个不步骤来搭建开发环境。
    2016-06-06
  • python通过函数名调用函数的几种场景

    python通过函数名调用函数的几种场景

    这篇文章主要介绍了python通过函数名调用函数的几种场景,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • Python 正则表达式匹配字符串中的http链接方法

    Python 正则表达式匹配字符串中的http链接方法

    今天小编就为大家分享一篇Python 正则表达式匹配字符串中的http链接方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python实现图片和视频的相互转换

    Python实现图片和视频的相互转换

    有时候我们需要把很多的图片合成视频,或者说自己写一个脚本去加快或者放慢视频;也有时候需要把视频裁剪成图片,进行后续操作。这篇文章就将为大家介绍如何通过Python实现图片和视频的相互转换,需要的可以参考一下
    2021-12-12
  • win与linux系统中python requests 安装

    win与linux系统中python requests 安装

    requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,今天我们主要来谈谈win与linux系统中python requests的安装方法以及使用指南
    2016-12-12
  • python 中的 asyncio 异步协程

    python 中的 asyncio 异步协程

    这篇文章主要介绍了python 中的 asyncio 异步协程 IO 教程,asyncio 执行的任务,称为协程,但是Asyncio 并不能带来真正的并行,下文具体的相关资料感兴趣的小伙伴可以参考一下
    2022-04-04
  • python标准库学习之sys模块详解

    python标准库学习之sys模块详解

    sys模块是最常用的和python解释器交互的模块,sys模块可供访问由解释器(interpreter)使用或维护的变量和与解释器进行交互的函数,下面这篇文章主要给大家介绍了关于python标准库学习之sys模块的相关资料,需要的朋友可以参考下
    2022-08-08
  • python保留格式汇总各部门excel内容的实现思路

    python保留格式汇总各部门excel内容的实现思路

    这篇文章主要介绍了python保留格式汇总各部门excel内容,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 基于Python fminunc 的替代方法

    基于Python fminunc 的替代方法

    今天小编就为大家分享一篇基于Python fminunc 的替代方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论