ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:392.50KB ,
资源ID:2976135      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2976135.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(牛顿插值法原理及应用.doc)为本站会员(dreamzhangning)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

牛顿插值法原理及应用.doc

1、牛顿插值法插值法是利用函数 f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数 f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。为了克服这一缺点,提出了牛顿插值。 牛顿插值通过求各阶差商,递推得到的一个公式:f(x)=fx0+fx0,x1(x-x0)+fx0,x1,x2(x-x0)(x-x1)+.fx0,.xn(x-x0).(x-xn-1)+Rn(x)。插值函数 插值函数的概念及相关性质 1 定义:设连续函数 y-f(x) 在区间a,b上有定义,

2、已知在 n+1 个互异的点x0,x1,xn 上取值分别为 y0,y1,yn (设 a x1x2xnb)。若在函数类中存在以简单函数 P(x) ,使得 P(xi)=yi,则称 P(x) 为 f(x)的插值函数.称 x1,x2,xn 为插值节点,称a,b为插值区间。定理:n 次代数插值问题的解存在且唯一 。牛顿插值法 C 程序程序框图#includevoid main()float x11,y1111,xx,temp,newton;int i,j,n;printf(“Newton 插值:n 请输入要运算的值:x=“);scanf(“%f“,printf(“请输入插值的次数(n1)yij=(yi-1

