- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB编程基础第6讲--插值、拟合与初值常微分方程的求解
MATLAB编程基础之 插值、拟合与初值常微分方程的求解 3.8.3多项式的拟合 需求:实验数据总结为规律曲线等等 最小二乘法:所用曲线限定为多项式,在数据点上拟合值和函数值有最小误差平方和。 P=polyfit(x,y,n):把自变量x和函数值y拟合成n阶多项式,向量为p。 例3-35 x = (0:0.1:1); y = [-0.4 1.9 3.2 6.2 7.1 7.3 7.7 9.6 9.5 9.3 12]; % 给出一组11个点数据 y2 = polyfit(x,y,2) % 计算2阶拟合的多项式向量 x1= 0:0.01:1; f2 = polyval(y2,x1); % 2阶拟合曲线在各点的函数值 y10 = polyfit(x,y,10) % 计算10阶拟合的多项式向量 f10 = polyval(y10,x1); % 10阶拟合曲线在各点的函数值 plot(x,y,o,x1,f2,:,x1,f10,k) 例3-36 x = (0: 0.1: 2.5); % 给出一组数据,为误差函数的一个区间 y = erf(x); p = polyfit(x,y,6) % 计算该区间内6阶拟合多项式的向量 x1 = (0: 0.1: 5); % 将区间增长一倍 y1 = erf(x1); % 计算误差函数在新区间内的函数值 f = polyval(p,x1); % 计算6阶拟合曲线在新区间内的取值 plot(x1,y1,o,x1,f,-) % 绘图,比较前后区间内的曲线拟合效果,如图3-7 axis([0 5 0 2]) 例:拟合以下数据 例:根据经验公式y=a+bx2,拟合如下数据: 3.8.4多项式的插值 插值的定义——是对某些集合给定的数据点之间函数的估值方法。 当不能很快地求出所需中间点的函数时,插值是一个非常有价值的工具。 Matlab提供了一维、二维、 三次样条等许多插值选择 1.一维插值 yi=interp1(x,Y,xi,method):求已知同维数据x和Y,运用method指定的方法计算插值点xi处的数值yi。 method有如下四种: nearest 最近点差值,取与最近的已知数据点的值 linear 线性差值,直线连接数据点,插值点值位于 直线上 spline 样条插值,用三次样条曲线通过数据点,根据曲线进行差值 cubic 立方差值,用三次曲线拟合并通过数据点 例3-37 x = 0:10; % 给出已知基准数据 y = sin(x); xi = 0:.25:10; % 在两个基准数据点间插入3个点 yi1 = interp1(x,y,xi,*nearest); yi2 = interp1(x,y,xi,*linear); yi3 = interp1(x,y,xi,*spline); yi4 = interp1(x,y,xi,*cubic); % 分别用四种方法求中间插值 plot(x,y,o,xi,yi1, r:,xi,yi2, g-,xi,yi3,k.-,xi,yi4, m--) % 绘图,并标注各曲线代表的插值方法,如图3-8 legend(原始数据,最近点插值,线性插值,样条插值,立方插值) 2.二维插值 ZI=interp2(X,Y,Z,XI,YI,method):已知同维数据X,Y和Z,运用method指定的方法计算插值点(XI,YI)处的数值ZI。 例3-38 axis([-3 3 -3 3 -5 20]) % 确定坐标轴的范围 [X,Y] = meshgrid(-3:.5:3); % 生成网格 Z = peaks(X,Y); % 计算peaks函数值 figure(1) mesh(X,Y,Z) % 绘制原始数据曲面图,如图3-9 [XI,YI] = meshgrid(-3:.125:3); % 确定插值点 ZI1 = interp2(X,Y,Z,XI,YI,*nearest); % 计算用nearest方法所得二维插值 figure(2) mesh(XI,YI,ZI1) % 绘制最近点插值法曲面图,如图3-10 ZI2 = interp2(X,Y,Z,XI,YI,*linear); % 计算用linear法所得二维插值 figure(3) mesh(XI,YI,ZI2) % 绘制双线性插值法曲面图,如图3-11 ZI3 = interp2(X,Y,Z,XI,YI,*spline); % 计算用spline法所得二维插值 figure(4) mesh(XI,YI,ZI3) % 绘制双样条插值法曲面图,如图3-12 ZI4 = interp2(X,Y,Z,XI,YI,*cubic); % 计算用cubic法所得二维插
文档评论(0)