楚莹莹-090128-用牛顿插值多项式求函数的近似值(共17页).doc
精选优质文档-倾情为你奉上课程设计(论文) 题 目: 用牛顿插值多项式求函数的近似值学 院: 理学院 专 业: 数学与应用数学 班 级: 09-1 学 生 姓 名: 楚莹莹 学 生 学 号: 指 导 教 师: 李文宇 2011年12月20日 课程设计任务书 学 院理学院专 业数学与应用数学 学生姓名楚莹莹班级学号课程名称计算方法课程设计题目 用Newton插值多项式求函数的近似值一、基本理论: 基于差商及差商的基本性质,递推出牛顿插值多项式,和其余项公式。通过已知函数值,构造差商表求出插值函数。二、研究方法: 通过已知数据,构造差商表,求出牛顿插值多项式,并编写Matlab程序,执行结果即为函数的近似值。三、预期成果: 给出的数据(插值节点的函数值),构造出差商表,通过程序的执行求出近似与被插函数的插值多项式,与函数在某点的近似值。四、参考资料:1李庆阳,白峰杉.数值计算原理.清华大学出版社,20002陈辉,李文宇,张传芳.数值计算方法.哈尔滨工业出版社,20093薛毅.数值分析与实验.北京工业大学出版社,20054贾德彬.数值计算方法.中国水利水电出版社,2007五、时间安排:课程安排一周,分4次完成:第一次(1-2天):上网搜查有关的资料,并开始考虑设计的方法。第二次(3-4天):写论文的前言、摘要、以及理论依据和问题描述部分。第三次(4-6天):写论文的问题分析、求解计算以及程序内容及其说明部分。第四次(7天):完成课程设计报告以及最后的审核和排版、打印等。指导教师(签字): 年 月 日专业负责人(签字): 年 月 日主管院长(签字)年 月 日 前 言 许多实际问题都有用函数来表示某种内在规律的数量关系,其中相当一部分函数是通过实验或观测得到的虽然某个区间上是存在的,有的还是连续的,但却只能给出上一系列点的函数值,这只是一张函数表有的函数虽有解析表达式,但由于计算复杂,使用不方便,通常也造一个函数表,如大家熟悉的三角函数表、对数表、平方根和立方根表等等为了研究函数的变化规律,往往需要求出不在表上的函数值因此,我们希望根据给定的函数表做一个既能反映函数的特性,又便于计算的简单函数,用近似通常选一类较简单的函数(如代数多项式或分段代数多项式)作为,并使对成立这样确定的就是我们希望得到的插值函数例如,在现代机械工业中用计算机等程序控制加工机械零件,根据设计可给出零件个形曲线的某些型值点(,)( ),加工时为近年第步走刀方向步数,就要算出零件外形曲线其他点的函数值,才能加工出外表光滑的零件,这就是求插值函数的问题 利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服这一缺点,由均差的递推公式给出了Newton插值公式,在增加一个插值节点后,只需计算新增插值节点带来的计算,而不必重新计算整个插值公式,这样大大节约了插值公式的计算量。 目 录摘 要I1.2 均差的基本性质 1 1.3 牛顿插值公式2 334454.2.1 程序54.2.2 程序6 85 结论与展望10 摘 要 插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化, 这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。 本文介主要绍了牛顿插值法,首先给出差商的定义及性质,由差商递推得到Newton插值公式。在增加一个插值节点后,只需计算新增插值节点带来的计算,而不必重新计算整个插值公式。然而并不是插值节点越多越好,插值多项式随节点的增多而振动增多,反而不能更好的接近被插函数,这就是龙格现象。龙格现象从根本上否定了增多节点一提高插值多项式的次数来达到更好近似的可行性,从而产生了质的飞跃。关键词 均差 牛顿插值多项式 龙格现象 用Newton插值多项式求函数的近似值 1、理论依据 1.1 均差定义 利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,可把插值多项式表示为如下便于计算的形式,其中为待定系数,可又插值条件确定当时,当时,推得 , ··· ···依此递推可得到为写出系数的一般表达式,先引进如下均差定义定义1.1记为f的零阶均差,零阶均差的差商记为称为函数关于点的一阶均差.一般地,记(k-1)阶均差的差商为(1.1)称为f关于点的k阶均差.1.2 均差的基本性质阶均差可表为函数值的线性组合,即(1.2)这个性质可用归纳法证明这性质也表明均差于节点的排列次序无关,称为均差的对称性即(1.3), (1.4)由性质及(1.1)可得若在上存在阶导数,且节点则阶均差与导数关系如下:这公式可直接用罗尔定理证明。均差计算可列均差表如下(表1-1)。表1-1一阶均差二阶均差三阶均差四阶均差1.3 牛顿插值公式根据均差定义,把看成上一点,可得,只要把后一式代入前一式,就得到其中(1.5)插值余项为 ,(1.6)多项式显然满足插值条件,且次数不超过,我们称为牛顿(Newton)均差插值多项式.系数就是均差表1-1中加横线的各阶均差。 2、问题描述给出插值节点的函数值,用newton插值法,根据所给数据构造差商表,由差商表写出牛顿插值多项式,用该插值多项式估计函数的近似值。并说明龙格现象。例1: 已知函数值表0.40.550.650.800.901.050.410750.578150.696750.888111.026521.25382求四次牛顿插值多项式,并由此计算的近似值,并估计误差。 3、问题分析为的阶差商。 为牛顿插值公式。 , 为插值余项。例1解析:取前5对数据构造插商表 0.40 0.410750.55 0.57815 1.116000.65 0.69675 1.18600 0.280000.80 0.88811 1.27573 0.35893 0.197330.90 1.02652 1.38410 0.43348 0.21300 0.03134, 因此,=0.41075+1.11600(x-0.40)+0.28000(x-0.40)(x-0.55)+0.19733(x-0.40)(x-0.55)(x-0.65)+0.03134(x-0.40)(x-0.55)(x-0.65)(x-0.80).所以,=0.63195 , 4、程序内容及说明4.1 Newton基本插值公式由均差可以导出n次Newton插值多项式其余项公式为 4.2 Newton基本插值公式的程序4.2.1 程序按上述公式编写Matlab程序(文件名New_Int.m).function yi = New_Int(x,y,xi)% Newton基本插值公式,其中,% x向量,全部的插值节点,按行输入;% y向量,插值节点处的函数值,按行输入;% xi向量,自变量x;% yi为xi处的函数估计值.n = length(x);m=length(y);% s输入的插值点与他的函数值应有相同的个数.if n = m error('The lengths of X and Y must be equal!'); return;end%计算均差表Y.Y=zeros(n);Y(:,1) = y'for k = 1:n-1 for i = 1:n-k % 输入的插值节点必须互异. if abs(x(i+k)-x(i)< eps error('the DATA is error!'); return; end Y(i,k+1)=(Y(i+1,k)-Y(i,k)/(x(i+k)-x(i); endend% 计算Newton插值公式N(xi)yi=0;for i = 1:n z=1; for k = 1:i-1 z = z*(xi-x(k); end yi = yi+Y(1,i)* z;EndMatlab演示:例2:已知=1,=2,=3,用Newton插值公式求的近似值。在matlab软件中,程序执行如下:>>x = 1 4 9; y = 1 2 3; xi = 5;>> yi = New_Int(x,y,xi) yi = 2.26674.2.2 程序建立一个M文件,命名为newpoly.m.Matlab命令程序如下:functionc,d=newpoly(x,y)% c为所求的Newton插值多项式的系数构成的向量n = length(x);d = =zeros(n,n);d(:,1)= y'for j = 2:n for k = j:n d(k,j)= (d(k,j-1)-d(k-1,j-1)/(x(k)-x(k-j+1); endendc = d(n,n);for k =(n-1):-1:1 c = conv(c,poly(x(k); m = length(c); c(m)=c(m)+d(k,k);endMatlab演示:例3:已知函数的观测数据见下表,试用上述程序求牛顿插值多项式。123456-301548105192在命令窗口输入>> newpoly(1 2 3 4 5 6,-3 0 15 48 105 192) ans = 0 0 1 0 -4 0所以牛顿插值多项式为 4.3龙格现象分析 在计算方法中,有利用多项式对某一函数的近似逼近,这样,利用多项式就可以计算相应的函数值。例如,在事先不知道某一函数的具体形式的情况下,只能测量得知某一些分散的函数值。例如我们不知道气温随日期变化的具体函数关系,但是我们可以测量一些孤立的日期的气温值,并假定此气温随日期变化的函数满足某一多项式。这样,利用已经测的数据,应用待定系数法便可以求得一个多项式函数f(x)。应用此函数就可以计算或者说预测其他日期的气温值。一般情况下,多项式的次数越多,需要的数据就越多,而预测也就越准确。 例外发生了:龙格在研究多项式插值的时候,发现有的情况下,并非取节点(日期数)越多多项式就越精确。著名的例子是f(x)=1/(1+25x2).它的插值函数在两个端点处发生剧烈的波动,造成较大的误差。究其原因,是舍入误差造成的。 具体的情况可参考下列Mathematica程序: n = 10; x = Range-1, 1, 2/n; y = 1./(1 + 25 x2); P=Transposex,y; Cleart; f = LagrangeInterpolationx, y, t; ShowPlot1./(1 + 25 t2), f, t, -1, 1, ListPlotp, PlotStyle -> PointSize0.02 程序演示Matlab 程序演示 代码>> f=inline('1/6-y/30','t','y');t,y=ode45(f,0,5,0);plot(t,y);>> hold on;plot(t,5-5*exp(-t/30),'r*')演示结果下面是MATLAB中演示插值的M文件: %演示龙格函数的插值情况 for i=3:2:11 x=linspace(-1,1,i); y=1./(1+25*x.2); p=polyfit(x,y,i-1); xx=-1:0.01:1; yy=polyval(p,xx); plot(xx,yy,'b'); hold on; grid on; end; plot(x,1./(1+25*x.2),'r') 运行结果如图 龙格函数(1张)图中红色的才是真正的函数图形。一般吧这种次数越高而插值结果越偏离原函数的现象称为龙格现象。所以在不熟悉曲线运动趋势的前提下,不要轻易使用高次插值。5、 结论与展望 本文主要阐述了用牛顿插值多项式求函数近似值的问题,通过构造差商表,求出牛顿插值多项式。牛顿插值法,与拉格朗日插值法相比较更为方便,它不仅克服了“增加一个节点时整个计算工作必须重新开始”的缺点,而且可以节省乘除法运算次数。同时,在牛顿插值多项式中用到的差分与差商等概念,与数值计算的其他方面有着密切的关系。牛顿插值法来源于生产实践,其应用也日益广泛。特别是在计算机的使用和航空、造船、精密机械加工,冶金工程等领域都获得了极为广泛的应用。 计算方法_课程设计评阅书班级 数学09-1学生姓名 楚莹莹学号总成绩题目 用Newton插值多项式求函数的近似值指导教师评语(评阅意见主要对设计任务的合理性、规范性和正确性以及设计报告书的完整性、规范性和通顺性等方面作出评价) 设计报告成绩:指导教师签名: 年 月 日答辩评语 答辩成绩:答辩教师签名: 年 月 日教研室意见总成绩: 室主任签名: 年 月 日专心-专注-专业