数模美赛赛前准备——插值与拟合
一、插值算法
1.1 适用场景与特点
- 适用于数据量少的情况,用于补充数据以支持分析的进行;
- 插值算法会计算出一个函数,这个函数经过所有已知样本点;
- 一般在数据量大于30的时候就用拟合,小于30的时候就用插值;
1.2 多项式插值
1.2.1 多项式插值原理
对于 n+1 个互不相同的样本点,仅存在唯一的 n 阶多项式经过所有这些点;
注:个人认为,小于 n 阶的多项式是不能完全经过所有样本点的;但比 n 更高阶的多项式虽然可以经过所有点,它可能会产生一条振荡幅度很大的曲线(龙格现象);
1.2.2 多项式插值方法
两种方法:拉格朗日插值、牛顿插值;
这两种插值都不能反映被插函数的性态(被插函数的性态需要在低阶和高阶的导数也保持一致性)
1.2.3 埃尔米特插值
效果:插值曲线在节点处是光滑的;
不但要求在节点的函数值相等,也要求导数值甚至高阶导数相等,但由于得到的多项式次数较高,也会出现龙格现象。
1.3 分段插值
1.3.1 分段三次埃尔米特插值
1 | % 分段三次埃尔米特插值 |
1.3.2 三次样条插值
1 | % 分段三次样条插值 |
1.3.3 Matlab 画图
1 | % plot函数用法: |
1.4 n维数据的插值
1 | % n维数据的插值 |
1.5 实操
- 三次样条插值和三次埃尔米特插值都可以试一下,多项式插值一般用不到;
- 插值算法可用于短期预测;
- 表述:三次样条插值可以很好的保持数据的光滑性和连续性,减少信息量的损失。
二、拟合算法
1.1 插值和拟合的区别与选择
一般选择:当样本数量 > 30 时,可以认为这是一个大样本,可以选择拟合;当样本数量 < 30 时,需要进行插值。
1.2 拟合曲线的评价
注1:SST = SSE + SSR 仅对于拟合函数是线性函数时成立,因此拟合优度也只能评价线性拟合函数的好坏;
评价拟合函数的一般标准:
- SSE 足够小;
- 拟合函数形式足够简单;
1 | y_hat = k*x+b; % y的拟合值 |
注2:线性函数 指的是 对于参数线性,如下图:
1.3 最小二乘法
1 | clear;clc |
1.4 拟合工具箱的使用
骚操作:可以用拟合工具箱 (cftool) 来绘三维函数图;
1.5 Matlab 生成随机数
1 | % (1)randi : 产生均匀分布的随机整数(i = int) |