赞
踩
MATLAB数据分析(插值运算和曲线拟合)
MATLAB数据分析
在数学研究和工程应用中,我们常常需要对某些环节进行反复的测验或测试,以获取更多的数据支持最优决策,但是由于环境条件的限制,我们往往只能获取有限的离散样本数据而无法得到 连续完备的信息这个时候就需要使用到插值运算和曲线拟合的方法来很好的解决这些问题。
数据插值是一种重要的数值计算方法,数据插值可以根据有限个点的取值状况,合理估算出附近其它点的取值,从而节约大量的实验和测试资源,节省大量的人力物力和财力。
Y1=interp1(X,Y,X1,method)
该语句将根据X、Y的值,计算函数在X1处的值。其中,X、Y是两个等长的已知向量,分别表示采样点和采样值。X1是一个向量或标量,表示要插值的点。
method参数用于指定插值方法,常用的取值有以下四种:
(1)、linear:线性插值,默认方法。将与插值点靠近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。
(2)、nearest:最近点插值。选择最近样本点的值作为插值数据。
(3)、pchip:分段3次埃尔米特插值。采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光滑的同时,还具有保形性。
(4)、spline:3次样条插值。每个分段内构造一个三次多项式,使其插值函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。
3. 四种插值方法的比较
(1)、线性插值和最近点插值方法比较简单。其中线性插值方法的计算量与样本点n无关。n越大,误差越小。
(2)、3次埃尔米特插值和3次样条插值都能保证曲线的光滑性。相比较而言,3次埃尔米特插值具有保形性;而3次样条插值要求其二阶导数也连续,所以插值函数的性态更好。
4. 二维插值函数和一维插值函数差不多,函数为(interp2)本文主要讲解一维插值函数算法。
在进行实验数据测量的时候所得数据不一定准确 ,这个时候强行逼近函数接近各样本点的方法显然是不合理的,这个时候就可以使用曲线拟合的方法来进行数据处理。
(1)P=polyfit(X,Y,m)
(2)[P,S]=polyfit(X,Y,m)
(3)[P,S,mu]=polyfit(X,Y,m):
根据样本数据X和Y,产生一个m次多项式P及
其在采样点误差数据S,mu是一个二元向量,mu(1)是mean(X),而mu(2)是std(X)
(1)要对问题的背景进行详细的分析。
(2)采样点并非越多越好,适当的时候,可以减少采样
点,分段进行拟合。
3. 曲线拟合的三种功能:
(1)估算数据
(2)预测趋势
(3)总结规律
在飞机制造中,机翼的加工是一项关键技术。由于机翼尺寸很大,通常在图纸中只能标出一些关键点的数据。下表给出了某型飞机机翼的下缘轮廓线数据,求x每改变0.1时y的值。
编写MATLAB程序进行数据拟合
>> x=[0,3,5,7,9,11,12,13,14,15];
>> y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];
>> x1=0:0.1:15;%确定需要插值的点
>> y1=interp1(x,y,x1,'spline');
>> plot(x1,y1)
人口增长是当今世界上都关注的问题,对人口增长趋势进行预测是各国普遍的做法。已知某国1790年到2010年间历次人口普查数据如下表所示,请预测该国2020年的人口数。
解题思路:找一个函数,去逼近这些数据,然后再根据找到的函数,计算预测点的值。
编写MATLAB程序如下
x=1790:10:2010;
y=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,63.0,76.0,92.0,105.7,122.8,131.7,150.7,179.3,203.2,226.5,248.7,281.4,308.7];
plot(x,y,'*');
p=polyfit(x,y,3);
polyval(p,2020)
plot(x,y,'*',x,polyval(p,x));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。