《拟合与插值专题ppt课件.ppt》由会员分享,可在线阅读,更多相关《拟合与插值专题ppt课件.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、刘学艺刘学艺 2010/7/132010/7/13q在大量的应用领域中,人们经常面临用一个解析在大量的应用领域中,人们经常面临用一个解析函数描述数据函数描述数据(通常是测量值通常是测量值)的任务。对这个问的任务。对这个问题有两种方法。题有两种方法。q 一种是插值法,数据假定是正确的,要求以某种方法描述数一种是插值法,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。据点之间所发生的情况。q 另一种方法是曲线拟合或回归。人们设法找出某条光滑曲线,另一种方法是曲线拟合或回归。人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点。它最佳地拟合数据,但不必要经过任何数据点。 q
2、 本专题的主要目的是:了解插值和拟合的基本内容;本专题的主要目的是:了解插值和拟合的基本内容;掌握用掌握用MatlabMatlab求解插值与拟合问题的基本命令。求解插值与拟合问题的基本命令。内容提纲1.拟合问题引例及基本理论2.Matlab求解拟合问题3.应用实例4.插值问题引例及基本理论5.Maltab求解插值问题6.应用实例拟合问题拟合问题拟拟 合合 问问 题题 引引 例例 1 1温度温度t(0C) 20.5 32.7 51.0 73.0 95.7电阻电阻R( ) 765 826 873 942 1032已知热敏电阻数据:已知热敏电阻数据:求求60600C时的电阻时的电阻R。2040608
3、010070080090010001100 设设 R=at+ba,b为待定系数为待定系数拟拟 合合 问问 题题 引引 例例 2 2 t (h) 0.25 0.5 1 1.5 2 3 4 6 8c ( g/ml) 19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01已知一室模型快速静脉注射下的血药浓度数据已知一室模型快速静脉注射下的血药浓度数据(t=0注射注射300mg)求血药浓度随时间的变化规律求血药浓度随时间的变化规律c(t).作半对数坐标系作半对数坐标系(semilogy)下的图形下的图形00( ),ktc tc eck为待定系数0246810
4、0101102MATLAB(aa1)曲曲 线线 拟拟 合合 问问 题题 的的 提提 法法已知一组(二维)数据,即平面上已知一组(二维)数据,即平面上 n个点个点(xi,yi) i=1,n, 寻求一个函数(曲线)寻求一个函数(曲线)y=f(x), 使使 f(x) 在某种准则下与所在某种准则下与所有数据点最为接近,即曲线拟合得最好。有数据点最为接近,即曲线拟合得最好。 +xyy=f(x)(xi,yi)i i 为点为点(xi,yi) 与与曲线曲线 y=f(x) 的距离的距离线性最小二乘拟合线性最小二乘拟合 f(x)=a1r1(x)+ +amrm(x)中中函数函数rr1 1(x), (x), r rm
5、 m(x(x)的选取的选取 1. 1. 通过机理分析建立数学模型来确定通过机理分析建立数学模型来确定 f(x)f(x);+f=a1+a2xf=a1+a2x+a3x2f=a1+a2x+a3x2f=a1+a2/xf=aebxf=ae-bx2. 2. 将数据将数据 (xi,yi) i=1, n 作图,通过直观判断确定作图,通过直观判断确定 f(x):曲线拟合问题最常用的解法曲线拟合问题最常用的解法线性最小二乘法的基本思路线性最小二乘法的基本思路第一步: :先选定一组函数先选定一组函数 r1(x), r2(x), rm(x), mn, 令令 f(x)=a1r1(x)+a2r2(x)+ +amrm(x)
6、 (1)其中其中 a1,a2, am 为待定系数。为待定系数。 第二步: 确定确定a1,a2, am 的准则(最小二乘准则):的准则(最小二乘准则):使使n个点个点(xi,yi) 与与曲线曲线 y=f(x) 的距离的距离 i 的平方和最小的平方和最小 。记记 )2()()(),(211211221iiknimkkininiiimyxrayxfaaaJ 问题归结为,求问题归结为,求 a1,a2, am 使使 J(a1,a2, am) 最小。最小。线性最小二乘法的求解:预备知识线性最小二乘法的求解:预备知识超定方程组超定方程组:方程个数大于未知量个数的方程组:方程个数大于未知量个数的方程组)( 2
7、21111212111mnyarararyarararnmnmnnmm即即 Ra=ynmnmnnmyyyaaarrrrrrR112111211,其中其中超定方程一般是不存在解的矛盾方程组。超定方程一般是不存在解的矛盾方程组。 如果有向量如果有向量a使得使得 达到最小,达到最小,则称则称a为上述为上述超定方程的最小二乘解超定方程的最小二乘解。 212211)(imniimiiyararar线性最小二乘法的求解线性最小二乘法的求解定理:定理:当当R RT TR R可逆时,超定方程组(可逆时,超定方程组(3 3)存在最小二乘解,)存在最小二乘解, 且即为方程组且即为方程组 R RT TRa=RRa=
8、RT Ty y - -正则(正规)方程组正则(正规)方程组的解:的解:a=(Ra=(RT TR)R)-1-1R RT Ty y所以,曲线拟合的最小二乘法要解决的问题,实际上就是求以所以,曲线拟合的最小二乘法要解决的问题,实际上就是求以下超定方程组的最小二乘解的问题。下超定方程组的最小二乘解的问题。nmnmnmyyyaaaxrxrxrxrR111111,)()()()(其中其中Ra=y (3)用用MATLAB解拟合问题解拟合问题1 1、线性最小二乘拟合、线性最小二乘拟合2 2、非线性最小二乘拟合、非线性最小二乘拟合用用MATLAB作线性最小二乘拟合作线性最小二乘拟合1. 1. 作多项式作多项式f
9、(x)=a1xm+ +amx+am+1拟合拟合, ,可利用已有命令可利用已有命令:a=polyfit(x,y,m)3.3.对超定方程组对超定方程组)(11nmyaRnmmn可得最小二乘意义下的解。可得最小二乘意义下的解。,用,用yRa2.2.多项式在多项式在x x处的值处的值y y的计算命令:的计算命令:y=polyvaly=polyval(a a,x x)输出拟合多项式系数输出拟合多项式系数a=a1,am,am+1 (数组)数组)输入同长度输入同长度数组数组X,Y拟合多项式拟合多项式次数次数即要求即要求 出二次多项式出二次多项式:3221)(axaxaxf中中 的的123(,)Aa a a
10、使得使得:1121() iiif xy最小例例 对下面一组数据作二次多项式拟合对下面一组数据作二次多项式拟合xi 0.1 0.2 0.4 0.5 0.6 0.7 0.8 0.9 1 yi 1.978 3.28 6.16 7.34 7.66 9.58 9.48 9.30 11.2 211112222232111111,1,1,1xxyayxxaayxx1)输入命令)输入命令:x=0:0.1:1; y=-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2; R=(x.2), x, ones(11,1); A=Ry11 11211121x
11、xxxR此时MATLAB(zxec1)解法解法1 1解超定方程的方法解超定方程的方法2)计算结果)计算结果: = -9.8108, 20.1293, -0.03170317.01293.208108.9)(2xxxfRAy2)计算结果:)计算结果: = -9.8108, 20.1293, -0.0317解法解法2用多项式拟合的命令用多项式拟合的命令MATLAB(zxec2)00.20.40.60.81-20246810120317.01293.208108.9)(2xxxf1)输入命令:)输入命令:x=0:0.1:1; y=-0.447,1.978,3.28,6.16,7.08,7.34,7.
12、66,9.56,9.48,9.30,11.2;A=polyfit(x,y,2)z=polyval(A,x);plot(x,y,k+,x,z,r) %作出数据点和拟合曲线的图形作出数据点和拟合曲线的图形1. 1. lsqcurvefitlsqcurvefit已知数据点数据点:xdataxdata= =(xdata1,xdata2,xdataxdatan n) ydataydata= =(ydataydata1 1,ydataydata2 2,ydataydatan n)用用MATLAB作非线性最小二乘拟合作非线性最小二乘拟合两个求非线性最小二乘拟合的函数:两个求非线性最小二乘拟合的函数:lsqc
13、urvefitlsqcurvefit、lsqnonlinlsqnonlin。相同点和不同点:两个命令都要先建立相同点和不同点:两个命令都要先建立M-M-文件文件fun.mfun.m,定义函,定义函数数f(x)f(x),但定义,但定义f(x)f(x)的方式不同,请参考例题的方式不同,请参考例题。211( ,) 2niiiF x xdataydata最小 lsqcurvefitlsqcurvefit用以求含参量用以求含参量x x(向量)的向量值函数(向量)的向量值函数F(x,xdataF(x,xdata)=)=(F F(x x,xdataxdata1 1),),F F(x x,xdataxdata
14、n n)T T中的参变量中的参变量x(x(向量向量),),使得使得 输入格式输入格式: : (1) x = lsqcurvefit (fun,x0,xdata,ydata); (2) x =lsqcurvefit (fun,x0,xdata,ydata,lb, ub); (3) x =lsqcurvefit (fun,x0,xdata,ydata, lb, ub, options); (4) x, resnorm = lsqcurvefit (fun,x0,xdata,ydata,); (5) x, resnorm, residual = lsqcurvefit (fun,x0,xdata,y
15、data,); fun是一个事先建立的是一个事先建立的定义函数定义函数F(x,xdata) 的的M-文件文件, 自变量为自变量为x和和xdata说明:说明:x = lsqcurvefit (fun,x0,xdata,ydata,options);迭代初值迭代初值已知数据点已知数据点选项见无选项见无约束优化约束优化 lsqnonlin用以求含参量用以求含参量x x(向量)的向量值函数(向量)的向量值函数 f(x)f(x)=(f=(f1 1(x),f(x),f2 2(x),(x),f,fn n(x)(x)T T 中的参量中的参量x x,使得,使得 最小。最小。 其中其中 fi(x)=f(x,xda
16、tai,ydatai) =F(x,xdatai)-ydatai22212( ) ( )( )( )( )Tnfx f xf xfxfx2. lsqnonlin已知数据点:已知数据点: xdataxdata= =(xdata1,xdata2,xdataxdatan n) ydataydata= =(ydataydata1 1,ydataydata2 2,ydataydatan n)输入格式:输入格式: 1) x=lsqnonlin(fun,x0); 2) x= lsqnonlin (fun,x0,lb,ub); 3) x= lsqnonlin (fun,x0, ,lb,ub,options);
17、4) x, resnorm= lsqnonlin (fun,x0,); 5) x, resnorm , residual= lsqnonlin (fun,x0,);说明:说明:x= lsqnonlinlsqnonlin (fun,x0,options););fun是一个事先建立的是一个事先建立的定义函数定义函数f(x)的的M-文件,文件,自变量为自变量为x迭代初值迭代初值选项见无选项见无约束优化约束优化100200 30040050060070080090010004.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59jt310jc100.02211
18、1min( , , )22jktjjF a b kabec例例2 用下面一组数据拟合用下面一组数据拟合 中的参数中的参数a,b,kktbeatc2 . 0 . 0)(该问题即解最优化问题:该问题即解最优化问题:MATLAB(fzxec1) 1 1)编写)编写M-M-文件文件 curvefun1.mcurvefun1.m function f=curvefun1(x,tdata) f=x(1)+x(2)*exp(-0.02*x(3)*tdata) %其中其中 x(1)=a; x(2)=b;x(3)=k;2)输入命令)输入命令tdatatdata=100:100:1000=100:100:1000
19、cdatacdata= =1e-03* *4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59;6.50,6.59; x0=0.2,0.05,0.05; x0=0.2,0.05,0.05; x=lsqcurvefitx=lsqcurvefit (curvefun1,x0,tdata,cdata) (curvefun1,x0,tdata,cdata) f= f= curvefun1(x,tdata) F(x,tdata)= ,x=(a,b,k)Tktktbeabea),(
20、10102. 002. 0解法解法1 1. 用命令用命令lsqcurvefitlsqcurvefit3 3)运算结果)运算结果:f =0.0043 0.0051 0.0056 0.0059 0.0061 f =0.0043 0.0051 0.0056 0.0059 0.0061 0.0062 0.0062 0.0063 0.0063 0.0063 0.0062 0.0062 0.0063 0.0063 0.0063 x =0.0063 -0.0034 0.2542 x =0.0063 -0.0034 0.25424)结论)结论:a=0.0063, b=-0.0034, k=0.2542 0.0
21、2 0.25420.0050840.00630.00340.00630.0034ttc teeMATLAB(fzxec2)1)编写编写M-M-文件文件 curvefun2.mcurvefun2.m function f=curvefun2(x) tdata=100:100:1000; cdata=1e-03*4.54,4.99,5.35,5.65,5.90, 6.10,6.26,6.39,6.50,6.59; f=x(1)+x(2)*exp(-0.02*x(3)*tdata)- cdata2)输入命令)输入命令: x0=0.2,0.05,0.05;x=lsqnonlin(curvefun2,x
22、0)f= curvefun2(x)函数函数curvefun2的自变量是的自变量是x,cdata和和tdata是已知参数,故应是已知参数,故应将将cdata tdata的值写在的值写在curvefun2.m中中解法解法 2 2 用命令用命令lsqnonlinlsqnonlin 1010.020.02110,(,)ktktTf xF x tdata ctadaabecabec x= x=(a a,b b,k k)3 3)运算结果为)运算结果为 f =1.0e-003 f =1.0e-003 * *(0.2322 -0.1243 -0.2495 -0.2413 0.2322 -0.1243 -0.2
23、495 -0.2413 -0.1668 -0.0724 0.0241 0.1159 0.2030 0.2792-0.1668 -0.0724 0.0241 0.1159 0.2030 0.2792) x =0.0063 -0.0034 0.2542x =0.0063 -0.0034 0.2542可以看出,两个命令的计算结果是相同的可以看出,两个命令的计算结果是相同的。4)结论)结论:即拟合得即拟合得a=0.0063 b=-0.0034 k=0.25420.0063 b=-0.0034 k=0.2542说明:拟合与统计回归 区别与联系 统计回归 线性回归 (regress命令) 非线性回归非线性
24、回非线性回 归归 (1)确定回归系数的命令: beta,r,J=nlinfit(x,y,model, beta0)(2)非线性回归命令:nlintool(x,y,model, beta0,alpha)1、回归:、回归:残差Jacobian矩阵回归系数的初值是事先用m-文件定义的非线性函数估计出的回归系数输入数据x、y分别为 矩阵和n维列向量,对一元非线性回归,x为n维列向量。mn2、预测和预测误差估计:、预测和预测误差估计:Y,DELTA=nlpredci(model, x,beta,r,J)求nlinfit 或nlintool所得的回归函数在x处的预测值Y及预测值的显著性为1-alpha的置
25、信区间Y DELTA.例题的求解例题的求解:1、对将要拟合的非线性模型 y=axbe/,建立 m-文件 volum.m 如下: function yhat=volum(beta,x) yhat=beta(1)*exp(beta(2)./x);2、输入数据: x=2:16; y=6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76; beta0=8 2;3、求回归系数: beta,r ,J=nlinfit(x,y,volum,beta0); beta得结果:beta = 11.6036 -1.0
26、641即得回归模型为:xey10641. 16036.11To MATLAB(liti41)4、预测及作图: YY,delta=nlpredci(volum,x,beta,r ,J); plot(x,y,k+,x,YY,r)插值问题插值问题拟合与插值的关系拟合与插值的关系说明:说明:函数插值与曲线拟合都是要根据一组数据构造一个函数作为近函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上完全不同。似,由于近似的要求不同,二者的数学方法上完全不同。 实例:实例:下面数据是某次实验所得,希望得到x和 f之间的关系?x124791 21 31 51 7f1
27、.53 .96 .611 .71 5 .61 8 .81 9 .62 0 .62 1 .1MATLAB(cn)问题:问题:给定一批数据点,需确定满足特定要求的曲线或曲面解决方案:解决方案:若不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,就是数据拟合数据拟合,又称曲线拟合或曲面拟合。若要求所求曲线(面)通过所给所有数据点,就是插值问题插值问题;最临近插值、线性插值、样条插值与曲线拟合结果:最临近插值、线性插值、样条插值与曲线拟合结果:0246810121416180510152025已知数据点spline三次多项式插值0246810121416180510152025已知数据
28、点linest三次多项式插值0246810121416180510152025已知数据点nearest三次多项式插值拉格朗日插值拉格朗日插值分段线性插值分段线性插值三次样条插值三次样条插值一一 维维 插插 值值一、一、插值的定义插值的定义二、插值的方法二、插值的方法三、用三、用Matlab解插值问题解插值问题返回返回返回返回二维插值二维插值一、一、二维插值定义二维插值定义二、网格节点插值法二、网格节点插值法三、三、用用MatlabMatlab解插值问题解插值问题最邻近插值最邻近插值分片线性插值分片线性插值双线性插值双线性插值网格节点数据的插值网格节点数据的插值散点数据的插值散点数据的插值一维插
29、值的定义一维插值的定义已知已知 n+1个节点个节点, 1 , 0(),(njyxjj其中其中jx互不相同,不妨设互不相同,不妨设),10bxxxan求任一插值点求任一插值点)(*jxx 处的插值处的插值.*y0 x1xnx0y1y节点可视为由节点可视为由)(xgy 产生产生,,g表达式复杂表达式复杂,,或无封闭形式或无封闭形式,,或未知或未知.。*x*y 构造一个构造一个(相对简单的相对简单的)函数函数),(xfy 通过全部节点通过全部节点, 即即), 1 ,0()(njyxfjj再用再用)(xf计算插值,即计算插值,即).(*xfy 0 x1xnx0y1y*x*y返回返回 称为拉格朗日插值基
30、函数拉格朗日插值基函数。n0iiiny)x(L)x(P 已知函数f(x)在n+1个点x0,x1,xn处的函数值为 y0,y1,yn 。求一n次多项式函数Pn(x),使其满足: Pn(xi)=yi,i=0,1,n. 解决此问题的拉格朗日插值多项式公式如下其中Li(x) 为n次多项式:)xx()xx)(xx()xx)(xx()xx()xx)(xx()xx)(xx()x(Lni1ii1ii1i0in1i1i10i拉格朗日拉格朗日(Lagrange)插值插值拉格朗日拉格朗日(Lagrange)插值插值特别地特别地:两点一次两点一次(线性线性)插值多项式插值多项式: 101001011yxxxxyxxx
31、xxL三点二次三点二次(抛物抛物)插值多项式插值多项式: 2120210121012002010212yxxxxxxxxyxxxxxxxxyxxxxxxxxxL .,满足插值条件直接验证可知xLn 拉格朗日多项式插值的这种振荡现象叫 Runge现象现象55,11)(2xxxg 采用拉格朗日多项式插值:选取不同插值节点个数n+1,其中n为插值多项式的次数,当n分别取2,4,6,8,10时,绘出插值结果图形.例例返回返回To MatlabTo Matlablch(larg1)lch(larg1)分段线性插值分段线性插值其它,0,)()()(1111110jjjjjjjjjjjnjjjnxxxxxx
32、xxxxxxxxxlxlyxL计算量与n无关;n越大,误差越小.nnnxxxxgxL0),()(limxjxj-1xj+1x0 xnxoyTo MATLABxch11,xch12,xch13,xch14返回返回66,11)(2xxxg例例用分段线性插值法求插值用分段线性插值法求插值,并观察插值误差并观察插值误差.1.在在-6,6中平均选取中平均选取5个点作插值个点作插值(xch11)4.在在-6,6中平均选取中平均选取41个点作插值个点作插值(xch14)2.在在-6,6中平均选取中平均选取11个点作插值个点作插值(xch12)3.在在-6,6中平均选取中平均选取21个点作插值个点作插值(xc
33、h13)比分段线性插值更光滑。比分段线性插值更光滑。xyxi-1 xiab 在数学上,光滑程度的定量描述是:函数(曲线)的k阶导数存在且连续,则称该曲线具有k阶光滑性。 光滑性的阶次越高,则越光滑。是否存在较低次的分段多项式达到较高阶光滑性的方法?三次样条插值就是一个很好的例子。三次样条插值三次样条插值, 1,),()(1nixxxxsxSiii,)()3), 1 ,0()()2), 1()()10223niiiiiiixxCxSniyxSnidxcxbxaxs) 1, 1()()(),()(),()(111 nixsxsxsxsxsxsiiiiiiiiiiii自然边界条件)(0)()()40
34、 nxSxS)(,)4)3)2xSdcbaiiiig g( (x x) )为被插值函数为被插值函数。lim( )( )nS xg x 三次样条插值三次样条插值例例66,11)(2xxxg用三次样条插值选取用三次样条插值选取11个基点计算插值个基点计算插值(ych)返回返回To MATLABych(larg1)用用MATLABMATLAB作插值计算作插值计算一维插值函数:一维插值函数:yi=interp1(x,y,xi,method)插值方法插值方法被插值点被插值点插值节点插值节点xixi处的插处的插值结果值结果nearest :最邻近插值:最邻近插值linear : 线性插值;线性插值;spl
35、ine : 三次样条插值;三次样条插值;cubic : 立方插值。立方插值。缺省时:缺省时: 分段线性插值。分段线性插值。 注意:所有的插值方法都要求注意:所有的插值方法都要求x x是单调的,并且是单调的,并且xi不不能够超过能够超过x的范围。的范围。 例:在例:在1-121-12的的1111小时内,每隔小时内,每隔1 1小时测量一次小时测量一次温度,测得的温度依次为:温度,测得的温度依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424。试估计每隔。试估计每隔1/101/10小时的小时的温度值。温度值。To MATLAB(te
36、mp)hours=1:12;temps=5 8 9 15 25 29 31 30 22 25 27 24;h=1:0.1:12;t=interp1(hours,temps,h,spline); (直接输出数据将是很多的)plot(hours,temps,+,h,t,hours,temps,r:) %作图xlabel(Hour),ylabel(Degrees Celsius)xy机翼下轮廓线X035791 11 21 31 41 5Y01 . 21 . 72 . 02 . 12 . 01 . 81 . 21 . 01 . 6例例 已知飞机下轮廓线上数据如下,求已知飞机下轮廓线上数据如下,求x每改
37、变每改变0.1时的时的y值。值。To MATLAB(plane)返回返回二维插值的定义二维插值的定义 xyO O第一种(网格节点):第一种(网格节点): 已知已知 m n个节点个节点 ),2 , 1;,.,2 , 1(),(njmizyxijji 其中其中jiyx ,互不相同,不妨设互不相同,不妨设bxxxam 21dyyycn 21 构造一个二元函数构造一个二元函数),(yxfz 通过全部已知节点通过全部已知节点,即即再用再用),(yxf计算插值,即计算插值,即).,(*yxfz ),1 ,0;,1 ,0(),(njmizyxfijji 第二种(散乱节点):第二种(散乱节点): yx0 0已
38、知已知n个节点个节点),.,2 , 1(),(nizyxiii 其中其中),(iiyx互不相同,互不相同, 构造一个二元函数构造一个二元函数),(yxfz 通过全部已知节点通过全部已知节点,即即),1 ,0(),(nizyxfiii 再用再用),(yxf计算插值,即计算插值,即).,(*yxfz 返回返回 注意:注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。最邻近插值最邻近插值x y(x1, y1)(x1, y2)(x2, y1)(x2, y2)O O 二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。返回返回 将四个插值点(矩形的四个顶点)处的函数值依
39、次简记为: 分片线性插值分片线性插值xy (xi, yj)(xi, yj+1)(xi+1, yj)(xi+1, yj+1)O Of (xi, yj)=f1,f (xi+1, yj)=f2,f (xi+1, yj+1)=f3,f (xi, yj+1)=f4插值函数为:jii1ij1jy)xx(xxyyy)yy)(ff ()xx)(ff (f)y, x(fj23i121第二片(上三角形区域):(x, y)满足iii1ij1jy)xx(xxyyy插值函数为:)xx)(ff ()yy)(ff (f)y, x(fi43j141注意注意:(x, y)当然应该是在插值节点所形成的矩形区域内。显然,分片线性插
40、值函数是连续的;分两片的函数表达式如下:第一片(下三角形区域): (x, y)满足返回返回 双线性插值是一片一片的空间二次曲面构成。双线性插值函数的形式如下:)dcy)(bax()y, x(f其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。双线性插值双线性插值x y(x1, y1)(x1, y2)(x2, y1)(x2, y2)O O返回返回 要求要求x0,y0 x0,y0单调;单调;x x,y y可取可取为矩阵,或为矩阵,或x x取取行向量,行向量,y y取为列向量,取为列向量,x,yx,y的值分别不能超出的值分别不能超出x0,y0 x
41、0,y0的范围。的范围。z=interp2(x0,y0,z0,x,y,method)被插值点插值方法用用MATLAB作网格节点数据的插值作网格节点数据的插值插值节点被插值点的函数值nearest nearest 最邻近插值最邻近插值linear linear 双线性插值双线性插值cubic cubic 双三次插值双三次插值缺省时缺省时, , 双线性插值双线性插值例:测得平板表面例:测得平板表面3 3* *5 5网格点处的温度分别为:网格点处的温度分别为: 82 81 80 82 84 82 81 80 82 84 79 63 61 65 81 79 63 61 65 81 84 8484 84
42、 82 85 86 82 85 86 试作出平板表面的温度分布曲面试作出平板表面的温度分布曲面z=f(x,y)z=f(x,y)的图形。的图形。输入以下命令:x=1:5;y=1:3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;mesh(x,y,temps)1.先在三维坐标画出原始数据,画出粗糙的温度分布曲图.2以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值.再输入以下命令:xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi,yi,cubic);mesh(xi,yi,zi)画出插值后的温度分
43、布曲面图. To MATLAB(wendu)例例 山区地貌:山区地貌: 在某山区测得一些地点的高程如下表。平面区域为在某山区测得一些地点的高程如下表。平面区域为 1200=x=4000,1200=y=3600)试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。 X Y1200160020002400280032003600400012001130125012801230104090050070016001320145014201400130070090085020001390150015001400900110010609502
44、4001500120011001350145012001150101028001500120011001550160015501380107032001500155016001550160016001600155036001480150015501510143013001200980 通过此例对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进行比较。To MATLAB (moutain)返回返回 插值函数插值函数griddata格式为格式为: cz =griddata(x,y,z,cx,cy,method)用用MATLABMATLAB作散点数据的插值计算作散点数据的插值计算 要求要求c
45、xcx取行向量,取行向量,cycy取为列向量取为列向量。被插值点插值方法插值节点被插值点的函数值nearest nearest 最邻近插值最邻近插值linear linear 双线性插值双线性插值cubic cubic 双三次插值双三次插值v4- Matlab提供的插值方法提供的插值方法缺省时缺省时, , 双线性插值双线性插值作业与练习练习练习1 用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合
46、,与原系数比较。 分别作分别作1 1、2 2、4 4、6 6次多项式拟合,比较结果,体会欠拟合、次多项式拟合,比较结果,体会欠拟合、过拟合现象。过拟合现象。 练习练习2 用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为 ,其中V0是电容器的初始电压, 是充电常数。试由下面一组t,V数据确定V0, 。teVVVtv)()(0分别应用非线性最小二乘拟合以及非线性回归命令求解,并分别应用非线性最小二乘拟合以及非线性回归命令求解,并作比较,体会统计回归与拟合方法的区别。作比较,体会统计回归与拟合方法的区别。练习练习3 在某海域测得一些点在某海域测得一些点(x,y)(x,y)处的水深处的水深z
47、 z由下由下表给出,船的吃水深度为表给出,船的吃水深度为5 5英尺,估计在矩形区域英尺,估计在矩形区域(7575,200200)* *(-50-50,150150)里的哪些地方船要避免)里的哪些地方船要避免进入。进入。xyz129 140 103.5 88 185.5 195 1057.5 141.5 23 147 22.5 137.5 85.54 8 6 8 6 8 8xyz157.5 107.5 77 81 162 162 117.5-6.5 -81 3 56.5 -66.5 84 -33.59 9 8 8 9 4 9用插值方法作海底曲面图用插值方法作海底曲面图. .作出水深小于作出水深小于5 5的海域范围的海域范围, ,即即z=5z=5的等高线的等高线. .Thanks!