数值分析论文-几种插值方法的比较课程论文8(学院+专业+学号)_第1页
数值分析论文-几种插值方法的比较课程论文8(学院+专业+学号)_第2页
数值分析论文-几种插值方法的比较课程论文8(学院+专业+学号)_第3页
数值分析论文-几种插值方法的比较课程论文8(学院+专业+学号)_第4页
数值分析论文-几种插值方法的比较课程论文8(学院+专业+学号)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数值分析论文几种插值方法的比较.插值法概述插值法是函数逼近的重要方法之一,有着广泛的应用。在生产和实验中,函数f(X )或者其表达式不便于计算复杂或者无表达式而只有函数在给定点的函数值(或其导数值),此时我们希望建立一个简单的而便于计算的函数 出X),使 其近似的代替f(x ),有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿 (Newton)插值为代表的多项式插值最有特点,常用的插值还有 Hermite插值,分 段插值和样条插值.这里主要介绍拉格朗日(Lagrange)插值和牛顿(Newton)插值 和埃尔米特插值(Hermite插值)。.插值方法的比较2. 1拉格朗日插值2.1

2、.1基本原理n构造 n 次多项式 Pn(x)= y*(x)=y0 x)+y1l1(x)+ynx ),这是 k=e不超过n次的多项式,其中基函数:(x 一 xo)(x - xi)(x - xk -1)(x - xk 1)(x - xn)lk x 二(xk r x0)(xk r x1)(xk - xk -1)( xk -xk 1)(xk -xn)显然 lk(x X 足 lk(xi )=11(i =k)0(i 丰 k)f (n D( )此时 Pn(x 卜 f (x ),误差 Rn(x )= f (xPn(x )= 0n +(x)(n 1)!其中卫 C(a, b )且依喇负于 x ,%+(x)=(x-

3、 x0lx xi)(x -xn).很显然,当n =1 ,插值节点只有两个xk, xk卡时P x = yklk xyk 1lk 1 x其中基函数1kx 二X 其中基函数1kx 二X Xk 1Xk - Xk -12.1.2优缺点lk 1 x 二X - XkXk 1 - Xk可对插值函数选择多种不同的函数类型,由于代数多项式具有简单和一些良 好的特性,故常选用代数多项式作为插值函数。利用插值基函数很容易得到拉格 朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时 全部插值基函数lk(X)(k=0,1, ,n)均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服

4、这一缺点,提出了牛顿插值可以克服这一缺 点。2.1.3数值实验程序如下:#includedefine TRUE 1define FALSE 0define N 10define M 2void main(void)double xN,yN,a,lN;int i,j,n,flag;double answer=0.00f;doprintf(创建Lagrange插值多项式共用到 N组(X,Y)值,请输入 N:);scanf(%d,&n);if(n=M) flag=FALSE;else if(nN|n=1)printf(对不起,你输入错误!n请确保你输入的 N满足2=N=%d.,N);printf(n

5、);flag=TRUE;while(flag=TRUE);printf(n请输入需要计算的X值:);scanf(%lf,&a);for(i=0;in;i+)printf(请输入第%d组(X,Y)的值二i+1);scanf(%lf%lf,x+i,y+i);for(i=0;in;i+)li=1.0f;for(j=0;jN;j+)if(i!=j) li*=(a-xj)/(xi-xj);else continue;answer+=li*yi;printf(f(%.3lf)=%lfn,a,answer);牛顿插值基本原理构造n次多项式Nn x = f XoMXo,XX-Xof Xo,Xi,X2 l-x。

6、x-x1f Xo,Xi, ,xn lx - XoX-Xn称为牛顿插值多项式,其中f(X0, X1)= f(X0)T(Xl)(二个节点,一阶差商)X0 - X1f (xo, xi) - f (xi, X2)一人 j j 廿一X0 -X2f (x0, x1, x2) =X0 -X2一ff(X0,X1,,Xn _1)_ f (xi, X2,,xn)f(X0,xi,,xn)=L (n+1 个节点,n 阶差冏)X0 一 Xn注意:由于插值多项式的唯一性,有时为了避免拉格朗日余项 R(x)中n+1阶 导数的运算,用牛顿插值公式Q(X)= f(X)_ Nn(X)= f(X, Xo,. ,Xn %#(X),其

7、中 n I X = X -Xo X - Xi X -Xn .优缺点牛顿插值法具有承袭性和易变性的特点,当增加一个节点时,只要再增加一项就可以了即 N k 书(x) = N k(x) +(x - Xo)(x - Xi)(x - Xk) f X0,,Xk,x而拉格朗日插值若要增加一个节点时全部基函数都需要重新算过。牛顿插值法既适合于用来计算函数值,也适合于做理论推导,比如说可用来推导微分方程的数值求 解公式。数值实验程序如下:#include stda仅.h”#includevoid main(int argc,char* argv) int i1,i2,p,j,k,w,n=0;float x10

8、0,f100100,f1100,x1,x2,N1,N2=1.0,N3=0.0;printf(请输入节点个数 w=100:);scanf(%d,&w);for(n=0;nw;n+) printf(x=);scanf(%f”,&xn);printf(f(x)=);scanf(%f”,&f1n);for(n=0;nw;n+)fn0=f1n;for(j=1;jn;j+) i2=i1+1;elseelse if(fi1i2=-10) k=j;for(p=0;kn;k+,p+)fkj=(fkj-1-fk-1j-1)/(xk-xp);printf( xif(xi) 1 阶差商 );for(i1=1;i1n-

9、1;i1+)printf( %d 阶差商 ,(i1+1);for(i1=0;i1=0)if(xi1=10&xi1=100)printf(n%.5f ,xi1);else printf(n%.5f ,xi1);else if(xi1=-10)printf(n%.5f ,xi1);else if(xi1=-100)printf(n%.5f ,xi1);else printf(n%.5f ,xi1);for(i2=0;i2=0) if(fi1i210) if(fi1i2=100)printf(%.5f ,fi1i2);else printf(%.5f ,fi1i2);else printf(%.5f

10、 ,fi1i2); if(fi1i2=-100)printf(%.5f ,fi1i2);else printf(%.5f ,fi1i2);else printf(%.5f ,fi1i2);printf(nN%d(x)=%.5f+,n-1,f00);for(i1=1;i1n;i1+)for(j=1;jn;j+)if(i1=j) if(fi1j0)printf(%.5f),fi1j);else printf(%.5f,fi1j);for(k=0;kj;k+)printf(x-%.5f),xk);printf(n);if(jn-1)printf( +);printf(输入节点x1(用3次多项式计算)

11、,scanf(%f%f,&x1,&x2);for(i1=0;i1xi1) break;if(n-i1)=3)i2=i1;else i1=i1-2;if(i1=0) i2=i1;else)N1=fi10;for(j=1;j4;j+,i1+) N2=N2*fi1+1i1+1;for(k=i2;ki2+j;k+)N2=N2*(x1-xk);N3=N2+N3;N2=1.0;)N3=N1+N3;printf(N3(%.5f)=%.5fn”,x1,N3);N3=0.0;N1=f00;for(i1=1;i1n;i1+) for(i2=0;i2i1;i2+)N2=N2*(x2-xi2);N2=N2*fi1i1

12、;N3=N2+N3;N2=1.0;)N3=N1+N3;printf(N%d(%.5f)=%.5fn,n-1,x2,N3);埃尔米特插值基本原理设在n+1个互不相同的节点a wx0 x1,xn wb处,已知 yi = 乂为),mb = f 3),i = 0,1,2,- ;n.要求插值多项式H(x胸足:H 区)=yi , H 区)=mi, i = 0,1,2, , n .这类问题与前面的插值问题的区别在于不仅要求在节点上的函数值相等,而且还要求导数也相等,甚至要求高阶导数也相等.求次数不超过2n+1的多项式H2n 书(x 攸得:1) H2n+(xi )= yi , 1 =0,1,2,,,n .2)

