第四讲 拟合插值
- 格式:ppt
- 大小:458.50 KB
- 文档页数:33
第四讲matlab插值、拟合和回归分析第四讲插值、拟合与回归分析在⽣产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的⼀批离散样本点,要求得到变量之间的函数关系或得到样本点之外的数据。
解决此类问题的⽅法⼀般有插值、拟合和回归分析等。
设有⼀组实验数据0011(,),(,),(,)n n x y x y x y ,当原始数据精度较⾼,要求确定⼀个简单函数()y x ?=(⼀般为多项式或分段多项式)通过各数据点,即(),0,,i i y x i n ?== ,称为插值问题。
另⼀类是拟合问题,当我们已经有了函数关系的类型,⽽其中参数未知或原始数据有误差时,我们确定的初等函数()y x ?=并不要求经过数据点,⽽是要求在某种距离度量下总体误差达到最⼩,即(),0,,i i i y x i n ?ε=+= ,且20ni i ε=∑达到最⼩值。
对同⼀组实验数据,可以作出各种类型的拟合曲线,但拟合效果有好有坏,需要进⾏有效性的统计检验,这类问题称为回归分析。
⼀、插值(interpolation)常⽤的插值⽅法有分段线性插值、分段⽴⽅插值、样条插值等。
1、⼀元插值yi=interp1(x,y,xi,method)对给定数据点(x,y),按method 指定的⽅法求出插值函数在点(或数组)xi 处的函数值yi 。
其中method 是字符串表达式,可以是以下形式:'nearest' ——最邻近点插值'linear' ——分段线性插值(也是缺省形式)'spline' ——分段三次样条插值'cubic' 分段⽴⽅插值例:在⼀天24⼩时内,从零点开始每间隔2⼩时测得环境温度数据分别为(℃):12,9,9,10,18,24,28,27,25,20,18,15,13⽤不同的插值⽅法估计中午1点(即13点)的温度,并绘出温度变化曲线。
>> x=0:2:24;>> y=[12 9 9 10 18 24 28 27 25 20 18 15 13];>>y_linear=interp1(x,y,13),y_nearest=interp1(x,y,13,'nearest')>>y_cubic=interp1(x,y,13,'cubic'),y_spline=interp1(x,y,13,'spline')>> y1=interp1(x,y,xx); y2=interp1(x,y,xx,'nearest');>> y3=interp1(x,y,xx,'cubic');y4=interp1(x,y,xx,'spline');>> subplot(2,2,1),plot(x,y,'or',xx,y1)>> subplot(2,2,2),plot(x,y,'or',xx,y2)>> subplot(2,2,3),plot(x,y,'or',xx,y3)>> subplot(2,2,4),plot(x,y,'or',xx,y4)2、⼆元插值zi=interp2(X,Y,Z,xi,yi,method)已知数据点(X,Y,Z),求插值函数在(xi,yi)处的函数值zi,插值⽅法method同interp1。
第4章 插值与拟合方法插值与拟合方法是用有限个函数值(),(0,1,,)i f x i n =⋅⋅⋅去推断或表示函数()f x 的方法,它在理论数学中提到的不多。
本章主要介绍有关解决这类问题的理论和方法,涉及的内容有多项式插值,分段插值及曲线拟合等。
对应的方法有Lagrange 插值,Newton 插值,Hermite 插值,分段多项式插值和线性最小二乘拟合。
4.1 实际案例4.2 问题的描述与基本概念先获得函数(已知或未知)()y f x =在有限个点n x x x ⋅⋅⋅,,10上的值x0x 1x … n x y0y 1y … n y 由表中数据构造一个函数P (x )作为f (x ) 的近似函数,去参与有关f (x )的运算。
科学计算中,解决不易求出的未知函数的问题主要采用插值和拟合两种方法。
1)插值问题的描述已知函数()y f x =在[a,b ]上的n +1个互异点x ,0处的函数值()i i y f x =,求f (x ) 的一个近似函数P (x ),满足()()(0,1,,)i i P x f x i n ==⋅⋅⋅ (4.1)● P (x ) 称为f (x )的一个插值函数;● f (x ) 称为被插函数;点i x 为插值节点; ● ()()(0,1,,)i i P x f x i n ==⋅⋅⋅称为插值条件; ● ()()()R x f x P x =-称为插值余项。
当插值函数P (x )是多项式时称为代数插值(或多项式插值)。
一个代数插值函数P (x )可写为0()()()mkm k k k P x P x a x a R ===∈∑若它满足插值条件(4.1),则有线性方程组20102000201121112012m m mm m nn m n n a a x a x a x y a a x a x a x y a a x a x a x y ⎧+++⋅⋅⋅=⎪+++⋅⋅⋅=⎪⎨⎪⎪+++⋅⋅⋅=⎩ (4.2)当m=n ,它的系数行列式为范德蒙行列式)(1110212110200j i ni j nnnn nn x x x x x x x x x x x D -∏==≤≤≤因为插值节点互异,0D ≠,故线性方程组(4.2)有唯一解,于是有定理 4.1 当插值节点互异时,存在一个满足插值条件()()(0,1i i P x f x i n ==⋅⋅⋅的n 次插值多项式。
第四章 插值与拟合插值与拟合是来源于实际,又广泛应用于实际的两种重要的方法。
随着计算机的不断发展及计算水平的不断提高,他们已在国民生产和科学研究等方面扮演着越来越重要的角色。
在测量上观测值不等间隔和后续值的预测及观测值的曲线拟合,都需要插值与拟合来完成。
本节将对插值法中重要的LAGRANGE 插值,分段线性插值,HERMITE 插值及三次洋条插值做介绍,说明利用MATLAB 处理此类问题的方法。
另外还对拟合中最为重要的最小二乘法拟合和快速FURIER 变换加以介绍。
第一节 插值运算(一)LAGRANGE 插值1.方法介绍对给定的N 个插值节点x1,x2,x3……,xn 及对应的函数值y1,y2,y3……,yn,利用(n-1)次LAGRANGE 插值多项式公式,则对插值区间内的任意X 的函数值Y 可通过下式求得.Y(x)=∑=nk Yk 1( ∏≠=nkj j ,1xx x x --)2.MATLAB 的实现 Lagrange.mFunction y=lagrange(x0,y0,x) 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;nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;end3.题目举例例: 给出F(x)=ln(x)的数值表,用LAGRANGE插值计算ln0.54的近似值解: 在MATLAB命令窗口中输入x=[0.4:0.1:0.8];y=[-0.916291 -0.693147 -0.510826 -0.356675 -0.223144];lagrange(x,y,0.54)ans=-0.616143说明:同精确解ln(0.54)=-0.616186比较起来,误差还是可以接受的,特别是在工程应用之中.(二)RUNGE现象的产生和分段线性插值1.方法介绍上面根据区间[a,b]上给出的节点做插值多项式ln(x)近似值,一般总认为ln(x)的次数越高逼近f(x)的精度就越好。