Matlab数据插值与拟合.ppt
- 文档编号:2667790
- 上传时间:2022-11-06
- 格式:PPT
- 页数:49
- 大小:1.02MB
Matlab数据插值与拟合.ppt
《Matlab数据插值与拟合.ppt》由会员分享,可在线阅读,更多相关《Matlab数据插值与拟合.ppt(49页珍藏版)》请在冰豆网上搜索。
数据插值与拟合数据插值与拟合nn在工程实践与科学实验中在工程实践与科学实验中,常常需要从一组试验数常常需要从一组试验数据之中找到自变量与因变量之间的关系,一般可据之中找到自变量与因变量之间的关系,一般可用一个近似函数表示。
函数产生的办法因观测数用一个近似函数表示。
函数产生的办法因观测数据的要求不同而异,数据据的要求不同而异,数据插值插值与与拟合拟合是两种常用是两种常用的方法。
的方法。
nn4.1MATLAB4.1MATLAB中的插值函数中的插值函数nn4.24.2拉格朗日插值法拉格朗日插值法nn4.34.3利用均差的牛顿插值法利用均差的牛顿插值法nn4.44.4利用差分的牛顿插值法利用差分的牛顿插值法nn4.54.5HermiteHermite插值插值nn4.64.6splinespline三次样条插值三次样条插值nn4.74.7多项式曲线拟合多项式曲线拟合nn4.84.8最小二乘拟合最小二乘拟合4.1MATLAB中的插值函数中的插值函数nn函数插值来源于函数的以下问题:
只知道函数在某区间有定义且已得到区间内一些离散点的值,希望用简单的表达式近似给出函数在此区间上的整体描述,并能与已知离散点上的值相等。
nn插值法按插值函数的形式主要分为以下几种形式:
(1)代数多项式插值;
(2)三角多项式插值;(3)有理分式插值。
nn代数多项式插值是最常用的插值方式,其内容也代数多项式插值是最常用的插值方式,其内容也是最丰富的,它又可分为以下几种插值方式:
是最丰富的,它又可分为以下几种插值方式:
(11)非等距节点插值非等距节点插值,包括拉格朗日插值、利用,包括拉格朗日插值、利用均差的牛顿插值和埃特金插值;均差的牛顿插值和埃特金插值;(22)非等距节点插值非等距节点插值,包括利用差分的牛顿插值,包括利用差分的牛顿插值和高斯插值等;和高斯插值等;(33)在插值中增加了导数的)在插值中增加了导数的HermiteHermite(埃尔米特)(埃尔米特)插值插值;(44)分段插值分段插值,包括分段线性插值、分段,包括分段线性插值、分段HermiteHermite(埃尔米特)插值和样条函数插值;(埃尔米特)插值和样条函数插值;(55)反插值反插值。
nn按被插值函数的变量个数还可把插值法分为按被插值函数的变量个数还可把插值法分为一元一元插值插值和和多元插值多元插值。
4.1.1一元插值函数一元插值函数nnMATLABMATLAB中的一元插值函数为中的一元插值函数为interp1()interp1(),它的功能是一维,它的功能是一维数据插值(表格查找)。
该命令对数据点之间进行计算内数据插值(表格查找)。
该命令对数据点之间进行计算内插值,它出一元函数插值,它出一元函数f(xf(x)在中间点的数值,其中函数在中间点的数值,其中函数f(xf(x)由由所给数据决定。
所给数据决定。
nn一元插值函数一元插值函数interp1()interp1()的几种调用格式如表的几种调用格式如表4-14-1所示。
所示。
表表4-14-1一维插值插值函数一维插值插值函数interp1interp1的语法格式的语法格式语法形式语法形式说明说明y=interp1(y=interp1(xx,YY,x,xii)由已知点集由已知点集(xx,YY)插值计算)插值计算xxii上的函数值上的函数值y=interp1(y=interp1(xx,YY,x,xii)相当于相当于xx=1:
length(=1:
length(YY)的的interp(interp(xx,YY,x,xii)y=interp1(y=interp1(xx,YY,x,xii,method),method)用指定插值方法计算插值点用指定插值方法计算插值点xxii上的函数值上的函数值y=interp1(y=interp1(xx,YY,x,xii,method,method,extrapextrap)对对xxii中超出已知点集的插值点用指定插值中超出已知点集的插值点用指定插值方法计算函数值方法计算函数值y=interp1(y=interp1(xx,YY,x,xii,method,method,extrapextrap,extrapval),extrapval)用指定方法插值用指定方法插值xxii上的函数值,超出已知上的函数值,超出已知点集处函数值取点集处函数值取extrapvalextrapvaly=interp1(y=interp1(xx,YY,x,xii,method,method,pppp)用指定方法插值,但返回结果为分段多用指定方法插值,但返回结果为分段多项式项式methodmethod方法描述方法描述nearestnearest最邻近插值:
插值点处函数值取与插值点最邻近的已知点的函数值最邻近插值:
插值点处函数值取与插值点最邻近的已知点的函数值linerliner分段线性插值:
插值点处函数值由连接其最邻近的两侧点的线性函分段线性插值:
插值点处函数值由连接其最邻近的两侧点的线性函数预测,数预测,MATLABMATLAB中中interp1interp1的默认方法的默认方法splinespline样条插值:
默认为三次样条插值。
可用样条插值:
默认为三次样条插值。
可用splinespline函数代替函数代替pchippchip三次三次HermiteHermite多项式插值。
可用多项式插值。
可用pchippchip函数代替函数代替cubiccubic同同pchippchip,三次,三次HermiteHermite多项式插值多项式插值nnMATLABMATLAB中一维插值有多种算法,由中一维插值有多种算法,由interp1interp1函数函数中的中的methodmethod指定。
指定。
MATLABMATLAB中一维插值的各种算中一维插值的各种算法如表法如表4-24-2所示。
所示。
表表4-24-2一维插值算法一维插值算法(method)(method)1.Linear(分段线性插值)(分段线性插值)nn它的算法是在每个小区间它的算法是在每个小区间xxii,x,xi+1i+1上采用简单的线性插上采用简单的线性插值。
在区间值。
在区间xxii,x,xi+1i+1上的子插值多项式为:
上的子插值多项式为:
由此整个区间由此整个区间xxii,x,xi+1i+1上的插值函数为:
上的插值函数为:
其中其中定义如下:
定义如下:
nn分段线性插值方法在速度和误差之间取得了比较好的均衡,其插值函数具有连续性,但在已知数据点处的斜率一般不会改变,因此不是光滑的。
分段线性插值方法是MATLAB一维插值默认的方法。
2.Spline(样条插值)(样条插值)nn样条插值样条插值是用分段低次多项式去逼近函数。
样条函是用分段低次多项式去逼近函数。
样条函数可以给出光滑数可以给出光滑的插值曲线,只要在插值区间端的插值曲线,只要在插值区间端点提供某些导数信息,样条插值可以适应不同光滑点提供某些导数信息,样条插值可以适应不同光滑需求。
需求。
三次样条三次样条是使用最为广泛的样条插值,它在是使用最为广泛的样条插值,它在每个子区间每个子区间xxii,x,xi+1i+1上都是有二阶连续导数的三次多上都是有二阶连续导数的三次多项式,即项式,即其中其中都是三次多项式。
都是三次多项式。
nn对于给定的离散的测量数据经对于给定的离散的测量数据经xx,yy(称为断点),(称为断点),要寻找一个三次多项式要寻找一个三次多项式y=y=p(xp(x),以逼近每对数据以逼近每对数据(xxii,y,yii)点间曲线。
过两点点间曲线。
过两点(xxii,y,yii)和和(x(xi+1i+1,y,yi+1i+1)只能确定一只能确定一条直线,而通过一点的三次多项式曲线有无穷多条。
条直线,而通过一点的三次多项式曲线有无穷多条。
为使通过中间断点的三次多项式曲线具有唯一性,为使通过中间断点的三次多项式曲线具有唯一性,要增加以下的连续条件和边界条件(因为三次多项要增加以下的连续条件和边界条件(因为三次多项式有式有44个系数):
个系数):
(11)三次多项式在点)三次多项式在点(xxii,y,yii)处有:
处有:
;(22)三次多项式在点)三次多项式在点(xxii,y,yii)处有:
处有:
;(33)三次多项式在点)三次多项式在点(xxii,y,yii)处有:
处有:
;(44)边界条件:
)边界条件:
。
nn表表4-24-2中各种方法中:
中各种方法中:
(11)nearestnearest方法速度最快,占用内存最小,但一般方法速度最快,占用内存最小,但一般来说误差最大,插值结果最不光滑;来说误差最大,插值结果最不光滑;(22)splinespline三次样条插值是所有插值方法中运行耗三次样条插值是所有插值方法中运行耗时最长的,其插值函数以及插值函数的一阶、二阶时最长的,其插值函数以及插值函数的一阶、二阶导函数都连续,因此是最光滑的插值方法,占用内导函数都连续,因此是最光滑的插值方法,占用内存上比存上比cubiccubic方法小,但当已知数据点不均匀分布时方法小,但当已知数据点不均匀分布时可能出现异常结果。
可能出现异常结果。
(33)cubiccubic三次多项式插值法中插值函数及其一阶导三次多项式插值法中插值函数及其一阶导数都是连续的,因此其插值结果也比较光滑,运算数都是连续的,因此其插值结果也比较光滑,运算速度比速度比splinespline方法略快,但占用内存最多。
在实际方法略快,但占用内存最多。
在实际的使用中,应根据实际需求和运算条件选择合适的的使用中,应根据实际需求和运算条件选择合适的算法。
算法。
例例4-1用用interp1对对sin函数进行分段线性插值。
函数进行分段线性插值。
解:
解:
在在MATLABMATLAB命令窗口中输入以下命令:
命令窗口中输入以下命令:
x=0:
2*pi;x=0:
2*pi;y=y=sin(xsin(x););xx=0:
0.5:
2*pixx=0:
0.5:
2*piyyyy=interp1(x,y,xx);=interp1(x,y,xx);plot(x,y,s,xx,yyplot(x,y,s,xx,yy)注:
注:
例例4-14-1中用默认的中用默认的(分段线性插值的分段线性插值的linear)linear)对已知的对已知的77个个sinsin函数的函数的数据点进行插值,用数据点进行插值,用plotplot画出插值结果。
从图中可以看出分段线性就是联结两个画出插值结果。
从图中可以看出分段线性就是联结两个邻近的已知点的线性函数插值计算该区间内插值点上的函数邻近的已知点的线性函数插值计算该区间内插值点上的函数值。
值。
例例4-2用其他一维插值方法对以下用其他一维插值方法对以下7个离散数据点个离散数据点(1,3.5)、(2,2.1)、(3,1.3)、(4.0.8)、(5,2.9)、(6,4.2)、(7,5.7)进行一维插值方法。
进行一维插值方法。
解:
解:
在在MATLABMATLAB命令窗口中输入以下命令:
命令窗口中输入以下命令:
x=1234567;y=3.52.11.30.82.94.25.7;xx=1:
0.5:
7;y1=interp1(x,y,xx,nearest);y2=interp1(x,y,xx,spline);y3=interp1(x,y,xx,cubic);plot(x,y,o,xx,y1,-,xx,y2,-.,xx,y3,:
)4.2拉格朗日插值法拉格朗日插值法nn拉格朗日插值法拉格朗日插值法是基于基函数的插值方法,插值多项是基于基函数的插值方法,插值多项式可表示为式可表示为其中其中称为称为ii次基函数:
次基函数:
nn在MATLAB中编程实现拉格朗日插值法拉格朗日插值法函数为:
函数为:
LanguageLanguage。
nn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 数据 拟合