MATLAB水塔用水量的估计-插值解答.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验名称:插值方法建模与计算;[1] 了解一维插值的基本原理,了解拉格朗日插值、线性插值、样条插值的基本思想; [2] 掌握用MATLAB计算三种一维插值的方法,并对结果作初步分析; [3] 通过实例学习如何用插值方法解决实际问题。 ;主要内容;?;函数f(x)的产生办法:插值和拟合。 第一步:适当选择函数的形式; 第二步:确定函数的参数。;引例:数控机床加工;求解插值问题的基本思路; 设函数g(x)在n+1个点x0,x1,…,xn处的函数值已知,为 y0,y1,…,yn 。求一个分段( 共n段)线性函数q(x),使其满足: q(xj)=yj , j=0,1,…,n.; f(x)为被插值函数。;用MATLAB作分段线性插值计算; 例:在1-12的11小时内,每隔1小时测量一次温度,测得的温度依次为:5,8,9,15,25,29,31,30,22,25,27,24。试估计每隔1/10小时的温度值。;hours=1:12; temps=[5 8 9 15 25 29 31 30 22 25 27 24]; h=1:.1:12; t=interp1(hours,temps,h) plot(hours,temps,+,h,t) title(线性插值下的温度曲线), xlabel(Hour),ylabel(Degrees Celsius);程序运行结果:;返 回 ;拉格朗日(Lagrange)多项式插值;已知 n+1个节点;有唯一解; 已知函数f(x)在n+1个点x0,x1,…,xn处的函数值为 y0,y1,…,yn 。求一n次多项式函数Pn(x),使其满足: Pn(xi)=yi,i=0,1,…,n.;例 将[0,?/2] n等分,在g(x)=cos(x)上取n+1个节点,作Pn(x)(取n=1,2) ,计算Pn(?/6),与 cos(?/6)比较, 观察误差。;n=2时: (x0,y0)=(0,1), (x1,y1)=(?/4,0.7071), (x2,y2)=(?/2,0),;拉格朗日多项式插值的振荡现象;返 回 ; 三次样条插值; 三次样条函数 S(x), x∈[a, b] , 满足: 1) S(x) 在每一个小区间[xi-1,xi]上是一个三次多项式函数 ; 2) 在整个区间[a,b]上,其二阶导数存在且连续。; 问题:给定n+1个节点(x0, y0 ),(x1, y1 ) ,…, (xn, yn), 求一个三次样条函数S(x),使其满足: S(xi)=yi,i=0,1,…,n.;;参数:每个小段上4个,n个小段共计4n个。 方程:1) 每个小段上由给定函数值得到2个,n个小段共计2n个; 2) 光滑性要求每一个内部节点的一阶二阶导数连续,得出其左右导数相等,因此,每个节点产生2个方程,共计2(n?1) 个 。现在得到了4n?2个方程,还差两个。为此,常用的方法是对边界节点除函数值外附加要求,这就是所谓的边界条件。需要两个,正好左右两个端点各一个。;Method可取: ‘nearest’ :最邻近插值;‘spline’ :三次样条插值; ‘cubic’ : 立方插值;缺省时: 分段线性插值。 注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。;例:在;x0=linspace(-5,5,11); y0=1./(1+x0.^2); x=linspace(-5,5,100); y=interp1(x0,y0,x,spline); x1=linspace(-5,5,100); y1=1./(1+x1.^2); plot(x1,y1,k,x0,y0,+,x,y,r);;返 回 ;;x0=-5:5;y0=1./(1+x0.^2); x=-5:.1:5;y=1./(1+x.^2); n=length(x0);m=length(x); for i=1:m z=x(i); s=0; for k=1:n p=1; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end ;s=p*y0(k)+s; end y1(i)=s; end y2=interp1(x0,y0,x); y3=spline(x0,y0,x); subplot(1,3,1) plot(x,y,x,y1) subplot(1,3,2) plot(x,y,x,y

文档评论(0)

舞林宝贝 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档