浙江大学城市学院实验报告
课程名称 科学计算
实验项目名称 函数的数值逼近-插值
实验成绩 指导老师(签名 ) 日期
一. 实验目的和要求
1. 掌握用Matlab计算Lagrange、分段线性、三次样条三种插值的方法,改变节点的数目,
对三种插值结果进行初步分析。
2. 通过实例学习如何用插值方法解决实际问题。
二. 实验内容和原理
1) 编程题2-1要求写出Matlab源程序(m文件),并对每一行语句加上适当的注释语句; 2) 分析应用题2-2,2-3,2-4,2-5要求将问题的分析过程、Matlab源程序、运行结果和结
果的解释、算法的分析等写在实验报告上。
2-1 编程
编写Lagrange插值函数的Matlab程序,其中n个插值节点以数组x0,y0输入,m个待求点的自变量以数组x输入。输出数组y为m个待求点的函数值。 Lagrange插值:y=lagr(x0,y0,x)
Step 1 输入插值节点数组x0,y0和待求节点x; Step 2 数组x0的长度为n,x的长度为m; Step 3 对i?1,2,?,n,构造第i个插值基函数 li(x)?(x?x01)?(x?x0i?1)(x?x0i?1)?(x?x0n)
(x0i?x01)?(x0i?x0i?1)(x0i?x0i?1)?(x0i?x0n) 并计算在m个待求点上的基函数值。 Step 4 根据公式y??y0l(x)分别计算m个待求点上的函数值。
iii?1n并对程序的每一行语句加上适当的注释语句。
2-2 分析应用题
用y?x在x?0,1,4,9,16产生5个节点P1,?,P5。用以下五种不同的节点构造Lagrange插值公式来计算x?5处的插值,与精确值比较并进行分析。 1)用P3,P4构造; 2)用P2,P3,P4构造; 3)用P1,P2,P4,P5构造; 2,P3,P4,P5构造; 4)用P5)用全部插值节点P1,P2,P3,P4,P5构造。,
2-3 分析应用题
意大利柑橘的产量变化如下表。使用3次样条插值来估计1962年、1977年和1992年的产量。将这些结果与相对应的实际值进行比较,并说明计算的精度。实际值分别为12380,27403和32059(?10kg)。再利用Lagrange插值多项式重新计算。
年份 产量(?10kg)
2-4 分析应用题
在区间[-1,1]上,在21个平均分布的节点上对函数f(x)?sin2?x进行估计。计算Lagrange插值多项式和3次样条,并在给定的区间上将两个函数的曲线与f进行比较。使用干扰数据f(xi)?(?1)i?110?4来重复计算。注意观察,对于小扰动,Lagrange插值多项式与3次样条相比,分析哪个更敏感。
2-5 分析应用题 已知函数表如下:
x 0.7 55121965 17769 1970 24001 1980 25961 1985 34336 1990 29036 1991 33417 0.9 0.7833 1.1 0.8912 1.3 0.9636 1.5 0.9975 1.7 0.9917 sinx 0.6442 编制程序构造差商表,并构造牛顿插值多项式计算sin1.0的近似值。
2-6 分析应用题
利用2-1中的程序和Matlab相关函数分析用下列三种不同的插值逼近著名的Runge函数
f(x)?1)Lagrange插值; 2)分段线性插值; 3)三次样条插值。
1,21?25xx?[?1,1]
其中取插值节点为区间[?1,1]上的10等分点,同时列出100等分点上的三种插值结果,比
较分析,同时对这三种插值在100等分点上进行作图比较。
2-7 分析应用题 运行程序
figure
set(gcf,'menubar','none') axes('position',[0 0 1 1]) [x,y]=ginput
然后将你的手直接放在弹出窗口中,用鼠 标点击选取需要的插值点,最后回车得到所有插值点的坐标。用三次样条插值函数对手的形状进行插值,并作图。
提示:可用构造“参数曲线”的方法,即在参数区间[t1,tn],(t1?t2???tn)上选取n个插值点,然后用三次样条插值构造逼近函数在m个点上的值:
xi?x(ti),yi?y(ti),i?1,2,?,m,最后以这m个点(xi,yi)作出图形。
2-8 分析应用题
美国的人口普查每10年举行一次,下表列出了从1940年到1990年的人口(按千人计) 年 人口 (千) 1940年 132165 1950年 151326 1960年 179323 1970年 203302 1980年 226542 1990年 249633 1) 选择一种插值求在1930年、1965年和2010年人口的近似值。
2) 1930年的人口大约是123203千。你认为你得到的1965年和2010年的人口数字精确度
如何?
【MATLAB相关函数】
? 分段线性插值y=interp1(x0,y0,x)
输入值:n个插值节点对应数组x0,y0,以及m个待求点对应的数组x; 输出值:m个待求点对应的数组y。
? 三次样条插值y=interp1(x0,y0,x,’spline’)或y=spline(x0,y0,x) 输入值:n个插值节点对应数组x0,y0,以及m个待求点对应的数组x; 输出值:m个待求点对应的数组y。
三. 操作方法与实验步骤(包括实验数据记录和处理)
四. 实验结果与分析
相关推荐: