函数的数值逼近-插值.docVIP

  • 33
  • 0
  • 约4.86千字
  • 约 15页
  • 2020-03-11 发布于广东
  • 举报
课程名称 计算方法 实验项目名称 函数的数值逼近-插值 实验成绩 指导老师(签名 ) 日期 2011-9 一. 实验目的和要求 掌握用Matlab计算Lagrange、分段线性、三次样条三种插值的方法,改变节点的数目,对三种插值结果进行初步分析。 通过实例学习如何用插值方法解决实际问题。 二. 实验内容和原理 编程题2-1要求写出Matlab源程序(m文件),并对每一行语句加上适当的注释语句; 分析应用题2-2,2-3,2-4,2-5要求将问题的分析过程、Matlab源程序、运行结果和结果的解释、算法的分析等写在实验报告上。 分析应用题 用在产生5个节点。用以下五种不同的节点构造Lagrange插值公式来计算处的插值,与精确值比较并进行分析。 function y=lagr(x0,y0,x) n=length(x0); m=length(x); L=zeros(1,n); y=zeros(1,m); for k=1:m s=0; for i=1:n L(i)=1; for j=1:n if j~=i L(i)=L(i)*(x(k)-x0(j))/(x0(i)-x0(j)); end end s=s+y0(i)*L(i); end y(k)=s; end 用构造; x0=[4,9]; y0=[2,3]; lagr(x0,y0,5) ans = 2.2000 用构造; x0=[1,4,9]; y0=[1,2,3]; lagr(x0,y0,5) ans = 2.2667 用构造; x0=[1,4,9,16]; y0=[1,2,3,4]; lagr(x0,y0,5) ans = 2.2540 用构造; x0=[0,1,9,16]; y0=[0,1,3,4]; lagr(x0,y0,5) ans = 2.9524 用全部插值节点构造。 x0=[0,1,4,9,16]; y0=[0,1,2,3,4]; lagr(x0,y0,5) ans = 2.0794 从结果看出,用构造时误差最小,而用构造时并没有更精确,误差还更大,所以不是用的构造点越多越准确。 分析应用题 意大利柑橘的产量变化如下表。使用3次样条插值来估计1962年、1977年和1992年的产量。将这些结果与相对应的实际值进行比较,并说明计算的精度。实际值分别为12380,27403和32059(kg)。再利用Lagrange插值多项式重新计算。 年份 1965 1970 1980 1985 1990 1991 产量(kg) 17769 24001 25961 34336 29036 33417 x0=[1965,1970,1980,1985,1990,1991]; y0=[17769,24001,25961,34336,29036,33417]; y1=spline(x0,y0,1962) y1 = 5.1461e+003 y2=spline(x0,y0,1977) y2 = 2.2642e+004 y3=spline(x0,y0,1992) y3 = 4.1894e+004 利用Lagrange插值多项式计算: x0=[1965,1970,1980,1985,1990,1991]; y0=[17769,24001,25961,34336,29036,33417]; y1=lagr(x0,y0,1962) y1 = -7.7765e+004 y2=lagr(x0,y0,1977) y2 = 1.5405e+004 y3=lagr(x0,y0,1992) y3 = 4.3127e+004 分析应用题 在区间[-1,1]上,在21个平均分布的节点上对函数进行估计。计算Lagrange插值多项式和3次样条,并在给定的区间上将两个函数的曲线与进行比较。使用干扰数据来重复计算。注意观察,对于小扰动,Lagrange插值多项式与3次样条相比,分析哪个更敏感。 x=linspace(-1,1,21); y=sin(2*pi*x) y = Columns 1 through 10 0.0000 0.5878 0.9511 0.9511 0.5878 -0.0000 -0.5

文档评论(0)

1亿VIP精品文档

相关文档