




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
牛顿插值法 插值法是利用函数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上有定义,已知在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,&xx); printf(请输入插值的次数(n11):n=); scanf(%d,&n); printf(请输入%d组值:n,n+1); for(i=0;in+1;i+) printf(x%d=,i); scanf(%f,&xi); printf(y%d=,i); scanf(%f,&y0i); for(i=1;in+1;i+) for(j=i;j1) yij=(yi-1j-yi-1j-1)/(xj-xj-i); else yij=(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; else 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牛顿插值法摘 要:值法利用函数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)关键词:牛顿插值法 流程图 程序实现一、 插值法的由来 在许多实际问题及科学研究中,因素之间往往存在着函数关系,然而,这种关系经常很难有明显的解析表达,通常只是由观察与测试得到一些离散数值。有时,即使给出了解析表达式,却由于表达式过于复杂,不仅使用不便,而且不易于进行计算与理论分析。解决这类问题的方法有两种:一种是插值法,另一种是拟合法。插值法是一种古老的数学方法,它来自生产实践,早在一千多年前,我国科学家在研究历法上就应用了线性插值与二次插值,但它的基本理论却是在微积分产生之后才逐渐完善的,其应用也日益增多,特别是在计算机软件中,许多库函数,如等的计算实际上归结于它的逼近函数的计算。逼近函数一般为只含有算术运算的简单函数,如多项式、有理分式(即多项式的商)。在工程实际问题当中,我们也经常会碰到诸如此类的函数值计算问题。被计算的函数有时不容易直接计算,如表达式过于复杂或者只能通过某种手段获取该函数在某些点处的函数值信息或者导数值信息等。因此,我们希望能用一个“简单函数”逼近被计算函数,然后用该简单函数的函数值近似替代被计算函数的函数值。这种方法就叫插值逼近或者插值法。逐次线性插值法优点是能够最有效地计算任何给定点的函数值,而不需要写出各步用到的插值多项式的表达式。但如果解决某个问题时需要插值多项式的表达式,那么,它的这个优点就成了它的缺点了。能不能根据插值条件构造一个插值多项式,它既有具体的表达式,又很容易用它计算任何点的函数值呢?牛顿插值法能作到这一点。 2、 牛顿插值法的概念牛顿插值多项式的表达式设问题是如何根据插值条件 ,i=0,1,2n 来计算待定系数?由 知, 。由 知 因而 ,其中 称为函数f(x)在点的一阶商。由 知 因而 其中称为函数f (x)在点的二阶差商。实际上,它是一阶差商的差商。一般地,如果已知一阶差商,那么就可以计算二阶差商 类似于上述过程不断地推导下去,可得 其中,分别称为函数f (x)在相应点处的三阶差商,四阶差商和n 阶差商。实际上, 的计算可通过以下简易地构造函数的差商来完成。 .按上述方式构造插值多项式的方法叫做牛顿插值法。根据插值多项式的惟一性知,其截断误差与拉格朗日插值法相同,即: 但也可以表示成差商形式。这是因为以为节点的多项式 从而 于是 的截断误差可表为 顺便指出,因为牛顿插值多项式具有性质: 所以,类似于逐次线性插值法,也可以把上述和式中的第二项看成是估计 的一种实用误差估计式。与差商概念密切联系的另一个概念是差分,它是指在等距节点上函数值的差。所谓等距节点,是指对给定的常数h(称为步长),节点称为 处的一阶向前差分;称 为 处的一阶向后差分;称 为 处的中心差分。一阶差分的差分称为二阶差分,即 称为 处的二阶向前差分。一般地,m 阶向前和向后差分可定义如下:3、 牛顿插值法的实现1、【算法】步骤1:输入节点(xj,yj),精度,计值点xx,f0p,1T,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)*TT,p+ fx0,xi*Tp,转步骤4。步骤4:若in,则i+1i,转步骤2;否则终止。 2、【流程图】STOP 1输出p,r,iqi(xi-xi-1)TRk= 1,2,ik(qk-1gk-1)(xixi-k)qkf0g0,fiq0输出,xx,n及(xj,yj)开始 i+1i YES|gi-1-qi-1| NO(xi-xi-1)TTp+qi*Tp k = 1,2,iqkgkk YESkn i+1 i qi(xx-xn-1)*TR NO 输出P,R,nSTOP 2 3、【程序清单】#includestdio.h#define n 4/牛顿插值的次数void main() float an+1n+2=0,s=0,t=1,x; int i,j; printf(请输入xi及yi的值/要求先输入xi再输入yi然后输入下一组n); for(i=0;in+1;i+) for(j=0;j2;j+) scanf(%f,&aij); 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+) 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,&x); 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 (Seventh Edition), Brooks Pub. Co.,2001.2. 蔡大用,白峰杉. 高等数值分析. 清华大学出版社,北京,1998.3. 邓建中,刘之行. 计算方法(第二版).西安交通大学出版社,2001.4. 韩旭里. 数值分析. 中南大学出版社,2003.致谢本文得以顺利完成,非常感谢我的指导教师 。从论文的选题直到论文的最终完成,他都给予我尽心尽力的指导。老师严谨的治学态度深深地影响着我,对我今后的学习,工作,生活必将产生影响。借此机会,特向老师表示最诚挚的感谢。感谢南昌工程学院理学系的所有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省秦皇岛市实验中学2025-2026学年高二上学期开学考试数学试卷
- MR成像新算法-洞察及研究
- 智能决策+动态优化与5G应用-洞察及研究
- 部队医院为兵服务课件
- 四川省泸州市合江县第五片区2024-2025学年八年级下学期第一次联考生物试题(含答案)
- 内蒙古赤峰市敖汉旗2024-2025学年八年级下学期中小学教学质量统一检测期末英语试卷(无答案听力音频及原文)
- 河北省邢台市南宫市2024-2025学年八年级下学期期末物理试题(含答案)
- 2025-2026学年语文三年级上册统编版 第三、四单元:基础知识归类复习卷 有答案
- 部门用车安全培训内容课件
- 广东省清远市清新区第四中学教育集团六校联考2024-2025学年八年级上学期11月期中数学试题(学生版)
- 交通安全防御性驾驶
- 16949标准培训课件
- 奶茶行业深度分析报告
- T-CMES 04001-2020 机床装备制造成熟度评价规范
- 采购报告范文
- 某县某年度高标准基本农田建设项目复核报告
- 现代辅助生殖技术护理伦理
- 体育设施建设造价评估方案
- 施工现场安排及人材机计划
- 教师督导问责办法培训
- 户外演出舞台方案
评论
0/150
提交评论