- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab4插值与拟合
1. 多项式拟合
x0=0:0.1:1;
y0=[-.447 1.978 3.11 5.25 5.02 4.66 4.01 4.58 3.45 5.35 9.22];
p=polyfit(x0,y0,3)
p = 56.6915 -87.1174 40.0070 -0.9043
poly2str(p,x)
xx=0:0.01:1;
yy=polyval(p,xx);
plot(xx,yy,-b,x0,y0,or)
2.插值
插值的定义——是对某些集合给定的数据点之间函数的估值方法。
当不能很快地求出所需中间点的函数时,插值是一个非常有价值的工具。
Matlab提供了一维、二维、 三次样条等许多插值选择
table1 ——
table2 ——
intep1 ——
interp2 ——
spline ——
利用已知点确定未知点
粗糙—— 精确
集合大的—— 简化的
二维数据插值
在MATLAB中,提供了解决二维插值问题的函数interp2,其调用格式为:
Z1=interp2(X,Y,Z,X1,Y1,method)
其中X,Y是两个向量,分别描述两个参数的采样点,Z是与参数采样点对应的函数值,X1,Y1是两个向量或标量,描述欲插值的点。Z1是根据相应的插值方法得到的插值结果。 method的取值与一维插值函数相同。X,Y,Z也可以是矩阵形式。
同样,X1,Y1的取值范围不能超出X,Y的给定范围,否则,会给出“NaN”错误,若X维数为1*n, Y维数为1*m,则Z的维数必须是m*n.
例如1某实验对一根长10米的钢轨进行热源的温度传播测试。用x表示测量点0:2.5:10(米),用h表示测量时间0:30:60(秒),用T表示测试所得各点的温度(℃)。试用线性插值求出在一分钟内每隔20秒、钢轨每隔1米处的温度TI。
命令如下:
x=0:2.5:10;
h=[0:30:60];
T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];
xi=[0:10];
hi=[0:20:60];
TI=interp2(x,h,T,xi,hi)
mesh(xi,hi,TI)
surfc(x,h,T)
例2 某观测站测得某日6:00时至18:00时之间每隔2小时的室内外温度(℃),用3次样条插值分别求得该日室内外6:30至17:30时之间每隔2小时各点的近似温度(℃)。
设时间变量h为一行向量,温度变量t为一个两列矩阵,其中第一列存放室内温度,第二列储存室外温度。命令如下:
h =6:2:18;
t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30];
XI =6.5:2:17.5
YI=interp1(h,t,XI,‘spline’) %用3次样条插值计算
3.曲线拟合
在MATLAB中,用polyfit函数来求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给出的点上的函数近似值。
polyfit函数的调用格式为:
[P,S]=polyfit(X,Y,m)
函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。其中X,Y是两个等长的向量,P是一个长度为m+1的向量,P的元素为多项式系数。
polyval函数的功能是按多项式的系数计算x点多项式的值,将在6.5.3节中详细介绍。
已知数据表[t,y],试求2次拟合多项式p(t),然后求ti=1,1.5,2,2.5,…,9.5,10各点的函数近似值。
为了完成这样的任务,需要构造一个比较简单的函数 ,使函数在观测点的值等于已知的值,或使函数在该点的导数值等于已知的值,寻找这样的函数 有很多方法。根据测量数据的类型有以下两类处理观测数据的方法。
(1)测量值是准确的,没有误差,一般用插值。
(2)测量值与真实值有误差,一般用曲线拟合。
在MATLAB中,无论是插值还是拟合,都有相应的函数来处理。
一、插??????? 值
1、一维插值:
已知离散点上的数据集 ,即已知在点集X= 上的函数值Y= ,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。
MATLAB命令:yi=interp1(X, Y, xi, method)
该命令用指定的算法找出一个一元函数 ,然后以 给出 处的值。xi可以是一个标量,也可以是一个向量,是向量时,必须单调,method可以下列方法之一:
‘nearest’:最近邻点插值,直接完成计算;?????????
‘spline’:三次样条函数插值;
‘linear’:线性插值(缺省方式),直接完成计算;???
‘cubic’:三次函数插值;
对于[min{xi},max{xi}]
文档评论(0)