第1讲 插值、曲线拟合与回归分析.doc
文本预览下载声明
第9讲 插值、曲线拟合和回归分析
研究生E题,罗伦滋曲线拟合。
多项式曲线拟合
x=0:0.1:5;
y=x.^2+rand(1,length(x));
p=polyfit(x,y,2);%2次多项式曲线拟合
f=poly2sym(p,t);%以多项式系数p生成多项式函数
f=inline(f); %f(x) 相当匿名函数
plot(x,f(x))
syms x;sym2poly(f(x));%返回多项式函数的系数向量p
在实际中,常常要处理有实验或测量所得到的一批离散数据。插值与拟合方法就是要通过这些数据去决定某一类已知函数的参数或寻找某个近似函数,使得近似函数与已知数据有较高的拟合精度。
如果要求这个近似函数(曲线或曲面)经过所有已知数据点,则这类问题称为插值问题。这种寻找函数的方法称为插值方法。
如果不要求这个近似函数(曲线或曲面)经过所有已知数据点,而是要求它能较好的反映数据的整体变化趋势,称解决这类问题的方法为数据拟合。
共同点:都是根据一组已知数据来构造反映数据变化规律的近似函数的方法。
不同点:由于对近似函数要求不同,二者在数学方法上有很大差异。
回归分析研究的是随机变量与普通变量的统计关系,如体重与身高的关系等。
一 插值方法
1.1 定义
已知某未知函数的一组观测(或试验)数据,要寻找一个函数,使,则称此类问题为插值问题。并称为的插值函数,并称为样本点;称为插值条件,可得:
1.2 常见的插值方法
1、线性插值,‘linear’;
2、拉格朗日插值方法; ‘lagr1’
3、牛顿插值方法; ‘newton’
4、最近点插值方法,‘nearst’
5、cubic插值方法,‘cubic’或‘pchip’
6、三次分段样条插值,‘spline’
7、B样条函数插值方法(k次等距B样条函数插值函数方法)
8、人工神经网络插值方法
9、分形插值方法
详细算法参考数学建模相关书籍,本文只讲给定样本点,如何利用数学软件实现各类插值的计算。
1.3 一维插值方法的matlab软件实现
一般格式形如:,
其中为样本数据序列,x是待插值点。是插值方法选项,上述7种插值方法都可以选择。方法缺省,表示线性插值。
例1.1 利用,在上取10个点作为样本点,在取12个点作为插值点,利用最近点插值和线性插值分别计算,结果如下图显示。
1.4 三次样条插值
三次样条插值原理见《高等应用数学的Matlab求解》P286
三次分段多项式:
以为例
x0=linspace(0,2*pi,10);
y0=sin(x0);
sp=csapi(x0,y0);%sp由(x0,y0)确定具体的样条函数,主要确定插值系数
x=linspace(0,2*pi,20);%待插值点
y=fnval(sp,x);%三次样条插值
1.5 B样条插值
以为例
x0=linspace(0,2*pi,10);
y0=sin(x0);
sp=spapi(k,x0,y0);%sp由(x0,y0)确定具体的样条函数,k表示样条阶次,一般4,5 x=linspace(0,2*pi,20);%待插值点
y=fnval(sp,x);%三次样条插值
1.6 二维插值问题
观测数据格式如下:
方法1:z=griddata(x0, y0, z0, x, y, ‘v4’) ,选项中还有linear,cubic,nearest等算法。仅用于二维插值,“v4”是Matlab提供的算法,公认较好。
方法2:yy=griddatan(x,y,xx,nearest),其中x是自变量,每列表示一个指标观察值,y是因变量,xx待插值点。
1.7 网格点数据高维插值问题
二维网格点数据:假设自变量取值1,2,取值1,2,3,则自变量在平面上形成6个点,网格点数据取值如下:
x =
1 2
1 2
1 2
y =
1 1
2 2
3 3
相应的,因变量的取值也是6个点,类似,以矩阵形式,如得:
sin(x.*y)
0.8415 0.9093
0.9093 -0.7568
0.1411 -0.2794
三维网格点数据:复杂些,以三维矩阵形式给出。假设自变量取值1,2,取值1,2,3,取值为1,2,3,4,则自变量在空间上形成个点,这24个点以三维矩阵形式给出,网格点数据形式:x(:,:,1),x(:,:,2),x(:,:,3),x(:,:,4),并且x(:,:,i)均是相同的平面网格点数据,y,z也依此类似,其中
x(:,:,1)
1 2
1 2
1 2
显示全部