主要使用numpy和matplotlib来实现

直接上代码

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import math
plt.rcParams['font.sans-serif'] = 'SimHei'p = plt.figure(figsize=(10,10))#获取数据info = pd.read_excel('物价.xlsx')y = info.iloc[:13,3]#肉类
cereal = info.iloc[:13,1]#粮食类
veg = info.iloc[:13,2]#蔬菜类x = np.arange(1, 14, 1)#子图1
plt1 = p.add_subplot(2,1,1)plt.plot(x,y,'r-',x,cereal,'b-',x,veg,'g-')
plt1.legend(['畜肉','粮食','鲜菜'])z1 = np.polyfit(x, y, 3)#用3次多项式拟合 【polyfit函数可以使用最小二乘法将一些点拟合成一条曲线.】
p1 = np.poly1d(z1) #用来拼接方程
print(p1) #在屏幕上打印拟合多项式def computeCorrelation(X, Y):xBar = np.mean(X)yBar = np.mean(Y)SSR = 0varX = 0varY = 0for i in range(0 , len(X)):diffXXBar = X[i] - xBardiffYYBar = Y[i] - yBarSSR += (diffXXBar * diffYYBar)varX +=  diffXXBar**2varY += diffYYBar**2SST = math.sqrt(varX * varY)print ("使用math库:r:", SSR / SST,"r-squared:", (SSR / SST)**2)return yvals=p1(x)#也可以使用yvals=np.polyval(z1,x)computeCorrelation(x,yvals)#子图2
plt2 = p.add_subplot(2,1,2)plot1=plt.plot(x, y, '.',x, yvals, 'r')
plt2.legend(['畜肉','预测'])
plt.xlabel('index')
plt.ylabel('指数')
plt.show()

最后的执行效果:

主要的部分:

  1. 用来获得R²
def computeCorrelation(X, Y):xBar = np.mean(X)yBar = np.mean(Y)SSR = 0varX = 0varY = 0for i in range(0 , len(X)):diffXXBar = X[i] - xBardiffYYBar = Y[i] - yBarSSR += (diffXXBar * diffYYBar)varX +=  diffXXBar**2varY += diffYYBar**2SST = math.sqrt(varX * varY)print ("使用math库:r:", SSR / SST,"r-squared:", (SSR / SST)**2)return 
  1. 拟合方程
z1 = np.polyfit(x, y, 3)#用3次多项式拟合 【polyfit函数可以使用最小二乘法将一些点拟合成一条曲线.】
p1 = np.poly1d(z1) #用来拼接方程

数学建模:多项式拟合并判断可决系数R²相关推荐

  1. 数学建模最小二乘法拟合_从寻找谷神星的过程,谈最小二乘法实现多项式拟合...

    科学史上众星云集,璨若星河.这些牛人基本上都是天才,但也不乏无名之辈凭借匪夷所思.骇世惊俗的猜想而跻身于巨星之列.比如,门捷列夫,整了一张留空的元素周期表,引得全世界的化学家去做填空题.还有一位德国的 ...

  2. 数学建模4 拟合算法

    1.插值与拟合 插值算法中,得到的多项式f(x)要经过所有样本点.但是如果样本点太多,那么这个多项式次数过高,会造成龙格现象.尽管我们可以选择分段的方法避免这种现象,但是更多时候我们倾向于得到一个确定 ...

  3. 数学建模之拟合插值方法

    插值和拟合 插值: 利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方法称为插值法 拟合: 形象的说,拟合就是把平 ...

  4. matlab中多项式拟合如何给出r方,matlap拟合函数后r^2怎么求

    matlab拟合函数 求助 尝试用二次多项式拟合: clearall; x=2:2:20; y=[0.31.232.416.267.958.529.049.179.299.37]; scatter(x ...

  5. (一)MATLAB数学建模——数据拟合

    目录 一.简介 二.多项式拟合 (一)指令介绍 (二)代码 三.指定函数拟合 (一)指令介绍 (二)代码 一.简介 曲线拟合也叫曲线逼近,主要要求拟合的曲线能合理反映数据的基本趋势,而不一定要求曲线一 ...

  6. 【4.0】 数学建模中拟合算法详解|内附清晰图片和详细代码实现

    一.前言 与插值问题不同,在拟合问题中不需要曲线一定经过给定的点.拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小损失函数) 插值和拟合的区别 ...

  7. 数学建模-4.拟合算法

    拟合算法 区别于插值算法 拟合问题中不需要曲线一定经过给定点 拟合问题的目标是求出一个函数曲线,其在某种准则下与所有数据点最接近,即曲线拟合的最好(最小化损失函数) 引例 最小二乘法求解 下一步,求出 ...

  8. 数学建模最小二乘法拟合_MATLAB最小二乘法拟合曲线公式

    假设 y = f(x),那么每个x应该会对应一个y.对一个未知公式的 f(x)系统,在科学实验中,常常需要测量两个变量的多组数据,然后找出他们的近似函数关系.通常,我们把这种处理数据的方法称之为经验配 ...

  9. 数学建模动态规划的小案例之R代码实现——生产计划问题

    目录 1.问题描述 2.解题思路 3.R程序实现 4.输出结果 1.问题描述 工厂生产某种产品,每单位(千件)的成本为 1(千元),每次开工的固定成本为 3 (千元),工厂每季度的最大生产能力为 6( ...

  10. 【数学建模】拟合算法+Matlab实现

    学习内容: 提示:这里可以添加要学的内容 例如: 1. 了解拟合算法基本内容 2. 使用Matlab实现拟合算法 学习时间: 2020.12.09 学习产出: 1.matlab实现拟合算法的几个小例子 ...

最新文章

  1. Linux C编程--进程介绍7--综合应用实例
  2. python怎么写多行_python 多行字符串怎么写才能不破坏缩进
  3. Visula Basic程序设计理论与实践pdf
  4. mpi tcp连接报错_关于WinCC与真实PLC之间的TCP/IP连接问题-工业支持中心-西门子中国...
  5. Mysql批量更新的三种方式
  6. WebService应用:音乐站图片上传
  7. Nginx作为web服务器的安装配置
  8. SpringBoot非官方教程 | 终章:文章汇总(转载https://blog.csdn.net/forezp/article/details/70341818 本文出自方志朋的博客)
  9. windows 用浏览器打开应用程序的方法
  10. react-native系列(11)组件篇:Image图片加载和ImageEditor图片剪切
  11. VBox 快照备份虚拟机
  12. Xcode 10 无开发者账号通过无线网络真机调试
  13. thymeleaf ${xxx} Cannot resolve
  14. Google Guava 中文指南
  15. APP怎么在论坛推广?行业论坛渠道要把握!
  16. 千寻位置终端配置参数说明
  17. 用python建立两个Y轴的XY曲线图
  18. c语言编写消防车声音程序教程,消防车警笛声音mp3
  19. 【测试】用例篇2(黑盒测试的测试用例)
  20. 将.dat文件转换为csv文件

热门文章

  1. python可视化——matplotlib画图颜色控制
  2. 逗号代码 python_Python代码。是逗号运算符吗?
  3. 用opencv将左右眼3D图片转换为红蓝3D图片
  4. 支付宝小程序悬浮按钮
  5. 美国恐怖故事第七季/全集American Horror Story全迅雷下载
  6. 牛客竞赛C/C++语言基础22198 选村长
  7. android的终端模拟器,安卓开发者必备的 5 款 App:终端模拟器、颜色萃取、移动 IDE 等...
  8. 线性代数笔记33——基变换和图像压缩
  9. 复权、前复权和后复权
  10. 小码哥教育笔记之VueDay01课程回顾