一、回归、插值、逼近、拟合的区别
1、回归一般指线性回归,是求最小二乘解的过程。在求回归前,已经假设所有型值点同时满足某一曲线方程,计算只要求出该方程的系数
2、多项式插值:用一个多项式来近似代替数据列表函数,并要求多项式通过列表函数中给定的数据点。(插值曲线要经过型值点。)
3、多项式逼近:为复杂函数寻找近似替代多项式函数,其误差在某种度量意义下最小。(逼近只要求曲线接近型值点,符合型值点趋势。)
4、多项式拟合:在插值问题中考虑给定数据点的误差,只要求在用多项式近似代替列表函数时,其误差在某种度量意义下最小。
注意:
表列函数:给定n+1个不同的数据点(x0,y0),(x1,y1)...,(xn,yn),称由这组数据表示的函数为表列函数。
逼近函数:求一函数,使得按某一标准,这一函数y=f(x)能最好地反映这一组数据即逼近这一表列函数,这一函数y=f(x)称为逼近函数
插值函数:根据不同的标准,可以给出各种各样的函数,如使要求的函数y=f(x)在以上的n+1个数据点出的函数值与相应数据点的纵坐标相等,即yi=f(x1)(i=0,1,2....n) 这种函数逼近问题称为插值问题,称函数y=f(x)为数据点的插值函数,xi称为插值点。
插值和拟合都是函数逼近或者数值逼近的重要组成部分
他们的共同点都是通过已知一些离散点集M上的约束,求取一个定义 在连续集合S(M包含于S)的未知连续函数,从而达到获取整体规律的目的,即通过'窥几斑'来达到'知全豹'。
简单的讲,所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通 过调整该函数中若干待定系数f(λ1, λ2,…,λ3), 使得该函数与已知点集的 差别(最小二乘意义)最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表 达式也可以是分段函数,这种情况下叫作样条拟合。而插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给 定离散点上满足约束。插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。如果约束条件中只有函数值的约束,叫作Lagrange插值,否则叫作Hermite插值。
从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点;而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。
二、经典插值方法1、拉格朗日插值
function y=lagrange(x0,y0,x) %拉格朗日插值函数 %n 个节点数据以数组 x0, y0 输入(注意 Matlat 的数组下标从1开始), %m 个插值点以数组 x 输入,输出数组 y 为 m 个插值 n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end
应用实例:x0=1:1:20;y0=x0.^2-20*x0-5;x=1:0.1:20;z=lagrange(x0,y0,x);plot(x,z,':',x0,y0,'ko');
2、分段线性插值
MATLAB现成的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method')
其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 'method'表示采用的插值方法,包括:
'method':是最近项插值; 'linear':线性插值;(默认)
'spline':逐段3次样条插值; (下面的三次样条插值会用到) 'cubic':保凹凸性3次插值
'pchip':分段三次Hermite 插值。
例如:在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为
12,9,9,1,0,18 ,24,28,27,25,20,18,15,13,
推测中午12点(即13点)时的温度.
x=0:2:24; y=[12,9,9,10,18,24,28,27,25,20,18,15,13]; x1=0:0.5:24; y1=interp1(x,y,x1,'linear'); plot(x,y,'bo',x1,y1,'r:');