文档详情

matlab数值分析插值与曲线拟合.ppt

发布:2017-03-26约9.19千字共54页下载文档
文本预览下载声明
MATLAB的插值与曲线拟合 第八讲 主要内容 插值运算 曲线拟合 分段函数 拉格拉日插值 牛顿插值 Hermite插值 MATLAB插值与曲线拟合 简介 把试验数据绘制成图是点状分布,将这些点练成曲线,然后转化为有意义的数学函数,才能对数据做对比和分析 上述过程涉及插值(interpolation)和曲线拟合(curve-fitting) 插值过程中认为数据是准确的,求取描述点之间的数据 曲线拟合中,假定已知曲线的规律,做曲线的最佳逼近,不需要经过所有数据点 MATLAB插值与曲线拟合 插值计算 假设试验得到一组数据形态为: f(xk);其中k=1,2,…,n;且x1=axn=c 如果某些点{xi}不属于上述的{xi} ,但是a=xi=c,要估计这些点的函数值f(xi)就需要做插值运算 根据原始数据所描述的函数的复杂程度,存在有: 一维插值 二维插值 Spline插值 MATLAB插值与曲线拟合 一维插值 一维插值可以是线性的,也可以是三次多项式或spline插值 一维线性插值是假设两个数据中的变化为线性关系,因此可由已知点的坐标(f(a),a)和(f(c),c)计算b点的函数值f(b) 一维线性插值是最简单的插值,适用范围很小 可用较为复杂的三次多项式或spline来近似找到原函数f(x) MATLAB插值与曲线拟合 一维插值 MATLAB的一维插值函数为interp1(a,c,b)和interp1(a,c,b,method) 其中a,c为已知数据,而b为要插值的数据点,method为预先设定的插值方法,分别为线性(linear)、三次多项式(cubic)和spline 如果数据的变化较大,以spline插值所形成的曲线最为平滑,效果最好 三次多项式所得的曲线平滑度介于linear和spline之间 MATLAB插值与曲线拟合 一维插值—举例 假设汽车引擎在额定转速下温度与时间的测量值关系如下0—0; 1—20; 2—60; 3—68; 4—77; 5—110;用一维插值法估计时间为2.6s和4.9s时的温度值。 分别用三种方法估计其值 x=[0 1 2 3 4 5]; y=[0 20 60 68 77 110]; y1=interp1(x,y,2.6) y2=interp1(x,y,[2.6 4.9]) y3=interp1(x,y,[2.6 4.9],cubic) y3=interp1(x,y,[2.6 4.9],spline) MATLAB插值与曲线拟合 一维插值—举例 画出插值后的时间与温度变化曲线图。 t=[0 1 2 2.6 3 4 4.9 5]; y1=[0 20 60 64.8 68 77 106.7 110]; y2=[0 20 60 65.2 68 77 105.6 110]; y3=[0 20 60 67.3 68 77 105.2 110]; plot(t,y1,t,y2,t,y3) MATLAB插值与曲线拟合 MATLAB插值与曲线拟合 二维插值 假设试验所得到的一组数据形态为z=f(xk,yk),期中k=1,2,,,n;如果某些点(xi,yi)不属于上述点,要估计这些点的函数值f(xi,yi)就需要进行二维擦绘制运算,二维插值相当于二元函数运算 MATLAB中二维插值函数是interp2(x,y,z,xi,yi),期中xi,yi为要插值的数据点,x,y,z为已知数据 通过设定interp2(x,y,z,xi,yi,method)也可以设定不同的插值方法,有linear、cubic和spline三种 MATLAB插值与曲线拟合 二维插值—举例 假设汽车的引擎转速、温度与时间的测量值关系如下表,估计时间为2.6s和速度为2500r时的温度。 MATLAB插值与曲线拟合 二维插值—举例 应用函数interp2函数分别用linear、cubic、spline来估计时间2.6s和转速2500r的温度值。 t=[1 2 3 4 5]; speed=[2000 3000 4000]; temp=[20 110 176;60 180 220;68 240 349;77 310 450;110 405 503]; temp1=interp2(speed,t,temp,2500,2.6) temp2=interp2(speed,t,temp,2500,2.6,cubic) temp3=interp2(speed,t,temp,2500,2.6,spline) MATLAB插值与曲线拟合 spline插值 函数spline有两种应用形式,spline(x,y,xi)和spline(x,y) spline(x,y,xi)与interp1(x,y,xi,spline)效果一样 举例 x=[0 1 2 3 4 5]
显示全部
相似文档