专栏首页数据科学CLUB用最小二乘法对多项式进行拟合并可视化

用最小二乘法对多项式进行拟合并可视化

本篇文章所讲代码是对2018年全国大学生数学建模比赛A题附件的数据进行拟合,代码如下:

import xlrd
import numpy
from matplotlib import pyplot as pl
data=xlrd.open_workbook(r'C:\Users\admin\Desktop\1.xlsx')
table=data.sheet_by_name('sheet1')
a=table.col_values()[:]
b=table.col_values()[:]
x=numpy.array(a)
y=numpy.array(b)
class fitting:
    def __init__(self,X,Y):
        self.x=numpy.array(X)
        self.y=numpy.array(Y)
    def fitting(self,n):
        self.z=numpy.polyfit(self.x,self.y,n)
        self.p=numpy.poly1d(self.z)
        self.error=numpy.abs(self.y-numpy.polyval(self.p,self.x))
        self.ER2=numpy.sum(numpy.power(self.error,))/len(self.x)
        return self.z,self.p
    def geterror(self):
        return self.error,self.ER2
    def show(self):
        figure1=pl.figure()
        pl.plot(self.x,self.y,'ro-',markersize=.,figure=figure1,label='origin data')
        pl.plot(self.x,numpy.polyval(self.p,self.x),markersize=,figure=figure1,label='fitting data')
        pl.legend()


        pl.show()
    def predict(self,x):
        return numpy.polyval(self.p,x)
F=fitting(x,y)
z,p=F.fitting()
e,E=F.geterror()
print ('系数:',z)
print ('拟合函数:',p)
print ('最小平方误差:',E)
a=#通过改变a的值来进行预测
print ('F({})的预测值'.format(a),F.predict(a))
F.show()

本文分享自微信公众号 - 数据科学CLUB(jiji8215)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PSO算法代码

    用户3577892
  • 蚁群算法

    蚁群觅食过程中,每只蚂蚁在所走过的路径上均会释放出一种信息素,该信息素随时间的推移逐渐挥发。因此,每条路径上的信息素同时存在正负反馈两种机制。正反馈:蚂蚁每次经...

    用户3577892
  • 遗传算法求解最值问题并可视化

    用户3577892
  • 【Code】关于 GCN,我有三种写法

    本篇文章主要基于 DGL 框架用三种不同的方式来实现图卷积神经网络。手机看可能不太方便,可以点击阅读原文,移步到知乎上看(但是我忘了加 = =)。

    阿泽 Crz
  • 基于图形项的复杂形状和动画--千足虫

    在本篇中,会看到利用图形项来绘制复杂形状和动画,模拟“千足虫”的运动和消亡过程。程序有一个内部的定时器,在没段时间间隙中,这些千足虫都在不停的移动。如果它们的头...

    用户6021899
  • 我的小工具,用C和python实现远程读卡器,远程读写消费卡片

    这个远程读卡器就是一普通usb口或串口的读卡器,只不过配合一个电脑软件作为tcp服务器。这样,程序员可以在公司电脑上运行程序连到服务器上。服务器端操作控制现场...

    特立独行的猫a
  • Pytorch实现卷积神经网络训练量化(QAT)

    深度学习在移动端的应用越来越广泛,而移动端相对于GPU服务来讲算力较低并且存储空间也相对较小。基于这一点我们需要为移动端定制一些深度学习网络来满足我们的日常续需...

    BBuf
  • 10.带人机对战的五子棋程序

    今天我们带来一个带人机对战功能的五子棋程序。程序基于前面文章中的框架搭建,新增人机对战的策略。程序基于规则进行决策,不考虑禁手,玩家执黑子先行。棋盘规模采用15...

    用户4381798
  • 6.wxPython防止窗体重画棋子消失的机制

    可以画图的类中wx.ClientDC不必依赖窗体绘画事件,可以随时实例化,随时画图。但是窗体最小化之后再恢复,重画的窗体上通过wx.ClientDC绘制的棋子会...

    用户4381798
  • 手把手教你用Python开发“剪刀石头布”小游戏【附源码】

    最近在学习PyQt5可视化界面,这是一个内容非常丰富的gui库,相对于tkinter库,功能更加强大,界面更加美观,操作也不难。于是我开始小试牛刀,用PyQt...

    python学习教程

扫码关注云+社区

领取腾讯云代金券