数模必备插值拟合

news/2024/7/6 6:43:10

插值与拟合
两者都可用于对较少数据量的补充,但是一般插值用于数据量较少的情况n<=30 拟合用于数据量较多的情况 n>30。

文章目录

  • (1)插值与拟合采用的方法
    • 1.插值
    • 2.拟合
  • (2)具体的代码操作方法
    • 1.插值的matlab
    • 2.拟合的matlab

(1)插值与拟合采用的方法

1.插值

  • 拉格朗日插值
  • 牛顿插值
  • 分段埃尔米特插值
  • 分段三次样条插值
    其中牛顿插值与拉格朗日插值的龙格现象比较严重,因此一般采用分段埃尔米特插值和分段三次样条插值。

⭐️注意插值的方法可以用于短期的预测,但不推荐这样做。

2.拟合

  • 使用matlab的拟合工具箱

⭐️一般情况下,拟合在保证优度相差不大的情况下,使用越简单的拟合函数越好。

(2)具体的代码操作方法

1.插值的matlab

  • 使用分段三次埃尔米特插值pchip(x,y,new_x)其中x,y代表已知点的横纵坐标,new_x代表要插入的点的横坐标。
  • 使用分段三次样条插值spline(x,y,new_x)其中x,y代表已知点的横纵坐标,new_x代表要插入的点的横坐标。
  • n维数据的插值interpn(x1,x2,...,xn,y,new_x1,new_x2,...,new_xn,method)其中x1,x2…,xn是已知点的横坐标,y是已知样本点的纵坐标,new_x1,new_x2,…,new_xn代表要插入的点的横坐标,method代表使用的插值方法,选项’linear’(线性插值),‘cubic’(三次插值),‘spline’(三次样条插值),‘nearest’(最邻近插值算法)。

2.拟合的matlab

  • cftool调用拟合工具箱。
    在这里插入图片描述
  • 拟合优度评价
    • 拟合优度: R 2 R^2 R2
    • 总体平方和 S S T SST SST S S T = ∑ i = 1 n ( y i − y ‾ ) 2 SST=\displaystyle \sum_{i=1}^{n}(y_i-\overline{y})^2 SST=i=1n(yiy)2
    • 误差平方和 S S E SSE SSE S S E = ∑ i = 1 n ( y i − y ^ ) 2 SSE=\displaystyle \sum_{i=1}^{n}(y_i-\hat{y})^2 SSE=i=1n(yiy^)2这里的 y ^ \hat{y} y^是将 x x x代入拟合完成的函数后得到的值。
    • 回归平方和 S S R SSR SSR S S R = ∑ i = 1 n ( y ‾ − y ^ ) 2 SSR=\displaystyle \sum_{i=1}^{n}(\overline{y}-\hat{y})^2 SSR=i=1n(yy^)2
      ① ① 对于线性的拟合评价可以使用 R 2 R^2 R2,对于线性拟合有 S S T = S S E + S S R SST=SSE+SSR SST=SSE+SSR
       
      R 2 = S S R S S T = S S T − S S E S S T = 1 − S S E S S T ≤ 1 R^2=\dfrac{SSR}{SST}=\dfrac{SST-SSE}{SST}=1-\dfrac{SSE}{SST}\le 1 R2=SSTSSR=SSTSSTSSE=1SSTSSE1
       
      R 2 R^2 R2越接近1则拟合效果越好。
      ② ② 对于非线性的拟合不能 R 2 R^2 R2,通过 S S E SSE SSE进行判断就可以了。

http://www.niftyadmin.cn/n/2133347.html

相关文章

Windows+Ubuntu-18.04双系统装机指南

WindowsUbuntu-18.04双系统装机指南 在看了网上很多的指南和教程之后&#xff0c;外加踩了好几个坑&#xff0c;最后终于安装成功&#xff0c;这里做一个记录&#xff0c;免得以后又需要安装。 文章目录(0) 准备工具(1) 准备分区(2) 制作启动U盘(3) 进入BIOS(4) 安装Ubuntu(5) …

规划模型的典型例题

规划模型的典型例题 文章目录(1) 平板装货问题(2) 选修课策略问题问题1问题2(3) 最优组队问题(1) 平板装货问题 有七种规格的包装箱要装到两辆平板车上。包装箱的宽和高是一样的&#xff0c;但厚度t (厘米)和重量w (公斤)是不同的。下表给出了每种包装箱的厚度&#xff0c;重量…

传统多线程开发

Android开发高级进阶 第一章学习 传统多线程开发 概要&#xff1a; 之前的文章里写过了AsyncTask的一些坑&#xff0c;这次就不讲它了&#xff0c;使用传统的 Handler和Message来进行线程的使用&#xff0c;并且第一次添加了CallBack方式的接口进行回调操作 多线程 这概念并不需…

Linux 中 Vi 的使用

vi —— 终端中的编辑器 目标 vi 简介打开和新建文件三种工作模式常用命令分屏命令常用命令速查图 01. vi 简介 1.1 学习 vi 的目的 在工作中&#xff0c;要对 服务器 上的文件进行 简单 的修改&#xff0c;可以使用 ssh 远程登录到服务器上&#xff0c;并且使用 vi 进行快…

Jupyterlab 插件安装后侧边栏找不到的解决

Jupyterlab 插件重新安装后侧边栏找不到的解决 截止发帖时间&#xff0c;JupyterLab 有这样一个 bug&#xff0c;在官方文档找不到解决方案&#xff0c;我找了好几天找到了一个 issue 才解决&#xff1a; JupyterLab 安装 extension &#xff08;插件&#xff09;时&#xff0…

那些web前端经典面试题大全及答案

阅读目录JavaScript部分JQurey部分HTML/CSS部分正则表达式开发及性能优化部分本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题&#xff0c;并且都给出了我在网上收集的答案。马上就要过春节了&#xff0c;开年就是崭新的一年&#xff0c;相信很多…

ABP框架系列之三十七:(Navigation-导航)

Every web application has some menu to navigate between pages/screens. ASP.NET Boilerplate provides a common ifrastructure to create and show menu to users. 每个Web应用程序都有一些菜单在页面/屏幕之间导航。ASP.NET提供了一个通用的ifrastructure样板文件创建和显…

深度学习大概率用到的Pytorch内容基础

Pytorch 基础 文章目录(1) 基本数据类型1.Pytorch 用的比较多 tensor2.类型的检测3.不同维度的数据及用途(2) 创建Tensor1.从numpy中创建Tensor2.从list中创建Tensor3.设定默认type4.随机产生进行初始化5.采用特殊生成进行初始化(3) 索引与切片(4) 维度变换(1) 基本数据类型 1…