3、j-yi-1j-1)/(xj-xj-i);elseyij=(yi-1j-yi-1j-1)/(xj-xj-1); printf(“%fn“,yii);temp=1;newton=y00; for(i=1;in+1;i+) temp=temp*(xx-xi-1);newton=newton+yii*temp;printf(“求得的结果为:N(%.4f)=%9fn“,xx,newton);牛顿插值法 Matlab 程序function f = Newton(x,y,x0) syms t; if(length(x) = length(y) n = length(x); c(1:n) = 0.0; el

4、se disp(x 和 y 的维数不相等!); return; end f = y(1); y1 = 0; l = 1; for(i=1:n-1) for(j=i+1:n) y1(j) = (y(j)-y(i)/(x(j)-x(i); end c(i) = y1(i+1); l = l*(t-x(i); f = f + c(i)*l; simplify(f); y = y1; if(i=n-1) if(nargin = 3) f = subs(f,t,x0); else f = collect(f); %将插值多项式展开 f = vpa(f, 6); end end 牛顿插值法摘 要 :值法利

5、用函数 f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数 f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化, 这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。 牛顿插值通过求各阶差商,递推得到的一个公式: f(x)=fx0+fx0,x1(x-x0)+fx0,x1,x2(x-x0)(x-x1)+.fx0,.xn(x-x0).(x-xn-1)+Rn(x)关键

6、词 :牛顿插值法 流程图 程序实现一、 插值法的由来 在许多实际问题及科学研究中,因素之间往往存在着函数关系,然而,这种关系经常很难有明显的解析表达,通常只是由观察与测试得到一些离散数值。有时,即使给出了解析表达式,却由于表达式过于复杂,不仅使用不便,而且不易于进行计算与理论分析。解决这类问题的方法有两种:一种是插值法,另一种是拟合法。插值法是一种古老的数学方法,它来自生产实践,早在一千多年前,我国科学家在研究历法上就应用了线性插值与二次插值,但它的基本理论却是在微积分产生之后才逐渐完善的,其应用也日益增多,特别是在计算机软件中,许多库函数,如等的计算实际上归结于它的逼近函数的计算。逼近函数一

7、般为只含有算术运算的简单函数,如多项式、有理分式(即多项式的商) 。在工程实际问题当中,我们也经常会碰到诸如此类的函数值计算问题。被计算的函数有时不容易直接计算,如表达式过于复杂或者只能通过某种手段获取该函数在某些点处的函数值信息或者导数值信息等。因此,我们希望能用一个“简单函数”逼近被计算函数,然后用该简单函数的函数值近似替代被计算函数的函数值。这种方法就叫插值逼近或者插值法。逐次线性插值法优点是能够最有效地计算任何给定点的函数值,而不需要写出各步用到的插值多项式的表达式。但如果解决某个问题时需要插值多项式的表达式,那么,它的这个优点就成了它的缺点了。能不能根据插值条件构造一个插值多项式,它

8、既有具体的表达式,又很容易用它计算任何点的函数值呢?牛顿插值法能作到这一点。 2、牛顿插值法的概念牛顿插值多项式的表达式设 )()()()( 110102010 xxcxcxcN nnn 问题是如何根据插值条件,i=0,1,2 n yNiin来计算待定系数 ?cn210,由 )()(00xyNfn知, 。c由 )()(11fn知yxc1010)(因而 ,xfff 100101 ,)(其中 xf10, 称为函数 f(x)在 x10,点的一阶商。由 )()(22yNfn知 yxcxc21202010 )()( 因而 ,)(,)( )(,)( )(,)(,21002110211 1202 02010

9、1222 021001222010xxyxxycffffffff其中 称为函数 f (x)在 点的二阶差商。实际上,它,210xf 21,是一阶差商的差商。一般地,如果已知一阶差商 ,,11xiiiff那么就可以计算二阶差商 xxii iii fff 111_, 类似于上述过程不断地推导下去,可得 ,)(, ,)(, , 2100121214 43210043213214 32100213213 xxcxxc nnnfff fff fff 其中,分别称为函数,3210xf ,43210xf ,543210xff (x)在相应点处的三阶差商,四阶差商和 n 阶差商。实际上,的计算可通过以下简易地

10、构造函数的差商来完成。cn210,xf0)(1)(1fcxf10,x2)(2f,21f cxf210,3)(3f,32xf ,32f cxf3210,x4)(4f,43f ,432xf ,432f cxf 43210,.按上述方式构造插值多项式的方法叫做牛顿插值法。根据插值多项式的惟一性知,其截断误差与拉格朗日插值法相同,即:)()!1(1)(xnnnfR但也可以表示成差商形式。这是因为以 为节点的多项xn210,式)(,)()( 1101 xxNnnnfx从而 )(,)( 1101 nnnff 于是 的截断误差可表为 )(xn)(,110xf nnR顺便指出,因为牛顿插值多项式具有性质: )

11、()(,)()( 121101xNnnnnfx 所以,类似于逐次线性插值法,也可以把上述和式中的第二项 )()(, 12110 nnf 看成是估计 的一种实用误差估计式。x与差商概念密切联系的另一个概念是差分,它是指在等距节点上函数值的差。所谓等距节点,是指对给定的常数 h(称为步长) ,节点称 为 处的一阶向前差分;)2,10(,0nihxi fxkiiff)(1i称 fiiiff)()1为 处的一阶向后差分;xi称 fxihihiff)()(22为 处的中心差分。一阶差分的差分称为二阶差分,i即 ffiii21称为 处的二阶向前差分。xi一般地,m 阶向前和向后差分可定义如下: 3,2,1

12、1mmfffiii iii3、牛顿插值法的实现1、 【算法】步骤 1:输入节点(xj,yj) ,精度 ,计值点 xx,f0 p,1 T,1i;步骤 2:对 k=1,2,i 依次计算 k 阶均差fxi-k,xi-k+1,xi = (fxi-k+1,xi- fxi-k,xi)/( xi -xi-k )步骤 3:(1) 、若| fx1,xi- fx0, ,xi-1| ,则 p 为最终结果 Ni-1(x),余项 Ri-1= fx0,xi(xx-xi-1)T。(2) 、否则(xx-xi-1)*T T,p+ fx0,xi*T p,转步骤 4。步骤 4:若 in,则 i+1 i,转步骤 2;否则终止。2、

13、【流程图】i+1 iYESNO开始输出 ,xx,n 及(x j,y j)f0 g0,f i q0k= 1,2, ,i(q k-1 gk-1) (x ix i-k) qkk|gi-1-qi-1|qi(xi-xi-1)T R输出 p,r,iSTOP 1YESi+1 iNO(xi-xi-1)T Tp+qi*T pk = 1,2, ,iqk gkkknqi(xx-xn-1)*T R输出 P, R,nSTOP 23、 【程序清单】#include“stdio.h“#define n 4/牛顿插值的次数void main()float an+1n+2=0,s=0,t=1,x;int i,j;printf(

14、“请输入 xi 及 yi 的值/要求先输入 xi 再输入 yi 然后输入下一组n“);for(i=0;in+1;i+)for(j=0;j2;j+)scanf(“%f“,for(j=1;jn+2;j+)/计算各阶均差for(i=j;in+1;i+)aij+1=(aij-ai-1j)/(ai0-ai-j0);printf(“输出 xi,yi 及各阶均差 n“);for(i=0;in+1;i+)for(j=0;jn+2;j+)printf(“%6.5f “,aij);printf(“n“);printf(“输出牛顿插值表达式n“);printf(“N%d(x)=“,n);for(i=0;in+1;i

15、+)printf(“%6.5f“,aii+1);for(j=0;ji;j+)printf(“(x-%3.2f)“,aj0);if(i=n)break;printf(“+“);printf(“n“);printf(“输入插值点 x=“);scanf(“%f“,for(i=0;in+1;i+)/计算插值点的近似值for(j=0;ji;j+)t*=(x-aj0);s+=aii+1*t;printf(“N%d(%4.3f)=%6.5fn“,n,x,s);4.【程序实现】参考文献:Richard L. Burden, J. Douglas Faires, Numerical Analysis(Seven

16、th Edition), Brooks Pub. Co.,2001.2. 蔡大用,白峰杉. 高等数值分析. 清华大学出版社,北京,1998.3. 邓建中,刘之行. 计算方法(第二版).西安交通大学出版社,2001.4. 韩旭里. 数值分析. 中南大学出版社,2003.致谢本文得以顺利完成,非常感谢我的指导教师 。从论文的选题直到论文的最终完成,他都给予我尽心尽力的指导。老师严谨的治学态度深深地影响着我,对我今后的学习,工作,生活必将产生影响。借此机会,特向老师表示最诚挚的感谢。感谢南昌工程学院理学系的所有领导和老师。他们严谨的学风,渊博的知识,诲人不倦的品格一直感染和激励着我不断上进,使我大学四年的时光充实而有意义, “自强不息,格物致知” ,在这里我所学到的一切,必将使我受益终生。在本论文的写作中,我也参照了大量的著作和文章,许多学者的科研成果及写作思路给了我很大的启发,在此向这些学者们表示由衷的感谢,感谢我的家人,同学,朋友对我的大力支持,他们的无私奉献,关爱和支持使我能够继续去追求自己的人生理想和目标。感谢所有关心,帮助和支持我的人。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报