计算方法——插值法综述_第1页
计算方法——插值法综述_第2页
计算方法——插值法综述_第3页
计算方法——插值法综述_第4页
计算方法——插值法综述_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、计算方法插值法11223510 李晓东在许多实际问题及科学研究中,因素之间往往存在着函数关系,然而,这种关系经常很难有明显的解析表达,通常只是一些离散数值。有时即使给出了解析表达式,却由于表达式过于复杂,使用不便,且不易于计算与分析。解决这类问题我们往往使用插值法:用一个“简单函数”逼近被计算函数,然后用的函数值近似替代的函数值。插值法要求给出的一个函数表,然后选定一种简单的函数形式,比如多项式、分段线性函数及三角多项式等,通过已知的函数表来确定作为的近似,概括地说,就是用简单函数为离散数组建立连续模型。一、 理论与算法(一)拉格朗日插值法在求满足插值条件次插值多项式之前,先考虑一个简单的插值

2、问题:对节点中任一点,作一n次多项式,使它在该点上取值为1,而在其余点上取值为零,即(1.1)上式表明个点都是次多项式的零点,故可设其中,为待定系数。由条件立即可得 (1.2)故 (1.3)由上式可以写出个次插值多项式。我们称它们为在个节点上的次基本插值多项式或次插值基函数。利用插值基函数立即可以写出满足插值条件的次插值多项式 (1.4)根据条件(1.1),容易验证上面多项式在节点处的值为,因此,它就是待求的次插值多项式。形如式(1.4)的插值多项式就是拉格朗日插值多项式,记为,即 (1.5)为了便于上机,常将拉格朗日插值多项式(1.5)改写成: (1.6)下图给出了利用式(1.6)计算x处函

3、数值的程序流程图:y0输入xi,yi(i=1,2.,n)及n,xyy+P*yk 输出x,y k=1,2,.,nP1 j=1,2,.,n是j=k? PP*(x-xj)/(xk-xj)否根据流程图用matlab语言编写的函数为:function y=lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m s=0.0; for k=1:n p=1.0; for j=1:n if j=k p=p*(x(i)-x0(j)/(x0(k)-x0(j); end end s=p*y0(k)+s; end y(i)=s; end(二)分段线性插值法由于高次的插

4、值多项式有不收敛现象,有时会出现较大的误差,不能有效的逼近被插函数,所以人们提出了用分段的低次多项式逼近被插函数,这就是分段插值方法。常见的有分段线性插值和分段二次插值,本文使用的是分段线性插值法。当给定了个点上的函数值后,若要计算点处函数值的近似值。可先选取两个节点与,使,然后在小区间上座线性插值,即得:(2.1)相应的程序流程图如下:输入xi ,yi(i=1,2,.,n)及n,x j=1,2,.,n-1 输出x,P1(x) 按公式(2.1)计算P1(x)xxj,xj+1?是否根据流程图用matlab语言编写的函数为:function y=seg_linear(x0,y0,x)n = len

5、gth(x0);m=length(x);for i=1:m for j=1:n-1 if x(i)=x0(j) if x(i)=x0(j+1) y(i)=y0(j)*(x(i)-x0(j+1)/(x0(j)-x0(j+1)+y0(j+1)*(x(i)-x0(j)/(x0(j+1)-x0(j); end end endend(三)牛顿插值法设有函数,,为一系列互不相等的点,称为关于点的一阶差商。一般的称(3.1)为关于点的k阶差商。 则其中(3.2)(3.3)显然,是满足插值条件的至多n次的多项式。可得。因而它是的n次的插值多项式。我们称为牛顿插值多项式。在实际计算中,经常利用由式(3.1)构造

6、出的差商表3.1计算差商,即由表3.1中加下划横线的差商值直接构造插值多项式(3.2)表3.1 一阶差商 二阶差商 三阶差商 四阶差商yy+F(1,1) 输出F,y输入xi,yi(i=1,2,.,n)及n,x j=2,3,.,n i=j,j+1,.,nF(i,j)F(i,j-1)-F(i-1,j-1)/(xi-xi-j+1) t1 i=1,2,.,k-1t(x-xi)*tj=2,3,.,nyy+F(j,j)*t程序流程图为: function y=newton(x0,y0,x)x0=x0(:);y0=y0(:);n=length(x0);m=length(x);F=zeros(n,n); %均

7、差表二维矩阵,对角线上元素对应y=0*x; %插值点对应的近似值F(:,1)=y0; %均差表第一列为已知节点函数值for j=2:n for i=j:n F(i,j)=(F(i,j-1)-F(i-1,j-1)/(x0(i)-x0(i-j+1); end endfor j=1:m for k=2:n t=1; for i=1:k-1 t=(x(j)-x0(i)*t; end y(j)=y(j)+F(k,k)*t; end y(j)=y(j)+F(1,1); enddisp(差商表:)F=x0,F;disp(F)二、 例题分析 给出的函数表0.40.550.650.800.901.050.410

8、750.578150.696750.888111.026521.253821、用Lagrange插值法计算的近似值;2、用分段线性插值法计算的近似值;3、构造差商表,用牛顿插值法计算的近似值。先将函数表存放到matlab的workspace中以便调用:1、Lagrange插值2、分段线性插值3、牛顿插值法拉格朗日插值的优点:它的形式是对称的,这样很容易编程上机实现。它在理论上十分重要。 牛顿插值的优点:在计算插值多项式及求解函数近似值都比较方便且计算量相对较小。从公式中可以看出:每增加一个节点,插值多项式只增加一项,因此便于递推运算,所以其具有灵活增加节点的优点。 两者的不同点:牛顿插值的计算量比拉格朗日要省,更利于程序设计。由插值多项式的唯一性可知,n次牛顿插值多项式与n次拉格朗日插值多项式是等价的,它们只是表示形式不同。因此,牛顿余项和拉格朗日余项也是等价的,故matlab计算结果二者一致。绘制所求点及已知节点在坐标中的位置,在matlab中运行:plot(x,y3,rv,x,y2,g,x0,y0,-.y,x0,y0,ob)得到坐标图:放大其中两组点可以看出,牛顿插值法和拉格朗日插值法有较高的精度,误差很小,而

温馨提示

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

最新文档

评论

0/150

提交评论