数学建模系列-预测模型(三)--插值与拟合(线性回归法)

书接上文,我们今天学习预测模型的第三种方法,插值与拟合:

强调一下,预测模型和评价模型以及优化模型都有相当多overlap的地方,后续遇到同样的解法便不再赘述咯。。

分类
插值与拟合:线性回归模型,可应用于预测模型问题以及优化模型问题、评价模型中也有部分应用。一种模型建立的最经典基本方法。属于黑箱模型。

插值和拟合的区别
插值:原则上曲线要通过图像中给出的点。如果要求这个近似函数(曲线或曲面)经过所已知的所有数据点,则称此类问题为插值问题。(不需要函数表达式)

拟合:原则上不需要经过图像中的任何一个点,只要保证与各点的距离总体足够小即可。不考虑观测误差的影响。(这里提一嘴,黑箱和灰箱都希望将随机变量\delta的影响降到足够小。这也是后面要讲到的偏微分方程求解的原理,将各随机变量融合成一个正态分布。)

插值
插值的主要方法:
1.分段线性插值:
说白了就是把已知相邻的两个点连起来,预测中间的值,但是用来预测未来的值误差极大

2.三次样条插值:
底层逻辑是将两个点用柔韧的木条连接,使得插值是一条曲线,为了保证函数连续,在每一个点附近,曲率x_i^- =x_i^+。使其成为一个光滑曲线,可以显著降低月误差,但是总体不如高阶的拟合。

所谓三次样条插值就是茶织出来的曲线是三次函数,很明显,样条插值提高阶数并不能显著降低提高效果,,

matlab插值工具箱
1.分段线性、非线性插值

y = interpl ( x_0 ,y_0 , x ,’method ’ );
method可选变量可以为
’nearest’ 最近项插值
’linear’ 线性插值
’spline’ 立方样条插值
'cubic’立方插值

2.三次样条插值示例:

pp =csape(x_0,Y_0 ,conds,valconds) ;Y = fnval(pp,x) ;
用两种方式求插值的装matlab代码如下
数学建模系列-预测模型(三)--插值与拟合(线性回归法)_第1张图片
多维情况:
pp =csape( {x_0 ,y_0} ,z_0 ,conds,valconds) , z = fnval(pp , {x,y} )

再多就没必要了,为啥不用神经网络模型呢,不香吗。

拟合

1.经典方法最小二乘

即在图像上与散点的y值相差平方和最小的一个解法,最为方便,也比较可信。

x = [ 25 31 38 44 ] ’;
y = [19 .0 32 .3 49 .0 73.3 97
r = [ ones ( 5 , 1) , x . < 2 ]
ab= r \y
x_0 = 19 : 0 .1 : 4 4 ;
y_0 = ab(1) + ab(2) * xO. < 2;
plot(x,y ,’0 ’, x_0,y_0 ,’r ’)

clc , clear
a = textread(’datal .txt’) ;
y_0 = a ( : , [ 2 , 7 ]) %提出因变量 的数据
y_0 = nonzeros (y_0)在去掉最后的 元素 且变成列向量
x_0 = [ a ( : , [ 3 : 5 ] ) ; a ( [ 1 : end - 1 ] , [ 8 : 10 ] ) ]%由分块矩阵构造因变量数据的列矩阵
canshu_0= rand(2 ,1) %参数的初始值是任意取的
毛非线性拟合的答案是不唯一的,下面给出拟合参数的上下界
lb= zeros(2 ,1)%这里是随意给的拟合参数的下界,无下界时,默认值是空矩阵门
ub= 20 宅这里是随意给的上界,无上界时,默认值是 矩阵
canshu = lsqcurvefit(@ funl ,canshu_0 ,x_0 ,Y_0 ,lb,ub)

2.进阶方法
卡尔曼滤波
对于多变量预测中且有干扰的情况下有奇效。是控制专业的相对论。
https://blog.csdn.net/u010720661/article/details/63253509?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162986421016780264032094%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162986421016780264032094&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-63253509.pc_search_download_positive&utm_term=%E5%8D%A1%E5%B0%94%E6%9B%BC%E6%BB%A4%E6%B3%A2&spm=1018.2226.3001.4187

3.进阶最小二乘
将1中y值相差改为与曲线的最近距离平方和,这是一个进阶的最小二乘,目前效果最好。但是对于非线性方程计算量过大。

4.高次函数拟合
可以在excel中直接做。
syms x
ba se= [1 ,x < 2 , x~4];
yl = base .’ * base
y2 = cos ( x ) * base .’
rl =int(yl , -pi / 2,pi / 2)
r2 =int ( y2 , - pi / 2 ,pi/2 )
a = r1\r2
xishu1 = double()%符号数据转化成数值型数据
xishu2 = vpa(a)%把符号数据转化成小数型的符号数据

顺便提上一嘴,最小二乘可以在无约束优化问题中应用,当目标函数是二次型是最优 。

你可能感兴趣的:(数学建模系列+算法系列,数据建模)