收藏 分销(赏)

插值法与MATLAB应用.doc

上传人:xrp****65 文档编号:9850400 上传时间:2025-04-10 格式:DOC 页数:3 大小:32.50KB
下载 相关 举报
插值法与MATLAB应用.doc_第1页
第1页 / 共3页
插值法与MATLAB应用.doc_第2页
第2页 / 共3页
点击查看更多>>
资源描述
插值法与MATLAB应用 2007-11-02 10:35 实验2 插值法与MATLAB应用 一、实验名称:插值法与MATLAB应用。 二、实验目的:理解插值的基本原理,掌握常用算法的设计,掌握用MATLAB实现插值。 三、实验题目:已知数据如下:    0.2 0.4 0.6 0.8 1.0    0.9798652 0.9177710 0.8080348 0.6386093 0.3843735 四、实验要求: 1、设计全区间上拉格朗日插值程序或者Newton插值程序。利用MATLAB在第一个图中画出离散数据及插值函数曲线。 2、利用MATLAB画出分段线性插值函数,并与(1)作对比说明。 3、对于自然边界条件 ,利用MATLAB在第二个图中画出离散数据,再画出通过表中型值点并满足边界条件的三次样条插值函数。 4、对于第一种边界条件 ,利用MATLAB在第三个图中画出离散数据,再画出通过表中型值点并满足边界条件的三次样条插值函数。 5、例举一个闭区间上的连续函数,用画图或列表的方式观察与体会Runge现象,分别用下面方法对比说明:1)10次Lagrange;2)分段低次插值;3)分段三次样条插值。 6、通过这个实验,谈谈你对插值方法有何理解、三次样条插值有何特点? 五、实验内容: 1、设计全区间上拉格朗日插值程序或者Newton插值程序。利用MATLAB在第一个图中画出离散数据及插值函数曲线。编写拉格朗日插值多项式函数内容为: function f=lagfun(x) a=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,0.8080348,0.6386093,0.3843735]; for i=1:5 L(i)=1; for j=1:5     if j~=i         L(i)=L(i)*(x-a(j))/(a(i)-a(j));     end end end f=0; for i=1:5     f=f+L(i)*b(i); end 画图 程序内容为: fplot('lagfun',[0,1]);hold on a=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,0.8080348,0.6386093,0.3843735];plot(a,b,'o') 图形为: 2、利用MATLAB画出分段线性插值函数,并与(1)作对比说明。 序内容为:a=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,0.8080348,0.6386093,0.3843735]; xx=0.2:0.01:1.0; yy=interp1(a,b,xx,'linear'); plot(a,b,'r*',xx,yy);title('插值法'); 图像为:  3、对于自然边界条件 ,利用MATLAB在第二个图中画出离散数据,再画出通过表中型值点并满足边界条件的三次样条插值函数。 程序内容为: >> a=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,0.8080348,0.6386093,0.3843735]; >> pp=csape(a,b,'variational'); >> x=0.2:0.01:1; >> y=ppval(pp,x); >> plot(a,b,'o',x,y) >> 图形为: 4、对于第一种边界条件 ,利用MATLAB在第三个图中画出离散数据,再画出通过表中型值点并满足边界条件的三次样条插值函数。 程序内容为: a=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,0.8080348,0.6386093,0.3843735]; pp=csape(a,b,'second',[0.20271,1.55741]); x=0.2:0.01:1; y=ppval(pp,x); plot(a,b,'o',x,y) 图形为:  5、例举一个闭区间上的连续函数,用画图或列表的方式观察与体会Runge现象,分别用下面方法对比说明:1)10次Lagrange;2)分段低次插值;3)分段三次样条插值。 举例的函数为:y=1/(1+x^2);编写拉格朗日函数: function f=lagfun2(x) a=linspace(-5,5,10);b=1./(1+a.^2); for i=1:10 L(i)=1; for j=1:10     if j~=i         L(i)=L(i)*(x-a(j))/(a(i)-a(j));     end end end f=0; for i=1:10     f=f+L(i)*b(i); end 画出“原函数”,“拉格朗日”,“三次样条”三种函数,程序内容为: a=linspace(-5,5,10);b=1./(1+a.^2);a=linspace(-5,5,10);b=1./(1+a.^2);xx=-5:.01:5;yy=interp1(a,b,xx,'spline'); fplot('1/(1+x^2)',[-5,5]);hold on;fplot('lagfun2',[-5,5]);hold on gtext('原函数');gtext('朗格朗日插值');gtext('样条插值'); 图像内容为:  6.拉格朗日插值在高次插值时同原函数偏差大,而三次样条插值相对好些
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服