




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽工业大学数理科学与工程学院数值计算实习 -牛顿插值算法姓 名: 班 级: 学 号: 指导老师: 2014年6月23日星期一安徽工业大学数理科学与工程学院-数值计算实习目 录1.提出问题22.实验目的:23.基础概念:23.1牛顿插值多项式的原理23.2均差(差商)及其性质43.3牛顿插值公式及其余项的公式:54.算法设计55. Matlab程序实现及应用65.1举例应用65.2命令执行图:86.结果分析9参考文献9附录一:牛顿插值的MATLAB实现10附录二:误差的Matlab实现10附录三:生成图像101.提出问题上学期通过对数值分析的学习,我们知道可以用插值法求一个待定函数来近似反映函
2、数的特性,使得待定函数在给定点上等于函数值,在其它点上的函数的值作为函数的近似值。利用差值函数很容易得到Lagrange插值多项式,公式结构紧凑,在理论分析中甚为方便。而由Lagrange插值多项式的插值基函数:可知其公式中的每一项与所有的插值结点有关.因此,Lagrange 插值虽然易算,但若要增加一个节点时,全部基函数 都需重新算过,计算量太大,在实际计算中十分不利,为了克服这一缺点,于是产生了Newton插值法。2.实验目的:通过对牛顿插值多项式的Matlab程序实现,深入了解牛顿插值多项式的原理及编程解决实际问题的能力。3.基础概念: 3.1牛顿插值多项式的原理我们知道两点直线公式有:
3、我们考虑点斜式,两点为((x,y)(x,y)),则直线方程为:那么,在此基础上增加一个节点(x2,y2),则过这三个点的插值多项式就是:c(x)应该是一个二次多项式。根据插值条件有根据插值条件:可以求出:重新写P2(x):有3.2均差(差商)及其性质定义:一阶均差二阶均差n+1阶均差均差均有如下的基本性质:(2) k 阶差商关于节点是对称的,或者说均差与节点顺序无关,即均差表一阶差商二阶差商三阶差商四阶差商3.3牛顿插值公式及其余项的公式:newton插值多项式的表达式如下:其中每一项的系数ci的表达式如下:即为f (x)在点处的i阶差商,(,),由差商的性质可知:则有: 其中4.算法设计:牛
4、顿插值法利用函数在某区间中若干点的函数值,作出牛顿插值多项式,在这些点上取已知值,在区间的其他点上用牛顿插值多项式的值作为函数的近似值。1 输入值及(;要计算的函数点。2 对给定的由计算的值。3输出。4. 利用输出误差的表达式。5. Matlab程序实现及应用利用Matlab可以实现牛顿插值的求解、均差、误差,多项式系数,并可以通过生成Matlab图像直观地描述原函数图像与牛顿插值的比较,具体源代码见附录。5.1举例应用(改自于数值分析教材P48第2题)例:给出f(x)=lnx的数值如表所示, x0.40.5 0.60.70.8lnx-0.916291-0.693147-0.510826-0.
5、356675-0.223144(1) 列出差商表,构造牛顿插值多项式并求ln0.54的值。(2) 估计ln0.54误差分析:由牛顿插值的算法,运用Matlab建立newtoncz.m和wucha.m文件,具体代码分别见附录一(牛顿插值的MATLAB实现)和附录二(误差的Matlab实现)由表可知:x0=0.4, x1=0.5, x2=0.6, x3=0.7, x4=0.8,函数值:y0=-0.916291,y1=-0.693147,y2=-0.510826,y3=-0.356675,y4=-0.223144所以运用Matlab求解过程如下:(1)在matlab中输入如下命令: clearX=0
6、.4,0.5,0.6,0.7,0.8;Y= -0.916291, -0.693147, -0.510826, -0.356675, -0.223144;A,C,P=newtoncz(X,Y)f=polyval(C,0.54)得出运行结果:A = -0.9163 0 0 0 0 -0.6931 2.2314 0 0 0 -0.5108 1.8232 -2.0412 0 0 -0.3567 1.5415 -1.4085 2.1088 0 -0.2231 1.3353 -1.0310 1.2583 -2.1263C = -2.1263 6.7866 -9.0104 6.9856 -2.6488P =
7、-(1196972338462113*x4)/562949953421312+(1910253385694983*x3)/281474976710656-(5072397223433071*x2)/562949953421312+(3932520207496857*x)/562949953421312-2982240889048293/1125899906842624 f = -0.6161所以,由程序运行结果得:差商表A如下: 差商表一阶差商二阶差商三阶差商四阶差商0,4-0.91630.5-0.69312.23140.6-0.51081.8232-2.04120.7-0.35671.541
8、5-1.40852.10880.8-0.22311.3353-1.03101.2583-2.1263牛顿插值多项式P为:P(x)=-2.1263x4+6.7866x3-9.0104x2+6.9856x-2.6488ln0.54的值为:f(0.54)=ln0.54=f=-0.6161(2)在matlab中输入如下命令: f=-0.6161;x=0.54;X=0.4,0.5,0.6,0.7,0.8;R=wucha(f,x,X)得出运行结果:R = -7.1763e-08所以,由程序运行结果可知:估计ln0.54误差为:R(x)=-R=7.176310-8可见误差非常的小,在允许的范围之内一般不影响
9、结果。5.2命令执行图:通过Matlab程序实现牛顿插值多项式和f(x)=lnx的图像,便于直观地表示出来。在Matlab中输入附录三程序得如下图形:图像对照牛顿插值多项式由上述图像可见:两条曲线慢慢逼近,当x0.4时,两条曲线基本重合,说明Matlab求出的牛顿插值多项式准确无误,且误差非常的小。6.结果分析本程序给出了计算牛顿插值多项式的函数,通过调用函数可以求得牛顿多项式与待估算点的值,作出了节点及待求多项式的函数图像,能够比较清晰的通过图像显示出来,总体来说,计算结果是比较理想的,达到了我们的目的。通过Matlab程序求解上述例题,得出的牛顿插值多项式的系数C与答案一致。同时求出插值多
10、项式的表示P,即:P(x)=-2.1263x4+6.7866x3-9.0104x2+6.9856x-2.6488的表示结果一样。求出ln0.54的值即:f=-0.6161 。误差的求解遵循了牛顿插值多项式的误差公式,把f值代入即可求出误差R的值。由命令执行图可以直观看出,由Matlab生成的牛顿插值多项式是正确无误的,达到了理想效果。多项式在区间0.4,0.8周围与原函数逼近的较好. 两条曲线基本重合,离这个区间越远与原函数的误差越大,该图像就越背离图像。同时我们可以得出若节点越多,函数逼近的则相对较好。在节点附近逼近的越好,越远离节点误差越大,所以公式适用于计算节点附近的值于是为了减小误差。
11、本实验通过MATLAB编程实现求解牛顿K次插值多项式,能加深对牛顿插值法的基本思路和步骤的理解。同时也加深了对均差的概念及其性质的理解。牛顿插值法正是应用均差的性质,克服了拉格朗日插值法的主要缺点。参考文献数值分析(第五版) 李庆扬、王能超、易大义编 清华大学出版社数值分析(第七版 影印版) Richard L. Burden、J.Douglas Faires 高等教育出版社 MATLAB程序设计 王建卫 取中水 凌宾MATLAB数值分析与应用 张德丰数值分析 黄明游 刘播 徐涛附录一:牛顿插值的MATLAB实现求解插值多项式,返回均差、多项式的系数function A,C,P=newtonc
12、z(X,Y)%牛顿插值的MATLAB实现 %这里 A为均值。C为牛顿插值多项式的系数构成的向量。P为牛顿插值多项式表示。 %这里 X为n个节点的横坐标所组成的向量,Y为纵坐标所组成的向量。n=length(X); %取X得个数A=zeros(n,n); %构成nn空数组A(:,1)=Y;for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1)/(X(i)-X(i-j+1); endendC=A(n,n);for k=(n-1):-1:1 C=conv(C,poly(X(k); % conv求积,poly(x)将该多项式的系数赋给向量。 d=length(C); C(d)=C(d)+A(k,k);endP=poly2sym(C);附录二:误差的Matlab实现求解牛顿插值多项式误差function R=wucha(f,x,X)n=length(X);r=1;q=1;for i=1:n; r=i*r; q=(x-X(i)*q;endR=f*abs(q)/r;附录三:生成图像在同一个面框内显示ln(x)与牛顿插值多项式的图像x=0:1/10000:1;y=log(x);plot(x,y,b)gtext(ln(x)的图像);h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论