- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验名称:插值方法建模与计算;[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)