matlab数值分析-插值与曲线拟合
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB插值与曲线拟合
spline插值
采用一维线性插值运算
x=0:10; y=sin(x); xx=0:0.25:10; yy=interp1(x,y,xx); plot(x,y,'o',xx,yy,xx,sin(xx));
西南交通大学摩擦学研究所
16
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
spline插值
画一个圆并在数据点y(:,2),…,y(:,6)处标上字母o。
x=pi*[0:0.5:2]; y=[0 1 0 -1 0 1 0;1 0 1 0 -1 0 1]; pp=spline(x,y); yy=ppval(pp,linspace(0,2*pi,101));%计算分算函数的值
一维线性插值是最简单的插值,适用范围很小
可用较为复杂的三次多项式或spline来近似找到原函数 f(x)
西南交通大学摩擦学研究所
5
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
一维插值
MATLAB的一维插值函数为interp1(a,c,b)和 interp1(a,c,b,method)
6
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
一维插值—举例
假设汽车引擎在额定转速下温度与时间的测量值关系 如下0—0; 1—20; 2—60; 3—68; 4—77; 5— 110;用一维插值法估计时间为2.6s和4.9s时的温度值。
西南交通大学摩擦学研究所
8
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
西南交通大学摩擦学研究所
9
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
假设试验得到一组数据形态为:
f(xk);其中k=1,2,…,n;且x1=a<xn=c 如果某些点{xi}不属于上述的{xi} ,但是a=<xi<=c, 要估计这些点的函数值f(xi)就需要做插值运算 根据原始数据所描述的函数的复杂程度,存在有:
一维插值
二维插值 Spline插值
西南交通大学摩擦学研究所
举例
x=[0 1 2 3 4 5]'; y=[0 20 60 68 77 110]'; y1=spline(x,y,2.6) y1=spline(x,y,[2.6,4.9])
13
西南交通大学摩擦学研究所
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
西南交通大学摩擦学研究所
18
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
西南交通大学摩擦学研究所
19
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
xi,yi为要插值的数据点,x,y,z为已知数据
通过设定interp2(x,y,z,xi,yi,method)也可以设定不同的 插值方法,有linear、cubic和spline三种
西南交通大学摩擦学研究所
10
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
spline插值
举例:在[0,10]区间上按正弦规律y=sin(x)取10个点yi, 再在区间[0,10]上取41个点,以yi为已知数据,对这41 个点做spline插值运算,得到函数值并绘图,比较其值 与正弦波偏离程度。
x=0:10; y=sin(x); xx=0:0.25:10; yy=spline(x,y,xx); plot(x,y,'o',xx,yy,xx,sin(xx));
插值过程中认为数据是准确的,求取描述点之间的数 据 曲线拟合中,假定已知曲线的规律,做曲线的最佳逼 近,不需要经过所有数据点
3
西南交通大学摩擦学研究所
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
插值计算
西南交通大学摩擦学研究所
20
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
西南交通大学摩擦学研究所
21
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
2000年的人口数,并绘制人口变化趋势图。
t=1900:10:1990; p=[75.995 91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505 249.633]; y=spline(t,p,2000) plot([t 2000],[p y],'o')
MATLAB插值与曲线拟合
spline插值
向量t=1900:10:1990,p=[75.995 91.972 105.711 123.203
131.669 150.697 179.323 203.212 226.505 249.633]表示 从1900年到1990年人口普查的数字,利用spline插值法预测
14
西南交通大学摩擦学研究所
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
西南交通大学摩擦学研究所
15
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
2
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
简介
把试验数据绘制成图是点状分布,将这些点练成曲线, 然后转化为有意义的数学函数,才能对数据做对比和 分析 上述过程涉及插值(interpolation)和曲线拟合(curvefitting)
MATLAB插值与曲线拟合
曲线拟合
曲线拟合(curve-fitting)顾名思义就是用近似的曲线方程 来代表一组离散的数据
曲线拟合与插值有许多相似之处,二者最大区别再于 曲线拟合要找出一个曲线函数式,而插值仅求出与数 据点对应的函数值而已 曲线拟合运用最小二乘法原理 如果拟合的曲线限定为多项式就称为多项式最小二乘 法曲线拟合 MATLAB提供的曲线拟合有多项式最小二乘拟合、普通 最小二乘拟合等
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插值与曲线拟合
二维插值
假设试验所得到的一组数据形态为z=f(xk,yk),期中 k=1,2,,,n;如果某些点(xi,yi)不属于上述点,要 估计这些点的函数值f(xi,yi)就需要进行二维擦绘制运算, 二维插值相当于二元函数运算
MATLAB中二维插值函数是interp2(x,y,z,xi,yi),期中
4
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
一维插值
一维插值可以是线性的,也可以是三次多项式或spline 插值
一维线性插值是假设两个数据中的变化为线性关系, 因此可由已知点的坐标(f(a),a)和(f(c),c)计算b点的函数 值f(b) ba f (b) f (a) [ f (c) f (a )] ca
其中a,c为已知数据,而b为要插值的数据点,method 为预先设定的插值方法,分别为线性(linear)、三次多 项式(cubic)和spline
如果数据的变化较大,以spline插值所形成的曲线最为 平滑,效果最好
三次多项式所得的曲线平滑度介于linear和spline之间
西南交通大学摩擦学研究所
分别用三种方法估计其值
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插值与曲线拟合
二维插值—举例 假设汽车的引擎转速、温度与时间的测量值关系 如下表,估计时间为2.6s和速度为2500r时的温度。
T/℃ Time/s 0 2000r 0 Speed 3000r 0 4000r 0
1
2 3
20
60 68
110
180 240
176
220 349
4
5
西南交通大学摩擦学研究所
plot(yy(1,:),yy(2,:),'-b',y(1,2:5),y(2,2:5),'or')
西南交通大学摩擦学研究所
22
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
西南交通大学摩擦学研究所
23
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
《MATLAB数据处理与应用》2011-2012学年选修课
第八讲
MATLAB的插值与曲线拟合
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
主要内容
插值运算
曲线拟合
分段函数 拉格拉日插值 牛顿插值 Hermite插值
西南交通大学摩擦学研究所
77
110
310
405Βιβλιοθήκη Baidu
450
503
11
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
二维插值—举例
应用函数interp2函数分别用linear、cubic、spline来估 计时间2.6s和转速2500r的温度值。
MATLAB插值与曲线拟合
西南交通大学摩擦学研究所
17
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
spline插值
采用一维三次多项式插值运算
x=0:10; y=sin(x); xx=0:0.25:10; yy=interp1(x,y,xx,'cubic'); plot(x,y,'o',xx,yy,xx,sin(xx));
西南交通大学摩擦学研究所
7
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
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)
西南交通大学摩擦学研究所
12
Tribology Research Institute SOUTHWEST JIAOTONG UNIVERSITY
MATLAB插值与曲线拟合
spline插值
函数spline有两种应用形式,spline(x,y,xi)和spline(x,y)
spline(x,y,xi)与interp1(x,y,xi,spline)效果一样