前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用最小二乘法对多项式进行拟合并可视化

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

作者头像
用户3577892
发布2020-06-12 16:15:03
6730
发布2020-06-12 16:15:03
举报
文章被收录于专栏:数据科学CLUB数据科学CLUB

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

代码语言:javascript
复制
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()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学CLUB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档