13、 H2n 书(xi)=yi, i=0,1,2, ,n.类似求Lagrange插值多项式的方法,通过构造基函数的方法.若能够构造出基函数%(x ), Bj(x ), i=0,1,2,n 满足条件1,(j=i),叫优)=,;%区)=0, j =0,1,2, ,n.0,(j *i).4(为=,:?. ? ; (Mxj )=0, j =0,1,2,.;n. 2,(j i). n则容易得到 H2n 书(x )如下:H2n 由(x)= j j (x )+mj P j (x j与确定基函数%(x ), Pi (x ):. a 11 工.%(x=12 乙 I(x xi ) i (x), i =0,1,2,一,

14、n . TOC o 1-5 h z Uwj#8i -xj )E (x = (x - Xi li2(x ), i = 0,1,2, ;n .插值余项R(x )= f(x)-H 2n噂(X1若f(x a,b )内的2n+ 2阶导数存在,f 2n 2-则插值余项 R(x两足R(x 卜 n(x) En +(X)=(X-X0j(X- Xi) , ,(X -Xn),2n 2 !其中Eja,b与x有关.优缺点Hermite插值多项式具有唯一性和承袭性的特点,对相应于条件的 a&x), 口 (x则组合形式可以找出尽可能多的条件给出的根,根据多项式的总阶数和根 的个数写出表达式,但表达式具有唯一性,可以根据尚未

15、利用的条件解出表达式 中的待定系数,在这里待定系数法任适用,但插值节点多时比较麻烦.数值实验程序如下:#include struct HINTEPint n;double *x;double *y;double *dy;double t;hp,ha;double hermite(struct HINTEP *hp)int num,i,j;double *x,*y,*dy,pio,z,p,q,s;num=hp-n;x=hp-x;y=hp-y;dy=hp-dy;pio=hp-t;z=2.0;for(i=1;i=num;i+)s=1.0;for(j=1;j=num;j+)if(j!=i) s*=(pio-xj-1)/(xi-1-xj-1);s=s*s;p=0.0;for(j=1;j=num;j+)if(j!=i) p+=1.0/(xi-1-xj-1);q=yi-1+(pio-xi-1)*(dyi-1-2.0*yi-1*p);z+=q*s;retu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论